2024-10-21 16:07:49 +08:00
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' ) ;
2024-06-28 15:38:28 +08:00
const crc32 = require ( 'crc' ) . crc32 ;
class BaseUtils {
2024-10-21 16:07:49 +08:00
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 ( ) ;
2024-06-28 15:38:28 +08:00
}
2024-10-21 16:07:49 +08:00
} 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' ) ;
2024-06-28 15:38:28 +08:00
}
2024-10-21 16:07:49 +08:00
} ) ;
}
}
// 解析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 ) ;
2024-06-28 15:38:28 +08:00
} else {
2024-10-21 16:07:49 +08:00
var d = t . indexOf ( ':' ) ;
a = '' . concat ( d === - 1 ? t : t . slice ( 0 , d ) , "=''" ) ;
2024-06-28 15:38:28 +08:00
}
2024-10-21 16:07:49 +08:00
u += '' . concat ( '' === u ? '' : '&' ) . concat ( a ) ;
} ) ;
2024-06-28 15:38:28 +08:00
}
2024-10-21 16:07:49 +08:00
return n . removal ( u ) ;
}
2024-06-28 15:38:28 +08:00
2024-10-21 16:07:49 +08:00
var c = t . split ( 'at ' ) ,
s = '' ;
if ( c . length > 1 ) {
c . shift ( ) ;
2024-06-28 15:38:28 +08:00
c . forEach ( function ( e ) {
2024-10-21 16:07:49 +08:00
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 ( ) ;
2024-06-28 15:38:28 +08:00
}
2024-10-21 16:07:49 +08:00
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 ) ;
2024-06-28 15:38:28 +08:00
} ) ;
2024-10-21 16:07:49 +08:00
}
return n . removal ( s ) ;
} ) ( a . stack . toString ( ) ) ;
if ( i . length < 11 ) {
r = a . stack . toString ( ) . substring ( 0 , 200 ) ;
2024-06-28 15:38:28 +08:00
} else {
2024-10-21 16:07:49 +08:00
r = i ;
2024-06-28 15:38:28 +08:00
}
2024-10-21 16:07:49 +08:00
} 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 ;
2024-06-28 15:38:28 +08:00
}
2024-10-21 16:07:49 +08:00
return Date . now ( ) + Math . round ( i ) ;
}
2024-06-28 15:38:28 +08:00
2024-10-21 16:07:49 +08:00
t = t . replace ( /[.-]/g , '/' ) ;
var a = new Date ( t ) . getTime ( ) ;
if ( ! isNaN ( a ) ) return a ;
2024-06-28 15:38:28 +08:00
}
2024-10-21 16:07:49 +08:00
return - 1 ;
}
2024-06-28 15:38:28 +08:00
2024-10-21 16:07:49 +08:00
clearTokem ( e , t ) {
try {
var o = window . localStorage . getItem ( e ) ;
2024-06-28 15:38:28 +08:00
2024-10-21 16:07:49 +08:00
if ( o ) {
var i = JSON . parse ( o ) ;
if ( i [ t ] ) {
delete i [ t ] ;
window . localStorage . setItem ( e , JSON . stringify ( i ) ) ;
2024-06-28 15:38:28 +08:00
}
2024-10-21 16:07:49 +08:00
}
} 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 ) ) ;
}
2024-06-28 15:38:28 +08:00
}
2024-10-21 16:07:49 +08:00
}
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 ;
2024-06-28 15:38:28 +08:00
}
2024-10-21 16:07:49 +08:00
} 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 ] ) ;
2024-06-28 15:38:28 +08:00
}
2024-10-21 16:07:49 +08:00
return '' ;
}
2024-06-28 15:38:28 +08:00
2024-10-21 16:07:49 +08:00
return '' ;
} catch ( e ) {
return '' ;
2024-06-28 15:38:28 +08:00
}
2024-10-21 16:07:49 +08:00
}
2024-06-28 15:38:28 +08:00
2024-10-21 16:07:49 +08:00
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 ;
2024-06-28 15:38:28 +08:00
2024-10-21 16:07:49 +08:00
u = Math . ceil ( u ) ;
a = Math . floor ( a ) ;
return Math . floor ( Math . random ( ) * ( a - u + 1 ) ) + u ;
}
2024-06-28 15:38:28 +08:00
2024-10-21 16:07:49 +08:00
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 ) ;
2024-06-28 15:38:28 +08:00
} else {
2024-10-21 16:07:49 +08:00
d [ h ] = v ;
2024-06-28 15:38:28 +08:00
}
2024-10-21 16:07:49 +08:00
}
2024-06-28 15:38:28 +08:00
2024-10-21 16:07:49 +08:00
a [ e ] = d ;
} else {
a [ e ] = l ;
2024-06-28 15:38:28 +08:00
}
2024-10-21 16:07:49 +08:00
} ) ;
} 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 ) ;
2024-06-28 15:38:28 +08:00
}
2024-10-21 16:07:49 +08:00
}
} ) ;
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 ) ;
2024-06-28 15:38:28 +08:00
}
2024-10-21 16:07:49 +08:00
} ) ;
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 ;
}
2024-06-28 15:38:28 +08:00
} ) ;
2024-10-21 16:07:49 +08:00
}
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 ) ;
2024-06-28 15:38:28 +08:00
} else {
2024-10-21 16:07:49 +08:00
h += p . charAt ( v ) ;
2024-06-28 15:38:28 +08:00
}
2024-10-21 16:07:49 +08:00
}
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 ] ) ;
2024-06-28 15:38:28 +08:00
}
2024-10-21 16:07:49 +08:00
}
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 ) ;
}
2024-06-28 15:38:28 +08:00
}
2024-10-21 16:07:49 +08:00
}
}
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 ;
2024-06-28 15:38:28 +08:00
} ,
2024-10-21 16:07:49 +08:00
e : function ( e ) {
throw e ;
2024-06-28 15:38:28 +08:00
} ,
2024-10-21 16:07:49 +08:00
f : f ,
} ;
2024-06-28 15:38:28 +08:00
2024-10-21 16:07:49 +08:00
return l ;
}
2024-06-28 15:38:28 +08:00
2024-10-21 16:07:49 +08:00
throw new TypeError ( 'Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.' ) ;
2024-06-28 15:38:28 +08:00
}
2024-10-21 16:07:49 +08:00
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 ;
2024-06-28 15:38:28 +08:00
}
2024-10-21 16:07:49 +08:00
} ,
} ;
}
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 ) ) ;
2024-06-28 15:38:28 +08:00
}
2024-10-21 16:07:49 +08:00
} ) ,
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 ;
}
2024-06-28 15:38:28 +08:00
}
2024-10-21 16:07:49 +08:00
module . exports . BaseUtils = BaseUtils ;