devicely 2.2.16 → 2.2.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/devicely.js +1 -1
- package/lib/advanced-logger.js +1 -515
- package/lib/aiProviders.js +1 -1
- package/lib/aiProvidersConfig.js +1 -1
- package/lib/androidDeviceDetection.js +1 -1
- package/lib/appMappings.js +1 -1
- package/lib/commanderService.js +1 -1
- package/lib/deviceDetection.js +1 -1
- package/lib/devices.js +1 -1
- package/lib/doctor.js +1 -1
- package/lib/encryption.js +1 -1
- package/lib/executor.js +1 -1
- package/lib/frontend/asset-manifest.json +5 -5
- package/lib/frontend/index.html +1 -1
- package/lib/hybridAI.js +1 -1
- package/lib/intelligentLocatorService.js +1 -1
- package/lib/lightweightAI.js +1 -1
- package/lib/localBuiltInAI.js +1 -1
- package/lib/localBuiltInAI_backup.js +1 -1
- package/lib/localBuiltInAI_simple.js +1 -1
- package/lib/locatorStrategy.js +1 -1
- package/lib/logger-demo.js +1 -180
- package/lib/logger.js +1 -40
- package/lib/package.json +1 -1
- package/lib/quick-start-logger.js +1 -83
- package/lib/scriptLoader.js +1 -1
- package/lib/server.js +1 -1
- package/lib/tensorflowAI.js +1 -1
- package/lib/tinyAI.js +1 -1
- package/lib/universalSessionManager.js +1 -1
- package/package.json +2 -1
package/bin/devicely.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
function _0x33b0(_0x4ab8c3,_0x494540){_0x4ab8c3=_0x4ab8c3-0x1e2;const _0x123cbf=_0x123c();let _0x33b0d=_0x123cbf[_0x4ab8c3];if(_0x33b0['OcBqwc']===undefined){var _0x3ea21b=function(_0xee932d){const _0x2767e1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xc30e2f='',_0x257f43='';for(let _0xf7f152=0x0,_0x3bf341,_0x492b29,_0x4f914f=0x0;_0x492b29=_0xee932d['charAt'](_0x4f914f++);~_0x492b29&&(_0x3bf341=_0xf7f152%0x4?_0x3bf341*0x40+_0x492b29:_0x492b29,_0xf7f152++%0x4)?_0xc30e2f+=String['fromCharCode'](0xff&_0x3bf341>>(-0x2*_0xf7f152&0x6)):0x0){_0x492b29=_0x2767e1['indexOf'](_0x492b29);}for(let _0x40ba60=0x0,_0x5f5122=_0xc30e2f['length'];_0x40ba60<_0x5f5122;_0x40ba60++){_0x257f43+='%'+('00'+_0xc30e2f['charCodeAt'](_0x40ba60)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x257f43);};_0x33b0['wmKEzq']=_0x3ea21b,_0x33b0['eyMGtg']={},_0x33b0['OcBqwc']=!![];}const _0xeb3692=_0x123cbf[0x0],_0x1787e6=_0x4ab8c3+_0xeb3692,_0x16ac7c=_0x33b0['eyMGtg'][_0x1787e6];return!_0x16ac7c?(_0x33b0d=_0x33b0['wmKEzq'](_0x33b0d),_0x33b0['eyMGtg'][_0x1787e6]=_0x33b0d):_0x33b0d=_0x16ac7c,_0x33b0d;}const _0x54145b=_0x33b0;(function(_0x467cdd,_0x51224d){const _0x448e77=_0x33b0,_0x5d290c=_0x467cdd();while(!![]){try{const _0x25d85e=-parseInt(_0x448e77(0x214))/0x1*(parseInt(_0x448e77(0x211))/0x2)+parseInt(_0x448e77(0x1e8))/0x3+parseInt(_0x448e77(0x20f))/0x4+-parseInt(_0x448e77(0x201))/0x5*(-parseInt(_0x448e77(0x216))/0x6)+parseInt(_0x448e77(0x1f4))/0x7*(-parseInt(_0x448e77(0x1ed))/0x8)+parseInt(_0x448e77(0x20d))/0x9*(parseInt(_0x448e77(0x229))/0xa)+-parseInt(_0x448e77(0x202))/0xb;if(_0x25d85e===_0x51224d)break;else _0x5d290c['push'](_0x5d290c['shift']());}catch(_0x2fea31){_0x5d290c['push'](_0x5d290c['shift']());}}}(_0x123c,0x84632));const {program}=require('commander'),chalk=require('chalk'),packageJson=require(_0x54145b(0x1e3)),{startServer}=require('../lib/server'),{listDevices}=require(_0x54145b(0x212)),{checkDoctor}=require('../lib/doctor'),{executeCommand}=require(_0x54145b(0x208));program[_0x54145b(0x1f6)](_0x54145b(0x1fa))[_0x54145b(0x1ee)](_0x54145b(0x22b))['version'](packageJson[_0x54145b(0x20b)],_0x54145b(0x1e2),_0x54145b(0x21e))[_0x54145b(0x1e4)]('-h,\x20--help','Display\x20help\x20information'),program[_0x54145b(0x1ec)](_0x54145b(0x226))['description'](_0x54145b(0x1eb))['option']('-p,\x20--port\x20<port>',_0x54145b(0x218),_0x54145b(0x207))[_0x54145b(0x20c)](_0x54145b(0x210),_0x54145b(0x1ff))[_0x54145b(0x20c)](_0x54145b(0x1fb),_0x54145b(0x225))[_0x54145b(0x20c)]('--usb-only','Detect\x20USB\x20devices\x20only')[_0x54145b(0x20c)](_0x54145b(0x215),'Detect\x20WiFi\x20devices\x20only')['action'](async _0x105dbb=>{const _0xca9240=_0x54145b,_0xf2fbe6={};_0xf2fbe6[_0xca9240(0x1f2)]='\x0a🚀\x20Devicely\x20-\x20One\x20Command,\x20All\x20Devices',_0xf2fbe6[_0xca9240(0x1e7)]=_0xca9240(0x1f0),_0xf2fbe6['SmodJ']=_0xca9240(0x205);const _0x4d30f6=_0xf2fbe6;try{console['log'](chalk['cyan']['bold'](_0x4d30f6[_0xca9240(0x1f2)])),console[_0xca9240(0x222)](chalk[_0xca9240(0x209)](_0x4d30f6[_0xca9240(0x1e7)])),console['log'](chalk[_0xca9240(0x209)]('━'['repeat'](0x32))),await startServer(_0x105dbb);}catch(_0x5a477b){console[_0xca9240(0x1ea)](chalk[_0xca9240(0x20a)](_0x4d30f6[_0xca9240(0x1e5)]),_0x5a477b['message']),process[_0xca9240(0x21f)](0x1);}}),program[_0x54145b(0x1ec)](_0x54145b(0x213))[_0x54145b(0x1ee)](_0x54145b(0x21a))[_0x54145b(0x20c)](_0x54145b(0x217),_0x54145b(0x1e6))[_0x54145b(0x200)](async _0x113fbb=>{const _0x3633ea=_0x54145b,_0x308db3={'nYMGE':_0x3633ea(0x205),'JTivF':function(_0x47b717,_0x5c4e5b){return _0x47b717!==_0x5c4e5b;},'ApryC':'VKFXz','skbwf':function(_0x2eb6c4,_0x1e5631){return _0x2eb6c4(_0x1e5631);}};try{_0x308db3['JTivF'](_0x308db3[_0x3633ea(0x21d)],_0x308db3['ApryC'])?(_0x44e222[_0x3633ea(0x1ea)](_0x51bc46['red'](_0x308db3[_0x3633ea(0x1fe)]),_0x45ed33[_0x3633ea(0x1fd)]),_0x3523b3[_0x3633ea(0x21f)](0x1)):(console['log'](chalk[_0x3633ea(0x227)][_0x3633ea(0x22c)]('\x0a📱\x20Scanning\x20for\x20devices...')),console[_0x3633ea(0x222)](chalk['gray']('━'[_0x3633ea(0x1f1)](0x32))),await _0x308db3['skbwf'](listDevices,_0x113fbb));}catch(_0x28be88){console[_0x3633ea(0x1ea)](chalk[_0x3633ea(0x20a)](_0x308db3['nYMGE']),_0x28be88[_0x3633ea(0x1fd)]),process[_0x3633ea(0x21f)](0x1);}}),program['command'](_0x54145b(0x1f3))['description']('Check\x20system\x20requirements\x20for\x20iOS\x20and\x20Android\x20automation')[_0x54145b(0x200)](async()=>{const _0x39c02d=_0x54145b,_0xced9c6={'lFYDL':_0x39c02d(0x205),'bARyP':'\x0a🔍\x20Checking\x20system\x20requirements...','ThilG':function(_0x3c1355){return _0x3c1355();}};try{console[_0x39c02d(0x222)](chalk[_0x39c02d(0x227)][_0x39c02d(0x22c)](_0xced9c6['bARyP'])),console['log'](chalk['gray']('━'[_0x39c02d(0x1f1)](0x32))),await _0xced9c6[_0x39c02d(0x21c)](checkDoctor);}catch(_0x3d9033){_0x39c02d(0x1f7)==='zvUSK'?(_0x59dc26[_0x39c02d(0x1ea)](_0x313efb[_0x39c02d(0x20a)](_0xced9c6[_0x39c02d(0x21b)]),_0x1605a1[_0x39c02d(0x1fd)]),_0x1168df[_0x39c02d(0x21f)](0x1)):(console[_0x39c02d(0x1ea)](chalk[_0x39c02d(0x20a)](_0xced9c6[_0x39c02d(0x21b)]),_0x3d9033['message']),process[_0x39c02d(0x21f)](0x1));}}),program[_0x54145b(0x1ec)](_0x54145b(0x1fc))['description']('Execute\x20command\x20on\x20connected\x20iOS/Android\x20devices')[_0x54145b(0x20c)](_0x54145b(0x228),_0x54145b(0x1f5))[_0x54145b(0x20c)](_0x54145b(0x1f8),'Execute\x20on\x20all\x20devices\x20(default)')[_0x54145b(0x200)](async(_0x2413b8,_0x5e4529)=>{const _0x772724=_0x54145b,_0x4aab91={'WRnin':_0x772724(0x206),'RpFgf':function(_0x1a865d,_0x414f1f,_0x528e05){return _0x1a865d(_0x414f1f,_0x528e05);}};try{console[_0x772724(0x222)](chalk['cyan'][_0x772724(0x22c)](_0x4aab91['WRnin'])),console[_0x772724(0x222)](chalk[_0x772724(0x209)]('━'[_0x772724(0x1f1)](0x32))),await _0x4aab91[_0x772724(0x1e9)](executeCommand,_0x2413b8,_0x5e4529);}catch(_0x26f596){console[_0x772724(0x1ea)](chalk[_0x772724(0x20a)](_0x772724(0x205)),_0x26f596[_0x772724(0x1fd)]),process['exit'](0x1);}}),program[_0x54145b(0x223)](process[_0x54145b(0x219)]);function _0x123c(){const _0x2c8769=['rg9Uj3qGB3bLBIbICM93C2vYigf1Dg9TyxrPy2fSBhK','ywn0Aw9U','mtaWthb0qNbJ','mJK4mdiZC2nLrhzq','iYbtDgfYDcb0AguGC2vYDMvY','C2XPy2u','cUkDJcbfCNjVCJO','cUkAOsbfEgvJDxrPBMCGy29TBwfUzc4UlG','mZaWmq','lI4VBgLIl2v4zwn1Dg9Y','z3jHEq','CMvK','DMvYC2LVBG','B3b0Aw9U','otaXnZfJq2jguvm','D2HPDgu','nde2ndCYmgnWD3njCG','ls1UBY1ICM93C2vY','mZG2mtrszgXVquK','lI4VBgLIl2rLDMLJzxm','BgLZDa','mtfdEhLrCuK','ls13AwzPlw9UBhK','mtGYnJrdueXVDxm','lxySic0TDMvYyM9Zzq','u2vYDMvYihbVCNq','yxjNDG','tgLZDcbHBgWGy29UBMvJDgvKigLpuYbHBMqGqw5KCM9PzcbKzxzPy2vZ','BezzreW','vgHPBeC','qxbYEum','rgLZCgXHEsb2zxjZAw9Uig51BwjLCG','zxHPDa','iYbmAxn0igrLDMLJzxm','icbKzxzPy2vSEsbSAxn0icaGica','Bg9N','CgfYC2u','m3WWFdj8nxWXFdq','rw5HyMXLigrLyNvNigXVz2DPBMC','C3rHCNq','y3LHBG','lwqSic0Tzgv2AwnLidXUyw1LpG','mJuWAe1tDhHU','C3bSAxq','rgv2AwnLBhKGlsbpBMuGq29TBwfUzcWGqwXSierLDMLJzxmUiefjifbVD2vYzwqGtw9IAwXLief1Dg9TyxrPB24','yM9Sza','lxySic0TDMvYC2LVBG','lI4VCgfJA2fNzs5QC29U','AgvSCe9WDgLVBG','u21VzeO','u2HVDYbKzxrHAwXLzcbKzxzPy2uGAw5MB3jTyxrPB24','ELLqAwu','mtmYnZe3mfj0yLfnyG','uNbgz2y','zxjYB3i','u3rHCNqGrgv2AwnLBhKGC2vYDMvYigfUzcbVCgvUihDLyIbPBNrLCMzHy2u','y29TBwfUza','odeWntu3nK52twn0qq','zgvZy3jPChrPB24','cVcFKQeGuxvPy2SGC3rHCNq6','icaGquKGug93zxjLzcbnB2jPBguGqxv0B21HDgLVBG','CMvWzwf0','qvjlBfe','zg9JDg9Y','n21nELDSDq','rxHLy3v0zsbVBIbZCgvJAwzPyYbKzxzPy2u','BMfTzq','thPgBeC','lweSic0TywXS','BgvUz3rO','zgv2AwnLBhK','ls1Kzwj1zW','zxHLyYa8y29TBwfUzd4','BwvZC2fNzq','BLLnr0u'];_0x123c=function(){return _0x2c8769;};return _0x123c();}if(!process[_0x54145b(0x219)][_0x54145b(0x204)](0x2)[_0x54145b(0x1f9)]){const PFbMAg=_0x54145b(0x224)[_0x54145b(0x22a)]('|');let pUZdda=0x0;while(!![]){switch(PFbMAg[pUZdda++]){case'0':console[_0x54145b(0x222)](chalk[_0x54145b(0x227)](_0x54145b(0x1ef)));continue;case'1':console[_0x54145b(0x222)](chalk[_0x54145b(0x209)]('\x20\x20devicely\x20doctor\x20\x20\x20')+chalk[_0x54145b(0x20e)]('#\x20Check\x20system'));continue;case'2':console[_0x54145b(0x222)](chalk['gray']('\x20\x20devicely\x20start\x20\x20\x20\x20')+chalk[_0x54145b(0x20e)](_0x54145b(0x203)));continue;case'3':program['outputHelp']();continue;case'4':console[_0x54145b(0x222)]('');continue;case'5':console[_0x54145b(0x222)](chalk[_0x54145b(0x209)](_0x54145b(0x221))+chalk[_0x54145b(0x20e)](_0x54145b(0x220)));continue;}break;}}
|
|
3
|
+
const _0x5aa57a=_0x58af;function _0x58af(_0x291784,_0x30bd33){_0x291784=_0x291784-0x1b3;const _0x4edf5e=_0x4edf();let _0x58af72=_0x4edf5e[_0x291784];if(_0x58af['LAmwiX']===undefined){var _0x51819f=function(_0x12dd20){const _0x5a6814='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1ce2f7='',_0x2f94a5='';for(let _0x16a5d0=0x0,_0x305ef9,_0xb6a65f,_0x297888=0x0;_0xb6a65f=_0x12dd20['charAt'](_0x297888++);~_0xb6a65f&&(_0x305ef9=_0x16a5d0%0x4?_0x305ef9*0x40+_0xb6a65f:_0xb6a65f,_0x16a5d0++%0x4)?_0x1ce2f7+=String['fromCharCode'](0xff&_0x305ef9>>(-0x2*_0x16a5d0&0x6)):0x0){_0xb6a65f=_0x5a6814['indexOf'](_0xb6a65f);}for(let _0x329841=0x0,_0x12f9fa=_0x1ce2f7['length'];_0x329841<_0x12f9fa;_0x329841++){_0x2f94a5+='%'+('00'+_0x1ce2f7['charCodeAt'](_0x329841)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2f94a5);};_0x58af['zIBhen']=_0x51819f,_0x58af['SaOHhZ']={},_0x58af['LAmwiX']=!![];}const _0xf5db54=_0x4edf5e[0x0],_0x4ca499=_0x291784+_0xf5db54,_0x5a7cd8=_0x58af['SaOHhZ'][_0x4ca499];return!_0x5a7cd8?(_0x58af72=_0x58af['zIBhen'](_0x58af72),_0x58af['SaOHhZ'][_0x4ca499]=_0x58af72):_0x58af72=_0x5a7cd8,_0x58af72;}(function(_0x4429dd,_0x35c78c){const _0x1b2060=_0x58af,_0x57f05f=_0x4429dd();while(!![]){try{const _0x58de04=parseInt(_0x1b2060(0x1fa))/0x1*(parseInt(_0x1b2060(0x1bb))/0x2)+parseInt(_0x1b2060(0x1dc))/0x3*(parseInt(_0x1b2060(0x1bd))/0x4)+parseInt(_0x1b2060(0x1d9))/0x5*(-parseInt(_0x1b2060(0x1e8))/0x6)+-parseInt(_0x1b2060(0x1f4))/0x7*(-parseInt(_0x1b2060(0x1e3))/0x8)+-parseInt(_0x1b2060(0x203))/0x9*(-parseInt(_0x1b2060(0x1f6))/0xa)+parseInt(_0x1b2060(0x1da))/0xb+parseInt(_0x1b2060(0x1c7))/0xc*(-parseInt(_0x1b2060(0x1fb))/0xd);if(_0x58de04===_0x35c78c)break;else _0x57f05f['push'](_0x57f05f['shift']());}catch(_0x342eff){_0x57f05f['push'](_0x57f05f['shift']());}}}(_0x4edf,0xe2b7d));if(process[_0x5aa57a(0x1c6)][_0x5aa57a(0x200)]('-v')||process[_0x5aa57a(0x1c6)][_0x5aa57a(0x200)](_0x5aa57a(0x1e2))){const packageJson=require(_0x5aa57a(0x1c4));console[_0x5aa57a(0x1f5)](packageJson[_0x5aa57a(0x1e7)]),process[_0x5aa57a(0x1d0)](0x0);}const {program}=require(_0x5aa57a(0x1f0)),chalk=require(_0x5aa57a(0x1c2)),packageJson=require(_0x5aa57a(0x1c4)),{startServer}=require('../lib/server'),{listDevices}=require('../lib/devices'),{checkDoctor}=require(_0x5aa57a(0x202)),{executeCommand}=require('../lib/executor');function _0x4edf(){const _0x1758e7=['B3b0Aw9U','lwqSic0Tzgv2AwnLidXUyw1LpG','zxjYB3i','zxHPDa','rxHLy3v0zsbJB21Tyw5Kig9UignVBM5Ly3rLzcbPt1mVqw5KCM9PzcbKzxzPy2vZ','BgvUz3rO','zgv2AwnLBhK','zgvZy3jPChrPB24','B3v0Chv0sgvSCa','nhWZFdb8mNW1Fde','zu9Huxu','z3zAqw0','nda1nuLMDgnPwa','ntK4ndCWnefmAe1dta','CvLwzwq','m1DwzvjQza','CMvWzwf0','ls1Kzwj1zW','BwvZC2fNzq','C3rHCNq','y3LHBG','ls12zxjZAw9U','ndGWmdHosgnRwgi','zxHLyYa8y29TBwfUzd4','u3rHCNqGrgv2AwnLBhKGC2vYDMvYigfUzcbVCgvUihDLyIbPBNrLCMzHy2u','cUkDJcbfCNjVCJO','DMvYC2LVBG','mZi4mMnRzgLtDW','yM9Sza','EeXYzMG','icbKzxzPy2vSEsbKB2n0B3iGica','y29TBwfUza','lwGSic0TAgvSCa','icaGquKGug93zxjLzcbnB2jPBguGqxv0B21HDgLVBG','zwjbrhK','y29TBwfUzgvY','cVcFKQeGuxvPy2SGC3rHCNq6','BgLZDa','ls11C2iTB25SEq','mte2owLOv1bWsW','Bg9N','mtb5ugfPz0O','rgv0zwn0ifDPrMKGzgv2AwnLCYbVBMX5','rgLZCgXHEsb2zxjZAw9Uig51BwjLCG','rM9kEhu','mJi3mZL2v2DfrgK','mteWnw9nA2HuDG','cVcFK7eGu2nHBM5PBMCGzM9YigrLDMLJzxmUlI4','D2HPDgu','rxHLy3v0zsbVBIbZCgvJAwzPyYbKzxzPy2u','wvjntNm','Aw5JBhvKzxm','mZaWmq','lI4VBgLIl2rVy3rVCG','odKXodCZouH6whvRBW','z1rMBNa','AfD4ufq','icbKzxzPy2vSEsbSAxn0icaGica','yKHuBwC','C2XPy2u','q2HLy2SGC3LZDgvTihjLCxvPCMvTzw50CYbMB3iGAu9tigfUzcbbBMrYB2LKigf1Dg9TyxrPB24','vNPKBfy','BMfTzq','lweSic0TywXS','ywn0Aw9U','tgLZDcbHBgWGy29UBMvJDgvKigLpuYbHBMqGqw5KCM9PzcbKzxzPy2vZ','rxHLy3v0zsbVBIbHBgWGzgv2AwnLCYaOzgvMyxvSDcK','D2LtqvC','rgv2AwnLBhKGlsbpBMuGq29TBwfUzcWGqwXSierLDMLJzxmUiefjifbVD2vYzwqGtw9IAwXLief1Dg9TyxrPB24','icbKzxzPy2vSEsbZDgfYDcaGica','CMvK','uxzMBeq','ufjdseu','teHJB0u','zg9JDg9Y','iYbdAgvJAYbZExn0zw0','cVcFMOaGrgv2AwnLBhKGlsbpBMuGq29TBwfUzcWGqwXSierLDMLJzxm','lxaSic0TCg9YDca8Cg9YDd4','rw5HyMXLigrLyNvNigXVz2DPBMC','iYbtDgfYDcb0AguGC2vYDMvY','mtH3vwvJBNa','A1ryv1O','mZm5mZiYngjsyKH0DW','u2vYDMvYihbVCNq','C3bSAxq','Du9HDNi','t0nKugG','y2HHBgS','u2HVDYbKzxrHAwXLzcbKzxzPy2uGAw5MB3jTyxrPB24','lI4VCgfJA2fNzs5QC29U','ls13AwzPlw9UBhK','yxjNDG','mZeZmte2r2zdD0T3','ls12zxjIB3nL','lxySic0TDMvYC2LVBG','cUkAOsbfEgvJDxrPBMCGy29TBwfUzc4UlG','z3jHEq','rKXVrhC'];_0x4edf=function(){return _0x1758e7;};return _0x4edf();}program[_0x5aa57a(0x20b)](_0x5aa57a(0x1d3))[_0x5aa57a(0x1d4)](_0x5aa57a(0x211))['version'](packageJson['version'],_0x5aa57a(0x1c9),_0x5aa57a(0x1f8))['helpOption'](_0x5aa57a(0x1ed),'Display\x20help\x20information'),program[_0x5aa57a(0x1ec)](_0x5aa57a(0x1e0))[_0x5aa57a(0x1d4)](_0x5aa57a(0x1e5))[_0x5aa57a(0x1cd)](_0x5aa57a(0x1b8),_0x5aa57a(0x1be),_0x5aa57a(0x201))[_0x5aa57a(0x1cd)]('--no-browser','Don\x27t\x20open\x20browser\x20automatically')['option'](_0x5aa57a(0x1de),_0x5aa57a(0x1b9))[_0x5aa57a(0x1cd)](_0x5aa57a(0x1f3),'Detect\x20USB\x20devices\x20only')[_0x5aa57a(0x1cd)](_0x5aa57a(0x1c5),_0x5aa57a(0x1f7))[_0x5aa57a(0x20d)](async _0x20a1a5=>{const _0x207055=_0x5aa57a,_0x55a8e2={'nEqQR':_0x207055(0x1b7),'IQCqI':_0x207055(0x1ee),'QBvqP':function(_0xccc624,_0x2dfc02){return _0xccc624(_0x2dfc02);},'eOaQu':_0x207055(0x1e6)};try{console[_0x207055(0x1f5)](chalk['cyan'][_0x207055(0x1e9)](_0x55a8e2['nEqQR'])),console[_0x207055(0x1f5)](chalk[_0x207055(0x1cb)](_0x55a8e2['IQCqI'])),console['log'](chalk[_0x207055(0x1cb)]('━'[_0x207055(0x1dd)](0x32))),await _0x55a8e2['QBvqP'](startServer,_0x20a1a5);}catch(_0x2a10ea){console[_0x207055(0x1cf)](chalk[_0x207055(0x213)](_0x55a8e2[_0x207055(0x1d7)]),_0x2a10ea[_0x207055(0x1df)]),process[_0x207055(0x1d0)](0x1);}}),program[_0x5aa57a(0x1ec)](_0x5aa57a(0x1f2))[_0x5aa57a(0x1d4)](_0x5aa57a(0x20e))[_0x5aa57a(0x1cd)](_0x5aa57a(0x1c8),_0x5aa57a(0x1c3))[_0x5aa57a(0x20d)](async _0x582e4b=>{const _0x2b69bc=_0x5aa57a,_0x53ea73={};_0x53ea73[_0x2b69bc(0x204)]=_0x2b69bc(0x1e6),_0x53ea73[_0x2b69bc(0x1db)]=_0x2b69bc(0x1fc),_0x53ea73['LtofZ']=_0x2b69bc(0x214);const _0x15ef7f=_0x53ea73;try{console['log'](chalk[_0x2b69bc(0x1e1)][_0x2b69bc(0x1e9)](_0x15ef7f['qYVed'])),console[_0x2b69bc(0x1f5)](chalk['gray']('━'[_0x2b69bc(0x1dd)](0x32))),await listDevices(_0x582e4b);}catch(_0xc5947d){_0x15ef7f['LtofZ']!==_0x2b69bc(0x214)?(_0x4795ad[_0x2b69bc(0x1cf)](_0x198ac6[_0x2b69bc(0x213)](_0x15ef7f[_0x2b69bc(0x204)]),_0x1199d0[_0x2b69bc(0x1df)]),_0x493af1['exit'](0x1)):(console[_0x2b69bc(0x1cf)](chalk[_0x2b69bc(0x213)](_0x15ef7f[_0x2b69bc(0x204)]),_0xc5947d[_0x2b69bc(0x1df)]),process['exit'](0x1));}}),program[_0x5aa57a(0x1ec)](_0x5aa57a(0x1b5))['description'](_0x5aa57a(0x209))['action'](async()=>{const _0x57b5dd=_0x5aa57a,_0x3f04e4={'CkiNE':_0x57b5dd(0x1e6),'kTXWZ':'\x0a🔍\x20Checking\x20system\x20requirements...','IWtSn':function(_0x229222){return _0x229222();},'gvZAm':_0x57b5dd(0x205),'FLoDw':_0x57b5dd(0x1ea)};try{console[_0x57b5dd(0x1f5)](chalk[_0x57b5dd(0x1e1)][_0x57b5dd(0x1e9)](_0x3f04e4[_0x57b5dd(0x1bc)])),console[_0x57b5dd(0x1f5)](chalk['gray']('━'[_0x57b5dd(0x1dd)](0x32))),await _0x3f04e4['IWtSn'](checkDoctor);}catch(_0x37ce2c){_0x3f04e4[_0x57b5dd(0x1d8)]===_0x3f04e4[_0x57b5dd(0x1cc)]?(_0x278811[_0x57b5dd(0x1cf)](_0x41d855[_0x57b5dd(0x213)](ASAqyw['CkiNE']),_0x5d0da9[_0x57b5dd(0x1df)]),_0x166a0a[_0x57b5dd(0x1d0)](0x1)):(console[_0x57b5dd(0x1cf)](chalk['red'](_0x57b5dd(0x1e6)),_0x37ce2c[_0x57b5dd(0x1df)]),process[_0x57b5dd(0x1d0)](0x1));}}),program[_0x5aa57a(0x1ec)](_0x5aa57a(0x1e4))[_0x5aa57a(0x1d4)](_0x5aa57a(0x1d1))['option'](_0x5aa57a(0x1ce),_0x5aa57a(0x1fe))[_0x5aa57a(0x1cd)](_0x5aa57a(0x20c),_0x5aa57a(0x20f))[_0x5aa57a(0x20d)](async(_0x5a35be,_0x3cc804)=>{const _0x162ee1=_0x5aa57a,_0x3842de={'fSchM':_0x162ee1(0x1d6),'wiSAW':_0x162ee1(0x212),'VzdlV':function(_0x28ac0a,_0x4a5d94){return _0x28ac0a+_0x4a5d94;},'uOavr':'\x20\x20devicely\x20list\x20\x20\x20\x20\x20','FUICR':_0x162ee1(0x1f1),'PRCHE':function(_0x22ed3d,_0x47bdda){return _0x22ed3d+_0x47bdda;},'vfJzk':'\x20\x20devicely\x20doctor\x20\x20\x20','YFbFq':_0x162ee1(0x1b6),'tAMTL':function(_0x56eeca,_0x361063){return _0x56eeca(_0x361063);},'LHcoE':function(_0x22f765,_0x5b0dba){return _0x22f765===_0x5b0dba;},'bHTmg':_0x162ee1(0x1ff),'YpImQ':function(_0x398128,_0x22d1e7,_0x4c8bc2){return _0x398128(_0x22d1e7,_0x4c8bc2);},'szfrO':_0x162ee1(0x1ef),'FoJxu':'MTgTW','OCdPh':'\x0a❌\x20Error:'};try{if(_0x3842de[_0x162ee1(0x1b4)](_0x3842de[_0x162ee1(0x207)],_0x3842de[_0x162ee1(0x207)]))console['log'](chalk['cyan']['bold'](_0x162ee1(0x1ca))),console['log'](chalk['gray']('━'[_0x162ee1(0x1dd)](0x32))),await _0x3842de['YpImQ'](executeCommand,_0x5a35be,_0x3cc804);else{const _0x16b3bc=_0x3842de['fSchM'][_0x162ee1(0x1bf)]('|');let _0xb80815=0x0;while(!![]){switch(_0x16b3bc[_0xb80815++]){case'0':_0x3ee310['log'](_0x59556b[_0x162ee1(0x1cb)](_0x3842de[_0x162ee1(0x210)])+_0x2a600b[_0x162ee1(0x1fd)](_0x162ee1(0x1ba)));continue;case'1':_0x5214c8['log']('');continue;case'2':_0x59999e[_0x162ee1(0x1f5)](_0x3842de[_0x162ee1(0x20a)](_0x282abc[_0x162ee1(0x1cb)](_0x3842de[_0x162ee1(0x1c0)]),_0x2c7080[_0x162ee1(0x1fd)]('#\x20List\x20devices')));continue;case'3':_0x469c4e[_0x162ee1(0x1f5)](_0x29e902[_0x162ee1(0x1e1)](_0x3842de['FUICR']));continue;case'4':_0x38e037[_0x162ee1(0x1d5)]();continue;case'5':_0x329f7a[_0x162ee1(0x1f5)](_0x3842de[_0x162ee1(0x1b3)](_0x38ce85['gray'](_0x3842de['vfJzk']),_0x1147b1['white'](_0x3842de['YFbFq'])));continue;}break;}}}catch(_0x1c045a){if(_0x3842de[_0x162ee1(0x1b4)](_0x3842de['szfrO'],_0x3842de[_0x162ee1(0x1f9)])){const _0x365bad=IomgvU['tAMTL'](_0x305ef9,_0x162ee1(0x1c4));_0xb6a65f[_0x162ee1(0x1f5)](_0x365bad[_0x162ee1(0x1e7)]),_0x297888[_0x162ee1(0x1d0)](0x0);}else console['error'](chalk[_0x162ee1(0x213)](_0x3842de[_0x162ee1(0x1c1)]),_0x1c045a[_0x162ee1(0x1df)]),process[_0x162ee1(0x1d0)](0x1);}}),program['parse'](process[_0x5aa57a(0x1c6)]);!process[_0x5aa57a(0x1c6)][_0x5aa57a(0x208)](0x2)[_0x5aa57a(0x1d2)]&&(program[_0x5aa57a(0x1d5)](),console['log'](chalk[_0x5aa57a(0x1e1)](_0x5aa57a(0x1f1))),console[_0x5aa57a(0x1f5)](chalk[_0x5aa57a(0x1cb)](_0x5aa57a(0x212))+chalk['white'](_0x5aa57a(0x1ba))),console[_0x5aa57a(0x1f5)](chalk[_0x5aa57a(0x1cb)](_0x5aa57a(0x206))+chalk[_0x5aa57a(0x1fd)]('#\x20List\x20devices')),console['log'](chalk['gray'](_0x5aa57a(0x1eb))+chalk[_0x5aa57a(0x1fd)](_0x5aa57a(0x1b6))),console['log'](''));
|
package/lib/advanced-logger.js
CHANGED
|
@@ -1,515 +1 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Devicely Advanced Logging System v2.0
|
|
3
|
-
* 3-Tier Logging: Public → Developer → Creator
|
|
4
|
-
* Technologies: Consola + Custom Analytics + File Logging
|
|
5
|
-
* Security: Built-in sensitive data redaction
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
const consola = require('consola');
|
|
9
|
-
const { v4: uuidv4 } = require('uuid');
|
|
10
|
-
const fs = require('fs').promises;
|
|
11
|
-
const path = require('path');
|
|
12
|
-
const os = require('os');
|
|
13
|
-
|
|
14
|
-
// ============================================================================
|
|
15
|
-
// LOGGING LEVELS & MODES
|
|
16
|
-
// ============================================================================
|
|
17
|
-
|
|
18
|
-
const LOG_LEVELS = {
|
|
19
|
-
PUBLIC: 0, // Clean user experience only
|
|
20
|
-
DEVELOPER: 1, // --debug flag
|
|
21
|
-
CREATOR: 2 // --dev-mode or CREATOR_MODE=true
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
const CURRENT_LEVEL = (() => {
|
|
25
|
-
if (process.env.CREATOR_MODE === 'true' || process.argv.includes('--dev-mode')) {
|
|
26
|
-
return LOG_LEVELS.CREATOR;
|
|
27
|
-
}
|
|
28
|
-
if (process.argv.includes('--debug') || process.env.DEBUG === 'true' || process.env.NODE_ENV === 'development') {
|
|
29
|
-
return LOG_LEVELS.DEVELOPER;
|
|
30
|
-
}
|
|
31
|
-
return LOG_LEVELS.PUBLIC;
|
|
32
|
-
})();
|
|
33
|
-
|
|
34
|
-
// ============================================================================
|
|
35
|
-
// SENSITIVE DATA REDACTION
|
|
36
|
-
// ============================================================================
|
|
37
|
-
|
|
38
|
-
const SENSITIVE_PATTERNS = {
|
|
39
|
-
// Device identifiers
|
|
40
|
-
udid: /([a-fA-F0-9]{8}-[a-fA-F0-9]{16})/g,
|
|
41
|
-
serial: /([A-Z0-9]{10,})/g,
|
|
42
|
-
|
|
43
|
-
// Network & Auth
|
|
44
|
-
token: /(token|auth|key|secret|password)/i,
|
|
45
|
-
ip: /(\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b)/g,
|
|
46
|
-
port: /(localhost:\d+|127\.0\.0\.1:\d+)/g,
|
|
47
|
-
|
|
48
|
-
// Paths & URLs
|
|
49
|
-
homePath: new RegExp(os.homedir().replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'g'),
|
|
50
|
-
|
|
51
|
-
// Command data
|
|
52
|
-
coordinates: /("x":\d+,"y":\d+)/g,
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
function redactSensitiveData(data, level = CURRENT_LEVEL) {
|
|
56
|
-
if (level === LOG_LEVELS.CREATOR) return data; // No redaction for creator
|
|
57
|
-
|
|
58
|
-
let str = typeof data === 'object' ? JSON.stringify(data, null, 2) : String(data);
|
|
59
|
-
|
|
60
|
-
if (level === LOG_LEVELS.PUBLIC) {
|
|
61
|
-
// Heavy redaction for public
|
|
62
|
-
str = str.replace(SENSITIVE_PATTERNS.udid, '[DEVICE-ID]');
|
|
63
|
-
str = str.replace(SENSITIVE_PATTERNS.ip, '[IP-ADDRESS]');
|
|
64
|
-
str = str.replace(SENSITIVE_PATTERNS.port, '[ENDPOINT]');
|
|
65
|
-
str = str.replace(SENSITIVE_PATTERNS.homePath, '[USER-PATH]');
|
|
66
|
-
str = str.replace(SENSITIVE_PATTERNS.coordinates, '"x":[X],"y":[Y]');
|
|
67
|
-
} else if (level === LOG_LEVELS.DEVELOPER) {
|
|
68
|
-
// Partial redaction for developers
|
|
69
|
-
str = str.replace(SENSITIVE_PATTERNS.udid, (match) => `${match.slice(0, 8)}...${match.slice(-4)}`);
|
|
70
|
-
str = str.replace(SENSITIVE_PATTERNS.homePath, '~/[...]');
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
return str;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
// ============================================================================
|
|
77
|
-
// SESSION & PERFORMANCE TRACKING
|
|
78
|
-
// ============================================================================
|
|
79
|
-
|
|
80
|
-
class SessionTracker {
|
|
81
|
-
constructor() {
|
|
82
|
-
this.sessionId = uuidv4().split('-')[0];
|
|
83
|
-
this.startTime = Date.now();
|
|
84
|
-
this.devices = new Map();
|
|
85
|
-
this.commands = [];
|
|
86
|
-
this.performance = {
|
|
87
|
-
memory: [],
|
|
88
|
-
timing: new Map()
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
addDevice(deviceId, deviceInfo) {
|
|
93
|
-
this.devices.set(deviceId, {
|
|
94
|
-
...deviceInfo,
|
|
95
|
-
connectedAt: Date.now(),
|
|
96
|
-
commandCount: 0
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
addCommand(deviceId, command, duration) {
|
|
101
|
-
const cmd = {
|
|
102
|
-
deviceId,
|
|
103
|
-
command,
|
|
104
|
-
duration,
|
|
105
|
-
timestamp: Date.now(),
|
|
106
|
-
sessionTime: Date.now() - this.startTime
|
|
107
|
-
};
|
|
108
|
-
this.commands.push(cmd);
|
|
109
|
-
|
|
110
|
-
if (this.devices.has(deviceId)) {
|
|
111
|
-
this.devices.get(deviceId).commandCount++;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
startTimer(label) {
|
|
116
|
-
this.performance.timing.set(label, Date.now());
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
endTimer(label) {
|
|
120
|
-
const start = this.performance.timing.get(label);
|
|
121
|
-
if (start) {
|
|
122
|
-
const duration = Date.now() - start;
|
|
123
|
-
this.performance.timing.delete(label);
|
|
124
|
-
return duration;
|
|
125
|
-
}
|
|
126
|
-
return 0;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
getMemoryUsage() {
|
|
130
|
-
const usage = process.memoryUsage();
|
|
131
|
-
const memInfo = {
|
|
132
|
-
rss: Math.round(usage.rss / 1024 / 1024), // MB
|
|
133
|
-
heapUsed: Math.round(usage.heapUsed / 1024 / 1024),
|
|
134
|
-
heapTotal: Math.round(usage.heapTotal / 1024 / 1024),
|
|
135
|
-
external: Math.round(usage.external / 1024 / 1024),
|
|
136
|
-
timestamp: Date.now()
|
|
137
|
-
};
|
|
138
|
-
this.performance.memory.push(memInfo);
|
|
139
|
-
return memInfo;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
getStats() {
|
|
143
|
-
return {
|
|
144
|
-
sessionId: this.sessionId,
|
|
145
|
-
uptime: Date.now() - this.startTime,
|
|
146
|
-
deviceCount: this.devices.size,
|
|
147
|
-
totalCommands: this.commands.length,
|
|
148
|
-
avgCommandTime: this.commands.length ?
|
|
149
|
-
this.commands.reduce((sum, cmd) => sum + cmd.duration, 0) / this.commands.length : 0,
|
|
150
|
-
currentMemory: this.getMemoryUsage()
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
const sessionTracker = new SessionTracker();
|
|
156
|
-
|
|
157
|
-
// ============================================================================
|
|
158
|
-
// FILE LOGGING SYSTEM
|
|
159
|
-
// ============================================================================
|
|
160
|
-
|
|
161
|
-
class FileLogger {
|
|
162
|
-
constructor() {
|
|
163
|
-
this.logDir = path.join(__dirname, '../../logs');
|
|
164
|
-
this.initPromise = this.initialize();
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
async initialize() {
|
|
168
|
-
try {
|
|
169
|
-
await fs.mkdir(this.logDir, { recursive: true });
|
|
170
|
-
await fs.mkdir(path.join(this.logDir, 'devices'), { recursive: true });
|
|
171
|
-
await fs.mkdir(path.join(this.logDir, 'sessions'), { recursive: true });
|
|
172
|
-
await fs.mkdir(path.join(this.logDir, 'performance'), { recursive: true });
|
|
173
|
-
} catch (error) {
|
|
174
|
-
// Continue without file logging if directory creation fails
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
async log(category, level, message, data = {}) {
|
|
179
|
-
if (CURRENT_LEVEL < LOG_LEVELS.DEVELOPER) return;
|
|
180
|
-
|
|
181
|
-
await this.initPromise;
|
|
182
|
-
|
|
183
|
-
const logEntry = {
|
|
184
|
-
timestamp: new Date().toISOString(),
|
|
185
|
-
sessionId: sessionTracker.sessionId,
|
|
186
|
-
level,
|
|
187
|
-
category,
|
|
188
|
-
message,
|
|
189
|
-
data: CURRENT_LEVEL >= LOG_LEVELS.CREATOR ? data : redactSensitiveData(data, CURRENT_LEVEL)
|
|
190
|
-
};
|
|
191
|
-
|
|
192
|
-
const logLine = JSON.stringify(logEntry) + '\n';
|
|
193
|
-
|
|
194
|
-
try {
|
|
195
|
-
// Write to main log
|
|
196
|
-
const mainLogFile = path.join(this.logDir, 'devicely-main.log');
|
|
197
|
-
await fs.appendFile(mainLogFile, logLine);
|
|
198
|
-
|
|
199
|
-
// Write to category-specific log
|
|
200
|
-
if (category) {
|
|
201
|
-
const categoryLogFile = path.join(this.logDir, `${category}.log`);
|
|
202
|
-
await fs.appendFile(categoryLogFile, logLine);
|
|
203
|
-
}
|
|
204
|
-
} catch (error) {
|
|
205
|
-
// Silent fail if file logging doesn't work
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
const fileLogger = new FileLogger();
|
|
211
|
-
|
|
212
|
-
// ============================================================================
|
|
213
|
-
// ADVANCED DEVICELY LOGGER CLASS
|
|
214
|
-
// ============================================================================
|
|
215
|
-
|
|
216
|
-
class DevicelyLogger {
|
|
217
|
-
constructor(module) {
|
|
218
|
-
this.module = module;
|
|
219
|
-
this.deviceLoggers = new Map();
|
|
220
|
-
this.timers = new Map();
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
// ========================================================================
|
|
224
|
-
// PUBLIC LEVEL METHODS (Always visible, user-friendly)
|
|
225
|
-
// ========================================================================
|
|
226
|
-
|
|
227
|
-
success(message, ...args) {
|
|
228
|
-
const cleanMessage = redactSensitiveData(message, LOG_LEVELS.PUBLIC);
|
|
229
|
-
// Don't add emoji prefix if message already contains emojis
|
|
230
|
-
const hasEmoji = /[\u{1F000}-\u{1F6FF}\u{1F900}-\u{1F9FF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}]/u.test(message);
|
|
231
|
-
consola.success(hasEmoji ? cleanMessage : `✅ ${cleanMessage}`);
|
|
232
|
-
|
|
233
|
-
fileLogger.log(this.module, 'success', message, { args });
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
info(message, ...args) {
|
|
237
|
-
const cleanMessage = redactSensitiveData(message, LOG_LEVELS.PUBLIC);
|
|
238
|
-
// Don't add emoji prefix if message already contains emojis
|
|
239
|
-
const hasEmoji = /[\u{1F000}-\u{1F6FF}\u{1F900}-\u{1F9FF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}]/u.test(message);
|
|
240
|
-
consola.info(hasEmoji ? cleanMessage : `📱 ${cleanMessage}`);
|
|
241
|
-
|
|
242
|
-
fileLogger.log(this.module, 'info', message, { args });
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
warn(message, ...args) {
|
|
246
|
-
const cleanMessage = redactSensitiveData(message, LOG_LEVELS.PUBLIC);
|
|
247
|
-
const cleanArgs = args.map(arg => redactSensitiveData(arg, LOG_LEVELS.PUBLIC));
|
|
248
|
-
// Don't add emoji prefix if message already contains emojis
|
|
249
|
-
const hasEmoji = /[\u{1F000}-\u{1F6FF}\u{1F900}-\u{1F9FF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}]/u.test(message);
|
|
250
|
-
consola.warn(hasEmoji ? `${cleanMessage}` : `⚠️ ${cleanMessage}`, ...cleanArgs);
|
|
251
|
-
|
|
252
|
-
fileLogger.log(this.module, 'warn', message, { args });
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
error(message, error, ...args) {
|
|
256
|
-
const cleanMessage = redactSensitiveData(message, LOG_LEVELS.PUBLIC);
|
|
257
|
-
// Don't add emoji prefix if message already contains emojis
|
|
258
|
-
const hasEmoji = /[\u{1F000}-\u{1F6FF}\u{1F900}-\u{1F9FF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}]/u.test(message);
|
|
259
|
-
consola.error(hasEmoji ? cleanMessage : `❌ ${cleanMessage}`, error?.message || error);
|
|
260
|
-
|
|
261
|
-
fileLogger.log(this.module, 'error', message, {
|
|
262
|
-
error: {
|
|
263
|
-
message: error?.message,
|
|
264
|
-
stack: CURRENT_LEVEL >= LOG_LEVELS.CREATOR ? error?.stack : '[REDACTED]',
|
|
265
|
-
name: error?.name
|
|
266
|
-
},
|
|
267
|
-
args
|
|
268
|
-
});
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
// ========================================================================
|
|
272
|
-
// DEVELOPER LEVEL METHODS (--debug flag)
|
|
273
|
-
// ========================================================================
|
|
274
|
-
|
|
275
|
-
debug(message, data = {}) {
|
|
276
|
-
if (CURRENT_LEVEL < LOG_LEVELS.DEVELOPER) return;
|
|
277
|
-
|
|
278
|
-
const cleanMessage = redactSensitiveData(message, LOG_LEVELS.DEVELOPER);
|
|
279
|
-
const cleanData = redactSensitiveData(data, LOG_LEVELS.DEVELOPER);
|
|
280
|
-
|
|
281
|
-
consola.debug(`🔍 [${this.module}] ${cleanMessage}`, cleanData);
|
|
282
|
-
fileLogger.log(this.module, 'debug', message, { data });
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
command(deviceId, command, data = {}, duration = null) {
|
|
286
|
-
if (duration) {
|
|
287
|
-
sessionTracker.addCommand(deviceId, command, duration);
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
const message = `Command: ${command}`;
|
|
291
|
-
|
|
292
|
-
if (CURRENT_LEVEL === LOG_LEVELS.PUBLIC) {
|
|
293
|
-
consola.info(`📱 Executing ${command}`);
|
|
294
|
-
} else if (CURRENT_LEVEL === LOG_LEVELS.DEVELOPER) {
|
|
295
|
-
const cleanData = redactSensitiveData(data, LOG_LEVELS.DEVELOPER);
|
|
296
|
-
const deviceDisplay = redactSensitiveData(deviceId, LOG_LEVELS.DEVELOPER);
|
|
297
|
-
consola.info(`📱 [${deviceDisplay}] ${command}${duration ? ` (${duration}ms)` : ''}`, cleanData);
|
|
298
|
-
} else {
|
|
299
|
-
// Creator mode - full details
|
|
300
|
-
consola.info(`📱 [${deviceId}] ${command}${duration ? ` (${duration}ms)` : ''}`, data);
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
fileLogger.log('device', 'command', message, {
|
|
304
|
-
command,
|
|
305
|
-
data,
|
|
306
|
-
duration,
|
|
307
|
-
deviceId: CURRENT_LEVEL >= LOG_LEVELS.CREATOR ? deviceId : redactSensitiveData(deviceId, CURRENT_LEVEL)
|
|
308
|
-
});
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
network(method, url, statusCode, data = {}, duration = null) {
|
|
312
|
-
if (CURRENT_LEVEL < LOG_LEVELS.DEVELOPER) return;
|
|
313
|
-
|
|
314
|
-
const cleanUrl = redactSensitiveData(url, CURRENT_LEVEL);
|
|
315
|
-
const message = `${method} ${cleanUrl} → ${statusCode}`;
|
|
316
|
-
|
|
317
|
-
if (statusCode >= 400) {
|
|
318
|
-
consola.error(`🌐 ${message}${duration ? ` (${duration}ms)` : ''}`);
|
|
319
|
-
} else {
|
|
320
|
-
consola.debug(`🌐 ${message}${duration ? ` (${duration}ms)` : ''}`);
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
fileLogger.log('network', 'http', 'HTTP Request', {
|
|
324
|
-
method,
|
|
325
|
-
url: CURRENT_LEVEL >= LOG_LEVELS.CREATOR ? url : cleanUrl,
|
|
326
|
-
statusCode,
|
|
327
|
-
duration,
|
|
328
|
-
data: CURRENT_LEVEL >= LOG_LEVELS.CREATOR ? data : redactSensitiveData(data, CURRENT_LEVEL)
|
|
329
|
-
});
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
// ========================================================================
|
|
333
|
-
// CREATOR LEVEL METHODS (Full system visibility)
|
|
334
|
-
// ========================================================================
|
|
335
|
-
|
|
336
|
-
trace(message, data = {}) {
|
|
337
|
-
if (CURRENT_LEVEL < LOG_LEVELS.CREATOR) return;
|
|
338
|
-
|
|
339
|
-
consola.debug(`🔧 [TRACE][${this.module}] ${message}`, data);
|
|
340
|
-
fileLogger.log(this.module, 'trace', message, { data });
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
security(event, details = {}) {
|
|
344
|
-
if (CURRENT_LEVEL < LOG_LEVELS.CREATOR) return;
|
|
345
|
-
|
|
346
|
-
consola.warn(`🔒 [SECURITY][${this.module}] ${event}`, details);
|
|
347
|
-
fileLogger.log('security', 'security', event, { details });
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
performance(metric, value, unit = 'ms') {
|
|
351
|
-
if (CURRENT_LEVEL >= LOG_LEVELS.DEVELOPER) {
|
|
352
|
-
consola.debug(`📊 ${metric}: ${value}${unit}`);
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
fileLogger.log('performance', 'metric', `Performance metric: ${metric}`, {
|
|
356
|
-
metric,
|
|
357
|
-
value,
|
|
358
|
-
unit,
|
|
359
|
-
timestamp: Date.now(),
|
|
360
|
-
sessionId: sessionTracker.sessionId
|
|
361
|
-
});
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
memory() {
|
|
365
|
-
if (CURRENT_LEVEL < LOG_LEVELS.CREATOR) return;
|
|
366
|
-
|
|
367
|
-
const usage = sessionTracker.getMemoryUsage();
|
|
368
|
-
consola.debug(`💾 Memory: ${usage.heapUsed}MB / ${usage.heapTotal}MB (RSS: ${usage.rss}MB)`);
|
|
369
|
-
|
|
370
|
-
this.performance('memory_heap_used', usage.heapUsed, 'MB');
|
|
371
|
-
this.performance('memory_rss', usage.rss, 'MB');
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
// ========================================================================
|
|
375
|
-
// DEVICE-SPECIFIC LOGGING
|
|
376
|
-
// ========================================================================
|
|
377
|
-
|
|
378
|
-
device(deviceId, deviceInfo = null) {
|
|
379
|
-
if (deviceInfo) {
|
|
380
|
-
sessionTracker.addDevice(deviceId, deviceInfo);
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
return {
|
|
384
|
-
connect: (info) => {
|
|
385
|
-
if (CURRENT_LEVEL === LOG_LEVELS.PUBLIC) {
|
|
386
|
-
consola.success(`✅ Connected to ${info.platform || 'device'}-${deviceId.slice(-5)}`);
|
|
387
|
-
} else if (CURRENT_LEVEL === LOG_LEVELS.DEVELOPER) {
|
|
388
|
-
const cleanDeviceId = redactSensitiveData(deviceId, CURRENT_LEVEL);
|
|
389
|
-
consola.success(`✅ Connected to ${cleanDeviceId}`, redactSensitiveData(info, CURRENT_LEVEL));
|
|
390
|
-
} else {
|
|
391
|
-
consola.success(`✅ Connected to ${deviceId}`, info);
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
fileLogger.log('device', 'connect', 'Device connected', {
|
|
395
|
-
deviceId: CURRENT_LEVEL >= LOG_LEVELS.CREATOR ? deviceId : redactSensitiveData(deviceId, CURRENT_LEVEL),
|
|
396
|
-
info
|
|
397
|
-
});
|
|
398
|
-
},
|
|
399
|
-
|
|
400
|
-
disconnect: () => {
|
|
401
|
-
if (CURRENT_LEVEL === LOG_LEVELS.PUBLIC) {
|
|
402
|
-
consola.info(`📱 Device disconnected`);
|
|
403
|
-
} else {
|
|
404
|
-
const cleanDeviceId = redactSensitiveData(deviceId, CURRENT_LEVEL);
|
|
405
|
-
consola.info(`📱 ${cleanDeviceId} disconnected`);
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
fileLogger.log('device', 'disconnect', 'Device disconnected', {
|
|
409
|
-
deviceId: CURRENT_LEVEL >= LOG_LEVELS.CREATOR ? deviceId : redactSensitiveData(deviceId, CURRENT_LEVEL)
|
|
410
|
-
});
|
|
411
|
-
},
|
|
412
|
-
|
|
413
|
-
error: (message, error) => {
|
|
414
|
-
const cleanMessage = redactSensitiveData(message, LOG_LEVELS.PUBLIC);
|
|
415
|
-
consola.error(`❌ Device error: ${cleanMessage}`, error?.message || error);
|
|
416
|
-
|
|
417
|
-
fileLogger.log('device', 'error', 'Device error', {
|
|
418
|
-
message,
|
|
419
|
-
error: {
|
|
420
|
-
message: error?.message,
|
|
421
|
-
stack: CURRENT_LEVEL >= LOG_LEVELS.CREATOR ? error?.stack : '[REDACTED]'
|
|
422
|
-
},
|
|
423
|
-
deviceId: CURRENT_LEVEL >= LOG_LEVELS.CREATOR ? deviceId : redactSensitiveData(deviceId, CURRENT_LEVEL)
|
|
424
|
-
});
|
|
425
|
-
}
|
|
426
|
-
};
|
|
427
|
-
}
|
|
428
|
-
|
|
429
|
-
// ========================================================================
|
|
430
|
-
// PERFORMANCE TIMING
|
|
431
|
-
// ========================================================================
|
|
432
|
-
|
|
433
|
-
startTimer(label) {
|
|
434
|
-
this.timers.set(label, Date.now());
|
|
435
|
-
sessionTracker.startTimer(label);
|
|
436
|
-
|
|
437
|
-
if (CURRENT_LEVEL >= LOG_LEVELS.CREATOR) {
|
|
438
|
-
this.trace(`Timer started: ${label}`);
|
|
439
|
-
}
|
|
440
|
-
}
|
|
441
|
-
|
|
442
|
-
endTimer(label, logResult = true) {
|
|
443
|
-
const startTime = this.timers.get(label);
|
|
444
|
-
const sessionDuration = sessionTracker.endTimer(label);
|
|
445
|
-
|
|
446
|
-
if (startTime) {
|
|
447
|
-
const duration = Date.now() - startTime;
|
|
448
|
-
this.timers.delete(label);
|
|
449
|
-
|
|
450
|
-
if (logResult && CURRENT_LEVEL >= LOG_LEVELS.DEVELOPER) {
|
|
451
|
-
this.performance(label, duration);
|
|
452
|
-
}
|
|
453
|
-
|
|
454
|
-
return duration;
|
|
455
|
-
}
|
|
456
|
-
return sessionDuration;
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
// ========================================================================
|
|
460
|
-
// HELPER METHODS
|
|
461
|
-
// ========================================================================
|
|
462
|
-
|
|
463
|
-
getSessionStats() {
|
|
464
|
-
return sessionTracker.getStats();
|
|
465
|
-
}
|
|
466
|
-
|
|
467
|
-
// ========================================================================
|
|
468
|
-
// STARTUP BANNER
|
|
469
|
-
// ========================================================================
|
|
470
|
-
|
|
471
|
-
static showStartupBanner() {
|
|
472
|
-
const modeNames = ['PUBLIC', 'DEVELOPER', 'CREATOR'];
|
|
473
|
-
const currentMode = modeNames[CURRENT_LEVEL];
|
|
474
|
-
|
|
475
|
-
if (CURRENT_LEVEL === LOG_LEVELS.PUBLIC) {
|
|
476
|
-
consola.info('🚀 Devicely starting...');
|
|
477
|
-
} else {
|
|
478
|
-
consola.box({
|
|
479
|
-
title: '🚀 Devicely Advanced Logging System',
|
|
480
|
-
message: [
|
|
481
|
-
`📊 Mode: ${currentMode}`,
|
|
482
|
-
`🔧 Session: ${sessionTracker.sessionId}`,
|
|
483
|
-
`💾 Memory tracking: ${CURRENT_LEVEL >= LOG_LEVELS.CREATOR ? 'ON' : 'OFF'}`,
|
|
484
|
-
`🔒 Data redaction: ${CURRENT_LEVEL === LOG_LEVELS.PUBLIC ? 'FULL' : CURRENT_LEVEL === LOG_LEVELS.DEVELOPER ? 'PARTIAL' : 'OFF'}`,
|
|
485
|
-
`📁 File logging: ${CURRENT_LEVEL >= LOG_LEVELS.DEVELOPER ? 'ON' : 'OFF'}`,
|
|
486
|
-
'',
|
|
487
|
-
CURRENT_LEVEL === LOG_LEVELS.DEVELOPER ?
|
|
488
|
-
'💡 Use --dev-mode for full creator logging' :
|
|
489
|
-
'💡 Remove --debug for clean public mode'
|
|
490
|
-
].join('\n')
|
|
491
|
-
});
|
|
492
|
-
}
|
|
493
|
-
}
|
|
494
|
-
}
|
|
495
|
-
|
|
496
|
-
// ============================================================================
|
|
497
|
-
// INITIALIZATION
|
|
498
|
-
// ============================================================================
|
|
499
|
-
|
|
500
|
-
// Show startup banner
|
|
501
|
-
DevicelyLogger.showStartupBanner();
|
|
502
|
-
|
|
503
|
-
// ============================================================================
|
|
504
|
-
// EXPORTS
|
|
505
|
-
// ============================================================================
|
|
506
|
-
|
|
507
|
-
module.exports = {
|
|
508
|
-
DevicelyLogger,
|
|
509
|
-
LOG_LEVELS,
|
|
510
|
-
CURRENT_LEVEL,
|
|
511
|
-
sessionTracker,
|
|
512
|
-
|
|
513
|
-
// Backward compatibility
|
|
514
|
-
Logger: DevicelyLogger
|
|
515
|
-
};
|
|
1
|
+
const _0x257deb=_0x519b;(function(_0x264722,_0x236f18){const _0x526949=_0x519b,_0x32f6bb=_0x264722();while(!![]){try{const _0x305c34=-parseInt(_0x526949(0x170))/0x1*(parseInt(_0x526949(0x1fa))/0x2)+-parseInt(_0x526949(0x150))/0x3+parseInt(_0x526949(0x1d7))/0x4+parseInt(_0x526949(0x178))/0x5*(-parseInt(_0x526949(0x157))/0x6)+parseInt(_0x526949(0x17b))/0x7*(parseInt(_0x526949(0x1d3))/0x8)+-parseInt(_0x526949(0x195))/0x9+parseInt(_0x526949(0x138))/0xa;if(_0x305c34===_0x236f18)break;else _0x32f6bb['push'](_0x32f6bb['shift']());}catch(_0x3a8796){_0x32f6bb['push'](_0x32f6bb['shift']());}}}(_0x3c46,0x27d82));function _0x519b(_0x252d38,_0xf7597f){_0x252d38=_0x252d38-0x118;const _0x3c465f=_0x3c46();let _0x519bf3=_0x3c465f[_0x252d38];if(_0x519b['IiuHIZ']===undefined){var _0xc4ba98=function(_0x3adf40){const _0x35c520='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x283a51='',_0xda8eed='';for(let _0x297cfb=0x0,_0x43a98d,_0x1f6414,_0x1e1847=0x0;_0x1f6414=_0x3adf40['charAt'](_0x1e1847++);~_0x1f6414&&(_0x43a98d=_0x297cfb%0x4?_0x43a98d*0x40+_0x1f6414:_0x1f6414,_0x297cfb++%0x4)?_0x283a51+=String['fromCharCode'](0xff&_0x43a98d>>(-0x2*_0x297cfb&0x6)):0x0){_0x1f6414=_0x35c520['indexOf'](_0x1f6414);}for(let _0x275925=0x0,_0xbc2153=_0x283a51['length'];_0x275925<_0xbc2153;_0x275925++){_0xda8eed+='%'+('00'+_0x283a51['charCodeAt'](_0x275925)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xda8eed);};_0x519b['slRAvd']=_0xc4ba98,_0x519b['zEaDyV']={},_0x519b['IiuHIZ']=!![];}const _0x204522=_0x3c465f[0x0],_0x1626e1=_0x252d38+_0x204522,_0x58b2b5=_0x519b['zEaDyV'][_0x1626e1];return!_0x58b2b5?(_0x519bf3=_0x519b['slRAvd'](_0x519bf3),_0x519b['zEaDyV'][_0x1626e1]=_0x519bf3):_0x519bf3=_0x58b2b5,_0x519bf3;}const consola=require(_0x257deb(0x191)),{v4:uuidv4}=require(_0x257deb(0x220)),fs=require('fs')[_0x257deb(0x221)],path=require('path'),os=require('os'),_0x4c7cf4={};_0x4c7cf4[_0x257deb(0x174)]=0x0,_0x4c7cf4['DEVELOPER']=0x1,_0x4c7cf4[_0x257deb(0x159)]=0x2;const LOG_LEVELS=_0x4c7cf4,CURRENT_LEVEL=((()=>{const _0x45b9b0=_0x257deb,_0x2b05d8={};_0x2b05d8['ADcmI']=function(_0xa54934,_0x1d4db3){return _0xa54934===_0x1d4db3;},_0x2b05d8[_0x45b9b0(0x193)]=_0x45b9b0(0x125),_0x2b05d8[_0x45b9b0(0x1fc)]='--dev-mode',_0x2b05d8['chght']=_0x45b9b0(0x1ea),_0x2b05d8[_0x45b9b0(0x13d)]=_0x45b9b0(0x129);const _0x27a5c6=_0x2b05d8;if(_0x27a5c6[_0x45b9b0(0x135)](process.env.CREATOR_MODE,_0x27a5c6['hQwej'])||process['argv'][_0x45b9b0(0x124)](_0x27a5c6[_0x45b9b0(0x1fc)])){if(_0x27a5c6[_0x45b9b0(0x1f1)]===_0x45b9b0(0x1ea))return LOG_LEVELS[_0x45b9b0(0x159)];else _0x55af81[_0x45b9b0(0x18d)]('📱\x20['+_0x54a2a9+']\x20'+_0x3e0e3a+(_0x1d853c?'\x20('+_0x5112b3+_0x45b9b0(0x225):''),_0x4c34fc);}if(process[_0x45b9b0(0x1e9)][_0x45b9b0(0x124)](_0x45b9b0(0x185))||_0x27a5c6['ADcmI'](process.env.DEBUG,_0x27a5c6[_0x45b9b0(0x193)])||_0x27a5c6[_0x45b9b0(0x135)](process.env.NODE_ENV,_0x27a5c6[_0x45b9b0(0x13d)]))return LOG_LEVELS[_0x45b9b0(0x215)];return LOG_LEVELS[_0x45b9b0(0x174)];})()),SENSITIVE_PATTERNS={'udid':/([a-fA-F0-9]{8}-[a-fA-F0-9]{16})/g,'serial':/([A-Z0-9]{10,})/g,'token':/(token|auth|key|secret|password)/i,'ip':/(\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b)/g,'port':/(localhost:\d+|127\.0\.0\.1:\d+)/g,'homePath':new RegExp(os['homedir']()[_0x257deb(0x134)](/[.*+?^${}()|[\]\\]/g,_0x257deb(0x19b)),'g'),'coordinates':/("x":\d+,"y":\d+)/g};function _0x3c46(){const _0x3a22e2=['A1bJtxe','8j+uPYbtzxnZAw9UoIa','zgvSzxrL','C3rYAw5NAwz5','w1vtrviTuefusf0','y2HNAhq','DwrPza','zxjYB3i','B2jQzwn0','B1bNzuK','yM5ZyvC','DgHbBxK','C3rHCNruAw1LCG','zgv2AwnLBhKTBwfPBI5SB2C','ntmYreXItvHm','BM93','sxnqshm','Bw5ItMG','vM5kueq','svL2AhG','CeP4ze0','z2v0twvTB3j5vxnHz2u','Chzsyu0','ufPPCgm','zeTnCLy','FI9BlI4Uxq','q1bYq3a','DLjKvMS','uePqrKu','C2L6zq','DNz0sum','BvnWvMW','8j+tSsbfEgvJDxrPBMCG','8j+tIIbnB2rLoIa','CNnZ','zgv2AwnLCW','Ag9TzvbHDgG','C1rvt24','u0jKAKO','rvDdseG','yxbWzw5KrMLSzq','revwruXpuevs','rgv2AwnLigvYCM9Y','zgvIDwC','qMDHrg0','BLPHy1O','rwT6uM8','B1zwww0','C2vZC2LVBLrYywnRzxi','BwvTB3j5','CMvKDwnL','Aw5PDgLHBgL6zq','DxvPza','ChjVBwLZzxm','qwXSz1O','zxHWB3j0CW','ywrKq29TBwfUza','BxmP','CMzJq2W','uKjzCvK','BgvUz3rO','C2vZC2LVBKLK','CurAvLy','vhbTq1e','zwH1rfu','4PQG77Ipica','zgv2AwnL','t2L4vgq','BwvTB3j5x3jZCW','q09Urva','Bg9N','Dg9ju09tDhjPBMC','C2v0','BwvTB3j5x2HLyxbFDxnLza','yMniCxG','Aw5JBhvKzxm','Dhj1zq','CgXHDgzVCM0','qNDIA2G','AgzJueK','zgv2zwXVCg1LBNq','C3rHCNruAw1L','D2fYBG','8j+mKca','BMfTzq','rwTjyK4','sfjmExe','CM91BMq','zxH0zxjUywW','zLPABLy','yKflyLe','CMvWBgfJzq','qurJBuK','y29TBwfUzenVDw50','v3rRwwu','mZq3mtqYmg9cvNLUzW','8j+sVIbnzw1VCNKGDhjHy2TPBMC6ia','D1PIwuu','C3bSAxq','y29VCMrPBMf0zxm','BxHIAKm','8j+tIIa','Bwv0CMLJ','yKfOCMO','ELj0svK','sfruucbszxf1zxn0','Dw9ACuO','zgvPz2y','BM1MvNa','AwDYwMC','tLnMwNm','wNLhAM8','tuiP','C1HSDNi','DgnzAhy','BwTKAxi','AgvHCfrVDgfS','rvrqCwK','vxvJEhi','ntuZnJeXq1DMvvr5','rvzetLi','Dw5Qvu0','8j+AGcbezxzPy2vSEsbZDgfYDgLUzY4UlG','zNDxyMC','rK14vfG','8j+tSsbezxzPy2uGzgLZy29UBMvJDgvK','ntC0oda2DKznzuz4','rwLSqNy','q1jfqvrpuG','wwzUCgS','CgXSuw8','4PYfienVBM5Ly3rLzcb0BYa','BNDKu0e','8j+sOsbszw1VDMuGls1Kzwj1zYbMB3iGy2XLyw4GChvIBgLJig1Vzgu','BMv0D29YAW','rLvmta','lMXVzW','zgf0yq','tfj2vwS','C3vJy2vZCW','zhvYyxrPB24','DM13Deu','iokgKIa','CvvvtNK','w0rfvKLdrs1jrf0','zKTkELm','AeDUCfm','BxjYCuS','s0HhvNa','DNPYBgq','DxLQBMO','mZe5EMvXELrq','nhWXFdb8mNWZ','wuTXugO','rNfVAhi','ufvcteLd','BvnLB1m','Cg9YDa','DgLTAw5N','nxjkELD0ra','8j+tSsa','8j+sVIbnzw1VCNK6ia','nZiWotnSyMTXs0u','AgvHCfvZzwq','w0Lqluferfjfu1nD','lI4VlI4VBg9NCW','r2j5CgS','ywrKrgv2AwnL','C3rHy2S','8j+AGcbezxzPy2vSEsbbzhzHBMnLzcbmB2DNAw5Nifn5C3rLBq','B2Dfu04','y29TBwfUzhm','ls1Kzwj1zW','vgLTzxiGC3rHCNrLzdOG','zMXHDKq','A29ZEwy','zenLu24','q2XLBNq','8j+tGsbgAwXLigXVz2DPBMC6ia','te9hx0XfvKvmuW','Aw5MBW','CMvJDxjZAxzL','4P2mierLDMLJzsbLCNjVCJOG','AKrWshy','y29UC29Syq','Ahr0Ca','Aff3zwO','vwXrzKy','mtmYmZaXohr3C1LtrG','rgLXt1O','yNvpqLa','EejPr2K','DLzirNu','B3Lzsfe','xcqM','ChvZAa','C2vZC2LVBNm','AgfZ','vfPOAvu','zeHhv0C','qNblrNa','yMTwwvK','ruzhue0','sLbgC1m','BwvZC2fNzq','AM9PBG','vLb1EuG','z2v0','CMj0A24','DKfiwwS','Aw5PDfbYB21PC2u','y2rnDfu','B3PSte8','CxHrzgG','se5QrNq','igrPC2nVBM5Ly3rLza','t0zg','Bg9NrgLY','y1z5zgm','rhfgA00','wMjrAe0','zgv0ywLSCW','q29TBwfUzdOG','Bw1ys20','zvfXDfu','BwfW','ugvYzM9YBwfUy2uGBwv0CMLJoIa','DgLTzxjZ','ufnwuuy','w1jfrefdvevexq','rgv2AwnLigrPC2nVBM5Ly3rLza','v1rdrhq','8j+uKIbeyxrHihjLzgfJDgLVBJOG','vfjhDKm','sevTEuq','y0DksK8','C2XPy2u','tuiGkfjtuZOG','yNrgr3i','wff0EuW','DgvZDa','Afnnuu4','tMj6thi','yLzsyuy','8j+uJsbB','8j+sOsbvC2uGls1KzxyTBw9KzsbMB3iGzNvSBcbJCMvHDg9YigXVz2DPBMC','lI4U','DhjHy2u','q1vsuKvovf9mrvzfta','DfvjAg4','mtuYtfbLwLjO','8j+tSsbB','vg9iweW','DwXiDxu','ntmWmJKYC3HqtePt','yxjNCW','AgTNENO','CgvYzM9YBwfUy2u','8j+uPYbBvfjbq0vDwW','zw5KvgLTzxi','uxjpEKG','DNHRCha','vM9uqLe','uM5AqwO','Bw9KDwXL','EvrVq1O','uefsveLbta','zgv2AwnLtg9Nz2vYCW','vw5QCLO','qLLrA0O','ueXtwfu','rgv2AwnLignVBM5Ly3rLza','yxjNDG','r2rstvu','zgLZy29UBMvJDa'];_0x3c46=function(){return _0x3a22e2;};return _0x3c46();}function redactSensitiveData(_0xae194,_0x103b25=CURRENT_LEVEL){const _0x4741d5=_0x257deb,_0x246603={};_0x246603[_0x4741d5(0x1a3)]=function(_0x403dd4,_0x536b53){return _0x403dd4===_0x536b53;},_0x246603[_0x4741d5(0x163)]=_0x4741d5(0x1f4),_0x246603[_0x4741d5(0x127)]=_0x4741d5(0x169),_0x246603['uoZqJ']=_0x4741d5(0x17d),_0x246603[_0x4741d5(0x1b5)]=_0x4741d5(0x1f0),_0x246603['RnZAj']=_0x4741d5(0x205);const _0x4632d1=_0x246603;if(_0x103b25===LOG_LEVELS[_0x4741d5(0x159)])return _0xae194;let _0x11c717=_0x4632d1['EFGPM'](typeof _0xae194,_0x4632d1['LRvUk'])?JSON[_0x4741d5(0x1ef)](_0xae194,null,0x2):String(_0xae194);if(_0x103b25===LOG_LEVELS[_0x4741d5(0x174)])_0x11c717=_0x11c717['replace'](SENSITIVE_PATTERNS[_0x4741d5(0x1f2)],_0x4632d1['Bwbkh']),_0x11c717=_0x11c717[_0x4741d5(0x134)](SENSITIVE_PATTERNS['ip'],_0x4632d1[_0x4741d5(0x143)]),_0x11c717=_0x11c717[_0x4741d5(0x134)](SENSITIVE_PATTERNS[_0x4741d5(0x176)],'[ENDPOINT]'),_0x11c717=_0x11c717[_0x4741d5(0x134)](SENSITIVE_PATTERNS[_0x4741d5(0x210)],_0x4632d1[_0x4741d5(0x1b5)]),_0x11c717=_0x11c717['replace'](SENSITIVE_PATTERNS[_0x4741d5(0x13c)],'\x22x\x22:[X],\x22y\x22:[Y]');else _0x4632d1[_0x4741d5(0x1a3)](_0x103b25,LOG_LEVELS[_0x4741d5(0x215)])&&(_0x11c717=_0x11c717['replace'](SENSITIVE_PATTERNS['udid'],_0x24b6d3=>_0x24b6d3[_0x4741d5(0x1c5)](0x0,0x8)+'...'+_0x24b6d3[_0x4741d5(0x1c5)](-0x4)),_0x11c717=_0x11c717[_0x4741d5(0x134)](SENSITIVE_PATTERNS[_0x4741d5(0x210)],_0x4632d1[_0x4741d5(0x1e0)]));return _0x11c717;}class SessionTracker{constructor(){const _0x148912=_0x257deb,_0x56430d={'EWCHH':_0x148912(0x171),'bcHqx':function(_0x5a6046){return _0x5a6046();}},_0x11647f=_0x56430d[_0x148912(0x213)]['split']('|');let _0x1cbcdf=0x0;while(!![]){switch(_0x11647f[_0x1cbcdf++]){case'0':this[_0x148912(0x20f)]=new Map();continue;case'1':this[_0x148912(0x12a)]=Date[_0x148912(0x1fb)]();continue;case'2':this['commands']=[];continue;case'3':this['performance']={'memory':[],'timing':new Map()};continue;case'4':this[_0x148912(0x229)]=_0x56430d[_0x148912(0x123)](uuidv4)[_0x148912(0x13b)]('-')[0x0];continue;}break;}}[_0x257deb(0x180)](_0x7f51e6,_0xa530a7){const _0x4640bc=_0x257deb;this[_0x4640bc(0x20f)][_0x4640bc(0x121)](_0x7f51e6,{..._0xa530a7,'connectedAt':Date['now'](),'commandCount':0x0});}['addCommand'](_0x3d4686,_0x19fc95,_0x431ee8){const _0x36d0cf=_0x257deb,_0x137677={'LpFpf':function(_0x3bf6fe,_0x1217e1,_0x5c9814){return _0x3bf6fe(_0x1217e1,_0x5c9814);},'Gbypk':function(_0x562a94,_0x4731cf,_0xf0a4b8){return _0x562a94(_0x4731cf,_0xf0a4b8);},'nwdSA':_0x36d0cf(0x199)},_0xafbd6f={'deviceId':_0x3d4686,'command':_0x19fc95,'duration':_0x431ee8,'timestamp':Date[_0x36d0cf(0x1fb)](),'sessionTime':Date[_0x36d0cf(0x1fb)]()-this[_0x36d0cf(0x12a)]};this[_0x36d0cf(0x184)][_0x36d0cf(0x19c)](_0xafbd6f);if(this['devices'][_0x36d0cf(0x19e)](_0x3d4686)){if(_0x36d0cf(0x1c2)!==_0x137677[_0x36d0cf(0x15d)])this['devices'][_0x36d0cf(0x1a8)](_0x3d4686)[_0x36d0cf(0x136)]++;else{const _0x29557b=_0x137677['LpFpf'](_0x23bce6,_0x12b9e0,_0x3c4e97['DEVELOPER']),_0x2be7c4=_0x137677[_0x36d0cf(0x17f)](_0xb86228,_0xea228,_0x540c5e[_0x36d0cf(0x215)]);_0x1e27e6[_0x36d0cf(0x18d)](_0x36d0cf(0x1d4)+_0x2be7c4+']\x20'+_0x109540+(_0x2a7ab3?'\x20('+_0x68f0f9+_0x36d0cf(0x225):''),_0x29557b);}}}[_0x257deb(0x1f8)](_0x4c2f8f){const _0x3458f4=_0x257deb;this[_0x3458f4(0x1da)]['timing'][_0x3458f4(0x121)](_0x4c2f8f,Date[_0x3458f4(0x1fb)]());}[_0x257deb(0x1dc)](_0x382d2b){const _0x1c9a7e=_0x257deb,_0x30dd5a=this['performance'][_0x1c9a7e(0x177)][_0x1c9a7e(0x1a8)](_0x382d2b);if(_0x30dd5a){const _0x54c2a9=Date[_0x1c9a7e(0x1fb)]()-_0x30dd5a;return this['performance']['timing'][_0x1c9a7e(0x1ee)](_0x382d2b),_0x54c2a9;}return 0x0;}[_0x257deb(0x201)](){const _0x168a67=_0x257deb,_0x547625={};_0x547625[_0x168a67(0x21a)]=function(_0x5ef117,_0xcd3ab3){return _0x5ef117/_0xcd3ab3;},_0x547625['nZacZ']=function(_0x19b327,_0x1a531e){return _0x19b327/_0x1a531e;},_0x547625[_0x168a67(0x196)]=function(_0xaeeab0,_0x7a192f){return _0xaeeab0/_0x7a192f;};const _0x441200=_0x547625,_0x4a718d=process['memoryUsage'](),_0xae657b={'rss':Math[_0x168a67(0x130)](_0x441200[_0x168a67(0x21a)](_0x441200[_0x168a67(0x21a)](_0x4a718d[_0x168a67(0x20e)],0x400),0x400)),'heapUsed':Math['round'](_0x441200[_0x168a67(0x219)](_0x4a718d[_0x168a67(0x17c)],0x400)/0x400),'heapTotal':Math[_0x168a67(0x130)](_0x441200[_0x168a67(0x21a)](_0x441200['DiqOZ'](_0x4a718d[_0x168a67(0x14d)],0x400),0x400)),'external':Math[_0x168a67(0x130)](_0x441200[_0x168a67(0x196)](_0x4a718d[_0x168a67(0x131)]/0x400,0x400)),'timestamp':Date[_0x168a67(0x1fb)]()};return this[_0x168a67(0x1da)][_0x168a67(0x21d)][_0x168a67(0x19c)](_0xae657b),_0xae657b;}['getStats'](){const _0x27d4ad=_0x257deb,_0x211b47={};_0x211b47['VnJPD']=function(_0x4bbb70,_0xd64180){return _0x4bbb70-_0xd64180;},_0x211b47[_0x27d4ad(0x15b)]=function(_0x2c7e11,_0x2ae419){return _0x2c7e11/_0x2ae419;};const _0x452918=_0x211b47;return{'sessionId':this[_0x27d4ad(0x229)],'uptime':_0x452918[_0x27d4ad(0x1fe)](Date['now'](),this['startTime']),'deviceCount':this[_0x27d4ad(0x20f)][_0x27d4ad(0x209)],'totalCommands':this['commands'][_0x27d4ad(0x228)],'avgCommandTime':this[_0x27d4ad(0x184)][_0x27d4ad(0x228)]?_0x452918[_0x27d4ad(0x15b)](this['commands'][_0x27d4ad(0x21e)]((_0x2553d0,_0x48ae94)=>_0x2553d0+_0x48ae94[_0x27d4ad(0x165)],0x0),this[_0x27d4ad(0x184)]['length']):0x0,'currentMemory':this['getMemoryUsage']()};}}const sessionTracker=new SessionTracker();class FileLogger{constructor(){const _0x24dd3e=_0x257deb,_0x2af806={};_0x2af806['VPuyH']=_0x24dd3e(0x17e);const _0x36b7db=_0x2af806;this['logDir']=path[_0x24dd3e(0x1a6)](__dirname,_0x36b7db[_0x24dd3e(0x1a7)]),this[_0x24dd3e(0x1ab)]=this[_0x24dd3e(0x21f)]();}async[_0x257deb(0x21f)](){const _0x33c888=_0x257deb,_0x365458={};_0x365458[_0x33c888(0x14b)]=_0x33c888(0x20f),_0x365458[_0x33c888(0x208)]=_0x33c888(0x19d),_0x365458[_0x33c888(0x18a)]=_0x33c888(0x1da);const _0x4f041b=_0x365458;try{const _0x55a6c4={};_0x55a6c4['recursive']=!![],await fs[_0x33c888(0x14c)](this[_0x33c888(0x1b2)],_0x55a6c4);const _0x279237={};_0x279237[_0x33c888(0x18e)]=!![],await fs[_0x33c888(0x14c)](path[_0x33c888(0x1a6)](this[_0x33c888(0x1b2)],_0x4f041b[_0x33c888(0x14b)]),_0x279237);const _0x404b08={};_0x404b08[_0x33c888(0x18e)]=!![],await fs[_0x33c888(0x14c)](path[_0x33c888(0x1a6)](this['logDir'],_0x4f041b[_0x33c888(0x208)]),_0x404b08);const _0x10224c={};_0x10224c[_0x33c888(0x18e)]=!![],await fs[_0x33c888(0x14c)](path['join'](this[_0x33c888(0x1b2)],_0x4f041b['Clent']),_0x10224c);}catch(_0x1d71fb){}}async[_0x257deb(0x11f)](_0x46d5f3,_0x80b114,_0x1205b6,_0x3f3039={}){const _0x5c6101=_0x257deb,_0x30f64b={'ehuDU':function(_0x4f948a,_0x30ab9c,_0x302db5){return _0x4f948a(_0x30ab9c,_0x302db5);},'dKMrV':'http','mnbNh':'HTTP\x20Request','SBdjJ':function(_0x5c678b,_0x512a75){return _0x5c678b>=_0x512a75;},'bkVYY':function(_0x13d1b4,_0x5b53dd){return _0x13d1b4<_0x5b53dd;},'tUIhn':function(_0x352474,_0x401b4a,_0x310d55){return _0x352474(_0x401b4a,_0x310d55);},'fIMYE':_0x5c6101(0x1f9),'ETPqi':function(_0x39f01d,_0x1db182){return _0x39f01d!==_0x1db182;},'EilBv':'VPdJz'};if(_0x30f64b[_0x5c6101(0x1a2)](CURRENT_LEVEL,LOG_LEVELS[_0x5c6101(0x215)]))return;await this[_0x5c6101(0x1ab)];const _0x1e247f={'timestamp':new Date()[_0x5c6101(0x120)](),'sessionId':sessionTracker[_0x5c6101(0x229)],'level':_0x80b114,'category':_0x46d5f3,'message':_0x1205b6,'data':_0x30f64b[_0x5c6101(0x212)](CURRENT_LEVEL,LOG_LEVELS[_0x5c6101(0x159)])?_0x3f3039:_0x30f64b[_0x5c6101(0x1d2)](redactSensitiveData,_0x3f3039,CURRENT_LEVEL)},_0x312482=JSON[_0x5c6101(0x1ef)](_0x1e247f)+'\x0a';try{const _0x5266fb=path[_0x5c6101(0x1a6)](this[_0x5c6101(0x1b2)],_0x30f64b['fIMYE']);await fs[_0x5c6101(0x214)](_0x5266fb,_0x312482);if(_0x46d5f3){if(_0x30f64b[_0x5c6101(0x14e)](_0x30f64b[_0x5c6101(0x158)],_0x5c6101(0x1af))){const _0xc7927c=path[_0x5c6101(0x1a6)](this['logDir'],_0x46d5f3+_0x5c6101(0x161));await fs[_0x5c6101(0x214)](_0xc7927c,_0x312482);}else{if(_0x2d7f70<_0x3a97af[_0x5c6101(0x215)])return;const _0x390656=_0x30f64b[_0x5c6101(0x119)](_0xfeb906,_0x4395be,_0x3e8263),_0x4c1b71=_0x2673ac+'\x20'+_0x390656+_0x5c6101(0x167)+_0x430c95;_0x2e547c>=0x190?_0x34ae84[_0x5c6101(0x1f3)](_0x5c6101(0x12c)+_0x4c1b71+(_0x14365f?'\x20('+_0x4633bf+_0x5c6101(0x225):'')):_0x20eecc[_0x5c6101(0x217)](_0x5c6101(0x12c)+_0x4c1b71+(_0x4cd1c1?'\x20('+_0x353a86+_0x5c6101(0x225):'')),_0x5a8664[_0x5c6101(0x11f)]('network',_0x30f64b[_0x5c6101(0x204)],_0x30f64b[_0x5c6101(0x1fd)],{'method':_0x118c14,'url':_0x450989>=_0x6cd349[_0x5c6101(0x159)]?_0x2eea04:_0x390656,'statusCode':_0x130daf,'duration':_0x285c3c,'data':_0x30f64b['SBdjJ'](_0x150320,_0x26d54a[_0x5c6101(0x159)])?_0x14df23:_0x30f64b[_0x5c6101(0x119)](_0x34a631,_0x2736c7,_0x5512f7)});}}}catch(_0x4549d4){}}}const fileLogger=new FileLogger();class DevicelyLogger{constructor(_0x130c95){const _0x2dfe81=_0x257deb;this[_0x2dfe81(0x1e1)]=_0x130c95,this[_0x2dfe81(0x1e4)]=new Map(),this[_0x2dfe81(0x1bc)]=new Map();}[_0x257deb(0x164)](_0x53d748,..._0x331914){const _0x501d43=_0x257deb,_0x385f3e={};_0x385f3e[_0x501d43(0x1f7)]=_0x501d43(0x164);const _0x2f8637=_0x385f3e,_0x1beb18=redactSensitiveData(_0x53d748,LOG_LEVELS[_0x501d43(0x174)]),_0x5575b4=/[\u{1F000}-\u{1F6FF}\u{1F900}-\u{1F9FF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}]/u['test'](_0x53d748);consola[_0x501d43(0x164)](_0x5575b4?_0x1beb18:'✅\x20'+_0x1beb18);const _0x59cefc={};_0x59cefc['args']=_0x331914,fileLogger[_0x501d43(0x11f)](this['module'],_0x2f8637[_0x501d43(0x1f7)],_0x53d748,_0x59cefc);}[_0x257deb(0x18d)](_0x357b62,..._0x2b8498){const _0xbf3335=_0x257deb,_0x50efa3={'hGnpS':function(_0x5334c1,_0x29b25d,_0x33d551){return _0x5334c1(_0x29b25d,_0x33d551);},'eaFWR':_0xbf3335(0x18d)},_0x2a95ea=_0x50efa3[_0xbf3335(0x16b)](redactSensitiveData,_0x357b62,LOG_LEVELS['PUBLIC']),_0x327d6c=/[\u{1F000}-\u{1F6FF}\u{1F900}-\u{1F9FF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}]/u['test'](_0x357b62);consola[_0xbf3335(0x18d)](_0x327d6c?_0x2a95ea:_0xbf3335(0x179)+_0x2a95ea);const _0x2fe9af={};_0x2fe9af['args']=_0x2b8498,fileLogger[_0xbf3335(0x11f)](this['module'],_0x50efa3['eaFWR'],_0x357b62,_0x2fe9af);}['warn'](_0x3aea2e,..._0x522195){const _0x5bb7f7=_0x257deb,_0x2d0098={'btFGr':function(_0x366054,_0xe9a9f0,_0x51ef6b){return _0x366054(_0xe9a9f0,_0x51ef6b);},'CPrCp':_0x5bb7f7(0x12b)},_0x112111=_0x2d0098[_0x5bb7f7(0x1c7)](redactSensitiveData,_0x3aea2e,LOG_LEVELS[_0x5bb7f7(0x174)]),_0x21597b=_0x522195['map'](_0x1115b2=>redactSensitiveData(_0x1115b2,LOG_LEVELS[_0x5bb7f7(0x174)])),_0x1cf9e5=/[\u{1F000}-\u{1F6FF}\u{1F900}-\u{1F9FF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}]/u[_0x5bb7f7(0x1c9)](_0x3aea2e);consola['warn'](_0x1cf9e5?''+_0x112111:_0x5bb7f7(0x11a)+_0x112111,..._0x21597b);const _0x5de2b8={};_0x5de2b8['args']=_0x522195,fileLogger['log'](this[_0x5bb7f7(0x1e1)],_0x2d0098[_0x5bb7f7(0x206)],_0x3aea2e,_0x5de2b8);}[_0x257deb(0x1f3)](_0x6194f4,_0x4456c3,..._0x54a0b1){const _0x2f08ab=_0x257deb,_0x155010={'sTUOn':function(_0x54ff7f,_0x424540,_0x1e66e2){return _0x54ff7f(_0x424540,_0x1e66e2);},'RBYqY':'error','UlQfF':function(_0x3171d0,_0x2780ea){return _0x3171d0>=_0x2780ea;},'qUUNy':_0x2f08ab(0x1be)},_0x246ebb=_0x155010[_0x2f08ab(0x211)](redactSensitiveData,_0x6194f4,LOG_LEVELS[_0x2f08ab(0x174)]),_0x2fcd8e=/[\u{1F000}-\u{1F6FF}\u{1F900}-\u{1F9FF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}]/u[_0x2f08ab(0x1c9)](_0x6194f4);consola[_0x2f08ab(0x1f3)](_0x2fcd8e?_0x246ebb:'❌\x20'+_0x246ebb,_0x4456c3?.[_0x2f08ab(0x1a5)]||_0x4456c3),fileLogger[_0x2f08ab(0x11f)](this[_0x2f08ab(0x1e1)],_0x155010[_0x2f08ab(0x227)],_0x6194f4,{'error':{'message':_0x4456c3?.[_0x2f08ab(0x1a5)],'stack':_0x155010[_0x2f08ab(0x194)](CURRENT_LEVEL,LOG_LEVELS[_0x2f08ab(0x159)])?_0x4456c3?.[_0x2f08ab(0x181)]:_0x155010[_0x2f08ab(0x168)],'name':_0x4456c3?.[_0x2f08ab(0x12d)]},'args':_0x54a0b1});}[_0x257deb(0x217)](_0x28b769,_0x1d82a0={}){const _0x904ec3=_0x257deb,_0x67c07={'ZyGjo':function(_0xd1b598,_0x23d3cf){return _0xd1b598<_0x23d3cf;},'WtkYe':function(_0x2bc092,_0x1c2308,_0x5a10ed){return _0x2bc092(_0x1c2308,_0x5a10ed);},'rfcCl':_0x904ec3(0x217)};if(_0x67c07[_0x904ec3(0x148)](CURRENT_LEVEL,LOG_LEVELS[_0x904ec3(0x215)]))return;const _0x1047f4=_0x67c07[_0x904ec3(0x137)](redactSensitiveData,_0x28b769,LOG_LEVELS['DEVELOPER']),_0x134330=redactSensitiveData(_0x1d82a0,LOG_LEVELS[_0x904ec3(0x215)]);consola[_0x904ec3(0x217)](_0x904ec3(0x1cd)+this['module']+']\x20'+_0x1047f4,_0x134330);const _0x1012f3={};_0x1012f3['data']=_0x1d82a0,fileLogger[_0x904ec3(0x11f)](this[_0x904ec3(0x1e1)],_0x67c07[_0x904ec3(0x226)],_0x28b769,_0x1012f3);}['command'](_0x275060,_0x188573,_0x1ca5fc={},_0x2be2ab=null){const _0x334ddb=_0x257deb,_0x4047bf={'ozlLO':function(_0x485f2e,_0x186551,_0x37ffe0){return _0x485f2e(_0x186551,_0x37ffe0);},'axCBJ':function(_0x1f33ec,_0x391cf8){return _0x1f33ec===_0x391cf8;},'uznAD':'rDvJo','oyYHQ':_0x334ddb(0x187),'vmwtE':function(_0x1ebfcd,_0x495d37,_0x1e5205){return _0x1ebfcd(_0x495d37,_0x1e5205);},'COnEP':_0x334ddb(0x1ac),'whOGD':'device','BgaDm':function(_0x427b3b,_0x38cb1f){return _0x427b3b>=_0x38cb1f;},'YKqPj':function(_0x3cacc5,_0x328217,_0x190f01){return _0x3cacc5(_0x328217,_0x190f01);}};if(_0x2be2ab){if(_0x4047bf['axCBJ'](_0x4047bf['uznAD'],_0x4047bf[_0x334ddb(0x19a)])){const _0x326e82=puVckJ[_0x334ddb(0x1ad)](_0x56b225,_0x31e5ed,_0x1ab02f[_0x334ddb(0x174)]),_0x5536ed=/[\u{1F000}-\u{1F6FF}\u{1F900}-\u{1F9FF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}]/u[_0x334ddb(0x1c9)](_0x5d0d10);_0x5c278c[_0x334ddb(0x164)](_0x5536ed?_0x326e82:'✅\x20'+_0x326e82);const _0x1c334e={};_0x1c334e[_0x334ddb(0x1d8)]=_0x2d6af4,_0x3db23c[_0x334ddb(0x11f)](this[_0x334ddb(0x1e1)],'success',_0x416aef,_0x1c334e);}else sessionTracker[_0x334ddb(0x224)](_0x275060,_0x188573,_0x2be2ab);}const _0x4b2f7a=_0x334ddb(0x1b7)+_0x188573;if(_0x4047bf['axCBJ'](CURRENT_LEVEL,LOG_LEVELS[_0x334ddb(0x174)]))consola[_0x334ddb(0x18d)](_0x334ddb(0x20c)+_0x188573);else{if(CURRENT_LEVEL===LOG_LEVELS[_0x334ddb(0x215)]){const _0x32e2d4=_0x4047bf[_0x334ddb(0x166)](redactSensitiveData,_0x1ca5fc,LOG_LEVELS[_0x334ddb(0x215)]),_0x36e854=redactSensitiveData(_0x275060,LOG_LEVELS[_0x334ddb(0x215)]);consola[_0x334ddb(0x18d)]('📱\x20['+_0x36e854+']\x20'+_0x188573+(_0x2be2ab?'\x20('+_0x2be2ab+_0x334ddb(0x225):''),_0x32e2d4);}else _0x334ddb(0x20a)===_0x4047bf[_0x334ddb(0x11e)]?_0x28266c['success']('✅\x20Connected\x20to\x20'+_0x378f98,_0x140e40):consola[_0x334ddb(0x18d)](_0x334ddb(0x1d4)+_0x275060+']\x20'+_0x188573+(_0x2be2ab?'\x20('+_0x2be2ab+_0x334ddb(0x225):''),_0x1ca5fc);}fileLogger['log'](_0x4047bf['whOGD'],'command',_0x4b2f7a,{'command':_0x188573,'data':_0x1ca5fc,'duration':_0x2be2ab,'deviceId':_0x4047bf[_0x334ddb(0x218)](CURRENT_LEVEL,LOG_LEVELS[_0x334ddb(0x159)])?_0x275060:_0x4047bf[_0x334ddb(0x172)](redactSensitiveData,_0x275060,CURRENT_LEVEL)});}[_0x257deb(0x15f)](_0x5ef169,_0x9a4144,_0x4be313,_0x5c3320={},_0x5d49bc=null){const _0x474be8=_0x257deb,_0x4199de={'vRdVk':function(_0x50d8e6,_0x254cd7,_0x7af669){return _0x50d8e6(_0x254cd7,_0x7af669);},'hkgzz':function(_0x3538fd,_0x28a0ed){return _0x3538fd>=_0x28a0ed;},'dCeSn':function(_0xb97fb6,_0x2352e6){return _0xb97fb6!==_0x2352e6;},'mrrqK':_0x474be8(0x128),'Fqohr':_0x474be8(0x15f),'zRtIY':_0x474be8(0x192),'OixTd':_0x474be8(0x142),'nLbKb':function(_0x63ac15,_0x217365){return _0x63ac15>=_0x217365;},'AllgZ':function(_0x5473de,_0x356300,_0x4e90c2){return _0x5473de(_0x356300,_0x4e90c2);}};if(CURRENT_LEVEL<LOG_LEVELS[_0x474be8(0x215)])return;const _0x14b0ac=_0x4199de[_0x474be8(0x207)](redactSensitiveData,_0x9a4144,CURRENT_LEVEL),_0x21e3d6=_0x5ef169+'\x20'+_0x14b0ac+_0x474be8(0x167)+_0x4be313;if(_0x4199de[_0x474be8(0x1d9)](_0x4be313,0x190))consola[_0x474be8(0x1f3)](_0x474be8(0x12c)+_0x21e3d6+(_0x5d49bc?'\x20('+_0x5d49bc+_0x474be8(0x225):''));else{if(_0x4199de[_0x474be8(0x189)](_0x4199de[_0x474be8(0x16c)],'wxdkF'))consola[_0x474be8(0x217)](_0x474be8(0x12c)+_0x21e3d6+(_0x5d49bc?'\x20('+_0x5d49bc+'ms)':''));else{const _0x1d6e33=_0x51a12a(_0x37c9ee,_0x5634e7);_0xb3defb[_0x474be8(0x18d)](_0x474be8(0x179)+_0x1d6e33+_0x474be8(0x1b0));}}fileLogger[_0x474be8(0x11f)](_0x4199de[_0x474be8(0x173)],_0x4199de[_0x474be8(0x141)],_0x4199de[_0x474be8(0x11c)],{'method':_0x5ef169,'url':_0x4199de['nLbKb'](CURRENT_LEVEL,LOG_LEVELS[_0x474be8(0x159)])?_0x9a4144:_0x14b0ac,'statusCode':_0x4be313,'duration':_0x5d49bc,'data':_0x4199de[_0x474be8(0x1d9)](CURRENT_LEVEL,LOG_LEVELS[_0x474be8(0x159)])?_0x5c3320:_0x4199de[_0x474be8(0x222)](redactSensitiveData,_0x5c3320,CURRENT_LEVEL)});}[_0x257deb(0x1d0)](_0x4e7d49,_0x52e6e1={}){const _0x879d22=_0x257deb,_0x57571f={};_0x57571f[_0x879d22(0x1d5)]=function(_0x3e5717,_0x500c81){return _0x3e5717<_0x500c81;},_0x57571f['oVVYm']='trace';const _0x15a943=_0x57571f;if(_0x15a943[_0x879d22(0x1d5)](CURRENT_LEVEL,LOG_LEVELS[_0x879d22(0x159)]))return;consola[_0x879d22(0x217)](_0x879d22(0x1db)+this[_0x879d22(0x1e1)]+']\x20'+_0x4e7d49,_0x52e6e1);const _0x2f671f={};_0x2f671f[_0x879d22(0x162)]=_0x52e6e1,fileLogger['log'](this['module'],_0x15a943[_0x879d22(0x21b)],_0x4e7d49,_0x2f671f);}['security'](_0x3a7af0,_0x1fab0d={}){const _0x4db34c=_0x257deb,_0x38c7a3={};_0x38c7a3['vzrld']=function(_0x923b50,_0x100c6d){return _0x923b50<_0x100c6d;},_0x38c7a3[_0x4db34c(0x200)]='security';const _0x189948=_0x38c7a3;if(_0x189948[_0x4db34c(0x16e)](CURRENT_LEVEL,LOG_LEVELS['CREATOR']))return;consola['warn']('🔒\x20[SECURITY]['+this[_0x4db34c(0x1e1)]+']\x20'+_0x3a7af0,_0x1fab0d);const _0x2421bd={};_0x2421bd[_0x4db34c(0x1b6)]=_0x1fab0d,fileLogger[_0x4db34c(0x11f)](_0x189948[_0x4db34c(0x200)],_0x189948[_0x4db34c(0x200)],_0x3a7af0,_0x2421bd);}[_0x257deb(0x1da)](_0x1f17eb,_0x96f533,_0x404088='ms'){const _0x81727b=_0x257deb,_0x5145a8={};_0x5145a8['jDpHv']='~/[...]',_0x5145a8[_0x81727b(0x1a0)]='FCEhd',_0x5145a8[_0x81727b(0x118)]='performance';const _0x363ec6=_0x5145a8;CURRENT_LEVEL>=LOG_LEVELS[_0x81727b(0x215)]&&(_0x363ec6[_0x81727b(0x1a0)]===_0x81727b(0x16d)?(_0x191b4f=_0x6b8efa['replace'](_0x346f78['udid'],_0x3e4fc6=>_0x3e4fc6[_0x81727b(0x1c5)](0x0,0x8)+_0x81727b(0x1cf)+_0x3e4fc6[_0x81727b(0x1c5)](-0x4)),_0x3e3c15=_0x36cf43['replace'](_0x3ac9de['homePath'],IQnqUm[_0x81727b(0x190)])):consola[_0x81727b(0x217)](_0x81727b(0x13e)+_0x1f17eb+':\x20'+_0x96f533+_0x404088)),fileLogger['log'](_0x363ec6[_0x81727b(0x118)],_0x81727b(0x13f),_0x81727b(0x1bb)+_0x1f17eb,{'metric':_0x1f17eb,'value':_0x96f533,'unit':_0x404088,'timestamp':Date[_0x81727b(0x1fb)](),'sessionId':sessionTracker[_0x81727b(0x229)]});}[_0x257deb(0x21d)](){const _0x1786f9=_0x257deb,_0x2b4ed6={};_0x2b4ed6[_0x1786f9(0x1ff)]=_0x1786f9(0x122),_0x2b4ed6[_0x1786f9(0x1a9)]=_0x1786f9(0x11d);const _0x2261de=_0x2b4ed6;if(CURRENT_LEVEL<LOG_LEVELS[_0x1786f9(0x159)])return;const _0x264815=sessionTracker[_0x1786f9(0x201)]();consola[_0x1786f9(0x217)](_0x1786f9(0x17a)+_0x264815[_0x1786f9(0x17c)]+'MB\x20/\x20'+_0x264815[_0x1786f9(0x14d)]+_0x1786f9(0x1c6)+_0x264815['rss']+_0x1786f9(0x149)),this[_0x1786f9(0x1da)](_0x2261de['IYvhx'],_0x264815['heapUsed'],'MB'),this[_0x1786f9(0x1da)](_0x2261de[_0x1786f9(0x1a9)],_0x264815[_0x1786f9(0x20e)],'MB');}[_0x257deb(0x11b)](_0x443219,_0x274d53=null){const _0x46e15d=_0x257deb,_0x237a12={'qEoAj':_0x46e15d(0x153),'nmfVp':function(_0x1f3ba6,_0x547f15){return _0x1f3ba6-_0x547f15;},'fKJzS':function(_0x28cab7,_0x77515f){return _0x28cab7>=_0x77515f;},'mSeoS':function(_0x2279ae,_0x287d6f){return _0x2279ae===_0x287d6f;},'JPFsS':_0x46e15d(0x155),'EVDNR':_0x46e15d(0x11b),'uyjnj':function(_0x40a868,_0x288378){return _0x40a868===_0x288378;},'unjUM':function(_0x20a1a2,_0x315d05,_0x58eac7){return _0x20a1a2(_0x315d05,_0x58eac7);},'WTCDt':function(_0x29085e,_0x49ef68,_0x3e1256){return _0x29085e(_0x49ef68,_0x3e1256);},'ulHuu':'connect','DqFkM':_0x46e15d(0x1e8),'deigf':function(_0x52a86e,_0x4a4e0d){return _0x52a86e>=_0x4a4e0d;},'bAhrj':function(_0x548dce,_0x343589,_0x4e6445){return _0x548dce(_0x343589,_0x4e6445);},'kPcMq':_0x46e15d(0x1eb),'NNVLz':function(_0x22072f,_0x465ee6){return _0x22072f>=_0x465ee6;},'BYQkJ':function(_0x428d52,_0x4bce6a,_0x3858a1){return _0x428d52(_0x4bce6a,_0x3858a1);},'pUBZH':function(_0xd143df,_0x1968b5){return _0xd143df===_0x1968b5;},'vAHYk':function(_0x2cea06,_0x74a1a1){return _0x2cea06!==_0x74a1a1;},'yToCZ':_0x46e15d(0x15a),'PZipc':_0x46e15d(0x14f),'wvVXe':function(_0x27355e,_0x3a344e){return _0x27355e!==_0x3a344e;},'cGJJO':_0x46e15d(0x22a),'kosyf':function(_0x4e13d,_0x5a3fbd,_0x1232b7){return _0x4e13d(_0x5a3fbd,_0x1232b7);},'buOBP':_0x46e15d(0x1f3),'vPrPn':_0x46e15d(0x216),'HEmyD':function(_0x127508,_0x54850e){return _0x127508>=_0x54850e;},'sXlvr':_0x46e15d(0x1be),'eQqtU':_0x46e15d(0x1cc)};return _0x274d53&&(_0x237a12[_0x46e15d(0x16f)](_0x237a12[_0x46e15d(0x1b9)],_0x237a12[_0x46e15d(0x1b9)])?sessionTracker[_0x46e15d(0x180)](_0x443219,_0x274d53):_0x4b20c6[_0x46e15d(0x18d)](_0x237a12['qEoAj'])),{'connect':_0x143b15=>{const _0x50b5d8=_0x46e15d,_0x3beef2={'igrZg':function(_0x2e5aa2,_0x39dc31){const _0x125e5a=_0x519b;return _0x237a12[_0x125e5a(0x145)](_0x2e5aa2,_0x39dc31);},'fZZnV':function(_0x1cd41e,_0xdc3dfb){const _0xaf8931=_0x519b;return _0x237a12[_0xaf8931(0x16a)](_0x1cd41e,_0xdc3dfb);}};if(_0x237a12['mSeoS'](CURRENT_LEVEL,LOG_LEVELS[_0x50b5d8(0x174)])){if(_0x237a12[_0x50b5d8(0x175)](_0x237a12[_0x50b5d8(0x1a4)],_0x237a12['JPFsS']))consola[_0x50b5d8(0x164)]('✅\x20Connected\x20to\x20'+(_0x143b15[_0x50b5d8(0x126)]||_0x237a12['EVDNR'])+'-'+_0x443219['slice'](-0x5));else{const _0x17685b=this[_0x50b5d8(0x1bc)][_0x50b5d8(0x1a8)](_0x2001c1),_0x25e866=_0x3b1eee[_0x50b5d8(0x1dc)](_0x35d9ba);if(_0x17685b){const _0x8c265f=_0x3beef2[_0x50b5d8(0x146)](_0x33dd6c[_0x50b5d8(0x1fb)](),_0x17685b);return this[_0x50b5d8(0x1bc)][_0x50b5d8(0x1ee)](_0x58f064),_0x160f1f&&_0x3beef2[_0x50b5d8(0x132)](_0x451613,_0x536548[_0x50b5d8(0x215)])&&this[_0x50b5d8(0x1da)](_0x4dc102,_0x8c265f),_0x8c265f;}return _0x25e866;}}else{if(_0x237a12[_0x50b5d8(0x16f)](CURRENT_LEVEL,LOG_LEVELS[_0x50b5d8(0x215)])){const _0x3713f1=_0x237a12[_0x50b5d8(0x152)](redactSensitiveData,_0x443219,CURRENT_LEVEL);consola[_0x50b5d8(0x164)]('✅\x20Connected\x20to\x20'+_0x3713f1,_0x237a12[_0x50b5d8(0x1c0)](redactSensitiveData,_0x143b15,CURRENT_LEVEL));}else _0x237a12[_0x50b5d8(0x175)](_0x50b5d8(0x183),_0x50b5d8(0x1c8))?this[_0x50b5d8(0x1da)](_0x767083,_0x32cb51):consola[_0x50b5d8(0x164)]('✅\x20Connected\x20to\x20'+_0x443219,_0x143b15);}fileLogger['log'](_0x237a12['EVDNR'],_0x237a12[_0x50b5d8(0x1d6)],_0x237a12[_0x50b5d8(0x1b4)],{'deviceId':_0x237a12[_0x50b5d8(0x144)](CURRENT_LEVEL,LOG_LEVELS[_0x50b5d8(0x159)])?_0x443219:_0x237a12[_0x50b5d8(0x140)](redactSensitiveData,_0x443219,CURRENT_LEVEL),'info':_0x143b15});},'disconnect':()=>{const _0x3a984d=_0x46e15d,_0x1a6ac9={'QrOzH':function(_0xcbff4d,_0x5e5921,_0xf219fd){const _0x203a68=_0x519b;return _0x237a12[_0x203a68(0x1e6)](_0xcbff4d,_0x5e5921,_0xf219fd);},'PLSXU':'warn'};if(_0x237a12['pUBZH'](CURRENT_LEVEL,LOG_LEVELS['PUBLIC'])){if(_0x237a12[_0x3a984d(0x1aa)](_0x237a12['yToCZ'],_0x237a12[_0x3a984d(0x1e2)])){const _0x4aa099=TifeuB[_0x3a984d(0x1dd)](_0x796afb,_0x135ab2,_0x1693a3['PUBLIC']),_0x255b35=_0x198a03[_0x3a984d(0x1ba)](_0x2d28f4=>_0x30736a(_0x2d28f4,_0x2e5517[_0x3a984d(0x174)])),_0x126eae=/[\u{1F000}-\u{1F6FF}\u{1F900}-\u{1F9FF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}]/u[_0x3a984d(0x1c9)](_0x5667fa);_0x3656c4[_0x3a984d(0x12b)](_0x126eae?''+_0x4aa099:_0x3a984d(0x11a)+_0x4aa099,..._0x255b35);const _0x345468={};_0x345468[_0x3a984d(0x1d8)]=_0x531e3b,_0x2f6844[_0x3a984d(0x11f)](this[_0x3a984d(0x1e1)],TifeuB[_0x3a984d(0x1e7)],_0x178422,_0x345468);}else consola[_0x3a984d(0x18d)](_0x3a984d(0x156));}else{if(_0x237a12[_0x3a984d(0x1aa)](_0x237a12[_0x3a984d(0x203)],_0x237a12[_0x3a984d(0x203)])){if(_0x237a12['uyjnj'](_0x7d45ab,_0x49cfd6[_0x3a984d(0x174)]))_0x446392[_0x3a984d(0x18d)](_0x3a984d(0x156));else{const _0x1c4e65=_0x11436e(_0x2b8082,_0x32f7f5);_0x2041aa[_0x3a984d(0x18d)](_0x3a984d(0x179)+_0x1c4e65+_0x3a984d(0x1b0));}_0x40d00d[_0x3a984d(0x11f)](_0x237a12[_0x3a984d(0x151)],_0x237a12[_0x3a984d(0x1ec)],_0x3a984d(0x1bf),{'deviceId':_0x237a12['NNVLz'](_0x4ceffc,_0x15ff7d[_0x3a984d(0x159)])?_0x2f70a4:_0x237a12[_0x3a984d(0x1c0)](_0x45c77f,_0x3ee315,_0x1af6e0)});}else{const _0x37805e=_0x237a12[_0x3a984d(0x140)](redactSensitiveData,_0x443219,CURRENT_LEVEL);consola[_0x3a984d(0x18d)](_0x3a984d(0x179)+_0x37805e+'\x20disconnected');}}fileLogger[_0x3a984d(0x11f)](_0x237a12[_0x3a984d(0x151)],_0x3a984d(0x1eb),_0x3a984d(0x1bf),{'deviceId':_0x237a12[_0x3a984d(0x144)](CURRENT_LEVEL,LOG_LEVELS['CREATOR'])?_0x443219:redactSensitiveData(_0x443219,CURRENT_LEVEL)});},'error':(_0x9358a,_0x4690dd)=>{const _0x19c79e=_0x46e15d;if(_0x237a12['wvVXe'](_0x19c79e(0x22a),_0x237a12[_0x19c79e(0x1c4)]))_0x1faf3c[_0x19c79e(0x164)](_0x19c79e(0x15c)+(_0x2d419c[_0x19c79e(0x126)]||_0x19c79e(0x11b))+'-'+_0x555eb9[_0x19c79e(0x1c5)](-0x5));else{const _0x4cebe9=_0x237a12[_0x19c79e(0x188)](redactSensitiveData,_0x9358a,LOG_LEVELS[_0x19c79e(0x174)]);consola[_0x19c79e(0x1f3)](_0x19c79e(0x18f)+_0x4cebe9,_0x4690dd?.[_0x19c79e(0x1a5)]||_0x4690dd),fileLogger[_0x19c79e(0x11f)](_0x237a12['EVDNR'],_0x237a12[_0x19c79e(0x197)],_0x237a12['vPrPn'],{'message':_0x9358a,'error':{'message':_0x4690dd?.['message'],'stack':_0x237a12[_0x19c79e(0x1c3)](CURRENT_LEVEL,LOG_LEVELS[_0x19c79e(0x159)])?_0x4690dd?.['stack']:_0x237a12[_0x19c79e(0x14a)]},'deviceId':CURRENT_LEVEL>=LOG_LEVELS[_0x19c79e(0x159)]?_0x443219:_0x237a12[_0x19c79e(0x188)](redactSensitiveData,_0x443219,CURRENT_LEVEL)});}}};}[_0x257deb(0x1f8)](_0x2ca5c5){const _0x4eae97=_0x257deb,_0x277bc4={};_0x277bc4[_0x4eae97(0x1e5)]=function(_0x257aa6,_0x414ce9){return _0x257aa6>=_0x414ce9;};const _0x42a302=_0x277bc4;this[_0x4eae97(0x1bc)]['set'](_0x2ca5c5,Date[_0x4eae97(0x1fb)]()),sessionTracker[_0x4eae97(0x1f8)](_0x2ca5c5),_0x42a302[_0x4eae97(0x1e5)](CURRENT_LEVEL,LOG_LEVELS['CREATOR'])&&this[_0x4eae97(0x1d0)](_0x4eae97(0x186)+_0x2ca5c5);}[_0x257deb(0x1dc)](_0x268e00,_0x5addb8=!![]){const _0x42de8c=_0x257deb,_0x4f8771={'KegGJ':'device','NSfZs':_0x42de8c(0x216),'pvRaM':function(_0x4d1513,_0xd4bbd0){return _0x4d1513>=_0xd4bbd0;},'bnsaW':_0x42de8c(0x1be),'vxkpp':function(_0x2f7771,_0x50aa78,_0x373db1){return _0x2f7771(_0x50aa78,_0x373db1);},'NbzLr':function(_0x214ba6,_0x5ef231){return _0x214ba6!==_0x5ef231;},'PSVQF':_0x42de8c(0x1a1),'dwftN':function(_0x42fde1,_0x16f8fb){return _0x42fde1>=_0x16f8fb;},'xBiGi':function(_0x277154,_0x43e95c){return _0x277154===_0x43e95c;},'TZhiU':_0x42de8c(0x1f5)},_0x2bc432=this[_0x42de8c(0x1bc)][_0x42de8c(0x1a8)](_0x268e00),_0x24c1a2=sessionTracker['endTimer'](_0x268e00);if(_0x2bc432){if(_0x4f8771[_0x42de8c(0x1cb)](_0x4f8771[_0x42de8c(0x1bd)],_0x42de8c(0x1a1))){const _0x5f4d4d=_0xe042e8(_0x3b02d9,_0x3aab56[_0x42de8c(0x174)]);_0x2c76bd[_0x42de8c(0x1f3)](_0x42de8c(0x18f)+_0x5f4d4d,_0x2acdb3?.[_0x42de8c(0x1a5)]||_0x4581dc),_0x57837e[_0x42de8c(0x11f)](OawWZd['KegGJ'],_0x42de8c(0x1f3),OawWZd[_0x42de8c(0x147)],{'message':_0x26126c,'error':{'message':_0x193b04?.[_0x42de8c(0x1a5)],'stack':OawWZd[_0x42de8c(0x202)](_0x25ccef,_0x1c09d7[_0x42de8c(0x159)])?_0x5b6b9f?.[_0x42de8c(0x181)]:OawWZd[_0x42de8c(0x1f6)]},'deviceId':_0xe483ad>=_0x47955a['CREATOR']?_0x5466c6:OawWZd[_0x42de8c(0x1de)](_0x144a6a,_0x1b4f85,_0x457d55)});}else{const _0x311422=Date[_0x42de8c(0x1fb)]()-_0x2bc432;return this[_0x42de8c(0x1bc)][_0x42de8c(0x1ee)](_0x268e00),_0x5addb8&&_0x4f8771['dwftN'](CURRENT_LEVEL,LOG_LEVELS[_0x42de8c(0x215)])&&(_0x4f8771[_0x42de8c(0x198)](_0x42de8c(0x13a),_0x4f8771[_0x42de8c(0x19f)])?_0x2b9612['info'](_0x42de8c(0x156)):this[_0x42de8c(0x1da)](_0x268e00,_0x311422)),_0x311422;}}return _0x24c1a2;}['getSessionStats'](){return sessionTracker['getStats']();}static['showStartupBanner'](){const _0x88af05=_0x257deb,_0x41a59b={'uRHou':function(_0x122912,_0x43c6e6,_0x492505){return _0x122912(_0x43c6e6,_0x492505);},'eNjOh':_0x88af05(0x215),'gikvK':function(_0x92536b,_0x53cac0){return _0x92536b===_0x53cac0;},'HRLyq':_0x88af05(0x153),'qxQdh':function(_0x3b6b7f,_0x3b5f9c){return _0x3b6b7f===_0x3b5f9c;},'VoTBQ':_0x88af05(0x20b),'fwWbg':_0x88af05(0x182),'EkIbN':_0x88af05(0x1b1),'hSMQN':function(_0x3044f1,_0x596482){return _0x3044f1===_0x596482;},'mmXKm':_0x88af05(0x160),'cVydc':_0x88af05(0x1e3),'bAKbQ':function(_0x1b4979,_0x2df447){return _0x1b4979>=_0x2df447;},'zJraK':_0x88af05(0x15e)},_0x153d2f=[_0x88af05(0x174),_0x41a59b['eNjOh'],_0x88af05(0x159)],_0x1defdb=_0x153d2f[CURRENT_LEVEL];if(_0x41a59b['gikvK'](CURRENT_LEVEL,LOG_LEVELS['PUBLIC']))consola[_0x88af05(0x18d)](_0x41a59b[_0x88af05(0x12f)]);else{if(_0x41a59b[_0x88af05(0x1ae)](_0x41a59b[_0x88af05(0x1df)],_0x41a59b[_0x88af05(0x1df)]))consola['box']({'title':_0x41a59b[_0x88af05(0x154)],'message':[_0x88af05(0x20d)+_0x1defdb,_0x88af05(0x1ed)+sessionTracker[_0x88af05(0x229)],_0x88af05(0x139)+(CURRENT_LEVEL>=LOG_LEVELS['CREATOR']?'ON':_0x41a59b['EkIbN']),_0x88af05(0x1c1)+(_0x41a59b[_0x88af05(0x1ca)](CURRENT_LEVEL,LOG_LEVELS[_0x88af05(0x174)])?_0x41a59b[_0x88af05(0x1b8)]:_0x41a59b['gikvK'](CURRENT_LEVEL,LOG_LEVELS['DEVELOPER'])?_0x41a59b[_0x88af05(0x1b3)]:_0x41a59b[_0x88af05(0x12e)]),_0x88af05(0x18b)+(_0x41a59b[_0x88af05(0x133)](CURRENT_LEVEL,LOG_LEVELS[_0x88af05(0x215)])?'ON':_0x41a59b[_0x88af05(0x12e)]),'',_0x41a59b['hSMQN'](CURRENT_LEVEL,LOG_LEVELS[_0x88af05(0x215)])?_0x88af05(0x1ce):_0x41a59b['zJraK']]['join']('\x0a')});else{const _0x56d32d=_0x2c975d(_0x160121,_0x163c21);_0x4debea[_0x88af05(0x164)](_0x88af05(0x15c)+_0x56d32d,xLmBWn['uRHou'](_0x38cda8,_0x4e5fce,_0xf020ad));}}}}DevicelyLogger['showStartupBanner']();const _0xe3c809={};_0xe3c809['DevicelyLogger']=DevicelyLogger,_0xe3c809[_0x257deb(0x18c)]=LOG_LEVELS,_0xe3c809[_0x257deb(0x1d1)]=CURRENT_LEVEL,_0xe3c809[_0x257deb(0x21c)]=sessionTracker,_0xe3c809['Logger']=DevicelyLogger,module[_0x257deb(0x223)]=_0xe3c809;
|