mirror of
https://github.com/shufflewzc/faker3.git
synced 2024-11-14 07:29:18 +08:00
1530 lines
43 KiB
JavaScript
1530 lines
43 KiB
JavaScript
const CryptoJS = require("crypto-js");
|
||
const {JSDOM,ResourceLoader} = require("jsdom");
|
||
const {CookieJar} = require("tough-cookie");
|
||
const axios = require("axios");
|
||
const {HttpCookieAgent, HttpsCookieAgent} = require('http-cookie-agent/http')
|
||
const crc32 = require('crc').crc32;
|
||
|
||
|
||
class BaseUtils {
|
||
constructor() {
|
||
global.baseUtils = this
|
||
}
|
||
|
||
requestUrl = {
|
||
gettoken: "https://rjsb-token-m.jd.com/gettoken",
|
||
bypass: "https://blackhole.m.jd.com/bypass",
|
||
getInfo: "https://blackhole.m.jd.com/getinfo"
|
||
}
|
||
|
||
webview = {
|
||
unionwsws_param: {
|
||
iOS: {
|
||
routerURL: "router://JDUnionFingerprintModule/getUnionFingerprintForH5",
|
||
callBackName: "fingerPrintCallback"
|
||
},
|
||
android: {
|
||
businessType: "unionFingerPrint",
|
||
callBackName: "fingerPrintCallback"
|
||
}
|
||
},
|
||
getStorage: (e) => {
|
||
return JSON.parse(localStorage.getItem(e));
|
||
},
|
||
setStorage: (e, t) => {
|
||
localStorage.setItem(e, JSON.stringify(t));
|
||
},
|
||
getIosFingerprint: function () {
|
||
console.log('不支持获取IOS指纹')
|
||
// if (0 === navigator.userAgent.indexOf("jdapp")) {
|
||
// if (-1 !== navigator.userAgent.indexOf("supportJDSHWK/1") || window._is_jdsh_wkwebview == 1) {
|
||
// window.webkit.messageHandlers.JDAppUnite.postMessage({
|
||
// method: "callSyncRouterModuleWithParams",
|
||
// params: JSON.stringify(this.unionwsws_param.iOS)
|
||
// })
|
||
// } else {
|
||
// window.JDAppUnite.callRouterModuleWithParams(JSON.stringify(this.unionwsws_param.iOS))
|
||
// }
|
||
// }
|
||
},
|
||
getAndroidFingerprint: () => {
|
||
// TODO
|
||
console.log('Android 获取指纹待实现')
|
||
// if (this.isWKWebView()) {
|
||
// window.webkit.messageHandlers.JDAppUnite.postMessage({
|
||
// method: "notifyMessageToNative",
|
||
// params: JSON.stringify(this.unionwsws_param.android)
|
||
// });
|
||
// } else if (window.JdAndroid) {
|
||
// window.JdAndroid.notifyMessageToNative(JSON.stringify(this.unionwsws_param.android));
|
||
// }
|
||
},
|
||
getAppFingerprint: () => {
|
||
try {
|
||
var o = navigator.userAgent.toLowerCase();
|
||
|
||
if (/iphone|ipad|ios|ipod/.test(o)) {
|
||
this.webview.getIosFingerprint();
|
||
} else if (/android/.test(o)) {
|
||
this.webview.getAndroidFingerprint();
|
||
}
|
||
} catch (e) {
|
||
console.log(e);
|
||
}
|
||
|
||
return JSON.stringify(this.webview.getStorage("unionwsws"));
|
||
},
|
||
isWKWebView: () => {
|
||
return navigator.userAgent.match(/supportJDSHWK/i) || 1 === window._is_jdsh_wkwebview;
|
||
}
|
||
}
|
||
|
||
changeEnv(url, cookieStr, userAgent) {
|
||
let ptPin = this.extractPtPin(cookieStr);
|
||
if (ptPin && global.document) {
|
||
let localPtPin = this.extractPtPin(document.cookie);
|
||
if (localPtPin === ptPin) {
|
||
return
|
||
}
|
||
}
|
||
|
||
let jar = new CookieJar();
|
||
|
||
global.api = axios.create({
|
||
httpAgent: new HttpCookieAgent({
|
||
cookies: {jar}
|
||
}),
|
||
httpsAgent: new HttpsCookieAgent({
|
||
cookies: {jar},
|
||
ciphers: 'TLS_AES_256_GCM_SHA384'
|
||
})
|
||
});
|
||
|
||
const resourceLoader = new ResourceLoader({
|
||
userAgent
|
||
});
|
||
|
||
let dom = new JSDOM(``, {
|
||
url,
|
||
resources: resourceLoader,
|
||
cookieJar: jar
|
||
});
|
||
|
||
global.window = dom.window
|
||
global.document = window.document
|
||
|
||
global.location = {
|
||
...window.location,
|
||
}
|
||
|
||
global.navigation = {
|
||
...window.navigation,
|
||
}
|
||
|
||
global.screen = {
|
||
availHeight: 1032,
|
||
availLeft: 0,
|
||
availTop: 0,
|
||
availWidth: 1920,
|
||
colorDepth: 24,
|
||
height: 1080,
|
||
isExtended: false,
|
||
onchange: null,
|
||
orientation: {
|
||
ScreenOrientation: {angle: 0, type: 'landscape-primary', onchange: null}
|
||
},
|
||
pixelDepth: 24,
|
||
width: 1920
|
||
};
|
||
window.screen = screen
|
||
window.navigation = navigation
|
||
global.navigator = window.navigator
|
||
|
||
global.localStorage = window.localStorage
|
||
global.history = window.history
|
||
|
||
if (cookieStr) {
|
||
const cookies = cookieStr.split(';');
|
||
cookies.forEach((cookieString) => {
|
||
if (cookieString) {
|
||
global.document.cookie = cookieString.concat(";domain=.jd.com;path=/;expires=2099-04-16T07:09:14.000Z");
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
// 解析cookie字符串,提取pt_pin
|
||
extractPtPin(cookies) {
|
||
const regex = /pt_pin=([^;]+)/;
|
||
const match = cookies.match(regex);
|
||
const ptPinValue = match && match[1];
|
||
return ptPinValue || "";
|
||
}
|
||
|
||
getDefaultVal(e) {
|
||
const t = {
|
||
undefined: "u",
|
||
false: "f",
|
||
true: "t"
|
||
};
|
||
return t[e] || e;
|
||
}
|
||
|
||
arrayLength(e, t, n) {
|
||
if (n) {
|
||
t.push(n);
|
||
t.length > e && t.shift()
|
||
}
|
||
}
|
||
|
||
atobFunc(e) {
|
||
try {
|
||
// this.atobPolyfill();
|
||
return window.atob(e);
|
||
} catch (e) {
|
||
return "";
|
||
}
|
||
}
|
||
|
||
baseConverter(e, t) {
|
||
let c = [], s = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", l = e, f, p = "";
|
||
if (t < 2 || t > 36) return "";
|
||
|
||
for (; l > 0;) {
|
||
f = Math.floor(l % t);
|
||
c.push(f);
|
||
l = Math.floor(l / t);
|
||
}
|
||
|
||
for (; c.length;) p += s[c.pop()];
|
||
|
||
return p;
|
||
}
|
||
|
||
isFirefox() {
|
||
return navigator.userAgent.toLowerCase().indexOf("firefox") > -1;
|
||
}
|
||
|
||
getCallStack() {
|
||
var t = this.getCallStackUnencrypted();
|
||
return CryptoJS.MD5(t).toString();
|
||
}
|
||
|
||
md5Str(e) {
|
||
return CryptoJS.MD5(e).toString();
|
||
}
|
||
|
||
getCallStackUnencrypted() {
|
||
var n = this, r;
|
||
|
||
try {
|
||
throw new Error("call_stack");
|
||
} catch (a) {
|
||
try {
|
||
var i = function (t) {
|
||
if (t.indexOf("@") > -1) {
|
||
var a = t.split("\n"), u = "";
|
||
if (a.length > 1) {
|
||
a.pop();
|
||
a.forEach(function (t) {
|
||
var a, c = t.split("@");
|
||
|
||
if (c.length >= 2) {
|
||
var s = c[1], f = s.indexOf("?"), l = s.slice(0, f).split(":");
|
||
if (l.length > 2) {
|
||
l.pop();
|
||
l.pop()
|
||
}
|
||
var p = l.join(":");
|
||
a = "".concat(c[0], "=").concat(p);
|
||
} else {
|
||
var d = t.indexOf(":");
|
||
a = "".concat((d === -1) ? t : t.slice(0, d), "=''");
|
||
}
|
||
|
||
u += "".concat("" === u ? "" : "&").concat(a);
|
||
})
|
||
}
|
||
return n.removal(u);
|
||
}
|
||
|
||
var c = t.split("at "), s = "";
|
||
if (c.length > 1) {
|
||
c.shift();
|
||
c.forEach(function (e) {
|
||
var t, n = e.split(" ");
|
||
if (n.length >= 2) {
|
||
var m = n[1];
|
||
var v = m.indexOf("(");
|
||
var d = m.indexOf("?");
|
||
var g = m.indexOf(")");
|
||
var l = (v === -1) ? "" : m.slice(v + 1, (d === -1) ? g : d);
|
||
var p = l.split(":");
|
||
if (p.length > 2) {
|
||
p.pop();
|
||
p.pop();
|
||
}
|
||
var h = p.join(":");
|
||
t = "".concat(n[0], "=").concat(h);
|
||
} else {
|
||
var y = e.indexOf(":");
|
||
t = "".concat((y === -1) ? e : e.slice(0, y), "=''");
|
||
}
|
||
s += "".concat("" === s ? "" : "&").concat(t);
|
||
})
|
||
}
|
||
return n.removal(s);
|
||
}(a.stack.toString());
|
||
if (i.length < 11) {
|
||
r = a.stack.toString().substring(0, 200);
|
||
} else {
|
||
r = i;
|
||
}
|
||
} catch (e) {
|
||
r = e.toString();
|
||
}
|
||
}
|
||
|
||
return r;
|
||
}
|
||
|
||
removal(e) {
|
||
var n = e.split("&"), r = new Map(), o = [];
|
||
n.forEach(function (e) {
|
||
var i = e.split("=");
|
||
|
||
if (r.has(i[1])) {
|
||
r.set(i[1], !0);
|
||
} else {
|
||
r.set(i[1], !1);
|
||
o.push(e);
|
||
}
|
||
})
|
||
return o.join("&");
|
||
}
|
||
|
||
getUa() {
|
||
return navigator.userAgent;
|
||
}
|
||
|
||
isMobile() {
|
||
return this.getUa().match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i);
|
||
}
|
||
|
||
ajax(e) {
|
||
return api({
|
||
method: e.type,
|
||
url: e.url,
|
||
headers: {
|
||
'content-type': 'application/x-www-form-urlencoded',
|
||
'user-agent': window.navigator.userAgent
|
||
},
|
||
data: e.data
|
||
});
|
||
}
|
||
|
||
getCurrentDate() {
|
||
return new Date();
|
||
}
|
||
|
||
getCurrentTime() {
|
||
try {
|
||
return this.getCurrentDate().getTime();
|
||
} catch (e) {
|
||
return 0;
|
||
}
|
||
}
|
||
|
||
isDevtoolOpen() {
|
||
return false;
|
||
}
|
||
|
||
toTimestamp() {
|
||
var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;
|
||
if (typeof t === "number") return t;
|
||
|
||
if (typeof t == "string") {
|
||
var o = t.match(/^(\d+(?:\.\d+)?)([smhd])$/);
|
||
|
||
if (o) {
|
||
var i;
|
||
|
||
switch (o[2]) {
|
||
case "m":
|
||
i = o[1] * 60 * 1000;
|
||
break;
|
||
|
||
case "h":
|
||
i = 60 * o[1] * 60 * 1000;
|
||
break;
|
||
|
||
case "d":
|
||
i = o[1] * 24 * 60 * 60 * 1000;
|
||
break;
|
||
|
||
default:
|
||
i = o[1] * 1000;
|
||
}
|
||
|
||
return Date.now() + Math.round(i);
|
||
}
|
||
|
||
t = t.replace(/[.-]/g, "/");
|
||
var a = new Date(t).getTime();
|
||
if (!isNaN(a)) return a;
|
||
}
|
||
|
||
return -1;
|
||
}
|
||
|
||
clearTokem(e, t) {
|
||
try {
|
||
var o = window.localStorage.getItem(e);
|
||
|
||
if (o) {
|
||
var i = JSON.parse(o);
|
||
if (i[t]) {
|
||
delete i[t];
|
||
window.localStorage.setItem(e, JSON.stringify(i))
|
||
}
|
||
}
|
||
} catch (e) {
|
||
}
|
||
}
|
||
|
||
getTokem(e, t) {
|
||
var i = "";
|
||
var u = "";
|
||
|
||
try {
|
||
var c = window.localStorage.getItem(e);
|
||
|
||
if (c) {
|
||
var s = JSON.parse(c);
|
||
|
||
if (s[t]) {
|
||
var f = s[t];
|
||
var l = f.data;
|
||
var p = f.expires;
|
||
var d = f.xcd;
|
||
var v;
|
||
|
||
if (d === void 0) {
|
||
v = "";
|
||
} else {
|
||
v = d;
|
||
}
|
||
|
||
if (this.toTimestamp(p) > Date.now()) {
|
||
i = l;
|
||
u = this.getDecode(v || "");
|
||
document.cookie = "".concat(e, "=").concat(l, ";domain=.jd.com;path=/;expires=").concat(p);
|
||
} else {
|
||
delete s[t];
|
||
window.localStorage.setItem(e, JSON.stringify(s));
|
||
}
|
||
}
|
||
}
|
||
|
||
return {
|
||
"joyytokenVal": i,
|
||
"xcdVal": u
|
||
};
|
||
} catch (e) {
|
||
return {
|
||
"joyytokenVal": i,
|
||
"xcdVal": u
|
||
};
|
||
}
|
||
}
|
||
|
||
encodeSearchKey(e) {
|
||
var n = {
|
||
"code": "%",
|
||
"encode": "%25",
|
||
};
|
||
var o = {
|
||
"code": "?",
|
||
"encode": "%3F",
|
||
};
|
||
var i = {
|
||
"code": "#",
|
||
"encode": "%23",
|
||
};
|
||
var a = {
|
||
"code": "&",
|
||
"encode": "%26",
|
||
};
|
||
var c = [n, o, i, a];
|
||
const that = this
|
||
return e.replace(/[%?#&]/g, function (e, n, o) {
|
||
var a,
|
||
u = that.createIterable(c);
|
||
|
||
try {
|
||
for (u.s(); !(a = u.n()).done;) {
|
||
var f = a.value;
|
||
if (f.code === e) return f.encode;
|
||
}
|
||
} catch (e) {
|
||
u.e(e);
|
||
} finally {
|
||
u.f();
|
||
}
|
||
});
|
||
}
|
||
|
||
getCookie(e) {
|
||
try {
|
||
var o = new RegExp("(^| )" + e + "=([^;]*)(;|$)");
|
||
var i = document.cookie.match(o);
|
||
|
||
if (i) {
|
||
if (i.length > 2 && i[2]) {
|
||
if (-1 !== i[2].indexOf("%u")) return unescape(i[2]);
|
||
|
||
if (/.*[\u4e00-\u9fa5]+.*$/.test(i[2])) {
|
||
var a = this.encodeSearchKey(i[2]);
|
||
return decodeURIComponent(a);
|
||
}
|
||
return decodeURIComponent(i[2]);
|
||
}
|
||
|
||
return "";
|
||
}
|
||
|
||
return "";
|
||
} catch (e) {
|
||
return "";
|
||
}
|
||
}
|
||
|
||
getRandomInt() {
|
||
var u = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;
|
||
var a = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 9;
|
||
|
||
u = Math.ceil(u);
|
||
a = Math.floor(a);
|
||
return Math.floor(Math.random() * (a - u + 1)) + u;
|
||
}
|
||
|
||
getRandomWord(e, t) {
|
||
for (var a = "", u = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", c = 0; c < e; c++) {
|
||
var s = u;
|
||
0 === c && t && (s = u.slice(1));
|
||
var f = Math.round(Math.random() * (s.length - 1));
|
||
a += s.substring(f, f + 1);
|
||
}
|
||
|
||
return a;
|
||
}
|
||
|
||
getNumberInString(e) {
|
||
return Number(e.replace(/[^0-9]/gi, ""));
|
||
}
|
||
|
||
getSpecialPosition(e) {
|
||
var s = !(arguments.length > 1) || !(arguments[1] !== void 0) || arguments[1];
|
||
e = String(e);
|
||
var u = s ? 1 : 0;
|
||
var c = "";
|
||
|
||
for (var a = 0; a < e.length; a++) {
|
||
a % 2 === u && (c += e[a]);
|
||
}
|
||
return c;
|
||
}
|
||
|
||
getLastAscii(e) {
|
||
var o = e.charCodeAt(0).toString();
|
||
return o[o.length - 1];
|
||
}
|
||
|
||
toAscii(e) {
|
||
var i = "";
|
||
|
||
for (var a in e) {
|
||
var u = e[a];
|
||
var c = /[a-zA-Z]/.test(u);
|
||
|
||
if (e.hasOwnProperty(a)) {
|
||
i += c ? this.getLastAscii(u) : u;
|
||
}
|
||
}
|
||
return i;
|
||
}
|
||
|
||
add0(e, t) {
|
||
return (Array(t).join("0") + e).slice(-t);
|
||
}
|
||
|
||
minusByByte(e, t) {
|
||
var o = e.length, i = t.length;
|
||
var u = Math.max(o, i), c = this.toAscii(e), s = this.toAscii(t), f = "", l = 0;
|
||
|
||
if (o !== i) {
|
||
c = this.add0(c, u);
|
||
s = this.add0(s, u)
|
||
}
|
||
for (; l < u; l++) {
|
||
f += Math.abs(c[l] - s[l]);
|
||
}
|
||
|
||
return f;
|
||
}
|
||
|
||
getLoginStatus() {
|
||
var o = this.isMobile() ? "pt_key" : "thor";
|
||
return this.getCookie(o);
|
||
}
|
||
|
||
getCookiePin() {
|
||
var o = this.getCookie("pwdt_id") || this.getCookie("pin") || "";
|
||
return CryptoJS.MD5(o).toString().toLowerCase();
|
||
}
|
||
|
||
RecursiveSorting() {
|
||
var o = this,
|
||
i = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, a = {},
|
||
u = i;
|
||
|
||
if (Object.prototype.toString.call(u) === "[object Object]") {
|
||
var c = Object.keys(u).sort(function (e, n) {
|
||
return e < n ? -1 : e > n ? 1 : 0;
|
||
});
|
||
c.forEach(function (e) {
|
||
var l = u[e];
|
||
|
||
if (Object.prototype.toString.call(l) === "[object Object]") {
|
||
a[e] = o.RecursiveSorting(l);
|
||
} else if (Object.prototype.toString.call(l) === "[object Array]") {
|
||
for (var d = [], h = 0; h < l.length; h++) {
|
||
var v = l[h];
|
||
|
||
if (Object.prototype.toString.call(v) === "[object Object]") {
|
||
d[h] = o.RecursiveSorting(v);
|
||
} else {
|
||
d[h] = v;
|
||
}
|
||
}
|
||
|
||
a[e] = d;
|
||
} else {
|
||
a[e] = l;
|
||
}
|
||
});
|
||
} else {
|
||
a = i;
|
||
}
|
||
|
||
return a;
|
||
}
|
||
|
||
objToString2() {
|
||
var n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
|
||
|
||
var r = "";
|
||
Object.keys(n).forEach(function (e) {
|
||
var u = n[e];
|
||
if (u != null) {
|
||
if (u instanceof Object || u instanceof Array) {
|
||
r += "".concat(r === "" ? "" : "&").concat(e, "=").concat(JSON.stringify(u));
|
||
} else {
|
||
r += "".concat(r === "" ? "" : "&").concat(e, "=").concat(u);
|
||
}
|
||
}
|
||
})
|
||
return r;
|
||
}
|
||
|
||
objToString() {
|
||
var u = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
|
||
|
||
var a = "";
|
||
Object.keys(u).sort(function (e, n) {
|
||
return e < n ? -1 : e > n ? 1 : 0;
|
||
}).forEach(function (e) {
|
||
var n = u[e];
|
||
if (n != null) {
|
||
a += "".concat(a === "" ? "" : "&").concat(e, "=").concat(n);
|
||
}
|
||
});
|
||
return a;
|
||
}
|
||
|
||
getCookieJdu() {
|
||
return "" === this.getCookie("__jdu") ? this.getCookie("__jda") === "" ? "" : this.getCookie("__jda").split(".")[1] : this.getCookie("__jdu");
|
||
}
|
||
|
||
getTouchSession() {
|
||
var e = new Date().getTime();
|
||
var t = this.getRandomInt(1000, 9999);
|
||
return String(e) + String(t);
|
||
}
|
||
|
||
collectVoteFilter() {
|
||
var u = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "0";
|
||
var a = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "100";
|
||
var i = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : [];
|
||
var s = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : "";
|
||
try {
|
||
if ("1" === u) {
|
||
return i.filter(function (t) {
|
||
var r = t[s].substring(t[s].length - 2);
|
||
if (r[0] === "0") {
|
||
r = r.substring(1)
|
||
}
|
||
if (Number(r) < Number(a)) {
|
||
return !0;
|
||
}
|
||
})
|
||
}
|
||
return i;
|
||
} catch (e) {
|
||
return i;
|
||
}
|
||
}
|
||
|
||
getPluginsNum() {
|
||
var t;
|
||
try {
|
||
t = window.navigator.plugins.length;
|
||
} catch (e) {
|
||
t = "c";
|
||
}
|
||
return t;
|
||
}
|
||
|
||
getGPUMes() {
|
||
window.localStorage.gpuAll = '{"gpuServiceProvider":"ARM","gpuBrand":"Mali-G610 MC6"}'
|
||
return ["ARM", "Mali-G610 MC6"];
|
||
}
|
||
|
||
getLangNum() {
|
||
var t = "";
|
||
|
||
try {
|
||
t = window.navigator.languages.length;
|
||
} catch (e) {
|
||
}
|
||
|
||
return t;
|
||
}
|
||
|
||
getChromeAttribute() {
|
||
return "";
|
||
}
|
||
|
||
getConfigurable_Enumerable() {
|
||
return ["11", "11", "11", "11"];
|
||
}
|
||
|
||
getBatteryStatus() {
|
||
return ["t", Infinity, Infinity, 0.77];
|
||
}
|
||
|
||
encrypt1(e, t) {
|
||
for (var i = e.length, a = t.toString(), u = [], c = "", s = "", f = 0, l = 0; l < a.length; l++) {
|
||
if (f >= i) f = (f % i);
|
||
c = a.charCodeAt(l) ^ e.charCodeAt(f);
|
||
s = c % 10;
|
||
u.push(s);
|
||
f = f + 1;
|
||
}
|
||
|
||
return u.join().replace(/,/g, "");
|
||
}
|
||
|
||
len_Fun(e, t) {
|
||
return "".concat(e.substring(t, e.length)) + "".concat(e.substring(0, t));
|
||
}
|
||
|
||
encrypt2(e, t) {
|
||
var i = t.toString(), a = t.toString().length,
|
||
u = parseInt((a + e.length) / 3);
|
||
var s = "", f = "";
|
||
|
||
if (a > e.length) {
|
||
s = this.len_Fun(i, u);
|
||
f = this.encrypt1(e, s);
|
||
} else {
|
||
s = this.len_Fun(e, u);
|
||
f = this.encrypt1(i, s);
|
||
}
|
||
|
||
return f;
|
||
}
|
||
|
||
addZeroFront(e) {
|
||
return e && e.length >= 5 ? e : ("00000" + String(e)).substr(-5);
|
||
}
|
||
|
||
addZeroBack(e) {
|
||
return e && e.length >= 5 ? e : (String(e) + "00000").substr(0, 5);
|
||
}
|
||
|
||
encrypt3(e, t) {
|
||
var s = this.addZeroBack(t).toString().substring(0, 5);
|
||
var u = this.addZeroFront(e).substring(e.length - 5);
|
||
|
||
var l = s.length;
|
||
var f = [];
|
||
|
||
for (let i = 0; i < l; i++) {
|
||
f.push(Math.abs(s.charCodeAt(i) - u.charCodeAt(i)));
|
||
}
|
||
return f.join().replace(/,/g, "");
|
||
}
|
||
|
||
encrypt7(e, t) {
|
||
try {
|
||
var h = e.split("").reverse().join("");
|
||
var p = (String(t) + "000000").slice(0, 13);
|
||
var v = p.slice(9, 12);
|
||
var l = "".concat(h).concat(v);
|
||
var d = [];
|
||
var c = "";
|
||
for (var s = 0; s < p.length; s++) {
|
||
var f = (p.charCodeAt(s) & l.charCodeAt(s)).toString(16);
|
||
d.push(f);
|
||
}
|
||
c = d.join("");
|
||
return c;
|
||
} catch (e) {
|
||
return null;
|
||
}
|
||
}
|
||
|
||
encrypt8(e, t) {
|
||
try {
|
||
let a = t.toString(),
|
||
u = a.substr(0, 1),
|
||
c = a.substr(1) + u,
|
||
s = e.substr(-1),
|
||
f = (s + e.substr(0, e.length - 1)).split("").reverse().join(""),
|
||
l = a.slice(-3),
|
||
p = "".concat(f).concat(l),
|
||
d = [],
|
||
h = 0;
|
||
for (; h < c.length; h++) {
|
||
var v = (c.charCodeAt(h) ^ p.charCodeAt(h)).toString(16);
|
||
d.push(v);
|
||
}
|
||
|
||
return d.join("");
|
||
} catch (e) {
|
||
return null;
|
||
}
|
||
}
|
||
|
||
encrypt9(e, t) {
|
||
try {
|
||
let i = t.toString(),
|
||
a = e.split("").reverse().join("").slice(0, 5),
|
||
u = (String(t) + "000000").slice(0, 13).slice(-5),
|
||
c = "",
|
||
s = 0;
|
||
for (; s < a.length; s++) {
|
||
c += "".concat(a.charAt(s)).concat(u.charAt(s));
|
||
}
|
||
|
||
c += c.slice(0, i.length - c.length);
|
||
|
||
for (var f = [], l = 0; l < i.length; l++) {
|
||
var p = (i.charCodeAt(l) ^ c.charCodeAt(l)).toString(16);
|
||
f.push(p);
|
||
}
|
||
|
||
return f.join("");
|
||
} catch (e) {
|
||
return null;
|
||
}
|
||
}
|
||
|
||
encryptA(e, t) {
|
||
try {
|
||
var a = t.toString(),
|
||
u = e.split("").reverse().join("");
|
||
u += u.slice(0, a.length - u.length);
|
||
|
||
for (var c = [], s = 0; s < a.length; s++) {
|
||
var f = a.charCodeAt(s) | u.charCodeAt(s);
|
||
var l = (f % 15).toString(16);
|
||
c.push(l);
|
||
}
|
||
|
||
for (var p = c.join(""), d = "", h = "", v = 0; v < p.length; v++) {
|
||
if (v % 2 === 0) {
|
||
d += p.charAt(v);
|
||
} else {
|
||
h += p.charAt(v);
|
||
}
|
||
}
|
||
|
||
return "".concat(d).concat(h);
|
||
} catch (e) {
|
||
return null;
|
||
}
|
||
}
|
||
|
||
encryptB(e, t) {
|
||
try {
|
||
var d = t.toString();
|
||
var s = e.toString();
|
||
var c = d + s;
|
||
var v = (s + d).split("").reverse().join("");
|
||
var h = [];
|
||
for (var f = 0; f < c.length; f++) {
|
||
var l = c.charCodeAt(f) ^ v.charCodeAt(f),
|
||
p = (l % 15).toString(16);
|
||
h.push(p);
|
||
}
|
||
return h.join("");
|
||
} catch (e) {
|
||
return null;
|
||
}
|
||
}
|
||
|
||
encryptC(e, t) {
|
||
try {
|
||
var a, u = t.toString(),
|
||
c = e.toString(),
|
||
s = u.split(""),
|
||
f = c.split(""),
|
||
l = [],
|
||
p = [];
|
||
if (s.length > f.length) {
|
||
a = f.length;
|
||
p = s;
|
||
} else {
|
||
a = s.length;
|
||
p = f;
|
||
}
|
||
|
||
for (var d = 0; d < a; d++) {
|
||
l.push(s[d]);
|
||
l.push(f[d]);
|
||
}
|
||
|
||
for (var h = l.concat(p.slice(a)).join(""), v = (c + u).split("").reverse().join(""), m = [], g = 0; g < h.length; g++) {
|
||
var y = h.charCodeAt(g) ^ v.charCodeAt(g);
|
||
var w = (y % 15).toString(16);
|
||
m.push(w);
|
||
}
|
||
|
||
return m.join("");
|
||
} catch (e) {
|
||
return null;
|
||
}
|
||
}
|
||
|
||
encryptD(e, t) {
|
||
try {
|
||
var c = t.toString();
|
||
var l = c.slice(-5);
|
||
var b = e.toString();
|
||
var d = l.split("");
|
||
var m = b.split("");
|
||
var f = [];
|
||
for (var y = 0; y < d.length; y++) {
|
||
var w = d[y] % m.length;
|
||
f.push(m[w]);
|
||
}
|
||
var _ = [];
|
||
for (var g = 0; g < m.length; g++) {
|
||
if (g % 2 !== 0) {
|
||
f.push(m[g]);
|
||
} else {
|
||
_.push(m[g]);
|
||
}
|
||
}
|
||
f = f.reverse().join("");
|
||
var x = d.reverse();
|
||
var s = _.concat(x);
|
||
s = s.join("");
|
||
var p = [];
|
||
for (var h = 0; h < f.length; h++) {
|
||
var v = ((f.charCodeAt(h) ^ s.charCodeAt(h)) % 15).toString(16);
|
||
p.push(v);
|
||
}
|
||
return p.join("");
|
||
} catch (e) {
|
||
return null;
|
||
}
|
||
}
|
||
|
||
getDefaultArr(e) {
|
||
return new Array(e).fill("a");
|
||
}
|
||
|
||
getExceptArr(e) {
|
||
return new Array(e).fill("c");
|
||
}
|
||
|
||
getUndefinedArr(e) {
|
||
return new Array(e).fill("u");
|
||
}
|
||
|
||
getFailedArr(e) {
|
||
return new Array(e).fill("f");
|
||
}
|
||
|
||
ArrayFillPolyfill() {
|
||
}
|
||
|
||
getExceptData(e) {
|
||
try {
|
||
return e();
|
||
} catch (e) {
|
||
return "c";
|
||
}
|
||
}
|
||
|
||
getNaviParam(e) {
|
||
return this.getExceptData(function () {
|
||
return navigator[e] || "u";
|
||
});
|
||
}
|
||
|
||
getCookieEnabled() {
|
||
return "t";
|
||
}
|
||
|
||
getSessionStorage() {
|
||
return "t";
|
||
}
|
||
|
||
getLocalStorage() {
|
||
return "t";
|
||
}
|
||
|
||
getIsMobileOne() {
|
||
return "t";
|
||
}
|
||
|
||
getIsMobileTwo() {
|
||
return "t";
|
||
}
|
||
|
||
getIsNodeEnv() {
|
||
return "f";
|
||
}
|
||
|
||
getHasNodeVM2() {
|
||
return "f";
|
||
}
|
||
|
||
getExistWebdriver() {
|
||
return "f";
|
||
}
|
||
|
||
getDetectPhantomjs() {
|
||
return "f";
|
||
}
|
||
|
||
getPageDomNum() {
|
||
var o;
|
||
|
||
try {
|
||
o = [
|
||
document.querySelectorAll("script").length,
|
||
document.querySelectorAll("div").length,
|
||
document.querySelectorAll("link").length,
|
||
document.querySelectorAll("meta").length,
|
||
history.length,
|
||
navigator.maxTouchPoints
|
||
];
|
||
} catch (e) {
|
||
o = this.getExceptArr(6);
|
||
}
|
||
|
||
return o;
|
||
}
|
||
|
||
getJdKey() {
|
||
var e = this;
|
||
return this.getExceptData(function () {
|
||
var r = {
|
||
"jdkey": "a"
|
||
};
|
||
return (e.webview.getStorage("unionwsws") || r).jdkey;
|
||
});
|
||
}
|
||
|
||
getAppBuild() {
|
||
return this.getExceptData(function () {
|
||
return navigator.userAgent.match(/appBuild\/([\d]+)/i)[1];
|
||
});
|
||
}
|
||
|
||
getAppVersion() {
|
||
var n = navigator.userAgent;
|
||
return n && n.indexOf("jdapp") === 0 && n.split(";")[2] || null;
|
||
}
|
||
|
||
getNaviConnection() {
|
||
var t;
|
||
try {
|
||
t = [navigator.connection.downlink || "u", navigator.connection.effectiveType || "u"];
|
||
} catch (r) {
|
||
t = this.getExceptArr(2);
|
||
}
|
||
return t;
|
||
}
|
||
|
||
getScreen() {
|
||
var e;
|
||
try {
|
||
var n = window.screen;
|
||
e = [n.height, n.width];
|
||
} catch (n) {
|
||
e = this.getExceptArr(6);
|
||
}
|
||
return e;
|
||
}
|
||
|
||
getIosAppDetail() {
|
||
let s = "";
|
||
// console.log('不支持获取IOS应用信息')
|
||
// var u = this.getDefaultVal(typeof $request != "undefined");
|
||
// var h = this.getDefaultVal((typeof $httpClient != "undefined"));
|
||
// var p = this.getDefaultVal(typeof $task != "undefined");
|
||
// var l = this.getDefaultVal((typeof $loon != "undefined"));
|
||
// var f = this.getDefaultVal((typeof $app != "undefined") && (typeof $http != "undefined"));
|
||
// var a = this.getDefaultVal(("function" == "function") && !f);
|
||
// var d = this.getDefaultVal(typeof window != "undefined");
|
||
// var c = this.getDefaultVal(typeof navigator != "undefined");
|
||
// s = "" + u + h + p + l + f + a + d + c;
|
||
return s;
|
||
}
|
||
|
||
getAutoJs() {
|
||
return "u";
|
||
}
|
||
|
||
getExistMiniblink() {
|
||
return "u";
|
||
}
|
||
|
||
getCrcCode(e) {
|
||
var r = "0000000", o = "";
|
||
|
||
try {
|
||
o = crc32(e).toString(36);
|
||
r = this.addZeroToSeven(o);
|
||
} catch (e) {
|
||
}
|
||
|
||
return r;
|
||
}
|
||
|
||
addZeroToSeven(e) {
|
||
return e && e.length >= 7 ? e : ("0000000" + String(e)).substr(-7);
|
||
}
|
||
|
||
xorEncrypt(e, t) {
|
||
var l = this.getCurrentTime();
|
||
var f = t.length;
|
||
var h = "";
|
||
for (var p = 0; p < e.length; p++) {
|
||
h += String.fromCharCode(e[p].charCodeAt() ^ t[p % f].charCodeAt());
|
||
}
|
||
var c = this.getCurrentTime();
|
||
var s = c - l;
|
||
return {
|
||
xorEncrypted: h,
|
||
totalTime: s
|
||
};
|
||
}
|
||
|
||
utoa(e) {
|
||
// this.btoaPolyfill();
|
||
return window.btoa(unescape(encodeURIComponent(e)));
|
||
}
|
||
|
||
// btoaPolyfill() {
|
||
// var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
|
||
//
|
||
// window.btoa = window.btoa || function (o) {
|
||
// for (var u, c, s, f, l = "", p = 0, d = (o = String(o)).length % 3; p < o.length;) {
|
||
// if ((c = o.charCodeAt(p++)) > 255 || (s = o.charCodeAt(p++) > 255) || (f = o.charCodeAt(p++) > 255)) {
|
||
// throw new TypeError("Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.");
|
||
// }
|
||
// u = c << 16 | s << 8 | f;
|
||
// l += t.charAt(u >> 18 & 63) + t.charAt(u >> 12 & 63) + t.charAt(u >> 6 & 63) + t.charAt(63 & u);
|
||
// }
|
||
//
|
||
// return d ? l.slice(0, d - 3) + "===".substring(d) : l;
|
||
// };
|
||
// }
|
||
|
||
inArr(e) {
|
||
return !(Number(e) in [1, 2, 3, 4, 5, 6, 7, 8, 9]);
|
||
}
|
||
|
||
getInRange(e, t, n) {
|
||
var l = n;
|
||
var f = t;
|
||
this.inArr(n) && (l = String(n).charCodeAt(0));
|
||
this.inArr(t) && (f = String(t).charCodeAt(0));
|
||
var c = [];
|
||
const that = this
|
||
e.map(function (e) {
|
||
var n = e;
|
||
that.inArr(e) && (n = String(e).charCodeAt(0));
|
||
n >= f && n <= l && c.push(e);
|
||
});
|
||
return c;
|
||
}
|
||
|
||
isApp(e) {
|
||
var i = navigator.userAgent;
|
||
return e === "jd" ? /^jdapp/i.test(i) : e === "jdjr" && /JDJR-App/i.test(i);
|
||
}
|
||
|
||
isAndroid() {
|
||
var o = navigator.userAgent;
|
||
return o.indexOf("Android") > -1 || o.indexOf("Linux") > -1;
|
||
}
|
||
|
||
isIOS() {
|
||
return !!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
|
||
}
|
||
|
||
versionCompare(e, t) {
|
||
if (e === t) return 0;
|
||
e = e.split(".");
|
||
t = t.split(".");
|
||
var s = e.length - t.length;
|
||
var l = [];
|
||
for (var c = 0; c < Math.abs(s); c++) l.push(0);
|
||
if (s > 0) {
|
||
t = t.concat(l);
|
||
} else {
|
||
s < 0 && (e = e.concat(l));
|
||
}
|
||
for (var f = 0; f < e.length; f++) {
|
||
if (e[f] = parseInt(e[f], 10), t[f] = parseInt(t[f], 10), e[f] > t[f]) return 1;
|
||
if (e[f] < t[f]) return -1;
|
||
}
|
||
return 0;
|
||
}
|
||
|
||
isDuringDate(e, t) {
|
||
try {
|
||
var n = new Date(), r = new Date(e), o = new Date(t);
|
||
return n >= r && n <= o;
|
||
} catch (e) {
|
||
return !1;
|
||
}
|
||
}
|
||
|
||
isNotEmptyString(e) {
|
||
return typeof e === "string" && e !== "" && e.trim() !== "" && e !== "null" && e !== "undefined";
|
||
}
|
||
|
||
urlSafeBase64Decode(e) {
|
||
return e ? e.replace(/-/g, "+").replace(/_/g, "/") : "";
|
||
}
|
||
|
||
getDecode(e) {
|
||
try {
|
||
e = this.urlSafeBase64Decode(e);
|
||
return decodeURIComponent(this.atobFunc(e).split("").map(function (e) {
|
||
return "%" + ("00" + e.charCodeAt(0).toString(16)).slice(-2);
|
||
}).join(""));
|
||
} catch (e) {
|
||
return "";
|
||
}
|
||
}
|
||
|
||
stringToByte(e) {
|
||
var u = [];
|
||
var s;
|
||
var f;
|
||
s = e.length;
|
||
|
||
for (var c = 0; c < s; c++) {
|
||
f = e.charCodeAt(c);
|
||
|
||
if (f >= 65536 && f <= 1114111) {
|
||
u.push(7 & f >> 18 | 240);
|
||
u.push(f >> 12 & 63 | 128);
|
||
u.push(f >> 6 & 63 | 128);
|
||
u.push(f & 63 | 128);
|
||
} else {
|
||
if (f >= 2048 && f <= 65535) {
|
||
u.push(15 & f >> 12 | 224);
|
||
u.push(f >> 6 & 63 | 128);
|
||
u.push(128 | f & 63);
|
||
} else {
|
||
if (f >= 128 && f <= 2047) {
|
||
u.push(f >> 6 & 31 | 192);
|
||
u.push(f & 63 | 128);
|
||
} else {
|
||
u.push(f & 255);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
return u;
|
||
}
|
||
|
||
BKDRHash(e) {
|
||
try {
|
||
var s = 31;
|
||
var u = 0;
|
||
e = this.stringToByte(e);
|
||
if (!e || e.length < 1) return "";
|
||
for (var c = 0; c < e.length; c++) {
|
||
u = u * s + e[c];
|
||
u = u >>> 0;
|
||
}
|
||
var f = u & 2147483647;
|
||
return f.toString(16).toUpperCase();
|
||
} catch (e) {
|
||
return "";
|
||
}
|
||
}
|
||
|
||
rewriteToString(e) {
|
||
// e && Object.keys(e).forEach(function (t) {
|
||
// e[t].toString = function () {
|
||
// return "";
|
||
// };
|
||
// });
|
||
}
|
||
|
||
createIterable(e, t) {
|
||
var r = (typeof Symbol !== "undefined") && e[Symbol.iterator] || e["@@iterator"];
|
||
|
||
if (!r) {
|
||
if (Array.isArray(e) || (r = this.convertToIterable(e)) || (t && e) && (typeof e.length === "number")) {
|
||
r && (e = r);
|
||
|
||
var s = 0,
|
||
f = function () {
|
||
},
|
||
l = {
|
||
"s": f,
|
||
"n": function () {
|
||
var t = {};
|
||
if (t.done = !0, s >= e.length) return t;
|
||
var r = {};
|
||
r.done = !1;
|
||
r.value = e[s++];
|
||
return r;
|
||
}, "e": function (e) {
|
||
throw e;
|
||
}, "f": f
|
||
};
|
||
|
||
return l;
|
||
}
|
||
|
||
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
||
}
|
||
|
||
var d, h = !0, v = !1;
|
||
return {
|
||
s: function () {
|
||
r = r.call(e);
|
||
}, n: function () {
|
||
var e = r.next();
|
||
h = e.done;
|
||
return e;
|
||
}, e: function (e) {
|
||
v = !0;
|
||
d = e;
|
||
}, f: function () {
|
||
try {
|
||
!h && (r.return != null) && r.return();
|
||
} finally {
|
||
if (v) throw d;
|
||
}
|
||
}
|
||
};
|
||
}
|
||
|
||
convertToIterable(e, t) {
|
||
if (!e) return;
|
||
if (typeof e === "string") return this.sliceToArray(e, t);
|
||
var c = Object.prototype.toString.call(e).slice(8, -1);
|
||
(c === "Object") && e.constructor && (c = e.constructor.name);
|
||
if ((c === "Map") || (c === "Set")) return Array.from(e);
|
||
if ((c === "Arguments") || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)) return this.sliceToArray(e, t);
|
||
}
|
||
|
||
sliceToArray(e, t) {
|
||
(t == null || t > e.length) && (t = e.length);
|
||
|
||
for (var o = 0, i = new Array(t); o < t; o++) i[o] = e[o];
|
||
|
||
return i;
|
||
}
|
||
|
||
encrypt(e, t, n) {
|
||
const that = this;
|
||
return {
|
||
1: function () {
|
||
var e = that.getNumberInString(t);
|
||
var u = that.getSpecialPosition(n);
|
||
return Math.abs(e - u);
|
||
},
|
||
2: function () {
|
||
var r = that.getSpecialPosition(t, !1);
|
||
var a = that.getSpecialPosition(n);
|
||
return that.minusByByte(r, a);
|
||
},
|
||
3: function () {
|
||
var e = t.slice(0, 5),
|
||
r = String(n).slice(-5);
|
||
return that.minusByByte(e, r);
|
||
},
|
||
4: function () {
|
||
return that.encrypt1(t, n);
|
||
},
|
||
5: function () {
|
||
return that.encrypt2(t, n);
|
||
},
|
||
6: function () {
|
||
return that.encrypt3(t, n);
|
||
},
|
||
7: function () {
|
||
return that.encrypt7(t, n);
|
||
},
|
||
8: function () {
|
||
return that.encrypt8(t, n);
|
||
},
|
||
9: function () {
|
||
return that.encrypt9(t, n);
|
||
},
|
||
A: function () {
|
||
return that.encryptA(t, n);
|
||
},
|
||
B: function () {
|
||
return that.encryptB(t, n);
|
||
},
|
||
C: function () {
|
||
return that.encryptC(t, n);
|
||
},
|
||
D: function () {
|
||
return that.encryptD(t, n);
|
||
}
|
||
}[e]();
|
||
}
|
||
|
||
isFunction(t) {
|
||
return "function" == typeof t;
|
||
}
|
||
|
||
emptyFunction() {
|
||
}
|
||
|
||
decodeBase64URL(encodedString) {
|
||
return (encodedString + '===').slice(0, encodedString.length + 3 - (encodedString.length + 3) % 4)
|
||
.replace(/-/g, '+')
|
||
.replace(/_/g, '/');
|
||
}
|
||
|
||
getDefaultMethod(obj, methodName) {
|
||
const e = obj[methodName];
|
||
return obj === Array.prototype || Array.prototype.isPrototypeOf(obj) && e === Array.prototype[methodName] ? Array.prototype[methodName] : e
|
||
}
|
||
|
||
getRandomIDPro() {
|
||
var t, e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, r = e.size,
|
||
n = void 0 === r ? 10 : r, o = e.dictType, i = void 0 === o ? "number" : o, a = e.customDict, u = "";
|
||
if (a && "string" == typeof a) t = a; else switch (i) {
|
||
case"alphabet":
|
||
t = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||
break;
|
||
case"max":
|
||
t = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-";
|
||
break;
|
||
default:
|
||
t = "0123456789"
|
||
}
|
||
for (; n--;) u += t[Math.random() * t.length | 0];
|
||
return u
|
||
}
|
||
|
||
fromBase64(t) {
|
||
return t.replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "")
|
||
}
|
||
|
||
toBase64(t) {
|
||
return (t + this.getDefaultMethod("===", 'slice').call("===", (t.length + 3) % 4)).replace(/-/g, "+").replace(/_/g, "/")
|
||
}
|
||
|
||
isPlainObject(t) {
|
||
return "[object Object]" === Object.prototype.toString.call(t)
|
||
}
|
||
|
||
isEmpty(t) {
|
||
return !!this.isPlainObject(t) && !Object.keys(t).length
|
||
}
|
||
|
||
containsReservedParamName(t) {
|
||
const PS = ["h5st", "_stk", "_ste"];
|
||
for (var e = Object.keys(t), r = 0; r < e.length; r++) {
|
||
var n = e[r];
|
||
if (this.getDefaultMethod(PS, 'indexOf').call(PS, n) >= 0) return !0
|
||
}
|
||
return !1
|
||
}
|
||
|
||
isSafeParamValue(t) {
|
||
let Bp = "function" == typeof Object.Symbol && "symbol" == typeof Object.f("iterator") ? function (t) {
|
||
return typeof t
|
||
} : function (t) {
|
||
return t && "function" == typeof Object.Symbol && t.constructor === Object.Symbol && t !== Object.Symbol.prototype ? "symbol" : typeof t
|
||
}
|
||
let e = Bp(t);
|
||
return "number" === e && !isNaN(t) || "string" === e || "boolean" === e
|
||
}
|
||
|
||
formatDate() {
|
||
let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Date.now(),
|
||
e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "yyyy-MM-dd", n = new Date(t),
|
||
r = e, o = {
|
||
"M+": n.getMonth() + 1,
|
||
"d+": n.getDate(),
|
||
"D+": n.getDate(),
|
||
"h+": n.getHours(),
|
||
"H+": n.getHours(),
|
||
"m+": n.getMinutes(),
|
||
"s+": n.getSeconds(),
|
||
"w+": n.getDay(),
|
||
"q+": Math.floor((n.getMonth() + 3) / 3),
|
||
"S+": n.getMilliseconds(),
|
||
};
|
||
return (/(y+)/i.test(r) && (r = r.replace(RegExp.$1, "".concat(n.getFullYear()).substr(4 - RegExp.$1.length))), Object.keys(o).forEach(function (t) {
|
||
if (new RegExp("(".concat(t, ")")).test(r)) {
|
||
var e = "S+" === t ? "000" : "00";
|
||
r = r.replace(RegExp.$1, 1 == RegExp.$1.length ? o[t] : "".concat(e).concat(o[t]).substr("".concat(o[t]).length));
|
||
}
|
||
}), r);
|
||
}
|
||
|
||
getRandomIDPro(e = {}) {
|
||
var t, r = e.size,
|
||
n = void 0 === r ? 10 : r, o = e.dictType, i = void 0 === o ? "number" : o, a = e.customDict, u = "";
|
||
if (a && "string" == typeof a) t = a; else switch (i) {
|
||
case"alphabet":
|
||
t = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||
break;
|
||
case"max":
|
||
t = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-";
|
||
break;
|
||
default:
|
||
t = "0123456789"
|
||
}
|
||
for (; n--;) u += t[Math.random() * t.length | 0];
|
||
return u
|
||
}
|
||
}
|
||
|
||
module.exports.BaseUtils = BaseUtils
|