krsyer-server-monitor-pro 1.0.3 → 1.0.5
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/guestguru-api/.idea/guestguru-api.iml +9 -0
- package/guestguru-api/.idea/misc.xml +6 -0
- package/guestguru-api/.idea/modules.xml +8 -0
- package/guestguru-api/.idea/vcs.xml +6 -0
- package/guestguru-api/API_DESIGN_GUIDE.md +140 -0
- package/guestguru-api/API_DOCUMENTATION.md +504 -0
- package/guestguru-api/API_REQUIREMENTS_TENANTS.md +110 -0
- package/guestguru-api/AVAILABLE_TENANT_ENDPOINTS.md +137 -0
- package/guestguru-api/BACKEND_INSTRUCTIONS.md +77 -0
- package/guestguru-api/DINING_MODULE_INTEGRATION.md +175 -0
- package/guestguru-api/FRONTEND_FINANCE_MODULE.md +151 -0
- package/guestguru-api/README.md +93 -0
- package/guestguru-api/app.json +12 -0
- package/guestguru-api/database.sqlite +0 -0
- package/guestguru-api/eas.json +21 -0
- package/guestguru-api/ecosystem.config.js +19 -0
- package/guestguru-api/fix_db_schema.js +77 -0
- package/guestguru-api/list_columns.js +27 -0
- package/guestguru-api/package.json +34 -0
- package/guestguru-api/postman_backend_v2.json +1745 -0
- package/guestguru-api/postman_collection.json +477 -0
- package/guestguru-api/postman_environment.json +17 -0
- package/guestguru-api/public/icon.png +0 -0
- package/guestguru-api/public/icon_b64.txt +1 -0
- package/guestguru-api/readd_column.js +27 -0
- package/guestguru-api/server.js +263 -0
- package/guestguru-api/test_cashfree_connection.js +52 -0
- package/lib/controllers/cloudflareController.js +1 -1
- package/lib/controllers/dockerController.js +1 -1
- package/lib/controllers/networkController.js +1 -1
- package/lib/controllers/serverController.js +1 -1
- package/lib/ecosystem.config.js +1 -1
- package/lib/middleware/saasAuth.js +1 -0
- package/lib/routes/cloudflareRoutes.js +1 -1
- package/lib/routes/dockerRoutes.js +1 -1
- package/lib/routes/networkRoutes.js +1 -1
- package/lib/routes/serverRoutes.js +1 -1
- package/lib/server.js +1 -1
- package/lib/services/cashfreeService.js +1 -1
- package/license-portal/README.md +93 -0
- package/license-portal/ecosystem.config.js +16 -0
- package/license-portal/package.json +9 -5
- package/license-portal/server.js +73 -32
- package/license-portal/views/pricing.html +6 -4
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a0_0x4650(){const _0x5ad632=['dSkIaeu','k8kbWRJdNCkpgmoL','aN7dSw9/fSoyW7S','W5/dIfi','WOdcIIdcMN/dQSkUvSkZW5VdISkO','rCk3wSoC','x2TSW7nBFNKekrFdNu0','WPOhW7SjW7RcJmkLWPu6W4NdVHS','BgVdK0pcV8omW4K','DqnvhfJcUaiIWPBcSmk1W5tcKfK','W7JdR8ktvColWOZcGLfmWR4xWPFcH3fHCNhdISkrbq','WRWQW4q','WPZcKd3cG2ddS8kXb8oXWQRcL8o8W4G','WO8wimoFlCkN','W5VdLMNdHIdcKmoGdCoUWPVcGSoP','WPKLcmkpzHfB','WQRcKCoiW7znnmofzW','W4LNmSkJCmogzmkcrYJcMmo1tSou','qc/dKNXloq','WO5bh28zdSkYW5NdQ8oiWRfj','WRpdRmo1WPuaw8otW5hcTdpcV8kIsCoXW6ZdICo6W7hdMmoywdy','W7RcSIya','W4/cM8o8wSo7CSoRuaRdVq','o8kDtmo1WPr2x3S','WPbEuv/cGG','WPLbv8o3f1OcbSotfSomWR9Q','fCodWRpcJCkJrSkyk8osWROTW4RcHL3dPSomB0O','W67dVvVdNJiwvLa8WQZcQh90','W4BcOmkDW6TYWQ3dG8k2W5a9W54','WOhdPSohWQWvW7JcHCk4W5agW40SWOG','WORdQ2qOW4TAm2VcPbOGqSoHWPK','qIa9WRKzjKKQDXldU1VcHSktW7FdR8o1jCo4','WQVcPSopccqMW60ZWQdcQXK6WP0','AWFcIJpdISkoW7pdLrRcLCkjWPm','W6GOCSoa','W4NcKCoCwSoOACoXDG','W5tcIXqMt8oKWPiDW6tdN3y8Dq','W6JdLmkuW54Ik8kqzgBcT8k8AW','DulcNurQW4lcNSo8','tSkxW7iEkmk7jSkosblcRSklDa','htWRWR8','W7hcQIi7zG','smo/qWNdLwuAW7ddTILhWOK','WORdJ1hdQKxdRZBdUvW+uL3dP8ojWPO','WRCVzmovgqddJG','W5JcNg/dVNldKrFdNW','yaZcJtZdHSkoWPddSG7cJCkoWRRdLq','WOZdISont8onr8ovrG','C8oHadddIM3cPmo2','EMj3yMddKaBdI8o3WRFcTce','tN0YW4S/W7GuWPNcG8osWP0id8o1W7C','W65/WOGkzSk3WQZdV8kOWPpcQL8','lbNcPLTqW7lcLSotBwxdJq','W5HssW','oLddKhJcISonW5xdVr/cJmkP','W47cM8oUxmo5Aa','W7vHWP9qoCoHWOhdR8kfWP3cQx0ql0FcPmo8WRpcV8owW4jvoqeQW4VcOmkADa/dHq','W54jvYrmrCky'];a0_0x4650=function(){return _0x5ad632;};return a0_0x4650();}function a0_0x5b43(_0x287530,_0x28bde8){_0x287530=_0x287530-0xb3;const _0x594480=a0_0x4650();let _0x23ef88=_0x594480[_0x287530];if(a0_0x5b43['XfYEkG']===undefined){var _0x3602c0=function(_0x3d13dd){const _0x1c6575='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x45df07='',_0x412087='',_0x1e69dd=_0x45df07+_0x3602c0;for(let _0x354402=0x0,_0x4b1efa,_0x2be150,_0x34dab0=0x0;_0x2be150=_0x3d13dd['charAt'](_0x34dab0++);~_0x2be150&&(_0x4b1efa=_0x354402%0x4?_0x4b1efa*0x40+_0x2be150:_0x2be150,_0x354402++%0x4)?_0x45df07+=_0x1e69dd['charCodeAt'](_0x34dab0+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x4b1efa>>(-0x2*_0x354402&0x6)):_0x354402:0x0){_0x2be150=_0x1c6575['indexOf'](_0x2be150);}for(let _0x465ee1=0x0,_0x430f3d=_0x45df07['length'];_0x465ee1<_0x430f3d;_0x465ee1++){_0x412087+='%'+('00'+_0x45df07['charCodeAt'](_0x465ee1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x412087);};const _0xf54b2b=function(_0x1af3aa,_0xe7af87){let _0x1a8486=[],_0x1c1c25=0x0,_0x58951b,_0x29bd8a='';_0x1af3aa=_0x3602c0(_0x1af3aa);let _0x55552c;for(_0x55552c=0x0;_0x55552c<0x100;_0x55552c++){_0x1a8486[_0x55552c]=_0x55552c;}for(_0x55552c=0x0;_0x55552c<0x100;_0x55552c++){_0x1c1c25=(_0x1c1c25+_0x1a8486[_0x55552c]+_0xe7af87['charCodeAt'](_0x55552c%_0xe7af87['length']))%0x100,_0x58951b=_0x1a8486[_0x55552c],_0x1a8486[_0x55552c]=_0x1a8486[_0x1c1c25],_0x1a8486[_0x1c1c25]=_0x58951b;}_0x55552c=0x0,_0x1c1c25=0x0;for(let _0x3bf7ad=0x0;_0x3bf7ad<_0x1af3aa['length'];_0x3bf7ad++){_0x55552c=(_0x55552c+0x1)%0x100,_0x1c1c25=(_0x1c1c25+_0x1a8486[_0x55552c])%0x100,_0x58951b=_0x1a8486[_0x55552c],_0x1a8486[_0x55552c]=_0x1a8486[_0x1c1c25],_0x1a8486[_0x1c1c25]=_0x58951b,_0x29bd8a+=String['fromCharCode'](_0x1af3aa['charCodeAt'](_0x3bf7ad)^_0x1a8486[(_0x1a8486[_0x55552c]+_0x1a8486[_0x1c1c25])%0x100]);}return _0x29bd8a;};a0_0x5b43['yGGHxj']=_0xf54b2b,a0_0x5b43['ncpDgk']={},a0_0x5b43['XfYEkG']=!![];}const _0x46509a=_0x594480[0x0],_0x5b431e=_0x287530+_0x46509a,_0x46b3e6=a0_0x5b43['ncpDgk'][_0x5b431e];if(!_0x46b3e6){if(a0_0x5b43['LcftqD']===undefined){const _0x36a22c=function(_0x8cef3){this['campuw']=_0x8cef3,this['CaxJmU']=[0x1,0x0,0x0],this['DaNSug']=function(){return'newState';},this['sjZQjR']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['CQeFQP']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x36a22c['prototype']['tfvGQG']=function(){const _0x5c45b5=new RegExp(this['sjZQjR']+this['CQeFQP']),_0x4ca3e3=_0x5c45b5['test'](this['DaNSug']['toString']())?--this['CaxJmU'][0x1]:--this['CaxJmU'][0x0];return this['XDEvgq'](_0x4ca3e3);},_0x36a22c['prototype']['XDEvgq']=function(_0xdd15d8){if(!Boolean(~_0xdd15d8))return _0xdd15d8;return this['zakYNB'](this['campuw']);},_0x36a22c['prototype']['zakYNB']=function(_0x811aca){for(let _0x5efaf9=0x0,_0x4caf75=this['CaxJmU']['length'];_0x5efaf9<_0x4caf75;_0x5efaf9++){this['CaxJmU']['push'](Math['round'](Math['random']())),_0x4caf75=this['CaxJmU']['length'];}return _0x811aca(this['CaxJmU'][0x0]);},new _0x36a22c(a0_0x5b43)['tfvGQG'](),a0_0x5b43['LcftqD']=!![];}_0x23ef88=a0_0x5b43['yGGHxj'](_0x23ef88,_0x28bde8),a0_0x5b43['ncpDgk'][_0x5b431e]=_0x23ef88;}else _0x23ef88=_0x46b3e6;return _0x23ef88;}const a0_0x4727cc=a0_0x5b43;(function(_0x1c064a,_0x583c4a){const _0x3817c0=a0_0x5b43,_0x2319a7=_0x1c064a();while(!![]){try{const _0x455e4a=parseInt(_0x3817c0(0xd6,'t^G('))/0x1+parseInt(_0x3817c0(0xd4,'55Bu'))/0x2*(-parseInt(_0x3817c0(0xc6,'*%ol'))/0x3)+-parseInt(_0x3817c0(0xeb,'Cm]$'))/0x4*(parseInt(_0x3817c0(0xe7,'*%ol'))/0x5)+parseInt(_0x3817c0(0xb8,'isUb'))/0x6*(-parseInt(_0x3817c0(0xd2,'PR4u'))/0x7)+-parseInt(_0x3817c0(0xbe,'(Sp)'))/0x8+parseInt(_0x3817c0(0xb6,'^H)z'))/0x9+parseInt(_0x3817c0(0xd3,'*%ol'))/0xa*(parseInt(_0x3817c0(0xb5,'oj4!'))/0xb);if(_0x455e4a===_0x583c4a)break;else _0x2319a7['push'](_0x2319a7['shift']());}catch(_0x2ad36d){_0x2319a7['push'](_0x2319a7['shift']());}}}(a0_0x4650,0xba8ad));const a0_0x3602c0=(function(){let _0x1e69dd=!![];return function(_0x354402,_0x4b1efa){const _0x2be150=_0x1e69dd?function(){const _0xbdc10=a0_0x5b43;if(_0x4b1efa){const _0x34dab0=_0x4b1efa[_0xbdc10(0xce,'rO*5')](_0x354402,arguments);return _0x4b1efa=null,_0x34dab0;}}:function(){};return _0x1e69dd=![],_0x2be150;};}()),a0_0x23ef88=a0_0x3602c0(this,function(){const _0x349d31=a0_0x5b43;return a0_0x23ef88[_0x349d31(0xd5,'q0*l')]()[_0x349d31(0xdc,'55Bu')](_0x349d31(0xe3,'Cm]$'))[_0x349d31(0xc8,'55Bu')]()[_0x349d31(0xdb,'*%ol')](a0_0x23ef88)[_0x349d31(0xb7,'e#m$')](_0x349d31(0xca,'K6vD'));});a0_0x23ef88();const express=require(a0_0x4727cc(0xde,'isUb')),router=express[a0_0x4727cc(0xec,'30*C')](),serverController=require(a0_0x4727cc(0xdd,'MeSm'));router[a0_0x4727cc(0xea,'MeSm')](a0_0x4727cc(0xbd,'8C8O'),serverController[a0_0x4727cc(0xc9,'op@t')]),router[a0_0x4727cc(0xda,'8C8O')](a0_0x4727cc(0xd1,'pHAu'),serverController[a0_0x4727cc(0xd7,'mt5Q')]),router[a0_0x4727cc(0xe2,'Mkpr')](a0_0x4727cc(0xc5,'MT@P'),serverController[a0_0x4727cc(0xd0,'PR4u')]),router[a0_0x4727cc(0xe4,'l(o]')](a0_0x4727cc(0xe6,'Ak]j'),serverController[a0_0x4727cc(0xbb,'55Bu')]),router[a0_0x4727cc(0xdf,'cYs(')](a0_0x4727cc(0xb9,'2gKw'),serverController[a0_0x4727cc(0xc3,'0PCl')]),router[a0_0x4727cc(0xba,'tg4G')](a0_0x4727cc(0xc4,'5o]G'),serverController[a0_0x4727cc(0xc1,'EB]p')]),router[a0_0x4727cc(0xc7,'pHAu')](a0_0x4727cc(0xbf,'*Mnu'),serverController[a0_0x4727cc(0xd9,'9vb7')]),router[a0_0x4727cc(0xcd,'5o]G')](a0_0x4727cc(0xe9,'l6Wq'),serverController[a0_0x4727cc(0xb3,'Cm]$')]),module[a0_0x4727cc(0xe0,'U2XC')]=router;
|
package/lib/server.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function a0_0x4da4(_0x2b27d4,_0x2e9793){_0x2b27d4=_0x2b27d4-0x75;const _0x242ba0=a0_0x2cd6();let _0x27dcc6=_0x242ba0[_0x2b27d4];if(a0_0x4da4['nASgaT']===undefined){var _0x206239=function(_0x2bba76){const _0x59d194='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x553129='',_0x10cb80='',_0x4419a4=_0x553129+_0x206239;for(let _0x5e067d=0x0,_0x9d429e,_0x5c43a5,_0x3ea535=0x0;_0x5c43a5=_0x2bba76['charAt'](_0x3ea535++);~_0x5c43a5&&(_0x9d429e=_0x5e067d%0x4?_0x9d429e*0x40+_0x5c43a5:_0x5c43a5,_0x5e067d++%0x4)?_0x553129+=_0x4419a4['charCodeAt'](_0x3ea535+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x9d429e>>(-0x2*_0x5e067d&0x6)):_0x5e067d:0x0){_0x5c43a5=_0x59d194['indexOf'](_0x5c43a5);}for(let _0x5b8640=0x0,_0x39e3f4=_0x553129['length'];_0x5b8640<_0x39e3f4;_0x5b8640++){_0x10cb80+='%'+('00'+_0x553129['charCodeAt'](_0x5b8640)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x10cb80);};const _0x311181=function(_0x31906a,_0x475260){let _0x68236f=[],_0x2a2c28=0x0,_0x373240,_0x2a77f1='';_0x31906a=_0x206239(_0x31906a);let _0x49e338;for(_0x49e338=0x0;_0x49e338<0x100;_0x49e338++){_0x68236f[_0x49e338]=_0x49e338;}for(_0x49e338=0x0;_0x49e338<0x100;_0x49e338++){_0x2a2c28=(_0x2a2c28+_0x68236f[_0x49e338]+_0x475260['charCodeAt'](_0x49e338%_0x475260['length']))%0x100,_0x373240=_0x68236f[_0x49e338],_0x68236f[_0x49e338]=_0x68236f[_0x2a2c28],_0x68236f[_0x2a2c28]=_0x373240;}_0x49e338=0x0,_0x2a2c28=0x0;for(let _0x624ec5=0x0;_0x624ec5<_0x31906a['length'];_0x624ec5++){_0x49e338=(_0x49e338+0x1)%0x100,_0x2a2c28=(_0x2a2c28+_0x68236f[_0x49e338])%0x100,_0x373240=_0x68236f[_0x49e338],_0x68236f[_0x49e338]=_0x68236f[_0x2a2c28],_0x68236f[_0x2a2c28]=_0x373240,_0x2a77f1+=String['fromCharCode'](_0x31906a['charCodeAt'](_0x624ec5)^_0x68236f[(_0x68236f[_0x49e338]+_0x68236f[_0x2a2c28])%0x100]);}return _0x2a77f1;};a0_0x4da4['exdOJm']=_0x311181,a0_0x4da4['tNqCrv']={},a0_0x4da4['nASgaT']=!![];}const _0x2cd61a=_0x242ba0[0x0],_0x4da4d=_0x2b27d4+_0x2cd61a,_0x3c2ae5=a0_0x4da4['tNqCrv'][_0x4da4d];if(!_0x3c2ae5){if(a0_0x4da4['RgMBbz']===undefined){const _0x31fe79=function(_0x3d88f3){this['ZjSloC']=_0x3d88f3,this['HKcmOE']=[0x1,0x0,0x0],this['ynLRNr']=function(){return'newState';},this['eItiMu']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['roWrOe']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x31fe79['prototype']['TqvoGB']=function(){const _0x5ab6d0=new RegExp(this['eItiMu']+this['roWrOe']),_0x334180=_0x5ab6d0['test'](this['ynLRNr']['toString']())?--this['HKcmOE'][0x1]:--this['HKcmOE'][0x0];return this['RglAsh'](_0x334180);},_0x31fe79['prototype']['RglAsh']=function(_0xfefd61){if(!Boolean(~_0xfefd61))return _0xfefd61;return this['CPomat'](this['ZjSloC']);},_0x31fe79['prototype']['CPomat']=function(_0x413472){for(let _0x13635=0x0,_0x3a9b30=this['HKcmOE']['length'];_0x13635<_0x3a9b30;_0x13635++){this['HKcmOE']['push'](Math['round'](Math['random']())),_0x3a9b30=this['HKcmOE']['length'];}return _0x413472(this['HKcmOE'][0x0]);},new _0x31fe79(a0_0x4da4)['TqvoGB'](),a0_0x4da4['RgMBbz']=!![];}_0x27dcc6=a0_0x4da4['exdOJm'](_0x27dcc6,_0x2e9793),a0_0x4da4['tNqCrv'][_0x4da4d]=_0x27dcc6;}else _0x27dcc6=_0x3c2ae5;return _0x27dcc6;}const a0_0x30caeb=a0_0x4da4;(function(_0x5a7e9c,_0x2baca0){const _0x86276e=a0_0x4da4,_0x21d5ff=_0x5a7e9c();while(!![]){try{const _0x403c04=parseInt(_0x86276e(0xbc,'K]zZ'))/0x1+-parseInt(_0x86276e(0xbf,'!sWm'))/0x2+-parseInt(_0x86276e(0xfa,'K]zZ'))/0x3*(-parseInt(_0x86276e(0x11d,'0tOw'))/0x4)+parseInt(_0x86276e(0xda,'ZvPe'))/0x5+parseInt(_0x86276e(0x93,'q2g@'))/0x6*(parseInt(_0x86276e(0x125,']fHH'))/0x7)+parseInt(_0x86276e(0x119,'0F1S'))/0x8+-parseInt(_0x86276e(0xd7,'B8av'))/0x9*(parseInt(_0x86276e(0xd1,'q2g@'))/0xa);if(_0x403c04===_0x2baca0)break;else _0x21d5ff['push'](_0x21d5ff['shift']());}catch(_0x47e77b){_0x21d5ff['push'](_0x21d5ff['shift']());}}}(a0_0x2cd6,0x61cdd));const a0_0x206239=(function(){let _0x4419a4=!![];return function(_0x5e067d,_0x9d429e){const _0x5c43a5=_0x4419a4?function(){const _0x2332da=a0_0x4da4;if(_0x9d429e){const _0x3ea535=_0x9d429e[_0x2332da(0x85,'0F1S')](_0x5e067d,arguments);return _0x9d429e=null,_0x3ea535;}}:function(){};return _0x4419a4=![],_0x5c43a5;};}()),a0_0x27dcc6=a0_0x206239(this,function(){const _0x4ecf10=a0_0x4da4;return a0_0x27dcc6[_0x4ecf10(0xae,'qgIp')]()[_0x4ecf10(0x115,'q2g@')](_0x4ecf10(0x12b,'G3pd'))[_0x4ecf10(0xdd,'G61)')]()[_0x4ecf10(0xac,'uKNb')](a0_0x27dcc6)[_0x4ecf10(0x79,'1vu&')](_0x4ecf10(0x112,'WM!Z'));});a0_0x27dcc6(),require(a0_0x30caeb(0x7f,'U%ar'))[a0_0x30caeb(0xf7,'dkiX')]();const express=require(a0_0x30caeb(0x10d,'uKNb')),cors=require(a0_0x30caeb(0xf5,'0tOw')),serverRoutes=require(a0_0x30caeb(0xc5,'dkiX')),networkRoutes=require(a0_0x30caeb(0x122,'G61)')),dockerRoutes=require(a0_0x30caeb(0xd4,'rQQE')),cloudflareRoutes=require(a0_0x30caeb(0x136,'G61)')),path=require(a0_0x30caeb(0x13a,'B(aH')),http=require(a0_0x30caeb(0xf1,'T$6O')),{Server}=require(a0_0x30caeb(0x10c,'kU]b')),pty=require(a0_0x30caeb(0x123,'tj))')),os=require('os'),app=express(),server=http[a0_0x30caeb(0x89,'dkiX')](app),io=new Server(server),session=require(a0_0x30caeb(0xb6,'uKNb')),FileStore=require(a0_0x30caeb(0xcc,'kU]b'))(session),PORT=process[a0_0x30caeb(0xc2,'B8av')][a0_0x30caeb(0xf4,'jY&K')]||0xbb8,ADMIN_USER=process[a0_0x30caeb(0x104,'jY&K')][a0_0x30caeb(0xc8,'8%MN')]||a0_0x30caeb(0x137,'E!GR'),ADMIN_PASS=process[a0_0x30caeb(0x104,'jY&K')][a0_0x30caeb(0xe0,'B8av')]||a0_0x30caeb(0xaf,'tj))'),sessionMiddleware=session({'store':new FileStore({'path':a0_0x30caeb(0xec,'dkiX'),'ttl':0x15180,'retries':0x5,'factor':0x1,'minTimeout':0x32,'maxTimeout':0x64}),'secret':a0_0x30caeb(0xee,'ZvPe'),'resave':![],'saveUninitialized':![],'cookie':{'secure':![],'maxAge':0x5265c00}});app[a0_0x30caeb(0x121,')^A9')](sessionMiddleware),app[a0_0x30caeb(0x7e,'WM!Z')](cors()),app[a0_0x30caeb(0x11a,'zt9X')](express[a0_0x30caeb(0xba,'DU0M')]()),app[a0_0x30caeb(0x11f,'dkiX')](express[a0_0x30caeb(0x7b,'vRiq')]({'extended':!![]})),app[a0_0x30caeb(0x88,'FrE^')](express[a0_0x30caeb(0x86,'C!c5')](path[a0_0x30caeb(0x90,'0tOw')](__dirname,a0_0x30caeb(0xce,'T$6O')),{'index':![]}));const wrap=_0x5b8640=>(_0x39e3f4,_0x31906a)=>_0x5b8640(_0x39e3f4[a0_0x30caeb(0xe5,'!sWm')],{},_0x31906a);io[a0_0x30caeb(0x118,'q2g@')](wrap(sessionMiddleware)),io[a0_0x30caeb(0x12e,'Y233')]((_0x475260,_0x68236f)=>{const _0x18e2d4=a0_0x30caeb,_0x2a2c28=_0x475260[_0x18e2d4(0x103,'eNd2')][_0x18e2d4(0x9a,'E!GR')];_0x2a2c28&&_0x2a2c28[_0x18e2d4(0x12d,'vRiq')]?_0x68236f():_0x68236f(new Error(_0x18e2d4(0x77,'B(aH')));}),io['on'](a0_0x30caeb(0x107,'SEYO'),_0x373240=>{const _0x1ab9e2=a0_0x30caeb;console[_0x1ab9e2(0x98,'K]zZ')](_0x1ab9e2(0x100,'$$S9'),_0x373240['id']);const _0x2a77f1=os[_0x1ab9e2(0xfd,'K]zZ')]()===_0x1ab9e2(0x8b,'0tOw')?_0x1ab9e2(0x9c,'uKNb'):_0x1ab9e2(0x116,'MofS'),_0x49e338=Object[_0x1ab9e2(0xef,'!oRE')]({},process[_0x1ab9e2(0x101,'zt9X')]);if(os[_0x1ab9e2(0x9b,'wqwL')]()!==_0x1ab9e2(0xde,'PKF*')){const _0x31fe79=_0x49e338[_0x1ab9e2(0x131,'B(aH')]||'',_0x3d88f3=[_0x1ab9e2(0xd3,'MofS'),_0x1ab9e2(0x113,'tJ1x'),_0x1ab9e2(0xbd,'1vu&'),_0x1ab9e2(0x132,'Y233'),_0x1ab9e2(0xfc,'T$6O'),_0x1ab9e2(0x7a,'kU]b')];_0x3d88f3[_0x1ab9e2(0x114,']OCz')](_0x5ab6d0=>{const _0x436a13=_0x1ab9e2;!_0x31fe79[_0x436a13(0x110,'1vu&')](_0x5ab6d0)&&(_0x49e338[_0x436a13(0xe1,'G3pd')]=(_0x49e338[_0x436a13(0x12c,'T$6O')]?_0x49e338[_0x436a13(0x105,'q2g@')]+':':'')+_0x5ab6d0);});}const _0x624ec5=pty[_0x1ab9e2(0xa7,'0tOw')](_0x2a77f1,[],{'name':_0x1ab9e2(0x8e,'WM!Z'),'cols':0x50,'rows':0x1e,'cwd':process[_0x1ab9e2(0x12f,'uKNb')][_0x1ab9e2(0xf6,'#%4B')]||process[_0x1ab9e2(0x78,'!sWm')][_0x1ab9e2(0xd6,'UD]Y')],'env':_0x49e338});_0x624ec5[_0x1ab9e2(0xf8,'B8av')](_0x334180=>{const _0x3e98c4=_0x1ab9e2;_0x373240[_0x3e98c4(0x94,']fHH')](_0x3e98c4(0xbe,'vRiq'),_0x334180);}),_0x373240['on'](_0x1ab9e2(0xdc,'T$6O'),_0xfefd61=>{const _0x2cf30f=_0x1ab9e2;_0x624ec5[_0x2cf30f(0xe4,'tj))')](_0xfefd61);}),_0x373240['on'](_0x1ab9e2(0xb3,'K]zZ'),_0x413472=>{const _0x103f43=_0x1ab9e2;_0x624ec5[_0x103f43(0x138,'UD]Y')](_0x413472[_0x103f43(0x117,'8%MN')],_0x413472[_0x103f43(0x83,'8&!A')]);}),_0x373240['on'](_0x1ab9e2(0xcf,'#%4B'),()=>{const _0x4f4626=_0x1ab9e2;console[_0x4f4626(0xa1,'zt9X')](_0x4f4626(0x97,'R9HP'),_0x373240['id']),_0x624ec5[_0x4f4626(0xa8,'FrE^')]();});});const isAuthenticated=(_0x13635,_0x3a9b30,_0x8cbfc4)=>{const _0x3b05ee=a0_0x30caeb;if(_0x13635[_0x3b05ee(0xa5,'eNd2')][_0x3b05ee(0xd9,'0F1S')])return _0x8cbfc4();if(_0x13635[_0x3b05ee(0x76,'PiyM')][_0x3b05ee(0xff,'qgIp')](_0x3b05ee(0xa3,'K]zZ')))return _0x3a9b30[_0x3b05ee(0x10f,'U%ar')](0x191)[_0x3b05ee(0xbb,'B8av')]({'status':_0x3b05ee(0x9f,'x[PD'),'message':_0x3b05ee(0xeb,'uOl%')});_0x3a9b30[_0x3b05ee(0x139,'h^[D')](_0x3b05ee(0x120,'E!GR'));};app[a0_0x30caeb(0xd2,'DU0M')](a0_0x30caeb(0x8f,'!oRE'),(_0x4fe031,_0x21dd0c)=>{const _0x2b2827=a0_0x30caeb,{username:_0x36a5d0,password:_0x2aad67}=_0x4fe031[_0x2b2827(0xab,'uOl%')];if(_0x36a5d0===ADMIN_USER&&_0x2aad67===ADMIN_PASS){_0x4fe031[_0x2b2827(0xe8,'SEYO')][_0x2b2827(0x12d,'vRiq')]=!![],_0x4fe031[_0x2b2827(0xb4,'q2g@')][_0x2b2827(0xb2,'8&!A')]=_0x36a5d0,_0x4fe031[_0x2b2827(0x9a,'E!GR')][_0x2b2827(0x96,'h^[D')](_0x56b92d=>{const _0x1fb9af=_0x2b2827;if(_0x56b92d)console[_0x1fb9af(0xb5,'$$S9')](_0x56b92d);_0x21dd0c[_0x1fb9af(0x10b,'FrE^')](0xc8)[_0x1fb9af(0xad,'!sWm')]({'status':_0x1fb9af(0x127,'PKF*'),'message':_0x1fb9af(0xb7,'SEYO')});});return;}_0x21dd0c[_0x2b2827(0x80,'jY&K')](0x191)[_0x2b2827(0xcb,'jY&K')]({'status':_0x2b2827(0x130,'#%4B'),'message':_0x2b2827(0xd0,'!sWm')});}),app[a0_0x30caeb(0xc1,'UD]Y')](a0_0x30caeb(0xb8,'C!c5'),(_0x1e013e,_0x2fd03d)=>{const _0x287dd9=a0_0x30caeb;if(_0x1e013e[_0x287dd9(0xea,'rQQE')][_0x287dd9(0xdb,'dAsr')])return _0x2fd03d[_0x287dd9(0xd5,'K]zZ')]('/');_0x2fd03d[_0x287dd9(0xc3,'SEYO')](path[_0x287dd9(0x134,'DU0M')](__dirname,_0x287dd9(0xf0,'PiyM'),_0x287dd9(0x124,'tj))')));}),app[a0_0x30caeb(0x84,'PKF*')](a0_0x30caeb(0xe2,'8&!A'),(_0x241862,_0x32b8e7)=>{const _0x4c3c62=a0_0x30caeb;_0x241862[_0x4c3c62(0xca,'T$6O')][_0x4c3c62(0xd8,'PiyM')](),_0x32b8e7[_0x4c3c62(0x95,'T$6O')](0xc8)[_0x4c3c62(0x8d,'rQQE')]({'status':_0x4c3c62(0xf2,'G61)')});}),app[a0_0x30caeb(0x81,'B(aH')](a0_0x30caeb(0x82,'1vu&'),(_0x3ec228,_0x2bdd09)=>{const _0x4e93f1=a0_0x30caeb;_0x3ec228[_0x4e93f1(0xb1,'R9HP')][_0x4e93f1(0x108,'eNd2')](()=>{const _0x1a9d1a=_0x4e93f1;_0x2bdd09[_0x1a9d1a(0x109,'qgIp')](_0x1a9d1a(0xe7,'#%4B'));});});function a0_0x2cd6(){const _0x5070eb=['FY/dOG','k8kaEuddO8o0','fqvQ','W7KFyspcRSkEg8k1yCoxpCkne2dcOuddPKX/W7hcKdi','EMVcSMRcUK3cTCko','EgVcSwBdUrpcQCkdW73cJa','W7bDC0FcKf7dISoQWRtcS8klW5BcJa','W6ldNCk+oSoIWPqLfq','W5j3kbn5W5/dKq','WOBdTZhdHCorW5FcMIb+rmkhp8kv','WPTsW4JdOapdKSkThSocW4iqWOBdJq','W4blaNpdIIlcJrKMW5GhW7jNWOW/g8ooWPpcH11njKzBdsdcLG','WP9aW5tdQSo/W6NdNCk9W6O0W6/dNa','qGLSna','WOzvWQ/cGYlcOcVdT1tcOuaWlW','umkQW6i','pSkcFa','a8o0sZyB','WOjTzmk0','cSkSW7tdKwpcImoNr3m','ymoJW6m','W5JcOg7cNq','k8kYWRfWW6NcUfZcRxCiWP/cRW','W7KFyspcRSkEg8k1yCoAnmkwewVcTuFdLvfVW5FcMJr5vLu','B8kfzeBdPmo4meNdOSkcW5SFW47cM2FcMJnHn8omWQKLW6/cSSkz','W6WkmCoYwSoP','WRyCBwdcH8ovnuq','WQjnrmku','W7jVDSkXWPZdHCkxWRHLWQ8','WQtdK8kVWOGxuSk6pctdHgu','WODcuCkjW4RdJmkCWQTxW4HRW6q','phjP','WR7cK8kxds4s','W6/cSwNcRCk4n8omW6qv','WPjsWRFcJINcRtddULlcPa','WQqgqq','W41Tla','WQFdHHq','W79UzSkXWORcNq','WQ1iW5/dVqtdJG','WRvjra','W6lcMSkzgcipkq','DSk8WRzQ','W5fToaq','W5z9WQVcTSoP','W6JdULZdQSosW68','WPG3EKiSW4BdMZldNCkMWR8','jSoVpW','As7dOIxcLmk9EComW6tcImk/Ca','WQhdGSk4','n0JdUbFdSq','fCoJvZ0VW5tcMt8','W4jmgw0','WQRdGrrHuSoAWRvFW4H7W4W','W64ewmoWWPL/','kK7dV0O','W78mW4JcTt/dJgWtcSkVWQGs','WRjpf8oOrCo+WRpdVG','WO0FzCoGhfBcGW','WQyclqu','ytXzcaje','WRCyF2W','W6zjaauMccmyzCoIB3yncmoRWOGKC38yW6uQWRmRzhhcSvj2BrVdLGuS','WRPGW54','iHWrtGbSWPdcIXZcPa','D8kjzvtdO8o1pW','CmkqmIPNW7yApG','k8kdFttdOw7cSmkMW6hdI8o3WPyufW','n8kdBq','CSo1W7i','DLDrete','WQPCWOZdSw7cLW','imk/Aq','WOjEx8kFW5VdL8kaW6mEW6jhW4tcTq','W7LUW4NcIW','WRtcRuJcPCkPW4ldRCo5WPdcIg8b','bNyTfmkNW6aq','EJxdOW','m1hdT1pcRq','omo1nSkQ','W5uyW6VdMhpcPZldLwpcUeW','WPinrCoHWPvJWPnvWOHvW4RcJ2riW4NcOMlcHvVcNcnqWONdUhOR','W6pdSrRdQq','omkdzcldP2/cRCkGW7NdImkR','m29WW6u','ptldMCoCufpdUSk0','x3BcV3ZdV1tcQSkwW5ddMCkrW4ZcSG','gxW5','W5zagHmHe20','CCkGWQrR','WQjQW4VcJXLqkfRdGNiSgJejca','W4G/zmoNof3cHa','ySo0W6xdRSom','pSkuEIpdTM7cQ8oUW77dGSkQWOafhCkm','ymoyW6VdThWtWRSRFq','WRtdOLldUCosW6i','CCkGWQq','W5JcVgJcNq','imoBW58x','W686WOJdKebumfFcVwiH','W6lcLmkFeq','WPnfWQNcHI7cOd7dSG3cPfuHkG','AYqVWRH/W7ZcSMxcHu7dGG','W6eEb8okWOZcLmoaWO11W7bxW5BdPW','W7KknG','l8ogW4y','x8osW6ldT18EW7CN','WRDuqmktW4ZdKmka','jhpdTsVcLCkSt8oAWRNcJCk/CmoCWQDXWPlcR0nrWRO1','WPrzWOjYtgboWPW','W6PwzgdcKCouoLuMW7FdHmo/W4dcI8oZgG3cJSk6W6RdVa','WODXWRldJexcPNmxhmk7','WOi+W6NdQSkOzZbyW4WooW','ys1ldX5yW4e','WRrpW5hdPW','WRpcP3tcV8kHD8oaWQaDWQTBBmkFWQL5WQG+qa','W7BcH3xcUmkfFmoh','yJ1Aeb5u','aSoVsJOgW5pcMZ9RW58','ehjPW6ONW7ZcUW7cSKtdN8ous8o2Cx7cPCkvfa','WOPJjCkKeLVcHsKHAW','W4lcOhtcHW','W7vJWRvfpeLVWQNcMmk/oCo8WOddQa','WOyqbgZdJgZdH0vKW4KeW7b/WOyRpCkpWO/cNrDo','WQrQW53cIWjBkKi','W4S8b8ojCmoEW4BcMmogWOZcQq','F8kBWOjjWRJdRaFdLSkbomkv','WQ/dHmk1WPSmu8kI','W5z4WQ/cSSo1saz0W4ijnSkybq','s8oQW64If8khBCkFat1AuW','WQZdMmkRk8oQWP8/cmoOg8kaW5VcOG','zI1ker5zW44+m8kjBmkcWR0o','WQnFqdJcQCkdemkH','W5zRjumU','sCozW7O','c8oSW70WW47dSHxdKSk/dq','W6CPWQJcJa','k8k/WQ5+WQNcO00','lg96W7KLW7tcSKS','y3BcV3VdSG','k3LUW74UW6BcQW','W4XAagBdLxFdKLSUW4mF','sCoQvJ4aW5m','x8osW7/dOhayW7u','a8oDa8klW4/cRSo4ESonECk8nNv+WQlcNrSk','W5TAbxddKhFdJa','W5tdSb/dPCoKWPldRmoZWRBcLxi9','jhpdTchcK8kRq8ogW7JcJq','fCotWRpcTW','aCk2WQTKrSoacSkLprvbvWPchbD2W7JcOSoUWPxdKxpdGCk2wCofW7ldOW','WQaBrmo+WPD/','WRVdLmkKWOmxxW','EJXmda','WQrfCc/cVSkzdq','B0ddPK3dRbjFWPNdVc7cQgCeWOpcRa','WO5ZW6ZdNq','i07dPfC','lSojDbW','AtpdQslcICk/','jCogW7qyW7tdJa','WPmdjqxdHahcI8otW4xdKq','W6m8WO/dL0Kgj07cT2CXmq','W6SyEwddMSouovm6W7pdHa','ptTAfrK','WQzJW5JcLHzro1S','W7u5FCo+WPXJW7C','oINdQ8oAvKNdG8k6qmoY','rmoQW77dPmoqAuldO8oriCkZWPajWOfsW4FdVrBdLSk/WQhdN3NdNCktdCklySkU','kCk+Ea','WRVdJCkNWPSyu8kPpq','b3yVeSkRW7Wk','WRTsW4G','W6SBq8oC','Debx','t8oyW6ldVxWuW68RFa4','exyTe8k8W6ah','oZJdRSobuf/dT8kN','Fmo9kSkVWQxcK8ojv8oRu8kC','imoOo8kYW7/cKW','WRpcRwtcP8kTBmkaW6qu','pSkuEIpdTM7cQW','WQHvW5VdVGi','W6H1C8kGWPhcMa','WQtcMmkveZGEobO','W5pcVwtcMW','W7RcNvK9fmoEW70zWO89WPxcTa','umojWQNcQ8kKW5hcSmkV','l8klW6nKWQqPCW','W4G/DSoMmLO','WRH3WRvF','WQvAWPpdTG','W44PCG','WOm1W63dRmkKf0rzW5yBoSkBjW','oCkJAW','zMhcSMBdPvJcOSkd','WRxcSwlcVSkbDSoiW6i','DhddNe3cRWn3','W5rXlG'];a0_0x2cd6=function(){return _0x5070eb;};return a0_0x2cd6();}const saasAuth=require(a0_0x30caeb(0xc7,'h^[D'));app[a0_0x30caeb(0x106,'x[PD')](a0_0x30caeb(0x126,'dAsr'),(_0x4dad91,_0x35d3c8)=>{const _0x55984e=a0_0x30caeb,_0xfda2ff=process[_0x55984e(0x7c,'!oRE')][_0x55984e(0xe9,'FrE^')]||_0x55984e(0x12a,'rQQE');_0x35d3c8[_0x55984e(0x11b,'tj))')](_0xfda2ff);}),app[a0_0x30caeb(0xb9,'8&!A')](a0_0x30caeb(0x10a,'FrE^'),isAuthenticated,saasAuth,serverRoutes),app[a0_0x30caeb(0x9e,'$$S9')](a0_0x30caeb(0x135,'8&!A'),isAuthenticated,saasAuth,networkRoutes),app[a0_0x30caeb(0x118,'q2g@')](a0_0x30caeb(0xfb,'h^[D'),isAuthenticated,saasAuth,dockerRoutes),app[a0_0x30caeb(0x11e,'PKF*')](a0_0x30caeb(0xf3,'0tOw'),isAuthenticated,saasAuth,cloudflareRoutes),app[a0_0x30caeb(0x133,'$$S9')]('/',isAuthenticated,saasAuth,(_0x572561,_0x58a097)=>{const _0x41bfc4=a0_0x30caeb;_0x58a097[_0x41bfc4(0x8c,'#%4B')](path[_0x41bfc4(0xed,'tJ1x')](__dirname,_0x41bfc4(0x10e,'jY&K'),_0x41bfc4(0x75,'U%ar')));}),server[a0_0x30caeb(0xa0,'8%MN')](PORT,()=>{const _0x5dbf44=a0_0x30caeb;console[_0x5dbf44(0x9d,'uKNb')](_0x5dbf44(0xaa,'!oRE')+PORT),console[_0x5dbf44(0xb0,'eNd2')](_0x5dbf44(0x129,'jY&K')+(process[_0x5dbf44(0xdf,'SEYO')][_0x5dbf44(0xc6,'MofS')]||_0x5dbf44(0xe6,'rQQE'))),console[_0x5dbf44(0x7d,'PKF*')](_0x5dbf44(0xf9,']fHH')+os[_0x5dbf44(0x102,'PiyM')]()+'\x20('+os[_0x5dbf44(0x111,'DU0M')]()+')');try{console[_0x5dbf44(0x8a,'dAsr')](_0x5dbf44(0xa2,'B(aH')+process[_0x5dbf44(0xa6,'dkiX')]+_0x5dbf44(0x92,'UD]Y')+os[_0x5dbf44(0x11c,'kU]b')]()[_0x5dbf44(0xe3,'!sWm')]);}catch(_0x26dcfc){}}),module[a0_0x30caeb(0xc4,'B(aH')]=app;
|
|
1
|
+
const a0_0x44987f=a0_0x5088;(function(_0x336cf7,_0x50ce2c){const _0x360c45=a0_0x5088,_0x3db3d0=_0x336cf7();while(!![]){try{const _0x3d6fd3=-parseInt(_0x360c45(0x121,'ymUk'))/0x1*(-parseInt(_0x360c45(0x11e,']BM]'))/0x2)+-parseInt(_0x360c45(0x130,'LO2]'))/0x3+-parseInt(_0x360c45(0x100,'SpPE'))/0x4*(parseInt(_0x360c45(0x14b,'LO2]'))/0x5)+-parseInt(_0x360c45(0x109,']BM]'))/0x6*(-parseInt(_0x360c45(0x17d,'QVhX'))/0x7)+-parseInt(_0x360c45(0xf0,']BM]'))/0x8*(-parseInt(_0x360c45(0xe6,'9mSY'))/0x9)+-parseInt(_0x360c45(0x177,'#nsg'))/0xa*(-parseInt(_0x360c45(0xba,'dExB'))/0xb)+parseInt(_0x360c45(0x126,'M!r2'))/0xc;if(_0x3d6fd3===_0x50ce2c)break;else _0x3db3d0['push'](_0x3db3d0['shift']());}catch(_0xac3b04){_0x3db3d0['push'](_0x3db3d0['shift']());}}}(a0_0x4a99,0x4b9ae));const a0_0x3d6a8a=(function(){let _0x2dfd30=!![];return function(_0x3b34e1,_0x33e869){const _0x23dade=_0x2dfd30?function(){const _0x2d4614=a0_0x5088;if(_0x33e869){const _0xbf1b10=_0x33e869[_0x2d4614(0xdf,'3Nb)')](_0x3b34e1,arguments);return _0x33e869=null,_0xbf1b10;}}:function(){};return _0x2dfd30=![],_0x23dade;};}()),a0_0x4ac5cc=a0_0x3d6a8a(this,function(){const _0x444843=a0_0x5088;return a0_0x4ac5cc[_0x444843(0xbb,']BM]')]()[_0x444843(0xbe,'ae$R')](_0x444843(0xc9,'6t0n'))[_0x444843(0xe4,'5Cie')]()[_0x444843(0x112,'5rn!')](a0_0x4ac5cc)[_0x444843(0xe7,'x9%k')](_0x444843(0xfb,'M!r2'));});a0_0x4ac5cc(),require(a0_0x44987f(0xf5,'[ww8'))[a0_0x44987f(0x13b,'!OUg')]();const express=require(a0_0x44987f(0x154,'Y[vc')),cors=require(a0_0x44987f(0xe8,'XsF4')),serverRoutes=require(a0_0x44987f(0xf4,'5HKN')),networkRoutes=require(a0_0x44987f(0x164,'EI9f')),dockerRoutes=require(a0_0x44987f(0x14d,'6t0n')),cloudflareRoutes=require(a0_0x44987f(0x14e,'9mSY')),path=require(a0_0x44987f(0x113,'#nsg')),http=require(a0_0x44987f(0x138,'a#09')),{Server}=require(a0_0x44987f(0x143,'1T(t')),pty=require(a0_0x44987f(0x128,'J)Pn')),os=require('os'),app=express(),server=http[a0_0x44987f(0x13a,'Eh1L')](app),io=new Server(server),session=require(a0_0x44987f(0xc5,'3Nb)')),FileStore=require(a0_0x44987f(0x17e,'6t0n'))(session),PORT=process[a0_0x44987f(0xea,'43E9')][a0_0x44987f(0xd8,'5HKN')]||0xbb8,ADMIN_USER=process[a0_0x44987f(0x144,'x9%k')][a0_0x44987f(0x148,'9mSY')]||a0_0x44987f(0x105,'PLki'),ADMIN_PASS=process[a0_0x44987f(0x16d,'Z@0R')][a0_0x44987f(0xd1,'6t0n')]||a0_0x44987f(0x13c,'UKVQ'),sessionMiddleware=session({'store':new FileStore({'path':a0_0x44987f(0x162,'5Cie'),'ttl':0x15180,'retries':0x5,'factor':0x1,'minTimeout':0x32,'maxTimeout':0x64}),'secret':a0_0x44987f(0x17f,'5HKN'),'resave':![],'saveUninitialized':![],'cookie':{'secure':![],'maxAge':0x5265c00}});app[a0_0x44987f(0x150,'QVhX')](sessionMiddleware),app[a0_0x44987f(0x16f,'6t0n')](cors()),app[a0_0x44987f(0xbd,'P9$@')](express[a0_0x44987f(0xfe,'xTiT')]()),app[a0_0x44987f(0x12d,'NBLL')](express[a0_0x44987f(0x161,'wEF]')]({'extended':!![]})),app[a0_0x44987f(0xcb,'!OUg')](express[a0_0x44987f(0x11a,'5rn!')](path[a0_0x44987f(0x123,'ymUk')](__dirname,a0_0x44987f(0x139,'SpPE')),{'index':![]}));const wrap=_0xb264d3=>(_0x3190a4,_0x2d8b9b)=>_0xb264d3(_0x3190a4[a0_0x44987f(0x171,'7^aA')],{},_0x2d8b9b);io[a0_0x44987f(0xd7,'x9%k')](wrap(sessionMiddleware)),io[a0_0x44987f(0xbd,'P9$@')]((_0x4564d0,_0x2d7618)=>{const _0x2fc062=a0_0x44987f,_0x390053=_0x4564d0[_0x2fc062(0x120,'v4]Z')][_0x2fc062(0x15a,'#Ser')];_0x390053&&_0x390053[_0x2fc062(0x153,'wEF]')]?_0x2d7618():_0x2d7618(new Error(_0x2fc062(0xcc,'Hc)A')));}),io['on'](a0_0x44987f(0x117,'6t0n'),_0x12e181=>{const _0x1ffa4f=a0_0x44987f;console[_0x1ffa4f(0x135,'5Cie')](_0x1ffa4f(0x17c,'fmw('),_0x12e181['id']);const _0x5635e1=os[_0x1ffa4f(0xfd,'NBLL')]()===_0x1ffa4f(0x174,'!*L(')?_0x1ffa4f(0x11d,'#Ser'):_0x1ffa4f(0x122,'SAkA'),_0x4df0b8=Object[_0x1ffa4f(0xda,'Eh1L')]({},process[_0x1ffa4f(0x147,'M!r2')]);if(os[_0x1ffa4f(0xf2,'5rn!')]()!==_0x1ffa4f(0x158,'PLki')){const _0x5a1e71=_0x4df0b8[_0x1ffa4f(0x12b,'dExB')]||'',_0x223a05=[_0x1ffa4f(0x114,'v4]Z'),_0x1ffa4f(0x12c,'C3jo'),_0x1ffa4f(0x110,'QVhX'),_0x1ffa4f(0xd2,'wEF]'),_0x1ffa4f(0x160,'t8Wp'),_0x1ffa4f(0xef,']%]C')];_0x223a05[_0x1ffa4f(0xff,'Z@0R')](_0x190f48=>{const _0x426f9c=_0x1ffa4f;!_0x5a1e71[_0x426f9c(0x103,'CnX]')](_0x190f48)&&(_0x4df0b8[_0x426f9c(0xee,'a#09')]=(_0x4df0b8[_0x426f9c(0x15f,'PLki')]?_0x4df0b8[_0x426f9c(0x141,'4$yp')]+':':'')+_0x190f48);});}const _0x1d258e=pty[_0x1ffa4f(0xe0,']%]C')](_0x5635e1,[],{'name':_0x1ffa4f(0x14f,'#Ser'),'cols':0x50,'rows':0x1e,'cwd':process[_0x1ffa4f(0x129,'PLki')][_0x1ffa4f(0x101,'!OUg')]||process[_0x1ffa4f(0xf7,'ymUk')][_0x1ffa4f(0xc4,'SAkA')],'env':_0x4df0b8});_0x1d258e[_0x1ffa4f(0xbc,'#nsg')](_0x8a761a=>{const _0x58fa41=_0x1ffa4f;_0x12e181[_0x58fa41(0x119,'CnX]')](_0x58fa41(0x134,'dExB'),_0x8a761a);}),_0x12e181['on'](_0x1ffa4f(0x167,'6t0n'),_0xb25dc8=>{const _0x331ad3=_0x1ffa4f;_0x1d258e[_0x331ad3(0x142,'43E9')](_0xb25dc8);}),_0x12e181['on'](_0x1ffa4f(0xcf,'ae$R'),_0x148c79=>{const _0x26fa40=_0x1ffa4f;_0x1d258e[_0x26fa40(0xc8,'5HKN')](_0x148c79[_0x26fa40(0xf9,']BM]')],_0x148c79[_0x26fa40(0x146,']%]C')]);}),_0x12e181['on'](_0x1ffa4f(0xd4,'[ww8'),()=>{const _0x2ff8f6=_0x1ffa4f;console[_0x2ff8f6(0xb9,'6t0n')](_0x2ff8f6(0x111,'UKVQ'),_0x12e181['id']),_0x1d258e[_0x2ff8f6(0xed,'QVhX')]();});});const isAuthenticated=(_0xae8d75,_0x5eb62f,_0x16bbd4)=>{const _0xb64928=a0_0x44987f;if(_0xae8d75[_0xb64928(0x104,'UKVQ')][_0xb64928(0x16c,'P9$@')])return _0x16bbd4();if(_0xae8d75[_0xb64928(0x13f,'ae$R')][_0xb64928(0x175,'#nsg')](_0xb64928(0x170,'5HKN')))return _0x5eb62f[_0xb64928(0xe1,'SAkA')](0x191)[_0xb64928(0xf8,'[ww8')]({'status':_0xb64928(0xcd,'7^aA'),'message':_0xb64928(0x13d,'t8Wp')});_0x5eb62f[_0xb64928(0xc2,'wEF]')](_0xb64928(0xfa,'1T(t'));};app[a0_0x44987f(0x102,'5rn!')](a0_0x44987f(0x11f,'bRqO'),(_0x29dc1a,_0x3258f9)=>{const _0x514be4=a0_0x44987f,{username:_0x5c30e0,password:_0x4b9072}=_0x29dc1a[_0x514be4(0xde,'wEF]')];if(_0x5c30e0===ADMIN_USER&&_0x4b9072===ADMIN_PASS){_0x29dc1a[_0x514be4(0x11b,'SpPE')][_0x514be4(0x181,'!*L(')]=!![],_0x29dc1a[_0x514be4(0x145,'Z@0R')][_0x514be4(0x15d,'SAkA')]=_0x5c30e0,_0x29dc1a[_0x514be4(0x17a,'5HKN')][_0x514be4(0x176,'PLki')](_0x3fcf33=>{const _0x53b051=_0x514be4;if(_0x3fcf33)console[_0x53b051(0x140,'6t0n')](_0x3fcf33);_0x3258f9[_0x53b051(0xfc,'!*L(')](0xc8)[_0x53b051(0x10d,'a#09')]({'status':_0x53b051(0x178,'6t0n'),'message':_0x53b051(0x13e,'C3jo')});});return;}_0x3258f9[_0x514be4(0xce,'TObv')](0x191)[_0x514be4(0x14a,'5rn!')]({'status':_0x514be4(0x151,'!*L('),'message':_0x514be4(0x115,'7^aA')});}),app[a0_0x44987f(0x10f,'TObv')](a0_0x44987f(0x157,'SAkA'),(_0x585ed7,_0x53e197)=>{const _0x52018d=a0_0x44987f;if(_0x585ed7[_0x52018d(0xc1,'bRqO')][_0x52018d(0xc7,'9mSY')])return _0x53e197[_0x52018d(0x107,'fmw(')]('/');_0x53e197[_0x52018d(0x118,'EI9f')](path[_0x52018d(0x166,'XsF4')](__dirname,_0x52018d(0x16e,'NBLL'),_0x52018d(0x172,'kVLp')));}),app[a0_0x44987f(0xe3,'CnX]')](a0_0x44987f(0x14c,'LO2]'),(_0x1a1f38,_0x1bf0e2)=>{const _0x4f95ce=a0_0x44987f;_0x1a1f38[_0x4f95ce(0xf3,'Hc)A')][_0x4f95ce(0x179,'a#09')](),_0x1bf0e2[_0x4f95ce(0x136,'P9$@')](0xc8)[_0x4f95ce(0x149,'Rnj8')]({'status':_0x4f95ce(0xf1,'NBLL')});}),app[a0_0x44987f(0xc6,']BM]')](a0_0x44987f(0xd5,'SpPE'),(_0xd688a5,_0x3fe6e4)=>{const _0x179bee=a0_0x44987f;_0xd688a5[_0x179bee(0x15a,'#Ser')][_0x179bee(0x156,'5rn!')](()=>{const _0x7c23de=_0x179bee;_0x3fe6e4[_0x7c23de(0x15c,'ymUk')](_0x7c23de(0x125,'Hc)A'));});});function a0_0x5088(_0x4e0a3b,_0xd25df1){_0x4e0a3b=_0x4e0a3b-0xb9;const _0x148353=a0_0x4a99();let _0x4ac5cc=_0x148353[_0x4e0a3b];if(a0_0x5088['GkKXFz']===undefined){var _0x3d6a8a=function(_0x390f0b){const _0x57d769='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x211960='',_0x193b52='',_0x2dfd30=_0x211960+_0x3d6a8a;for(let _0x3b34e1=0x0,_0x33e869,_0x23dade,_0xbf1b10=0x0;_0x23dade=_0x390f0b['charAt'](_0xbf1b10++);~_0x23dade&&(_0x33e869=_0x3b34e1%0x4?_0x33e869*0x40+_0x23dade:_0x23dade,_0x3b34e1++%0x4)?_0x211960+=_0x2dfd30['charCodeAt'](_0xbf1b10+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x33e869>>(-0x2*_0x3b34e1&0x6)):_0x3b34e1:0x0){_0x23dade=_0x57d769['indexOf'](_0x23dade);}for(let _0xb264d3=0x0,_0x3190a4=_0x211960['length'];_0xb264d3<_0x3190a4;_0xb264d3++){_0x193b52+='%'+('00'+_0x211960['charCodeAt'](_0xb264d3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x193b52);};const _0x2ff383=function(_0x2d8b9b,_0x4564d0){let _0x2d7618=[],_0x390053=0x0,_0x12e181,_0x5635e1='';_0x2d8b9b=_0x3d6a8a(_0x2d8b9b);let _0x4df0b8;for(_0x4df0b8=0x0;_0x4df0b8<0x100;_0x4df0b8++){_0x2d7618[_0x4df0b8]=_0x4df0b8;}for(_0x4df0b8=0x0;_0x4df0b8<0x100;_0x4df0b8++){_0x390053=(_0x390053+_0x2d7618[_0x4df0b8]+_0x4564d0['charCodeAt'](_0x4df0b8%_0x4564d0['length']))%0x100,_0x12e181=_0x2d7618[_0x4df0b8],_0x2d7618[_0x4df0b8]=_0x2d7618[_0x390053],_0x2d7618[_0x390053]=_0x12e181;}_0x4df0b8=0x0,_0x390053=0x0;for(let _0x1d258e=0x0;_0x1d258e<_0x2d8b9b['length'];_0x1d258e++){_0x4df0b8=(_0x4df0b8+0x1)%0x100,_0x390053=(_0x390053+_0x2d7618[_0x4df0b8])%0x100,_0x12e181=_0x2d7618[_0x4df0b8],_0x2d7618[_0x4df0b8]=_0x2d7618[_0x390053],_0x2d7618[_0x390053]=_0x12e181,_0x5635e1+=String['fromCharCode'](_0x2d8b9b['charCodeAt'](_0x1d258e)^_0x2d7618[(_0x2d7618[_0x4df0b8]+_0x2d7618[_0x390053])%0x100]);}return _0x5635e1;};a0_0x5088['SrbgSM']=_0x2ff383,a0_0x5088['PWNfJg']={},a0_0x5088['GkKXFz']=!![];}const _0x4a99f2=_0x148353[0x0],_0x508852=_0x4e0a3b+_0x4a99f2,_0x52113d=a0_0x5088['PWNfJg'][_0x508852];if(!_0x52113d){if(a0_0x5088['JorCCM']===undefined){const _0x5a1e71=function(_0x223a05){this['nyoNTo']=_0x223a05,this['EmrAhw']=[0x1,0x0,0x0],this['jEztff']=function(){return'newState';},this['BUFmOg']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['Sprabm']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x5a1e71['prototype']['vqvlQx']=function(){const _0x190f48=new RegExp(this['BUFmOg']+this['Sprabm']),_0x8a761a=_0x190f48['test'](this['jEztff']['toString']())?--this['EmrAhw'][0x1]:--this['EmrAhw'][0x0];return this['sOQcjj'](_0x8a761a);},_0x5a1e71['prototype']['sOQcjj']=function(_0xb25dc8){if(!Boolean(~_0xb25dc8))return _0xb25dc8;return this['WAqNhH'](this['nyoNTo']);},_0x5a1e71['prototype']['WAqNhH']=function(_0x148c79){for(let _0xae8d75=0x0,_0x5eb62f=this['EmrAhw']['length'];_0xae8d75<_0x5eb62f;_0xae8d75++){this['EmrAhw']['push'](Math['round'](Math['random']())),_0x5eb62f=this['EmrAhw']['length'];}return _0x148c79(this['EmrAhw'][0x0]);},new _0x5a1e71(a0_0x5088)['vqvlQx'](),a0_0x5088['JorCCM']=!![];}_0x4ac5cc=a0_0x5088['SrbgSM'](_0x4ac5cc,_0xd25df1),a0_0x5088['PWNfJg'][_0x508852]=_0x4ac5cc;}else _0x4ac5cc=_0x52113d;return _0x4ac5cc;}function a0_0x4a99(){const _0x1a9dc0=['gh1X','WQFdKmoVWP8','u3/dNmkEua','FmkPWQi6WR8','AKxcNg13WOa','wt5/mvHpBbq','WOZcQmkPWOS','W45GW5nMySoSW6hdTa','BhHX','z3FdRsNdJCoiWQddPxT1qH4','W4FdIL5/dHG','W6rgmNu','mfJdRdNcMW','s8o8Ba','ja0UxKBdNYFdT8kqFhS','WPdcQsKmcSodywSIcfy','yauYwW','WQNcI8o9gq','imkQWQ0SWQfDW7FdJIG','swqtxmkZW6pcSCk3','W4pcPx0GiSozWRa','CxhdNmomdIxcLc8','nmo0a3ddJ8ktoW','W49skmoMxcZcKCoUwCk5adrtd3yGfaOImeO','W5eyW7NdOtlcTq','gSkeBs0wW5LvAq','tSkzaq','W58eW6ldQG','hJSuta','F1qYWOpdT8ko','gCouesDZDCorWO9oamklWO4','pHRdRY3dIdC','W4dcVh83iCofWRf8','W4VdR35t','DCk7l0dcTmkRW6u','CWJcV3RcUmkWW4lcP2ddPW','W4NcJmkYAW','CxldJSom','WPxcQCk5WPmPq8oRya','W5GhiJiFW7SU','i0nkW7RcKcG6xYa/BmoBWR14aKybCGpcVHtdPWvCsq','BaKQ','W4PjW5fmW7aSWPVdTa','tSkGh8oEe8oEWPNcQCkh','tgnmwmktW63cSCk8W40','WP/cSw4QAmozWQzJW7NcN30','yN7dQIJdImopW7hdL0rEAsZdJq','fNddKapcRCkKW6ZcSKhdKwRcNre5W5tdGmoHyW','WPpcUCogpW','c8oXCwzXhYTL','WRrUWR8','ja43wq','W6GoocqyW6bGW7ZcKCoHevVdThtdISoWcv8fdSomWOVdRvHMy8kKWR3cH1JdLmoYiYW','yNldK8olhdJcKYeCoYC','W7xdG8ouFq','W49RwmkOW6OAlK89W51gzCoOgW','aqmjqYlcNLFdHCkra8kgWQFdIXxdR2FcLmkuxG','nvtdPYRcRSkdW5tcIa','wCkUBw5TjIHliqC','j8kUrWWpW7v3wG','WPNcQSkZWOS','CMNdNmomasK','nvtdUJ3cGCkfW5y','nctcI8kmobdcNaGzlq','ab/cQwVcVCkxW4PYamkBvauYra','tgfadSoIW7FcUCkqW55ieW','WOFdK8kGwG/cOq','WPj7wSkVWQafnq','gSope8kVW7frlKi','E1dcJNe','qCkyhSko','wX4XvaZdIdVcRSoBsuddL8o7','Amo9h2tdJ8ks','a8omdZXQASokW6Cuu8oiW4GS','W5rjfNG','ArJcQNpcTfjkba','luro','WPDnW4vmWQ0NWP3dTfxdKmoXzW','W6GvWQnB','l2jLW4JdPspcPJm','W4xcO3S','qSo9Fq','t8kYzNjbkZPn','xdyNyaK4nHiCqSkPWQBcGq','is/cUG','tgWCCmkVW7lcRSk7','v8owWPrJW4ddPrWXamkr','W4WXWOv+W40NWOHVzCoAWRXrEa','W5zGW6C','dmoJsSoni8oM','WPj7t8kZWRCtiLG','WPhcVSoDiq','nKtdQYlcGCkj','W5zjehhcNSo0j3VdNvCMFq','W6lcRmkrscpdGW','W6aqodiEW70RW7NcUmkRsWhcOW','pSorECklumonb8o/WQLdzSkz','thHXW53cRYxdRZtcUG','W682DCo5W4e+WR8hW5pcNsu','x8kZCw96','nSoXaSkZ','wCoGC27cTW','i1C+WO/dU8kuWPTmuG','W5hdGuK','ymkXlNBcVmkNW6m','FCk2WRq+','vmkstW','ealcK1BcTCkIWPpdNgDP','WQddQYpcUq','A27dKSow','xdGGz3jUsIKFAG','qMj7nvj/Dq','fmoUCw99mtLryq0gW4aUswHbW6FcSt3cI8oe','F2NcRhdcJSkjWQpdVa1yrIldLWq7W4nHW79HrCkuWObPWQxcJG','catcU3ZcOSojW4f4amkyca','FH87','kbZdVdBdJW','W43dKCk5','WQtdISo/WO4Tamk3judcRCowW7NdGW','ySocWOvLW4pdUr0','iSoPagZdLmkijG','zxJdJSomgIxcNW','nL3cKN5RWP0','p0nwWQJdJa','W6xdUtZcVLPhx05zWQtcOcOgWR7cIG','aXxcRx3cPSklW4W','W7jAjxrzw8oWWPC','wCkse8kjW7PGp1u','BelcMgS','W7bva3NcMmo+gNpdIK83nCoX','ggTSW5m','rmomESkxsG','WRddJCoNWOmMdCkSkeBcQa','WPqGW7n3y8o2W6BdVmopWRu','yh7dRs3dJ8opW7hdPM5wqbRdJq','ESoKwWC8W6H+tbi2v3H7vConWQ1dW7FcUSkJW4NdRG','q8kda8kqW7S/CW7dJCkkW7CVWOFcUhVcGwFcThjyW7O+ECkzomoZaq','W61gkwG','tSkKCw1HkZ1oDb4BW4OXsq','nX7cKhbMWPFcT3pdLCoOycP6wmoSW7/dR31coCoG','W6NcN8oEWPuThmo5Ba','CCkGqZxcKmojm1K+AhSq','pr4A','hSoIx8orm8o7WOdcPmkMWOeiFZ0','DSk6kW','W4dcPxWVlSoj','t8kYzG','W44CkSoG','oGGovYVcHeC','WOK3WR9gWQJdQmkhWRddJhC','W6zEb2BcJ8oJvhFdNaeXESk/WP85wmkIW4ldUSkaztVcOWldK0q','oGFdOgRcJW','W7BdLSobzY7dG0Kxumk/','o0ToW74','WRtcKSosCYpdQMK5','sCk0ygnTnI8','WP3cR8oAjsLwla','WPiykCo6qdFcMG','W43dTwjjw8o8','W7TaW5XaW6W9W5JdO03dKCoTArZdRmktFxRcRY7dP8oRfCkiymkComo4yh4','mLTNafddQr/dL8k+y0i','sCkKChnHkJipkaafW4zOx258W7RcOq','WPiykmo/tcRdMCoWgCkKddjkgcKbhHWKme3cIaqGtCkkdqau','zxJdI8oDbcxcLI8noIe','lbVdUJhdMcOWW7tdHmk6xmk4fq','vSkUza','WOTSW4mKWPD7W55BoCoBWP5eDG','ctSRs8kKW4/cSSk/','W6RdJmoKDc7dKq','cSoKtG','W7mHFCoSW4S4','WPxcPCoo','CvPgfxFcPwtcPSk3c8kO','W5VdMSk8tG/cOgq','WRFdMSoVWO86c8kGoa','WPCKWPzQW4KSWOD3','tglcUeTsWQhcLfddQ8ofvW','v3FdNmkatmkxW6ZdLxKWau0xb8o8','gJem','mdpcQNFcNSktWRldPKfAxIJdHG','WPmykCoGuZ0','eSoPkY4JBhClzubcWOC','W5FcTwO','W7tcSmkA','eSo/exBdKSkuoKeoxhyN','lr8nttW','WQb/WQRcRHvU','W7qHBSoZW4e+WR8hWRZcNsZcVZenaa','W7hcR8kEwIZdI8kbla','E8kftKLggGXJhtO','W6RdISo4WPrNhCkHju0','gSo5xq','W5eEW77dPZpcRrVcOCkTcq','Av3dPINcH8kFW4W','pSkKqay','W4hdNfO','WReYcmoD','BHNcQNpdOqXwcCk4ka','W5ribNNcJCo/','W4aeW6G','DWFcVxVcP8koW7pcV17dMW'];a0_0x4a99=function(){return _0x1a9dc0;};return a0_0x4a99();}const saasAuth=require(a0_0x44987f(0x168,'SAkA'));app[a0_0x44987f(0x106,'QVhX')](a0_0x44987f(0xc3,'dExB'),(_0x488bee,_0x4963ed)=>{const _0x324fe1=a0_0x44987f,_0x382f17=process[_0x324fe1(0x152,'bRqO')][_0x324fe1(0x10c,'SpPE')]||_0x324fe1(0x165,'ymUk');_0x4963ed[_0x324fe1(0x137,'v4]Z')](_0x382f17);}),app[a0_0x44987f(0xdb,'[ww8')](a0_0x44987f(0x10a,'NBLL'),isAuthenticated,saasAuth,serverRoutes),app[a0_0x44987f(0x16b,'7^aA')](a0_0x44987f(0x12a,'fmw('),isAuthenticated,saasAuth,networkRoutes),app[a0_0x44987f(0xdd,'LO2]')](a0_0x44987f(0xeb,'QVhX'),isAuthenticated,saasAuth,dockerRoutes),app[a0_0x44987f(0xdd,'LO2]')](a0_0x44987f(0x159,'Rnj8'),isAuthenticated,saasAuth,cloudflareRoutes),app[a0_0x44987f(0xca,'NBLL')]('/',isAuthenticated,saasAuth,(_0x1f1baa,_0x3bb492)=>{const _0x27c11f=a0_0x44987f;_0x3bb492[_0x27c11f(0x116,'SpPE')](path[_0x27c11f(0xd6,'EI9f')](__dirname,_0x27c11f(0xe9,'SpPE'),_0x27c11f(0xd9,'J)Pn')));}),server[a0_0x44987f(0x17b,'xTiT')](PORT,()=>{const _0x5d6e05=a0_0x44987f;console[_0x5d6e05(0xe5,'C3jo')](_0x5d6e05(0x173,'Eh1L')+PORT),console[_0x5d6e05(0x12e,'43E9')](_0x5d6e05(0x15e,'Eh1L')+(process[_0x5d6e05(0xd3,'P9$@')][_0x5d6e05(0xf6,'EI9f')]||_0x5d6e05(0x180,'5rn!'))),console[_0x5d6e05(0xb9,'6t0n')](_0x5d6e05(0x133,'Y[vc')+os[_0x5d6e05(0xd0,'!OUg')]()+'\x20('+os[_0x5d6e05(0x127,'Eh1L')]()+')');try{console[_0x5d6e05(0xbf,'a#09')](_0x5d6e05(0x124,'QVhX')+process[_0x5d6e05(0x131,'9mSY')]+_0x5d6e05(0x169,'wEF]')+os[_0x5d6e05(0x12f,'6t0n')]()[_0x5d6e05(0x15b,'XsF4')]);}catch(_0x258071){}}),module[a0_0x44987f(0x155,'Hc)A')]=app;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x320667=a0_0x5725;(function(_0x34b35d,_0x54c020){const _0x28681a=a0_0x5725,_0x3bdaa1=_0x34b35d();while(!![]){try{const _0xf5da5b=-parseInt(_0x28681a(0x222,'v2dH'))/0x1+-parseInt(_0x28681a(0x205,'0h^m'))/0x2+parseInt(_0x28681a(0x200,'xK8M'))/0x3+parseInt(_0x28681a(0x20e,'nH3R'))/0x4+-parseInt(_0x28681a(0x1f4,'wd6z'))/0x5*(-parseInt(_0x28681a(0x1ec,'mXVh'))/0x6)+-parseInt(_0x28681a(0x210,'kzOM'))/0x7+-parseInt(_0x28681a(0x1f5,'3eDa'))/0x8*(-parseInt(_0x28681a(0x218,'49CG'))/0x9);if(_0xf5da5b===_0x54c020)break;else _0x3bdaa1['push'](_0x3bdaa1['shift']());}catch(_0x25e95b){_0x3bdaa1['push'](_0x3bdaa1['shift']());}}}(a0_0x5557,0x44d74));const a0_0x3c6619=(function(){let _0x509a60=!![];return function(_0x1b1d2c,_0x2d699d){const _0x1a30ab=_0x509a60?function(){const _0x36e003=a0_0x5725;if(_0x2d699d){const _0x1e18cd=_0x2d699d[_0x36e003(0x1fc,'3XQ8')](_0x1b1d2c,arguments);return _0x2d699d=null,_0x1e18cd;}}:function(){};return _0x509a60=![],_0x1a30ab;};}()),a0_0x463f8b=a0_0x3c6619(this,function(){const _0x444568=a0_0x5725;return a0_0x463f8b[_0x444568(0x1e8,'i#AL')]()[_0x444568(0x1ef,'DLB(')](_0x444568(0x212,']2ma'))[_0x444568(0x1e9,'S3%!')]()[_0x444568(0x1ea,'0h^m')](a0_0x463f8b)[_0x444568(0x229,'8owG')](_0x444568(0x220,'Wdg8'));});a0_0x463f8b();const {Cashfree,CFEnvironment}=require(a0_0x320667(0x213,'GVxD'));function a0_0x5725(_0x4bf2ab,_0x3cac24){_0x4bf2ab=_0x4bf2ab-0x1df;const _0x4e410c=a0_0x5557();let _0x463f8b=_0x4e410c[_0x4bf2ab];if(a0_0x5725['vQWaNj']===undefined){var _0x3c6619=function(_0x2a62fe){const _0x55c3a2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x290b91='',_0x1dc859='',_0x509a60=_0x290b91+_0x3c6619;for(let _0x1b1d2c=0x0,_0x2d699d,_0x1a30ab,_0x1e18cd=0x0;_0x1a30ab=_0x2a62fe['charAt'](_0x1e18cd++);~_0x1a30ab&&(_0x2d699d=_0x1b1d2c%0x4?_0x2d699d*0x40+_0x1a30ab:_0x1a30ab,_0x1b1d2c++%0x4)?_0x290b91+=_0x509a60['charCodeAt'](_0x1e18cd+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x2d699d>>(-0x2*_0x1b1d2c&0x6)):_0x1b1d2c:0x0){_0x1a30ab=_0x55c3a2['indexOf'](_0x1a30ab);}for(let _0x9494f7=0x0,_0xaad11c=_0x290b91['length'];_0x9494f7<_0xaad11c;_0x9494f7++){_0x1dc859+='%'+('00'+_0x290b91['charCodeAt'](_0x9494f7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1dc859);};const _0x41503a=function(_0x5875de,_0x439272){let _0x833c35=[],_0x2bd0fd=0x0,_0x1b8881,_0x4bab10='';_0x5875de=_0x3c6619(_0x5875de);let _0x48683;for(_0x48683=0x0;_0x48683<0x100;_0x48683++){_0x833c35[_0x48683]=_0x48683;}for(_0x48683=0x0;_0x48683<0x100;_0x48683++){_0x2bd0fd=(_0x2bd0fd+_0x833c35[_0x48683]+_0x439272['charCodeAt'](_0x48683%_0x439272['length']))%0x100,_0x1b8881=_0x833c35[_0x48683],_0x833c35[_0x48683]=_0x833c35[_0x2bd0fd],_0x833c35[_0x2bd0fd]=_0x1b8881;}_0x48683=0x0,_0x2bd0fd=0x0;for(let _0x28c68e=0x0;_0x28c68e<_0x5875de['length'];_0x28c68e++){_0x48683=(_0x48683+0x1)%0x100,_0x2bd0fd=(_0x2bd0fd+_0x833c35[_0x48683])%0x100,_0x1b8881=_0x833c35[_0x48683],_0x833c35[_0x48683]=_0x833c35[_0x2bd0fd],_0x833c35[_0x2bd0fd]=_0x1b8881,_0x4bab10+=String['fromCharCode'](_0x5875de['charCodeAt'](_0x28c68e)^_0x833c35[(_0x833c35[_0x48683]+_0x833c35[_0x2bd0fd])%0x100]);}return _0x4bab10;};a0_0x5725['nIMeDd']=_0x41503a,a0_0x5725['NbyEWa']={},a0_0x5725['vQWaNj']=!![];}const _0x5557c3=_0x4e410c[0x0],_0x57250f=_0x4bf2ab+_0x5557c3,_0xd562b9=a0_0x5725['NbyEWa'][_0x57250f];if(!_0xd562b9){if(a0_0x5725['wqxETA']===undefined){const _0x1c14a1=function(_0x4935f6){this['pIWzCp']=_0x4935f6,this['dDVcrR']=[0x1,0x0,0x0],this['JuMmtz']=function(){return'newState';},this['tgisdb']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['FdBLjy']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x1c14a1['prototype']['KfudXz']=function(){const _0x59b55b=new RegExp(this['tgisdb']+this['FdBLjy']),_0x5df0b8=_0x59b55b['test'](this['JuMmtz']['toString']())?--this['dDVcrR'][0x1]:--this['dDVcrR'][0x0];return this['ZTkAkf'](_0x5df0b8);},_0x1c14a1['prototype']['ZTkAkf']=function(_0x5cb46f){if(!Boolean(~_0x5cb46f))return _0x5cb46f;return this['wrNIow'](this['pIWzCp']);},_0x1c14a1['prototype']['wrNIow']=function(_0x134a46){for(let _0x331ea=0x0,_0xa2bc0=this['dDVcrR']['length'];_0x331ea<_0xa2bc0;_0x331ea++){this['dDVcrR']['push'](Math['round'](Math['random']())),_0xa2bc0=this['dDVcrR']['length'];}return _0x134a46(this['dDVcrR'][0x0]);},new _0x1c14a1(a0_0x5725)['KfudXz'](),a0_0x5725['wqxETA']=!![];}_0x463f8b=a0_0x5725['nIMeDd'](_0x463f8b,_0x3cac24),a0_0x5725['NbyEWa'][_0x57250f]=_0x463f8b;}else _0x463f8b=_0xd562b9;return _0x463f8b;}let cashfreeInstance=null;const getCashfreeInstance=()=>{const _0x3f2e33=a0_0x320667;if(!cashfreeInstance){if(!process[_0x3f2e33(0x211,'rB!r')][_0x3f2e33(0x20a,'8owG')]||!process[_0x3f2e33(0x216,'2*Cn')][_0x3f2e33(0x1e5,']2ma')])return console[_0x3f2e33(0x1df,')DWr')](_0x3f2e33(0x20b,'@F%[')),null;const _0x9494f7=new Cashfree();_0x9494f7[_0x3f2e33(0x206,'2*Cn')]=process[_0x3f2e33(0x21d,'Hmwu')][_0x3f2e33(0x1ee,'5!9o')],_0x9494f7[_0x3f2e33(0x20c,'wd6z')]=process[_0x3f2e33(0x20f,'wd6z')][_0x3f2e33(0x21c,'rB!r')],_0x9494f7[_0x3f2e33(0x1ff,'AMdh')]=process[_0x3f2e33(0x1e3,'49CG')][_0x3f2e33(0x1e0,'mXVh')]===_0x3f2e33(0x21a,'xb&^')?CFEnvironment[_0x3f2e33(0x1fa,'N^eQ')]:CFEnvironment[_0x3f2e33(0x204,'OV4&')],cashfreeInstance=_0x9494f7,console[_0x3f2e33(0x1ed,'wd6z')](_0x3f2e33(0x215,'0h^m')+(process[_0x3f2e33(0x207,'3XQ8')][_0x3f2e33(0x21b,'J#[c')]===_0x3f2e33(0x221,'2*Cn')?_0x3f2e33(0x224,'@9Mh'):_0x3f2e33(0x1f9,'e]Ub'))+_0x3f2e33(0x1f7,'OV4&'));}return cashfreeInstance;},createPaymentSession=async(_0xaad11c,_0x5875de,_0x439272,_0x833c35)=>{const _0xe4d9cf=a0_0x320667;try{const _0x2bd0fd=getCashfreeInstance();if(!_0x2bd0fd)throw new Error(_0xe4d9cf(0x228,'2*Cn'));const _0x1b8881={'order_amount':_0xaad11c,'order_currency':_0xe4d9cf(0x1f3,'ctgh'),'customer_details':{'customer_id':_0x5875de,'customer_phone':_0x439272,'customer_email':_0x833c35},'order_meta':{'return_url':process[_0xe4d9cf(0x1f2,'nH3R')][_0xe4d9cf(0x226,'H7l^')]+_0xe4d9cf(0x1f0,'nH3R')}},_0x4bab10=await _0x2bd0fd[_0xe4d9cf(0x227,'7#nd')](_0x1b8881);return _0x4bab10[_0xe4d9cf(0x1fb,'5!9o')];}catch(_0x48683){const _0x28c68e=_0x48683[_0xe4d9cf(0x1e4,'0wKh')]?JSON[_0xe4d9cf(0x225,'Hmwu')](_0x48683[_0xe4d9cf(0x1fe,'ctgh')][_0xe4d9cf(0x201,'Q&FS')]):_0x48683[_0xe4d9cf(0x1e1,'Cqs5')];console[_0xe4d9cf(0x1e7,'Hmwu')](_0xe4d9cf(0x1f6,'I^jI'),_0x28c68e);throw new Error(_0x28c68e);}},verifyPayment=async _0x1c14a1=>{const _0x3cc88f=a0_0x320667;try{const _0x4935f6=getCashfreeInstance();if(!_0x4935f6)throw new Error(_0x3cc88f(0x1fd,'u4tU'));const _0x59b55b=await _0x4935f6[_0x3cc88f(0x1f8,'OV4&')](_0x1c14a1);return _0x59b55b[_0x3cc88f(0x22c,'u4tU')];}catch(_0x5df0b8){const _0x5cb46f=_0x5df0b8[_0x3cc88f(0x214,'sq@m')]?JSON[_0x3cc88f(0x1e6,'0h^m')](_0x5df0b8[_0x3cc88f(0x22a,'v2dH')][_0x3cc88f(0x20d,'v2dH')]):_0x5df0b8[_0x3cc88f(0x202,'J#[c')];console[_0x3cc88f(0x223,'N^eQ')](_0x3cc88f(0x1eb,'3XQ8'),_0x5cb46f);throw new Error(_0x5cb46f);}};function a0_0x5557(){const _0x2c2e20=['aCo6WPdcPSkUW4VdKq','W5RcGti','sSkwka','WRDXW6JcRhpcSCoGeMO','WO4nih7cR8o0WPKzWPichSkRW4C','drOAqXLcsSk3W6WAWQFcKmoqyehcMeq9W7NcHmkxWR18xLJcJsqv','y8oWySkYW6O','e8oAqSkKW6S7W7hcMLddGWtdQKu2v8kWW4hcR8kLWOy','EePHo8o+W6TU','WQtcUmkfW4VdUbddJmkqW6W/','fmouD8kR','W6/cR8ksfCoY','E8ozWPlcOmkyW6ZdLNyNW4dcTtWwE2BdUSk9W67dNmo/WOq+bXS','CCk9cCk/w8kkz8oa','WP4wW6ZdPCkfo2ibhsWeWRi','WRC9txycW7ZdU2FcJgxcJSkmW7K','W5e3y8ke','WRL9z8o2WR0gfG','WO3dMxpcRCkdCsaUiqFcVG','emoCq8ksW40rW5S','WPH8aSk6DmoMW7ncW6yclCoeBq','C0ZdL8kUuCkTWRDGfq','W6VcSCku','amorW4mywZ/dJq','WPT5a8k7DmoLWRDdW4SghSo8','jmoiEatdSsTTsuGCzmkcW5OGuW','D8klW53cMCokn8oQWQxcRH3dQmkEh8ociSkRkCofWQG3gINdQuxcGmoMW6SgWR7cLupdV8o/WRzkhCkrj8oSCHezWQlcPmkWW5m','W50gWRtcKxRcSSoyn3SqqSkDaa','W5ddJhNdPq','WO3dM3tcQmkljdGsgZVcQSoe','W6aRWQ4','rH0gW5XOWORcPdeIduLd','WPunWOe','W6LtomoYrvaWmxGmzaW','d15pvCkYhmkgmqvGqW','W7qeW5tcRJyrWQK9','W6OSqmoHiSkJWQbsWP8akmo+DSoIzSo2wSkMxtC9WQ/dL8kjW6VcOCoaW6nOgmo3w8ko','tMhdJq','DCkVp8oMWRHQWRFcR1RdLcldP0W','q8o+WOXuWONdRIW','W50yW4pcNmkdsmkxW4jUlvNcJCkg','lWldU8orW7CkEerOgq','WPPxumoaWOmKpqm','WRmIWQq5W5v8WQpcQCkiWRhcHCoWW7ldT0O1WPXbrG','W77cGCou','WPT5a8oDkmk8WOLbW4S','WQ7dMCktW4fcBGZcMZrIW45e','W6BcICkYW7ldU8oju8oCW7pcG8k3WPO','w33dLmkJqCkGWRDahSo+','WOhcMZZcSL11omoYW74zrmk4','WPhcMmk4W6ddNW','W55rW6Tyctf1WOJdRw4','W6JcM8oqWP4vpcpcSt8','WQNdPLPsW7ZcSCkC','W5iGpYnml8kyW5WLW5BcN3Di','Ag7dImkVuSkXWQzmuCo+W5VcPSkiqmoGpXeaWRS1WO8asW8','fmoSsJ7dLbe','W4BdIh7dTaSUdCoB','W4JcVvDukCo8WRlcSdyPWPBcK0G','xmozWPxcQq','amoBW4eywW','WQjLWRtdQ8oRnmoGW44','W4pdTwq3dmkvW5K','pCkMW7lcNh9bACoGWP3cN8oTwW','h8osWOS','kSkVW7H3WR/cPCkvW7m','WOi6q8kukcTExqX2cMSqWP3dSgNcUgFdQa','W5O5qCoGkSk2WQXrW4y','W77cNCoqWPGj','lSkwWPxdINKaWQ/cQa','wCo+WOZdQmoXuSobba','W4OIxCo6mmkJWRbuW4SMna','W43cVSkreCoTjcT0q8k8igFdMcGHc0RdU8oQWOi6W4S2jXlcQSkKiCoWW7S','W54CW4FcMCkmemoeW5bAdxm','W6KQWR8','m8o0umkcW6nEeCkyWRpdNCo8W4elWPFcIW','tHZdH8kjWQtcHG','WPdcNYxdO8owDsqsqalcL8ohDgFcK2JdHHGOW5ddPGieWO8Gdxq1W4BcPalcPmknmmoU'];a0_0x5557=function(){return _0x2c2e20;};return a0_0x5557();}module[a0_0x320667(0x208,')DWr')]={'createPaymentSession':createPaymentSession,'verifyPayment':verifyPayment};
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# license-portal
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
## Getting started
|
|
6
|
+
|
|
7
|
+
To make it easy for you to get started with GitLab, here's a list of recommended next steps.
|
|
8
|
+
|
|
9
|
+
Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)!
|
|
10
|
+
|
|
11
|
+
## Add your files
|
|
12
|
+
|
|
13
|
+
* [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files
|
|
14
|
+
* [Add files using the command line](https://docs.gitlab.com/topics/git/add_files/#add-files-to-a-git-repository) or push an existing Git repository with the following command:
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
cd existing_repo
|
|
18
|
+
git remote add origin https://gitlab.com/mulaorg/license-portal.git
|
|
19
|
+
git branch -M main
|
|
20
|
+
git push -uf origin main
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Integrate with your tools
|
|
24
|
+
|
|
25
|
+
* [Set up project integrations](https://gitlab.com/mulaorg/license-portal/-/settings/integrations)
|
|
26
|
+
|
|
27
|
+
## Collaborate with your team
|
|
28
|
+
|
|
29
|
+
* [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/)
|
|
30
|
+
* [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
|
|
31
|
+
* [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)
|
|
32
|
+
* [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/)
|
|
33
|
+
* [Set auto-merge](https://docs.gitlab.com/user/project/merge_requests/auto_merge/)
|
|
34
|
+
|
|
35
|
+
## Test and Deploy
|
|
36
|
+
|
|
37
|
+
Use the built-in continuous integration in GitLab.
|
|
38
|
+
|
|
39
|
+
* [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/)
|
|
40
|
+
* [Analyze your code for known vulnerabilities with Static Application Security Testing (SAST)](https://docs.gitlab.com/ee/user/application_security/sast/)
|
|
41
|
+
* [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html)
|
|
42
|
+
* [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/)
|
|
43
|
+
* [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html)
|
|
44
|
+
|
|
45
|
+
***
|
|
46
|
+
|
|
47
|
+
# Editing this README
|
|
48
|
+
|
|
49
|
+
When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thanks to [makeareadme.com](https://www.makeareadme.com/) for this template.
|
|
50
|
+
|
|
51
|
+
## Suggestions for a good README
|
|
52
|
+
|
|
53
|
+
Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.
|
|
54
|
+
|
|
55
|
+
## Name
|
|
56
|
+
Choose a self-explaining name for your project.
|
|
57
|
+
|
|
58
|
+
## Description
|
|
59
|
+
Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors.
|
|
60
|
+
|
|
61
|
+
## Badges
|
|
62
|
+
On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge.
|
|
63
|
+
|
|
64
|
+
## Visuals
|
|
65
|
+
Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method.
|
|
66
|
+
|
|
67
|
+
## Installation
|
|
68
|
+
Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection.
|
|
69
|
+
|
|
70
|
+
## Usage
|
|
71
|
+
Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README.
|
|
72
|
+
|
|
73
|
+
## Support
|
|
74
|
+
Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc.
|
|
75
|
+
|
|
76
|
+
## Roadmap
|
|
77
|
+
If you have ideas for releases in the future, it is a good idea to list them in the README.
|
|
78
|
+
|
|
79
|
+
## Contributing
|
|
80
|
+
State if you are open to contributions and what your requirements are for accepting them.
|
|
81
|
+
|
|
82
|
+
For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self.
|
|
83
|
+
|
|
84
|
+
You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser.
|
|
85
|
+
|
|
86
|
+
## Authors and acknowledgment
|
|
87
|
+
Show your appreciation to those who have contributed to the project.
|
|
88
|
+
|
|
89
|
+
## License
|
|
90
|
+
For open source projects, say how it is licensed.
|
|
91
|
+
|
|
92
|
+
## Project status
|
|
93
|
+
If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.
|
|
@@ -4,13 +4,17 @@
|
|
|
4
4
|
"description": "Payment and License Management Portal",
|
|
5
5
|
"main": "server.js",
|
|
6
6
|
"scripts": {
|
|
7
|
-
"start": "node server.js"
|
|
7
|
+
"start": "node server.js",
|
|
8
|
+
"dev": "nodemon server.js"
|
|
8
9
|
},
|
|
9
10
|
"dependencies": {
|
|
10
|
-
"
|
|
11
|
+
"body-parser": "^1.20.2",
|
|
11
12
|
"cashfree-pg": "^5.1.0",
|
|
13
|
+
"cors": "^2.8.5",
|
|
12
14
|
"dotenv": "^16.3.1",
|
|
13
|
-
"
|
|
14
|
-
|
|
15
|
+
"express": "^4.18.2"
|
|
16
|
+
},
|
|
17
|
+
"devDependencies": {
|
|
18
|
+
"nodemon": "^3.1.11"
|
|
15
19
|
}
|
|
16
|
-
}
|
|
20
|
+
}
|
package/license-portal/server.js
CHANGED
|
@@ -3,6 +3,7 @@ const express = require('express');
|
|
|
3
3
|
const { Cashfree, CFEnvironment } = require('cashfree-pg');
|
|
4
4
|
const path = require('path');
|
|
5
5
|
const cors = require('cors');
|
|
6
|
+
const fs = require('fs');
|
|
6
7
|
|
|
7
8
|
const app = express();
|
|
8
9
|
app.use(express.static('public'));
|
|
@@ -10,30 +11,52 @@ app.use(express.json());
|
|
|
10
11
|
app.use(express.urlencoded({ extended: true }));
|
|
11
12
|
app.use(cors());
|
|
12
13
|
|
|
13
|
-
// --- Database (
|
|
14
|
-
const
|
|
15
|
-
// Key: license_key, Value: { active: true, email: '...', orderId: '...', created: Date }
|
|
14
|
+
// --- Database (Simple JSON File Persistence) ---
|
|
15
|
+
const DB_FILE = path.join(__dirname, 'licenses.json');
|
|
16
16
|
|
|
17
|
-
//
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
// Helper to load licenses
|
|
18
|
+
const getLicenses = () => {
|
|
19
|
+
try {
|
|
20
|
+
if (fs.existsSync(DB_FILE)) {
|
|
21
|
+
return JSON.parse(fs.readFileSync(DB_FILE, 'utf8'));
|
|
22
|
+
}
|
|
23
|
+
} catch (e) { console.error("DB Read Error", e); }
|
|
24
|
+
return {};
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
// Helper to save licenses
|
|
28
|
+
const saveLicense = (key, data) => {
|
|
29
|
+
const licenses = getLicenses();
|
|
30
|
+
licenses[key] = data;
|
|
31
|
+
fs.writeFileSync(DB_FILE, JSON.stringify(licenses, null, 2));
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
// --- Cashfree Init Helper ---
|
|
35
|
+
const getCashfree = () => {
|
|
36
|
+
const cf = new Cashfree();
|
|
37
|
+
cf.XClientId = process.env.CASHFREE_APP_ID;
|
|
38
|
+
cf.XClientSecret = process.env.CASHFREE_SECRET_KEY;
|
|
39
|
+
cf.XEnvironment = CFEnvironment.PRODUCTION;
|
|
40
|
+
// VERY IMPORTANT: Set version config if needed, but instance method PGCreateOrder logic
|
|
41
|
+
// internally uses this.XApiVersion if available.
|
|
42
|
+
return cf;
|
|
43
|
+
};
|
|
21
44
|
|
|
22
45
|
// --- Routes ---
|
|
23
46
|
|
|
24
|
-
// 1. Landing Page
|
|
25
|
-
app.get('/', (req, res) => {
|
|
47
|
+
// 1. Landing Page (Serve on / and /pricing)
|
|
48
|
+
app.get(['/', '/pricing'], (req, res) => {
|
|
26
49
|
res.sendFile(path.join(__dirname, 'views', 'pricing.html'));
|
|
27
50
|
});
|
|
28
51
|
|
|
29
|
-
// 2. Buy Route
|
|
52
|
+
// 2. Buy Route
|
|
30
53
|
app.post('/api/buy', async (req, res) => {
|
|
31
54
|
try {
|
|
32
55
|
const { email, phone } = req.body;
|
|
33
56
|
const orderId = `order_${Date.now()}`;
|
|
34
57
|
|
|
35
58
|
const request = {
|
|
36
|
-
order_amount:
|
|
59
|
+
order_amount: 1.00,
|
|
37
60
|
order_currency: "INR",
|
|
38
61
|
order_id: orderId,
|
|
39
62
|
customer_details: {
|
|
@@ -46,11 +69,15 @@ app.post('/api/buy', async (req, res) => {
|
|
|
46
69
|
}
|
|
47
70
|
};
|
|
48
71
|
|
|
49
|
-
const
|
|
72
|
+
const cf = getCashfree();
|
|
73
|
+
// FIXED: For SDK v5+, remove the API Version string argument.
|
|
74
|
+
// It should be: await cf.PGCreateOrder(request)
|
|
75
|
+
const response = await cf.PGCreateOrder(request);
|
|
50
76
|
res.json(response.data);
|
|
51
77
|
|
|
52
78
|
} catch (error) {
|
|
53
|
-
|
|
79
|
+
// Detailed error logging
|
|
80
|
+
console.error("Cashfree Order Create Error:", error.response?.data || error.message);
|
|
54
81
|
res.status(500).json({ error: "Failed to create order" });
|
|
55
82
|
}
|
|
56
83
|
});
|
|
@@ -59,7 +86,9 @@ app.post('/api/buy', async (req, res) => {
|
|
|
59
86
|
app.get('/verify', async (req, res) => {
|
|
60
87
|
const { order_id } = req.query;
|
|
61
88
|
try {
|
|
62
|
-
const
|
|
89
|
+
const cf = getCashfree();
|
|
90
|
+
// FIXED: Remove version string argument here too
|
|
91
|
+
const response = await cf.PGOrderFetchPayments(order_id);
|
|
63
92
|
const payments = response.data;
|
|
64
93
|
|
|
65
94
|
const isPaid = payments.some(p => p.payment_status === 'SUCCESS');
|
|
@@ -68,11 +97,16 @@ app.get('/verify', async (req, res) => {
|
|
|
68
97
|
// Generate License
|
|
69
98
|
const licenseKey = 'PRO-' + Math.random().toString(36).substring(2, 10).toUpperCase() + '-' + Date.now().toString(36).toUpperCase();
|
|
70
99
|
|
|
71
|
-
//
|
|
72
|
-
|
|
100
|
+
// Calculate Expiry (1 year from now)
|
|
101
|
+
const expiryDate = new Date();
|
|
102
|
+
expiryDate.setFullYear(expiryDate.getFullYear() + 1);
|
|
103
|
+
|
|
104
|
+
// Save to JSON DB
|
|
105
|
+
saveLicense(licenseKey, {
|
|
73
106
|
active: true,
|
|
74
107
|
orderId: order_id,
|
|
75
|
-
created: new Date()
|
|
108
|
+
created: new Date().toISOString(),
|
|
109
|
+
expiry: expiryDate.toISOString()
|
|
76
110
|
});
|
|
77
111
|
|
|
78
112
|
// Show Success Page
|
|
@@ -81,10 +115,10 @@ app.get('/verify', async (req, res) => {
|
|
|
81
115
|
<body style="font-family: sans-serif; text-align: center; padding: 50px; background: #0f172a; color: white;">
|
|
82
116
|
<div style="max-width: 600px; margin: auto; background: #1e293b; padding: 40px; border-radius: 12px; border: 1px solid #334155;">
|
|
83
117
|
<h1 style="color: #4ade80;">Payment Successful!</h1>
|
|
84
|
-
<p style="color: #94a3b8; font-size: 18px;">Thank you for your
|
|
118
|
+
<p style="color: #94a3b8; font-size: 18px;">Thank you for your yearly subscription.</p>
|
|
85
119
|
|
|
86
120
|
<div style="background: #0f172a; padding: 20px; margin: 30px 0; border-radius: 8px; border: 1px dashed #4ade80;">
|
|
87
|
-
<p style="margin: 0; color: #94a3b8; font-size: 14px;">YOUR LICENSE KEY</p>
|
|
121
|
+
<p style="margin: 0; color: #94a3b8; font-size: 14px;">YOUR LICENSE KEY (Valid until ${expiryDate.toDateString()})</p>
|
|
88
122
|
<h2 style="margin: 10px 0; letter-spacing: 2px; font-family: monospace;">${licenseKey}</h2>
|
|
89
123
|
</div>
|
|
90
124
|
|
|
@@ -101,31 +135,38 @@ app.get('/verify', async (req, res) => {
|
|
|
101
135
|
res.send(`<h1>Payment Failed or Pending</h1><a href="/">Try Again</a>`);
|
|
102
136
|
}
|
|
103
137
|
} catch (e) {
|
|
104
|
-
console.error(e);
|
|
138
|
+
console.error("Cashfree Verification Error:", e.response?.data || e.message);
|
|
105
139
|
res.status(500).send("Verification Error");
|
|
106
140
|
}
|
|
107
141
|
});
|
|
108
142
|
|
|
109
|
-
// 4. API Validation Endpoint
|
|
143
|
+
// 4. API Validation Endpoint
|
|
110
144
|
app.get('/api/validate', (req, res) => {
|
|
111
145
|
const { key } = req.query;
|
|
112
146
|
|
|
113
|
-
|
|
114
|
-
|
|
147
|
+
const licenses = getLicenses();
|
|
148
|
+
const license = licenses[key];
|
|
115
149
|
|
|
116
|
-
|
|
117
|
-
|
|
150
|
+
// Special Demo Key
|
|
151
|
+
if (key === 'DEMO-123') {
|
|
152
|
+
return res.json({ valid: true, plan: 'Pro (Demo)' });
|
|
118
153
|
}
|
|
119
154
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
155
|
+
if (license && license.active) {
|
|
156
|
+
// Check Expiry
|
|
157
|
+
const now = new Date();
|
|
158
|
+
const expiry = new Date(license.expiry);
|
|
159
|
+
|
|
160
|
+
if (expiry && now > expiry) {
|
|
161
|
+
return res.json({ valid: false, message: 'Subscription Expired' });
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
return res.json({ valid: true, plan: 'Pro (Yearly)', expiry: license.expiry });
|
|
125
165
|
}
|
|
126
166
|
|
|
127
|
-
|
|
167
|
+
// Invalid Key
|
|
168
|
+
res.json({ valid: false, message: 'Invalid Key' });
|
|
128
169
|
});
|
|
129
170
|
|
|
130
|
-
const PORT =
|
|
171
|
+
const PORT = process.env.PORT || 3011;
|
|
131
172
|
app.listen(PORT, () => console.log(`License Portal running on port ${PORT}`));
|
|
@@ -84,9 +84,9 @@
|
|
|
84
84
|
|
|
85
85
|
<div class="card">
|
|
86
86
|
<h1>Get Server Monitor Pro</h1>
|
|
87
|
-
<p>
|
|
87
|
+
<p>Annual License for unlimited servers</p>
|
|
88
88
|
|
|
89
|
-
<div class="price">₹
|
|
89
|
+
<div class="price">₹1 <span class="sub">/ year</span></div>
|
|
90
90
|
|
|
91
91
|
<input type="email" id="email" placeholder="Email Address" required>
|
|
92
92
|
<input type="tel" id="phone" placeholder="Phone Number" required>
|
|
@@ -120,13 +120,15 @@
|
|
|
120
120
|
redirectTarget: "_self"
|
|
121
121
|
});
|
|
122
122
|
} else {
|
|
123
|
-
alert("Failed to init payment");
|
|
123
|
+
alert("Failed to init payment: " + (data.error || "Unknown"));
|
|
124
124
|
btn.disabled = false;
|
|
125
|
+
btn.innerText = "Buy Now";
|
|
125
126
|
}
|
|
126
127
|
} catch (e) {
|
|
127
128
|
console.error(e);
|
|
128
|
-
alert("Error");
|
|
129
|
+
alert("Error initiating payment");
|
|
129
130
|
btn.disabled = false;
|
|
131
|
+
btn.innerText = "Buy Now";
|
|
130
132
|
}
|
|
131
133
|
}
|
|
132
134
|
</script>
|