@restforgejs/platform 5.2.0 → 5.2.4
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/build-info.json +2 -2
- package/cli/consumer-deploy.js +2 -2
- package/cli/consumer.js +2 -2
- package/generators/cli/fast-track.js +58 -5
- package/generators/lib/migrate/migrate-runner.js +12 -2
- package/generators/lib/migrate/sql-parser.js +5 -3
- package/generators/lib/payload/payload-runner.js +31 -5
- package/generators/lib/templates/dashboard-catalog.js +1 -1
- package/generators/lib/templates/db-connection-env.js +1 -1
- package/generators/lib/templates/dbschema-catalog.js +1 -1
- package/generators/lib/templates/field-validation-catalog.js +1 -1
- package/generators/lib/templates/mysql-template.js +1 -1
- package/generators/lib/templates/oracle-template.js +1 -1
- package/generators/lib/templates/postgres-template.js +1 -1
- package/generators/lib/templates/query-declarative-catalog.js +1 -1
- package/generators/lib/templates/sqlite-template.js +1 -1
- package/integrity-manifest.json +18 -18
- package/package.json +1 -1
- package/scripts/verify-integrity.js +1 -1
- package/server.js +2 -2
- package/src/components/handlers/adjust_handler.js +1 -1
- package/src/components/handlers/audit_handler.js +1 -1
- package/src/components/handlers/delete_handler.js +1 -1
- package/src/components/handlers/export_handler.js +1 -1
- package/src/components/handlers/import_handler.js +1 -1
- package/src/components/handlers/insert_handler.js +1 -1
- package/src/components/handlers/update_handler.js +1 -1
- package/src/components/handlers/upload_handler.js +1 -1
- package/src/components/handlers/workflow_handler.js +1 -1
- package/src/components/integrations/webhook.js +1 -1
- package/src/consumers/baseConsumer.js +1 -1
- package/src/consumers/declarativeMapper.js +1 -1
- package/src/consumers/handlers/apiHandler.js +1 -1
- package/src/consumers/handlers/consoleHandler.js +1 -1
- package/src/consumers/handlers/databaseHandler.js +1 -1
- package/src/consumers/handlers/index.js +1 -1
- package/src/consumers/handlers/kafkaHandler.js +1 -1
- package/src/consumers/index.js +1 -1
- package/src/consumers/messageTransformer.js +1 -1
- package/src/consumers/validator.js +1 -1
- package/src/core/db/dialect/base-dialect.js +1 -1
- package/src/core/db/dialect/index.js +1 -1
- package/src/core/db/dialect/mysql-dialect.js +1 -1
- package/src/core/db/dialect/oracle-dialect.js +1 -1
- package/src/core/db/dialect/postgres-dialect.js +1 -1
- package/src/core/db/dialect/sqlite-dialect.js +1 -1
- package/src/core/db/flatten-helper.js +1 -1
- package/src/core/db/query-builder-error.js +1 -1
- package/src/core/db/query-builder.js +1 -1
- package/src/core/db/relation-helper.js +1 -1
- package/src/core/handlers/delete_handler.js +1 -1
- package/src/core/handlers/insert_handler.js +1 -1
- package/src/core/handlers/update_handler.js +1 -1
- package/src/core/models/base-model.js +1 -1
- package/src/core/utils/cache-manager.js +1 -1
- package/src/core/utils/component-engine.js +1 -1
- package/src/core/utils/context-builder.js +1 -1
- package/src/core/utils/datetime-formatter.js +1 -1
- package/src/core/utils/datetime-parser.js +1 -1
- package/src/core/utils/db.js +1 -1
- package/src/core/utils/logger.js +1 -1
- package/src/core/utils/payload-loader.js +1 -1
- package/src/core/utils/security-checks.js +1 -1
- package/src/middleware/body-options.js +1 -1
- package/src/middleware/cors.js +1 -1
- package/src/middleware/idempotency.js +1 -1
- package/src/middleware/rate-limiter.js +1 -1
- package/src/middleware/request-logger.js +1 -1
- package/src/middleware/security-headers.js +1 -1
- package/src/models/base-model-mysql.js +1 -1
- package/src/models/base-model-oracle.js +1 -1
- package/src/models/base-model-sqlite.js +1 -1
- package/src/models/base-model.js +1 -1
- package/src/pro/caching/redis-client.js +1 -1
- package/src/pro/caching/redis-helper.js +1 -1
- package/src/pro/consumers/baseConsumer.js +1 -1
- package/src/pro/consumers/declarativeMapper.js +1 -1
- package/src/pro/consumers/handlers/apiHandler.js +1 -1
- package/src/pro/consumers/handlers/consoleHandler.js +1 -1
- package/src/pro/consumers/handlers/databaseHandler.js +1 -1
- package/src/pro/consumers/handlers/index.js +1 -1
- package/src/pro/consumers/handlers/kafkaHandler.js +1 -1
- package/src/pro/consumers/index.js +1 -1
- package/src/pro/consumers/messageTransformer.js +1 -1
- package/src/pro/consumers/validator.js +1 -1
- package/src/pro/database/base-model-mysql.js +1 -1
- package/src/pro/database/base-model-oracle.js +1 -1
- package/src/pro/database/base-model-sqlite.js +1 -1
- package/src/pro/database/db-mysql.js +1 -1
- package/src/pro/database/db-oracle.js +1 -1
- package/src/pro/database/db-sqlite.js +1 -1
- package/src/pro/excel/excel-generator.js +1 -1
- package/src/pro/excel/excel-parser.js +1 -1
- package/src/pro/excel/export-service.js +1 -1
- package/src/pro/excel/export_handler.js +1 -1
- package/src/pro/excel/import-service.js +1 -1
- package/src/pro/excel/import-validator.js +1 -1
- package/src/pro/excel/import_handler.js +1 -1
- package/src/pro/excel/upsert-builder.js +1 -1
- package/src/pro/idgen/idgen-routes.js +1 -1
- package/src/pro/integrations/lookup-resolver.js +1 -1
- package/src/pro/integrations/upload-handler-v2.js +1 -1
- package/src/pro/integrations/upload-handler.js +1 -1
- package/src/pro/integrations/webhook.js +1 -1
- package/src/pro/locking/lock-routes.js +1 -1
- package/src/pro/locking/resource-lock-manager.js +1 -1
- package/src/pro/messaging/kafkaConsumerService.js +1 -1
- package/src/pro/messaging/kafkaService.js +1 -1
- package/src/pro/messaging/messagehubService.js +1 -1
- package/src/pro/messaging/rabbitmqService.js +1 -1
- package/src/pro/scheduler/job-manager.js +1 -1
- package/src/pro/scheduler/job-routes.js +1 -1
- package/src/pro/scheduler/job-validator.js +1 -1
- package/src/pro/storage/base-storage-provider.js +1 -1
- package/src/pro/storage/file-metadata-helper.js +1 -1
- package/src/pro/storage/index.js +1 -1
- package/src/pro/storage/local-storage-provider.js +1 -1
- package/src/pro/storage/s3-storage-provider.js +1 -1
- package/src/pro/storage/upload-cleanup-job.js +1 -1
- package/src/pro/storage/upload-cleanup-scheduler.js +1 -1
- package/src/pro/storage/upload-pending-tracker.js +1 -1
- package/src/pro/websocket/broadcast-helper.js +1 -1
- package/src/pro/websocket/index.js +1 -1
- package/src/pro/websocket/livesync-server.js +1 -1
- package/src/pro/websocket/ws-broadcaster.js +1 -1
- package/src/services/export-service.js +1 -1
- package/src/services/import-service.js +1 -1
- package/src/services/kafkaConsumerService.js +1 -1
- package/src/services/kafkaService.js +1 -1
- package/src/services/messagehubService.js +1 -1
- package/src/services/rabbitmqService.js +1 -1
- package/src/utils/cache-invalidation-registry.js +1 -1
- package/src/utils/cache-manager.js +1 -1
- package/src/utils/component-engine.js +1 -1
- package/src/utils/config-extractor.js +1 -1
- package/src/utils/consumerLogger.js +1 -1
- package/src/utils/context-builder.js +1 -1
- package/src/utils/dashboard-helpers.js +1 -1
- package/src/utils/dateHelper.js +1 -1
- package/src/utils/datetime-formatter.js +1 -1
- package/src/utils/datetime-parser.js +1 -1
- package/src/utils/db-bootstrap.js +1 -1
- package/src/utils/db-mysql.js +1 -1
- package/src/utils/db-oracle.js +1 -1
- package/src/utils/db-sqlite.js +1 -1
- package/src/utils/db.js +1 -1
- package/src/utils/demo-generator.js +1 -1
- package/src/utils/excel-generator.js +1 -1
- package/src/utils/excel-parser.js +1 -1
- package/src/utils/file-watcher.js +1 -1
- package/src/utils/id-generator.js +1 -1
- package/src/utils/idempotency-manager.js +1 -1
- package/src/utils/import-validator.js +1 -1
- package/src/utils/license-client.js +1 -1
- package/src/utils/lock-manager.js +1 -1
- package/src/utils/logger.js +1 -1
- package/src/utils/lookup-resolver.js +1 -1
- package/src/utils/payload-loader.js +1 -1
- package/src/utils/processor-response.js +1 -1
- package/src/utils/rabbitmq.js +1 -1
- package/src/utils/redis-client.js +1 -1
- package/src/utils/redis-helper.js +1 -1
- package/src/utils/request-scope.js +1 -1
- package/src/utils/security-checks.js +1 -1
- package/src/utils/service-resolver.js +1 -1
- package/src/utils/shutdown-coordinator.js +1 -1
- package/src/utils/soft-delete-dashboard-guard.js +1 -1
- package/src/utils/sql-table-extractor.js +1 -1
- package/src/utils/trusted-keys.js +1 -1
- package/src/utils/upload-handler.js +1 -1
- package/src/utils/upsert-builder.js +1 -1
- package/src/utils/workflow-hook-executor.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x1a5a44=a0_0x1e71;function a0_0x1e71(_0x749256,_0x3cb7d3){_0x749256=_0x749256-0x6b;const _0x14777a=a0_0x1477();let _0x1e71fb=_0x14777a[_0x749256];if(a0_0x1e71['oMCOMh']===undefined){var _0x319b7b=function(_0x2924dc){const _0x4167de='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2e3785='',_0x23b238='';for(let _0x4cf041=0x0,_0x1458b6,_0x284c87,_0xdb23bd=0x0;_0x284c87=_0x2924dc['charAt'](_0xdb23bd++);~_0x284c87&&(_0x1458b6=_0x4cf041%0x4?_0x1458b6*0x40+_0x284c87:_0x284c87,_0x4cf041++%0x4)?_0x2e3785+=String['fromCharCode'](0xff&_0x1458b6>>(-0x2*_0x4cf041&0x6)):0x0){_0x284c87=_0x4167de['indexOf'](_0x284c87);}for(let _0x2aaf01=0x0,_0x176e42=_0x2e3785['length'];_0x2aaf01<_0x176e42;_0x2aaf01++){_0x23b238+='%'+('00'+_0x2e3785['charCodeAt'](_0x2aaf01)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x23b238);};a0_0x1e71['mbHbVU']=_0x319b7b,a0_0x1e71['uydjRG']={},a0_0x1e71['oMCOMh']=!![];}const _0x440727=_0x14777a[0x0],_0x34872b=_0x749256+_0x440727,_0x268d07=a0_0x1e71['uydjRG'][_0x34872b];return!_0x268d07?(_0x1e71fb=a0_0x1e71['mbHbVU'](_0x1e71fb),a0_0x1e71['uydjRG'][_0x34872b]=_0x1e71fb):_0x1e71fb=_0x268d07,_0x1e71fb;}(function(_0x147a23,_0x312833){const _0x3b0ebf=a0_0x1e71,_0x173c4d=_0x147a23();while(!![]){try{const _0x21f1dd=parseInt(_0x3b0ebf(0x89))/0x1*(-parseInt(_0x3b0ebf(0xa2))/0x2)+-parseInt(_0x3b0ebf(0x6b))/0x3*(-parseInt(_0x3b0ebf(0xaa))/0x4)+parseInt(_0x3b0ebf(0xb6))/0x5*(-parseInt(_0x3b0ebf(0x7e))/0x6)+parseInt(_0x3b0ebf(0x8a))/0x7+-parseInt(_0x3b0ebf(0xa5))/0x8+parseInt(_0x3b0ebf(0x83))/0x9+-parseInt(_0x3b0ebf(0xb2))/0xa*(-parseInt(_0x3b0ebf(0x6f))/0xb);if(_0x21f1dd===_0x312833)break;else _0x173c4d['push'](_0x173c4d['shift']());}catch(_0x5679fc){_0x173c4d['push'](_0x173c4d['shift']());}}}(a0_0x1477,0x881fd));function a0_0x1477(){const _0x39bb6b=['mtm2mNnjCufswa','zxjYB3i','yLDKzgS','mty0otyZmKjRyM5Wvq','CMv0CNK','C2v0zxG','zgvMyxvSDfruta','lI9SB2DNzxi','ntKZnJu2CuDKDLf5','zxHWB3j0CW','DufMwLK','EgnjCuq','v1jjveuGBg9JAYbLCNjVCG','zw52','EwXtsgi','z2v0q2XPzw50','mtbMz1rzCfm','C3rYyxrLz3K','x2LUAxrPywXPEMvK','C2XLzxa','ntqZntu3nuH1Auv0Ca','te9ds19esvnuuKLcvvrfrf9tvfjbvevhwq','D3jPDgu','q0HuA0K','x3bYzwzPEa','Cg93','C2v0','z2v0','Aw5JCG','x3n0CMf0zwD5','Bg9JA19JB25MAwDFAw5PDa','CMv0CNLdB3vUDa','CM5ZCfu','nhWWFdn8mNWXFdH8n3W2Fdu','CMvHza','Bg9JA19LEhrLBMrLza','rengBxC','D29YA2vYswq','BKHoBee','ow5wEffODq','zxH0zw5Ktg9JAW','Aw5JBhvKzxm','yxPnyKy','odCWmdaXmeTdtfb0vG','uKvbrcbSB2nRigfJCxvPCMuGDgLTzw91Da','ywnXDwLYzvDYAxrLtg9JAW','z2vUzxjHDgvmB2nRvMfSDwu','x2vUC3vYzuLUAxrPywXPEMvK','D29YA2vYlq','CMvQzwn0','x2rLzMf1BhruveW','Bg9JA19YzwXLyxnLx2vYCM9Y','yNvPBgrmB2nRs2v5','u25Xr0i','DxvPza','CMvSzwfZzuXVy2S','wgjyCuS','CMv0CNLezwXHEq','nMLqEM9psG','uKvbrcbSB2nRigvYCM9Y','x2vUywjSzwq','zw5HyMXLza','r0POzNe','mtG3mJm5nMziu1HwCW','x3jLDhj5rgvSyxK','BwvZC2fNzq','zxvdB0i','v1jjveuGBg9JAYbHy3f1AxjLzcaOCMv0CNKGBw9KzsK','x3DVCMTLCKLK','mZm3rgDMvwPP','ndq1mZi5nwfUC09RAq','zgvS','zxHWAxjL','Bg9JA19YzwXLyxnLx25VDf9VD25LCG','rgzjuvu','Eg9lrxu','D3jPDgvFBg9JA19Hy3f1AxjLza','v1jjveuGBg9JAYbHy3f1AxjLzcaOCMvQzwn0ig1VzguP','qwXiq2S','lI9YzwrPCY1JBgLLBNq','D2fYBG','D3jPDgvFBg9JA190Aw1LB3v0','oNjLywq6','wvzTufG','tg9JAYbYzwXLyxnLigvYCM9Y','tg9JAYbLEhrLBMqGzxjYB3i','x2LUAxrdB25MAwC','ChjLzML4','B2HyueK','zgvIDwC','x3jLDhj5q291BNq','ELf2zgC','CMvHzf9SB2nRx2fJCxvPCMvK','ywXS'];a0_0x1477=function(){return _0x39bb6b;};return a0_0x1477();}const redisClient=require(a0_0x1a5a44(0x93)),{logger}=require(a0_0x1a5a44(0xa9)),{v4:uuidv4}=require(a0_0x1a5a44(0x7a));class LockManager{constructor(){const _0x539bc=a0_0x1a5a44,_0x4770c7={'uAfZY':'3|5|7|1|0|6|2|4'},_0x520639=_0x4770c7[_0x539bc(0xac)]['split']('|');let _0x4ef4ec=0x0;while(!![]){switch(_0x520639[_0x4ef4ec++]){case'0':this['_retryDelay']=null;continue;case'1':this['_retryCount']=null;continue;case'2':this[_0x539bc(0x88)]=null;continue;case'3':this[_0x539bc(0xba)]=null;continue;case'4':this['_initialized']=![];continue;case'5':this[_0x539bc(0x80)]=null;continue;case'6':this[_0x539bc(0xbf)]=null;continue;case'7':this[_0x539bc(0x76)]=null;continue;}break;}}['_initConfig'](){const _0x5de2f6=a0_0x1a5a44,_0x49c8cc={'azMbF':function(_0x277a16,_0x5db794){return _0x277a16===_0x5db794;},'rnspU':function(_0x4ba824,_0x433cba,_0x5823bb){return _0x4ba824(_0x433cba,_0x5823bb);},'euCoB':'rf:lock:','DCFmw':_0x5de2f6(0xc0),'jxsAi':_0x5de2f6(0xa6)},_0x503d8f=_0x5de2f6(0xc3)['split']('|');let _0x312a29=0x0;while(!![]){switch(_0x503d8f[_0x312a29++]){case'0':this['_enabled']=_0x49c8cc[_0x5de2f6(0x6e)](process[_0x5de2f6(0xaf)]['LOCK_DISTRIBUTED_ENABLED'],'true');continue;case'1':this['_retryDelay']=parseInt(process['env']['LOCK_DISTRIBUTED_RETRY_DELAY'],0xa)||0x64;continue;case'2':this[_0x5de2f6(0x9e)]=_0x49c8cc[_0x5de2f6(0xc2)](parseInt,process['env']['LOCK_DISTRIBUTED_RETRY'],0xa)||0x3;continue;case'3':this['_defaultTTL']=parseInt(process['env']['LOCK_DISTRIBUTED_TTL'],0xa)||0xa;continue;case'4':this[_0x5de2f6(0xba)]=_0x49c8cc[_0x5de2f6(0x86)];continue;case'5':logger['info']({'event':_0x49c8cc[_0x5de2f6(0xc6)],'enabled':this['_enabled'],'strategy':this[_0x5de2f6(0xbf)],'ttl':this['_defaultTTL'],'retryCount':this['_retryCount'],'retryDelay':this[_0x5de2f6(0x84)],'workerId':this['_workerId']},'Lock\x20configuration\x20initialized\x20-\x20enabled:\x20'+this['_enabled']+',\x20strategy:\x20'+this['_strategy']);continue;case'6':this['_initialized']=!![];continue;case'7':this['_workerId']=_0x5de2f6(0x74)+process['pid'];continue;case'8':this['_strategy']=process['env'][_0x5de2f6(0xb7)]||_0x49c8cc['jxsAi'];continue;}break;}}['_ensureInitialized'](){const _0x577d74=a0_0x1a5a44;!this[_0x577d74(0xb4)]&&this[_0x577d74(0x9a)]();}get[a0_0x1a5a44(0x9b)](){return this['_ensureInitialized'](),this['_prefix'];}get['enabled'](){return this['_ensureInitialized'](),this['_enabled'];}get['defaultTTL'](){const _0x266438=a0_0x1a5a44;return this['_ensureInitialized'](),this[_0x266438(0x76)];}get[a0_0x1a5a44(0xc1)](){const _0x1bd653=a0_0x1a5a44;return this[_0x1bd653(0x73)](),this[_0x1bd653(0x9e)];}get[a0_0x1a5a44(0x7d)](){const _0x1159b7=a0_0x1a5a44;return this['_ensureInitialized'](),this[_0x1159b7(0x84)];}get[a0_0x1a5a44(0xb3)](){return this['_ensureInitialized'](),this['_strategy'];}get[a0_0x1a5a44(0xc7)](){const _0x2e1140=a0_0x1a5a44;return this['_ensureInitialized'](),this[_0x2e1140(0x88)];}[a0_0x1a5a44(0x78)](_0x4f684e){const _0x22bdd8=a0_0x1a5a44,{module:_0x1f58b0,endpoint:_0x4afbf3,lockType:_0x351136,recordId:_0x4e7853}=_0x4f684e;if(_0x4e7853)return''+this['prefix']+_0x1f58b0+':'+_0x4afbf3+':'+_0x4e7853+':'+_0x351136;return''+this[_0x22bdd8(0x9b)]+_0x1f58b0+':'+_0x4afbf3+':'+_0x351136;}[a0_0x1a5a44(0x72)](){const _0x30d04d=a0_0x1a5a44,_0x2b661b={'RZetU':function(_0x1e935e){return _0x1e935e();}};return this[_0x30d04d(0xc7)]+':'+_0x2b661b['RZetU'](uuidv4)+':'+Date['now']();}async['acquireReadLock'](_0x2a2635){const _0x5a19df=a0_0x1a5a44,_0x1e70fc={'ylSHb':_0x5a19df(0xb8),'GJhfq':function(_0x24e8c8,_0x3c9fce){return _0x24e8c8<_0x3c9fce;},'CHTkI':_0x5a19df(0xa0),'AlHCk':'READ\x20lock\x20acquired','XMsrw':'read_lock_waiting','dEKXg':'Waiting\x20for\x20WRITE\x20lock\x20to\x20release','EBtqS':function(_0x278502,_0x35294e){return _0x278502*_0x35294e;},'oTvEj':'read_lock_timeout','rKXZV':_0x5a19df(0x7f)};if(!this['enabled'])return{'success':!![],'lockValue':null,'lockKey':null};const _0x2db6ae=this['buildLockKey']({..._0x2a2635,'lockType':_0x1e70fc[_0x5a19df(0xb0)]}),_0x377f63=this[_0x5a19df(0x78)]({..._0x2a2635,'lockType':_0x5a19df(0xc4)}),_0x29c47b=this['generateLockValue']();try{const _0x196e1c=redisClient['getClient']();for(let _0x266435=0x0;_0x1e70fc[_0x5a19df(0x82)](_0x266435,this[_0x5a19df(0xc1)]);_0x266435++){const _0x3bd6f0=await _0x196e1c['get'](_0x2db6ae);if(!_0x3bd6f0){await _0x196e1c[_0x5a19df(0xbe)](_0x377f63),await _0x196e1c[_0x5a19df(0x8c)](_0x377f63,this['defaultTTL']);const _0x450607=_0x377f63+':'+_0x29c47b;return await _0x196e1c[_0x5a19df(0xa7)](_0x450607,this[_0x5a19df(0xa8)],_0x29c47b),logger[_0x5a19df(0x9d)]({'event':_0x1e70fc[_0x5a19df(0xb9)],'key':_0x377f63,'value':_0x29c47b},_0x1e70fc[_0x5a19df(0x92)]),{'success':!![],'lockValue':_0x29c47b,'lockKey':_0x450607};}logger['debug']({'event':_0x1e70fc['XMsrw'],'writeKey':_0x2db6ae,'attempt':_0x266435},_0x1e70fc['dEKXg']),await this['sleep'](_0x1e70fc['EBtqS'](this[_0x5a19df(0x7d)],Math[_0x5a19df(0xbb)](0x2,_0x266435)));}return logger['warn']({'event':_0x1e70fc['oTvEj'],'key':_0x377f63},_0x5a19df(0x70)),{'success':![],'lockValue':null,'lockKey':null};}catch(_0x23e666){return logger['error']({'event':'read_lock_error','error':_0x23e666[_0x5a19df(0x85)]},_0x1e70fc['rKXZV']),{'success':![],'lockValue':null,'lockKey':null};}}async[a0_0x1a5a44(0x71)](_0x11daf1){const _0x2b4a4c=a0_0x1a5a44,_0x3c3364={'FnUFL':_0x2b4a4c(0xb8),'nHNlA':_0x2b4a4c(0x75),'GWsqd':'write_lock_rejected','bWddk':'WRITE\x20lock\x20rejected\x20-\x20record\x20busy','SnqGB':function(_0x2d3d65,_0x2d9e0a){return _0x2d3d65<_0x2d9e0a;},'hSTVp':function(_0xcbf5b,_0x2b3199){return _0xcbf5b===_0x2b3199;},'YVmPX':function(_0x20f98e,_0x2b4f3b){return _0x20f98e(_0x2b4f3b);},'goebe':_0x2b4a4c(0xa6),'zQvdg':'Waiting\x20for\x20locks\x20to\x20release','cYnsJ':function(_0x558e65,_0x109469){return _0x558e65*_0x109469;},'ohXPI':_0x2b4a4c(0x95),'YpZxy':_0x2b4a4c(0xae)};if(!this['enabled'])return{'success':!![],'lockValue':null,'lockKey':null};const _0x387a95=this[_0x2b4a4c(0x78)]({..._0x11daf1,'lockType':_0x3c3364['FnUFL']}),_0x35de5f=this['buildLockKey']({..._0x11daf1,'lockType':'read'}),_0x13f581=this['generateLockValue']();try{const _0x599e45=redisClient['getClient']();if(this[_0x2b4a4c(0xb3)]===_0x3c3364['nHNlA']){const _0x10f9f3=await _0x599e45[_0x2b4a4c(0xbc)](_0x387a95,_0x13f581,'EX',this[_0x2b4a4c(0xa8)],'NX');if(_0x10f9f3==='OK')return logger[_0x2b4a4c(0x9d)]({'event':'write_lock_acquired','key':_0x387a95,'value':_0x13f581,'strategy':_0x3c3364[_0x2b4a4c(0xc8)]},_0x2b4a4c(0x91)),{'success':!![],'lockValue':_0x13f581,'lockKey':_0x387a95};return logger['debug']({'event':_0x3c3364['GWsqd'],'key':_0x387a95},_0x3c3364[_0x2b4a4c(0xa4)]),{'success':![],'lockValue':null,'lockKey':null};}for(let _0x5255e9=0x0;_0x3c3364[_0x2b4a4c(0x79)](_0x5255e9,this['retryCount']);_0x5255e9++){const [_0x59df3d,_0x102636]=await Promise[_0x2b4a4c(0xa1)]([_0x599e45['get'](_0x35de5f),_0x599e45[_0x2b4a4c(0xbd)](_0x387a95)]);if(!_0x102636&&(!_0x59df3d||_0x3c3364['hSTVp'](_0x3c3364[_0x2b4a4c(0x97)](parseInt,_0x59df3d),0x0))){const _0x27420c=await _0x599e45[_0x2b4a4c(0xbc)](_0x387a95,_0x13f581,'EX',this['defaultTTL'],'NX');if(_0x27420c==='OK')return logger[_0x2b4a4c(0x9d)]({'event':_0x2b4a4c(0x90),'key':_0x387a95,'value':_0x13f581,'strategy':_0x3c3364['goebe']},_0x2b4a4c(0x87)),{'success':!![],'lockValue':_0x13f581,'lockKey':_0x387a95};}logger['debug']({'event':'write_lock_waiting','writeKey':_0x387a95,'readCount':_0x59df3d,'attempt':_0x5255e9},_0x3c3364[_0x2b4a4c(0x9f)]),await this[_0x2b4a4c(0xb5)](_0x3c3364['cYnsJ'](this['retryDelay'],Math[_0x2b4a4c(0xbb)](0x2,_0x5255e9)));}return logger[_0x2b4a4c(0x94)]({'event':_0x3c3364[_0x2b4a4c(0x9c)],'key':_0x387a95},'WRITE\x20lock\x20acquire\x20timeout'),{'success':![],'lockValue':null,'lockKey':null};}catch(_0x4344b4){return logger[_0x2b4a4c(0xa3)]({'event':'write_lock_error','error':_0x4344b4['message']},_0x3c3364['YpZxy']),{'success':![],'lockValue':null,'lockKey':null};}}async[a0_0x1a5a44(0x7b)](_0x56505d,_0x5bf9d2){const _0x2819fb=a0_0x1a5a44,_0x29f2be={'xcIqD':function(_0x4c36e5,_0x1dcbfa){return _0x4c36e5>_0x1dcbfa;},'DfIQU':_0x2819fb(0x8d),'XbXqK':_0x2819fb(0x77),'Buoiu':_0x2819fb(0x98)};if(!this[_0x2819fb(0x81)]||!_0x56505d)return!![];try{const _0x2d1dc4=redisClient[_0x2819fb(0xb1)]();if(_0x56505d[_0x2819fb(0x6d)](_0x2819fb(0x96))){await _0x2d1dc4[_0x2819fb(0x8b)](_0x56505d);const _0x43e827=_0x56505d['substring'](0x0,_0x56505d['lastIndexOf'](':')),_0x48191a=await _0x2d1dc4[_0x2819fb(0xbd)](_0x43e827);return _0x48191a&&_0x29f2be[_0x2819fb(0xad)](parseInt(_0x48191a),0x0)&&await _0x2d1dc4['decr'](_0x43e827),logger[_0x2819fb(0x9d)]({'event':'read_lock_released','key':_0x56505d},'READ\x20lock\x20released'),!![];}const _0x2b5a8f='\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20redis.call(\x22get\x22,\x20KEYS[1])\x20==\x20ARGV[1]\x20then\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20redis.call(\x22del\x22,\x20KEYS[1])\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x200\x0a\x20\x20\x20\x20\x20\x20\x20\x20end\x0a\x20\x20\x20\x20\x20\x20',_0x5cd7a0=await _0x2d1dc4['eval'](_0x2b5a8f,0x1,_0x56505d,_0x5bf9d2);if(_0x5cd7a0===0x1)return logger['debug']({'event':'write_lock_released','key':_0x56505d},'WRITE\x20lock\x20released'),!![];return logger['warn']({'event':_0x29f2be[_0x2819fb(0x8e)],'key':_0x56505d},'Cannot\x20release\x20lock\x20-\x20not\x20owner'),![];}catch(_0x48c9d0){return logger[_0x2819fb(0xa3)]({'event':_0x29f2be[_0x2819fb(0x7c)],'key':_0x56505d,'error':_0x48c9d0[_0x2819fb(0x85)]},_0x29f2be['Buoiu']),![];}}async[a0_0x1a5a44(0x6c)](_0x469c5d,_0xf77d9d,_0x2a636e=null){const _0x14b5d5=a0_0x1a5a44;if(!this[_0x14b5d5(0x81)]||!_0x469c5d)return!![];try{const _0x57bea2=redisClient[_0x14b5d5(0xb1)](),_0x489d77='\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20redis.call(\x22get\x22,\x20KEYS[1])\x20==\x20ARGV[1]\x20then\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20redis.call(\x22expire\x22,\x20KEYS[1],\x20ARGV[2])\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x200\x0a\x20\x20\x20\x20\x20\x20\x20\x20end\x0a\x20\x20\x20\x20\x20\x20',_0x13133b=await _0x57bea2['eval'](_0x489d77,0x1,_0x469c5d,_0xf77d9d,_0x2a636e||this[_0x14b5d5(0xa8)]);if(_0x13133b===0x1)return logger['debug']({'event':_0x14b5d5(0xc5),'key':_0x469c5d,'ttl':_0x2a636e||this[_0x14b5d5(0xa8)]},'Lock\x20TTL\x20extended'),!![];return![];}catch(_0x9fb17){return logger['error']({'event':'lock_extend_error','key':_0x469c5d,'error':_0x9fb17[_0x14b5d5(0x85)]},_0x14b5d5(0x99)),![];}}['isEnabled'](){return this['enabled'];}[a0_0x1a5a44(0xb5)](_0x31b110){return new Promise(_0x1f8e71=>setTimeout(_0x1f8e71,_0x31b110));}async['getLockInfo'](_0x579fd9){const _0x2afdff=a0_0x1a5a44,_0x10d14c={'gzrqr':_0x2afdff(0xc4),'xoKEu':function(_0xe7b308,_0x24f165){return _0xe7b308(_0x24f165);}};if(!this[_0x2afdff(0x81)])return{'enabled':![]};try{const _0x3b4a34=redisClient['getClient'](),_0x5bb017=this[_0x2afdff(0x78)]({..._0x579fd9,'lockType':'write'}),_0xdf6000=this[_0x2afdff(0x78)]({..._0x579fd9,'lockType':_0x10d14c['gzrqr']}),[_0x371d92,_0x5a5047]=await Promise['all']([_0x3b4a34['get'](_0x5bb017),_0x3b4a34[_0x2afdff(0xbd)](_0xdf6000)]);return{'enabled':!![],'writeLock':_0x371d92||null,'readCount':_0x10d14c[_0x2afdff(0x8f)](parseInt,_0x5a5047)||0x0,'writeKey':_0x5bb017,'readKey':_0xdf6000};}catch(_0x3eb233){return{'enabled':!![],'error':_0x3eb233['message']};}}}module[a0_0x1a5a44(0xab)]=new LockManager();
|
|
1
|
+
const a0_0x154ba4=a0_0x40f5;(function(_0x2148f5,_0x6bf46b){const _0x999a8e=a0_0x40f5,_0x4f11df=_0x2148f5();while(!![]){try{const _0x592936=-parseInt(_0x999a8e(0xba))/0x1+-parseInt(_0x999a8e(0xda))/0x2+parseInt(_0x999a8e(0x9c))/0x3*(parseInt(_0x999a8e(0xdd))/0x4)+parseInt(_0x999a8e(0xca))/0x5*(-parseInt(_0x999a8e(0x8c))/0x6)+-parseInt(_0x999a8e(0xa1))/0x7*(-parseInt(_0x999a8e(0xb0))/0x8)+-parseInt(_0x999a8e(0xa5))/0x9+parseInt(_0x999a8e(0xd8))/0xa*(parseInt(_0x999a8e(0xbf))/0xb);if(_0x592936===_0x6bf46b)break;else _0x4f11df['push'](_0x4f11df['shift']());}catch(_0x1173dd){_0x4f11df['push'](_0x4f11df['shift']());}}}(a0_0x5957,0x52b8a));function a0_0x40f5(_0x139851,_0x217dc4){_0x139851=_0x139851-0x8b;const _0x595708=a0_0x5957();let _0x40f585=_0x595708[_0x139851];if(a0_0x40f5['SyfaUv']===undefined){var _0x3f4ca8=function(_0x75f381){const _0x32da69='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1fb5e9='',_0x5b9811='';for(let _0x69dca1=0x0,_0x3e277b,_0x55c9e6,_0x38fc89=0x0;_0x55c9e6=_0x75f381['charAt'](_0x38fc89++);~_0x55c9e6&&(_0x3e277b=_0x69dca1%0x4?_0x3e277b*0x40+_0x55c9e6:_0x55c9e6,_0x69dca1++%0x4)?_0x1fb5e9+=String['fromCharCode'](0xff&_0x3e277b>>(-0x2*_0x69dca1&0x6)):0x0){_0x55c9e6=_0x32da69['indexOf'](_0x55c9e6);}for(let _0x9d1013=0x0,_0x427db5=_0x1fb5e9['length'];_0x9d1013<_0x427db5;_0x9d1013++){_0x5b9811+='%'+('00'+_0x1fb5e9['charCodeAt'](_0x9d1013)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5b9811);};a0_0x40f5['DORPwO']=_0x3f4ca8,a0_0x40f5['BIebKB']={},a0_0x40f5['SyfaUv']=!![];}const _0x4c83d4=_0x595708[0x0],_0x12558b=_0x139851+_0x4c83d4,_0x13ccc2=a0_0x40f5['BIebKB'][_0x12558b];return!_0x13ccc2?(_0x40f585=a0_0x40f5['DORPwO'](_0x40f585),a0_0x40f5['BIebKB'][_0x12558b]=_0x40f585):_0x40f585=_0x13ccc2,_0x40f585;}const redisClient=require('./redis-client'),{logger}=require('./logger'),{v4:uuidv4}=require('uuid');function a0_0x5957(){const _0x4509e9=['Dhj1zq','D3jPDgvFBg9JA19LCNjVCG','zgvIDwC','mJaXzNLRuxrL','AxnfBMfIBgvK','C2v0','x2LUAxrPywXPEMvK','C2XLzxa','mte3ndy0mLfoquPrqG','x2vUywjSzwq','z2v0tg9JA0LUzM8','v2fPDgLUzYbMB3iGv1jjveuGBg9JAYb0BYbYzwXLyxnL','nJa3mJe2nvr2wLniwa','q0P6AxO','t1fxBeK','BM93','tg9JAYbLEhrLBMqGzxjYB3i','CMvQzwn0','ALzjww0','nNWXFdn8nxW0Fdb8mNW3','D3jPDgvFBg9JA19Hy3f1AxjLza','x3jLDhj5rgvSyxK','DgrOuwu','oe9pCxPZqq','zxjYB3i','Cg93','x3DVCMTLCKLK','suL2rgC','D3jPDgu','tg9JAYbYzwXLyxnLigvYCM9Y','v1jjveuGBg9JAYbHy3f1AxjLzcaOCMv0CNKGBw9KzsK','tNjyuhy','Bg9JA19LEhrLBMrLza','ndC4mduYtufgDK5q','CMvHzf9SB2nRx3DHAxrPBMC','CMvSzwfZzuXVy2S','C3vIC3rYAw5N','zw5HyMXLza','mZaYmtDxzLr5C3G','CMy6Bg9JAZO','D29YA2vYswq','txjiA1q','BgfZDeLUzgv4t2y','CgLK','x2LUAxrdB25MAwC','zw52','EffeCLe','v1jjveuGBg9JAYbHy3f1AxjLzcaOCMvQzwn0ig1VzguP','v1jjveuGBg9JAYbYzwXLyxnLza','mta1mtmZmePSD1Pgtq','x2vUC3vYzuLUAxrPywXPEMvK','qvz4r0e','DfnoCgi','CMv0CNLdB3vUDa','uLnQANq','tg9JAYbJB25MAwD1CMf0Aw9UigLUAxrPywXPEMvKic0Gzw5HyMXLzdOG','ywnXDwLYzvDYAxrLtg9JAW','x3bYzwzPEa','z2v0','CMv0CNLezwXHEq','Aw5JBhvKzxm','AvrssNq','yNvPBgrmB2nRs2v5','nti3meXRru12vq','Bg9JA19JB25MAwDFAw5PDa','mJm5odC4qvLswMP5','Bg9JA19YzwXLyxnLx2vYCM9Y','DfLnsvC','mtiZmtzZwwX1q1i','DwLtu1C','CMv0CNK','D3jPDgvFBg9JA19YzwPLy3rLza','t1rZuwS','Bg9JA19LEhrLBMrFzxjYB3i','zxzHBa','x2rLzMf1BhruveW','zgvMyxvSDfruta','C2v0zxG','z2v0q2XPzw50','Aw5JCG','z2vUzxjHDgvmB2nRvMfSDwu','D2fYBG','v1jjveuGBg9JAYbHy3f1AxjLihrPBwvVDxq','nKXZCw1VBq','CMvHzf9SB2nRx3jLBgvHC2vK','C3rYyxrLz3K','DfDyv1K','ywXS','x3jLDhj5q291BNq','zwTlDuK','x3n0CMf0zwD5','te9ds19esvnuuKLcvvrfrf9srvrswv9eruXbwq','u2jxrKW','rLHnCgm','CMvHza','BwvZC2fNzq'];a0_0x5957=function(){return _0x4509e9;};return a0_0x5957();}class LockManager{constructor(){const _0x15199a=a0_0x40f5,_0x2022e4={'MrHkT':_0x15199a(0xac)},_0x404a77=_0x2022e4[_0x15199a(0xc2)]['split']('|');let _0x47ee12=0x0;while(!![]){switch(_0x404a77[_0x47ee12++]){case'0':this[_0x15199a(0x93)]=null;continue;case'1':this[_0x15199a(0xa2)]=null;continue;case'2':this['_workerId']=null;continue;case'3':this[_0x15199a(0xe4)]=null;continue;case'4':this[_0x15199a(0xae)]=null;continue;case'5':this[_0x15199a(0x91)]=null;continue;case'6':this[_0x15199a(0xd2)]=null;continue;case'7':this['_initialized']=![];continue;}break;}}[a0_0x154ba4(0xc5)](){const _0x34b7cf=a0_0x154ba4,_0x862641={'NeIBF':_0x34b7cf(0xc0),'iTRJt':function(_0x17790c,_0x28aa99){return _0x17790c===_0x28aa99;},'xQDrQ':_0x34b7cf(0x99),'fsYua':function(_0x17e82f,_0x19e436,_0x5e5e33){return _0x17e82f(_0x19e436,_0x5e5e33);},'AVxGA':_0x34b7cf(0xdf)};this['_prefix']=_0x862641['NeIBF'],this['_enabled']=_0x862641[_0x34b7cf(0xd6)](process['env']['LOCK_DISTRIBUTED_ENABLED'],_0x862641[_0x34b7cf(0xc7)]),this['_defaultTTL']=parseInt(process['env']['LOCK_DISTRIBUTED_TTL'],0xa)||0xa,this[_0x34b7cf(0x91)]=parseInt(process[_0x34b7cf(0xc6)]['LOCK_DISTRIBUTED_RETRY'],0xa)||0x3,this['_retryDelay']=_0x862641['fsYua'](parseInt,process[_0x34b7cf(0xc6)][_0x34b7cf(0x94)],0xa)||0x64,this['_strategy']=process[_0x34b7cf(0xc6)]['LOCK_DISTRIBUTED_STRATEGY']||_0x862641[_0x34b7cf(0xcc)],this['_workerId']='worker-'+process[_0x34b7cf(0xc4)],this[_0x34b7cf(0x9f)]=!![],logger['info']({'event':_0x34b7cf(0xd9),'enabled':this[_0x34b7cf(0xa2)],'strategy':this['_strategy'],'ttl':this['_defaultTTL'],'retryCount':this['_retryCount'],'retryDelay':this['_retryDelay'],'workerId':this[_0x34b7cf(0xb3)]},_0x34b7cf(0xd0)+this['_enabled']+',\x20strategy:\x20'+this['_strategy']);}[a0_0x154ba4(0xcb)](){!this['_initialized']&&this['_initConfig']();}get['prefix'](){const _0xe238ee=a0_0x154ba4;return this['_ensureInitialized'](),this[_0xe238ee(0xd2)];}get['enabled'](){const _0x4a9994=a0_0x154ba4;return this[_0x4a9994(0xcb)](),this[_0x4a9994(0xa2)];}get[a0_0x154ba4(0xe5)](){const _0x223a4c=a0_0x154ba4;return this[_0x223a4c(0xcb)](),this['_defaultTTL'];}get[a0_0x154ba4(0xce)](){const _0x3a8bbe=a0_0x154ba4;return this['_ensureInitialized'](),this[_0x3a8bbe(0x91)];}get[a0_0x154ba4(0xd4)](){const _0x2aa0d5=a0_0x154ba4;return this[_0x2aa0d5(0xcb)](),this[_0x2aa0d5(0xae)];}get[a0_0x154ba4(0x8e)](){const _0x30d300=a0_0x154ba4;return this[_0x30d300(0xcb)](),this[_0x30d300(0x93)];}get[a0_0x154ba4(0xc1)](){const _0x592a87=a0_0x154ba4;return this[_0x592a87(0xcb)](),this[_0x592a87(0xb3)];}['buildLockKey'](_0x2798c0){const {module:_0xebd308,endpoint:_0x4be9f1,lockType:_0x324936,recordId:_0x1ecc21}=_0x2798c0;if(_0x1ecc21)return''+this['prefix']+_0xebd308+':'+_0x4be9f1+':'+_0x1ecc21+':'+_0x324936;return''+this['prefix']+_0xebd308+':'+_0x4be9f1+':'+_0x324936;}[a0_0x154ba4(0xe9)](){const _0x167a65=a0_0x154ba4;return this[_0x167a65(0xc1)]+':'+uuidv4()+':'+Date[_0x167a65(0xa8)]();}async['acquireReadLock'](_0x3b0826){const _0xb33414=a0_0x154ba4,_0x54b54c={'TgPFZ':_0xb33414(0x97),'OQWlI':function(_0x5e7af9,_0x2f0890){return _0x5e7af9<_0x2f0890;},'NrXPv':'read_lock_acquired','RSjjt':_0xb33414(0xa4),'tdhQe':function(_0x493aff,_0x3f7e7f){return _0x493aff*_0x3f7e7f;},'shEeU':'READ\x20lock\x20acquire\x20timeout','tSNpb':'READ\x20lock\x20error'};if(!this['enabled'])return{'success':!![],'lockValue':null,'lockKey':null};const _0x109af7=this['buildLockKey']({..._0x3b0826,'lockType':_0xb33414(0xb5)}),_0x134876=this['buildLockKey']({..._0x3b0826,'lockType':_0x54b54c['TgPFZ']}),_0x284326=this[_0xb33414(0xe9)]();try{const _0x44d825=redisClient['getClient']();for(let _0x53c297=0x0;_0x54b54c[_0xb33414(0xa7)](_0x53c297,this['retryCount']);_0x53c297++){const _0x3bc376=await _0x44d825['get'](_0x109af7);if(!_0x3bc376){await _0x44d825[_0xb33414(0xe8)](_0x134876),await _0x44d825['expire'](_0x134876,this[_0xb33414(0xe5)]);const _0x57ea39=_0x134876+':'+_0x284326;return await _0x44d825[_0xb33414(0xe6)](_0x57ea39,this['defaultTTL'],_0x284326),logger['debug']({'event':_0x54b54c[_0xb33414(0xb8)],'key':_0x134876,'value':_0x284326},'READ\x20lock\x20acquired'),{'success':!![],'lockValue':_0x284326,'lockKey':_0x57ea39};}logger[_0xb33414(0x9b)]({'event':_0xb33414(0xbb),'writeKey':_0x109af7,'attempt':_0x53c297},_0x54b54c[_0xb33414(0xcf)]),await this['sleep'](_0x54b54c[_0xb33414(0xaf)](this['retryDelay'],Math[_0xb33414(0xb2)](0x2,_0x53c297)));}return logger[_0xb33414(0xea)]({'event':'read_lock_timeout','key':_0x134876},_0x54b54c['shEeU']),{'success':![],'lockValue':null,'lockKey':null};}catch(_0x40cb0f){return logger[_0xb33414(0xb1)]({'event':'read_lock_error','error':_0x40cb0f['message']},_0x54b54c[_0xb33414(0xcd)]),{'success':![],'lockValue':null,'lockKey':null};}}async[a0_0x154ba4(0xd1)](_0x49cace){const _0x2bba0d=a0_0x154ba4,_0x3ef8e7={'eWXpB':'write','tWXWY':'read','FXMpc':_0x2bba0d(0xaa),'OTsQk':_0x2bba0d(0xad),'ephph':_0x2bba0d(0xe0),'KpQxF':function(_0x276fd8,_0x49ced4){return _0x276fd8<_0x49ced4;},'ekKuI':function(_0x2f86fa,_0x455f3e){return _0x2f86fa===_0x455f3e;},'CJziz':_0x2bba0d(0xdf),'TSYtE':_0x2bba0d(0xb7),'jMGvJ':'write_lock_waiting'};if(!this[_0x2bba0d(0xbe)])return{'success':!![],'lockValue':null,'lockKey':null};const _0x47bae0=this['buildLockKey']({..._0x49cace,'lockType':_0x3ef8e7['eWXpB']}),_0x2e89b4=this[_0x2bba0d(0xd7)]({..._0x49cace,'lockType':_0x3ef8e7[_0x2bba0d(0x8f)]}),_0x2bb42b=this['generateLockValue']();try{const _0x575df2=redisClient[_0x2bba0d(0xe7)]();if(this['strategy']===_0x3ef8e7['FXMpc']){const _0x576673=await _0x575df2['set'](_0x47bae0,_0x2bb42b,'EX',this['defaultTTL'],'NX');if(_0x576673==='OK')return logger['debug']({'event':_0x3ef8e7[_0x2bba0d(0xe1)],'key':_0x47bae0,'value':_0x2bb42b,'strategy':_0x3ef8e7[_0x2bba0d(0x96)]},_0x2bba0d(0xc8)),{'success':!![],'lockValue':_0x2bb42b,'lockKey':_0x47bae0};return logger[_0x2bba0d(0x9b)]({'event':_0x3ef8e7['ephph'],'key':_0x47bae0},'WRITE\x20lock\x20rejected\x20-\x20record\x20busy'),{'success':![],'lockValue':null,'lockKey':null};}for(let _0x39b2be=0x0;_0x3ef8e7['KpQxF'](_0x39b2be,this[_0x2bba0d(0xce)]);_0x39b2be++){const [_0x5c72c4,_0x2173e6]=await Promise[_0x2bba0d(0x90)]([_0x575df2[_0x2bba0d(0xd3)](_0x2e89b4),_0x575df2['get'](_0x47bae0)]);if(!_0x2173e6&&(!_0x5c72c4||_0x3ef8e7['ekKuI'](parseInt(_0x5c72c4),0x0))){const _0x2d4b39=await _0x575df2[_0x2bba0d(0x9e)](_0x47bae0,_0x2bb42b,'EX',this[_0x2bba0d(0xe5)],'NX');if(_0x3ef8e7[_0x2bba0d(0x92)](_0x2d4b39,'OK'))return logger[_0x2bba0d(0x9b)]({'event':_0x2bba0d(0xad),'key':_0x47bae0,'value':_0x2bb42b,'strategy':_0x3ef8e7[_0x2bba0d(0xa6)]},_0x3ef8e7['TSYtE']),{'success':!![],'lockValue':_0x2bb42b,'lockKey':_0x47bae0};}logger[_0x2bba0d(0x9b)]({'event':_0x3ef8e7['jMGvJ'],'writeKey':_0x47bae0,'readCount':_0x5c72c4,'attempt':_0x39b2be},'Waiting\x20for\x20locks\x20to\x20release'),await this[_0x2bba0d(0xa0)](this[_0x2bba0d(0xd4)]*Math['pow'](0x2,_0x39b2be));}return logger['warn']({'event':'write_lock_timeout','key':_0x47bae0},_0x2bba0d(0x8b)),{'success':![],'lockValue':null,'lockKey':null};}catch(_0x24033d){return logger[_0x2bba0d(0xb1)]({'event':_0x2bba0d(0x9a),'error':_0x24033d['message']},'WRITE\x20lock\x20error'),{'success':![],'lockValue':null,'lockKey':null};}}async[a0_0x154ba4(0xbc)](_0x5decec,_0x293a47){const _0x4f4770=a0_0x154ba4,_0x5e1611={'uiSSW':function(_0x4d0307,_0x3eaf70){return _0x4d0307>_0x3eaf70;},'GznBR':function(_0x2d0111,_0x2ec8ef){return _0x2d0111(_0x2ec8ef);},'tYMIW':'READ\x20lock\x20released','LZdKm':_0x4f4770(0xb6)};if(!this[_0x4f4770(0xbe)]||!_0x5decec)return!![];try{const _0x2d33ef=redisClient[_0x4f4770(0xe7)]();if(_0x5decec[_0x4f4770(0xd5)](':read:')){await _0x2d33ef['del'](_0x5decec);const _0x1fd0cc=_0x5decec[_0x4f4770(0xbd)](0x0,_0x5decec[_0x4f4770(0xc3)](':')),_0x41f711=await _0x2d33ef[_0x4f4770(0xd3)](_0x1fd0cc);return _0x41f711&&_0x5e1611[_0x4f4770(0xde)](_0x5e1611['GznBR'](parseInt,_0x41f711),0x0)&&await _0x2d33ef['decr'](_0x1fd0cc),logger[_0x4f4770(0x9b)]({'event':_0x4f4770(0x8d),'key':_0x5decec},_0x5e1611[_0x4f4770(0xdc)]),!![];}const _0xad2bad='\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20redis.call(\x22get\x22,\x20KEYS[1])\x20==\x20ARGV[1]\x20then\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20redis.call(\x22del\x22,\x20KEYS[1])\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x200\x0a\x20\x20\x20\x20\x20\x20\x20\x20end\x0a\x20\x20\x20\x20\x20\x20',_0x4134b3=await _0x2d33ef[_0x4f4770(0xe3)](_0xad2bad,0x1,_0x5decec,_0x293a47);if(_0x4134b3===0x1)return logger[_0x4f4770(0x9b)]({'event':'write_lock_released','key':_0x5decec},_0x4f4770(0xc9)),!![];return logger['warn']({'event':'lock_release_not_owner','key':_0x5decec},'Cannot\x20release\x20lock\x20-\x20not\x20owner'),![];}catch(_0xc79330){return logger[_0x4f4770(0xb1)]({'event':_0x4f4770(0xdb),'key':_0x5decec,'error':_0xc79330['message']},_0x5e1611['LZdKm']),![];}}async['extendLock'](_0x59d2d2,_0x5c3682,_0x1550dd=null){const _0x5478c0=a0_0x154ba4,_0x325470={'jVIYm':function(_0x3cc7d7,_0x2c8308){return _0x3cc7d7===_0x2c8308;},'oAxrf':_0x5478c0(0xb9),'VvOFl':'Lock\x20TTL\x20extended','oVPVZ':_0x5478c0(0xe2),'SbWFL':_0x5478c0(0xa9)};if(!this[_0x5478c0(0xbe)]||!_0x59d2d2)return!![];try{const _0x1ce9f0=redisClient[_0x5478c0(0xe7)](),_0x2c22b3='\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20redis.call(\x22get\x22,\x20KEYS[1])\x20==\x20ARGV[1]\x20then\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20redis.call(\x22expire\x22,\x20KEYS[1],\x20ARGV[2])\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x200\x0a\x20\x20\x20\x20\x20\x20\x20\x20end\x0a\x20\x20\x20\x20\x20\x20',_0x39af31=await _0x1ce9f0['eval'](_0x2c22b3,0x1,_0x59d2d2,_0x5c3682,_0x1550dd||this[_0x5478c0(0xe5)]);if(_0x325470[_0x5478c0(0xab)](_0x39af31,0x1))return logger['debug']({'event':_0x325470['oAxrf'],'key':_0x59d2d2,'ttl':_0x1550dd||this['defaultTTL']},_0x325470['VvOFl']),!![];return![];}catch(_0x42e214){return logger['error']({'event':_0x325470['oVPVZ'],'key':_0x59d2d2,'error':_0x42e214['message']},_0x325470[_0x5478c0(0x95)]),![];}}[a0_0x154ba4(0x9d)](){const _0x155310=a0_0x154ba4;return this[_0x155310(0xbe)];}['sleep'](_0x1a6469){return new Promise(_0x404f87=>setTimeout(_0x404f87,_0x1a6469));}async[a0_0x154ba4(0xa3)](_0x5d8348){const _0x43b763=a0_0x154ba4,_0x52bac3={'IIvDg':'write','qhsuG':_0x43b763(0x97)};if(!this[_0x43b763(0xbe)])return{'enabled':![]};try{const _0xdde781=redisClient['getClient'](),_0x202a86=this[_0x43b763(0xd7)]({..._0x5d8348,'lockType':_0x52bac3[_0x43b763(0xb4)]}),_0x6cbcbf=this[_0x43b763(0xd7)]({..._0x5d8348,'lockType':_0x52bac3['qhsuG']}),[_0x185f70,_0x21e225]=await Promise['all']([_0xdde781['get'](_0x202a86),_0xdde781[_0x43b763(0xd3)](_0x6cbcbf)]);return{'enabled':!![],'writeLock':_0x185f70||null,'readCount':parseInt(_0x21e225)||0x0,'writeKey':_0x202a86,'readKey':_0x6cbcbf};}catch(_0x1bae10){return{'enabled':!![],'error':_0x1bae10[_0x43b763(0x98)]};}}}module['exports']=new LockManager();
|
package/src/utils/logger.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x141270=a0_0x62c1;(function(_0x5d46b8,_0x29ca5c){const _0x2c3113=a0_0x62c1,_0x24dac9=_0x5d46b8();while(!![]){try{const _0x4751cb=-parseInt(_0x2c3113(0x288))/0x1*(parseInt(_0x2c3113(0x1d2))/0x2)+-parseInt(_0x2c3113(0x266))/0x3+parseInt(_0x2c3113(0x20f))/0x4+-parseInt(_0x2c3113(0x274))/0x5+parseInt(_0x2c3113(0x23f))/0x6*(parseInt(_0x2c3113(0x283))/0x7)+-parseInt(_0x2c3113(0x23b))/0x8+-parseInt(_0x2c3113(0x227))/0x9*(-parseInt(_0x2c3113(0x267))/0xa);if(_0x4751cb===_0x29ca5c)break;else _0x24dac9['push'](_0x24dac9['shift']());}catch(_0x2c6860){_0x24dac9['push'](_0x24dac9['shift']());}}}(a0_0x413f,0x5e8e0));const pino=require(a0_0x141270(0x1eb)),fs=require('fs'),path=require('path');let logToFile=![],logDir=a0_0x141270(0x28d),serviceName='restforge',sqlLogEnabled=![],sqlLogLevel=a0_0x141270(0x205),sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;function a0_0x62c1(_0x1a453e,_0x2f9620){_0x1a453e=_0x1a453e-0x1cc;const _0x413fe2=a0_0x413f();let _0x62c1c4=_0x413fe2[_0x1a453e];if(a0_0x62c1['EiQJKV']===undefined){var _0x459dae=function(_0x42c2c5){const _0x1da193='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x74452a='',_0x5e9441='';for(let _0x57c7bd=0x0,_0x308eb9,_0x36efbc,_0x8131af=0x0;_0x36efbc=_0x42c2c5['charAt'](_0x8131af++);~_0x36efbc&&(_0x308eb9=_0x57c7bd%0x4?_0x308eb9*0x40+_0x36efbc:_0x36efbc,_0x57c7bd++%0x4)?_0x74452a+=String['fromCharCode'](0xff&_0x308eb9>>(-0x2*_0x57c7bd&0x6)):0x0){_0x36efbc=_0x1da193['indexOf'](_0x36efbc);}for(let _0x8dae4b=0x0,_0x26f343=_0x74452a['length'];_0x8dae4b<_0x26f343;_0x8dae4b++){_0x5e9441+='%'+('00'+_0x74452a['charCodeAt'](_0x8dae4b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5e9441);};a0_0x62c1['lmrMcB']=_0x459dae,a0_0x62c1['uTIYPV']={},a0_0x62c1['EiQJKV']=!![];}const _0x3ef677=_0x413fe2[0x0],_0x4ed1c3=_0x1a453e+_0x3ef677,_0x4123dc=a0_0x62c1['uTIYPV'][_0x4ed1c3];return!_0x4123dc?(_0x62c1c4=a0_0x62c1['lmrMcB'](_0x62c1c4),a0_0x62c1['uTIYPV'][_0x4ed1c3]=_0x62c1c4):_0x62c1c4=_0x4123dc,_0x62c1c4;}const prettyPrintOptions={'colorize':!![],'translateTime':a0_0x141270(0x231),'ignore':'pid,hostname,service,version,env,event,module,port,config,apiKeyEnabled,path,workingDir,isPkg,isNodeScript,file,email,type,cors,logging,apiKey,count,endpoint,route','singleLine':![],'levelFirst':!![],'messageFormat':a0_0x141270(0x228),'customColors':'info:blue,warn:yellow,error:red,debug:gray','hideObject':!![]},isDevelopment=process[a0_0x141270(0x208)][a0_0x141270(0x215)]!=='production',logLevel=process['env'][a0_0x141270(0x214)]||a0_0x141270(0x1d4);let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':'pino-pretty','options':prettyPrintOptions}:undefined,'base':{'service':'restforge','version':process['env']['APP_VERSION']||'1.0.5','env':process[a0_0x141270(0x208)][a0_0x141270(0x215)]||'development'},'timestamp':pino['stdTimeFunctions']['isoTime'],'redact':{'paths':[a0_0x141270(0x251),a0_0x141270(0x23d),a0_0x141270(0x1d9),'token','apiKey',a0_0x141270(0x20d),a0_0x141270(0x1fc)],'censor':'[REDACTED]'},'serializers':{'req':_0x31ce87=>({'id':_0x31ce87['id'],'method':_0x31ce87[a0_0x141270(0x1fa)],'url':_0x31ce87['url'],'path':_0x31ce87['path'],'remoteAddress':_0x31ce87['ip']||_0x31ce87['connection']?.[a0_0x141270(0x27c)]}),'res':_0x5a8bd8=>({'statusCode':_0x5a8bd8['statusCode'],'headers':_0x5a8bd8['getHeaders']?.()}),'err':pino['stdSerializers']['err']}});function initFileLogging(){const _0x433eb1=a0_0x141270,_0x1201cf={'FOCZP':_0x433eb1(0x1e2),'hViuv':function(_0xde06f3,_0x296037){return _0xde06f3===_0x296037;},'ugNBO':'false','sbgYc':'app.log','TYrzK':_0x433eb1(0x20a),'cNdyI':_0x433eb1(0x223),'LKZiN':'info'};if(fileLoggingInitialized)return;logToFile=process[_0x433eb1(0x208)]['LOG_TO_FILE']==='true';const _0x24d548=process['env'][_0x433eb1(0x1ea)]||_0x1201cf['FOCZP'];logDir=process['env'][_0x433eb1(0x230)]||_0x433eb1(0x273)+_0x24d548,serviceName=process[_0x433eb1(0x208)][_0x433eb1(0x236)]||'restforge',sqlLogEnabled=_0x1201cf[_0x433eb1(0x285)](process[_0x433eb1(0x208)]['SQL_LOG_ENABLED'],'true'),sqlLogLevel=process['env']['SQL_LOG_LEVEL']||'debug',sqlLogParams=process[_0x433eb1(0x208)]['SQL_LOG_PARAMS']!==_0x1201cf[_0x433eb1(0x289)],sqlLogSlowThreshold=parseInt(process[_0x433eb1(0x208)][_0x433eb1(0x212)])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x5bc659=path['resolve'](process[_0x433eb1(0x286)](),logDir);try{!fs['existsSync'](_0x5bc659)&&fs[_0x433eb1(0x1fd)](_0x5bc659,{'recursive':!![]});}catch(_0x9876a3){console[_0x433eb1(0x20c)](_0x433eb1(0x222)+_0x5bc659+':',_0x9876a3['message']),fileLoggingInitialized=!![];return;}const _0x3d0f32=path[_0x433eb1(0x1fb)](_0x5bc659,_0x1201cf[_0x433eb1(0x263)]),_0x388380=path[_0x433eb1(0x1fb)](_0x5bc659,_0x1201cf['TYrzK']);try{appLogStream=fs[_0x433eb1(0x280)](_0x3d0f32,{'flags':'a'}),errorLogStream=fs[_0x433eb1(0x280)](_0x388380,{'flags':'a'}),fileLoggingInitialized=!![];const _0x18ee1a={'event':_0x1201cf[_0x433eb1(0x1ff)],'logDir':_0x5bc659,'files':[_0x1201cf[_0x433eb1(0x263)],_0x1201cf[_0x433eb1(0x239)]]},_0x1b2f8b=_0x433eb1(0x28e)+_0x5bc659;logger['info'](_0x18ee1a,_0x1b2f8b),writeToFileLog({..._0x18ee1a,'level':_0x1201cf['LKZiN'],'msg':_0x1b2f8b,'time':new Date()[_0x433eb1(0x1e7)]()},_0x1201cf['LKZiN']);}catch(_0x520082){console['error']('Failed\x20to\x20create\x20log\x20streams:',_0x520082['message']),fileLoggingInitialized=!![];}}function a0_0x413f(){const _0x514178=['D3bMqwK','BNbIv0i','ChjVAMvJDf9SB2fKzwq','y3jLzgL0x2nHCMq','zMXVB3i','D3jPDgu','B2jQzwn0','uK9mtejbq0S','CgDKBhK','C2vYDMvYx3jLywr5','Cg9ZDgDYzxnXBa','tKDmyvK','Dg9vChbLCKnHC2u','rNfMq3O','oI8V','w1jfrefdveveoMHHC2HD','C3rHDhvZ','C2jNwwm','rermx0nsrufurq','y2HPBgq','nti0odiZB0rNv0Dt','nZb0rfbvzMe','zw52AxjVBM1LBNq','BwvZC2fNzq','Dg9Rzw4','su5trvju','B3rW','zMf0ywXFzxjYB3i','u0vmrunu','C3rYAw5NAwz5','iokvKqRILzeGiefqssblzxKGicaGidOG','vhrYtuG','DxDvqxa','lI9SB2DZlW','mtq3nJyXnvnMrwvfAW','Ahr0Cf9Yzxf1zxn0','Ahj0Aw1L','iokvKqRILzeGienVBMzPzYaGicaGidOG','q1jfqvrf','CgLK','w1jfrefdveveoNrVA2vUxq','EMHQDwG','CMvTB3rLqwrKCMvZCW','AxnbCNjHEq','rgvMyxvSDa','w1jfrefdvevexq','y3jLyxrLv3jPDgvtDhjLyw0','wLriBLa','zxHWB3j0CW','mZmYmteZnMvkDMzIvG','zM9kz2S','AfzPDxy','y3DK','BvzMvKi','mJCXnJuWq21NDevm','DwDoqK8','ALHJvK0','CgLU','wun4qMu','lI9SB2DZ','rMLSzsbSB2DNAw5NigvUywjSzwq6ia','vu5ltK9xtG','tLn0BLC','AwvSu2i','y2rbs1y','Cg9YDa','yxbPs2v5','vfjbtLnbq1rjt05Fq09ntuLu','DxjS','icbjBMzVoIaGia','mMPcy1Plua','Dw5Oyw5KBgvKuMvQzwn0Aw9U','Aw5MBW','BerTyM4','B3jPz2LUywXvCMW','DxnLCG','Dw5JyxvNAhrfEgnLChrPB24','CgfZC3DVCMq','C3rHDhvZq29Kzq','icbizwfSDgG6ia','zgf0ywjHC2u','rermx0rst1a','y29Kzq','C3nU','zwLbDey','Aw5JBhvKzxm','zgvMyxvSDa','C2vJCMv0','CgfKrw5K','Dg9mB3DLCKnHC2u','AxntBg93','Dg9ju09tDhjPBMC','AwjRtxy','ChjVAMvJDa','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','CgLUBW','Bwf0y2G','EhDgCwC','y3z2','wfDAv2G','Bwf4','DgvZDa','ChjPDMf0zwTLEq','wg9gCKe','swnqrhu','C3bSAxq','sfruuca','C3rHy2S','Cgf0Aa','CMvMCMvZAf90B2TLBG','Bwv0Ag9K','AM9PBG','sLDux1nfq1jfva','BwTKAxjtEw5J','Bg9N','y05KEuK','rxjYB3i','rNvQBNq','CMvWzwf0','s05Lz1q','tK9uiefdveLwrq','zgvIDwC','sw50zxjUywWGC2vYDMvYigvYCM9Y','vhfzwLm','zw52','Ag9ZDa','zxjYB3iUBg9N','u2vYDMvYihn0yxj0Aw5NoIa','zxjYB3i','rejFueftu1DpuKq','C3rHCNrZv2L0Aa','mJaWnZeYBhzSuLfb','zhvYyxrPB25nCW','B3zbvxy','u1fmx0Xpr19tte9xx1riuKvtse9mra','CxvLCNK','te9hx0XfvKvm','tK9erv9ftLy','ywnJzxnZx3rVA2vU','q1jjveLdquW','r05LqMK','Dxb0Aw1L','y3jLzgvUDgLHBa','yxbPx3nLy3jLDa','reiGuxvLCNK','vhrls3G','qK9sDgS','Dw5RBM93BG','y2jkwKi','tvPKwLO','rMfPBgvKihrVignYzwf0zsbSB2CGzgLYzwn0B3j5ia','zMLSzv9SB2DNAw5Nx2vUywjSzwq','BgvUz3rO','cUkvLokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvLWO','y29UzMLNrMLSzq','mtiXmty2mvDRveP6yW','E21Zz30','C3fSx3f1zxj5','icdIHPiG','ifTtte9xxq','C2vYDMLJzuLUzM8','rMnzuem','Ec1Yzxf1zxn0lwLK','yMfZzvvYBa','te9hx0rjuG','u1LtoKHioK1noNnZ','Bw9KDwXL','y3nHuKS','DhLWzq','y29UBMvJDgLVBG','u0vsvKLdrv9oqu1f','ChjPDMf0zv9RzxK','tgzHugu','vfLYEKS','AgvHBhrOq2HLy2S','mJCWmJu1mK1YDMjPtG','sxHiru8','CMvXlMHLywrLCNnBiNGTyxbPlwTLEsjD','revmrvrf','nM1gr3DhuG','yMPSz0q','BKzqwhi','tK9JzLe','BwvTB3j5vxnHz2u','vxzPzMC','se1rtgW','zMf0ywW','D2fYBG','Dhfou0y','EhDhDeG','vhjHBNnHy3rPB24G','BMfTzq','yxbPx2TLEq','AevNq3G','ELbWwhi','CM93C0fMzMvJDgvK','zgjFDhjHBNnHy3rPB24','CMvXlMHLywrLCNmUyxv0Ag9YAxPHDgLVBG'];a0_0x413f=function(){return _0x514178;};return a0_0x413f();}function writeToFileLog(_0x113093,_0x203aa5){const _0x172f9c=a0_0x141270,_0x38756d={'RHPLl':function(_0x839448,_0x1339dd){return _0x839448||_0x1339dd;},'CteUx':'fatal'};if(_0x38756d['RHPLl'](!logToFile,!appLogStream))return;const _0x224df3={'service':serviceName,..._0x113093},_0x2f8f5f=JSON[_0x172f9c(0x26f)](_0x224df3)+'\x0a';appLogStream[_0x172f9c(0x257)](_0x2f8f5f),(_0x203aa5===_0x172f9c(0x20c)||_0x203aa5===_0x38756d['CteUx'])&&(errorLogStream&&errorLogStream['write'](_0x2f8f5f));}const createRequestLogger=(_0x1264da={})=>{const _0x3f768f=a0_0x141270;return logger[_0x3f768f(0x265)](_0x1264da);},logServerStart=_0x34edc5=>{const _0x11b791=a0_0x141270,_0x2a0b57={'LfaPe':'RESTFORGE\x20RUNTIME\x20SERVER','psNzQ':function(_0x4b8118,_0x8ed6cd){return _0x4b8118/_0x8ed6cd;},'oVauM':function(_0x23f25b,_0x18351e){return _0x23f25b-_0x18351e;},'jsMig':'Node.js','rAcPb':'N/A','ZTHnP':_0x11b791(0x204),'OihaC':'server_starting'},_0x1f3a7e=_0x2a0b57[_0x11b791(0x238)],_0x4bc116=Math[_0x11b791(0x1f0)](0x0,0x37-_0x1f3a7e['length']),_0x1178e5=Math[_0x11b791(0x256)](_0x2a0b57['psNzQ'](_0x4bc116,0x2)),_0x6c3b24=_0x2a0b57['oVauM'](_0x4bc116,_0x1178e5),_0x21841d='║'+'\x20'[_0x11b791(0x202)](_0x1178e5)+_0x1f3a7e+'\x20'['repeat'](_0x6c3b24)+'║',_0x5e92bf=_0x11b791(0x225)+_0x21841d+'\x0a╠═══════════════════════════════════════════════════════╣\x0a║\x20\x20Environment\x20:\x20'+(_0x34edc5[_0x11b791(0x268)]||_0x2a0b57['jsMig'])[_0x11b791(0x1e4)](0x26)+'\x20║\x0a║\x20\x20Project\x20\x20\x20\x20\x20:\x20'+(_0x34edc5['project']||_0x2a0b57['rAcPb'])[_0x11b791(0x1e4)](0x26)+'\x20║\x0a║\x20\x20Port\x20\x20\x20\x20\x20\x20\x20\x20:\x20'+String(_0x34edc5[_0x11b791(0x1cd)]||0xbb8)[_0x11b791(0x1e4)](0x26)+_0x11b791(0x277)+(_0x34edc5['configFile']||_0x11b791(0x27e))[_0x11b791(0x1e4)](0x26)+_0x11b791(0x270)+(_0x34edc5['apiKey']?'ACTIVE':_0x2a0b57[_0x11b791(0x281)])['padEnd'](0x26)+'\x20║\x0a╚═══════════════════════════════════════════════════════╝';console[_0x11b791(0x1fe)](_0x5e92bf);const _0x4aff28={'event':_0x2a0b57['OihaC'],'project':_0x34edc5[_0x11b791(0x1e9)],'port':_0x34edc5['port'],'config':_0x34edc5[_0x11b791(0x226)],'apiKeyEnabled':!!_0x34edc5[_0x11b791(0x1ce)]};logger['info'](_0x4aff28),writeToFileLog({..._0x4aff28,'level':_0x11b791(0x1d4),'msg':_0x11b791(0x20b)+_0x34edc5['project']+'\x20on\x20port\x20'+_0x34edc5['port'],'time':new Date()['toISOString']()},'info');},logServerReady=_0x4275a1=>{const _0x2f7a44=a0_0x141270,_0x1f8203={'OLFZI':function(_0x182ed4,_0x22ca5f,_0x59f2d7){return _0x182ed4(_0x22ca5f,_0x59f2d7);}},_0x14d04c={'event':_0x2f7a44(0x25b),'port':_0x4275a1[_0x2f7a44(0x1cd)],'module':_0x4275a1[_0x2f7a44(0x232)],'healthCheck':_0x4275a1['healthCheck'],'serviceInfo':_0x4275a1['serviceInfo'],'baseUrl':_0x4275a1['baseUrl']},_0x337004='[OK]\x20Server\x20ready\x20on\x20port\x20'+_0x4275a1[_0x2f7a44(0x1cd)];logger[_0x2f7a44(0x1d4)](_0x14d04c,_0x337004),_0x1f8203['OLFZI'](writeToFileLog,{..._0x14d04c,'level':'info','msg':_0x337004,'time':new Date()['toISOString']()},_0x2f7a44(0x1d4)),_0x4275a1[_0x2f7a44(0x23a)]&&logger[_0x2f7a44(0x1d4)](_0x2f7a44(0x1db)+_0x4275a1['healthCheck']),_0x4275a1[_0x2f7a44(0x22c)]&&logger['info'](_0x2f7a44(0x1d1)+_0x4275a1['serviceInfo']),_0x4275a1[_0x2f7a44(0x22f)]&&logger['info']('\x20\x20URL:\x20\x20\x20\x20'+_0x4275a1[_0x2f7a44(0x22f)]);},logProjectLoaded=(_0x3a14c2,_0x28599c)=>{const _0x54ffa3=a0_0x141270,_0x39db35={'GNeBi':function(_0xc12ab7,_0x2a0554,_0xffe91c){return _0xc12ab7(_0x2a0554,_0xffe91c);},'jLkSB':'info'},_0x21e520={'event':_0x54ffa3(0x254),'project':_0x3a14c2,'path':_0x28599c},_0x203f57='[OK]\x20Project\x20loaded:\x20'+_0x3a14c2;logger[_0x54ffa3(0x1d4)](_0x21e520,_0x203f57),_0x39db35[_0x54ffa3(0x218)](writeToFileLog,{..._0x21e520,'level':'info','msg':_0x203f57,'time':new Date()[_0x54ffa3(0x1e7)]()},_0x39db35['jLkSB']);},logEndpointRegistered=(_0x343ec3,_0x3077da)=>{const _0x232b0e=a0_0x141270,_0x1ba622={'IzVeb':'endpoint_registered','xVOLe':_0x232b0e(0x205)},_0x24731e={'event':_0x1ba622['IzVeb'],'endpoint':_0x343ec3,'route':_0x3077da},_0x5d7620=_0x232b0e(0x22a)+_0x343ec3+':\x20'+_0x3077da;logger[_0x232b0e(0x205)](_0x24731e,_0x5d7620),writeToFileLog({..._0x24731e,'level':_0x232b0e(0x205),'msg':_0x5d7620,'time':new Date()[_0x232b0e(0x1e7)]()},_0x1ba622['xVOLe']);},logDatabaseConfig=_0x17a0dd=>{const _0x8c2dd5=a0_0x141270,_0x1cb12d={'JccDL':_0x8c2dd5(0x205)},_0x371ceb={'event':'database_config','host':_0x17a0dd['host'],'port':_0x17a0dd[_0x8c2dd5(0x1cd)],'database':_0x17a0dd[_0x8c2dd5(0x1dc)],'type':_0x17a0dd['type'],'user':_0x17a0dd[_0x8c2dd5(0x1d7)]},_0x1b0bda='Database:\x20'+_0x17a0dd[_0x8c2dd5(0x234)]+_0x8c2dd5(0x260)+_0x17a0dd[_0x8c2dd5(0x209)]+':'+_0x17a0dd['port']+'/'+_0x17a0dd['database'];logger['debug'](_0x371ceb,_0x1b0bda),writeToFileLog({..._0x371ceb,'level':_0x8c2dd5(0x205),'msg':_0x1b0bda,'time':new Date()['toISOString']()},_0x1cb12d['JccDL']);},logRequest=(_0x45495a,_0x437d7e,_0x51d43b)=>{const _0x563edf=a0_0x141270,_0x526adb={'YCxBe':_0x563edf(0x1d4),'npbWB':function(_0x30e0f9,_0x27c080){return _0x30e0f9>=_0x27c080;},'KHwcL':'error','CUSMJ':'warn','zPpXr':function(_0x193af9,_0x1b163f,_0xda5572){return _0x193af9(_0x1b163f,_0xda5572);}},_0x17b819={'event':_0x563edf(0x275),'method':_0x45495a[_0x563edf(0x1fa)],'path':_0x45495a[_0x563edf(0x1f8)],'statusCode':_0x437d7e['statusCode'],'durationMs':_0x51d43b,'ip':_0x45495a['ip']},_0x1280a3=_0x45495a[_0x563edf(0x1fa)]+'\x20'+_0x45495a['path']+'\x20-\x20'+_0x437d7e[_0x563edf(0x1da)]+'\x20('+_0x51d43b+'ms)';let _0xdd0269=_0x526adb[_0x563edf(0x28c)];if(_0x526adb[_0x563edf(0x253)](_0x437d7e[_0x563edf(0x1da)],0x1f4))_0xdd0269=_0x526adb['KHwcL'],logger['error'](_0x17b819,_0x1280a3);else _0x437d7e[_0x563edf(0x1da)]>=0x190?(_0xdd0269=_0x526adb['CUSMJ'],logger['warn'](_0x17b819,_0x1280a3)):logger['info'](_0x17b819,_0x1280a3);_0x526adb[_0x563edf(0x24e)](writeToFileLog,{..._0x17b819,'level':_0xdd0269,'msg':_0x1280a3,'time':new Date()[_0x563edf(0x1e7)]()},_0xdd0269);},SENSITIVE_PARAM_PATTERNS=['password','passwd','pwd',a0_0x141270(0x26a),a0_0x141270(0x216),a0_0x141270(0x1f9),a0_0x141270(0x1e3),a0_0x141270(0x21b),'apikey',a0_0x141270(0x24c),a0_0x141270(0x21a),'credentials',a0_0x141270(0x28b),a0_0x141270(0x26c),'private_key',a0_0x141270(0x1f2)],redactSensitiveParams=(_0x19b220,_0x5e3964)=>{const _0x9461a5=a0_0x141270,_0x66c14b={'wpfAi':'[REDACTED]','Uvifg':function(_0x4aae71,_0x4bd5d2){return _0x4aae71>_0x4bd5d2;},'SHAJQ':_0x9461a5(0x27a),'HMQLl':function(_0x2d7cd6,_0x1dc3d7){return _0x2d7cd6===_0x1dc3d7;}};if(!_0x19b220||_0x66c14b[_0x9461a5(0x245)](_0x19b220['length'],0x0))return _0x19b220;const _0x5f44eb=_0x5e3964['toLowerCase'](),_0x4c3037=_0x5f44eb[_0x9461a5(0x1ec)](/\(([^)]+)\)\s*values/i);let _0x267a60=[];_0x4c3037&&(_0x267a60=_0x4c3037[0x1][_0x9461a5(0x1f5)](',')['map'](_0x48649e=>_0x48649e['trim']()['toLowerCase']()));const _0x14eec8=_0x5f44eb['match'](/set\s+(.+?)(?:\s+where|$)/i);if(_0x14eec8){const _0xb23d34=_0x14eec8[0x1],_0x189d67=_0xb23d34['match'](/(\w+)\s*=/g);_0x189d67&&(_0x267a60=_0x189d67['map'](_0x4f123f=>_0x4f123f['replace'](/\s*=/,'')['trim']()['toLowerCase']()));}return _0x19b220['map']((_0x45c1df,_0x3f6181)=>{const _0x1cb365=_0x9461a5;if(_0x267a60[_0x3f6181]){const _0xfd3574=_0x267a60[_0x3f6181],_0x3be22b=SENSITIVE_PARAM_PATTERNS['some'](_0x1cd8c3=>_0xfd3574[_0x1cb365(0x1e1)](_0x1cd8c3));if(_0x3be22b)return _0x66c14b[_0x1cb365(0x252)];}if(typeof _0x45c1df==='string'&&_0x66c14b[_0x1cb365(0x244)](_0x45c1df['length'],0x20)){if(/^[a-zA-Z0-9+/=_.-]+$/['test'](_0x45c1df)&&_0x45c1df[_0x1cb365(0x1e1)]('.'))return _0x66c14b['SHAJQ'];if(/^[a-fA-F0-9]{32,}$/[_0x1cb365(0x1f1)](_0x45c1df))return _0x1cb365(0x261);}return _0x45c1df;});},parseQueryMetadata=_0xd86228=>{const _0x153a31=a0_0x141270,_0x7a3354={'XWZWh':'INSERT','xwFqg':'UPDATE','bjlgD':_0x153a31(0x23e),'BORtk':'BEGIN','JwKlC':'START\x20TRANSACTION','XoFrA':'TRANSACTION_ROLLBACK','IxHEO':_0x153a31(0x278),'cbJZB':_0x153a31(0x264),'wofQd':'ALTER','Fujnt':'DDL_ALTER'},_0x39180d=_0xd86228['trim'](),_0xace81e=_0x39180d['toUpperCase']();let _0x18aa0d=_0x153a31(0x28f),_0x12b053=null;if(_0xace81e[_0x153a31(0x20e)](_0x153a31(0x26e))){_0x18aa0d='SELECT';const _0x10977c=_0x39180d[_0x153a31(0x1ec)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x12b053=_0x10977c?_0x10977c[0x1]:null;}else{if(_0xace81e['startsWith'](_0x7a3354[_0x153a31(0x1ef)])){_0x18aa0d=_0x153a31(0x26b);const _0x29d619=_0x39180d[_0x153a31(0x1ec)](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x12b053=_0x29d619?_0x29d619[0x1]:null;}else{if(_0xace81e[_0x153a31(0x20e)](_0x7a3354[_0x153a31(0x1ed)])){_0x18aa0d=_0x7a3354[_0x153a31(0x1ed)];const _0x517eb4=_0x39180d['match'](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x12b053=_0x517eb4?_0x517eb4[0x1]:null;}else{if(_0xace81e[_0x153a31(0x20e)](_0x7a3354[_0x153a31(0x240)])){_0x18aa0d=_0x7a3354['bjlgD'];const _0x2df939=_0x39180d[_0x153a31(0x1ec)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x12b053=_0x2df939?_0x2df939[0x1]:null;}else{if(_0xace81e['startsWith'](_0x7a3354[_0x153a31(0x21e)])||_0xace81e[_0x153a31(0x20e)](_0x7a3354['JwKlC']))_0x18aa0d='TRANSACTION_BEGIN';else{if(_0xace81e['startsWith']('COMMIT'))_0x18aa0d=_0x153a31(0x1cf);else{if(_0xace81e['startsWith'](_0x153a31(0x259)))_0x18aa0d=_0x7a3354[_0x153a31(0x1f3)];else{if(_0xace81e[_0x153a31(0x20e)](_0x7a3354[_0x153a31(0x23c)]))_0x18aa0d=_0x7a3354[_0x153a31(0x220)];else{if(_0xace81e['startsWith'](_0x7a3354['wofQd']))_0x18aa0d=_0x7a3354[_0x153a31(0x201)];else _0xace81e[_0x153a31(0x20e)]('DROP')&&(_0x18aa0d=_0x153a31(0x1dd));}}}}}}}}return{'type':_0x18aa0d,'table':_0x12b053};},startQueryTimer=()=>{const _0x4b3c01={'yDVoE':function(_0x2dfa88,_0x925fca){return _0x2dfa88(_0x925fca);},'SbTED':function(_0x4a5aca,_0x2b76b0){return _0x4a5aca*_0x2b76b0;},'lDmbn':function(_0x19d102,_0x2dcc39){return _0x19d102/_0x2dcc39;}},_0x3a5b7c=process['hrtime']();return()=>{const _0x2cb7fd=a0_0x62c1,[_0x11a614,_0x1c9a00]=process[_0x2cb7fd(0x276)](_0x3a5b7c);return _0x4b3c01['yDVoE'](parseFloat,(_0x4b3c01['SbTED'](_0x11a614,0x3e8)+_0x4b3c01[_0x2cb7fd(0x1d5)](_0x1c9a00,0xf4240))['toFixed'](0x2));};},logQuery=(_0x235bf5,_0x5ede3c=[],_0x210b09={})=>{const _0x4f1eb3=a0_0x141270,_0x41771e={'ibkMv':_0x4f1eb3(0x21c),'NGLaY':function(_0x4bfed8,_0x546926){return _0x4bfed8(_0x546926);},'cdAKV':function(_0xc9c33c,_0x59ef7a){return _0xc9c33c>_0x59ef7a;},'uwUAp':function(_0x4fcdf2,_0x5340de,_0x7ea585){return _0x4fcdf2(_0x5340de,_0x7ea585);},'FqfCz':function(_0x35ece3,_0x2316c5){return _0x35ece3!==_0x2316c5;},'mMvDf':_0x4f1eb3(0x21f),'ielSb':function(_0x187d20,_0x1503cb){return _0x187d20!==_0x1503cb;},'YpuBw':_0x4f1eb3(0x22b),'hEgCx':_0x4f1eb3(0x1d4)};if(!sqlLogEnabled){logger[_0x4f1eb3(0x205)]({'event':'db_query','query':_0x235bf5['substring'](0x0,0xc8),'paramCount':_0x5ede3c[_0x4f1eb3(0x224)]},_0x41771e[_0x4f1eb3(0x1e8)]);return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType=_0x4f1eb3(0x25c)}=_0x210b09,{type:_0x15ddb0,table:_0x57def1}=_0x41771e[_0x4f1eb3(0x25d)](parseQueryMetadata,_0x235bf5),_0x5e7962={'event':_0x4f1eb3(0x229),'queryType':_0x15ddb0,'table':_0x57def1,'query':_0x235bf5,'paramCount':_0x5ede3c['length'],'dbType':dbType};sqlLogParams&&_0x41771e['cdAKV'](_0x5ede3c[_0x4f1eb3(0x224)],0x0)&&(_0x5e7962['params']=_0x41771e[_0x4f1eb3(0x272)](redactSensitiveParams,_0x5ede3c,_0x235bf5));_0x41771e['FqfCz'](duration,null)&&(_0x5e7962[_0x4f1eb3(0x210)]=duration,_0x5e7962[_0x4f1eb3(0x1e6)]=_0x41771e[_0x4f1eb3(0x1cc)](duration,sqlLogSlowThreshold));rowsAffected!==null&&(_0x5e7962[_0x4f1eb3(0x24f)]=rowsAffected);const _0x51f34c=_0x57def1||_0x41771e['mMvDf'];let _0x1b0dbf='['+_0x15ddb0+']\x20'+_0x51f34c;_0x41771e[_0x4f1eb3(0x25f)](duration,null)&&(_0x1b0dbf+='\x20('+duration+'ms)');const _0xcede21=_0x41771e[_0x4f1eb3(0x291)](duration,null)&&duration>sqlLogSlowThreshold;let _0x541542=_0x4f1eb3(0x205);if(_0xcede21)_0x1b0dbf+=_0x41771e['YpuBw'],_0x541542=_0x4f1eb3(0x247),logger[_0x4f1eb3(0x247)](_0x5e7962,_0x1b0dbf);else sqlLogLevel===_0x41771e[_0x4f1eb3(0x24d)]?(_0x541542=_0x4f1eb3(0x1d4),logger['info'](_0x5e7962,_0x1b0dbf)):logger['debug'](_0x5e7962,_0x1b0dbf);writeToFileLog({..._0x5e7962,'level':_0x541542,'msg':_0x1b0dbf,'time':new Date()[_0x4f1eb3(0x1e7)]()},_0x541542);},logTransaction=(_0x5ae092,_0x3621ee)=>{const _0x524e87=a0_0x141270,_0x3aaacf={'bgvLE':function(_0x393c56,_0x2b36dd,_0x41311b){return _0x393c56(_0x2b36dd,_0x41311b);},'MZdZZ':_0x524e87(0x205)},_0x17c6fe={'event':_0x524e87(0x250),'status':_0x5ae092,'queryCount':_0x3621ee},_0x3955e6=_0x524e87(0x24a)+_0x5ae092;logger[_0x524e87(0x205)](_0x17c6fe,_0x3955e6),_0x3aaacf['bgvLE'](writeToFileLog,{..._0x17c6fe,'level':_0x3aaacf[_0x524e87(0x221)],'msg':_0x3955e6,'time':new Date()[_0x524e87(0x1e7)]()},'debug');},redactObject=_0x40268c=>{const _0x1d43c8=a0_0x141270,_0x7154f8={'FcYPC':function(_0x36361c,_0x29c64c){return _0x36361c!==_0x29c64c;},'eiAtF':'object','zhjuh':_0x1d43c8(0x1d9),'ufbfD':'passwd','yeloI':'pwd','KNegT':'secret','TqYZS':'api_key','yafDo':'creditcard','TtrMH':_0x1d43c8(0x1ee),'tqNSF':'pin','jXcVM':_0x1d43c8(0x237),'kWnQA':'refresh_token','NStnW':_0x1d43c8(0x216),'TtKKx':function(_0x50d43b,_0x29d6a7){return _0x50d43b===_0x29d6a7;}};if(!_0x40268c||_0x7154f8[_0x1d43c8(0x22d)](typeof _0x40268c,_0x7154f8[_0x1d43c8(0x1e0)]))return _0x40268c;const _0x581b14=[_0x7154f8[_0x1d43c8(0x27b)],_0x7154f8['ufbfD'],_0x7154f8['yeloI'],'token',_0x7154f8[_0x1d43c8(0x203)],'apikey',_0x7154f8[_0x1d43c8(0x207)],'authorization',_0x7154f8['yafDo'],_0x1d43c8(0x255),_0x7154f8[_0x1d43c8(0x271)],_0x1d43c8(0x1df),_0x7154f8[_0x1d43c8(0x248)],_0x7154f8[_0x1d43c8(0x28a)],'privatekey',_0x7154f8['kWnQA'],_0x7154f8[_0x1d43c8(0x290)]],_0x2dcf81=Array[_0x1d43c8(0x27d)](_0x40268c)?[..._0x40268c]:{..._0x40268c};for(const _0x394d8a of Object['keys'](_0x2dcf81)){const _0x1e1819=_0x394d8a[_0x1d43c8(0x1e5)]();if(_0x581b14['some'](_0x2b001f=>_0x1e1819[_0x1d43c8(0x1e1)](_0x2b001f)))_0x2dcf81[_0x394d8a]=_0x1d43c8(0x27f);else _0x7154f8[_0x1d43c8(0x21d)](typeof _0x2dcf81[_0x394d8a],_0x1d43c8(0x258))&&_0x7154f8['FcYPC'](_0x2dcf81[_0x394d8a],null)&&(_0x2dcf81[_0x394d8a]=redactObject(_0x2dcf81[_0x394d8a]));}return _0x2dcf81;},logError=(_0x42885c,_0x10a423={},_0x39f0a0=null)=>{const _0x26cbe2=a0_0x141270,_0x5d5705={'mVfVB':'Error','xwGtH':function(_0x4bddca,_0x12eb0e,_0x438b17){return _0x4bddca(_0x12eb0e,_0x438b17);}},_0x2ff690={'event':'error','errorName':_0x42885c['name']||_0x5d5705[_0x26cbe2(0x287)],'errorMessage':_0x42885c[_0x26cbe2(0x269)],'errorCode':_0x42885c['code']||null,'stack':_0x42885c['stack'],..._0x10a423},_0x1aefd8=_0x39f0a0||'Error:\x20'+_0x42885c['message'];logger['error'](_0x2ff690,_0x1aefd8),_0x5d5705[_0x26cbe2(0x249)](writeToFileLog,{..._0x2ff690,'level':'error','msg':_0x1aefd8,'time':new Date()[_0x26cbe2(0x1e7)]()},_0x26cbe2(0x20c));},logFatalError=(_0x1e90ac,_0x44dc1c={},_0x429180=null)=>{const _0x312e68=a0_0x141270,_0x194514={'CwKqE':_0x312e68(0x200),'nFPXr':'CRITICAL','NPaWj':function(_0x202642,_0x2eaedc,_0x2cb2f8){return _0x202642(_0x2eaedc,_0x2cb2f8);},'NbfKb':'error'},_0x407213={'event':_0x312e68(0x26d),'errorName':_0x1e90ac[_0x312e68(0x24b)]||_0x194514['CwKqE'],'errorMessage':_0x1e90ac[_0x312e68(0x269)],'errorCode':_0x1e90ac['code']||null,'stack':_0x1e90ac[_0x312e68(0x1f7)],'severity':_0x194514[_0x312e68(0x241)],..._0x44dc1c},_0x1777ed=_0x429180||'FATAL:\x20'+_0x1e90ac[_0x312e68(0x269)];logger['fatal'](_0x407213,_0x1777ed),_0x194514['NPaWj'](writeToFileLog,{..._0x407213,'level':'fatal','msg':_0x1777ed,'time':new Date()[_0x312e68(0x1e7)]()},_0x194514['NbfKb']);},logHttpError=(_0x2e5b05,_0x1867e9,_0x2e1a23={})=>{const _0x674050=a0_0x141270,_0x69b842={'KdKTD':'Error','pgdly':_0x674050(0x22e),'azCiz':_0x674050(0x20c),'ovAUv':'warn'},_0x561ff6={'event':'http_error','errorName':_0x2e5b05[_0x674050(0x24b)]||_0x69b842['KdKTD'],'errorMessage':_0x2e5b05[_0x674050(0x269)],'errorCode':_0x2e5b05[_0x674050(0x1de)]||_0x2e5b05[_0x674050(0x1da)]||0x1f4,'stack':_0x2e5b05['stack'],'method':_0x1867e9?.[_0x674050(0x1fa)],'url':_0x1867e9?.[_0x674050(0x1d0)]||_0x1867e9?.[_0x674050(0x1d6)],'path':_0x1867e9?.[_0x674050(0x1f8)],'ip':_0x1867e9?.['ip']||_0x1867e9?.[_0x674050(0x235)]?.['remoteAddress'],'userAgent':_0x1867e9?.['get']?.('user-agent'),'requestId':_0x1867e9?.['id']||_0x1867e9?.['headers']?.[_0x69b842[_0x674050(0x25a)]],'body':_0x1867e9?.['body']?redactObject(_0x1867e9['body']):undefined,'query':_0x1867e9?.[_0x674050(0x213)],..._0x2e1a23},_0x1c475e=_0x2e5b05[_0x674050(0x1da)]||_0x2e5b05[_0x674050(0x262)]||0x1f4,_0x1fe13c=_0x674050(0x1f6)+_0x1c475e+':\x20'+_0x2e5b05[_0x674050(0x269)];_0x1c475e>=0x1f4?logger['error'](_0x561ff6,_0x1fe13c):logger[_0x674050(0x247)](_0x561ff6,_0x1fe13c),writeToFileLog({..._0x561ff6,'level':_0x1c475e>=0x1f4?_0x69b842['azCiz']:_0x69b842[_0x674050(0x211)],'msg':_0x1fe13c,'time':new Date()[_0x674050(0x1e7)]()},_0x1c475e>=0x1f4?_0x69b842['azCiz']:_0x69b842['ovAUv']);},logUncaughtError=(_0x213285,_0x520dc9)=>{const _0x4a59f7=a0_0x141270,_0x540216={'rgrdq':_0x4a59f7(0x200)},_0x662617={'event':_0x213285,'errorName':_0x520dc9?.[_0x4a59f7(0x24b)]||_0x540216['rgrdq'],'errorMessage':_0x520dc9?.['message']||String(_0x520dc9),'errorCode':_0x520dc9?.[_0x4a59f7(0x1de)]||null,'stack':_0x520dc9?.['stack'],'severity':_0x4a59f7(0x217),'processId':process[_0x4a59f7(0x279)],'memoryUsage':process[_0x4a59f7(0x243)](),'uptime':process[_0x4a59f7(0x219)]()},_0x57fe1a='['+_0x213285[_0x4a59f7(0x25e)]()+']\x20'+(_0x520dc9?.[_0x4a59f7(0x269)]||_0x520dc9);logger[_0x4a59f7(0x246)](_0x662617,_0x57fe1a),writeToFileLog({..._0x662617,'level':_0x4a59f7(0x246),'msg':_0x57fe1a,'time':new Date()['toISOString']()},_0x4a59f7(0x20c));},setupGlobalErrorHandlers=()=>{const _0x4ea503=a0_0x141270,_0x54547e={'mLVGl':_0x4ea503(0x1d8),'CIPee':function(_0x40429a,_0x10ea7e,_0x507199){return _0x40429a(_0x10ea7e,_0x507199);},'IcPDu':function(_0x5a54a5,_0x491a47){return _0x5a54a5 instanceof _0x491a47;},'mlsum':function(_0x3c4b09,_0x583e40){return _0x3c4b09(_0x583e40);},'yrHze':_0x4ea503(0x1d3),'zAxsH':'warning','OptTQ':'Global\x20error\x20handlers\x20initialized'};process['on'](_0x4ea503(0x1d8),_0x17f0b5=>{logUncaughtError(_0x54547e['mLVGl'],_0x17f0b5),_0x54547e['CIPee'](setTimeout,()=>{process['exit'](0x1);},0x3e8);}),process['on'](_0x54547e['yrHze'],(_0xa1e379,_0x2cd430)=>{const _0x28e5f2=_0x4ea503,_0x2182f4=_0x54547e[_0x28e5f2(0x1f4)](_0xa1e379,Error)?_0xa1e379:new Error(_0x54547e['mlsum'](String,_0xa1e379));logUncaughtError(_0x28e5f2(0x1d3),_0x2182f4);}),process['on'](_0x54547e['zAxsH'],_0x4a128a=>{const _0x19d355=_0x4ea503;logger['warn']({'event':'process_warning','name':_0x4a128a['name'],'message':_0x4a128a[_0x19d355(0x269)],'stack':_0x4a128a[_0x19d355(0x1f7)]},'Process\x20Warning:\x20'+_0x4a128a[_0x19d355(0x269)]);});const _0x31ac2b={'event':'global_error_handlers_setup'},_0x497044=_0x54547e['OptTQ'];logger['info'](_0x31ac2b,_0x497044),writeToFileLog({..._0x31ac2b,'level':_0x4ea503(0x1d4),'msg':_0x497044,'time':new Date()[_0x4ea503(0x1e7)]()},_0x4ea503(0x1d4));},createErrorHandlerMiddleware=()=>{const _0x2b4be3=a0_0x141270,_0xc859={'ueSUs':function(_0x2c5d51,_0x421e53,_0x25a25c){return _0x2c5d51(_0x421e53,_0x25a25c);},'foJgk':function(_0x4ba1cb,_0x436671){return _0x4ba1cb>=_0x436671;},'NOcfQ':_0x2b4be3(0x206),'csaRK':'x-request-id'};return(_0x28642d,_0x59f775,_0x9d673a,_0x23a926)=>{const _0x2bf9f8=_0x2b4be3;_0xc859['ueSUs'](logHttpError,_0x28642d,_0x59f775);const _0x546b31=_0x28642d[_0x2bf9f8(0x1da)]||_0x28642d[_0x2bf9f8(0x262)]||0x1f4;_0x9d673a['status'](_0x546b31)['json']({'success':![],'error':_0xc859[_0x2bf9f8(0x284)](_0x546b31,0x1f4)?_0xc859[_0x2bf9f8(0x242)]:_0x28642d[_0x2bf9f8(0x269)],'requestId':_0x59f775['id']||_0x59f775['headers']?.[_0xc859[_0x2bf9f8(0x233)]]||null});};};module[a0_0x141270(0x282)]={'logger':logger,'createRequestLogger':createRequestLogger,'logServerStart':logServerStart,'logServerReady':logServerReady,'logProjectLoaded':logProjectLoaded,'logEndpointRegistered':logEndpointRegistered,'logDatabaseConfig':logDatabaseConfig,'logRequest':logRequest,'logQuery':logQuery,'logTransaction':logTransaction,'startQueryTimer':startQueryTimer,'parseQueryMetadata':parseQueryMetadata,'redactSensitiveParams':redactSensitiveParams,'initFileLogging':initFileLogging,'logError':logError,'logFatalError':logFatalError,'logHttpError':logHttpError,'logUncaughtError':logUncaughtError,'setupGlobalErrorHandlers':setupGlobalErrorHandlers,'createErrorHandlerMiddleware':createErrorHandlerMiddleware,'redactObject':redactObject,'SQL_LOG_CONFIG':{'enabled':sqlLogEnabled,'level':sqlLogLevel,'logParams':sqlLogParams,'slowThreshold':sqlLogSlowThreshold},'FILE_LOG_CONFIG':{'enabled':logToFile,'directory':logDir,'serviceName':serviceName}};
|
|
1
|
+
const a0_0x12f6df=a0_0x9884;(function(_0x4524d9,_0x3b5cbc){const _0x37095f=a0_0x9884,_0x5f5ce7=_0x4524d9();while(!![]){try{const _0x2b4727=parseInt(_0x37095f(0xa1))/0x1+parseInt(_0x37095f(0xea))/0x2*(parseInt(_0x37095f(0x129))/0x3)+parseInt(_0x37095f(0x96))/0x4+-parseInt(_0x37095f(0xfd))/0x5*(parseInt(_0x37095f(0x11f))/0x6)+-parseInt(_0x37095f(0x149))/0x7+-parseInt(_0x37095f(0xbe))/0x8*(-parseInt(_0x37095f(0xa9))/0x9)+parseInt(_0x37095f(0xbf))/0xa*(parseInt(_0x37095f(0x14f))/0xb);if(_0x2b4727===_0x3b5cbc)break;else _0x5f5ce7['push'](_0x5f5ce7['shift']());}catch(_0x2fbe2f){_0x5f5ce7['push'](_0x5f5ce7['shift']());}}}(a0_0x3c7e,0xe7925));const pino=require(a0_0x12f6df(0xca)),fs=require('fs'),path=require('path');let logToFile=![],logDir=a0_0x12f6df(0xc5),serviceName='restforge',sqlLogEnabled=![],sqlLogLevel=a0_0x12f6df(0x12c),sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;const prettyPrintOptions={'colorize':!![],'translateTime':'SYS:HH:MM:ss','ignore':a0_0x12f6df(0x125),'singleLine':![],'levelFirst':!![],'messageFormat':a0_0x12f6df(0x14a),'customColors':'info:blue,warn:yellow,error:red,debug:gray','hideObject':!![]},isDevelopment=process[a0_0x12f6df(0xd0)][a0_0x12f6df(0x93)]!==a0_0x12f6df(0x100),logLevel=process['env']['LOG_LEVEL']||a0_0x12f6df(0x132);let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':a0_0x12f6df(0x137),'options':prettyPrintOptions}:undefined,'base':{'service':a0_0x12f6df(0x8d),'version':process['env']['APP_VERSION']||a0_0x12f6df(0x12b),'env':process[a0_0x12f6df(0xd0)]['NODE_ENV']||a0_0x12f6df(0x14e)},'timestamp':pino['stdTimeFunctions']['isoTime'],'redact':{'paths':[a0_0x12f6df(0x9f),'req.headers[\x22x-api-key\x22]','password','token',a0_0x12f6df(0xe6),a0_0x12f6df(0xaf),a0_0x12f6df(0x11a)],'censor':a0_0x12f6df(0xae)},'serializers':{'req':_0x25e2ab=>({'id':_0x25e2ab['id'],'method':_0x25e2ab[a0_0x12f6df(0xe5)],'url':_0x25e2ab[a0_0x12f6df(0xfe)],'path':_0x25e2ab['path'],'remoteAddress':_0x25e2ab['ip']||_0x25e2ab[a0_0x12f6df(0xec)]?.['remoteAddress']}),'res':_0x440bc0=>({'statusCode':_0x440bc0[a0_0x12f6df(0x12a)],'headers':_0x440bc0['getHeaders']?.()}),'err':pino['stdSerializers'][a0_0x12f6df(0xf8)]}});function a0_0x3c7e(){const _0x160842=['B29AugW','y2HPBgq','CgfYyw1Z','mJiWmdaXnhHYA1rKua','C3rHDhvZq29Kzq','ms4WlJu','zgvIDwC','zxjYB3i','rxjYB3i6ia','C3rHy2S','CMPrBMG','EgHUywi','Aw5MBW','zgf0ywjHC2vFy29UzMLN','zvvpuvG','q2r5AxG','lI9SB2DZlW','CgLUBY1WCMv0DhK','vfjbtLnbq1rjt05FuK9mtejbq0S','y3jLyxrLv3jPDgvtDhjLyw0','Dg9Rzw4','CMvTB3rLqwrKCMvZCW','DhjPBq','yM9KEq','Cg9ZDgDYzxnXBa','Dg9ju09tDhjPBMC','C3rYAw5N','Bwf0y2G','y3z2','DgvZDa','CMvWzwf0','C3b0ve0','CgfKrw5K','Bg9N','D2fYBG','mta5nZGYmtLNu0D3Eui','E21Zz30','Aw5JBhvKzxm','zMf0ywXFzxjYB3i','C3fSx3f1zxj5','zgv2zwXVCg1LBNq','nZy0nZjHrMfhsNa','zgvMyxvSDa','y3jLzgL0x2nHCMq','vhjHBNnHy3rPB24G','AgvHBhrOq2HLy2S','tK9uiefdveLwrq','sKz3Axa','BLvcDvG','rMfPBgvKihrVignYzwf0zsbSB2CGC3rYzwfTCZO','Ahr0Cf9Yzxf1zxn0','wej5vNq','CMvZDgzVCMDL','v3Ldu0q','rermx0nsrufurq','BwvZC2fNzq','BxmP','Dxb0Aw1L','tK9erv9ftLy','C3rHCNrZv2L0Aa','yMfZzvvYBa','mZaZmZCWmffsugDJEG','y3jLzgL0y2fYza','yxbPA2v5','te9hx1rpx0zjteu','zMXVB3i','C29Tzq','Dgzrsxa','r2XVyMfSigvYCM9YigHHBMrSzxjZigLUAxrPywXPEMvK','D3jPDgu','CMvXlMHLywrLCNmUyxv0Ag9YAxPHDgLVBG','u0vsvKLdrv9oqu1f','mti0mZiXmMncvvngvW','Cg9YDa','Bw9KDwXL','z2v0','B2jQzwn0','ALDny1O','Dg9gAxHLza','CgfZC3DK','nJC5ndi4mhjvsKT1yG','CMvZB2X2zq','rfjpua','BxDiuNu','BwvTB3j5vxnHz2u','w1jfrefdvevexq','rejFueftu1DpuKq','w1jfrefdveveoMHHC2HD','Dhj1zq','q09ntuLu','B3rW','s0nQueG','C2vYDMLJzuLUzM8','zxHWB3j0CW','z3DKrui','icdIHPiG','yMfHBhe','ALD1rfu','B3jPz2LUywXvCMW','BwfW','t2XLuLK','oeX5BNLxua','mtaWmefqzhLXvW','u1nhqwG','CMvWBgfJzq','AvnTuxy','DLzktgS','iokvKqRILzRILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILz0','lI9SB2DZ','BMfTzq','yMDdEgu','yxv0Ag9YAxPHDgLVBG','Bwf4','CgLUBW','AgvHzgvYCW','C1rIrNe','ChjVAMvJDf9SB2fKzwq','u1fmx0Xpr19mrvzfta','Dg9mB3DLCKnHC2u','zw52','AM9PBG','sw50zxjUywWGC2vYDMvYigvYCM9Y','rgf0ywjHC2u6ia','DM9tB1u','te9HB2C','C2TWD2m','Ahj0Aw1L','C3rHDhvZ','u0vmrunu','u1rbuLqGvfjbtLnbq1rjt04','zw5KCg9PBNrFCMvNAxn0zxjLza','CgfZC3DVCMq','yxbPx3nLy3jLDa','C2vJCMv0','s1L5qvO','rxLQv1e','ic0G','zMf0ywW','Dw5RBM93BG','rgDls0O','Bwv0Ag9K','yxbPs2v5','oI8V','twLZCgq','y29UzMLNrMLSzq','mMfly05Ozq','rgvMyxvSDa','y29UBMvJDgLVBG','DxnLCG','vfjbtLnbq1rjt05Fq09ntuLu','rermx0fmvevs','A0Dswwi','quXurvi','sfruuca','vMzvAgK','uhjVy2vZCYbxyxjUAw5NoIa','su5trvju','vKrvvhe','Dw5JyxvNAhrfEgnLChrPB24','zxjY','u1fmx0Xpr19ftKfcteve','s1LUqxq','D2fYBMLUzW','iokvKqRILzeGienVBMzPzYaGicaGidOG','ntK1AhrbCvzX','DxjS','sunWwge','ChjVzhvJDgLVBG','zxjYB3iUBg9N','DhLWzq','twrLC2u','Cgf0Aa','w1jfrefdveveoNrVA2vUxq','swjKv00','BevhqLm','DxnLCI1Hz2vUDa','rKfuquW6ia','Dg9vChbLCKnHC2u','A2v5CW','revmrvrf','t01YCg4','y29Kzq','rxjYB3i','ifTtte9xxq','y3zYC2q','BgvUz3rO','Ec1Yzxf1zxn0lwLK','yKPer2K','cUkvOokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvOWRILzeGievUDMLYB25Tzw50idOG','ChjVAMvJDa','zw52AxjVBM1LBNq','zxHPDa','ig9UihbVCNqG','sLDux1nfq1jfva','uK9mtejbq0S','Ag9ZDa','wwfdtMu','vvbeqvrf','odqXmtryDg9sBKy','ChjPDMf0zwTLEq','uKvtvezpuKDfifjvtLrjtuuGu0vsvKvs','u2vYDMvYihn0yxj0Aw5NoIa','z2XVyMfSx2vYCM9Yx2HHBMrSzxjZx3nLDhvW','Auj3y20','CgLKlgHVC3rUyw1LlhnLCNzPy2uSDMvYC2LVBIXLBNySzxzLBNqSBw9KDwXLlhbVCNqSy29UzMLNlgfWAuTLEuvUywjSzwqSCgf0AcX3B3jRAw5NrgLYlgLZugTNlgLZtM9KzvnJCMLWDcXMAwXLlgvTywLSlhr5CguSy29YCYXSB2DNAw5NlgfWAuTLEsXJB3vUDcXLBMrWB2LUDcXYB3v0zq'];a0_0x3c7e=function(){return _0x160842;};return a0_0x3c7e();}function initFileLogging(){const _0x58882b=a0_0x12f6df,_0x4ca5a6={'WyCSD':_0x58882b(0xb1),'iSJhl':_0x58882b(0x150),'ICpXa':function(_0xa6059b,_0x44e814){return _0xa6059b===_0x44e814;},'IDppH':'debug','svoPY':'false','bJDGi':'error.log','ZnVzW':'file_logging_enabled','iUrqV':'app.log','OleRY':function(_0x2ba68f,_0x4d896e,_0x23b204){return _0x2ba68f(_0x4d896e,_0x23b204);},'GmPko':'info'};if(fileLoggingInitialized)return;logToFile=process[_0x58882b(0xd0)][_0x58882b(0x99)]===_0x4ca5a6['WyCSD'];const _0x174d71=process[_0x58882b(0xd0)]['RESTFORGE_PROJECT_NAME']||_0x4ca5a6['iSJhl'];logDir=process[_0x58882b(0xd0)]['LOG_DIR']||_0x58882b(0x136)+_0x174d71,serviceName=process[_0x58882b(0xd0)][_0x58882b(0xa0)]||_0x58882b(0x8d),sqlLogEnabled=_0x4ca5a6[_0x58882b(0xff)](process['env'][_0x58882b(0xf9)],_0x4ca5a6[_0x58882b(0x8e)]),sqlLogLevel=process['env'][_0x58882b(0xce)]||_0x4ca5a6['IDppH'],sqlLogParams=process['env']['SQL_LOG_PARAMS']!==_0x4ca5a6['svoPY'],sqlLogSlowThreshold=parseInt(process[_0x58882b(0xd0)]['SQL_LOG_SLOW_THRESHOLD'])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x2f637e=path[_0x58882b(0xaa)](process['cwd'](),logDir);try{!fs['existsSync'](_0x2f637e)&&fs['mkdirSync'](_0x2f637e,{'recursive':!![]});}catch(_0x113333){console['error']('Failed\x20to\x20create\x20log\x20directory\x20'+_0x2f637e+':',_0x113333[_0x58882b(0x90)]),fileLoggingInitialized=!![];return;}const _0x3ffb74=path[_0x58882b(0xd1)](_0x2f637e,'app.log'),_0x289c39=path['join'](_0x2f637e,_0x4ca5a6[_0x58882b(0x114)]);try{appLogStream=fs['createWriteStream'](_0x3ffb74,{'flags':'a'}),errorLogStream=fs[_0x58882b(0x139)](_0x289c39,{'flags':'a'}),fileLoggingInitialized=!![];const _0x32892e={'event':_0x4ca5a6['ZnVzW'],'logDir':_0x2f637e,'files':[_0x4ca5a6['iUrqV'],_0x58882b(0x101)]},_0x4dbb5a='File\x20logging\x20enabled:\x20'+_0x2f637e;logger['info'](_0x32892e,_0x4dbb5a),_0x4ca5a6[_0x58882b(0xbd)](writeToFileLog,{..._0x32892e,'level':_0x4ca5a6['GmPko'],'msg':_0x4dbb5a,'time':new Date()['toISOString']()},_0x58882b(0x132));}catch(_0x4fc7c8){console[_0x58882b(0x12d)](_0x58882b(0x8a),_0x4fc7c8[_0x58882b(0x90)]),fileLoggingInitialized=!![];}}function writeToFileLog(_0x4585c0,_0x2fd9c1){const _0x139f17=a0_0x12f6df,_0x2f8495={'czlDD':function(_0x2a61b2,_0x18c014){return _0x2a61b2||_0x18c014;},'zvTZP':function(_0x46bcbf,_0x58ccb3){return _0x46bcbf+_0x58ccb3;},'bgCxe':function(_0x1581ca,_0x143444){return _0x1581ca===_0x143444;},'VfUhi':'error','iBwcm':_0x139f17(0xe2)};if(_0x2f8495['czlDD'](!logToFile,!appLogStream))return;const _0x242706={'service':serviceName,..._0x4585c0},_0x396468=_0x2f8495['zvTZP'](JSON['stringify'](_0x242706),'\x0a');appLogStream['write'](_0x396468),(_0x2f8495[_0x139f17(0xc7)](_0x2fd9c1,_0x2f8495[_0x139f17(0xf3)])||_0x2f8495[_0x139f17(0xc7)](_0x2fd9c1,_0x2f8495[_0x139f17(0x124)]))&&(errorLogStream&&errorLogStream[_0x139f17(0x9e)](_0x396468));}function a0_0x9884(_0x28394b,_0x234eae){_0x28394b=_0x28394b-0x86;const _0x3c7ec0=a0_0x3c7e();let _0x988464=_0x3c7ec0[_0x28394b];if(a0_0x9884['dxhjDt']===undefined){var _0x378367=function(_0x43e018){const _0x55e364='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1cc6c2='',_0x5962df='';for(let _0x34aa5e=0x0,_0x4d8b13,_0xcdbeea,_0x623dd6=0x0;_0xcdbeea=_0x43e018['charAt'](_0x623dd6++);~_0xcdbeea&&(_0x4d8b13=_0x34aa5e%0x4?_0x4d8b13*0x40+_0xcdbeea:_0xcdbeea,_0x34aa5e++%0x4)?_0x1cc6c2+=String['fromCharCode'](0xff&_0x4d8b13>>(-0x2*_0x34aa5e&0x6)):0x0){_0xcdbeea=_0x55e364['indexOf'](_0xcdbeea);}for(let _0x7801cf=0x0,_0x20d495=_0x1cc6c2['length'];_0x7801cf<_0x20d495;_0x7801cf++){_0x5962df+='%'+('00'+_0x1cc6c2['charCodeAt'](_0x7801cf)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5962df);};a0_0x9884['NVegqZ']=_0x378367,a0_0x9884['ZwgnzS']={},a0_0x9884['dxhjDt']=!![];}const _0x120e39=_0x3c7ec0[0x0],_0x58e34c=_0x28394b+_0x120e39,_0xd67211=a0_0x9884['ZwgnzS'][_0x58e34c];return!_0xd67211?(_0x988464=a0_0x9884['NVegqZ'](_0x988464),a0_0x9884['ZwgnzS'][_0x58e34c]=_0x988464):_0x988464=_0xd67211,_0x988464;}const createRequestLogger=(_0x48e09e={})=>{const _0x4ad0c0=a0_0x12f6df;return logger[_0x4ad0c0(0x127)](_0x48e09e);},logServerStart=_0x3462c6=>{const _0x4b8a34=a0_0x12f6df,_0x26d4a4={'skpwc':_0x4b8a34(0x121),'eUOQX':function(_0x5927b3,_0x1f032c){return _0x5927b3-_0x1f032c;},'XPPCA':'ACTIVE','zMDaW':function(_0x2b24ce,_0x3521d0,_0xe27fe6){return _0x2b24ce(_0x3521d0,_0xe27fe6);}},_0x1aefa9=_0x26d4a4[_0x4b8a34(0xd6)],_0x41ecd2=Math[_0x4b8a34(0xc9)](0x0,0x37-_0x1aefa9['length']),_0x11a7fb=Math[_0x4b8a34(0x9a)](_0x41ecd2/0x2),_0x5884bf=_0x26d4a4[_0x4b8a34(0x134)](_0x41ecd2,_0x11a7fb),_0x5312f7='║'+'\x20'['repeat'](_0x11a7fb)+_0x1aefa9+'\x20'[_0x4b8a34(0x144)](_0x5884bf)+'║',_0x54b2a3='\x0a╔═══════════════════════════════════════════════════════╗\x0a'+_0x5312f7+_0x4b8a34(0x115)+(_0x3462c6[_0x4b8a34(0x117)]||'Node.js')['padEnd'](0x26)+'\x20║\x0a║\x20\x20Project\x20\x20\x20\x20\x20:\x20'+(_0x3462c6[_0x4b8a34(0x116)]||'N/A')['padEnd'](0x26)+'\x20║\x0a║\x20\x20Port\x20\x20\x20\x20\x20\x20\x20\x20:\x20'+String(_0x3462c6['port']||0xbb8)['padEnd'](0x26)+_0x4b8a34(0xfc)+(_0x3462c6[_0x4b8a34(0xe9)]||_0x4b8a34(0xeb))['padEnd'](0x26)+'\x20║\x0a║\x20\x20API\x20Key\x20\x20\x20\x20\x20:\x20'+(_0x3462c6['apiKey']?_0x26d4a4['XPPCA']:_0x4b8a34(0x87))[_0x4b8a34(0x146)](0x26)+_0x4b8a34(0xc4);console[_0x4b8a34(0x147)](_0x54b2a3);const _0x5c2899={'event':'server_starting','project':_0x3462c6['project'],'port':_0x3462c6[_0x4b8a34(0xa2)],'config':_0x3462c6['configFile'],'apiKeyEnabled':!!_0x3462c6[_0x4b8a34(0xe6)]};logger[_0x4b8a34(0x132)](_0x5c2899),_0x26d4a4['zMDaW'](writeToFileLog,{..._0x5c2899,'level':_0x4b8a34(0x132),'msg':_0x4b8a34(0x122)+_0x3462c6['project']+_0x4b8a34(0x119)+_0x3462c6[_0x4b8a34(0xa2)],'time':new Date()[_0x4b8a34(0x13f)]()},_0x4b8a34(0x132));},logServerReady=_0x1917f1=>{const _0x39fe7b=a0_0x12f6df,_0x4a9f72={'iNuMx':function(_0x5bdc8c,_0x59dfce,_0x3c746d){return _0x5bdc8c(_0x59dfce,_0x3c746d);},'IbdWM':_0x39fe7b(0x132)},_0x596c00={'event':'server_ready','port':_0x1917f1[_0x39fe7b(0xa2)],'module':_0x1917f1[_0x39fe7b(0xa3)],'healthCheck':_0x1917f1[_0x39fe7b(0x86)],'serviceInfo':_0x1917f1['serviceInfo'],'baseUrl':_0x1917f1['baseUrl']},_0x3c0a6b='[OK]\x20Server\x20ready\x20on\x20port\x20'+_0x1917f1['port'];logger[_0x39fe7b(0x132)](_0x596c00,_0x3c0a6b),_0x4a9f72['iNuMx'](writeToFileLog,{..._0x596c00,'level':_0x4a9f72[_0x39fe7b(0x106)],'msg':_0x3c0a6b,'time':new Date()['toISOString']()},_0x39fe7b(0x132)),_0x1917f1['healthCheck']&&logger[_0x39fe7b(0x132)]('\x20\x20Health:\x20'+_0x1917f1[_0x39fe7b(0x86)]),_0x1917f1[_0x39fe7b(0xb5)]&&logger['info']('\x20\x20Info:\x20\x20\x20'+_0x1917f1['serviceInfo']),_0x1917f1['baseUrl']&&logger[_0x39fe7b(0x132)]('\x20\x20URL:\x20\x20\x20\x20'+_0x1917f1[_0x39fe7b(0x95)]);},logProjectLoaded=(_0x589087,_0x3306b0)=>{const _0x169bd5=a0_0x12f6df,_0x4763e1={'tUgoJ':function(_0x3e2545,_0x5a3d7c,_0x447396){return _0x3e2545(_0x5a3d7c,_0x447396);},'hLSzF':_0x169bd5(0x132)},_0x95b36e={'event':_0x169bd5(0xcd),'project':_0x589087,'path':_0x3306b0},_0x4ad5bb='[OK]\x20Project\x20loaded:\x20'+_0x589087;logger['info'](_0x95b36e,_0x4ad5bb),_0x4763e1['tUgoJ'](writeToFileLog,{..._0x95b36e,'level':'info','msg':_0x4ad5bb,'time':new Date()[_0x169bd5(0x13f)]()},_0x4763e1['hLSzF']);},logEndpointRegistered=(_0x2c1587,_0x1e3159)=>{const _0x4872e9=a0_0x12f6df,_0x31bc6d={'RGiBW':_0x4872e9(0xdb),'ntwGv':function(_0x3ea7bb,_0x1bf194,_0x3778ad){return _0x3ea7bb(_0x1bf194,_0x3778ad);}},_0x1a1968={'event':_0x31bc6d['RGiBW'],'endpoint':_0x2c1587,'route':_0x1e3159},_0x24c430=_0x4872e9(0xb8)+_0x2c1587+':\x20'+_0x1e3159;logger[_0x4872e9(0x12c)](_0x1a1968,_0x24c430),_0x31bc6d['ntwGv'](writeToFileLog,{..._0x1a1968,'level':'debug','msg':_0x24c430,'time':new Date()[_0x4872e9(0x13f)]()},_0x4872e9(0x12c));},logDatabaseConfig=_0x16072c=>{const _0x15b31f=a0_0x12f6df,_0xff79d8={'iSmQv':_0x15b31f(0x12c)},_0x574ea2={'event':_0x15b31f(0x133),'host':_0x16072c[_0x15b31f(0x11c)],'port':_0x16072c['port'],'database':_0x16072c['database'],'type':_0x16072c['type'],'user':_0x16072c[_0x15b31f(0xed)]},_0x24a149=_0x15b31f(0xd3)+_0x16072c[_0x15b31f(0x102)]+_0x15b31f(0xe7)+_0x16072c['host']+':'+_0x16072c[_0x15b31f(0xa2)]+'/'+_0x16072c['database'];logger[_0x15b31f(0x12c)](_0x574ea2,_0x24a149),writeToFileLog({..._0x574ea2,'level':_0x15b31f(0x12c),'msg':_0x24a149,'time':new Date()['toISOString']()},_0xff79d8[_0x15b31f(0xc2)]);},logRequest=(_0x2aa236,_0x143149,_0x9972d4)=>{const _0x15e3a6=a0_0x12f6df,_0xe5e3fc={'OMrpn':_0x15e3a6(0x8b),'LOaog':_0x15e3a6(0x132),'kSYsG':_0x15e3a6(0x12d),'Cdyix':function(_0x4e82b2,_0x106a1d){return _0x4e82b2>=_0x106a1d;},'qdNuC':function(_0x15af6b,_0x5ac4b1,_0x211af6){return _0x15af6b(_0x5ac4b1,_0x211af6);}},_0x3cd61b={'event':_0xe5e3fc[_0x15e3a6(0x10d)],'method':_0x2aa236[_0x15e3a6(0xe5)],'path':_0x2aa236['path'],'statusCode':_0x143149['statusCode'],'durationMs':_0x9972d4,'ip':_0x2aa236['ip']},_0xc1067b=_0x2aa236['method']+'\x20'+_0x2aa236[_0x15e3a6(0x104)]+_0x15e3a6(0xe1)+_0x143149['statusCode']+'\x20('+_0x9972d4+'ms)';let _0x24a6fa=_0xe5e3fc[_0x15e3a6(0xd5)];if(_0x143149['statusCode']>=0x1f4)_0x24a6fa=_0xe5e3fc['kSYsG'],logger['error'](_0x3cd61b,_0xc1067b);else _0xe5e3fc[_0x15e3a6(0x135)](_0x143149['statusCode'],0x190)?(_0x24a6fa='warn',logger['warn'](_0x3cd61b,_0xc1067b)):logger[_0x15e3a6(0x132)](_0x3cd61b,_0xc1067b);_0xe5e3fc['qdNuC'](writeToFileLog,{..._0x3cd61b,'level':_0x24a6fa,'msg':_0xc1067b,'time':new Date()['toISOString']()},_0x24a6fa);},SENSITIVE_PARAM_PATTERNS=[a0_0x12f6df(0xdc),'passwd','pwd',a0_0x12f6df(0x13a),'access_token','refresh_token',a0_0x12f6df(0xde),a0_0x12f6df(0xdd),'apikey','api_key','credential','credentials','pin',a0_0x12f6df(0xb3),'private_key','privatekey'],redactSensitiveParams=(_0x297e48,_0x43d75a)=>{const _0x32e37c=a0_0x12f6df,_0x308244={'vVJLk':function(_0x352c67,_0x5d2f21){return _0x352c67===_0x5d2f21;},'KCjPH':function(_0x501f0c,_0x1f01c4){return _0x501f0c>_0x1f01c4;},'ovRxH':_0x32e37c(0x105),'jWMcZ':_0x32e37c(0xb0)};if(!_0x297e48||_0x308244['vVJLk'](_0x297e48[_0x32e37c(0x112)],0x0))return _0x297e48;const _0x41eb7a=_0x43d75a['toLowerCase'](),_0x768c60=_0x41eb7a['match'](/\(([^)]+)\)\s*values/i);let _0x3655d0=[];_0x768c60&&(_0x3655d0=_0x768c60[0x1]['split'](',')[_0x32e37c(0xbc)](_0x3fe239=>_0x3fe239[_0x32e37c(0x13c)]()[_0x32e37c(0xcf)]()));const _0xda4832=_0x41eb7a['match'](/set\s+(.+?)(?:\s+where|$)/i);if(_0xda4832){const _0x1e9c1b=_0xda4832[0x1],_0x2bef49=_0x1e9c1b[_0x32e37c(0x141)](/(\w+)\s*=/g);_0x2bef49&&(_0x3655d0=_0x2bef49[_0x32e37c(0xbc)](_0x413e4f=>_0x413e4f[_0x32e37c(0xc1)](/\s*=/,'')['trim']()[_0x32e37c(0xcf)]()));}return _0x297e48[_0x32e37c(0xbc)]((_0x347107,_0x356f7a)=>{const _0x32ca7f=_0x32e37c;if(_0x3655d0[_0x356f7a]){const _0x28512d=_0x3655d0[_0x356f7a],_0x50af77=SENSITIVE_PARAM_PATTERNS[_0x32ca7f(0x9b)](_0x8c0dd5=>_0x28512d['includes'](_0x8c0dd5));if(_0x50af77)return'[REDACTED]';}if(_0x308244[_0x32ca7f(0xc3)](typeof _0x347107,_0x32ca7f(0x140))&&_0x308244[_0x32ca7f(0xb4)](_0x347107['length'],0x20)){if(/^[a-zA-Z0-9+/=_.-]+$/['test'](_0x347107)&&_0x347107['includes']('.'))return _0x308244['ovRxH'];if(/^[a-fA-F0-9]{32,}$/[_0x32ca7f(0x143)](_0x347107))return _0x308244[_0x32ca7f(0xa6)];}return _0x347107;});},parseQueryMetadata=_0x479586=>{const _0x2662a1=a0_0x12f6df,_0x3659ba={'fHGGb':'INSERT','lYPKp':'DELETE','kGRYb':_0x2662a1(0xb2),'DYEeD':_0x2662a1(0xee),'xFsxd':_0x2662a1(0x138),'XByVt':_0x2662a1(0x8f),'tfQIp':_0x2662a1(0xf1),'mcDzJ':_0x2662a1(0xef)},_0x30e963=_0x479586[_0x2662a1(0x13c)](),_0x41bf46=_0x30e963[_0x2662a1(0x10a)]();let _0x4cc7bf='UNKNOWN',_0x33492f=null;if(_0x41bf46['startsWith']('SELECT')){_0x4cc7bf=_0x2662a1(0xd9);const _0x105b63=_0x30e963['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x33492f=_0x105b63?_0x105b63[0x1]:null;}else{if(_0x41bf46['startsWith'](_0x3659ba['fHGGb'])){_0x4cc7bf=_0x2662a1(0xf5);const _0x5ebbb9=_0x30e963[_0x2662a1(0x141)](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x33492f=_0x5ebbb9?_0x5ebbb9[0x1]:null;}else{if(_0x41bf46['startsWith'](_0x2662a1(0x11e))){_0x4cc7bf='UPDATE';const _0x37d585=_0x30e963[_0x2662a1(0x141)](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x33492f=_0x37d585?_0x37d585[0x1]:null;}else{if(_0x41bf46[_0x2662a1(0x94)](_0x2662a1(0x10c))){_0x4cc7bf=_0x3659ba['lYPKp'];const _0x365151=_0x30e963['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x33492f=_0x365151?_0x365151[0x1]:null;}else{if(_0x41bf46[_0x2662a1(0x94)]('BEGIN')||_0x41bf46[_0x2662a1(0x94)](_0x2662a1(0xda)))_0x4cc7bf='TRANSACTION_BEGIN';else{if(_0x41bf46['startsWith'](_0x3659ba[_0x2662a1(0xf0)]))_0x4cc7bf=_0x3659ba['DYEeD'];else{if(_0x41bf46['startsWith'](_0x2662a1(0x11b)))_0x4cc7bf=_0x3659ba['xFsxd'];else{if(_0x41bf46[_0x2662a1(0x94)]('CREATE'))_0x4cc7bf=_0x3659ba[_0x2662a1(0x8c)];else{if(_0x41bf46['startsWith'](_0x3659ba[_0x2662a1(0x9c)]))_0x4cc7bf=_0x3659ba['mcDzJ'];else _0x41bf46[_0x2662a1(0x94)](_0x2662a1(0xab))&&(_0x4cc7bf='DDL_DROP');}}}}}}}}return{'type':_0x4cc7bf,'table':_0x33492f};},startQueryTimer=()=>{const _0x2bd119=a0_0x12f6df,_0x1b4ae7={'Mispd':function(_0x5a36d9,_0x311993){return _0x5a36d9(_0x311993);},'EyjWQ':function(_0x2890c4,_0x524185){return _0x2890c4+_0x524185;},'VDUTq':function(_0x5232c1,_0x17958a){return _0x5232c1*_0x17958a;}},_0xe7ce22=process[_0x2bd119(0xd7)]();return()=>{const _0x569864=_0x2bd119,[_0xaf9a,_0x5d2481]=process[_0x569864(0xd7)](_0xe7ce22);return _0x1b4ae7[_0x569864(0xe8)](parseFloat,_0x1b4ae7[_0x569864(0xe0)](_0x1b4ae7[_0x569864(0xf6)](_0xaf9a,0x3e8),_0x5d2481/0xf4240)[_0x569864(0xa7)](0x2));};},logQuery=(_0x58ce8e,_0x3183e7=[],_0x32a7ff={})=>{const _0x209336=a0_0x12f6df,_0x1db2b8={'YaCNe':'DB\x20Query','CuQma':function(_0x2bb0a0,_0x1d3aa7){return _0x2bb0a0(_0x1d3aa7);},'voSoU':_0x209336(0x14d),'rzyOj':function(_0x5ae5ed,_0x28517c){return _0x5ae5ed>_0x28517c;},'zjNXv':function(_0x28355f,_0x464bcc,_0x1544d0){return _0x28355f(_0x464bcc,_0x1544d0);},'jWuDU':function(_0x44d70b,_0x20f74e){return _0x44d70b!==_0x20f74e;},'UxNmy':_0x209336(0x110),'xhnab':function(_0x51df3d,_0x4db647){return _0x51df3d===_0x4db647;},'mJzjx':_0x209336(0x132)};if(!sqlLogEnabled){logger[_0x209336(0x12c)]({'event':'db_query','query':_0x58ce8e['substring'](0x0,0xc8),'paramCount':_0x3183e7[_0x209336(0x112)]},_0x1db2b8[_0x209336(0x11d)]);return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType=_0x209336(0x13e)}=_0x32a7ff,{type:_0x5b4310,table:_0x231206}=_0x1db2b8['CuQma'](parseQueryMetadata,_0x58ce8e),_0x50f41a={'event':_0x1db2b8[_0x209336(0xd4)],'queryType':_0x5b4310,'table':_0x231206,'query':_0x58ce8e,'paramCount':_0x3183e7[_0x209336(0x112)],'dbType':dbType};sqlLogParams&&_0x1db2b8['rzyOj'](_0x3183e7['length'],0x0)&&(_0x50f41a[_0x209336(0x128)]=_0x1db2b8['zjNXv'](redactSensitiveParams,_0x3183e7,_0x58ce8e));duration!==null&&(_0x50f41a['durationMs']=duration,_0x50f41a['isSlow']=duration>sqlLogSlowThreshold);rowsAffected!==null&&(_0x50f41a['rowsAffected']=rowsAffected);const _0x659c2=_0x231206||_0x209336(0xe3);let _0x3c18eb='['+_0x5b4310+']\x20'+_0x659c2;_0x1db2b8[_0x209336(0xba)](duration,null)&&(_0x3c18eb+='\x20('+duration+_0x209336(0x91));const _0x5f5815=duration!==null&&_0x1db2b8['rzyOj'](duration,sqlLogSlowThreshold);let _0x2463e4='debug';if(_0x5f5815)_0x3c18eb+=_0x1db2b8['UxNmy'],_0x2463e4='warn',logger['warn'](_0x50f41a,_0x3c18eb);else _0x1db2b8[_0x209336(0x131)](sqlLogLevel,_0x209336(0x132))?(_0x2463e4=_0x1db2b8['mJzjx'],logger['info'](_0x50f41a,_0x3c18eb)):logger[_0x209336(0x12c)](_0x50f41a,_0x3c18eb);_0x1db2b8['zjNXv'](writeToFileLog,{..._0x50f41a,'level':_0x2463e4,'msg':_0x3c18eb,'time':new Date()['toISOString']()},_0x2463e4);},logTransaction=(_0x1efe02,_0x294898)=>{const _0x48f6fe=a0_0x12f6df,_0x3f8a1e={'DgKKJ':_0x48f6fe(0x12c)},_0x3554a6={'event':'db_transaction','status':_0x1efe02,'queryCount':_0x294898},_0x52f222=_0x48f6fe(0x152)+_0x1efe02;logger['debug'](_0x3554a6,_0x52f222),writeToFileLog({..._0x3554a6,'level':_0x3f8a1e[_0x48f6fe(0xe4)],'msg':_0x52f222,'time':new Date()['toISOString']()},_0x3f8a1e[_0x48f6fe(0xe4)]);},redactObject=_0x4ad729=>{const _0x436a0a=a0_0x12f6df,_0xedb9bd={'ooZPl':_0x436a0a(0xa5),'Mdese':'password','FRMfX':'pwd','gwdEB':_0x436a0a(0x13a),'udjYF':_0x436a0a(0xde),'KYyAZ':'api_key','sTbFq':_0x436a0a(0x97),'mwHRu':'ssn','ZTDKm':'pin','bQkBo':_0x436a0a(0x120),'YXAhD':function(_0x492527,_0x20f14f){return _0x492527===_0x20f14f;}};if(!_0x4ad729||typeof _0x4ad729!==_0xedb9bd[_0x436a0a(0x126)])return _0x4ad729;const _0x1a4df8=[_0xedb9bd[_0x436a0a(0x103)],_0x436a0a(0xa8),_0xedb9bd['FRMfX'],_0xedb9bd[_0x436a0a(0xb7)],_0xedb9bd['udjYF'],_0x436a0a(0x98),_0xedb9bd[_0x436a0a(0xdf)],_0x436a0a(0xc8),_0xedb9bd[_0x436a0a(0xcc)],_0x436a0a(0x151),_0x436a0a(0x142),_0xedb9bd[_0x436a0a(0xac)],_0xedb9bd['ZTDKm'],'private_key',_0xedb9bd['bQkBo'],'refresh_token','access_token'],_0x4c0af2=Array['isArray'](_0x4ad729)?[..._0x4ad729]:{..._0x4ad729};for(const _0x1ae901 of Object[_0x436a0a(0x10b)](_0x4c0af2)){const _0x1bca78=_0x1ae901['toLowerCase']();if(_0x1a4df8['some'](_0x2f2e0d=>_0x1bca78[_0x436a0a(0x14b)](_0x2f2e0d)))_0x4c0af2[_0x1ae901]=_0x436a0a(0xae);else _0xedb9bd['YXAhD'](typeof _0x4c0af2[_0x1ae901],'object')&&_0x4c0af2[_0x1ae901]!==null&&(_0x4c0af2[_0x1ae901]=redactObject(_0x4c0af2[_0x1ae901]));}return _0x4c0af2;},logError=(_0x3d911c,_0x47b89f={},_0x3184eb=null)=>{const _0x44b338=a0_0x12f6df,_0x343b06={'baalq':_0x44b338(0x12d)},_0x5c07ae={'event':_0x44b338(0x12d),'errorName':_0x3d911c[_0x44b338(0xc6)]||'Error','errorMessage':_0x3d911c['message'],'errorCode':_0x3d911c['code']||null,'stack':_0x3d911c[_0x44b338(0x12f)],..._0x47b89f},_0x3ece00=_0x3184eb||_0x44b338(0x12e)+_0x3d911c[_0x44b338(0x90)];logger['error'](_0x5c07ae,_0x3ece00),writeToFileLog({..._0x5c07ae,'level':_0x343b06[_0x44b338(0xb9)],'msg':_0x3ece00,'time':new Date()['toISOString']()},'error');},logFatalError=(_0xcf64e3,_0x16bf4d={},_0x485dee=null)=>{const _0x4188d8=a0_0x12f6df,_0x2d0a6f={'BAFOZ':'error'},_0xa2a4dd={'event':_0x4188d8(0x14c),'errorName':_0xcf64e3[_0x4188d8(0xc6)]||'Error','errorMessage':_0xcf64e3[_0x4188d8(0x90)],'errorCode':_0xcf64e3[_0x4188d8(0x10e)]||null,'stack':_0xcf64e3['stack'],'severity':'CRITICAL',..._0x16bf4d},_0x5420e8=_0x485dee||_0x4188d8(0x109)+_0xcf64e3[_0x4188d8(0x90)];logger[_0x4188d8(0xe2)](_0xa2a4dd,_0x5420e8),writeToFileLog({..._0xa2a4dd,'level':_0x4188d8(0xe2),'msg':_0x5420e8,'time':new Date()['toISOString']()},_0x2d0a6f['BAFOZ']);},logHttpError=(_0x48e9d5,_0x5045c2,_0xda4978={})=>{const _0x376449=a0_0x12f6df,_0x159194={'nhuFz':function(_0x1f2c9c,_0x210d21){return _0x1f2c9c(_0x210d21);},'lEGBS':_0x376449(0x12d)},_0x4b9727={'event':'http_error','errorName':_0x48e9d5['name']||'Error','errorMessage':_0x48e9d5[_0x376449(0x90)],'errorCode':_0x48e9d5['code']||_0x48e9d5[_0x376449(0x12a)]||0x1f4,'stack':_0x48e9d5[_0x376449(0x12f)],'method':_0x5045c2?.['method'],'url':_0x5045c2?.['url']||_0x5045c2?.[_0x376449(0xbb)],'path':_0x5045c2?.['path'],'ip':_0x5045c2?.['ip']||_0x5045c2?.[_0x376449(0xec)]?.[_0x376449(0x13b)],'userAgent':_0x5045c2?.[_0x376449(0xa4)]?.(_0x376449(0x108)),'requestId':_0x5045c2?.['id']||_0x5045c2?.[_0x376449(0xcb)]?.[_0x376449(0x113)],'body':_0x5045c2?.[_0x376449(0x13d)]?_0x159194['nhuFz'](redactObject,_0x5045c2['body']):undefined,'query':_0x5045c2?.['query'],..._0xda4978},_0x5ef620=_0x48e9d5[_0x376449(0x12a)]||_0x48e9d5[_0x376449(0xd8)]||0x1f4,_0x3eaf2e=_0x376449(0xf2)+_0x5ef620+':\x20'+_0x48e9d5['message'];_0x5ef620>=0x1f4?logger[_0x376449(0x12d)](_0x4b9727,_0x3eaf2e):logger['warn'](_0x4b9727,_0x3eaf2e),writeToFileLog({..._0x4b9727,'level':_0x5ef620>=0x1f4?_0x159194['lEGBS']:_0x376449(0x148),'msg':_0x3eaf2e,'time':new Date()['toISOString']()},_0x5ef620>=0x1f4?_0x159194[_0x376449(0x107)]:'warn');},logUncaughtError=(_0x3c484d,_0x108298)=>{const _0x588547=a0_0x12f6df,_0x588353={'JFwip':_0x588547(0x10f),'ZNfOB':'CRITICAL','rjQnh':function(_0x415794,_0x2121a6,_0x32d8c1){return _0x415794(_0x2121a6,_0x32d8c1);},'TYUoc':'fatal'},_0x4b570e={'event':_0x3c484d,'errorName':_0x108298?.[_0x588547(0xc6)]||_0x588353[_0x588547(0x88)],'errorMessage':_0x108298?.[_0x588547(0x90)]||String(_0x108298),'errorCode':_0x108298?.['code']||null,'stack':_0x108298?.[_0x588547(0x12f)],'severity':_0x588353['ZNfOB'],'processId':process['pid'],'memoryUsage':process[_0x588547(0xad)](),'uptime':process[_0x588547(0x92)]()},_0x134508='['+_0x3c484d['toUpperCase']()+']\x20'+(_0x108298?.[_0x588547(0x90)]||_0x108298);logger[_0x588547(0xe2)](_0x4b570e,_0x134508),_0x588353[_0x588547(0x130)](writeToFileLog,{..._0x4b570e,'level':_0x588353['TYUoc'],'msg':_0x134508,'time':new Date()[_0x588547(0x13f)]()},_0x588547(0x12d));},setupGlobalErrorHandlers=()=>{const _0x246035=a0_0x12f6df,_0x26aed0={'sptTM':function(_0x34dd32,_0x32ee7b,_0x5a85d6){return _0x34dd32(_0x32ee7b,_0x5a85d6);},'nUBuX':function(_0x124417,_0xd9715d){return _0x124417 instanceof _0xd9715d;},'cvrsd':function(_0x153a08,_0x378b90){return _0x153a08(_0x378b90);},'SSGAh':'process_warning','fYqHT':'unhandledRejection','XmRRd':_0x246035(0xfb),'KYnAt':_0x246035(0x123)};process['on'](_0x246035(0xf7),_0x17ee5a=>{const _0x44ec82=_0x246035;logUncaughtError('uncaughtException',_0x17ee5a),_0x26aed0[_0x44ec82(0x145)](setTimeout,()=>{const _0x24737a=_0x44ec82;process[_0x24737a(0x118)](0x1);},0x3e8);}),process['on'](_0x26aed0['fYqHT'],(_0x481667,_0x186b00)=>{const _0x41a513=_0x246035,_0x2e3a7e=_0x26aed0[_0x41a513(0x89)](_0x481667,Error)?_0x481667:new Error(_0x26aed0[_0x41a513(0x111)](String,_0x481667));logUncaughtError('unhandledRejection',_0x2e3a7e);}),process['on'](_0x26aed0['XmRRd'],_0x5d15c8=>{const _0x4ac518=_0x246035;logger[_0x4ac518(0x148)]({'event':_0x26aed0[_0x4ac518(0xc0)],'name':_0x5d15c8['name'],'message':_0x5d15c8[_0x4ac518(0x90)],'stack':_0x5d15c8['stack']},_0x4ac518(0xf4)+_0x5d15c8['message']);});const _0x3eaf9d={'event':_0x26aed0[_0x246035(0xfa)]},_0x3ad60f=_0x246035(0x9d);logger[_0x246035(0x132)](_0x3eaf9d,_0x3ad60f),_0x26aed0[_0x246035(0x145)](writeToFileLog,{..._0x3eaf9d,'level':_0x246035(0x132),'msg':_0x3ad60f,'time':new Date()['toISOString']()},_0x246035(0x132));},createErrorHandlerMiddleware=()=>{const _0x1c01b9={'obbbr':function(_0xb8159,_0x4b73f9){return _0xb8159>=_0x4b73f9;}};return(_0xb44c94,_0x212cd4,_0x496f91,_0x3e642b)=>{const _0x4a8196=a0_0x9884;logHttpError(_0xb44c94,_0x212cd4);const _0xb286ac=_0xb44c94[_0x4a8196(0x12a)]||_0xb44c94[_0x4a8196(0xd8)]||0x1f4;_0x496f91[_0x4a8196(0xd8)](_0xb286ac)['json']({'success':![],'error':_0x1c01b9['obbbr'](_0xb286ac,0x1f4)?_0x4a8196(0xd2):_0xb44c94[_0x4a8196(0x90)],'requestId':_0x212cd4['id']||_0x212cd4[_0x4a8196(0xcb)]?.['x-request-id']||null});};};module[a0_0x12f6df(0xb6)]={'logger':logger,'createRequestLogger':createRequestLogger,'logServerStart':logServerStart,'logServerReady':logServerReady,'logProjectLoaded':logProjectLoaded,'logEndpointRegistered':logEndpointRegistered,'logDatabaseConfig':logDatabaseConfig,'logRequest':logRequest,'logQuery':logQuery,'logTransaction':logTransaction,'startQueryTimer':startQueryTimer,'parseQueryMetadata':parseQueryMetadata,'redactSensitiveParams':redactSensitiveParams,'initFileLogging':initFileLogging,'logError':logError,'logFatalError':logFatalError,'logHttpError':logHttpError,'logUncaughtError':logUncaughtError,'setupGlobalErrorHandlers':setupGlobalErrorHandlers,'createErrorHandlerMiddleware':createErrorHandlerMiddleware,'redactObject':redactObject,'SQL_LOG_CONFIG':{'enabled':sqlLogEnabled,'level':sqlLogLevel,'logParams':sqlLogParams,'slowThreshold':sqlLogSlowThreshold},'FILE_LOG_CONFIG':{'enabled':logToFile,'directory':logDir,'serviceName':serviceName}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x5b4353=a0_0x1150;(function(_0x28b869,_0x7539a6){const _0x35d3ac=a0_0x1150,_0x1919bf=_0x28b869();while(!![]){try{const _0x586c8=parseInt(_0x35d3ac(0x16e))/0x1+parseInt(_0x35d3ac(0x147))/0x2+-parseInt(_0x35d3ac(0x160))/0x3+-parseInt(_0x35d3ac(0x155))/0x4*(-parseInt(_0x35d3ac(0x168))/0x5)+-parseInt(_0x35d3ac(0x151))/0x6+-parseInt(_0x35d3ac(0x144))/0x7+-parseInt(_0x35d3ac(0x170))/0x8*(-parseInt(_0x35d3ac(0x157))/0x9);if(_0x586c8===_0x7539a6)break;else _0x1919bf['push'](_0x1919bf['shift']());}catch(_0x1c869b){_0x1919bf['push'](_0x1919bf['shift']());}}}(a0_0x3933,0x901df));const dbType=(process[a0_0x5b4353(0x156)]['DB_TYPE']||'postgresql')['toLowerCase']();let executeQuery;function a0_0x1150(_0x5d0320,_0x2510dc){_0x5d0320=_0x5d0320-0x141;const _0x3933ed=a0_0x3933();let _0x1150a2=_0x3933ed[_0x5d0320];if(a0_0x1150['nsjByJ']===undefined){var _0x2427f5=function(_0x353b95){const _0x43d196='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1f6f43='',_0x3b8590='';for(let _0x51bc51=0x0,_0x378748,_0x3c5251,_0x110b66=0x0;_0x3c5251=_0x353b95['charAt'](_0x110b66++);~_0x3c5251&&(_0x378748=_0x51bc51%0x4?_0x378748*0x40+_0x3c5251:_0x3c5251,_0x51bc51++%0x4)?_0x1f6f43+=String['fromCharCode'](0xff&_0x378748>>(-0x2*_0x51bc51&0x6)):0x0){_0x3c5251=_0x43d196['indexOf'](_0x3c5251);}for(let _0x1f69b9=0x0,_0x433d7e=_0x1f6f43['length'];_0x1f69b9<_0x433d7e;_0x1f69b9++){_0x3b8590+='%'+('00'+_0x1f6f43['charCodeAt'](_0x1f69b9)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3b8590);};a0_0x1150['CoVBSX']=_0x2427f5,a0_0x1150['CfBjst']={},a0_0x1150['nsjByJ']=!![];}const _0xf4f1fa=_0x3933ed[0x0],_0x203e6c=_0x5d0320+_0xf4f1fa,_0x5301cb=a0_0x1150['CfBjst'][_0x203e6c];return!_0x5301cb?(_0x1150a2=a0_0x1150['CoVBSX'](_0x1150a2),a0_0x1150['CfBjst'][_0x203e6c]=_0x1150a2):_0x1150a2=_0x5301cb,_0x1150a2;}if(dbType==='oracle'){const oracleDb=require('./db-oracle');executeQuery=(_0x382a14,_0x14016b)=>oracleDb[a0_0x5b4353(0x164)](_0x382a14,_0x14016b);}else{if(dbType===a0_0x5b4353(0x172)){const mysqlDb=require('./db-mysql');executeQuery=(_0x46ee81,_0x53c83b)=>mysqlDb['executeQuery'](_0x46ee81,_0x53c83b);}else executeQuery=require('./db')[a0_0x5b4353(0x164)];}const {logger}=require('./logger');class LookupResolver{constructor(){const _0x208d2c=a0_0x5b4353;this[_0x208d2c(0x173)]=new Map();}[a0_0x5b4353(0x166)](){const _0x39baf8=a0_0x5b4353,_0xacb51={'vJmHn':_0x39baf8(0x15b),'WkUaC':_0x39baf8(0x14e)};this['lookupCache']['clear'](),logger['debug']({'event':_0xacb51['vJmHn']},_0xacb51['WkUaC']);}async['loadLookupTable'](_0x492f74,_0x21ac8a,_0x369ba0){const _0x4bbde9=a0_0x5b4353,_0xb0beea={'DgtGh':function(_0x8731c3,_0x19f934){return _0x8731c3!==_0x19f934;},'EryAd':function(_0x1da011,_0x24de93){return _0x1da011!==_0x24de93;},'WWAlu':function(_0xd0b184,_0x47ba3a){return _0xd0b184(_0x47ba3a);},'vEmzC':'lookup_table_loaded','xdULq':_0x4bbde9(0x16b)},_0x558c43=_0x492f74+':'+_0x21ac8a+':'+_0x369ba0;if(this['lookupCache']['has'](_0x558c43))return this[_0x4bbde9(0x173)]['get'](_0x558c43);try{const _0x47904a=_0x4bbde9(0x149)+_0x369ba0+',\x20'+_0x21ac8a+'\x20FROM\x20'+_0x492f74,_0x10812b=await _0xb0beea[_0x4bbde9(0x153)](executeQuery,_0x47904a),_0x50c9f8=new Map();return _0x10812b[_0x4bbde9(0x15f)](_0x172e87=>{const _0x1a7686=_0x4bbde9,_0x2641a6=_0xb0beea[_0x1a7686(0x15d)](_0x172e87[_0x21ac8a],undefined)?_0x172e87[_0x21ac8a]:_0x172e87[_0x21ac8a['toUpperCase']()],_0x3de02f=_0x172e87[_0x369ba0]!==undefined?_0x172e87[_0x369ba0]:_0x172e87[_0x369ba0[_0x1a7686(0x142)]()];_0xb0beea[_0x1a7686(0x15c)](_0x2641a6,null)&&_0x2641a6!==undefined&&(_0x50c9f8[_0x1a7686(0x141)](String(_0x2641a6)[_0x1a7686(0x14f)]()['trim'](),_0x3de02f),_0x50c9f8['set'](_0xb0beea['WWAlu'](String,_0x2641a6)[_0x1a7686(0x163)](),_0x3de02f));}),this['lookupCache']['set'](_0x558c43,_0x50c9f8),logger['info']({'event':_0xb0beea[_0x4bbde9(0x14a)],'table':_0x492f74,'column':_0x21ac8a,'count':_0x10812b['length']},'Lookup\x20table\x20loaded:\x20'+_0x492f74),_0x50c9f8;}catch(_0x383e97){logger['error']({'event':_0xb0beea['xdULq'],'table':_0x492f74,'error':_0x383e97['message']},'Failed\x20to\x20load\x20lookup\x20table:\x20'+_0x492f74);throw _0x383e97;}}[a0_0x5b4353(0x148)](_0x58c3be,_0x44cd38){const _0x22942c=a0_0x5b4353,_0x488942={'uYAqU':function(_0x28f6c6,_0x4d2133){return _0x28f6c6===_0x4d2133;},'FKtAW':function(_0x2acf16,_0x320a80){return _0x2acf16(_0x320a80);}};if(_0x488942[_0x22942c(0x16d)](_0x58c3be,null)||_0x488942[_0x22942c(0x16d)](_0x58c3be,undefined)||_0x58c3be==='')return null;const _0x2181c5=_0x488942[_0x22942c(0x154)](String,_0x58c3be)['trim']();if(_0x44cd38[_0x22942c(0x14c)](_0x2181c5))return _0x44cd38['get'](_0x2181c5);const _0xbedf22=_0x2181c5[_0x22942c(0x14f)]();if(_0x44cd38['has'](_0xbedf22))return _0x44cd38['get'](_0xbedf22);return null;}async[a0_0x5b4353(0x15a)](_0x21a53d,_0x47ed40){const _0x1007cb=a0_0x5b4353,_0x192b23={'Dqltw':function(_0x432c76,_0x394ebb){return _0x432c76===_0x394ebb;},'RmMYi':function(_0x4feb5b,_0x2fff1b){return _0x4feb5b!==_0x2fff1b;},'sjfUt':function(_0x2feefb,_0x5d84d5){return _0x2feefb===_0x5d84d5;},'qnfRN':'lookup_fields_processed','iIICj':'Lookup\x20fields\x20processed'};if(!_0x47ed40||_0x192b23['sjfUt'](Object['keys'](_0x47ed40)[_0x1007cb(0x16c)],0x0))return{'processedRows':_0x21a53d,'errors':[]};const _0x587324=[],_0x91c075=new Map();for(const [_0x1856c1,_0x4ae61f]of Object['entries'](_0x47ed40)){const {lookupTable:_0x358279,lookupColumn:_0x2a8550,lookupIdColumn:_0x30de53}=_0x4ae61f,_0x1f255=_0x358279+':'+_0x2a8550+':'+_0x30de53;if(!_0x91c075['has'](_0x1f255)){const _0x79bcf7=await this[_0x1007cb(0x171)](_0x358279,_0x2a8550,_0x30de53);_0x91c075['set'](_0x1f255,_0x79bcf7);}}const _0x50da01=_0x21a53d[_0x1007cb(0x146)]((_0x3a66a2,_0x42b914)=>{const _0x51ed29=_0x1007cb,_0x2c2452={..._0x3a66a2};for(const [_0x5d709f,_0x234876]of Object['entries'](_0x47ed40)){const {lookupTable:_0x4dec7f,lookupColumn:_0x53bc15,lookupIdColumn:_0x38d333,targetField:_0x170e76,required:_0x573905}=_0x234876,_0x9fe114=_0x4dec7f+':'+_0x53bc15+':'+_0x38d333,_0x40c0d4=_0x91c075[_0x51ed29(0x150)](_0x9fe114),_0x4fc928=_0x3a66a2[_0x5d709f];if((_0x192b23[_0x51ed29(0x145)](_0x4fc928,null)||_0x4fc928===undefined||_0x192b23['Dqltw'](_0x4fc928,''))&&!_0x573905){_0x2c2452[_0x170e76]=null;continue;}const _0x582839=this['resolveLookupValue'](_0x4fc928,_0x40c0d4);_0x192b23['RmMYi'](_0x582839,null)?_0x2c2452[_0x170e76]=_0x582839:(_0x573905&&_0x587324[_0x51ed29(0x14b)]({'rowIndex':_0x42b914,'field':_0x5d709f,'value':_0x4fc928,'targetField':_0x170e76,'lookupTable':_0x4dec7f,'message':_0x51ed29(0x14d)+_0x4fc928+_0x51ed29(0x161)+_0x4dec7f}),_0x2c2452[_0x170e76]=null);}return _0x2c2452;});return logger[_0x1007cb(0x16f)]({'event':_0x192b23[_0x1007cb(0x15e)],'totalRows':_0x21a53d[_0x1007cb(0x16c)],'errorCount':_0x587324[_0x1007cb(0x16c)],'lookupFieldCount':Object[_0x1007cb(0x159)](_0x47ed40)[_0x1007cb(0x16c)]},_0x192b23['iIICj']),{'processedRows':_0x50da01,'errors':_0x587324};}[a0_0x5b4353(0x167)](_0x166777,_0x3da747){const _0x47396a=a0_0x5b4353,_0x33ced5={'huMVQ':function(_0x575019,_0x25171a){return _0x575019!==_0x25171a;},'nXNmc':function(_0x3f63bf,_0x10dba0){return _0x3f63bf!==_0x10dba0;}},_0x301814=new Set();return _0x166777[_0x47396a(0x15f)](_0x44d8c3=>{const _0x1c4f7b=_0x47396a,_0x58a517=_0x44d8c3[_0x3da747];_0x33ced5['huMVQ'](_0x58a517,null)&&_0x33ced5[_0x1c4f7b(0x143)](_0x58a517,undefined)&&_0x58a517!==''&&_0x301814[_0x1c4f7b(0x16a)](String(_0x58a517)['trim']());}),Array['from'](_0x301814);}async[a0_0x5b4353(0x158)](_0x56b75a,_0x2f87a9){const _0x3fcfbf=a0_0x5b4353,_0x5f38b7={'ybcyu':function(_0x495777,_0x283493){return _0x495777===_0x283493;}};if(!_0x2f87a9||_0x5f38b7[_0x3fcfbf(0x169)](Object[_0x3fcfbf(0x159)](_0x2f87a9)[_0x3fcfbf(0x16c)],0x0))return{'valid':!![],'errors':[],'suggestions':{}};const _0x3c11a3=[],_0x17c80f={};for(const [_0x1f1bf6,_0x3e9b33]of Object[_0x3fcfbf(0x152)](_0x2f87a9)){const {lookupTable:_0x2908e9,lookupColumn:_0x405344,lookupIdColumn:_0x47f8d2,required:_0x48e765}=_0x3e9b33,_0x30404=this[_0x3fcfbf(0x167)](_0x56b75a,_0x1f1bf6),_0xcbfca9=await this['loadLookupTable'](_0x2908e9,_0x405344,_0x47f8d2),_0x266077=[],_0x55c3ae=[];_0x30404['forEach'](_0x5e8377=>{const _0x1d6596=_0x3fcfbf,_0x54ee23=this['resolveLookupValue'](_0x5e8377,_0xcbfca9);_0x54ee23!==null?_0x55c3ae['push'](_0x5e8377):_0x266077[_0x1d6596(0x14b)](_0x5e8377);});if(_0x266077[_0x3fcfbf(0x16c)]>0x0&&_0x48e765){_0x3c11a3['push']({'field':_0x1f1bf6,'lookupTable':_0x2908e9,'invalidValues':_0x266077,'message':_0x266077[_0x3fcfbf(0x16c)]+'\x20value(s)\x20not\x20found\x20in\x20'+_0x2908e9});const _0x56c2a3=[];_0xcbfca9['forEach']((_0x8d401a,_0x1115aa)=>{const _0x5187b1=_0x3fcfbf;if(_0x1115aa===_0x1115aa[_0x5187b1(0x14f)]())return;_0x56c2a3[_0x5187b1(0x14b)](_0x1115aa);}),_0x17c80f[_0x1f1bf6]={'invalidValues':_0x266077,'availableValues':_0x56c2a3[_0x3fcfbf(0x162)](0x0,0x32)};}}return{'valid':_0x5f38b7[_0x3fcfbf(0x169)](_0x3c11a3['length'],0x0),'errors':_0x3c11a3,'suggestions':_0x17c80f};}}function a0_0x3933(){const _0x54c358=['mJq5m3LAtLjezq','DMfSAwrHDgvmB29RDxbwywX1zxm','A2v5CW','ChjVy2vZC0XVB2T1CezPzwXKCW','Bg9VA3vWx2nHy2HLx2nSzwfYzwq','rxj5qwq','rgD0r2G','Cw5MuK4','zM9YrwfJAa','mZiYodi4oeT5z01SzG','iIbUB3qGzM91BMqGAw4G','C2XPy2u','DhjPBq','zxHLy3v0zvf1zxj5','zxHWB3j0CW','y2XLyxjdywnOzq','z2v0rgLZDgLUy3rwywX1zxm','mtG3nZeWnvD6swrjtW','EwjJExu','ywrK','Bg9VA3vWx3rHyMXLx2XVywrFzxjYB3i','BgvUz3rO','DvLbCvu','ndKZnJq1CMvdwMPz','Aw5MBW','mty5mdrZD1Ljs3i','Bg9HzeXVB2T1CfrHyMXL','BxLZCwW','Bg9VA3vWq2fJAgu','C2v0','Dg9vChbLCKnHC2u','BLHoBwm','mtC4ndy3muLoCuzWva','rhfSDhC','BwfW','nZyWmJG2zvPmshrZ','CMvZB2X2zuXVB2T1CfzHBhvL','u0vmrunuia','DKvTEKm','ChvZAa','AgfZ','vMfSDwuGiG','tg9VA3vWignHy2HLignSzwfYzwq','Dg9mB3DLCKnHC2u','z2v0','mZK4ndaWmeflzwPbBa','zw50CMLLCW','v1DbBhu','rKT0qvC','mtjLBgDnzha','zw52'];a0_0x3933=function(){return _0x54c358;};return a0_0x3933();}module[a0_0x5b4353(0x165)]=new LookupResolver();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const a0_0x407c17=a0_0x5ca2;function a0_0x5ca2(_0x300b16,_0x3c635b){_0x300b16=_0x300b16-0x9c;const _0x43a608=a0_0x43a6();let _0x5ca29b=_0x43a608[_0x300b16];if(a0_0x5ca2['yiYHIS']===undefined){var _0x46bada=function(_0x43e5bb){const _0x28b534='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2c17b1='',_0x5783b5='';for(let _0x3c5c17=0x0,_0x1d2d43,_0xf23960,_0x1eaac9=0x0;_0xf23960=_0x43e5bb['charAt'](_0x1eaac9++);~_0xf23960&&(_0x1d2d43=_0x3c5c17%0x4?_0x1d2d43*0x40+_0xf23960:_0xf23960,_0x3c5c17++%0x4)?_0x2c17b1+=String['fromCharCode'](0xff&_0x1d2d43>>(-0x2*_0x3c5c17&0x6)):0x0){_0xf23960=_0x28b534['indexOf'](_0xf23960);}for(let _0x59973a=0x0,_0x577510=_0x2c17b1['length'];_0x59973a<_0x577510;_0x59973a++){_0x5783b5+='%'+('00'+_0x2c17b1['charCodeAt'](_0x59973a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5783b5);};a0_0x5ca2['ebUelO']=_0x46bada,a0_0x5ca2['wjbXim']={},a0_0x5ca2['yiYHIS']=!![];}const _0x208a51=_0x43a608[0x0],_0x54c5e4=_0x300b16+_0x208a51,_0x3366b0=a0_0x5ca2['wjbXim'][_0x54c5e4];return!_0x3366b0?(_0x5ca29b=a0_0x5ca2['ebUelO'](_0x5ca29b),a0_0x5ca2['wjbXim'][_0x54c5e4]=_0x5ca29b):_0x5ca29b=_0x3366b0,_0x5ca29b;}(function(_0x2c334c,_0x354421){const _0x1fa96d=a0_0x5ca2,_0x7c0749=_0x2c334c();while(!![]){try{const _0x172cf8=-parseInt(_0x1fa96d(0xa9))/0x1+parseInt(_0x1fa96d(0xbe))/0x2*(parseInt(_0x1fa96d(0xaa))/0x3)+parseInt(_0x1fa96d(0xa3))/0x4*(parseInt(_0x1fa96d(0xa1))/0x5)+-parseInt(_0x1fa96d(0xad))/0x6*(-parseInt(_0x1fa96d(0xba))/0x7)+parseInt(_0x1fa96d(0xc1))/0x8+-parseInt(_0x1fa96d(0xac))/0x9*(parseInt(_0x1fa96d(0xc6))/0xa)+-parseInt(_0x1fa96d(0xb6))/0xb;if(_0x172cf8===_0x354421)break;else _0x7c0749['push'](_0x7c0749['shift']());}catch(_0xa34a02){_0x7c0749['push'](_0x7c0749['shift']());}}}(a0_0x43a6,0x3cb27));function a0_0x43a6(){const _0x260d1f=['ntG1mtHRve1rEK0','ndiWoda0tursBuDz','C2v0','sK94ywu','CMvHzezPBgu','CgfYC2u','ugf5Bg9HzcbUB3qGzM91BMq6ia','AgfZ','zxjYB3i','zMLLBgroyw1L','nZiXotmWmfvUwNvYwq','lI4VlI4VCgf5Bg9Hza','zgvIDwC','sgfTCxa','ndjbs29eAve','BwvZC2fNzq','ugf5Bg9HzcbSB2fKzwqGC3vJy2vZC2z1BgX5igj5ig5HBwu','sLDHBhC','mK9Ivu1iBW','zxHWB3j0CW','rMfPBgvKihrVigXVywqGCgf5Bg9Hza','nJG3ntm2ExbdCvLR','y2XLyxi','y2fJAgu','Axnby3rPB25fBMfIBgvK','BNnKEwi','mZqWzM5mDufL','lI9SB2DNzxi','Bg9HzfbHEwXVywrcEu5HBwu','ChjVBwLZzxm','Aw5MBW','z2v0','AM9PBG','mJi3mgPUsezhCa','Cgf5Bg9HzdO','mZa0ngvlq2nXyW','Cgf0Aa','ywn0Aw9U','z2v0rxHWB3j0q29UzMLN','Cgf5Bg9Hzf9SB2fKx2vYCM9Y','Cgf5Bg9HzerPCG','mteYmdq4weHev0H2','mte1nZm3m21MBeXeua','Bg9HzfbHEwXVywq'];a0_0x43a6=function(){return _0x260d1f;};return a0_0x43a6();}const fs=require('fs')[a0_0x407c17(0x9d)],path=require(a0_0x407c17(0xa4)),{logger}=require(a0_0x407c17(0xc7));class PayloadLoader{constructor(){const _0x17e169=a0_0x407c17,_0x25c624={'JWalw':_0x17e169(0xb7)};this[_0x17e169(0xa8)]=path['join'](__dirname,_0x25c624[_0x17e169(0xbd)]),this[_0x17e169(0xc3)]=new Map();}async[a0_0x407c17(0xab)](_0x2d7a00,_0xa049c5){const _0x479cc0=a0_0x407c17,_0x12c1d7={'JOxae':_0x479cc0(0xa7)},_0xfccee3=_0x2d7a00+':'+_0xa049c5;if(this['cache']['has'](_0xfccee3))return this['cache'][_0x479cc0(0x9f)](_0xfccee3);const _0x5a916a=path['join'](this[_0x479cc0(0xa8)],_0x2d7a00+'_'+_0xa049c5+'.json');try{const _0x3c8188=await fs[_0x479cc0(0xb0)](_0x5a916a,'utf8'),_0x5f0dea=JSON['parse'](_0x3c8188);return this[_0x479cc0(0xc3)][_0x479cc0(0xae)](_0xfccee3,_0x5f0dea),logger[_0x479cc0(0xb8)]({'event':'payload_loaded','project':_0x2d7a00,'resource':_0xa049c5},'Payload\x20loaded\x20successfully'),_0x5f0dea;}catch(_0x110434){logger['error']({'event':_0x12c1d7[_0x479cc0(0xaf)],'project':_0x2d7a00,'resource':_0xa049c5,'error':_0x110434[_0x479cc0(0xbb)]},_0x479cc0(0xc0));throw new Error(_0x479cc0(0xb2)+_0x2d7a00+'_'+_0xa049c5);}}async[a0_0x407c17(0x9c)](_0x51d097){const _0x26c9bd=a0_0x407c17,_0x30abe4={'FvDjf':'payload_loaded'},_0x5d3f2b=_0x26c9bd(0xa2)+_0x51d097;if(this[_0x26c9bd(0xc3)][_0x26c9bd(0xb3)](_0x5d3f2b))return this[_0x26c9bd(0xc3)][_0x26c9bd(0x9f)](_0x5d3f2b);const _0x3b4f34=path[_0x26c9bd(0xa0)](this['payloadDir'],_0x51d097+'.json');try{const _0x2d6cfe=await fs['readFile'](_0x3b4f34,'utf8'),_0x2c9de0=JSON[_0x26c9bd(0xb1)](_0x2d6cfe);return this[_0x26c9bd(0xc3)]['set'](_0x5d3f2b,_0x2c9de0),logger[_0x26c9bd(0xb8)]({'event':_0x30abe4['FvDjf'],'payloadName':_0x51d097},_0x26c9bd(0xbc)),_0x2c9de0;}catch(_0x16df3e){logger[_0x26c9bd(0xb4)]({'event':_0x26c9bd(0xa7),'payloadName':_0x51d097,'error':_0x16df3e[_0x26c9bd(0xbb)]},'Failed\x20to\x20load\x20payload\x20by\x20name');throw new Error('Payload\x20not\x20found:\x20'+_0x51d097);}}[a0_0x407c17(0xc4)](_0x48f3ba,_0x260034){const _0x5d602b=a0_0x407c17,_0x3ed131={'nsdyb':function(_0x3234c1,_0x123178){return _0x3234c1===_0x123178;}};return _0x48f3ba[_0x5d602b(0xa5)]&&_0x3ed131[_0x5d602b(0xc5)](_0x48f3ba['action'][_0x260034],!![]);}[a0_0x407c17(0xa6)](_0x5753ed){const _0x46d7fa=a0_0x407c17;return{'columns':_0x5753ed[_0x46d7fa(0xb5)]||[],'filename':_0x5753ed['tableName']['replace']('.','-')+'-export','datatablesQuery':_0x5753ed['datatablesQuery']||null,'columnFormats':_0x5753ed['columnFormats']||null,'fieldLabels':_0x5753ed['fieldLabels']||null};}['clearCache'](){const _0x3b9764=a0_0x407c17,_0x2d7e7b={'Hamqp':'payload_cache_cleared'};this[_0x3b9764(0xc3)][_0x3b9764(0xc2)](),logger[_0x3b9764(0x9e)]({'event':_0x2d7e7b[_0x3b9764(0xb9)]},'Payload\x20cache\x20cleared');}}module[a0_0x407c17(0xbf)]=new PayloadLoader();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';(function(
|
|
1
|
+
'use strict';var a0_0x3b28ef=a0_0x242d;(function(_0x499a95,_0x1a51cb){var _0x240044=a0_0x242d,_0x504953=_0x499a95();while(!![]){try{var _0x2ca089=parseInt(_0x240044(0x1c0))/0x1+-parseInt(_0x240044(0x1c2))/0x2+parseInt(_0x240044(0x1be))/0x3+parseInt(_0x240044(0x1bd))/0x4+parseInt(_0x240044(0x1bb))/0x5*(parseInt(_0x240044(0x1bc))/0x6)+-parseInt(_0x240044(0x1b8))/0x7*(-parseInt(_0x240044(0x1ba))/0x8)+-parseInt(_0x240044(0x1bf))/0x9;if(_0x2ca089===_0x1a51cb)break;else _0x504953['push'](_0x504953['shift']());}catch(_0x2868c5){_0x504953['push'](_0x504953['shift']());}}}(a0_0x28c2,0x83a7e));function createResponse(_0x9a67,_0x252965,_0x4d9c6e=null){return{'success':!![],'statusCode':_0x9a67,'message':_0x252965,'data':_0x4d9c6e,'timestamp':new Date()['toISOString']()};}function createError(_0x5beaa2,_0x2e616f,_0xc8a2fa=null){var _0x4b433a=a0_0x242d;return{'success':![],'statusCode':_0x5beaa2,'message':_0x2e616f,'data':_0xc8a2fa,'timestamp':new Date()[_0x4b433a(0x1c1)]()};}function a0_0x242d(_0x15247d,_0x5be3cb){_0x15247d=_0x15247d-0x1b8;var _0x28c288=a0_0x28c2();var _0x242d70=_0x28c288[_0x15247d];if(a0_0x242d['hjNsWY']===undefined){var _0x44b669=function(_0x21b637){var _0x1fa93a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x59fa69='',_0x2ea826='';for(var _0x2a62bc=0x0,_0x9f5534,_0x453441,_0x8a896a=0x0;_0x453441=_0x21b637['charAt'](_0x8a896a++);~_0x453441&&(_0x9f5534=_0x2a62bc%0x4?_0x9f5534*0x40+_0x453441:_0x453441,_0x2a62bc++%0x4)?_0x59fa69+=String['fromCharCode'](0xff&_0x9f5534>>(-0x2*_0x2a62bc&0x6)):0x0){_0x453441=_0x1fa93a['indexOf'](_0x453441);}for(var _0x19a0ab=0x0,_0x152808=_0x59fa69['length'];_0x19a0ab<_0x152808;_0x19a0ab++){_0x2ea826+='%'+('00'+_0x59fa69['charCodeAt'](_0x19a0ab)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2ea826);};a0_0x242d['FKWhAh']=_0x44b669,a0_0x242d['nAOysh']={},a0_0x242d['hjNsWY']=!![];}var _0x309955=_0x28c288[0x0],_0x7625d9=_0x15247d+_0x309955,_0x7361c1=a0_0x242d['nAOysh'][_0x7625d9];return!_0x7361c1?(_0x242d70=a0_0x242d['FKWhAh'](_0x242d70),a0_0x242d['nAOysh'][_0x7625d9]=_0x242d70):_0x242d70=_0x7361c1,_0x242d70;}function createValidationError(_0x3cfcb4,_0x23c418){return{'success':![],'statusCode':0x190,'message':_0x3cfcb4,'data':{'errors':_0x23c418},'timestamp':new Date()['toISOString']()};}function a0_0x28c2(){var _0x4200c3=['Dg9ju09tDhjPBMC','mtKZmZG2t0fZsLLU','mZvYuuHjvgS','zxHWB3j0CW','mtuZmZa4mhjPrNDmvq','nJm1rwfmvwPO','mtG1mtbSt2DzqNC','mte2nZKXmNjjBfLksG','nZmXmJm4rNLorejR','mtGXnZu3nJfwruT5rfK','nZy5nZKWrvvqzhnn'];a0_0x28c2=function(){return _0x4200c3;};return a0_0x28c2();}module[a0_0x3b28ef(0x1b9)]={'createResponse':createResponse,'createError':createError,'createValidationError':createValidationError};
|
package/src/utils/rabbitmq.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x5e4c21=a0_0x417f;(function(_0x43513c,_0x1c513d){const _0x358e64=a0_0x417f,_0x4adedd=_0x43513c();while(!![]){try{const _0x4d2b90=parseInt(_0x358e64(0xc0))/0x1+-parseInt(_0x358e64(0x9f))/0x2+parseInt(_0x358e64(0xbc))/0x3+parseInt(_0x358e64(0xac))/0x4+parseInt(_0x358e64(0xbd))/0x5*(-parseInt(_0x358e64(0xa0))/0x6)+parseInt(_0x358e64(0xc3))/0x7*(-parseInt(_0x358e64(0xb0))/0x8)+parseInt(_0x358e64(0xa1))/0x9;if(_0x4d2b90===_0x1c513d)break;else _0x4adedd['push'](_0x4adedd['shift']());}catch(_0x569c30){_0x4adedd['push'](_0x4adedd['shift']());}}}(a0_0x167f,0xbd2f0),require('dotenv')['config']());function a0_0x417f(_0xd9f7ab,_0x54dcfc){_0xd9f7ab=_0xd9f7ab-0x9d;const _0x167fe0=a0_0x167f();let _0x417f40=_0x167fe0[_0xd9f7ab];if(a0_0x417f['PefIvH']===undefined){var _0x406049=function(_0x41061b){const _0x137e8e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4e4b02='',_0x1b03de='';for(let _0x3551a2=0x0,_0x2ec000,_0x4d22bd,_0x411618=0x0;_0x4d22bd=_0x41061b['charAt'](_0x411618++);~_0x4d22bd&&(_0x2ec000=_0x3551a2%0x4?_0x2ec000*0x40+_0x4d22bd:_0x4d22bd,_0x3551a2++%0x4)?_0x4e4b02+=String['fromCharCode'](0xff&_0x2ec000>>(-0x2*_0x3551a2&0x6)):0x0){_0x4d22bd=_0x137e8e['indexOf'](_0x4d22bd);}for(let _0x40954=0x0,_0x58f082=_0x4e4b02['length'];_0x40954<_0x58f082;_0x40954++){_0x1b03de+='%'+('00'+_0x4e4b02['charCodeAt'](_0x40954)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1b03de);};a0_0x417f['HNTZwO']=_0x406049,a0_0x417f['KxWYqC']={},a0_0x417f['PefIvH']=!![];}const _0x2c047b=_0x167fe0[0x0],_0x46bd6c=_0xd9f7ab+_0x2c047b,_0x5b6871=a0_0x417f['KxWYqC'][_0x46bd6c];return!_0x5b6871?(_0x417f40=a0_0x417f['HNTZwO'](_0x417f40),a0_0x417f['KxWYqC'][_0x46bd6c]=_0x417f40):_0x417f40=_0x5b6871,_0x417f40;}const amqp=require(a0_0x5e4c21(0xae)),{formatDate}=require('./dateHelper'),RABBITMQ_URL=process['env']['RABBITMQ_URL'],EXCHANGE=process['env']['RABBITMQ_EXCHANGE'],ROUTING_KEY=process['env'][a0_0x5e4c21(0xa6)],QUEUE=process[a0_0x5e4c21(0xc4)]['RABBITMQ_QUEUE'];async function createConnection(){const _0x298cd7=a0_0x5e4c21,_0x56377d={'XTXvm':function(_0x30f857,_0x5a743){return _0x30f857(_0x5a743);}};try{const _0x3288d8=await amqp[_0x298cd7(0x9d)](RABBITMQ_URL);return console[_0x298cd7(0xc6)]('['+formatDate(new Date())+']\x20Successfully\x20connected\x20to\x20RabbitMQ'),_0x3288d8;}catch(_0x1cdd26){console['error']('['+_0x56377d['XTXvm'](formatDate,new Date())+_0x298cd7(0xb8)+_0x1cdd26[_0x298cd7(0xb1)]);throw _0x1cdd26;}}async function createChannel(_0x3dbc63){const _0x10e1ee=a0_0x5e4c21,_0x1fad90={'jBoIM':function(_0xb8063a,_0x349fe7){return _0xb8063a(_0x349fe7);}};try{const _0x1f8f2f=await _0x3dbc63[_0x10e1ee(0xbf)]();return console[_0x10e1ee(0xc6)]('['+_0x1fad90[_0x10e1ee(0xc9)](formatDate,new Date())+']\x20RabbitMQ\x20channel\x20created\x20successfully'),_0x1f8f2f;}catch(_0x84a913){console[_0x10e1ee(0xaf)]('['+formatDate(new Date())+_0x10e1ee(0xbb)+_0x84a913['message']);throw _0x84a913;}}function a0_0x167f(){const _0x1b8afc=['xsbgywLSzwqGDg8Gy29UBMvJDcb0BYbsywjIAxrnutOG','ignYzwf0zwq','ihDPDgGGreXy','xsbgywLSzwqGDg8Gy3jLyxrLifjHyMjPDe1rignOyw5UzwW6ia','mJK3ndq0mgXZzKXSBa','mJmXndqXnvrwwKTKzW','xsbfEgnOyw5Nzsa','y3jLyxrLq2HHBM5LBa','odG1mdyWD3b5vvnL','zgLYzwn0','xsbfCNjVCIbJCMvHDgLUzYbYzxrYEsbLEgnOyw5NztO','n2HxEvPNAq','zw52','yMLUzff1zxvL','Bg9N','y3jLyxrLzc9YzwfKEq','u29SDxrPB246ifvZzsbHigrPzMzLCMvUDcbXDwv1zsbUyw1LigzVCIbKAwzMzxjLBNqGCM91DgLUzYbRzxLZlG','AKjVsu0','y29UBMvJDa','ic0+ia','mtGWntC3nLzuCgf2EG','mtjLCKrmu24','otm4otK1mMHczMXkDa','xsbfCNjVCIbZzxr0Aw5NihvWig1HAw4GCxvLDwu6','xsbfCNjVCIbJCMvHDgLUzYbLEgnOyw5Nzsa','uxvLDwuG','vvDxy2C','uKfcqKLutvfFuK9vveLor19lrvK','xsbszxrYEsbIAw5KAw5NigzVCIa','ksbJCMvHDgvK','xsbszxrYEsbLEgnOyw5NzsbJCMvHDgvKl3jLywr5','xsbrDwv1zsa','yxnZzxj0rxHJAgfUz2u','ndeWnJG3mLfQwfvyAa','rLn3v2K','yw1XCgXPyG','zxjYB3i','mta3ndqYodHevhDbAMu','BwvZC2fNzq','xsbfuLjpuJOGuxvLDwuG','zxHPDa','Aw5LCxvPDMfSzw50igfYzW','CMv0CNKTzxHJAgfUz2u','C2XmEvy','rND6Afe'];a0_0x167f=function(){return _0x1b8afc;};return a0_0x167f();}async function setupInfrastructure(_0x5d73c6){const _0x3860f8=a0_0x5e4c21,_0x3a8345={'FSwWi':_0x3860f8(0xb5),'Spnbu':function(_0x52d656,_0x16627c){return _0x52d656(_0x16627c);},'slLyV':function(_0xf64b29,_0x567ff3){return _0xf64b29(_0x567ff3);},'FUjNu':function(_0x568b15,_0x5c1104){return _0x568b15(_0x5c1104);},'FwzhQ':_0x3860f8(0xb4),'JPRqm':'x-dead-letter-routing-key','UWWcg':function(_0x5a490b,_0x380f0b){return _0x5a490b(_0x380f0b);}};try{await _0x5d73c6[_0x3860f8(0xab)](_0x3a8345['FSwWi'],_0x3860f8(0xc1),{'durable':!![],'autoDelete':![]}),console['log']('['+formatDate(new Date())+_0x3860f8(0xa9));}catch(_0x49ef60){console[_0x3860f8(0xaf)]('['+_0x3a8345['Spnbu'](formatDate,new Date())+_0x3860f8(0xc2),_0x49ef60['message']);throw _0x49ef60;}try{await _0x5d73c6['assertExchange'](EXCHANGE,'direct',{'durable':!![],'autoDelete':![]}),console[_0x3860f8(0xc6)]('['+_0x3a8345[_0x3860f8(0xb6)](formatDate,new Date())+_0x3860f8(0xbe)+EXCHANGE+'\x20created/ready');}catch(_0x5b64ab){console['error']('['+formatDate(new Date())+_0x3860f8(0xa3)+EXCHANGE+':',_0x5b64ab[_0x3860f8(0xb1)]);throw _0x5b64ab;}const _0x3104a1=ROUTING_KEY+'_retry';try{const _0xf53b43={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':EXCHANGE,'x-dead-letter-routing-key':ROUTING_KEY}};await _0x5d73c6['assertQueue'](_0x3104a1,_0xf53b43),console['log']('['+formatDate(new Date())+']\x20Retry\x20queue\x20'+_0x3104a1+'\x20created/ready'),await _0x5d73c6['bindQueue'](_0x3104a1,_0x3a8345['FSwWi'],ROUTING_KEY),console[_0x3860f8(0xc6)]('['+formatDate(new Date())+_0x3860f8(0xa7)+ROUTING_KEY+_0x3860f8(0xb9));}catch(_0xfa9182){console['error']('['+formatDate(new Date())+']\x20Error\x20creating\x20retry\x20queue:',_0xfa9182['message']);throw _0xfa9182;}try{const _0x20f901={'durable':!![],'arguments':{'x-dead-letter-exchange':_0x3a8345[_0x3860f8(0xad)],'x-dead-letter-routing-key':ROUTING_KEY}};try{const _0x365245=await _0x5d73c6['assertQueue'](QUEUE,_0x20f901);console[_0x3860f8(0xc6)]('['+_0x3a8345['FUjNu'](formatDate,new Date())+_0x3860f8(0xaa)+QUEUE+'\x20'+(_0x365245['queue']===QUEUE?_0x3860f8(0xc7):'found')+_0x3860f8(0xba)),await _0x5d73c6[_0x3860f8(0xc5)](QUEUE,EXCHANGE,ROUTING_KEY),console['log']('['+formatDate(new Date())+']\x20Binding\x20'+EXCHANGE+_0x3860f8(0x9e)+QUEUE+'\x20('+ROUTING_KEY+_0x3860f8(0xa8));}catch(_0x2c16fb){if(_0x2c16fb['message']['includes'](_0x3a8345[_0x3860f8(0xb7)])&&_0x2c16fb[_0x3860f8(0xb1)]['includes'](_0x3a8345['JPRqm']))console[_0x3860f8(0xaf)]('\x0a['+_0x3a8345['FUjNu'](formatDate,new Date())+_0x3860f8(0xb2)+QUEUE+'\x20is\x20already\x20in\x20use\x20with\x20a\x20different\x20routing\x20key.'),console['error'](_0x3860f8(0xa4)+QUEUE+'\x20was\x20created\x20with\x20a\x20different\x20x-dead-letter-routing-key.'),console[_0x3860f8(0xaf)](_0x3860f8(0xc8)),process[_0x3860f8(0xb3)](0x1);else{console[_0x3860f8(0xaf)]('['+_0x3a8345[_0x3860f8(0xa5)](formatDate,new Date())+']\x20Error\x20creating\x20queue\x20'+QUEUE+':',_0x2c16fb[_0x3860f8(0xb1)]);throw _0x2c16fb;}}}catch(_0xae68ec){if(!_0xae68ec['message']['includes'](_0x3a8345['FwzhQ'])){console[_0x3860f8(0xaf)]('['+formatDate(new Date())+_0x3860f8(0xa2),_0xae68ec['message']);throw _0xae68ec;}process['exit'](0x1);}}async function closeConnection(_0x3fecd2){const _0x5c9480=a0_0x5e4c21,_0x2ea51f={'prNfn':function(_0x224081,_0x16d579){return _0x224081(_0x16d579);}};if(_0x3fecd2)try{await _0x3fecd2['close'](),console['log']('['+_0x2ea51f['prNfn'](formatDate,new Date())+']\x20RabbitMQ\x20connection\x20closed');}catch(_0x2d0b52){console['error']('['+formatDate(new Date())+']\x20Failed\x20to\x20close\x20RabbitMQ\x20connection:\x20'+_0x2d0b52[_0x5c9480(0xb1)]);}}module['exports']={'createConnection':createConnection,'createChannel':createChannel,'setupInfrastructure':setupInfrastructure,'closeConnection':closeConnection,'getConfig':()=>({'url':RABBITMQ_URL,'exchange':EXCHANGE,'routingKey':ROUTING_KEY,'queue':QUEUE})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a0_0x205a37=a0_0x7ca7;(function(_0x3ce732,_0x4153a0){const _0x3f594c=a0_0x7ca7,_0x489e45=_0x3ce732();while(!![]){try{const _0x32446a=parseInt(_0x3f594c(0x182))/0x1+-parseInt(_0x3f594c(0x180))/0x2*(-parseInt(_0x3f594c(0x18d))/0x3)+-parseInt(_0x3f594c(0x189))/0x4*(-parseInt(_0x3f594c(0x191))/0x5)+parseInt(_0x3f594c(0x18f))/0x6+parseInt(_0x3f594c(0x19a))/0x7*(-parseInt(_0x3f594c(0x183))/0x8)+-parseInt(_0x3f594c(0x19d))/0x9+-parseInt(_0x3f594c(0x19e))/0xa;if(_0x32446a===_0x4153a0)break;else _0x489e45['push'](_0x489e45['shift']());}catch(_0x269349){_0x489e45['push'](_0x489e45['shift']());}}}(a0_0x2311,0xb54c0));const Redis=require('ioredis'),{logger}=require('./logger');class RedisClient{constructor(){const _0x59f9f1=a0_0x7ca7;this[_0x59f9f1(0x194)]=null,this[_0x59f9f1(0x196)]=![];}['connect'](){const _0xe244c=a0_0x7ca7,_0x51cec1={'rhxyI':'redis_connected','IreUO':_0xe244c(0x181),'dWHYw':_0xe244c(0x187),'LAylW':'redis_disconnected','nsHqc':_0xe244c(0x195),'kJYjt':function(_0x497705,_0x10b76d,_0x344aac){return _0x497705(_0x10b76d,_0x344aac);},'cuSmr':'connect','gTkjI':'close','rAljl':'redis_init_error','fFTKg':_0xe244c(0x19c)};if(this[_0xe244c(0x194)])return this['client'];try{return this['client']=new Redis({'host':process[_0xe244c(0x198)]['REDIS_HOST']||_0x51cec1[_0xe244c(0x192)],'port':_0x51cec1['kJYjt'](parseInt,process['env']['REDIS_PORT'],0xa)||0x18ec,'password':process[_0xe244c(0x198)][_0xe244c(0x18c)]||undefined,'db':parseInt(process[_0xe244c(0x198)]['REDIS_DB'],0xa)||0x0,'retryStrategy'(_0x3a67c7){const _0x448fe4=Math['min'](_0x3a67c7*0x32,0x7d0);return _0x448fe4;}}),this[_0xe244c(0x194)]['on'](_0x51cec1[_0xe244c(0x18e)],()=>{const _0x2fca4e=_0xe244c;this['isConnected']=!![],logger[_0x2fca4e(0x190)]({'event':_0x51cec1[_0x2fca4e(0x17e)]},_0x51cec1['IreUO']);}),this['client']['on'](_0xe244c(0x184),_0x53eb63=>{const _0x39abda=_0xe244c;this[_0x39abda(0x196)]=![],logger['error']({'event':_0x51cec1[_0x39abda(0x19b)],'error':_0x53eb63[_0x39abda(0x17f)]},'Redis\x20connection\x20error:\x20'+_0x53eb63['message']);}),this[_0xe244c(0x194)]['on'](_0x51cec1['gTkjI'],()=>{const _0x320019=_0xe244c;this['isConnected']=![],logger['warn']({'event':_0x51cec1[_0x320019(0x18a)]},_0x320019(0x199));}),this['client'];}catch(_0x493496){logger['error']({'event':_0x51cec1[_0xe244c(0x186)],'error':_0x493496['message']},_0x51cec1[_0xe244c(0x18b)]);throw _0x493496;}}[a0_0x205a37(0x193)](){const _0x583208=a0_0x205a37;return!this[_0x583208(0x194)]&&this['connect'](),this['client'];}async['ping'](_0x4965ac=0x1388){const _0x165bf0=a0_0x205a37,_0x24b191={'aNnzE':function(_0x4cdbaf,_0x5ca377){return _0x4cdbaf===_0x5ca377;},'HhUFp':_0x165bf0(0x185)};try{const _0x4b290b=this['getClient'](),_0x4ee9c6=await Promise['race']([_0x4b290b['ping'](),new Promise((_0x18215b,_0x41cb1f)=>setTimeout(()=>_0x41cb1f(new Error('Redis\x20PING\x20timeout')),_0x4965ac))]);return _0x24b191['aNnzE'](_0x4ee9c6,_0x24b191['HhUFp']);}catch(_0x2a65d4){return![];}}async['disconnect'](){const _0x3929a7=a0_0x205a37;this['client']&&(await this[_0x3929a7(0x194)][_0x3929a7(0x188)](),this[_0x3929a7(0x194)]=null,this[_0x3929a7(0x196)]=![]);}['forceDisconnect'](){const _0x40cbea=a0_0x205a37;this[_0x40cbea(0x194)]&&(this['client'][_0x40cbea(0x197)](),this[_0x40cbea(0x194)]=null,this[_0x40cbea(0x196)]=![]);}}module['exports']=new RedisClient();function a0_0x7ca7(_0x33ac6d,_0x55b209){_0x33ac6d=_0x33ac6d-0x17e;const _0x2311d9=a0_0x2311();let _0x7ca723=_0x2311d9[_0x33ac6d];if(a0_0x7ca7['CyNsbL']===undefined){var _0x4753ce=function(_0x33a082){const _0x29a985='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3859e4='',_0xeac728='';for(let _0x55da59=0x0,_0x2f3fa2,_0x26c05c,_0x6eac0b=0x0;_0x26c05c=_0x33a082['charAt'](_0x6eac0b++);~_0x26c05c&&(_0x2f3fa2=_0x55da59%0x4?_0x2f3fa2*0x40+_0x26c05c:_0x26c05c,_0x55da59++%0x4)?_0x3859e4+=String['fromCharCode'](0xff&_0x2f3fa2>>(-0x2*_0x55da59&0x6)):0x0){_0x26c05c=_0x29a985['indexOf'](_0x26c05c);}for(let _0x2f95c3=0x0,_0x4e996b=_0x3859e4['length'];_0x2f95c3<_0x4e996b;_0x2f95c3++){_0xeac728+='%'+('00'+_0x3859e4['charCodeAt'](_0x2f95c3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xeac728);};a0_0x7ca7['LwkzIq']=_0x4753ce,a0_0x7ca7['GYYlcf']={},a0_0x7ca7['CyNsbL']=!![];}const _0x1b7e74=_0x2311d9[0x0],_0x136fea=_0x33ac6d+_0x1b7e74,_0x4d1fee=a0_0x7ca7['GYYlcf'][_0x136fea];return!_0x4d1fee?(_0x7ca723=a0_0x7ca7['LwkzIq'](_0x7ca723),a0_0x7ca7['GYYlcf'][_0x136fea]=_0x7ca723):_0x7ca723=_0x4d1fee,_0x7ca723;}function a0_0x2311(){const _0x2e1648=['rMfPBgvKihrVigLUAxrPywXPEMuGuMvKAxm','mtmZndG4ouvtzLDotW','mta0ndq0mJbyDhvKzxe','CMH4EuK','BwvZC2fNzq','neHqsvfSqG','uMvKAxmGy29UBMvJDgvKihn1y2nLC3nMDwXSEq','mtaZmJCZmKPttwnnsa','mta3nde2BwDeAuD3','zxjYB3i','ue9orW','CKfSAMW','CMvKAxnFzxjYB3i','CxvPDa','nJHYC1bJyuW','tef5BfC','zKzus2C','uKvesvnFueftu1DpuKq','nti4mZGXzLrjs2TZ','y3vtBxi','nty0mdy2vMP0zvvN','Aw5MBW','mZa0mdm1txLQsuXY','BNniCwm','z2v0q2XPzw50','y2XPzw50','Bg9JywXOB3n0','AxndB25Uzwn0zwq','zgLZy29UBMvJDa','zw52','uMvKAxmGy29UBMvJDgLVBIbJBg9Zzwq','mZaXA3LZrenI','zfDiwxC'];a0_0x2311=function(){return _0x2e1648;};return a0_0x2311();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const a0_0x69942a=a0_0x2975;(function(_0x5b0f1c,_0x55d9e8){const _0x676733=a0_0x2975,_0x4c872f=_0x5b0f1c();while(!![]){try{const _0x45dba2=parseInt(_0x676733(0x106))/0x1+-parseInt(_0x676733(0xfc))/0x2+parseInt(_0x676733(0x102))/0x3*(parseInt(_0x676733(0x101))/0x4)+parseInt(_0x676733(0x108))/0x5+parseInt(_0x676733(0x10b))/0x6*(parseInt(_0x676733(0xfe))/0x7)+parseInt(_0x676733(0xfa))/0x8*(-parseInt(_0x676733(0xfb))/0x9)+-parseInt(_0x676733(0x109))/0xa;if(_0x45dba2===_0x55d9e8)break;else _0x4c872f['push'](_0x4c872f['shift']());}catch(_0x1761b4){_0x4c872f['push'](_0x4c872f['shift']());}}}(a0_0x246f,0x8ecd9));const redisClient=require('./redis-client'),{logger}=require(a0_0x69942a(0xee));function a0_0x2975(_0x1769ed,_0x14c4b3){_0x1769ed=_0x1769ed-0xee;const _0x246fd4=a0_0x246f();let _0x2975ee=_0x246fd4[_0x1769ed];if(a0_0x2975['zCkccF']===undefined){var _0x253733=function(_0x2c5bda){const _0x2b7a34='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x562b44='',_0x1087cd='';for(let _0x1aa289=0x0,_0x56778c,_0x4f0751,_0x350b9f=0x0;_0x4f0751=_0x2c5bda['charAt'](_0x350b9f++);~_0x4f0751&&(_0x56778c=_0x1aa289%0x4?_0x56778c*0x40+_0x4f0751:_0x4f0751,_0x1aa289++%0x4)?_0x562b44+=String['fromCharCode'](0xff&_0x56778c>>(-0x2*_0x1aa289&0x6)):0x0){_0x4f0751=_0x2b7a34['indexOf'](_0x4f0751);}for(let _0x339f19=0x0,_0x55365f=_0x562b44['length'];_0x339f19<_0x55365f;_0x339f19++){_0x1087cd+='%'+('00'+_0x562b44['charCodeAt'](_0x339f19)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1087cd);};a0_0x2975['sJUcrI']=_0x253733,a0_0x2975['BOIjln']={},a0_0x2975['zCkccF']=!![];}const _0x8632c8=_0x246fd4[0x0],_0x10a66e=_0x1769ed+_0x8632c8,_0x165e5e=a0_0x2975['BOIjln'][_0x10a66e];return!_0x165e5e?(_0x2975ee=a0_0x2975['sJUcrI'](_0x2975ee),a0_0x2975['BOIjln'][_0x10a66e]=_0x2975ee):_0x2975ee=_0x165e5e,_0x2975ee;}function a0_0x246f(){const _0x13e08f=['oMv4Cg9YDdO','zxjYB3i','vKfkEeu','nZq3nZKYyuPksvbP','zgvSzxrLsM9I','nJK4odmWDwPhC05n','mtq3mtiYodbZAxvztKu','zgvMyxvSDa','ntiYyNDIuNv0','Aw9rB0W','z2v0sM9I','lI9SB2DNzxi','rMfPBgvKihrVihnLDcbQB2iGAw4GuMvKAxm','zgvS','C3rYAw5NAwz5','z2v0q2XPzw50','CgfYC2u','z2v0qwXSsM9ICW','ChvZAa','ChjLzML4','BwvZC2fNzq','DxbKyxrLsM9I','C2v0zxG','ogrJsMrRAG','mJi5nJyZogLRBKvMAq','mtqYntbhDLb6BMC','x3bYzwzPEa','ndmWmdfXrhfXANe','z2v0','zw52','mte5nti3nMTIDKPWAW','oxHnwhPAuW'];a0_0x246f=function(){return _0x13e08f;};return a0_0x246f();}class RedisHelper{constructor(){const _0x2b84bf=a0_0x69942a;this['_prefix']=null,this['ttl']=parseInt(process[_0x2b84bf(0x100)]['EXPORT_FILE_EXPIRY'],0xa)||0xe10;}get[a0_0x69942a(0xf6)](){const _0x4a694c=a0_0x69942a;if(!this[_0x4a694c(0xfd)]){const _0x593bdb=process[_0x4a694c(0x100)]['RESTFORGE_PROJECT_NAME']||_0x4a694c(0x10a);this[_0x4a694c(0xfd)]='restforge:'+_0x593bdb+_0x4a694c(0x103);}return this['_prefix'];}async['setJob'](_0x799dd9,_0x56db86){const _0x20640d=a0_0x69942a,_0x3552e7={'ioQoL':'redis_set_error','qKhPa':_0x20640d(0xef)};try{const _0x17abb9=redisClient[_0x20640d(0xf2)](),_0x2662e4=''+this['prefix']+_0x799dd9;return await _0x17abb9[_0x20640d(0xf9)](_0x2662e4,this['ttl'],JSON[_0x20640d(0xf1)](_0x56db86)),!![];}catch(_0x5b669e){return logger['error']({'event':_0x3552e7[_0x20640d(0x10c)],'jobId':_0x799dd9,'error':_0x5b669e[_0x20640d(0xf7)]},_0x3552e7['qKhPa']),![];}}async['getJob'](_0x18c0c1){const _0x160500=a0_0x69942a,_0x2ad0bf={'FAIrA':'redis_get_error'};try{const _0x2d6fc6=redisClient[_0x160500(0xf2)](),_0x16b1cd=''+this['prefix']+_0x18c0c1,_0x4d819f=await _0x2d6fc6[_0x160500(0xff)](_0x16b1cd);return _0x4d819f?JSON['parse'](_0x4d819f):null;}catch(_0x555662){return logger[_0x160500(0x104)]({'event':_0x2ad0bf['FAIrA'],'jobId':_0x18c0c1,'error':_0x555662['message']},'Failed\x20to\x20get\x20job\x20from\x20Redis'),null;}}async[a0_0x69942a(0xf8)](_0x175746,_0x279367){const _0x51ed93=a0_0x69942a,_0x50f070=await this[_0x51ed93(0x10d)](_0x175746);if(!_0x50f070)return![];const _0x1c2895={..._0x50f070,..._0x279367};return await this['setJob'](_0x175746,_0x1c2895);}async[a0_0x69942a(0x107)](_0x4d28a6){const _0x4d57de=a0_0x69942a,_0x205a56={'VAJxE':'redis_delete_error'};try{const _0x5aa3f4=redisClient['getClient'](),_0x32aa8b=''+this['prefix']+_0x4d28a6;return await _0x5aa3f4[_0x4d57de(0xf0)](_0x32aa8b),!![];}catch(_0x4c8ce1){return logger['error']({'event':_0x205a56[_0x4d57de(0x105)],'jobId':_0x4d28a6,'error':_0x4c8ce1['message']},'Failed\x20to\x20delete\x20job\x20from\x20Redis'),![];}}async[a0_0x69942a(0xf4)](){const _0x4daaf8=a0_0x69942a,_0x31a402={'zqURf':'redis_getall_error','CQlqb':'Failed\x20to\x20get\x20all\x20jobs'};try{const _0x180f1e=redisClient[_0x4daaf8(0xf2)](),_0x247766=await _0x180f1e['keys'](this[_0x4daaf8(0xf6)]+'*'),_0x3762bc=[];for(const _0x3c0033 of _0x247766){const _0xcb5550=await _0x180f1e['get'](_0x3c0033);_0xcb5550&&_0x3762bc[_0x4daaf8(0xf5)](JSON[_0x4daaf8(0xf3)](_0xcb5550));}return _0x3762bc;}catch(_0x148551){return logger['error']({'event':_0x31a402['zqURf'],'error':_0x148551['message']},_0x31a402['CQlqb']),[];}}}module['exports']=new RedisHelper();
|