git problem
This commit is contained in:
+155
-130
@@ -1,3 +1,21 @@
|
||||
|
||||
function formatBytes(bytes, decimals = 2) {
|
||||
if (bytes === 0) return "0 B"; // 处理 0 字节的情况
|
||||
|
||||
const units = ["B", "K", "M", "G", "T", "P", "E", "Z", "Y"];
|
||||
let unitIndex = 0;
|
||||
|
||||
// 循环除以 1024,直到字节数小于 1024 或单位用完
|
||||
while (bytes >= 1024 && unitIndex < units.length - 1) {
|
||||
bytes /= 1024;
|
||||
unitIndex++;
|
||||
}
|
||||
|
||||
// 保留小数位数,并移除末尾多余的零(如 2.0 → 2)
|
||||
const formattedNumber = bytes.toFixed(decimals).replace(/\.0+$/, "");
|
||||
return `${formattedNumber} ${units[unitIndex]}`;
|
||||
}
|
||||
|
||||
var codePoint2utf8 = function (code) {
|
||||
var bin = parseInt(code).toString(2)
|
||||
var ln = 0;
|
||||
@@ -209,135 +227,6 @@ function base64ArrayBuffer(arrayBuffer) {
|
||||
return base64
|
||||
}
|
||||
|
||||
(function() {
|
||||
var base64EncodeChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',
|
||||
base64DecodeChars = new Array(( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), 62, ( - 1), ( - 1), ( - 1), 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, ( - 1), ( - 1), ( - 1), ( - 1), ( - 1));
|
||||
this.base64encode = function(e) {
|
||||
var r, a, c, h, o, t;
|
||||
for (c = e.length, a = 0, r = ''; a < c;) {
|
||||
if (h = 255 & e.charCodeAt(a++), a == c) {
|
||||
r += base64EncodeChars.charAt(h >> 2),
|
||||
r += base64EncodeChars.charAt((3 & h) << 4),
|
||||
r += '==';
|
||||
break
|
||||
}
|
||||
if (o = e.charCodeAt(a++), a == c) {
|
||||
r += base64EncodeChars.charAt(h >> 2),
|
||||
r += base64EncodeChars.charAt((3 & h) << 4 | (240 & o) >> 4),
|
||||
r += base64EncodeChars.charAt((15 & o) << 2),
|
||||
r += '=';
|
||||
break
|
||||
}
|
||||
t = e.charCodeAt(a++),
|
||||
r += base64EncodeChars.charAt(h >> 2),
|
||||
r += base64EncodeChars.charAt((3 & h) << 4 | (240 & o) >> 4),
|
||||
r += base64EncodeChars.charAt((15 & o) << 2 | (192 & t) >> 6),
|
||||
r += base64EncodeChars.charAt(63 & t)
|
||||
}
|
||||
return r
|
||||
}
|
||||
this.base64decode = function(e) {
|
||||
var r, a, c, h, o, t, d;
|
||||
for (t = e.length, o = 0, d = ''; o < t;) {
|
||||
do r = base64DecodeChars[255 & e.charCodeAt(o++)];
|
||||
while (o < t && r == -1);
|
||||
if (r == -1) break;
|
||||
do a = base64DecodeChars[255 & e.charCodeAt(o++)];
|
||||
while (o < t && a == -1);
|
||||
if (a == -1) break;
|
||||
d += String.fromCharCode(r << 2 | (48 & a) >> 4);
|
||||
do {
|
||||
if (c = 255 & e.charCodeAt(o++), 61 == c) return d;
|
||||
c = base64DecodeChars[c]
|
||||
} while ( o < t && c == - 1 );
|
||||
if (c == -1) break;
|
||||
d += String.fromCharCode((15 & a) << 4 | (60 & c) >> 2);
|
||||
do {
|
||||
if (h = 255 & e.charCodeAt(o++), 61 == h) return d;
|
||||
h = base64DecodeChars[h]
|
||||
} while ( o < t && h == - 1 );
|
||||
if (h == -1) break;
|
||||
d += String.fromCharCode((3 & c) << 6 | h)
|
||||
}
|
||||
return d
|
||||
}
|
||||
this.HexToBase64 = function(str) {
|
||||
return base64encode(String.fromCharCode.apply(null, str.replace(/\r|\n/g, "").replace(/([\da-fA-F]{2}) ?/g, "0x$1 ").replace(/ +$/, "").split(" ")));
|
||||
}
|
||||
this.Base64Tohex = function(str) {
|
||||
for (var i = 0,
|
||||
bin = base64decode(str.replace(/[ \r\n]+$/, "")), hex = []; i < bin.length; ++i) {
|
||||
var tmp = bin.charCodeAt(i).toString(16);
|
||||
if (tmp.length === 1) tmp = "0" + tmp;
|
||||
hex[hex.length] = tmp;
|
||||
}
|
||||
return hex.join("");
|
||||
},
|
||||
this.toBytes = function(str) {
|
||||
for (var bytes = [], c = 0; c < str.length; c += 2)
|
||||
bytes.push(parseInt(str.substr(c, 2), 16));
|
||||
return bytes;
|
||||
}
|
||||
|
||||
}) ();
|
||||
//hexToBase64 Base64Tohex base64decode base64encode
|
||||
|
||||
var bytesToString = function(bytes){
|
||||
return hexToString(bytesToHex(bytes));
|
||||
}
|
||||
|
||||
|
||||
var bytesToBase64 = function(bytes){
|
||||
return base64ArrayBuffer(bytes);
|
||||
}
|
||||
|
||||
// Convert a byte array to a hex string
|
||||
var bytesToHex = function(bytes) {
|
||||
for (var hex = [], i = 0; i < bytes.length; i++) {
|
||||
hex.push((bytes[i] >>> 4).toString(16));
|
||||
hex.push((bytes[i] & 0xF).toString(16));
|
||||
}
|
||||
return hex.join("");
|
||||
}
|
||||
|
||||
|
||||
var stringToBase64 = function(str){
|
||||
return base64encode(str);
|
||||
}
|
||||
|
||||
var stringToBytes = function(str){
|
||||
return hexToBytes(stringToHex(str));
|
||||
}
|
||||
|
||||
// Convert a ASCII string to a hex string
|
||||
var stringToHex = function(str) {
|
||||
return str.split("").map(function(c) {
|
||||
return ("0" + c.charCodeAt(0).toString(16)).slice(-2);
|
||||
}).join("");
|
||||
}
|
||||
|
||||
var hexToBytes= function(hex) {
|
||||
for (var bytes = [], c = 0; c < hex.length; c += 2)
|
||||
bytes.push(parseInt(hex.substr(c, 2), 16));
|
||||
return bytes;
|
||||
}
|
||||
|
||||
// Convert a hex string to a ASCII string
|
||||
var hexToString = function(hexStr) {
|
||||
var hex = hexStr.toString();//force conversion
|
||||
var str = '';
|
||||
for (var i = 0; i < hex.length; i += 2)
|
||||
str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
|
||||
return str;
|
||||
}
|
||||
|
||||
var hexToBase64 = function(hexStr){
|
||||
return HexToBase64(hexStr);
|
||||
}
|
||||
|
||||
var base64ToString = function(base64str){
|
||||
return base64decode(base64str);
|
||||
}
|
||||
|
||||
|
||||
const Base64 = {
|
||||
@@ -434,6 +323,138 @@ const Base64 = {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// (function() {
|
||||
// var base64EncodeChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',
|
||||
// base64DecodeChars = new Array(( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), 62, ( - 1), ( - 1), ( - 1), 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), ( - 1), 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, ( - 1), ( - 1), ( - 1), ( - 1), ( - 1));
|
||||
// this.base64encode = function(e) {
|
||||
// var r, a, c, h, o, t;
|
||||
// for (c = e.length, a = 0, r = ''; a < c;) {
|
||||
// if (h = 255 & e.charCodeAt(a++), a == c) {
|
||||
// r += base64EncodeChars.charAt(h >> 2),
|
||||
// r += base64EncodeChars.charAt((3 & h) << 4),
|
||||
// r += '==';
|
||||
// break
|
||||
// }
|
||||
// if (o = e.charCodeAt(a++), a == c) {
|
||||
// r += base64EncodeChars.charAt(h >> 2),
|
||||
// r += base64EncodeChars.charAt((3 & h) << 4 | (240 & o) >> 4),
|
||||
// r += base64EncodeChars.charAt((15 & o) << 2),
|
||||
// r += '=';
|
||||
// break
|
||||
// }
|
||||
// t = e.charCodeAt(a++),
|
||||
// r += base64EncodeChars.charAt(h >> 2),
|
||||
// r += base64EncodeChars.charAt((3 & h) << 4 | (240 & o) >> 4),
|
||||
// r += base64EncodeChars.charAt((15 & o) << 2 | (192 & t) >> 6),
|
||||
// r += base64EncodeChars.charAt(63 & t)
|
||||
// }
|
||||
// return r
|
||||
// }
|
||||
// this.base64decode = function(e) {
|
||||
// var r, a, c, h, o, t, d;
|
||||
// for (t = e.length, o = 0, d = ''; o < t;) {
|
||||
// do r = base64DecodeChars[255 & e.charCodeAt(o++)];
|
||||
// while (o < t && r == -1);
|
||||
// if (r == -1) break;
|
||||
// do a = base64DecodeChars[255 & e.charCodeAt(o++)];
|
||||
// while (o < t && a == -1);
|
||||
// if (a == -1) break;
|
||||
// d += String.fromCharCode(r << 2 | (48 & a) >> 4);
|
||||
// do {
|
||||
// if (c = 255 & e.charCodeAt(o++), 61 == c) return d;
|
||||
// c = base64DecodeChars[c]
|
||||
// } while ( o < t && c == - 1 );
|
||||
// if (c == -1) break;
|
||||
// d += String.fromCharCode((15 & a) << 4 | (60 & c) >> 2);
|
||||
// do {
|
||||
// if (h = 255 & e.charCodeAt(o++), 61 == h) return d;
|
||||
// h = base64DecodeChars[h]
|
||||
// } while ( o < t && h == - 1 );
|
||||
// if (h == -1) break;
|
||||
// d += String.fromCharCode((3 & c) << 6 | h)
|
||||
// }
|
||||
// return d
|
||||
// }
|
||||
// this.HexToBase64 = function(str) {
|
||||
// return base64encode(String.fromCharCode.apply(null, str.replace(/\r|\n/g, "").replace(/([\da-fA-F]{2}) ?/g, "0x$1 ").replace(/ +$/, "").split(" ")));
|
||||
// }
|
||||
// this.Base64Tohex = function(str) {
|
||||
// for (var i = 0,
|
||||
// bin = base64decode(str.replace(/[ \r\n]+$/, "")), hex = []; i < bin.length; ++i) {
|
||||
// var tmp = bin.charCodeAt(i).toString(16);
|
||||
// if (tmp.length === 1) tmp = "0" + tmp;
|
||||
// hex[hex.length] = tmp;
|
||||
// }
|
||||
// return hex.join("");
|
||||
// },
|
||||
// this.toBytes = function(str) {
|
||||
// for (var bytes = [], c = 0; c < str.length; c += 2)
|
||||
// bytes.push(parseInt(str.substr(c, 2), 16));
|
||||
// return bytes;
|
||||
// }
|
||||
//
|
||||
// }) ();
|
||||
//hexToBase64 Base64Tohex base64decode base64encode
|
||||
|
||||
var bytesToString = function(bytes){
|
||||
return hexToString(bytesToHex(bytes));
|
||||
}
|
||||
|
||||
|
||||
var bytesToBase64 = function(bytes){
|
||||
return base64ArrayBuffer(bytes);
|
||||
}
|
||||
|
||||
// Convert a byte array to a hex string
|
||||
var bytesToHex = function(bytes) {
|
||||
for (var hex = [], i = 0; i < bytes.length; i++) {
|
||||
hex.push((bytes[i] >>> 4).toString(16));
|
||||
hex.push((bytes[i] & 0xF).toString(16));
|
||||
}
|
||||
return hex.join("");
|
||||
}
|
||||
|
||||
|
||||
var stringToBase64 = function(str){
|
||||
return base64encode(str);
|
||||
}
|
||||
|
||||
var stringToBytes = function(str){
|
||||
return hexToBytes(stringToHex(str));
|
||||
}
|
||||
|
||||
// Convert a ASCII string to a hex string
|
||||
var stringToHex = function(str) {
|
||||
return str.split("").map(function(c) {
|
||||
return ("0" + c.charCodeAt(0).toString(16)).slice(-2);
|
||||
}).join("");
|
||||
}
|
||||
|
||||
var hexToBytes= function(hex) {
|
||||
for (var bytes = [], c = 0; c < hex.length; c += 2)
|
||||
bytes.push(parseInt(hex.substr(c, 2), 16));
|
||||
return bytes;
|
||||
}
|
||||
|
||||
// Convert a hex string to a ASCII string
|
||||
var hexToString = function(hexStr) {
|
||||
var hex = hexStr.toString();//force conversion
|
||||
var str = '';
|
||||
for (var i = 0; i < hex.length; i += 2)
|
||||
str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
|
||||
return str;
|
||||
}
|
||||
|
||||
var hexToBase64 = function(hexStr){
|
||||
return HexToBase64(hexStr);
|
||||
}
|
||||
|
||||
var base64ToString = function(base64str){
|
||||
return base64decode(base64str);
|
||||
}
|
||||
|
||||
|
||||
function encodeUtf8(text) {
|
||||
const code = encodeURIComponent(text);
|
||||
const bytes = [];
|
||||
@@ -546,6 +567,10 @@ if ( module ) {
|
||||
utf8ToBase64,
|
||||
base64ToUtf8,
|
||||
utf8ToHex,
|
||||
hexToUtf8
|
||||
hexToUtf8,
|
||||
formatBytes
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
+50
-50
@@ -1,51 +1,51 @@
|
||||
const os = require('os');
|
||||
const fs = require("fs");
|
||||
const Windows = "Windows";
|
||||
const Linux = "Linux";
|
||||
|
||||
module.exports = {
|
||||
|
||||
Windows, Linux,
|
||||
|
||||
/**
|
||||
* 根据 os 不同,载入不同的方法
|
||||
*/
|
||||
choise : function ( cbs ) {
|
||||
if (os.type() === 'Windows_NT') {
|
||||
// windows平台
|
||||
return cbs && cbs[ Windows ]
|
||||
}
|
||||
else if (os.type() === 'Linux') {
|
||||
// Linux平台
|
||||
return cbs && cbs[ Linux ]
|
||||
}
|
||||
else {
|
||||
throw { message : "不支持的 OS" }
|
||||
}
|
||||
},
|
||||
|
||||
cur : function () {
|
||||
let isLinux = false;
|
||||
// 操作系统不同,安装方式不同
|
||||
let curOS = os.type()
|
||||
if ( curOS === "Windows_NT" ) {
|
||||
curOS = "Windows"
|
||||
}
|
||||
else if ( curOS === "Linux" ) {
|
||||
isLinux = true;
|
||||
const fs = require('fs');
|
||||
if( fs.existsSync('/etc/alpine-release') ){
|
||||
curOS = "Alpine"
|
||||
}
|
||||
}
|
||||
|
||||
let curPlatform = os.arch()
|
||||
if ( curPlatform === "x64" ) {
|
||||
curPlatform = "X86_64"
|
||||
} else if ( curPlatform.startsWith("arm") ) {
|
||||
curPlatform = "ARM64"
|
||||
}
|
||||
|
||||
return { isLinux, curOS, curPlatform }
|
||||
}
|
||||
const os = require('os');
|
||||
const fs = require("fs");
|
||||
const Windows = "Windows";
|
||||
const Linux = "Linux";
|
||||
|
||||
module.exports = {
|
||||
|
||||
Windows, Linux,
|
||||
|
||||
/**
|
||||
* 根据 os 不同,载入不同的方法
|
||||
*/
|
||||
choise : function ( cbs ) {
|
||||
if (os.type() === 'Windows_NT') {
|
||||
// windows平台
|
||||
return cbs && cbs[ Windows ]
|
||||
}
|
||||
else if (os.type() === 'Linux') {
|
||||
// Linux平台
|
||||
return cbs && cbs[ Linux ]
|
||||
}
|
||||
else {
|
||||
throw { message : "不支持的 OS" }
|
||||
}
|
||||
},
|
||||
|
||||
cur : function () {
|
||||
let isLinux = false;
|
||||
// 操作系统不同,安装方式不同
|
||||
let curOS = os.type()
|
||||
if ( curOS === "Windows_NT" ) {
|
||||
curOS = "Windows"
|
||||
}
|
||||
else if ( curOS === "Linux" ) {
|
||||
isLinux = true;
|
||||
const fs = require('fs');
|
||||
if( fs.existsSync('/etc/alpine-release') ){
|
||||
curOS = "Alpine"
|
||||
}
|
||||
}
|
||||
|
||||
let curPlatform = os.arch()
|
||||
if ( curPlatform === "x64" ) {
|
||||
curPlatform = "X86_64"
|
||||
} else if ( curPlatform.startsWith("arm") ) {
|
||||
curPlatform = "ARM64"
|
||||
}
|
||||
|
||||
return { isLinux, curOS, curPlatform }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user