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 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'](''));
@@ -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;