@restforgejs/platform 5.2.16 → 5.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build-info.json +2 -2
- package/cli/consumer-deploy.js +1 -1
- package/cli/consumer.js +1 -1
- package/generators/cli/endpoint/create.js +69 -6
- package/generators/cli/payload/sync.js +16 -6
- package/generators/cli/project/auth.js +2 -2
- package/generators/cli/project/sdk.js +112 -0
- package/generators/lib/arg-parser.js +6 -0
- package/generators/lib/auth/processor-generator.js +5 -3
- package/generators/lib/auth/templates/processor/google.js.tmpl +178 -0
- package/generators/lib/auth/templates/processor/login.js.tmpl +8 -8
- package/generators/lib/auth/templates/processor/logout.js.tmpl +2 -2
- package/generators/lib/auth/templates/processor/me.js.tmpl +2 -2
- package/generators/lib/auth/templates/processor/refresh.js.tmpl +6 -6
- package/generators/lib/auth/templates/processor/register.js.tmpl +4 -4
- package/generators/lib/auth/templates/processor/reset-password.js.tmpl +7 -7
- package/generators/lib/auth/templates/rfx_auth.js.tmpl +3 -0
- package/generators/lib/generators/model-generator.js +46 -59
- package/generators/lib/help-generator.js +41 -3
- package/generators/lib/payload/endpoint-schema-validator.js +8 -3
- package/generators/lib/payload/field-projections.js +116 -0
- package/generators/lib/payload/payload-runner.js +164 -48
- package/generators/lib/payload/schema-diff.js +108 -0
- package/generators/lib/sdk/generator.js +719 -0
- package/generators/lib/sdk/naming.js +48 -0
- package/generators/lib/sdk/runtime/README.md.tmpl +207 -0
- package/generators/lib/sdk/runtime/auth-client.js +186 -0
- package/generators/lib/sdk/runtime/deploy.mjs.tmpl +85 -0
- package/generators/lib/sdk/runtime/http-client.js +81 -0
- package/generators/lib/sdk/runtime/resource-client.js +59 -0
- package/generators/lib/sdk/runtime/storage.js +31 -0
- 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/generators/lib/utils/cli-output.js +40 -0
- package/generators/lib/utils/config-resolver.js +61 -0
- package/generators/lib/utils/database-introspector.js +28 -5
- package/integrity-manifest.json +18 -18
- package/package.json +1 -1
- package/scripts/verify-integrity.js +1 -1
- package/server.js +1 -1
- 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
|
-
function a0_0xa73d(_0x3f84f1,_0x142ca1){_0x3f84f1=_0x3f84f1-0x66;const _0x15908a=a0_0x1590();let _0xa73d19=_0x15908a[_0x3f84f1];if(a0_0xa73d['JmIsiz']===undefined){var _0x312773=function(_0x42eff0){const _0x1b4ab8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x593b23='',_0x345447='';for(let _0x2b1c28=0x0,_0x5eef65,_0x1942a0,_0x59e2ff=0x0;_0x1942a0=_0x42eff0['charAt'](_0x59e2ff++);~_0x1942a0&&(_0x5eef65=_0x2b1c28%0x4?_0x5eef65*0x40+_0x1942a0:_0x1942a0,_0x2b1c28++%0x4)?_0x593b23+=String['fromCharCode'](0xff&_0x5eef65>>(-0x2*_0x2b1c28&0x6)):0x0){_0x1942a0=_0x1b4ab8['indexOf'](_0x1942a0);}for(let _0x2cb08a=0x0,_0x3c7f89=_0x593b23['length'];_0x2cb08a<_0x3c7f89;_0x2cb08a++){_0x345447+='%'+('00'+_0x593b23['charCodeAt'](_0x2cb08a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x345447);};a0_0xa73d['ZdsUSa']=_0x312773,a0_0xa73d['LTZVWa']={},a0_0xa73d['JmIsiz']=!![];}const _0x56f2bf=_0x15908a[0x0],_0x2cc7da=_0x3f84f1+_0x56f2bf,_0x594f29=a0_0xa73d['LTZVWa'][_0x2cc7da];return!_0x594f29?(_0xa73d19=a0_0xa73d['ZdsUSa'](_0xa73d19),a0_0xa73d['LTZVWa'][_0x2cc7da]=_0xa73d19):_0xa73d19=_0x594f29,_0xa73d19;}const a0_0x4d6783=a0_0xa73d;(function(_0x2ea2c6,_0x4ec4e1){const _0x47a3ff=a0_0xa73d,_0x439b51=_0x2ea2c6();while(!![]){try{const _0x504144=-parseInt(_0x47a3ff(0xa5))/0x1+-parseInt(_0x47a3ff(0x7b))/0x2*(-parseInt(_0x47a3ff(0xb5))/0x3)+-parseInt(_0x47a3ff(0x69))/0x4*(-parseInt(_0x47a3ff(0x6c))/0x5)+parseInt(_0x47a3ff(0x72))/0x6+parseInt(_0x47a3ff(0x7a))/0x7*(parseInt(_0x47a3ff(0x74))/0x8)+parseInt(_0x47a3ff(0xb7))/0x9*(-parseInt(_0x47a3ff(0x87))/0xa)+parseInt(_0x47a3ff(0x68))/0xb;if(_0x504144===_0x4ec4e1)break;else _0x439b51['push'](_0x439b51['shift']());}catch(_0x44f544){_0x439b51['push'](_0x439b51['shift']());}}}(a0_0x1590,0x9ef7b));function a0_0x1590(){const _0x3754c5=['Bg9JA19LEhrLBMrLza','mJG3mdCZzfviDfbp','zgvMyxvSDfruta','z2v0tg9JA0LUzM8','mte1ntm0mw9vswLVrW','mJm3odq3mNbLtLnkCa','v2fPDgLUzYbMB3iGBg9JA3mGDg8GCMvSzwfZzq','zxzHBa','mtbpDgTRvuG','yvvPrgy','AfHLEeK','x3DVCMTLCKLK','A0feC0W','t1DQzwS','ndKXmteYuhryAKro','D3jPDgvFBg9JA193ywL0Aw5N','mtu4mdbyzeDUA3C','ChjLzML4','B1bPsLa','BwvZC2fNzq','EMjvrfy','x3bYzwzPEa','mJy1m2nYEfbSrW','mtHYsLnxAe8','D3jPDgvFBg9JA190Aw1LB3v0','q2fUBM90ihjLBgvHC2uGBg9JAYaTig5VDcbVD25LCG','x2LUAxrPywXPEMvK','CMvSzwfZzuXVy2S','yxnyAw0','svDeteC','D29YA2vYswq','lcbZDhjHDgvNEtOG','Cg93','zgvIDwC','zufNwLy','mJKWy3Dbq3PJ','BM93','zxjYB3i','tg9JAYbYzwXLyxnLigvYCM9Y','ywXS','EKPWAge','yNvPBgrmB2nRs2v5','x2rLzMf1BhruveW','CMv0CNLdB3vUDa','C2v0','CMvHzf9SB2nRx3jLBgvHC2vK','lI9YzwrPCY1JBgLLBNq','x3jLDhj5rgvSyxK','zxHWAxjL','D3jPDgu','D29YA2vYlq','D3jPDgvFBg9JA19Hy3f1AxjLza','uKvbrcbSB2nRigfJCxvPCMuGDgLTzw91Da','D3zLtMC','te9ds19esvnuuKLcvvrfrf9tvfjbvevhwq','sNnjEwq','CMv0CNK','x2vUywjSzwq','x3jLDhj5q291BNq','zw5HyMXLza','AK1vswC','ze1TDLq','x2vUC3vYzuLUAxrPywXPEMvK','z2v0q2XPzw50','CMvHza','ody0mZCZrMTQzeLZ','CMv0CNLezwXHEq','v1jjveuGBg9JAYbHy3f1AxjLihrPBwvVDxq','te9ds19esvnuuKLcvvrfrf9uveW','zw52','CMvQzwn0','CMvHzf9SB2nRx2fJCxvPCMvK','x3n0CMf0zwD5','z2v0','y3nvBK8','te9ds19esvnuuKLcvvrfrf9srvrswv9eruXbwq','CxrmtgO','v2fPDgLUzYbMB3iGv1jjveuGBg9JAYb0BYbYzwXLyxnL','zxHWB3j0CW','z2f1AK8','uKvbrcbSB2nRigfJCxvPCMvK','mta1mJKXEw9ovxr5'];a0_0x1590=function(){return _0x3754c5;};return a0_0x1590();}const redisClient=require(a0_0x4d6783(0x92)),{logger}=require('./logger'),{v4:uuidv4}=require('uuid');class LockManager{constructor(){const _0x11bf75=a0_0x4d6783;this[_0x11bf75(0x79)]=null,this['_enabled']=null,this['_defaultTTL']=null,this['_retryCount']=null,this[_0x11bf75(0x93)]=null,this[_0x11bf75(0xac)]=null,this[_0x11bf75(0x6f)]=null,this[_0x11bf75(0x7e)]=![];}['_initConfig'](){const _0x4fa8c9=a0_0x4d6783,_0x2f0101={'gaujO':'lock_config_init','QWVwg':function(_0x59daee,_0x2d337a,_0x37408d){return _0x59daee(_0x2d337a,_0x37408d);},'IWDLG':'true','VSfRy':'rf:lock:'},_0x2fff5e='8|5|3|6|4|7|1|0|2'['split']('|');let _0x2dadac=0x0;while(!![]){switch(_0x2fff5e[_0x2dadac++]){case'0':this[_0x4fa8c9(0x7e)]=!![];continue;case'1':this['_workerId']=_0x4fa8c9(0x96)+process['pid'];continue;case'2':logger['info']({'event':_0x2f0101[_0x4fa8c9(0xb3)],'enabled':this[_0x4fa8c9(0x9d)],'strategy':this['_strategy'],'ttl':this[_0x4fa8c9(0x8e)],'retryCount':this[_0x4fa8c9(0x9e)],'retryDelay':this['_retryDelay'],'workerId':this[_0x4fa8c9(0x6f)]},'Lock\x20configuration\x20initialized\x20-\x20enabled:\x20'+this['_enabled']+_0x4fa8c9(0x83)+this['_strategy']);continue;case'3':this['_defaultTTL']=parseInt(process['env'][_0x4fa8c9(0xa8)],0xa)||0xa;continue;case'4':this[_0x4fa8c9(0x93)]=_0x2f0101['QWVwg'](parseInt,process['env'][_0x4fa8c9(0xaf)],0xa)||0x64;continue;case'5':this['_enabled']=process['env']['LOCK_DISTRIBUTED_ENABLED']===_0x2f0101[_0x4fa8c9(0x81)];continue;case'6':this[_0x4fa8c9(0x9e)]=parseInt(process['env']['LOCK_DISTRIBUTED_RETRY'],0xa)||0x3;continue;case'7':this[_0x4fa8c9(0xac)]=process[_0x4fa8c9(0xa9)][_0x4fa8c9(0x9a)]||'retry';continue;case'8':this[_0x4fa8c9(0x79)]=_0x2f0101['VSfRy'];continue;}break;}}[a0_0x4d6783(0xa2)](){const _0x476112=a0_0x4d6783;!this[_0x476112(0x7e)]&&this['_initConfig']();}get[a0_0x4d6783(0x75)](){return this['_ensureInitialized'](),this['_prefix'];}get[a0_0x4d6783(0x9f)](){return this['_ensureInitialized'](),this['_enabled'];}get['defaultTTL'](){const _0x176004=a0_0x4d6783;return this['_ensureInitialized'](),this[_0x176004(0x8e)];}get[a0_0x4d6783(0x8f)](){const _0x51e766=a0_0x4d6783;return this[_0x51e766(0xa2)](),this['_retryCount'];}get[a0_0x4d6783(0xa6)](){const _0x2e36e6=a0_0x4d6783;return this['_ensureInitialized'](),this[_0x2e36e6(0x93)];}get['strategy'](){const _0x55b286=a0_0x4d6783;return this['_ensureInitialized'](),this[_0x55b286(0xac)];}get['workerId'](){const _0x13fd4c=a0_0x4d6783;return this[_0x13fd4c(0xa2)](),this[_0x13fd4c(0x6f)];}[a0_0x4d6783(0x8d)](_0xb32ebc){const {module:_0x37e299,endpoint:_0x270f7f,lockType:_0x27a7cb,recordId:_0x16297c}=_0xb32ebc;if(_0x16297c)return''+this['prefix']+_0x37e299+':'+_0x270f7f+':'+_0x16297c+':'+_0x27a7cb;return''+this['prefix']+_0x37e299+':'+_0x270f7f+':'+_0x27a7cb;}['generateLockValue'](){const _0x5a3ec3=a0_0x4d6783,_0x31d520={'oPiJP':function(_0x24514f){return _0x24514f();}};return this[_0x5a3ec3(0x82)]+':'+_0x31d520[_0x5a3ec3(0x76)](uuidv4)+':'+Date[_0x5a3ec3(0x88)]();}async['acquireReadLock'](_0x613e01){const _0x1513d4=a0_0x4d6783,_0x5f2591={'dqrfd':_0x1513d4(0x95),'eAgZV':_0x1513d4(0xa4),'LVPgr':function(_0x61edb1,_0x26809f){return _0x61edb1<_0x26809f;},'wveNg':_0x1513d4(0xb4),'jMUIg':_0x1513d4(0xb1),'uOUUu':function(_0x4730c7,_0x3df17c){return _0x4730c7*_0x3df17c;},'rcCXo':_0x1513d4(0x98),'aUiDf':'read_lock_error'};if(!this['enabled'])return{'success':!![],'lockValue':null,'lockKey':null};const _0x3c3b98=this['buildLockKey']({..._0x613e01,'lockType':_0x5f2591['dqrfd']}),_0x2fdea2=this[_0x1513d4(0x8d)]({..._0x613e01,'lockType':_0x5f2591[_0x1513d4(0x86)]}),_0x21351=this['generateLockValue']();try{const _0x2921b8=redisClient[_0x1513d4(0xa3)]();for(let _0x3e1c3a=0x0;_0x5f2591['LVPgr'](_0x3e1c3a,this['retryCount']);_0x3e1c3a++){const _0x22c9f6=await _0x2921b8['get'](_0x3c3b98);if(!_0x22c9f6){await _0x2921b8['incr'](_0x2fdea2),await _0x2921b8[_0x1513d4(0x94)](_0x2fdea2,this['defaultTTL']);const _0x5f4828=_0x2fdea2+':'+_0x21351;return await _0x2921b8['setex'](_0x5f4828,this['defaultTTL'],_0x21351),logger[_0x1513d4(0x85)]({'event':_0x1513d4(0xab),'key':_0x2fdea2,'value':_0x21351},_0x5f2591[_0x1513d4(0x99)]),{'success':!![],'lockValue':_0x21351,'lockKey':_0x5f4828};}logger[_0x1513d4(0x85)]({'event':'read_lock_waiting','writeKey':_0x3c3b98,'attempt':_0x3e1c3a},_0x5f2591[_0x1513d4(0xa0)]),await this['sleep'](_0x5f2591['uOUUu'](this[_0x1513d4(0xa6)],Math[_0x1513d4(0x84)](0x2,_0x3e1c3a)));}return logger['warn']({'event':'read_lock_timeout','key':_0x2fdea2},_0x5f2591['rcCXo']),{'success':![],'lockValue':null,'lockKey':null};}catch(_0x5b4218){return logger['error']({'event':_0x5f2591[_0x1513d4(0x6d)],'error':_0x5b4218[_0x1513d4(0x77)]},'READ\x20lock\x20error'),{'success':![],'lockValue':null,'lockKey':null};}}async['acquireWriteLock'](_0x1c7fbb){const _0x1a7e2e=a0_0x4d6783,_0x18e3ca={'kADsL':_0x1a7e2e(0x95),'zbUDV':'reject','zJpha':function(_0x435485,_0x1592da){return _0x435485===_0x1592da;},'asXim':'WRITE\x20lock\x20acquired\x20(reject\x20mode)','qtLLj':'WRITE\x20lock\x20rejected\x20-\x20record\x20busy','urJol':function(_0x31dd17,_0x238ab7){return _0x31dd17(_0x238ab7);},'dMmvT':'WRITE\x20lock\x20acquired\x20(retry\x20mode)','hXexI':_0x1a7e2e(0xa7),'VjAak':'write_lock_error'};if(!this[_0x1a7e2e(0x9f)])return{'success':!![],'lockValue':null,'lockKey':null};const _0x1574e4=this[_0x1a7e2e(0x8d)]({..._0x1c7fbb,'lockType':_0x18e3ca[_0x1a7e2e(0x70)]}),_0x35042f=this['buildLockKey']({..._0x1c7fbb,'lockType':_0x1a7e2e(0xa4)}),_0x4e1907=this['generateLockValue']();try{const _0x56cc8a=redisClient[_0x1a7e2e(0xa3)]();if(this['strategy']===_0x18e3ca[_0x1a7e2e(0x78)]){const _0x31ae81=await _0x56cc8a[_0x1a7e2e(0x90)](_0x1574e4,_0x4e1907,'EX',this['defaultTTL'],'NX');if(_0x18e3ca[_0x1a7e2e(0x8c)](_0x31ae81,'OK'))return logger[_0x1a7e2e(0x85)]({'event':_0x1a7e2e(0x97),'key':_0x1574e4,'value':_0x4e1907,'strategy':_0x1a7e2e(0xaa)},_0x18e3ca[_0x1a7e2e(0x80)]),{'success':!![],'lockValue':_0x4e1907,'lockKey':_0x1574e4};return logger['debug']({'event':'write_lock_rejected','key':_0x1574e4},_0x18e3ca[_0x1a7e2e(0xb0)]),{'success':![],'lockValue':null,'lockKey':null};}for(let _0x4e428b=0x0;_0x4e428b<this[_0x1a7e2e(0x8f)];_0x4e428b++){const [_0x16fbfc,_0x3398ba]=await Promise[_0x1a7e2e(0x8b)]([_0x56cc8a[_0x1a7e2e(0xad)](_0x35042f),_0x56cc8a['get'](_0x1574e4)]);if(!_0x3398ba&&(!_0x16fbfc||_0x18e3ca['urJol'](parseInt,_0x16fbfc)===0x0)){const _0x4dba46=await _0x56cc8a['set'](_0x1574e4,_0x4e1907,'EX',this['defaultTTL'],'NX');if(_0x18e3ca[_0x1a7e2e(0x8c)](_0x4dba46,'OK'))return logger['debug']({'event':'write_lock_acquired','key':_0x1574e4,'value':_0x4e1907,'strategy':_0x1a7e2e(0x9c)},_0x18e3ca[_0x1a7e2e(0xa1)]),{'success':!![],'lockValue':_0x4e1907,'lockKey':_0x1574e4};}logger['debug']({'event':_0x1a7e2e(0x73),'writeKey':_0x1574e4,'readCount':_0x16fbfc,'attempt':_0x4e428b},_0x1a7e2e(0x6a)),await this['sleep'](this['retryDelay']*Math['pow'](0x2,_0x4e428b));}return logger['warn']({'event':_0x1a7e2e(0x7c),'key':_0x1574e4},_0x18e3ca[_0x1a7e2e(0x6e)]),{'success':![],'lockValue':null,'lockKey':null};}catch(_0x41832b){return logger[_0x1a7e2e(0x89)]({'event':_0x18e3ca['VjAak'],'error':_0x41832b[_0x1a7e2e(0x77)]},'WRITE\x20lock\x20error'),{'success':![],'lockValue':null,'lockKey':null};}}async[a0_0x4d6783(0x7f)](_0x5e3ac1,_0x4be6b7){const _0x21fea0=a0_0x4d6783,_0x1c9dd3={'yRaAY':function(_0x318797,_0x5007e5){return _0x318797(_0x5007e5);},'zMCNb':_0x21fea0(0x91),'OWjek':'READ\x20lock\x20released','DeeUP':'WRITE\x20lock\x20released','rLSSr':'lock_release_not_owner'};if(!this['enabled']||!_0x5e3ac1)return!![];try{const _0xb79db9=redisClient['getClient']();if(_0x5e3ac1['includes'](':read:')){await _0xb79db9['del'](_0x5e3ac1);const _0x272f10=_0x5e3ac1['substring'](0x0,_0x5e3ac1['lastIndexOf'](':')),_0x2504d4=await _0xb79db9['get'](_0x272f10);return _0x2504d4&&_0x1c9dd3['yRaAY'](parseInt,_0x2504d4)>0x0&&await _0xb79db9['decr'](_0x272f10),logger[_0x21fea0(0x85)]({'event':_0x1c9dd3['zMCNb'],'key':_0x5e3ac1},_0x1c9dd3[_0x21fea0(0x71)]),!![];}const _0x215c9b='\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',_0x35b1d8=await _0xb79db9[_0x21fea0(0x6b)](_0x215c9b,0x1,_0x5e3ac1,_0x4be6b7);if(_0x35b1d8===0x1)return logger['debug']({'event':'write_lock_released','key':_0x5e3ac1},_0x1c9dd3['DeeUP']),!![];return logger['warn']({'event':_0x1c9dd3['rLSSr'],'key':_0x5e3ac1},_0x21fea0(0x7d)),![];}catch(_0x3920ac){return logger[_0x21fea0(0x89)]({'event':'lock_release_error','key':_0x5e3ac1,'error':_0x3920ac[_0x21fea0(0x77)]},_0x21fea0(0x8a)),![];}}async['extendLock'](_0xa1fc20,_0x2a3feb,_0x34a3c3=null){const _0x4402ec=a0_0x4d6783,_0x39f21d={'cvnYy':'Lock\x20TTL\x20extended'};if(!this[_0x4402ec(0x9f)]||!_0xa1fc20)return!![];try{const _0x32c312=redisClient['getClient'](),_0x346502='\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',_0x38ba35=await _0x32c312[_0x4402ec(0x6b)](_0x346502,0x1,_0xa1fc20,_0x2a3feb,_0x34a3c3||this[_0x4402ec(0x66)]);if(_0x38ba35===0x1)return logger[_0x4402ec(0x85)]({'event':_0x4402ec(0xb6),'key':_0xa1fc20,'ttl':_0x34a3c3||this['defaultTTL']},_0x39f21d['cvnYy']),!![];return![];}catch(_0x4ff8dd){return logger['error']({'event':'lock_extend_error','key':_0xa1fc20,'error':_0x4ff8dd[_0x4402ec(0x77)]},'Lock\x20extend\x20error'),![];}}['isEnabled'](){const _0x371c88=a0_0x4d6783;return this[_0x371c88(0x9f)];}['sleep'](_0x220f52){return new Promise(_0x5b85ff=>setTimeout(_0x5b85ff,_0x220f52));}async[a0_0x4d6783(0x67)](_0x7d65de){const _0x5065b9=a0_0x4d6783,_0x247f9d={'YjZJI':'read','csUnO':function(_0x211782,_0x153ff6){return _0x211782||_0x153ff6;},'JsIyd':function(_0x5c3508,_0x4f878b){return _0x5c3508(_0x4f878b);}};if(!this[_0x5065b9(0x9f)])return{'enabled':![]};try{const _0x1d5fa4=redisClient[_0x5065b9(0xa3)](),_0x3974db=this['buildLockKey']({..._0x7d65de,'lockType':'write'}),_0x37b72d=this[_0x5065b9(0x8d)]({..._0x7d65de,'lockType':_0x247f9d['YjZJI']}),[_0x520b3f,_0x483fa6]=await Promise[_0x5065b9(0x8b)]([_0x1d5fa4[_0x5065b9(0xad)](_0x3974db),_0x1d5fa4[_0x5065b9(0xad)](_0x37b72d)]);return{'enabled':!![],'writeLock':_0x247f9d[_0x5065b9(0xae)](_0x520b3f,null),'readCount':_0x247f9d[_0x5065b9(0x9b)](parseInt,_0x483fa6)||0x0,'writeKey':_0x3974db,'readKey':_0x37b72d};}catch(_0x242768){return{'enabled':!![],'error':_0x242768[_0x5065b9(0x77)]};}}}module[a0_0x4d6783(0xb2)]=new LockManager();
|
|
1
|
+
const a0_0x4a5439=a0_0x4df1;(function(_0x37ee56,_0x2d4eb8){const _0x5ed142=a0_0x4df1,_0x43908e=_0x37ee56();while(!![]){try{const _0x470b56=-parseInt(_0x5ed142(0xcd))/0x1+parseInt(_0x5ed142(0xe3))/0x2*(parseInt(_0x5ed142(0xb7))/0x3)+-parseInt(_0x5ed142(0xac))/0x4*(-parseInt(_0x5ed142(0xaa))/0x5)+parseInt(_0x5ed142(0xe8))/0x6*(parseInt(_0x5ed142(0xc7))/0x7)+parseInt(_0x5ed142(0xe0))/0x8+parseInt(_0x5ed142(0xab))/0x9*(parseInt(_0x5ed142(0xb9))/0xa)+-parseInt(_0x5ed142(0xd2))/0xb*(parseInt(_0x5ed142(0x98))/0xc);if(_0x470b56===_0x2d4eb8)break;else _0x43908e['push'](_0x43908e['shift']());}catch(_0x7b11e1){_0x43908e['push'](_0x43908e['shift']());}}}(a0_0x17b1,0x534ad));function a0_0x17b1(){const _0x5cf029=['zurmu2m','mtK1nZeYmM14thvvwa','zgvIDwC','yNvPBgrmB2nRs2v5','tg9JAYbuveWGzxH0zw5Kzwq','v1jjveuGBg9JAYbYzwXLyxnLza','BgfZDeLUzgv4t2y','D29YA2vYswq','ChjLzML4','v1jjveuGBg9JAYbYzwPLy3rLzcaTihjLy29YzcbIDxn5','CgLK','uKvbrcbSB2nRigvYCM9Y','C2XLzxa','mJyXnLP3B1rdEq','v1jjveuGBg9JAYbLCNjVCG','zNrVAuO','z2v0','zxHWAxjL','zgvMyxvSDfruta','A01hEgy','tNPTDwi','ALzHyuG','x2rLzMf1BhruveW','Aw5JBhvKzxm','v1jjveuGBg9JAYbHy3f1AxjLzcaOCMvQzwn0ig1VzguP','De1pv3y','s0TAAw4','Bg9JA19JB25MAwDFAw5PDa','v1jjveuGBg9JAYbHy3f1AxjLzcaOCMv0CNKGBw9KzsK','zw52','ywnXDwLYzvDYAxrLtg9JAW','mJi0nZGZnunZBhLQEq','mtuYotCWm0fzzgjdzW','nfHQt0LLqG','D3jPDgu','x3n0CMf0zwD5','Bg9JA19LEhrLBMrLza','AxnfBMfIBgvK','te9ds19esvnuuKLcvvrfrf9srvrswq','zgvJCG','cIaGicaGicaGAwyGCMvKAxmUy2fSBcGIz2v0iIWGs0vzu1SXxsKGpt0GqvjhvLSXxsb0AgvUcIaGicaGicaGicbYzxr1CM4GCMvKAxmUy2fSBcGIzxHWAxjLiIWGs0vzu1SXxsWGqvjhvLSYxsKkicaGicaGicbLBhnLcIaGicaGicaGicbYzxr1CM4GmaOGicaGicaGigvUzaOGicaGica','D3jPDgvFBg9JA190Aw1LB3v0','CMy6Bg9JAZO','A0ncq3G','mtGYmuDQvKzVDq','D2fYBG','mtbjwLrKDvi','cIaGicaGicaGAwyGCMvKAxmUy2fSBcGIz2v0iIWGs0vzu1SXxsKGpt0GqvjhvLSXxsb0AgvUcIaGicaGicaGicbYzxr1CM4GCMvKAxmUy2fSBcGIzgvSiIWGs0vzu1SXxsKkicaGicaGicbLBhnLcIaGicaGicaGicbYzxr1CM4GmaOGicaGicaGigvUzaOGicaGica','CMvHzf9SB2nRx2vYCM9Y','z2v0q2XPzw50','sKXpBLC','u1zNC2q','uKvbrcbSB2nRigfJCxvPCMvK','D3jPDgvFBg9JA193ywL0Aw5N','x3bYzwzPEa','zxH0zw5Ktg9JAW','CMvHzf9SB2nRx3jLBgvHC2vK','Aw5MBW','x3jLDhj5q291BNq','CMvQzwn0','n1jADKHlAq','BwvZC2fNzq','DMnerxy','te9ds19esvnuuKLcvvrfrf9uveW','x2LUAxrdB25MAwC','x3jLDhj5rgvSyxK','mJy0odCYBfbLsM9L','Bg9JA19YzwXLyxnLx25VDf9VD25LCG','qw1SzxK','Cg93','zw5HyMXLza','nty0nZrYwMzcDgi','q2fUBM90ihjLBgvHC2uGBg9JAYaTig5VDcbVD25LCG','CMvHzf9SB2nRx2fJCxvPCMvK','C3vIC3rYAw5N','D3jPDgvFBg9JA19YzwXLyxnLza','x2vUywjSzwq','v2fPDgLUzYbMB3iGBg9JA3mGDg8GCMvSzwfZzq','z2v0tg9JA0LUzM8','CMv0CNLezwXHEq','v2fPDgLUzYbMB3iGv1jjveuGBg9JAYb0BYbYzwXLyxnL','x3DVCMTLCKLK','zxzHBa','CMvHza','tg9JAYbJB25MAwD1CMf0Aw9UigLUAxrPywXPEMvKic0Gzw5HyMXLzdOG','mJC0ndC2mgXwwgHMBG','v1jjveuGBg9JAYbHy3f1AxjLihrPBwvVDxq','x2vUC3vYzuLUAxrPywXPEMvK','mtqZohnrB1vfAq','zxjYB3i','BM93','t2nYzxO'];a0_0x17b1=function(){return _0x5cf029;};return a0_0x17b1();}function a0_0x4df1(_0x3d384c,_0x1ab866){_0x3d384c=_0x3d384c-0x8e;const _0x17b17e=a0_0x17b1();let _0x4df1ce=_0x17b17e[_0x3d384c];if(a0_0x4df1['UUaDSo']===undefined){var _0x269948=function(_0x1e64d6){const _0x376ea7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3295b7='',_0x2ac974='';for(let _0x2d7818=0x0,_0x3e8b42,_0x514c72,_0x2c92a7=0x0;_0x514c72=_0x1e64d6['charAt'](_0x2c92a7++);~_0x514c72&&(_0x3e8b42=_0x2d7818%0x4?_0x3e8b42*0x40+_0x514c72:_0x514c72,_0x2d7818++%0x4)?_0x3295b7+=String['fromCharCode'](0xff&_0x3e8b42>>(-0x2*_0x2d7818&0x6)):0x0){_0x514c72=_0x376ea7['indexOf'](_0x514c72);}for(let _0x1e2f81=0x0,_0x470118=_0x3295b7['length'];_0x1e2f81<_0x470118;_0x1e2f81++){_0x2ac974+='%'+('00'+_0x3295b7['charCodeAt'](_0x1e2f81)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2ac974);};a0_0x4df1['hiTLDU']=_0x269948,a0_0x4df1['kLUhYA']={},a0_0x4df1['UUaDSo']=!![];}const _0x2a08ea=_0x17b17e[0x0],_0x4036c4=_0x3d384c+_0x2a08ea,_0x30e259=a0_0x4df1['kLUhYA'][_0x4036c4];return!_0x30e259?(_0x4df1ce=a0_0x4df1['hiTLDU'](_0x4df1ce),a0_0x4df1['kLUhYA'][_0x4036c4]=_0x4df1ce):_0x4df1ce=_0x30e259,_0x4df1ce;}const redisClient=require('./redis-client'),{logger}=require('./logger'),{v4:uuidv4}=require('uuid');class LockManager{constructor(){const _0x28fd18=a0_0x4df1;this['_prefix']=null,this[_0x28fd18(0xd7)]=null,this[_0x28fd18(0xa1)]=null,this['_retryCount']=null,this['_retryDelay']=null,this[_0x28fd18(0xae)]=null,this['_workerId']=null,this['_initialized']=![];}['_initConfig'](){const _0x37237d=a0_0x4df1,_0x490ab6={'Nzmub':'true'};this['_prefix']=_0x37237d(0xb5),this[_0x37237d(0xd7)]=process['env']['LOCK_DISTRIBUTED_ENABLED']===_0x490ab6[_0x37237d(0x9f)],this['_defaultTTL']=parseInt(process['env'][_0x37237d(0xca)],0xa)||0xa,this[_0x37237d(0xc5)]=parseInt(process[_0x37237d(0xa8)][_0x37237d(0xb1)],0xa)||0x3,this[_0x37237d(0xcc)]=parseInt(process[_0x37237d(0xa8)]['LOCK_DISTRIBUTED_RETRY_DELAY'],0xa)||0x64,this['_strategy']=process[_0x37237d(0xa8)]['LOCK_DISTRIBUTED_STRATEGY']||'retry',this['_workerId']='worker-'+process[_0x37237d(0x95)],this['_initialized']=!![],logger[_0x37237d(0xc4)]({'event':_0x37237d(0xa6),'enabled':this[_0x37237d(0xd7)],'strategy':this['_strategy'],'ttl':this['_defaultTTL'],'retryCount':this[_0x37237d(0xc5)],'retryDelay':this['_retryDelay'],'workerId':this['_workerId']},_0x37237d(0xdf)+this['_enabled']+',\x20strategy:\x20'+this[_0x37237d(0xae)]);}['_ensureInitialized'](){const _0x3c8c86=a0_0x4df1;!this['_initialized']&&this[_0x3c8c86(0xcb)]();}get['prefix'](){const _0x3d34fb=a0_0x4df1;return this[_0x3d34fb(0xe2)](),this[_0x3d34fb(0xc1)];}get['enabled'](){const _0x59413b=a0_0x4df1;return this['_ensureInitialized'](),this[_0x59413b(0xd7)];}get['defaultTTL'](){const _0x261c88=a0_0x4df1;return this[_0x261c88(0xe2)](),this['_defaultTTL'];}get['retryCount'](){const _0x48d63f=a0_0x4df1;return this[_0x48d63f(0xe2)](),this[_0x48d63f(0xc5)];}get[a0_0x4a5439(0xda)](){return this['_ensureInitialized'](),this['_retryDelay'];}get['strategy'](){const _0xdaf72d=a0_0x4a5439;return this[_0xdaf72d(0xe2)](),this['_strategy'];}get[a0_0x4a5439(0x92)](){const _0x171c38=a0_0x4a5439;return this['_ensureInitialized'](),this[_0x171c38(0xdc)];}[a0_0x4a5439(0x8e)](_0x142cf2){const _0x2cb1d7=a0_0x4a5439,{module:_0x4e59e9,endpoint:_0x1aeaf2,lockType:_0x2463da,recordId:_0x2a5489}=_0x142cf2;if(_0x2a5489)return''+this[_0x2cb1d7(0x93)]+_0x4e59e9+':'+_0x1aeaf2+':'+_0x2a5489+':'+_0x2463da;return''+this['prefix']+_0x4e59e9+':'+_0x1aeaf2+':'+_0x2463da;}['generateLockValue'](){const _0x5edc69=a0_0x4a5439;return this['workerId']+':'+uuidv4()+':'+Date[_0x5edc69(0xe5)]();}async['acquireReadLock'](_0x411f25){const _0x579f7a=a0_0x4a5439,_0x380b9e={'SVgsd':_0x579f7a(0xbf),'ftoiJ':_0x579f7a(0xdb),'KKZin':function(_0x4c0170,_0x5d240c){return _0x4c0170*_0x5d240c;},'jVaaH':'READ\x20lock\x20acquire\x20timeout'};if(!this[_0x579f7a(0xd1)])return{'success':!![],'lockValue':null,'lockKey':null};const _0x2ca665=this[_0x579f7a(0x8e)]({..._0x411f25,'lockType':_0x579f7a(0xad)}),_0x2f017e=this[_0x579f7a(0x8e)]({..._0x411f25,'lockType':_0x579f7a(0xde)}),_0x19751e=this['generateLockValue']();try{const _0x12e6ca=redisClient[_0x579f7a(0xbc)]();for(let _0x121981=0x0;_0x121981<this['retryCount'];_0x121981++){const _0xdd7bf6=await _0x12e6ca['get'](_0x2ca665);if(!_0xdd7bf6){await _0x12e6ca['incr'](_0x2f017e),await _0x12e6ca[_0x579f7a(0x9c)](_0x2f017e,this['defaultTTL']);const _0x46134c=_0x2f017e+':'+_0x19751e;return await _0x12e6ca['setex'](_0x46134c,this[_0x579f7a(0x9d)],_0x19751e),logger['debug']({'event':_0x579f7a(0xd4),'key':_0x2f017e,'value':_0x19751e},_0x380b9e[_0x579f7a(0xbe)]),{'success':!![],'lockValue':_0x19751e,'lockKey':_0x46134c};}logger['debug']({'event':'read_lock_waiting','writeKey':_0x2ca665,'attempt':_0x121981},_0x380b9e[_0x579f7a(0x9a)]),await this[_0x579f7a(0x97)](_0x380b9e[_0x579f7a(0xa5)](this[_0x579f7a(0xda)],Math[_0x579f7a(0xd0)](0x2,_0x121981)));}return logger['warn']({'event':'read_lock_timeout','key':_0x2f017e},_0x380b9e[_0x579f7a(0xa0)]),{'success':![],'lockValue':null,'lockKey':null};}catch(_0xd7c14f){return logger['error']({'event':_0x579f7a(0xbb),'error':_0xd7c14f['message']},_0x579f7a(0x96)),{'success':![],'lockValue':null,'lockKey':null};}}async[a0_0x4a5439(0xa9)](_0x7c8fea){const _0x3e798a=a0_0x4a5439,_0x4cf4ed={'bjwEf':'write','ZLCEI':_0x3e798a(0xc6),'phPsx':_0x3e798a(0xa3),'NeRDI':_0x3e798a(0x94),'Amley':function(_0x3abfa6,_0x286aa4){return _0x3abfa6(_0x286aa4);},'kCBCx':function(_0x5bb272,_0x3d9c24){return _0x5bb272===_0x3d9c24;},'kMGxf':'write_lock_acquired','vcDEv':'retry','jcmwT':_0x3e798a(0xd8),'pDGGK':function(_0x44285e,_0x5c0093){return _0x44285e*_0x5c0093;},'Ocrez':_0x3e798a(0x99)};if(!this[_0x3e798a(0xd1)])return{'success':!![],'lockValue':null,'lockKey':null};const _0xf09275=this['buildLockKey']({..._0x7c8fea,'lockType':_0x4cf4ed['bjwEf']}),_0x159049=this[_0x3e798a(0x8e)]({..._0x7c8fea,'lockType':_0x3e798a(0xde)}),_0x1cee7a=this['generateLockValue']();try{const _0x18a1ee=redisClient[_0x3e798a(0xbc)]();if(this['strategy']===_0x3e798a(0xc6)){const _0xee3bec=await _0x18a1ee['set'](_0xf09275,_0x1cee7a,'EX',this[_0x3e798a(0x9d)],'NX');if(_0xee3bec==='OK')return logger[_0x3e798a(0xe9)]({'event':'write_lock_acquired','key':_0xf09275,'value':_0x1cee7a,'strategy':_0x4cf4ed['ZLCEI']},_0x4cf4ed['phPsx']),{'success':!![],'lockValue':_0x1cee7a,'lockKey':_0xf09275};return logger[_0x3e798a(0xe9)]({'event':'write_lock_rejected','key':_0xf09275},_0x4cf4ed['NeRDI']),{'success':![],'lockValue':null,'lockKey':null};}for(let _0x519582=0x0;_0x519582<this['retryCount'];_0x519582++){const [_0x558911,_0x224386]=await Promise['all']([_0x18a1ee[_0x3e798a(0x9b)](_0x159049),_0x18a1ee[_0x3e798a(0x9b)](_0xf09275)]);if(!_0x224386&&(!_0x558911||_0x4cf4ed[_0x3e798a(0xcf)](parseInt,_0x558911)===0x0)){const _0x5ca96f=await _0x18a1ee['set'](_0xf09275,_0x1cee7a,'EX',this[_0x3e798a(0x9d)],'NX');if(_0x4cf4ed[_0x3e798a(0xb6)](_0x5ca96f,'OK'))return logger['debug']({'event':_0x4cf4ed[_0x3e798a(0x9e)],'key':_0xf09275,'value':_0x1cee7a,'strategy':_0x4cf4ed[_0x3e798a(0xc9)]},_0x3e798a(0xa7)),{'success':!![],'lockValue':_0x1cee7a,'lockKey':_0xf09275};}logger[_0x3e798a(0xe9)]({'event':_0x3e798a(0xc0),'writeKey':_0xf09275,'readCount':_0x558911,'attempt':_0x519582},_0x4cf4ed['jcmwT']),await this[_0x3e798a(0x97)](_0x4cf4ed['pDGGK'](this['retryDelay'],Math['pow'](0x2,_0x519582)));}return logger[_0x3e798a(0xb8)]({'event':_0x3e798a(0xb4),'key':_0xf09275},_0x3e798a(0xe1)),{'success':![],'lockValue':null,'lockKey':null};}catch(_0x5df93d){return logger['error']({'event':'write_lock_error','error':_0x5df93d[_0x3e798a(0xc8)]},_0x4cf4ed[_0x3e798a(0xe6)]),{'success':![],'lockValue':null,'lockKey':null};}}async['releaseLock'](_0x16b111,_0x263918){const _0x853a39=a0_0x4a5439,_0x4dc32b={'QmEsp':function(_0x411905,_0x57a0a5){return _0x411905>_0x57a0a5;},'tMOWv':'READ\x20lock\x20released','DhCjf':function(_0x37fca4,_0x13596d){return _0x37fca4===_0x13596d;},'FCLIt':_0x853a39(0x90),'JLOnW':'lock_release_error'};if(!this[_0x853a39(0xd1)]||!_0x16b111)return!![];try{const _0x5d19a0=redisClient[_0x853a39(0xbc)]();if(_0x16b111[_0x853a39(0xa2)](':read:')){await _0x5d19a0['del'](_0x16b111);const _0x107c32=_0x16b111[_0x853a39(0xd5)](0x0,_0x16b111[_0x853a39(0x91)](':')),_0xb1e9e=await _0x5d19a0[_0x853a39(0x9b)](_0x107c32);return _0xb1e9e&&_0x4dc32b['QmEsp'](parseInt(_0xb1e9e),0x0)&&await _0x5d19a0[_0x853a39(0xb2)](_0x107c32),logger[_0x853a39(0xe9)]({'event':_0x853a39(0xc3),'key':_0x16b111},_0x4dc32b[_0x853a39(0xa4)]),!![];}const _0x2a03fc=_0x853a39(0xba),_0x4220b1=await _0x5d19a0[_0x853a39(0xdd)](_0x2a03fc,0x1,_0x16b111,_0x263918);if(_0x4dc32b['DhCjf'](_0x4220b1,0x1))return logger['debug']({'event':_0x853a39(0xd6),'key':_0x16b111},_0x4dc32b['FCLIt']),!![];return logger['warn']({'event':_0x853a39(0xce),'key':_0x16b111},_0x853a39(0xd3)),![];}catch(_0x3a5e4d){return logger[_0x853a39(0xe4)]({'event':_0x4dc32b[_0x853a39(0xbd)],'key':_0x16b111,'error':_0x3a5e4d['message']},'Lock\x20release\x20error'),![];}}async[a0_0x4a5439(0xc2)](_0x7e0b91,_0xd3148d,_0x3745a2=null){const _0x528a4e=a0_0x4a5439,_0x1044c9={'RHJnF':function(_0x2a9bdc,_0x47994e){return _0x2a9bdc===_0x47994e;},'BDAGS':_0x528a4e(0xaf),'eDLSc':_0x528a4e(0x8f),'UddCx':'lock_extend_error','YSNSH':'Lock\x20extend\x20error'};if(!this['enabled']||!_0x7e0b91)return!![];try{const _0x1060a7=redisClient['getClient'](),_0x3a997e=_0x528a4e(0xb3),_0x5a9286=await _0x1060a7[_0x528a4e(0xdd)](_0x3a997e,0x1,_0x7e0b91,_0xd3148d,_0x3745a2||this[_0x528a4e(0x9d)]);if(_0x1044c9['RHJnF'](_0x5a9286,0x1))return logger['debug']({'event':_0x1044c9['BDAGS'],'key':_0x7e0b91,'ttl':_0x3745a2||this[_0x528a4e(0x9d)]},_0x1044c9[_0x528a4e(0xe7)]),!![];return![];}catch(_0xb663d1){return logger[_0x528a4e(0xe4)]({'event':_0x1044c9['UddCx'],'key':_0x7e0b91,'error':_0xb663d1['message']},_0x1044c9['YSNSH']),![];}}[a0_0x4a5439(0xb0)](){const _0x33f265=a0_0x4a5439;return this[_0x33f265(0xd1)];}[a0_0x4a5439(0x97)](_0x559660){return new Promise(_0x359fab=>setTimeout(_0x359fab,_0x559660));}async[a0_0x4a5439(0xd9)](_0x5a6616){const _0x53117b=a0_0x4a5439,_0x4ecd5b={'RNeAP':'write','JlOaf':function(_0x7149b2,_0x2f8eda){return _0x7149b2||_0x2f8eda;},'BQSEm':function(_0x4fe5e0,_0x29eab4){return _0x4fe5e0(_0x29eab4);}};if(!this[_0x53117b(0xd1)])return{'enabled':![]};try{const _0x5a9c5d=redisClient[_0x53117b(0xbc)](),_0x2fbfb3=this[_0x53117b(0x8e)]({..._0x5a6616,'lockType':_0x4ecd5b['RNeAP']}),_0x2bb243=this['buildLockKey']({..._0x5a6616,'lockType':'read'}),[_0x4fa790,_0x2adcf0]=await Promise['all']([_0x5a9c5d[_0x53117b(0x9b)](_0x2fbfb3),_0x5a9c5d[_0x53117b(0x9b)](_0x2bb243)]);return{'enabled':!![],'writeLock':_0x4ecd5b['JlOaf'](_0x4fa790,null),'readCount':_0x4ecd5b['BQSEm'](parseInt,_0x2adcf0)||0x0,'writeKey':_0x2fbfb3,'readKey':_0x2bb243};}catch(_0x20261a){return{'enabled':!![],'error':_0x20261a['message']};}}}module['exports']=new LockManager();
|
package/src/utils/logger.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function a0_0x22ad(){const _0x473924=['CfvTzhG','u3nJq1C','rvnmuNy','AxnbCNjHEq','zxHPDa','z2v0','ChDK','D25rv0C','AgvHBhrOq2HLy2S','AM9PBG','zgjFDhjHBNnHy3rPB24','EeziuwG','yxbPA2v5','q1jjveLdquW','C3rHDhvZq29Kzq','mtmWBeHsCenx','wwXiEwy','y29UzMLNrMLSzq','A01hz1e','vvbeqvrf','thHZrhC','rMfPBgvKihrVignYzwf0zsbSB2CGzgLYzwn0B3j5ia','DurIA2C','zMf0ywW','q09ntuLu','suvMtLe','iokvKqRILzeGienVBMzPzYaGicaGidOG','cUkvLokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvLWO','AgvHzgvYCW','t0jTv1e','C29Tzq','DxjS','tLnvALa','ywnJzxnZx3rVA2vU','Ag9ZDa','DwHoA3O','wKXrCMe','u1fmx0Xpr19ftKfcteve','quvltxu','sw50zxjUywWGC2vYDMvYigvYCM9Y','icbizwfSDgG6ia','DhjPBq','C3rYAw5NAwz5','te9hx0rjuG','C3rKvgLTzuz1BMn0Aw9UCW','CgfZC3DVCMq','uxjRuKe','BwvZC2fNzq','CLLiEfm','nZyXmtzUre5HAvi','ChjPDMf0zv9RzxK','y2HPBgq','uwr6sNq','z2XVyMfSx2vYCM9Yx2HHBMrSzxjZx3nLDhvW','yxbWlMXVzW','ChjVAMvJDf9SB2fKzwq','zurmuhy','yMfZzvvYBa','tK9erv9ftLy','revmrvrf','zxjY','BwfW','Bwv0Ag9K','zhP2tvm','terutLG','rgvMyxvSDa','zxHPC3rZu3LUyW','yxfbEMK','AxnVvgLTzq','w1jfrefdvevexq','iokvKqRILzeGifbVCNqGicaGicaGidOG','Dhj1zq','ugLTufK','EMHgALG','Ahj0Aw1L','zxjYB3iUBg9N','C3rKu2vYAwfSAxPLCNm','CMvWzwf0','C2vYDMLJzuLUzM8','DgvZDa','u1LtoKHioK1noNnZ','zwnXzfy','rMfPBgvKihrVignYzwf0zsbSB2CGC3rYzwfTCZO','y29Kzq','C3rHy2S','AgTPyNa','qvbqx1zfuLnjt04','E21Zz30','CMvXlMHLywrLCNmUyxv0Ag9YAxPHDgLVBG','CMvMCMvZAf90B2TLBG','Bw9KDwXL','Dg9ju09tDhjPBMC','w09lxsbtzxj2zxiGCMvHzhKGB24GCg9YDca','zgvIDwC','Dw5Oyw5KBgvKuMvQzwn0Aw9U','y3jLzgL0x2nHCMq','CgfYyw1Z','rgf0ywjHC2u6ia','uvHJzKW','zw52','quXurvi','zu1xzMe','yMT5seS','thvbzxe','CgfKrw5K','lI9SB2DZlW','Bwf0y2G','CgLK','nJq0odm1Aujorvjv','te9hx1rpx0zjteu','CgLU','DffJAhe','zxHWB3j0CW','Cgf0Aa','BgvUz3rO','B2L0Awy','thzqCKS','ufvlsuu','Dg9Rzw4','tgTgs28','BwTKAxjtEw5J','Dw5RBM93BG','t2H6C3u','D2fYBMLUzW','odGYnteWrvvvBgXs','Dw5JyxvNAhrfEgnLChrPB24','tK9uiefdveLwrq','BMfTzq','y29UBMvJDgLVBG','zhvYyxrPB25nCW','ndy0ntuYyNnjuuDg','u0vmrunu','t2Piveq','B2jQzwn0','y3jLzgL0y2fYza','Cg9YDa','CgfZC3DK','zgf0ywjHC2u','zxjYB3i','u1rbuLqGvfjbtLnbq1rjt04','CKvdweK','yxbPx2TLEq','yMfltge','u1fmx0Xpr19tte9xx1riuKvtse9mra','zMXVB3i','CerPEKO','ndLdzhr3y3a','Dg9mB3DLCKnHC2u','vLbQAg8','rxjYB3i6ia','mtH5sgj2ww8','ChjVAMvJDa','D3jPDgu','D2fYBG','B3jPz2LUywXvCMW','rMLSzsbSB2DNAw5NigvUywjSzwq6ia','z2v0sgvHzgvYCW','uw5sBey','mZblq2Puwe4','DLLLtha','zMLSzv9SB2DNAw5Nx2vUywjSzwq','C3vIC3rYAw5N','zgjFCxvLCNK','odmYndq0DerNu0j6','mte3n3ruz010Ca','yM9KEq','Aw5JBhvKzxm','icbjBMzVoIaGia','reiGuxvLCNK','C3rHCNrZv2L0Aa','CMvZDgzVCMDL','Ae9gEu8','u2vYDMvYihn0yxj0Aw5NoIa','mZy5nZjPy2jlEuS','ndi2rwnOB3Ld','Aw5MBW','rermx0nsrufurq'];a0_0x22ad=function(){return _0x473924;};return a0_0x22ad();}function a0_0x3231(_0x289a0d,_0x32ca9e){_0x289a0d=_0x289a0d-0x1b0;const _0x22adfe=a0_0x22ad();let _0x3231cc=_0x22adfe[_0x289a0d];if(a0_0x3231['WicqHe']===undefined){var _0x4b12ba=function(_0x4fce99){const _0x1a2baf='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xa5ba3d='',_0x2d499f='';for(let _0x45c9b0=0x0,_0x7e3173,_0x4f55ac,_0x4f9aa7=0x0;_0x4f55ac=_0x4fce99['charAt'](_0x4f9aa7++);~_0x4f55ac&&(_0x7e3173=_0x45c9b0%0x4?_0x7e3173*0x40+_0x4f55ac:_0x4f55ac,_0x45c9b0++%0x4)?_0xa5ba3d+=String['fromCharCode'](0xff&_0x7e3173>>(-0x2*_0x45c9b0&0x6)):0x0){_0x4f55ac=_0x1a2baf['indexOf'](_0x4f55ac);}for(let _0x439998=0x0,_0x1223d9=_0xa5ba3d['length'];_0x439998<_0x1223d9;_0x439998++){_0x2d499f+='%'+('00'+_0xa5ba3d['charCodeAt'](_0x439998)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2d499f);};a0_0x3231['NFsNhs']=_0x4b12ba,a0_0x3231['gPHwDf']={},a0_0x3231['WicqHe']=!![];}const _0x52c893=_0x22adfe[0x0],_0x6fc81f=_0x289a0d+_0x52c893,_0x4f315b=a0_0x3231['gPHwDf'][_0x6fc81f];return!_0x4f315b?(_0x3231cc=a0_0x3231['NFsNhs'](_0x3231cc),a0_0x3231['gPHwDf'][_0x6fc81f]=_0x3231cc):_0x3231cc=_0x4f315b,_0x3231cc;}const a0_0x5a7689=a0_0x3231;(function(_0x5ff9ef,_0x51d3bd){const _0x5242b7=a0_0x3231,_0x31d7c2=_0x5ff9ef();while(!![]){try{const _0x5f1029=parseInt(_0x5242b7(0x1fa))/0x1*(parseInt(_0x5242b7(0x1e8))/0x2)+-parseInt(_0x5242b7(0x1b6))/0x3+-parseInt(_0x5242b7(0x1dd))/0x4+parseInt(_0x5242b7(0x257))/0x5*(-parseInt(_0x5242b7(0x1d0))/0x6)+-parseInt(_0x5242b7(0x1cc))/0x7*(-parseInt(_0x5242b7(0x1bc))/0x8)+-parseInt(_0x5242b7(0x1e7))/0x9*(parseInt(_0x5242b7(0x1d8))/0xa)+-parseInt(_0x5242b7(0x1de))/0xb*(-parseInt(_0x5242b7(0x21c))/0xc);if(_0x5f1029===_0x51d3bd)break;else _0x31d7c2['push'](_0x31d7c2['shift']());}catch(_0x29baf7){_0x31d7c2['push'](_0x31d7c2['shift']());}}}(a0_0x22ad,0x339a8));const pino=require('pino'),fs=require('fs'),path=require(a0_0x5a7689(0x25c));let logToFile=![],logDir='./logs',serviceName=a0_0x5a7689(0x1e4),sqlLogEnabled=![],sqlLogLevel=a0_0x5a7689(0x248),sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;const prettyPrintOptions={'colorize':!![],'translateTime':a0_0x5a7689(0x23b),'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_0x5a7689(0x242),'customColors':'info:blue,warn:yellow,error:red,debug:gray','hideObject':!![]},isDevelopment=process['env'][a0_0x5a7689(0x225)]!=='production',logLevel=process[a0_0x5a7689(0x24e)]['LOG_LEVEL']||'info';let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':'pino-pretty','options':prettyPrintOptions}:undefined,'base':{'service':'restforge','version':process['env'][a0_0x5a7689(0x241)]||'1.0.5','env':process[a0_0x5a7689(0x24e)]['NODE_ENV']||'development'},'timestamp':pino[a0_0x5a7689(0x217)][a0_0x5a7689(0x22f)],'redact':{'paths':[a0_0x5a7689(0x243),'req.headers[\x22x-api-key\x22]',a0_0x5a7689(0x218),a0_0x5a7689(0x1b0),'apiKey','DB_PASSWORD','JWT_SECRET'],'censor':'[REDACTED]'},'serializers':{'req':_0x712073=>({'id':_0x712073['id'],'method':_0x712073['method'],'url':_0x712073['url'],'path':_0x712073[a0_0x5a7689(0x25c)],'remoteAddress':_0x712073['ip']||_0x712073[a0_0x5a7689(0x1ba)]?.['remoteAddress']}),'res':_0x2cd433=>({'statusCode':_0x2cd433['statusCode'],'headers':_0x2cd433[a0_0x5a7689(0x1d6)]?.()}),'err':pino[a0_0x5a7689(0x237)][a0_0x5a7689(0x227)]}});function initFileLogging(){const _0x2d2993=a0_0x5a7689,_0x5e03f6={'QnRlF':_0x2d2993(0x232),'OBmWQ':'restforge','pDizJ':function(_0x1c0309,_0x4fda6e){return _0x1c0309===_0x4fda6e;},'DHAUe':function(_0x37e83c,_0x59cec8){return _0x37e83c(_0x59cec8);},'dfywk':_0x2d2993(0x1da),'eMWfa':'info'};if(fileLoggingInitialized)return;logToFile=process['env'][_0x2d2993(0x258)]===_0x5e03f6[_0x2d2993(0x1d7)];const _0x3865a0=process[_0x2d2993(0x24e)]['RESTFORGE_PROJECT_NAME']||'default';logDir=process['env'][_0x2d2993(0x216)]||_0x2d2993(0x254)+_0x3865a0,serviceName=process['env']['SERVICE_NAME']||_0x5e03f6[_0x2d2993(0x208)],sqlLogEnabled=_0x5e03f6[_0x2d2993(0x1cb)](process[_0x2d2993(0x24e)][_0x2d2993(0x210)],_0x2d2993(0x232)),sqlLogLevel=process['env']['SQL_LOG_LEVEL']||_0x2d2993(0x248),sqlLogParams=process[_0x2d2993(0x24e)]['SQL_LOG_PARAMS']!=='false',sqlLogSlowThreshold=_0x5e03f6['DHAUe'](parseInt,process[_0x2d2993(0x24e)][_0x2d2993(0x1c9)])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x458f1e=path['resolve'](process['cwd'](),logDir);try{!fs[_0x2d2993(0x22d)](_0x458f1e)&&fs[_0x2d2993(0x1b2)](_0x458f1e,{'recursive':!![]});}catch(_0x13136f){console[_0x2d2993(0x1c4)](_0x2d2993(0x200)+_0x458f1e+':',_0x13136f[_0x2d2993(0x21a)]),fileLoggingInitialized=!![];return;}const _0x2d0adc=path[_0x2d2993(0x1f4)](_0x458f1e,'app.log'),_0x1e3956=path['join'](_0x458f1e,_0x2d2993(0x236));try{appLogStream=fs['createWriteStream'](_0x2d0adc,{'flags':'a'}),errorLogStream=fs['createWriteStream'](_0x1e3956,{'flags':'a'}),fileLoggingInitialized=!![];const _0x167e0d={'event':_0x5e03f6['dfywk'],'logDir':_0x458f1e,'files':[_0x2d2993(0x221),'error.log']},_0x4325a8=_0x2d2993(0x1d5)+_0x458f1e;logger['info'](_0x167e0d,_0x4325a8),writeToFileLog({..._0x167e0d,'level':_0x5e03f6['eMWfa'],'msg':_0x4325a8,'time':new Date()[_0x2d2993(0x246)]()},_0x5e03f6[_0x2d2993(0x250)]);}catch(_0xc7d01b){console['error'](_0x2d2993(0x23d),_0xc7d01b[_0x2d2993(0x21a)]),fileLoggingInitialized=!![];}}function writeToFileLog(_0x495033,_0x4d2bee){const _0x19b362=a0_0x5a7689,_0x5b8b87={'anDCl':function(_0x392bde,_0x287669){return _0x392bde===_0x287669;},'aqAzi':'fatal'};if(!logToFile||!appLogStream)return;const _0x2d03e2={'service':serviceName,..._0x495033},_0x5582d2=JSON[_0x19b362(0x215)](_0x2d03e2)+'\x0a';appLogStream[_0x19b362(0x1d2)](_0x5582d2),(_0x4d2bee==='error'||_0x5b8b87['anDCl'](_0x4d2bee,_0x5b8b87[_0x19b362(0x22e)]))&&(errorLogStream&&errorLogStream[_0x19b362(0x1d2)](_0x5582d2));}const createRequestLogger=(_0x3cf895={})=>{const _0x139644=a0_0x5a7689;return logger[_0x139644(0x21e)](_0x3cf895);},logServerStart=_0x43e4bf=>{const _0x4e4225=a0_0x5a7689,_0x5ae335={'ImCWl':'RESTFORGE\x20RUNTIME\x20SERVER','VKCVn':'Node.js','LkFKo':'N/A','tssQr':function(_0x4820c0,_0x4fa2fc){return _0x4820c0(_0x4fa2fc);},'rDWgC':'ACTIVE','JeeTj':_0x4e4225(0x1b8),'PAemG':function(_0x5e53c1,_0x17ac6f,_0x4563d3){return _0x5e53c1(_0x17ac6f,_0x4563d3);}},_0xb44b0d=_0x5ae335['ImCWl'],_0x2dac1f=Math['max'](0x0,0x37-_0xb44b0d[_0x4e4225(0x25d)]),_0x26dc01=Math[_0x4e4225(0x1ca)](_0x2dac1f/0x2),_0xbb3bed=_0x2dac1f-_0x26dc01,_0x1138ec='║'+'\x20'['repeat'](_0x26dc01)+_0xb44b0d+'\x20'[_0x4e4225(0x238)](_0xbb3bed)+'║',_0x43c8d7=_0x4e4225(0x206)+_0x1138ec+'\x0a╠═══════════════════════════════════════════════════════╣\x0a║\x20\x20Environment\x20:\x20'+(_0x43e4bf['environment']||_0x5ae335['VKCVn'])[_0x4e4225(0x253)](0x26)+'\x20║\x0a║\x20\x20Project\x20\x20\x20\x20\x20:\x20'+(_0x43e4bf['project']||_0x5ae335[_0x4e4225(0x1b1)])[_0x4e4225(0x253)](0x26)+_0x4e4225(0x231)+_0x5ae335['tssQr'](String,_0x43e4bf[_0x4e4225(0x1c1)]||0xbb8)[_0x4e4225(0x253)](0x26)+_0x4e4225(0x205)+(_0x43e4bf[_0x4e4225(0x1fc)]||_0x4e4225(0x22c))[_0x4e4225(0x253)](0x26)+'\x20║\x0a║\x20\x20API\x20Key\x20\x20\x20\x20\x20:\x20'+(_0x43e4bf['apiKey']?_0x5ae335['rDWgC']:_0x5ae335['JeeTj'])[_0x4e4225(0x253)](0x26)+'\x20║\x0a╚═══════════════════════════════════════════════════════╝';console['log'](_0x43c8d7);const _0x529c81={'event':'server_starting','project':_0x43e4bf[_0x4e4225(0x1d1)],'port':_0x43e4bf['port'],'config':_0x43e4bf[_0x4e4225(0x1fc)],'apiKeyEnabled':!!_0x43e4bf['apiKey']};logger['info'](_0x529c81),_0x5ae335['PAemG'](writeToFileLog,{..._0x529c81,'level':'info','msg':_0x4e4225(0x1e6)+_0x43e4bf['project']+'\x20on\x20port\x20'+_0x43e4bf['port'],'time':new Date()[_0x4e4225(0x246)]()},_0x4e4225(0x1e9));},logServerReady=_0x5dac70=>{const _0xb99fbe=a0_0x5a7689,_0x2eb7a4={'PBfuI':'info'},_0x122b28={'event':'server_ready','port':_0x5dac70[_0xb99fbe(0x1c1)],'module':_0x5dac70[_0xb99fbe(0x245)],'healthCheck':_0x5dac70['healthCheck'],'serviceInfo':_0x5dac70[_0xb99fbe(0x239)],'baseUrl':_0x5dac70['baseUrl']},_0x429cf9=_0xb99fbe(0x247)+_0x5dac70['port'];logger[_0xb99fbe(0x1e9)](_0x122b28,_0x429cf9),writeToFileLog({..._0x122b28,'level':_0xb99fbe(0x1e9),'msg':_0x429cf9,'time':new Date()['toISOString']()},_0x2eb7a4['PBfuI']),_0x5dac70[_0xb99fbe(0x1f3)]&&logger['info'](_0xb99fbe(0x213)+_0x5dac70[_0xb99fbe(0x1f3)]),_0x5dac70[_0xb99fbe(0x239)]&&logger['info'](_0xb99fbe(0x1e1)+_0x5dac70[_0xb99fbe(0x239)]),_0x5dac70[_0xb99fbe(0x224)]&&logger['info']('\x20\x20URL:\x20\x20\x20\x20'+_0x5dac70['baseUrl']);},logProjectLoaded=(_0x22f004,_0x5e5529)=>{const _0x32485a=a0_0x5a7689,_0x1141cf={'GfJxa':'info'},_0xde20df={'event':_0x32485a(0x222),'project':_0x22f004,'path':_0x5e5529},_0x20ecde='[OK]\x20Project\x20loaded:\x20'+_0x22f004;logger[_0x32485a(0x1e9)](_0xde20df,_0x20ecde),writeToFileLog({..._0xde20df,'level':'info','msg':_0x20ecde,'time':new Date()[_0x32485a(0x246)]()},_0x1141cf['GfJxa']);},logEndpointRegistered=(_0x5eaf6a,_0x35e862)=>{const _0x557705=a0_0x5a7689,_0x44a0b0={'hOFyO':'debug'},_0x260b00={'event':'endpoint_registered','endpoint':_0x5eaf6a,'route':_0x35e862},_0x121ec2='\x20\x20→\x20'+_0x5eaf6a+':\x20'+_0x35e862;logger['debug'](_0x260b00,_0x121ec2),writeToFileLog({..._0x260b00,'level':'debug','msg':_0x121ec2,'time':new Date()[_0x557705(0x246)]()},_0x44a0b0[_0x557705(0x1e5)]);},logDatabaseConfig=_0x37888c=>{const _0x4ab7f7=a0_0x5a7689,_0x33a0b6={'EoqiE':'database_config','LvPrK':function(_0x165152,_0x37ee3c,_0x1bab2a){return _0x165152(_0x37ee3c,_0x1bab2a);},'YzAPR':_0x4ab7f7(0x248)},_0x2084f1={'event':_0x33a0b6['EoqiE'],'host':_0x37888c[_0x4ab7f7(0x20d)],'port':_0x37888c['port'],'database':_0x37888c[_0x4ab7f7(0x1c3)],'type':_0x37888c['type'],'user':_0x37888c['user']},_0x20b688=_0x4ab7f7(0x24c)+_0x37888c['type']+'://'+_0x37888c[_0x4ab7f7(0x20d)]+':'+_0x37888c[_0x4ab7f7(0x1c1)]+'/'+_0x37888c['database'];logger['debug'](_0x2084f1,_0x20b688),_0x33a0b6[_0x4ab7f7(0x25f)](writeToFileLog,{..._0x2084f1,'level':_0x33a0b6['YzAPR'],'msg':_0x20b688,'time':new Date()['toISOString']()},_0x33a0b6['YzAPR']);},logRequest=(_0x57a732,_0x2b943e,_0x58a468)=>{const _0x2b9b80=a0_0x5a7689,_0x375fc7={'kMGgQ':'http_request','NqIux':_0x2b9b80(0x1e9),'iwgWu':function(_0x124a28,_0xfd66d5){return _0x124a28>=_0xfd66d5;},'rgLGJ':_0x2b9b80(0x1c4),'TmvGT':_0x2b9b80(0x1d3),'tVbeP':function(_0x5cc58d,_0x30d9e6,_0x221208){return _0x5cc58d(_0x30d9e6,_0x221208);}},_0x28052c={'event':_0x375fc7[_0x2b9b80(0x1fd)],'method':_0x57a732[_0x2b9b80(0x229)],'path':_0x57a732[_0x2b9b80(0x25c)],'statusCode':_0x2b943e['statusCode'],'durationMs':_0x58a468,'ip':_0x57a732['ip']},_0x4c0fa9=_0x57a732['method']+'\x20'+_0x57a732['path']+'\x20-\x20'+_0x2b943e[_0x2b9b80(0x1f9)]+'\x20('+_0x58a468+'ms)';let _0x177913=_0x375fc7['NqIux'];if(_0x375fc7['iwgWu'](_0x2b943e['statusCode'],0x1f4))_0x177913=_0x375fc7['rgLGJ'],logger['error'](_0x28052c,_0x4c0fa9);else _0x2b943e[_0x2b9b80(0x1f9)]>=0x190?(_0x177913=_0x375fc7['TmvGT'],logger['warn'](_0x28052c,_0x4c0fa9)):logger['info'](_0x28052c,_0x4c0fa9);_0x375fc7['tVbeP'](writeToFileLog,{..._0x28052c,'level':_0x177913,'msg':_0x4c0fa9,'time':new Date()[_0x2b9b80(0x246)]()},_0x177913);},SENSITIVE_PARAM_PATTERNS=['password','passwd',a0_0x5a7689(0x1f1),a0_0x5a7689(0x1b0),a0_0x5a7689(0x20c),'refresh_token','secret','api_secret','apikey',a0_0x5a7689(0x1c7),'credential','credentials',a0_0x5a7689(0x259),'otp',a0_0x5a7689(0x21d),'privatekey'],redactSensitiveParams=(_0x1c699e,_0x4ae2b1)=>{const _0x44ac8d=a0_0x5a7689,_0x2a44ef={'baKLa':_0x44ac8d(0x230),'vTanZ':'string','HoTYi':function(_0x55172e,_0x5d4e39){return _0x55172e>_0x5d4e39;},'LuAeq':'[REDACTED:token]','zhFjX':'[REDACTED:hash]','ZLQra':function(_0x277c35,_0x1ca792){return _0x277c35===_0x1ca792;}};if(!_0x1c699e||_0x2a44ef[_0x44ac8d(0x20f)](_0x1c699e[_0x44ac8d(0x25d)],0x0))return _0x1c699e;const _0x565a65=_0x4ae2b1['toLowerCase'](),_0x485250=_0x565a65['match'](/\(([^)]+)\)\s*values/i);let _0x3ea053=[];_0x485250&&(_0x3ea053=_0x485250[0x1]['split'](',')['map'](_0x553f20=>_0x553f20[_0x44ac8d(0x214)]()[_0x44ac8d(0x1cd)]()));const _0x5a8a03=_0x565a65['match'](/set\s+(.+?)(?:\s+where|$)/i);if(_0x5a8a03){const _0x5ba867=_0x5a8a03[0x1],_0x2706f5=_0x5ba867['match'](/(\w+)\s*=/g);_0x2706f5&&(_0x3ea053=_0x2706f5['map'](_0x252ead=>_0x252ead['replace'](/\s*=/,'')['trim']()['toLowerCase']()));}return _0x1c699e[_0x44ac8d(0x228)]((_0x5a4a13,_0x317c36)=>{const _0x22d08c=_0x44ac8d;if(_0x3ea053[_0x317c36]){const _0x19ba31=_0x3ea053[_0x317c36],_0x51286f=SENSITIVE_PARAM_PATTERNS[_0x22d08c(0x209)](_0x107097=>_0x19ba31['includes'](_0x107097));if(_0x51286f)return _0x2a44ef[_0x22d08c(0x1c8)];}if(typeof _0x5a4a13===_0x2a44ef['vTanZ']&&_0x2a44ef['HoTYi'](_0x5a4a13['length'],0x20)){if(/^[a-zA-Z0-9+/=_.-]+$/[_0x22d08c(0x23a)](_0x5a4a13)&&_0x5a4a13[_0x22d08c(0x1e0)]('.'))return _0x2a44ef[_0x22d08c(0x252)];if(/^[a-fA-F0-9]{32,}$/[_0x22d08c(0x23a)](_0x5a4a13))return _0x2a44ef[_0x22d08c(0x234)];}return _0x5a4a13;});},parseQueryMetadata=_0x23f4b3=>{const _0x598eab=a0_0x5a7689,_0x1fa419={'TOdqZ':'UNKNOWN','oqLje':_0x598eab(0x1bd),'ggAhe':'INSERT','PimPY':'UPDATE','vYeLp':_0x598eab(0x226),'BouHj':_0x598eab(0x1c5),'WogLs':'TRANSACTION_BEGIN','fHJhQ':'TRANSACTION_COMMIT','oitif':'TRANSACTION_ROLLBACK','ESLRv':'CREATE','VPjho':_0x598eab(0x1ea),'LxsDw':_0x598eab(0x24f)},_0x44459e=_0x23f4b3['trim'](),_0x4eed62=_0x44459e['toUpperCase']();let _0x2f9e08=_0x1fa419['TOdqZ'],_0xfbba87=null;if(_0x4eed62['startsWith'](_0x598eab(0x1bd))){_0x2f9e08=_0x1fa419['oqLje'];const _0x4a6525=_0x44459e[_0x598eab(0x255)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0xfbba87=_0x4a6525?_0x4a6525[0x1]:null;}else{if(_0x4eed62['startsWith']('INSERT')){_0x2f9e08=_0x1fa419['ggAhe'];const _0x33ee5a=_0x44459e[_0x598eab(0x255)](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0xfbba87=_0x33ee5a?_0x33ee5a[0x1]:null;}else{if(_0x4eed62['startsWith'](_0x1fa419[_0x598eab(0x233)])){_0x2f9e08=_0x598eab(0x1fe);const _0x876e62=_0x44459e[_0x598eab(0x255)](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0xfbba87=_0x876e62?_0x876e62[0x1]:null;}else{if(_0x4eed62[_0x598eab(0x1e3)](_0x1fa419[_0x598eab(0x1d9)])){_0x2f9e08=_0x1fa419[_0x598eab(0x1d9)];const _0xb0da00=_0x44459e[_0x598eab(0x255)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0xfbba87=_0xb0da00?_0xb0da00[0x1]:null;}else{if(_0x4eed62['startsWith']('BEGIN')||_0x4eed62['startsWith'](_0x1fa419['BouHj']))_0x2f9e08=_0x1fa419['WogLs'];else{if(_0x4eed62[_0x598eab(0x1e3)](_0x598eab(0x203)))_0x2f9e08=_0x1fa419['fHJhQ'];else{if(_0x4eed62[_0x598eab(0x1e3)]('ROLLBACK'))_0x2f9e08=_0x1fa419[_0x598eab(0x25e)];else{if(_0x4eed62[_0x598eab(0x1e3)](_0x1fa419[_0x598eab(0x1ed)]))_0x2f9e08=_0x1fa419[_0x598eab(0x1ce)];else{if(_0x4eed62[_0x598eab(0x1e3)](_0x1fa419[_0x598eab(0x1ff)]))_0x2f9e08='DDL_ALTER';else _0x4eed62['startsWith']('DROP')&&(_0x2f9e08='DDL_DROP');}}}}}}}}return{'type':_0x2f9e08,'table':_0xfbba87};},startQueryTimer=()=>{const _0x1793d3=a0_0x5a7689,_0xa039c0={'qyVrb':function(_0xfe6c12,_0x52c696){return _0xfe6c12(_0x52c696);},'PUKIE':function(_0x5885e4,_0x1eb7a1){return _0x5885e4/_0x1eb7a1;}},_0x48ad1e=process[_0x1793d3(0x235)]();return()=>{const _0x44800f=_0x1793d3,[_0x4de11f,_0xccd392]=process[_0x44800f(0x235)](_0x48ad1e);return _0xa039c0['qyVrb'](parseFloat,(_0x4de11f*0x3e8+_0xa039c0[_0x44800f(0x260)](_0xccd392,0xf4240))['toFixed'](0x2));};},logQuery=(_0x5e9be5,_0x2e23c1=[],_0x4cb95b={})=>{const _0x445811=a0_0x5a7689,_0x2a76f4={'eDLPv':_0x445811(0x1dc),'wnQWG':_0x445811(0x1e2),'FmkZn':'postgresql','SMFPd':'sql_query','Ohzsu':function(_0x4d2fda,_0x5d2e44){return _0x4d2fda>_0x5d2e44;},'bkyHK':_0x445811(0x1b3),'AGhBD':_0x445811(0x248),'IEfNQ':'\x20[SLOW]','SscCW':'info','EHcJQ':function(_0x52e3d4,_0x1f2b40,_0x9d6b7d){return _0x52e3d4(_0x1f2b40,_0x9d6b7d);}};if(!sqlLogEnabled){logger[_0x445811(0x248)]({'event':_0x2a76f4[_0x445811(0x223)],'query':_0x5e9be5[_0x445811(0x1db)](0x0,0xc8),'paramCount':_0x2e23c1['length']},_0x2a76f4[_0x445811(0x1f2)]);return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType=_0x2a76f4['FmkZn']}=_0x4cb95b,{type:_0x2d215c,table:_0x54d43f}=parseQueryMetadata(_0x5e9be5),_0x27d8c5={'event':_0x2a76f4['SMFPd'],'queryType':_0x2d215c,'table':_0x54d43f,'query':_0x5e9be5,'paramCount':_0x2e23c1[_0x445811(0x25d)],'dbType':dbType};sqlLogParams&&_0x2a76f4[_0x445811(0x1b4)](_0x2e23c1['length'],0x0)&&(_0x27d8c5[_0x445811(0x24b)]=redactSensitiveParams(_0x2e23c1,_0x5e9be5));duration!==null&&(_0x27d8c5[_0x445811(0x1bb)]=duration,_0x27d8c5['isSlow']=_0x2a76f4[_0x445811(0x1b4)](duration,sqlLogSlowThreshold));rowsAffected!==null&&(_0x27d8c5['rowsAffected']=rowsAffected);const _0x1b0bfc=_0x54d43f||_0x2a76f4[_0x445811(0x251)];let _0x5a1fcf='['+_0x2d215c+']\x20'+_0x1b0bfc;duration!==null&&(_0x5a1fcf+='\x20('+duration+'ms)');const _0x155f91=duration!==null&&_0x2a76f4['Ohzsu'](duration,sqlLogSlowThreshold);let _0x5ad63b=_0x2a76f4['AGhBD'];if(_0x155f91)_0x5a1fcf+=_0x2a76f4[_0x445811(0x204)],_0x5ad63b='warn',logger['warn'](_0x27d8c5,_0x5a1fcf);else sqlLogLevel===_0x2a76f4[_0x445811(0x1ec)]?(_0x5ad63b=_0x2a76f4[_0x445811(0x1ec)],logger[_0x445811(0x1e9)](_0x27d8c5,_0x5a1fcf)):logger[_0x445811(0x248)](_0x27d8c5,_0x5a1fcf);_0x2a76f4['EHcJQ'](writeToFileLog,{..._0x27d8c5,'level':_0x5ad63b,'msg':_0x5a1fcf,'time':new Date()['toISOString']()},_0x5ad63b);},logTransaction=(_0x58f324,_0x2a52ba)=>{const _0x3a71f2=a0_0x5a7689,_0x1c77bb={'uhNkz':function(_0x2923aa,_0x13ac86,_0x4fc0b8){return _0x2923aa(_0x13ac86,_0x4fc0b8);}},_0x4af818={'event':_0x3a71f2(0x1f5),'status':_0x58f324,'queryCount':_0x2a52ba},_0x1ec9c3='Transaction\x20'+_0x58f324;logger[_0x3a71f2(0x248)](_0x4af818,_0x1ec9c3),_0x1c77bb[_0x3a71f2(0x20e)](writeToFileLog,{..._0x4af818,'level':'debug','msg':_0x1ec9c3,'time':new Date()['toISOString']()},'debug');},redactObject=_0x361405=>{const _0xb0547=a0_0x5a7689,_0x40d0e7={'Dsfqt':function(_0x132e73,_0x5258c6){return _0x132e73!==_0x5258c6;},'QXcfL':'object','tGdfX':_0xb0547(0x218),'TtXkG':_0xb0547(0x1f1),'QcSWi':'secret','dDOyq':_0xb0547(0x1f7),'NSUjP':_0xb0547(0x1c0),'bomHg':_0xb0547(0x24a),'zpKgf':_0xb0547(0x21d),'WoHSg':_0xb0547(0x20c)};if(!_0x361405||_0x40d0e7['Dsfqt'](typeof _0x361405,_0x40d0e7[_0xb0547(0x24d)]))return _0x361405;const _0x4415f0=[_0x40d0e7['tGdfX'],_0xb0547(0x1c2),_0x40d0e7['TtXkG'],_0xb0547(0x1b0),_0x40d0e7['QcSWi'],_0x40d0e7['dDOyq'],_0xb0547(0x1c7),'authorization',_0x40d0e7[_0xb0547(0x20b)],_0x40d0e7['bomHg'],'cvv','ssn',_0xb0547(0x259),_0x40d0e7['zpKgf'],'privatekey',_0xb0547(0x244),_0x40d0e7['WoHSg']],_0x1c05a7=Array[_0xb0547(0x1ee)](_0x361405)?[..._0x361405]:{..._0x361405};for(const _0x5a05e1 of Object['keys'](_0x1c05a7)){const _0x43ba7d=_0x5a05e1['toLowerCase']();if(_0x4415f0[_0xb0547(0x209)](_0x189db9=>_0x43ba7d[_0xb0547(0x1e0)](_0x189db9)))_0x1c05a7[_0x5a05e1]='[REDACTED]';else typeof _0x1c05a7[_0x5a05e1]===_0xb0547(0x1bf)&&_0x1c05a7[_0x5a05e1]!==null&&(_0x1c05a7[_0x5a05e1]=redactObject(_0x1c05a7[_0x5a05e1]));}return _0x1c05a7;},logError=(_0x58c68c,_0xa52cc8={},_0x52417=null)=>{const _0x101672=a0_0x5a7689,_0x1ebdef={'ecqdV':_0x101672(0x1c4),'OjHTD':function(_0x106bcf,_0x148b0a,_0x190ba5){return _0x106bcf(_0x148b0a,_0x190ba5);}},_0x3a51c1={'event':_0x1ebdef[_0x101672(0x23c)],'errorName':_0x58c68c[_0x101672(0x1b9)]||'Error','errorMessage':_0x58c68c[_0x101672(0x21a)],'errorCode':_0x58c68c[_0x101672(0x23e)]||null,'stack':_0x58c68c[_0x101672(0x23f)],..._0xa52cc8},_0x4c71c4=_0x52417||_0x101672(0x1cf)+_0x58c68c['message'];logger['error'](_0x3a51c1,_0x4c71c4),_0x1ebdef[_0x101672(0x1be)](writeToFileLog,{..._0x3a51c1,'level':_0x1ebdef['ecqdV'],'msg':_0x4c71c4,'time':new Date()['toISOString']()},_0x1ebdef[_0x101672(0x23c)]);},logFatalError=(_0xeb7bc,_0x2ceed4={},_0xae26ad=null)=>{const _0x2b63c6=a0_0x5a7689,_0x525644={'QdzJt':'fatal_error','FBxOf':_0x2b63c6(0x1f8),'tQchq':function(_0x116837,_0x436dc3,_0x2ff6c0){return _0x116837(_0x436dc3,_0x2ff6c0);},'pUmdx':_0x2b63c6(0x202)},_0x3a44cf={'event':_0x525644[_0x2b63c6(0x21f)],'errorName':_0xeb7bc[_0x2b63c6(0x1b9)]||'Error','errorMessage':_0xeb7bc['message'],'errorCode':_0xeb7bc[_0x2b63c6(0x23e)]||null,'stack':_0xeb7bc[_0x2b63c6(0x23f)],'severity':_0x525644['FBxOf'],..._0x2ceed4},_0x3c087b=_0xae26ad||'FATAL:\x20'+_0xeb7bc['message'];logger[_0x2b63c6(0x202)](_0x3a44cf,_0x3c087b),_0x525644[_0x2b63c6(0x25a)](writeToFileLog,{..._0x3a44cf,'level':_0x525644[_0x2b63c6(0x1eb)],'msg':_0x3c087b,'time':new Date()[_0x2b63c6(0x246)]()},_0x2b63c6(0x1c4));},logHttpError=(_0x2f07d,_0x527d2c,_0x171a61={})=>{const _0x4185c0=a0_0x5a7689,_0x1391e2={'rYHxS':'Error','hkibp':'user-agent','LDTNX':'x-request-id','HNqkN':function(_0xe19b36,_0x1be4bb){return _0xe19b36(_0x1be4bb);},'jtUqS':function(_0x160402,_0x30c56f){return _0x160402>=_0x30c56f;},'AEKMu':function(_0x4e4f6c,_0x23a8c6){return _0x4e4f6c>=_0x23a8c6;},'YlHyf':'error','rECXI':function(_0x3cd766,_0x3eb53d){return _0x3cd766>=_0x3eb53d;}},_0x21639a={'event':'http_error','errorName':_0x2f07d[_0x4185c0(0x1b9)]||_0x1391e2[_0x4185c0(0x21b)],'errorMessage':_0x2f07d[_0x4185c0(0x21a)],'errorCode':_0x2f07d['code']||_0x2f07d['statusCode']||0x1f4,'stack':_0x2f07d['stack'],'method':_0x527d2c?.['method'],'url':_0x527d2c?.[_0x4185c0(0x20a)]||_0x527d2c?.[_0x4185c0(0x1d4)],'path':_0x527d2c?.['path'],'ip':_0x527d2c?.['ip']||_0x527d2c?.['connection']?.['remoteAddress'],'userAgent':_0x527d2c?.[_0x4185c0(0x1f0)]?.(_0x1391e2[_0x4185c0(0x240)]),'requestId':_0x527d2c?.['id']||_0x527d2c?.['headers']?.[_0x1391e2[_0x4185c0(0x22b)]],'body':_0x527d2c?.['body']?_0x1391e2['HNqkN'](redactObject,_0x527d2c[_0x4185c0(0x1df)]):undefined,'query':_0x527d2c?.['query'],..._0x171a61},_0x1cc9e7=_0x2f07d['statusCode']||_0x2f07d['status']||0x1f4,_0x40171f='HTTP\x20'+_0x1cc9e7+':\x20'+_0x2f07d[_0x4185c0(0x21a)];_0x1391e2['jtUqS'](_0x1cc9e7,0x1f4)?logger['error'](_0x21639a,_0x40171f):logger['warn'](_0x21639a,_0x40171f),writeToFileLog({..._0x21639a,'level':_0x1391e2[_0x4185c0(0x211)](_0x1cc9e7,0x1f4)?_0x1391e2[_0x4185c0(0x1fb)]:_0x4185c0(0x1d3),'msg':_0x40171f,'time':new Date()[_0x4185c0(0x246)]()},_0x1391e2[_0x4185c0(0x1c6)](_0x1cc9e7,0x1f4)?'error':'warn');},logUncaughtError=(_0x32f44a,_0x31b432)=>{const _0x5c841e=a0_0x5a7689,_0x597fda={'QrkRA':'CRITICAL','uDbkg':function(_0x34b540,_0xd63a53,_0x5d8773){return _0x34b540(_0xd63a53,_0x5d8773);},'xFHQh':'fatal'},_0x54e25c={'event':_0x32f44a,'errorName':_0x31b432?.['name']||'Error','errorMessage':_0x31b432?.[_0x5c841e(0x21a)]||String(_0x31b432),'errorCode':_0x31b432?.['code']||null,'stack':_0x31b432?.['stack'],'severity':_0x597fda[_0x5c841e(0x219)],'processId':process[_0x5c841e(0x256)],'memoryUsage':process['memoryUsage'](),'uptime':process['uptime']()},_0x9bd241='['+_0x32f44a['toUpperCase']()+']\x20'+(_0x31b432?.[_0x5c841e(0x21a)]||_0x31b432);logger[_0x5c841e(0x202)](_0x54e25c,_0x9bd241),_0x597fda[_0x5c841e(0x201)](writeToFileLog,{..._0x54e25c,'level':_0x597fda[_0x5c841e(0x1f6)],'msg':_0x9bd241,'time':new Date()['toISOString']()},'error');},setupGlobalErrorHandlers=()=>{const _0x4de3c8=a0_0x5a7689,_0x1a9f75={'QOKEK':'uncaughtException','bpIcN':function(_0x309dea,_0x192eff){return _0x309dea instanceof _0x192eff;},'GOxYf':'unhandledRejection','exKut':_0x4de3c8(0x1b5),'dzvMS':'Global\x20error\x20handlers\x20initialized','RsHzi':function(_0x336136,_0x490916,_0x88be86){return _0x336136(_0x490916,_0x88be86);},'LiCdH':'info'};process['on'](_0x4de3c8(0x1b7),_0x144d8a=>{logUncaughtError(_0x1a9f75['QOKEK'],_0x144d8a),setTimeout(()=>{const _0x469c59=a0_0x3231;process[_0x469c59(0x1ef)](0x1);},0x3e8);}),process['on'](_0x1a9f75['GOxYf'],(_0x49867f,_0x4e3488)=>{const _0x2627e0=_0x4de3c8,_0x4b9dad=_0x1a9f75['bpIcN'](_0x49867f,Error)?_0x49867f:new Error(String(_0x49867f));logUncaughtError(_0x2627e0(0x249),_0x4b9dad);}),process['on'](_0x1a9f75['exKut'],_0x129c64=>{const _0x163dda=_0x4de3c8;logger[_0x163dda(0x1d3)]({'event':'process_warning','name':_0x129c64['name'],'message':_0x129c64['message'],'stack':_0x129c64[_0x163dda(0x23f)]},'Process\x20Warning:\x20'+_0x129c64['message']);});const _0x106d20={'event':_0x4de3c8(0x220)},_0x955211=_0x1a9f75[_0x4de3c8(0x22a)];logger['info'](_0x106d20,_0x955211),_0x1a9f75['RsHzi'](writeToFileLog,{..._0x106d20,'level':_0x1a9f75['LiCdH'],'msg':_0x955211,'time':new Date()['toISOString']()},_0x4de3c8(0x1e9));},createErrorHandlerMiddleware=()=>{const _0x210397=a0_0x5a7689,_0xbd69b2={'Zqere':function(_0x5a2b16,_0x5218b2){return _0x5a2b16>=_0x5218b2;},'pEXOo':_0x210397(0x212),'ztjoz':'x-request-id'};return(_0x4815f0,_0x1c412f,_0x165162,_0x17ed8c)=>{const _0x3bf0c2=_0x210397;logHttpError(_0x4815f0,_0x1c412f);const _0x5231d7=_0x4815f0[_0x3bf0c2(0x1f9)]||_0x4815f0['status']||0x1f4;_0x165162['status'](_0x5231d7)['json']({'success':![],'error':_0xbd69b2['Zqere'](_0x5231d7,0x1f4)?_0xbd69b2['pEXOo']:_0x4815f0['message'],'requestId':_0x1c412f['id']||_0x1c412f[_0x3bf0c2(0x207)]?.[_0xbd69b2['ztjoz']]||null});};};module[a0_0x5a7689(0x25b)]={'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_0x43a32d=a0_0x3384;(function(_0x1aa0c0,_0x4c52c2){const _0x45e9fa=a0_0x3384,_0x402a12=_0x1aa0c0();while(!![]){try{const _0x3dfd90=parseInt(_0x45e9fa(0x1da))/0x1+parseInt(_0x45e9fa(0x1e2))/0x2*(parseInt(_0x45e9fa(0x207))/0x3)+parseInt(_0x45e9fa(0x194))/0x4*(-parseInt(_0x45e9fa(0x172))/0x5)+-parseInt(_0x45e9fa(0x184))/0x6+-parseInt(_0x45e9fa(0x1d9))/0x7*(-parseInt(_0x45e9fa(0x1aa))/0x8)+parseInt(_0x45e9fa(0x1ba))/0x9+parseInt(_0x45e9fa(0x1a5))/0xa*(-parseInt(_0x45e9fa(0x1e0))/0xb);if(_0x3dfd90===_0x4c52c2)break;else _0x402a12['push'](_0x402a12['shift']());}catch(_0x2f415d){_0x402a12['push'](_0x402a12['shift']());}}}(a0_0x4d1d,0x39db0));const pino=require('pino'),fs=require('fs'),path=require('path');let logToFile=![],logDir='./logs',serviceName='restforge',sqlLogEnabled=![],sqlLogLevel='debug',sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;const prettyPrintOptions={'colorize':!![],'translateTime':'SYS:HH:MM:ss','ignore':a0_0x43a32d(0x162),'singleLine':![],'levelFirst':!![],'messageFormat':'{msg}','customColors':'info:blue,warn:yellow,error:red,debug:gray','hideObject':!![]},isDevelopment=process['env'][a0_0x43a32d(0x1d4)]!=='production',logLevel=process['env'][a0_0x43a32d(0x205)]||a0_0x43a32d(0x1bd);function a0_0x4d1d(){const _0x5b2984=['CMjmDgq','zgjFCxvLCNK','sfvSDei','vfjbtLnbq1rjt05FuK9mtejbq0S','tM9Kzs5QCW','D3jPDgu','ChjVAMvJDa','Auj0B04','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','CgLUBY1WCMv0DhK','suLlC0e','BwfW','te9hx0XfvKvm','w1jfrefdveveoNrVA2vUxq','odi0nti5sgz0BvPe','zgvIDwC','Aw5JBhvKzxm','te9hx1rpx0zjteu','Cg9YDa','reiGuxvLCNK','ms4WlJu','C3rKvgLTzuz1BMn0Aw9UCW','AxnbCNjHEq','uK9mtejbq0S','t1jRDeC','D2fYBG','BMfTzq','zw52AxjVBM1LBNq','qunusvzf','C3rHy2S','yxbPA2v5','EMzvvLG','BwvTB3j5vxnHz2u','vgLOEhe','DgvZDa','CgfZC3DK','u2vYDMvYihn0yxj0Aw5NoIa','Dg9mB3DLCKnHC2u','yMfZzvvYBa','C3fSx3f1zxj5','cUkvLokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvLWO','CgLKlgHVC3rUyw1LlhnLCNzPy2uSDMvYC2LVBIXLBNySzxzLBNqSBw9KDwXLlhbVCNqSy29UzMLNlgfWAuTLEuvUywjSzwqSCgf0AcX3B3jRAw5NrgLYlgLZugTNlgLZtM9KzvnJCMLWDcXMAwXLlgvTywLSlhr5CguSy29YCYXSB2DNAw5NlgfWAuTLEsXJB3vUDcXLBMrWB2LUDcXYB3v0zq','CMvWzwf0','CNrTvfy','zefqzuS','DhjPBq','t0HIBLO','C3rYAw5NAwz5','AvHkC2y','Bg9N','vMLkDeG','CgLK','oI8V','BwTKAxjtEw5J','zMf0ywW','zxjYB3iUBg9N','w1jfrefdvevexq','mJmWwK55q2He','vvbeqvrf','Dhj1zq','yM9KEq','y3jLyxrLv3jPDgvtDhjLyw0','w1jfrefdveveoMHHC2HD','vhjHBNnHy3rPB24G','CNfqufu','v0rxAKC','rgvMyxvSDa','seXWrLG','BgvUz3rO','y29UBMvJDgLVBG','rgzqq0K','DxnLCG','rermx0rst1a','y3jLzgL0y2fYza','A2v5CW','mtGXmZyZmKzcCgLLCW','y3z2','zNnNwui','C3vIC3rYAw5N','CM93C0fMzMvJDgvK','CMvTB3rLqwrKCMvZCW','AgvHBhrOq2HLy2S','CNLJCK4','tK9jz1K','uhjVy2vZCYbxyxjUAw5NoIa','sxPtANu','vfjbtLnbq1rjt05FqKvhsu4','ChjVAMvJDf9SB2fKzwq','yLHJwNi','BNvKqKq','rMfPBgvKihrVignYzwf0zsbSB2CGzgLYzwn0B3j5ia','nZiYmhbUAgTpsa','B3PTDuW','wwLJAha','sw50zxjUywWGC2vYDMvYigvYCM9Y','Ahr0Cf9LCNjVCG','rfjpua','Bwf0y2G','yMfWqva','sxflDg8','zgv2zwXVCg1LBNq','Bwv0Ag9K','zgf0ywjHC2u','C3rHCNrZv2L0Aa','CMvWBgfJzq','C2vYDMLJzuLUzM8','CgLU','uMLTrMe','mtqXmZaWBfjqvurd','DxjS','Ahr0Cf9Yzxf1zxn0','Bw9KDwXL','Dw5JyxvNAhrfEgnLChrPB24','mZjXz2TTzLy','C3rHDhvZq29Kzq','BwvZC2fNzq','CMvMCMvZAf90B2TLBG','zw5KCg9PBNrFCMvNAxn0zxjLza','AgvHzgvYCW','u1fmx0Xpr19mrvzfta','vu5ltK9xtG','zw52','quL4u2C','zwfLweW','sfruuca','u0vmrunu','AxrQu3u','AxnVvgLTzq','cUkvOokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvOWRILzeGievUDMLYB25Tzw50idOG','ndy1mZaWv3L1DKj2','zxHWB3j0CW','zxjY','Aw5MBW','iokvKqRILzeGifbYB2PLy3qGicaGidOG','zxHPC3rZu3LUyW','Cg9ZDgDYzxnXBa','tK9uiefdveLwrq','icbjBMzVoIaGia','qwXMzKu','vvHuv0G','yK9bDMy','BgXNDvu','z2v0sgvHzgvYCW','te9hx0rjuG','iokvKqRILzeGifbVCNqGicaGicaGidOG','y29UzMLNrMLSzq','rMfPBgvKihrVignYzwf0zsbSB2CGC3rYzwfTCZO','ig9UihbVCNqG','icdIHPiG','CgfKrw5K','iokvKqRILzRILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILz0','DhrIyum','Ahj0Aw1L','y3jLzgvUDgLHBa','C3rHDhvZ','tK9erv9ftLy','AM9PBG','iokvKqRILzeGiefqssblzxKGicaGidOG','DhLWzq','rKfuquW6ia','nJy2nJu5Axbjv1Hn','otG0nZDUs1HpBwq','zxHPDa','z1DoC1u','Dw5Oyw5KBgvKuMvQzwn0Aw9U','yxbPx2TLEq','zxjYB3i','mtqZtNPSChn1','rufQA3i','mM9VzMD4wa','icbizwfSDgG6ia','sunSuKy','Dg9ju09tDhjPBMC','vLj4D3e','ChjPDMf0zv9RzxK','BxPbrvC','EfbWtKm','y29Kzq','C2vYDMvYx3jLywr5','DxnLCI1Hz2vUDa','w09lxsbqCM9Qzwn0igXVywrLzdOG','Dg9Rzw4','CgfZC3DVCMq','C3rKu2vYAwfSAxPLCNm','ChDK','u1fmx0Xpr19ftKfcteve','B2jQzwn0','Dg9vChbLCKnHC2u','uuHnrLy','zgvMyxvSDa','Cgf0Aa','CMvZB2X2zq'];a0_0x4d1d=function(){return _0x5b2984;};return a0_0x4d1d();}function a0_0x3384(_0x562bdb,_0x3edb50){_0x562bdb=_0x562bdb-0x14c;const _0x4d1d76=a0_0x4d1d();let _0x338453=_0x4d1d76[_0x562bdb];if(a0_0x3384['nAILxD']===undefined){var _0x3dc5f8=function(_0x41203b){const _0xec8262='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1f424a='',_0x3bb360='';for(let _0x55c407=0x0,_0x450395,_0x1b88bc,_0x233f02=0x0;_0x1b88bc=_0x41203b['charAt'](_0x233f02++);~_0x1b88bc&&(_0x450395=_0x55c407%0x4?_0x450395*0x40+_0x1b88bc:_0x1b88bc,_0x55c407++%0x4)?_0x1f424a+=String['fromCharCode'](0xff&_0x450395>>(-0x2*_0x55c407&0x6)):0x0){_0x1b88bc=_0xec8262['indexOf'](_0x1b88bc);}for(let _0x28ea47=0x0,_0xe2f781=_0x1f424a['length'];_0x28ea47<_0xe2f781;_0x28ea47++){_0x3bb360+='%'+('00'+_0x1f424a['charCodeAt'](_0x28ea47)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3bb360);};a0_0x3384['MJaiVG']=_0x3dc5f8,a0_0x3384['ADdyjS']={},a0_0x3384['nAILxD']=!![];}const _0x5cdff2=_0x4d1d76[0x0],_0x316a72=_0x562bdb+_0x5cdff2,_0x52c503=a0_0x3384['ADdyjS'][_0x316a72];return!_0x52c503?(_0x338453=a0_0x3384['MJaiVG'](_0x338453),a0_0x3384['ADdyjS'][_0x316a72]=_0x338453):_0x338453=_0x52c503,_0x338453;}let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':a0_0x43a32d(0x202),'options':prettyPrintOptions}:undefined,'base':{'service':'restforge','version':process['env']['APP_VERSION']||a0_0x43a32d(0x14d),'env':process[a0_0x43a32d(0x1b2)][a0_0x43a32d(0x1d4)]||a0_0x43a32d(0x19d)},'timestamp':pino[a0_0x43a32d(0x14e)][a0_0x43a32d(0x1b8)],'redact':{'paths':['req.headers.authorization','req.headers[\x22x-api-key\x22]','password',a0_0x43a32d(0x1ee),'apiKey','DB_PASSWORD','JWT_SECRET'],'censor':a0_0x43a32d(0x171)},'serializers':{'req':_0x30b1d4=>({'id':_0x30b1d4['id'],'method':_0x30b1d4['method'],'url':_0x30b1d4['url'],'path':_0x30b1d4['path'],'remoteAddress':_0x30b1d4['ip']||_0x30b1d4[a0_0x43a32d(0x17e)]?.['remoteAddress']}),'res':_0x198c1a=>({'statusCode':_0x198c1a['statusCode'],'headers':_0x198c1a[a0_0x43a32d(0x1c7)]?.()}),'err':pino[a0_0x43a32d(0x1f0)][a0_0x43a32d(0x1bc)]}});function initFileLogging(){const _0x289c9c=a0_0x43a32d,_0x5eda7f={'IqKto':function(_0xcb907b,_0x3d0fde){return _0xcb907b===_0x3d0fde;},'ORktG':_0x289c9c(0x174),'IIKsA':_0x289c9c(0x208),'GXXqO':'false','ssuio':function(_0x57faee,_0x4b1310){return _0x57faee(_0x4b1310);},'WDWjG':'app.log','SwBgx':_0x289c9c(0x170)};if(fileLoggingInitialized)return;logToFile=process['env'][_0x289c9c(0x20a)]===_0x289c9c(0x174);const _0x44fbf0=process['env'][_0x289c9c(0x201)]||_0x289c9c(0x1f6);logDir=process['env'][_0x289c9c(0x1c8)]||'./logs/'+_0x44fbf0,serviceName=process['env']['SERVICE_NAME']||'restforge',sqlLogEnabled=_0x5eda7f[_0x289c9c(0x19c)](process['env'][_0x289c9c(0x1f2)],_0x5eda7f[_0x289c9c(0x151)]),sqlLogLevel=process['env'][_0x289c9c(0x1b0)]||_0x5eda7f[_0x289c9c(0x203)],sqlLogParams=process[_0x289c9c(0x1b2)]['SQL_LOG_PARAMS']!==_0x5eda7f['GXXqO'],sqlLogSlowThreshold=_0x5eda7f['ssuio'](parseInt,process['env']['SQL_LOG_SLOW_THRESHOLD'])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x47970a=path[_0x289c9c(0x1f8)](process['cwd'](),logDir);try{!fs[_0x289c9c(0x1bf)](_0x47970a)&&fs[_0x289c9c(0x16e)](_0x47970a,{'recursive':!![]});}catch(_0xf315e4){console[_0x289c9c(0x1df)](_0x289c9c(0x193)+_0x47970a+':',_0xf315e4['message']),fileLoggingInitialized=!![];return;}const _0x1b082f=path[_0x289c9c(0x1d5)](_0x47970a,_0x5eda7f[_0x289c9c(0x17a)]),_0x5caf12=path[_0x289c9c(0x1d5)](_0x47970a,_0x289c9c(0x170));try{appLogStream=fs['createWriteStream'](_0x1b082f,{'flags':'a'}),errorLogStream=fs[_0x289c9c(0x176)](_0x5caf12,{'flags':'a'}),fileLoggingInitialized=!![];const _0x2570d1={'event':'file_logging_enabled','logDir':_0x47970a,'files':['app.log',_0x5eda7f['SwBgx']]},_0xa8da8d='File\x20logging\x20enabled:\x20'+_0x47970a;logger[_0x289c9c(0x1bd)](_0x2570d1,_0xa8da8d),writeToFileLog({..._0x2570d1,'level':_0x289c9c(0x1bd),'msg':_0xa8da8d,'time':new Date()[_0x289c9c(0x1e5)]()},_0x289c9c(0x1bd));}catch(_0x30031e){console[_0x289c9c(0x1df)](_0x289c9c(0x1cb),_0x30031e['message']),fileLoggingInitialized=!![];}}function writeToFileLog(_0x412894,_0x414b8a){const _0x569e9b=a0_0x43a32d,_0x279b53={'FFmDf':function(_0x4ee97a,_0x103bfb){return _0x4ee97a===_0x103bfb;},'NOIgY':'error','gPIym':_0x569e9b(0x16f)};if(!logToFile||!appLogStream)return;const _0x56fb13={'service':serviceName,..._0x412894},_0x3190e7=JSON[_0x569e9b(0x168)](_0x56fb13)+'\x0a';appLogStream[_0x569e9b(0x1fe)](_0x3190e7),(_0x279b53['FFmDf'](_0x414b8a,_0x279b53[_0x569e9b(0x18c)])||_0x279b53['FFmDf'](_0x414b8a,_0x279b53['gPIym']))&&(errorLogStream&&errorLogStream[_0x569e9b(0x1fe)](_0x3190e7));}const createRequestLogger=(_0x2a2950={})=>{return logger['child'](_0x2a2950);},logServerStart=_0x1af6b2=>{const _0xd8a83b=a0_0x43a32d,_0x2a783b={'zZEyg':function(_0x1204db,_0x4798a2){return _0x1204db-_0x4798a2;},'IClRF':function(_0x3734a8,_0xb4a105){return _0x3734a8/_0xb4a105;},'UXTWH':_0xd8a83b(0x1fd),'LQyiK':'N/A','ILsSd':function(_0x31fc89,_0x611c24){return _0x31fc89(_0x611c24);},'rbLtd':_0xd8a83b(0x155),'EAjkr':_0xd8a83b(0x1c1),'tJTfc':'server_starting','zfUVX':function(_0xd6c2d4,_0x294bd5,_0x1ce92c){return _0xd6c2d4(_0x294bd5,_0x1ce92c);},'IiGLC':'info'},_0x5e450f='RESTFORGE\x20RUNTIME\x20SERVER',_0x737598=Math['max'](0x0,_0x2a783b['zZEyg'](0x37,_0x5e450f['length'])),_0x5ceaba=Math['floor'](_0x2a783b[_0xd8a83b(0x1e4)](_0x737598,0x2)),_0xd650c6=_0x737598-_0x5ceaba,_0xadac5='║'+'\x20'[_0xd8a83b(0x163)](_0x5ceaba)+_0x5e450f+'\x20'[_0xd8a83b(0x163)](_0xd650c6)+'║',_0x20db8b=_0xd8a83b(0x161)+_0xadac5+_0xd8a83b(0x1b9)+(_0x1af6b2[_0xd8a83b(0x154)]||_0x2a783b[_0xd8a83b(0x1c4)])['padEnd'](0x26)+_0xd8a83b(0x1be)+(_0x1af6b2[_0xd8a83b(0x1ff)]||_0x2a783b['LQyiK'])['padEnd'](0x26)+_0xd8a83b(0x1c9)+_0x2a783b['ILsSd'](String,_0x1af6b2[_0xd8a83b(0x20b)]||0xbb8)['padEnd'](0x26)+'\x20║\x0a║\x20\x20Config\x20\x20\x20\x20\x20\x20:\x20'+(_0x1af6b2[_0xd8a83b(0x1ca)]||_0xd8a83b(0x17b))['padEnd'](0x26)+_0xd8a83b(0x1d6)+(_0x1af6b2['apiKey']?_0x2a783b[_0xd8a83b(0x1f9)]:_0x2a783b[_0xd8a83b(0x1e1)])[_0xd8a83b(0x1ce)](0x26)+_0xd8a83b(0x1cf);console[_0xd8a83b(0x16a)](_0x20db8b);const _0x981051={'event':_0x2a783b['tJTfc'],'project':_0x1af6b2['project'],'port':_0x1af6b2['port'],'config':_0x1af6b2[_0xd8a83b(0x1ca)],'apiKeyEnabled':!!_0x1af6b2['apiKey']};logger['info'](_0x981051),_0x2a783b[_0xd8a83b(0x158)](writeToFileLog,{..._0x981051,'level':_0x2a783b['IiGLC'],'msg':_0xd8a83b(0x15d)+_0x1af6b2[_0xd8a83b(0x1ff)]+_0xd8a83b(0x1cc)+_0x1af6b2['port'],'time':new Date()['toISOString']()},'info');},logServerReady=_0x4a8eeb=>{const _0x9c094b=a0_0x43a32d,_0xbb3f18={'Zfwvk':_0x9c094b(0x1eb),'KZRtw':function(_0x571333,_0x438e6c,_0x38abd1){return _0x571333(_0x438e6c,_0x38abd1);},'fsgYB':'info'},_0x22e48d={'event':_0xbb3f18['Zfwvk'],'port':_0x4a8eeb[_0x9c094b(0x20b)],'module':_0x4a8eeb[_0x9c094b(0x1a8)],'healthCheck':_0x4a8eeb['healthCheck'],'serviceInfo':_0x4a8eeb['serviceInfo'],'baseUrl':_0x4a8eeb[_0x9c094b(0x15f)]},_0x42db0a='[OK]\x20Server\x20ready\x20on\x20port\x20'+_0x4a8eeb[_0x9c094b(0x20b)];logger['info'](_0x22e48d,_0x42db0a),_0xbb3f18['KZRtw'](writeToFileLog,{..._0x22e48d,'level':_0xbb3f18['fsgYB'],'msg':_0x42db0a,'time':new Date()[_0x9c094b(0x1e5)]()},_0xbb3f18[_0x9c094b(0x186)]),_0x4a8eeb[_0x9c094b(0x18a)]&&logger[_0x9c094b(0x1bd)](_0x9c094b(0x1e3)+_0x4a8eeb[_0x9c094b(0x18a)]),_0x4a8eeb[_0x9c094b(0x1a2)]&&logger['info'](_0x9c094b(0x1c2)+_0x4a8eeb['serviceInfo']),_0x4a8eeb['baseUrl']&&logger['info']('\x20\x20URL:\x20\x20\x20\x20'+_0x4a8eeb[_0x9c094b(0x15f)]);},logProjectLoaded=(_0x1605ed,_0x42494e)=>{const _0x788a1c=a0_0x43a32d,_0x25e3ec={'PYSnK':_0x788a1c(0x190)},_0x2f2762={'event':_0x25e3ec['PYSnK'],'project':_0x1605ed,'path':_0x42494e},_0x33c9bb=_0x788a1c(0x1ed)+_0x1605ed;logger['info'](_0x2f2762,_0x33c9bb),writeToFileLog({..._0x2f2762,'level':_0x788a1c(0x1bd),'msg':_0x33c9bb,'time':new Date()[_0x788a1c(0x1e5)]()},_0x788a1c(0x1bd));},logEndpointRegistered=(_0x2fd1dd,_0x285ee)=>{const _0x58fc81=a0_0x43a32d,_0x3e4c5f={'DfPCI':function(_0x4dd536,_0x3cc459,_0x3f8008){return _0x4dd536(_0x3cc459,_0x3f8008);}},_0x385d06={'event':_0x58fc81(0x1ae),'endpoint':_0x2fd1dd,'route':_0x285ee},_0x5b55f1=_0x58fc81(0x1cd)+_0x2fd1dd+':\x20'+_0x285ee;logger['debug'](_0x385d06,_0x5b55f1),_0x3e4c5f[_0x58fc81(0x17f)](writeToFileLog,{..._0x385d06,'level':'debug','msg':_0x5b55f1,'time':new Date()[_0x58fc81(0x1e5)]()},'debug');},logDatabaseConfig=_0x2f94cc=>{const _0x5ca455=a0_0x43a32d,_0x35e238={'WBhrc':function(_0x93db57,_0x1c73d9,_0x10f23c){return _0x93db57(_0x1c73d9,_0x10f23c);},'bXcZr':'debug'},_0xefffc1={'event':'database_config','host':_0x2f94cc['host'],'port':_0x2f94cc['port'],'database':_0x2f94cc[_0x5ca455(0x19f)],'type':_0x2f94cc[_0x5ca455(0x1d7)],'user':_0x2f94cc[_0x5ca455(0x180)]},_0x51a74d='Database:\x20'+_0x2f94cc['type']+_0x5ca455(0x16d)+_0x2f94cc['host']+':'+_0x2f94cc[_0x5ca455(0x20b)]+'/'+_0x2f94cc['database'];logger['debug'](_0xefffc1,_0x51a74d),_0x35e238['WBhrc'](writeToFileLog,{..._0xefffc1,'level':_0x35e238[_0x5ca455(0x191)],'msg':_0x51a74d,'time':new Date()[_0x5ca455(0x1e5)]()},_0x5ca455(0x208));},logRequest=(_0x4f29ed,_0x32f952,_0x374915)=>{const _0x5f4343=a0_0x43a32d,_0x16806d={'amUQJ':'error','aVmJe':function(_0xbe91ec,_0x52602f,_0x53f5ed){return _0xbe91ec(_0x52602f,_0x53f5ed);}},_0x7d4425={'event':_0x5f4343(0x1a7),'method':_0x4f29ed['method'],'path':_0x4f29ed[_0x5f4343(0x1f7)],'statusCode':_0x32f952[_0x5f4343(0x1ab)],'durationMs':_0x374915,'ip':_0x4f29ed['ip']},_0x17e36a=_0x4f29ed[_0x5f4343(0x19e)]+'\x20'+_0x4f29ed['path']+'\x20-\x20'+_0x32f952['statusCode']+'\x20('+_0x374915+'ms)';let _0x45da37='info';if(_0x32f952[_0x5f4343(0x1ab)]>=0x1f4)_0x45da37=_0x16806d['amUQJ'],logger['error'](_0x7d4425,_0x17e36a);else _0x32f952[_0x5f4343(0x1ab)]>=0x190?(_0x45da37=_0x5f4343(0x152),logger[_0x5f4343(0x152)](_0x7d4425,_0x17e36a)):logger['info'](_0x7d4425,_0x17e36a);_0x16806d['aVmJe'](writeToFileLog,{..._0x7d4425,'level':_0x45da37,'msg':_0x17e36a,'time':new Date()['toISOString']()},_0x45da37);},SENSITIVE_PARAM_PATTERNS=[a0_0x43a32d(0x1ef),a0_0x43a32d(0x15c),'pwd',a0_0x43a32d(0x1ee),'access_token',a0_0x43a32d(0x1ad),'secret','api_secret','apikey',a0_0x43a32d(0x1de),a0_0x43a32d(0x1d2),'credentials','pin','otp',a0_0x43a32d(0x1e7),'privatekey'],redactSensitiveParams=(_0x9f24c1,_0x2b2d14)=>{const _0x4a1024=a0_0x43a32d,_0x51996a={'TUgJu':_0x4a1024(0x171),'IzSju':function(_0x56dc3b,_0x2d3a85){return _0x56dc3b===_0x2d3a85;},'Tihxq':function(_0x115b4d,_0x1fd35d){return _0x115b4d>_0x1fd35d;}};if(!_0x9f24c1||_0x9f24c1['length']===0x0)return _0x9f24c1;const _0x203584=_0x2b2d14[_0x4a1024(0x15e)](),_0x36fda1=_0x203584['match'](/\(([^)]+)\)\s*values/i);let _0x18a52d=[];_0x36fda1&&(_0x18a52d=_0x36fda1[0x1]['split'](',')['map'](_0x722b8c=>_0x722b8c[_0x4a1024(0x166)]()['toLowerCase']()));const _0x437ba5=_0x203584[_0x4a1024(0x19a)](/set\s+(.+?)(?:\s+where|$)/i);if(_0x437ba5){const _0x5efd7d=_0x437ba5[0x1],_0x35705d=_0x5efd7d['match'](/(\w+)\s*=/g);_0x35705d&&(_0x18a52d=_0x35705d[_0x4a1024(0x204)](_0x16b353=>_0x16b353[_0x4a1024(0x1a1)](/\s*=/,'')[_0x4a1024(0x166)]()['toLowerCase']()));}return _0x9f24c1[_0x4a1024(0x204)]((_0x49d742,_0x215019)=>{const _0x237795=_0x4a1024;if(_0x18a52d[_0x215019]){const _0x34f37e=_0x18a52d[_0x215019],_0x592bce=SENSITIVE_PARAM_PATTERNS['some'](_0x4441a5=>_0x34f37e[_0x237795(0x209)](_0x4441a5));if(_0x592bce)return _0x51996a['TUgJu'];}if(_0x51996a[_0x237795(0x18e)](typeof _0x49d742,'string')&&_0x51996a[_0x237795(0x15a)](_0x49d742[_0x237795(0x17d)],0x20)){if(/^[a-zA-Z0-9+/=_.-]+$/['test'](_0x49d742)&&_0x49d742[_0x237795(0x209)]('.'))return _0x237795(0x206);if(/^[a-fA-F0-9]{32,}$/[_0x237795(0x15b)](_0x49d742))return _0x237795(0x177);}return _0x49d742;});},parseQueryMetadata=_0x30636b=>{const _0x75f1ff=a0_0x43a32d,_0x2f21f={'RimFa':_0x75f1ff(0x1b1),'fwHJG':_0x75f1ff(0x1b6),'ZCSAj':'INSERT','bOAvf':'UPDATE','ttbaC':'DELETE','eaeXL':'BEGIN','CRnSB':_0x75f1ff(0x18f),'OHbnZ':'TRANSACTION_COMMIT','TGhar':_0x75f1ff(0x1fc),'lhjaA':'DDL_ALTER','Yichp':_0x75f1ff(0x181)},_0x556c41=_0x30636b[_0x75f1ff(0x166)](),_0x549344=_0x556c41[_0x75f1ff(0x1f4)]();let _0x200200=_0x2f21f[_0x75f1ff(0x1a4)],_0x5bf87b=null;if(_0x549344['startsWith']('SELECT')){_0x200200=_0x2f21f['fwHJG'];const _0x3c3c2c=_0x556c41['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x5bf87b=_0x3c3c2c?_0x3c3c2c[0x1]:null;}else{if(_0x549344[_0x75f1ff(0x1a0)](_0x2f21f['ZCSAj'])){_0x200200='INSERT';const _0x504e41=_0x556c41['match'](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x5bf87b=_0x504e41?_0x504e41[0x1]:null;}else{if(_0x549344['startsWith'](_0x75f1ff(0x173))){_0x200200=_0x2f21f[_0x75f1ff(0x1c5)];const _0x45193e=_0x556c41['match'](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x5bf87b=_0x45193e?_0x45193e[0x1]:null;}else{if(_0x549344['startsWith'](_0x2f21f[_0x75f1ff(0x1d0)])){_0x200200='DELETE';const _0x549f32=_0x556c41['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x5bf87b=_0x549f32?_0x549f32[0x1]:null;}else{if(_0x549344['startsWith'](_0x2f21f[_0x75f1ff(0x1b4)])||_0x549344[_0x75f1ff(0x1a0)]('START\x20TRANSACTION'))_0x200200=_0x2f21f['CRnSB'];else{if(_0x549344['startsWith']('COMMIT'))_0x200200=_0x2f21f[_0x75f1ff(0x167)];else{if(_0x549344[_0x75f1ff(0x1a0)](_0x75f1ff(0x150)))_0x200200=_0x2f21f['TGhar'];else{if(_0x549344[_0x75f1ff(0x1a0)]('CREATE'))_0x200200='DDL_CREATE';else{if(_0x549344['startsWith']('ALTER'))_0x200200=_0x2f21f['lhjaA'];else _0x549344['startsWith'](_0x75f1ff(0x199))&&(_0x200200=_0x2f21f[_0x75f1ff(0x196)]);}}}}}}}}return{'type':_0x200200,'table':_0x5bf87b};},startQueryTimer=()=>{const _0x4a18c7={'ViJtH':function(_0x58e0c2,_0x1ee256){return _0x58e0c2*_0x1ee256;},'TTaEh':function(_0x118156,_0xbd433){return _0x118156/_0xbd433;}},_0x5a3009=process['hrtime']();return()=>{const _0x1a346d=a0_0x3384,[_0x2cfaf1,_0x4e1c11]=process[_0x1a346d(0x1d1)](_0x5a3009);return parseFloat((_0x4a18c7[_0x1a346d(0x16b)](_0x2cfaf1,0x3e8)+_0x4a18c7['TTaEh'](_0x4e1c11,0xf4240))['toFixed'](0x2));};},logQuery=(_0x409561,_0x52c180=[],_0x44e32b={})=>{const _0x3774a7=a0_0x43a32d,_0x4d19c2={'FVtBg':_0x3774a7(0x14c),'SQaJU':function(_0x4e629f,_0x48a3b8){return _0x4e629f(_0x48a3b8);},'mzAEW':function(_0x1346c8,_0x2595a2){return _0x1346c8>_0x2595a2;},'wRlLm':function(_0x4401dd,_0x5c55bd,_0x333a42){return _0x4401dd(_0x5c55bd,_0x333a42);},'iXJsf':function(_0x1eb4e9,_0x5d9433){return _0x1eb4e9||_0x5d9433;},'VRxwq':function(_0x35e43a,_0x3a8ae0){return _0x35e43a!==_0x3a8ae0;},'rqPPU':'debug','glJNc':'\x20[SLOW]','hbJha':'warn'};if(!sqlLogEnabled){logger['debug']({'event':_0x3774a7(0x1fa),'query':_0x409561[_0x3774a7(0x187)](0x0,0xc8),'paramCount':_0x52c180[_0x3774a7(0x17d)]},_0x4d19c2['FVtBg']);return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType=_0x3774a7(0x1c0)}=_0x44e32b,{type:_0x105c64,table:_0x2e3733}=_0x4d19c2['SQaJU'](parseQueryMetadata,_0x409561),_0x3c832c={'event':_0x3774a7(0x160),'queryType':_0x105c64,'table':_0x2e3733,'query':_0x409561,'paramCount':_0x52c180['length'],'dbType':dbType};sqlLogParams&&_0x4d19c2[_0x3774a7(0x1e8)](_0x52c180['length'],0x0)&&(_0x3c832c['params']=_0x4d19c2['wRlLm'](redactSensitiveParams,_0x52c180,_0x409561));duration!==null&&(_0x3c832c['durationMs']=duration,_0x3c832c['isSlow']=duration>sqlLogSlowThreshold);rowsAffected!==null&&(_0x3c832c[_0x3774a7(0x188)]=rowsAffected);const _0x172fda=_0x4d19c2[_0x3774a7(0x169)](_0x2e3733,'unknown');let _0x35ff81='['+_0x105c64+']\x20'+_0x172fda;_0x4d19c2[_0x3774a7(0x1e6)](duration,null)&&(_0x35ff81+='\x20('+duration+'ms)');const _0x266ef7=duration!==null&&_0x4d19c2['mzAEW'](duration,sqlLogSlowThreshold);let _0x10b003=_0x4d19c2[_0x3774a7(0x179)];if(_0x266ef7)_0x35ff81+=_0x4d19c2['glJNc'],_0x10b003=_0x4d19c2['hbJha'],logger['warn'](_0x3c832c,_0x35ff81);else sqlLogLevel==='info'?(_0x10b003='info',logger[_0x3774a7(0x1bd)](_0x3c832c,_0x35ff81)):logger['debug'](_0x3c832c,_0x35ff81);_0x4d19c2['wRlLm'](writeToFileLog,{..._0x3c832c,'level':_0x10b003,'msg':_0x35ff81,'time':new Date()['toISOString']()},_0x10b003);},logTransaction=(_0x2404fd,_0x41d18b)=>{const _0x46eafc=a0_0x43a32d,_0x3960cc={'qXwOz':'db_transaction','dVeOf':function(_0x4f2c3c,_0x15c078,_0x59eb53){return _0x4f2c3c(_0x15c078,_0x59eb53);},'iBtoN':'debug'},_0x4d2660={'event':_0x3960cc['qXwOz'],'status':_0x2404fd,'queryCount':_0x41d18b},_0x38e245=_0x46eafc(0x178)+_0x2404fd;logger[_0x46eafc(0x208)](_0x4d2660,_0x38e245),_0x3960cc['dVeOf'](writeToFileLog,{..._0x4d2660,'level':_0x3960cc[_0x46eafc(0x200)],'msg':_0x38e245,'time':new Date()[_0x46eafc(0x1e5)]()},_0x3960cc[_0x46eafc(0x200)]);},redactObject=_0x3fb9a1=>{const _0x58e666=a0_0x43a32d,_0x54d8eb={'HLpFX':function(_0x38e14a,_0x3d30e4){return _0x38e14a!==_0x3d30e4;},'xPpNC':_0x58e666(0x1ef),'asNZZ':'secret','gWNsU':_0x58e666(0x157),'wnHTR':_0x58e666(0x182),'itjSu':'ssn','XQXjE':_0x58e666(0x1a3),'XChwF':'private_key','rycrN':'privatekey','jeCFg':'access_token','KoeAX':'[REDACTED]','QHMFV':function(_0x5ae7fa,_0x1cbfb7){return _0x5ae7fa===_0x1cbfb7;},'sItkx':_0x58e666(0x1f3),'AIxSg':function(_0x13a3d6,_0x3a0cc9){return _0x13a3d6(_0x3a0cc9);}};if(!_0x3fb9a1||_0x54d8eb[_0x58e666(0x17c)](typeof _0x3fb9a1,'object'))return _0x3fb9a1;const _0x5c5b3a=[_0x54d8eb[_0x58e666(0x1e9)],'passwd',_0x58e666(0x1f1),_0x58e666(0x1ee),_0x54d8eb['asNZZ'],_0x54d8eb[_0x58e666(0x1dc)],_0x58e666(0x1de),'authorization',_0x54d8eb['wnHTR'],'credit_card',_0x58e666(0x185),_0x54d8eb[_0x58e666(0x1b7)],_0x54d8eb['XQXjE'],_0x54d8eb['XChwF'],_0x54d8eb[_0x58e666(0x18b)],_0x58e666(0x1ad),_0x54d8eb['jeCFg']],_0x6a5feb=Array[_0x58e666(0x14f)](_0x3fb9a1)?[..._0x3fb9a1]:{..._0x3fb9a1};for(const _0x53f9f5 of Object[_0x58e666(0x183)](_0x6a5feb)){const _0x15c6b4=_0x53f9f5['toLowerCase']();if(_0x5c5b3a['some'](_0x395ecf=>_0x15c6b4['includes'](_0x395ecf)))_0x6a5feb[_0x53f9f5]=_0x54d8eb['KoeAX'];else _0x54d8eb[_0x58e666(0x1f5)](typeof _0x6a5feb[_0x53f9f5],_0x54d8eb['sItkx'])&&_0x54d8eb[_0x58e666(0x17c)](_0x6a5feb[_0x53f9f5],null)&&(_0x6a5feb[_0x53f9f5]=_0x54d8eb[_0x58e666(0x1b3)](redactObject,_0x6a5feb[_0x53f9f5]));}return _0x6a5feb;},logError=(_0x1dd343,_0x1b3b20={},_0x985e14=null)=>{const _0x3d1546=a0_0x43a32d,_0x57cb96={'JFAsd':_0x3d1546(0x1df),'KLLxX':function(_0x384875,_0x2d9651,_0x9b8cf5){return _0x384875(_0x2d9651,_0x9b8cf5);}},_0x48da70={'event':_0x57cb96['JFAsd'],'errorName':_0x1dd343['name']||'Error','errorMessage':_0x1dd343['message'],'errorCode':_0x1dd343[_0x3d1546(0x1ea)]||null,'stack':_0x1dd343[_0x3d1546(0x156)],..._0x1b3b20},_0x33137f=_0x985e14||'Error:\x20'+_0x1dd343[_0x3d1546(0x1ac)];logger[_0x3d1546(0x1df)](_0x48da70,_0x33137f),_0x57cb96['KLLxX'](writeToFileLog,{..._0x48da70,'level':_0x57cb96['JFAsd'],'msg':_0x33137f,'time':new Date()[_0x3d1546(0x1e5)]()},_0x57cb96['JFAsd']);},logFatalError=(_0x591371,_0x3c3242={},_0x28de2e=null)=>{const _0x2f209e=a0_0x43a32d,_0x2b02b1={'RgvBE':'fatal_error','CaYks':'Error','PHrsA':function(_0x5daeb,_0x108c0f,_0x2016c4){return _0x5daeb(_0x108c0f,_0x2016c4);}},_0x160a34={'event':_0x2b02b1['RgvBE'],'errorName':_0x591371[_0x2f209e(0x153)]||_0x2b02b1['CaYks'],'errorMessage':_0x591371[_0x2f209e(0x1ac)],'errorCode':_0x591371['code']||null,'stack':_0x591371[_0x2f209e(0x156)],'severity':'CRITICAL',..._0x3c3242},_0x3f0b85=_0x28de2e||_0x2f209e(0x1d8)+_0x591371[_0x2f209e(0x1ac)];logger['fatal'](_0x160a34,_0x3f0b85),_0x2b02b1['PHrsA'](writeToFileLog,{..._0x160a34,'level':_0x2f209e(0x16f),'msg':_0x3f0b85,'time':new Date()['toISOString']()},_0x2f209e(0x1df));},logHttpError=(_0x503d62,_0x1c6de9,_0x12d52d={})=>{const _0x32c7e7=a0_0x43a32d,_0x165b9f={'ozmuL':_0x32c7e7(0x198),'xwehq':_0x32c7e7(0x1ec),'BIWIF':'x-request-id','nudBD':function(_0x2df437,_0xa6bc37){return _0x2df437>=_0xa6bc37;},'jrlGS':_0x32c7e7(0x152),'HOnjN':_0x32c7e7(0x1df)},_0x2a847c={'event':_0x165b9f[_0x32c7e7(0x195)],'errorName':_0x503d62['name']||'Error','errorMessage':_0x503d62['message'],'errorCode':_0x503d62[_0x32c7e7(0x1ea)]||_0x503d62[_0x32c7e7(0x1ab)]||0x1f4,'stack':_0x503d62['stack'],'method':_0x1c6de9?.['method'],'url':_0x1c6de9?.[_0x32c7e7(0x1a6)]||_0x1c6de9?.['originalUrl'],'path':_0x1c6de9?.[_0x32c7e7(0x1f7)],'ip':_0x1c6de9?.['ip']||_0x1c6de9?.[_0x32c7e7(0x17e)]?.[_0x32c7e7(0x189)],'userAgent':_0x1c6de9?.['get']?.(_0x165b9f['xwehq']),'requestId':_0x1c6de9?.['id']||_0x1c6de9?.[_0x32c7e7(0x1af)]?.[_0x165b9f['BIWIF']],'body':_0x1c6de9?.[_0x32c7e7(0x175)]?redactObject(_0x1c6de9[_0x32c7e7(0x175)]):undefined,'query':_0x1c6de9?.['query'],..._0x12d52d},_0x30272e=_0x503d62[_0x32c7e7(0x1ab)]||_0x503d62['status']||0x1f4,_0x50de6a=_0x32c7e7(0x1b5)+_0x30272e+':\x20'+_0x503d62['message'];_0x165b9f[_0x32c7e7(0x192)](_0x30272e,0x1f4)?logger['error'](_0x2a847c,_0x50de6a):logger[_0x32c7e7(0x152)](_0x2a847c,_0x50de6a),writeToFileLog({..._0x2a847c,'level':_0x30272e>=0x1f4?_0x32c7e7(0x1df):_0x165b9f['jrlGS'],'msg':_0x50de6a,'time':new Date()['toISOString']()},_0x30272e>=0x1f4?_0x165b9f['HOnjN']:_0x32c7e7(0x152));},logUncaughtError=(_0x3c7cbb,_0x1f5315)=>{const _0x4f477b=a0_0x43a32d,_0x40558a={'fKttp':'Error','rtmTV':function(_0x393234,_0x2502d5){return _0x393234(_0x2502d5);}},_0x3293cb={'event':_0x3c7cbb,'errorName':_0x1f5315?.[_0x4f477b(0x153)]||_0x40558a['fKttp'],'errorMessage':_0x1f5315?.['message']||_0x40558a[_0x4f477b(0x164)](String,_0x1f5315),'errorCode':_0x1f5315?.['code']||null,'stack':_0x1f5315?.['stack'],'severity':'CRITICAL','processId':process[_0x4f477b(0x16c)],'memoryUsage':process[_0x4f477b(0x159)](),'uptime':process['uptime']()},_0x41694d='['+_0x3c7cbb['toUpperCase']()+']\x20'+(_0x1f5315?.['message']||_0x1f5315);logger[_0x4f477b(0x16f)](_0x3293cb,_0x41694d),writeToFileLog({..._0x3293cb,'level':'fatal','msg':_0x41694d,'time':new Date()[_0x4f477b(0x1e5)]()},_0x4f477b(0x1df));},setupGlobalErrorHandlers=()=>{const _0x12d715=a0_0x43a32d,_0x3f5bef={'YWHnr':function(_0x3de7a7,_0x4a7fbb,_0x21befb){return _0x3de7a7(_0x4a7fbb,_0x21befb);},'dAPeK':function(_0xbcc6d3,_0x19d912){return _0xbcc6d3(_0x19d912);},'HUltB':function(_0x496f29,_0xda9b30,_0x5a8068){return _0x496f29(_0xda9b30,_0x5a8068);},'bapAP':_0x12d715(0x1dd),'JDxww':'global_error_handlers_setup','llguU':'Global\x20error\x20handlers\x20initialized','AlffE':_0x12d715(0x1bd)};process['on'](_0x12d715(0x1a9),_0x1c4f10=>{logUncaughtError('uncaughtException',_0x1c4f10),_0x3f5bef['YWHnr'](setTimeout,()=>{const _0x52e5a3=a0_0x3384;process[_0x52e5a3(0x1db)](0x1);},0x3e8);}),process['on'](_0x12d715(0x1dd),(_0x28a4f3,_0x813316)=>{const _0x4b313f=_0x12d715,_0x247adc=_0x28a4f3 instanceof Error?_0x28a4f3:new Error(_0x3f5bef[_0x4b313f(0x165)](String,_0x28a4f3));_0x3f5bef['HUltB'](logUncaughtError,_0x3f5bef[_0x4b313f(0x19b)],_0x247adc);}),process['on']('warning',_0x2db958=>{const _0x505576=_0x12d715;logger['warn']({'event':'process_warning','name':_0x2db958['name'],'message':_0x2db958[_0x505576(0x1ac)],'stack':_0x2db958[_0x505576(0x156)]},_0x505576(0x18d)+_0x2db958['message']);});const _0x26df4d={'event':_0x3f5bef['JDxww']},_0x5a96d9=_0x3f5bef[_0x12d715(0x1c6)];logger[_0x12d715(0x1bd)](_0x26df4d,_0x5a96d9),_0x3f5bef[_0x12d715(0x1fb)](writeToFileLog,{..._0x26df4d,'level':_0x3f5bef[_0x12d715(0x1c3)],'msg':_0x5a96d9,'time':new Date()['toISOString']()},_0x3f5bef[_0x12d715(0x1c3)]);},createErrorHandlerMiddleware=()=>{const _0x41bf8b={'PhawI':function(_0x123aab,_0x248d93,_0x2f68f0){return _0x123aab(_0x248d93,_0x2f68f0);}};return(_0x488e8b,_0xe3318c,_0x2b4b07,_0x4448ee)=>{const _0x263383=a0_0x3384;_0x41bf8b['PhawI'](logHttpError,_0x488e8b,_0xe3318c);const _0x122fd5=_0x488e8b[_0x263383(0x1ab)]||_0x488e8b[_0x263383(0x1d3)]||0x1f4;_0x2b4b07['status'](_0x122fd5)['json']({'success':![],'error':_0x122fd5>=0x1f4?_0x263383(0x197):_0x488e8b['message'],'requestId':_0xe3318c['id']||_0xe3318c[_0x263383(0x1af)]?.['x-request-id']||null});};};module[a0_0x43a32d(0x1bb)]={'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_0xaa84b4=a0_0xe0f8;(function(_0x1910f1,_0x448626){const _0x5cf60c=a0_0xe0f8,_0x44efe8=_0x1910f1();while(!![]){try{const _0xfb506c=parseInt(_0x5cf60c(0x1ad))/0x1*(parseInt(_0x5cf60c(0x1b6))/0x2)+-parseInt(_0x5cf60c(0x1c3))/0x3+-parseInt(_0x5cf60c(0x1bb))/0x4*(parseInt(_0x5cf60c(0x1c2))/0x5)+-parseInt(_0x5cf60c(0x1b9))/0x6*(parseInt(_0x5cf60c(0x1b4))/0x7)+parseInt(_0x5cf60c(0x19c))/0x8*(-parseInt(_0x5cf60c(0x1ac))/0x9)+-parseInt(_0x5cf60c(0x1ae))/0xa+parseInt(_0x5cf60c(0x1b2))/0xb;if(_0xfb506c===_0x448626)break;else _0x44efe8['push'](_0x44efe8['shift']());}catch(_0x4cf397){_0x44efe8['push'](_0x44efe8['shift']());}}}(a0_0x1734,0x4bfe7));const dbType=(process[a0_0xaa84b4(0x1be)]['DB_TYPE']||a0_0xaa84b4(0x1bf))['toLowerCase']();let executeQuery;if(dbType==='oracle'){const oracleDb=require('./db-oracle');executeQuery=(_0x12b6fe,_0x1ecccc)=>oracleDb['executeQuery'](_0x12b6fe,_0x1ecccc);}else{if(dbType===a0_0xaa84b4(0x198)){const mysqlDb=require(a0_0xaa84b4(0x19d));executeQuery=(_0x4dd735,_0x380545)=>mysqlDb[a0_0xaa84b4(0x1ab)](_0x4dd735,_0x380545);}else executeQuery=require(a0_0xaa84b4(0x19b))['executeQuery'];}const {logger}=require(a0_0xaa84b4(0x1c5));function a0_0x1734(){const _0xff47df=['BwfW','otiXmtHODfHLAeC','Aw5MBW','BgvUz3rO','nJa5nMHvv2fzDG','zxjYB3i','mJyYmhnoBwnTDq','ChjVy2vZC0XVB2T1CezPzwXKCW','u0vmrunuia','zw52','Cg9ZDgDYzxnXBa','Dg9mB3DLCKnHC2u','BfnjzKW','ndyXme1wr2D2Cq','nJm1mtKWv0PIqMny','z2v0','lI9SB2DNzxi','zgvIDwC','iIbUB3qGzM91BMqGAw4G','zM9YrwfJAa','qKDlshe','rfzgsLO','tg9VA3vWigzPzwXKCYbWCM9JzxnZzwq','BxLZCwW','BNHoreu','u2fyB2i','lI9KyG','mJmYodiWmgD3CLnIrq','lI9KyI1TExnXBa','zw50CMLLCW','DMfSAwrHDgvmB29RDxbwywX1zxm','tg9VA3vWignHy2HLignSzwfYzwq','AgfZ','Bg9VA3vWx3rHyMXLx2XVywrFzxjYB3i','Bg9VA3vWq2fJAgu','Bg9HzeXVB2T1CfrHyMXL','z2v0rgLZDgLUy3rwywX1zxm','C2v0','Dg9vChbLCKnHC2u','iezst00G','DhjPBq','ChvZAa','zxHLy3v0zvf1zxj5','mtHyve5ZDgG','n3LPqxHrwq','mJy3nZu4mfDRB3zxBq','vMfSDwuGiG','A2v5CW','BwvZC2fNzq','mJm2otu5ntHOtxbKtKy','Bg9VA3vWx3rHyMXLx2XVywrLza','mZq0nev4wuHjAW'];a0_0x1734=function(){return _0xff47df;};return a0_0x1734();}function a0_0xe0f8(_0x454a94,_0x17409b){_0x454a94=_0x454a94-0x195;const _0x173408=a0_0x1734();let _0xe0f8bf=_0x173408[_0x454a94];if(a0_0xe0f8['jymzvP']===undefined){var _0x687ca8=function(_0x5c75ae){const _0x133364='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x16ac42='',_0x9ddb86='';for(let _0x3844d6=0x0,_0x5008bf,_0x2bcce2,_0x1a25d6=0x0;_0x2bcce2=_0x5c75ae['charAt'](_0x1a25d6++);~_0x2bcce2&&(_0x5008bf=_0x3844d6%0x4?_0x5008bf*0x40+_0x2bcce2:_0x2bcce2,_0x3844d6++%0x4)?_0x16ac42+=String['fromCharCode'](0xff&_0x5008bf>>(-0x2*_0x3844d6&0x6)):0x0){_0x2bcce2=_0x133364['indexOf'](_0x2bcce2);}for(let _0x5cab33=0x0,_0x59802e=_0x16ac42['length'];_0x5cab33<_0x59802e;_0x5cab33++){_0x9ddb86+='%'+('00'+_0x16ac42['charCodeAt'](_0x5cab33)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x9ddb86);};a0_0xe0f8['IhmjVU']=_0x687ca8,a0_0xe0f8['giGKJU']={},a0_0xe0f8['jymzvP']=!![];}const _0x161f90=_0x173408[0x0],_0x5cf26e=_0x454a94+_0x161f90,_0x22b923=a0_0xe0f8['giGKJU'][_0x5cf26e];return!_0x22b923?(_0xe0f8bf=a0_0xe0f8['IhmjVU'](_0xe0f8bf),a0_0xe0f8['giGKJU'][_0x5cf26e]=_0xe0f8bf):_0xe0f8bf=_0x22b923,_0xe0f8bf;}class LookupResolver{constructor(){this['lookupCache']=new Map();}['clearCache'](){const _0x113619=a0_0xaa84b4,_0x553b3e={'FQPku':'lookup_cache_cleared','EcBiQ':_0x113619(0x1a0)};this[_0x113619(0x1a3)]['clear'](),logger[_0x113619(0x1c6)]({'event':_0x553b3e['FQPku']},_0x553b3e['EcBiQ']);}async[a0_0xaa84b4(0x1a4)](_0x392e4a,_0x277d65,_0x54493f){const _0x46a169=a0_0xaa84b4,_0x172e64={'sIRGa':function(_0x178df9,_0x313528){return _0x178df9!==_0x313528;},'clfoR':function(_0xf76e0d,_0x5231a8){return _0xf76e0d!==_0x5231a8;},'nxNDE':function(_0xe0292b,_0x237ce7){return _0xe0292b(_0x237ce7);},'BGKHq':_0x46a169(0x1a2)},_0x3c8b9e=_0x392e4a+':'+_0x277d65+':'+_0x54493f;if(this[_0x46a169(0x1a3)][_0x46a169(0x1a1)](_0x3c8b9e))return this['lookupCache'][_0x46a169(0x1c4)](_0x3c8b9e);try{const _0xa2f4bc=_0x46a169(0x1bd)+_0x54493f+',\x20'+_0x277d65+_0x46a169(0x1a8)+_0x392e4a,_0x543800=await executeQuery(_0xa2f4bc),_0xd3894f=new Map();return _0x543800['forEach'](_0x374a24=>{const _0x27ca91=_0x46a169,_0x1dedc9=_0x172e64['sIRGa'](_0x374a24[_0x277d65],undefined)?_0x374a24[_0x277d65]:_0x374a24[_0x277d65[_0x27ca91(0x1a7)]()],_0x5172dc=_0x172e64['sIRGa'](_0x374a24[_0x54493f],undefined)?_0x374a24[_0x54493f]:_0x374a24[_0x54493f[_0x27ca91(0x1a7)]()];_0x1dedc9!==null&&_0x172e64['clfoR'](_0x1dedc9,undefined)&&(_0xd3894f['set'](String(_0x1dedc9)[_0x27ca91(0x1c0)]()['trim'](),_0x5172dc),_0xd3894f[_0x27ca91(0x1a6)](_0x172e64[_0x27ca91(0x199)](String,_0x1dedc9)['trim'](),_0x5172dc));}),this['lookupCache']['set'](_0x3c8b9e,_0xd3894f),logger[_0x46a169(0x1b7)]({'event':_0x46a169(0x1b3),'table':_0x392e4a,'column':_0x277d65,'count':_0x543800['length']},'Lookup\x20table\x20loaded:\x20'+_0x392e4a),_0xd3894f;}catch(_0xc14af2){logger[_0x46a169(0x1ba)]({'event':_0x172e64[_0x46a169(0x195)],'table':_0x392e4a,'error':_0xc14af2[_0x46a169(0x1b1)]},'Failed\x20to\x20load\x20lookup\x20table:\x20'+_0x392e4a);throw _0xc14af2;}}['resolveLookupValue'](_0x496777,_0x2ae832){const _0x1d261d=a0_0xaa84b4,_0x469b97={'IBhEM':function(_0xb3ed6f,_0x419fd3){return _0xb3ed6f===_0x419fd3;},'rOaJR':function(_0x474d22,_0x592c15){return _0x474d22(_0x592c15);}};if(_0x469b97['IBhEM'](_0x496777,null)||_0x496777===undefined||_0x496777==='')return null;const _0x504910=_0x469b97['rOaJR'](String,_0x496777)[_0x1d261d(0x1a9)]();if(_0x2ae832[_0x1d261d(0x1a1)](_0x504910))return _0x2ae832[_0x1d261d(0x1c4)](_0x504910);const _0x392e15=_0x504910[_0x1d261d(0x1c0)]();if(_0x2ae832[_0x1d261d(0x1a1)](_0x392e15))return _0x2ae832[_0x1d261d(0x1c4)](_0x392e15);return null;}async[a0_0xaa84b4(0x1bc)](_0x2fd9db,_0x9e8f47){const _0xeccac9=a0_0xaa84b4,_0x5806d3={'SaXob':function(_0x28206f,_0x3f0d93){return _0x28206f===_0x3f0d93;},'lSIfL':function(_0x332494,_0xf07f0c){return _0x332494!==_0xf07f0c;}};if(!_0x9e8f47||Object[_0xeccac9(0x1b0)](_0x9e8f47)['length']===0x0)return{'processedRows':_0x2fd9db,'errors':[]};const _0x5f2eba=[],_0x212b59=new Map();for(const [_0x1ffb22,_0x8a50d4]of Object['entries'](_0x9e8f47)){const {lookupTable:_0x7b5361,lookupColumn:_0x2051ee,lookupIdColumn:_0x428f96}=_0x8a50d4,_0xb1d76a=_0x7b5361+':'+_0x2051ee+':'+_0x428f96;if(!_0x212b59['has'](_0xb1d76a)){const _0x19da62=await this['loadLookupTable'](_0x7b5361,_0x2051ee,_0x428f96);_0x212b59[_0xeccac9(0x1a6)](_0xb1d76a,_0x19da62);}}const _0x5d6f4b=_0x2fd9db[_0xeccac9(0x1b5)]((_0xc8a45e,_0x4cc76c)=>{const _0x1355fe=_0xeccac9,_0x1a11c4={..._0xc8a45e};for(const [_0x3dcff1,_0x4a3541]of Object[_0x1355fe(0x19e)](_0x9e8f47)){const {lookupTable:_0x5eb668,lookupColumn:_0x1f5f5c,lookupIdColumn:_0x1d4af3,targetField:_0x2a01c9,required:_0x14cb6b}=_0x4a3541,_0x2d802e=_0x5eb668+':'+_0x1f5f5c+':'+_0x1d4af3,_0x55657c=_0x212b59[_0x1355fe(0x1c4)](_0x2d802e),_0x2fa97a=_0xc8a45e[_0x3dcff1];if((_0x5806d3[_0x1355fe(0x19a)](_0x2fa97a,null)||_0x2fa97a===undefined||_0x5806d3[_0x1355fe(0x19a)](_0x2fa97a,''))&&!_0x14cb6b){_0x1a11c4[_0x2a01c9]=null;continue;}const _0x2854b8=this['resolveLookupValue'](_0x2fa97a,_0x55657c);_0x5806d3[_0x1355fe(0x1c1)](_0x2854b8,null)?_0x1a11c4[_0x2a01c9]=_0x2854b8:(_0x14cb6b&&_0x5f2eba['push']({'rowIndex':_0x4cc76c,'field':_0x3dcff1,'value':_0x2fa97a,'targetField':_0x2a01c9,'lookupTable':_0x5eb668,'message':_0x1355fe(0x1af)+_0x2fa97a+_0x1355fe(0x1c7)+_0x5eb668}),_0x1a11c4[_0x2a01c9]=null);}return _0x1a11c4;});return logger[_0xeccac9(0x1b7)]({'event':'lookup_fields_processed','totalRows':_0x2fd9db[_0xeccac9(0x1b8)],'errorCount':_0x5f2eba[_0xeccac9(0x1b8)],'lookupFieldCount':Object['keys'](_0x9e8f47)[_0xeccac9(0x1b8)]},_0xeccac9(0x197)),{'processedRows':_0x5d6f4b,'errors':_0x5f2eba};}[a0_0xaa84b4(0x1a5)](_0x11c255,_0x528b9a){const _0x4604fc={'XIkzD':function(_0x5222b6,_0x3c2755){return _0x5222b6(_0x3c2755);}},_0x288ff6=new Set();return _0x11c255['forEach'](_0x457ed8=>{const _0x4c2d7b=_0x457ed8[_0x528b9a];_0x4c2d7b!==null&&_0x4c2d7b!==undefined&&_0x4c2d7b!==''&&_0x288ff6['add'](_0x4604fc['XIkzD'](String,_0x4c2d7b)['trim']());}),Array['from'](_0x288ff6);}async[a0_0xaa84b4(0x19f)](_0x4c22e3,_0x1f3687){const _0x1eb36f=a0_0xaa84b4,_0x471bc4={'DVFJZ':function(_0x45e72a,_0x1d3bdf){return _0x45e72a!==_0x1d3bdf;},'xwzTJ':function(_0x236d02,_0x1a4308){return _0x236d02===_0x1a4308;}};if(!_0x1f3687||Object['keys'](_0x1f3687)['length']===0x0)return{'valid':!![],'errors':[],'suggestions':{}};const _0x430130=[],_0x4b5659={};for(const [_0x42d02f,_0x177ed7]of Object['entries'](_0x1f3687)){const {lookupTable:_0x40662d,lookupColumn:_0x49cf40,lookupIdColumn:_0x113da,required:_0x531f11}=_0x177ed7,_0x15947a=this[_0x1eb36f(0x1a5)](_0x4c22e3,_0x42d02f),_0x1e30d9=await this[_0x1eb36f(0x1a4)](_0x40662d,_0x49cf40,_0x113da),_0x1fe03e=[],_0x5a4fc=[];_0x15947a[_0x1eb36f(0x1c8)](_0x54652e=>{const _0xbe5db9=_0x1eb36f,_0x19f5b1=this['resolveLookupValue'](_0x54652e,_0x1e30d9);_0x471bc4[_0xbe5db9(0x196)](_0x19f5b1,null)?_0x5a4fc['push'](_0x54652e):_0x1fe03e[_0xbe5db9(0x1aa)](_0x54652e);});if(_0x1fe03e[_0x1eb36f(0x1b8)]>0x0&&_0x531f11){_0x430130['push']({'field':_0x42d02f,'lookupTable':_0x40662d,'invalidValues':_0x1fe03e,'message':_0x1fe03e[_0x1eb36f(0x1b8)]+'\x20value(s)\x20not\x20found\x20in\x20'+_0x40662d});const _0x5ad67a=[];_0x1e30d9[_0x1eb36f(0x1c8)]((_0x1aa604,_0x75b926)=>{const _0x569993=_0x1eb36f;if(_0x75b926===_0x75b926[_0x569993(0x1c0)]())return;_0x5ad67a['push'](_0x75b926);}),_0x4b5659[_0x42d02f]={'invalidValues':_0x1fe03e,'availableValues':_0x5ad67a['slice'](0x0,0x32)};}}return{'valid':_0x471bc4['xwzTJ'](_0x430130['length'],0x0),'errors':_0x430130,'suggestions':_0x4b5659};}}module['exports']=new LookupResolver();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a0_0x44767e=a0_0x156b;(function(_0x3694fd,_0x202d56){const _0xff12ba=a0_0x156b,_0x2921ba=_0x3694fd();while(!![]){try{const _0x195d3b=-parseInt(_0xff12ba(0xd6))/0x1*(parseInt(_0xff12ba(0xdb))/0x2)+-parseInt(_0xff12ba(0xe9))/0x3*(parseInt(_0xff12ba(0xec))/0x4)+-parseInt(_0xff12ba(0xd9))/0x5*(-parseInt(_0xff12ba(0xea))/0x6)+parseInt(_0xff12ba(0xd1))/0x7+parseInt(_0xff12ba(0xc6))/0x8*(-parseInt(_0xff12ba(0xd8))/0x9)+-parseInt(_0xff12ba(0xd4))/0xa+-parseInt(_0xff12ba(0xdd))/0xb*(-parseInt(_0xff12ba(0xe8))/0xc);if(_0x195d3b===_0x202d56)break;else _0x2921ba['push'](_0x2921ba['shift']());}catch(_0x2acb38){_0x2921ba['push'](_0x2921ba['shift']());}}}(a0_0x4dbe,0xa43a3));const fs=require('fs')['promises'],path=require('path'),{logger}=require(a0_0x44767e(0xdf));class PayloadLoader{constructor(){const _0x1a113d=a0_0x44767e,_0x20fdbf={'LxLWh':'../../payload'};this['payloadDir']=path['join'](__dirname,_0x20fdbf[_0x1a113d(0xef)]),this[_0x1a113d(0xcd)]=new Map();}async['loadPayload'](_0x3d9172,_0x3803c2){const _0x3c0eb1=a0_0x44767e,_0x443f64={'CKbOR':_0x3c0eb1(0xdc),'ltksT':_0x3c0eb1(0xe6),'TOKpZ':'Payload\x20loaded\x20successfully','qwAUz':_0x3c0eb1(0xcb)},_0x1e6a35=_0x3d9172+':'+_0x3803c2;if(this[_0x3c0eb1(0xcd)]['has'](_0x1e6a35))return this[_0x3c0eb1(0xcd)][_0x3c0eb1(0xe4)](_0x1e6a35);const _0x3c65b5=path['join'](this['payloadDir'],_0x3d9172+'_'+_0x3803c2+_0x3c0eb1(0xf0));try{const _0x2520bd=await fs['readFile'](_0x3c65b5,_0x443f64['CKbOR']),_0x4a8801=JSON[_0x3c0eb1(0xf2)](_0x2520bd);return this['cache'][_0x3c0eb1(0xe5)](_0x1e6a35,_0x4a8801),logger[_0x3c0eb1(0xca)]({'event':_0x443f64[_0x3c0eb1(0xe3)],'project':_0x3d9172,'resource':_0x3803c2},_0x443f64[_0x3c0eb1(0xcf)]),_0x4a8801;}catch(_0x29e7c4){logger[_0x3c0eb1(0xcc)]({'event':_0x3c0eb1(0xe0),'project':_0x3d9172,'resource':_0x3803c2,'error':_0x29e7c4[_0x3c0eb1(0xd0)]},_0x443f64[_0x3c0eb1(0xd2)]);throw new Error('Payload\x20not\x20found:\x20'+_0x3d9172+'_'+_0x3803c2);}}async['loadPayloadByName'](_0x407fc5){const _0x31688f=a0_0x44767e,_0x38e165={'PBjIm':_0x31688f(0xdc),'UkbXW':_0x31688f(0xe0),'MLlTk':'Failed\x20to\x20load\x20payload\x20by\x20name'},_0x318bdf='payload:'+_0x407fc5;if(this[_0x31688f(0xcd)][_0x31688f(0xe7)](_0x318bdf))return this['cache']['get'](_0x318bdf);const _0x1688c7=path['join'](this[_0x31688f(0xda)],_0x407fc5+_0x31688f(0xf0));try{const _0x559632=await fs[_0x31688f(0xc8)](_0x1688c7,_0x38e165[_0x31688f(0xc7)]),_0x546598=JSON['parse'](_0x559632);return this[_0x31688f(0xcd)][_0x31688f(0xe5)](_0x318bdf,_0x546598),logger[_0x31688f(0xca)]({'event':_0x31688f(0xe6),'payloadName':_0x407fc5},_0x31688f(0xed)),_0x546598;}catch(_0x4a0d4d){logger['error']({'event':_0x38e165['UkbXW'],'payloadName':_0x407fc5,'error':_0x4a0d4d['message']},_0x38e165['MLlTk']);throw new Error('Payload\x20not\x20found:\x20'+_0x407fc5);}}[a0_0x44767e(0xf1)](_0x2dedeb,_0x5e9745){const _0x4c3839=a0_0x44767e,_0x3e26d8={'iwEZM':function(_0x218d6a,_0x52cc63){return _0x218d6a===_0x52cc63;}};return _0x2dedeb['action']&&_0x3e26d8[_0x4c3839(0xe2)](_0x2dedeb['action'][_0x5e9745],!![]);}[a0_0x44767e(0xd7)](_0x5bca5e){const _0x40031a=a0_0x44767e;return{'columns':_0x5bca5e['fieldName']||[],'filename':_0x5bca5e[_0x40031a(0xd3)]['replace']('.','-')+'-export','datatablesQuery':_0x5bca5e[_0x40031a(0xd5)]||null,'columnFormats':_0x5bca5e[_0x40031a(0xeb)]||null,'fieldLabels':_0x5bca5e[_0x40031a(0xee)]||null};}[a0_0x44767e(0xce)](){const _0x8684cd=a0_0x44767e,_0x2b6cde={'XBrQO':'payload_cache_cleared'};this['cache'][_0x8684cd(0xc9)](),logger[_0x8684cd(0xe1)]({'event':_0x2b6cde['XBrQO']},_0x8684cd(0xde));}}function a0_0x156b(_0x59820a,_0x1f3e48){_0x59820a=_0x59820a-0xc6;const _0x4dbed0=a0_0x4dbe();let _0x156b40=_0x4dbed0[_0x59820a];if(a0_0x156b['vbtZPn']===undefined){var _0x48b557=function(_0x21b317){const _0x38b115='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4a9eb8='',_0x3d4386='';for(let _0x4c78f0=0x0,_0x1d85e4,_0x21f7ed,_0xbb04ca=0x0;_0x21f7ed=_0x21b317['charAt'](_0xbb04ca++);~_0x21f7ed&&(_0x1d85e4=_0x4c78f0%0x4?_0x1d85e4*0x40+_0x21f7ed:_0x21f7ed,_0x4c78f0++%0x4)?_0x4a9eb8+=String['fromCharCode'](0xff&_0x1d85e4>>(-0x2*_0x4c78f0&0x6)):0x0){_0x21f7ed=_0x38b115['indexOf'](_0x21f7ed);}for(let _0x34a8cd=0x0,_0x48cedc=_0x4a9eb8['length'];_0x34a8cd<_0x48cedc;_0x34a8cd++){_0x3d4386+='%'+('00'+_0x4a9eb8['charCodeAt'](_0x34a8cd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3d4386);};a0_0x156b['gwkfJh']=_0x48b557,a0_0x156b['oHHYOX']={},a0_0x156b['vbtZPn']=!![];}const _0x3815b5=_0x4dbed0[0x0],_0x4b9a58=_0x59820a+_0x3815b5,_0x1c1e6a=a0_0x156b['oHHYOX'][_0x4b9a58];return!_0x1c1e6a?(_0x156b40=a0_0x156b['gwkfJh'](_0x156b40),a0_0x156b['oHHYOX'][_0x4b9a58]=_0x156b40):_0x156b40=_0x1c1e6a,_0x156b40;}module['exports']=new PayloadLoader();function a0_0x4dbe(){const _0xa36613=['AgfZ','mJe2v2fZuhzU','mJi5ntmYn2fjD3Hqsa','ntiYA0jfv0jk','y29SDw1UrM9YBwf0CW','ng9eqNDWEG','ugf5Bg9HzcbSB2fKzwqGC3vJy2vZC2z1BgX5igj5ig5HBwu','zMLLBgrmywjLBhm','thHmv2G','lMPZB24','Axnby3rPB25fBMfIBgvK','CgfYC2u','off2EhvIzG','uejQsw0','CMvHzezPBgu','y2XLyxi','zgvIDwC','rMfPBgvKihrVigXVywqGCgf5Bg9Hza','zxjYB3i','y2fJAgu','y2XLyxjdywnOzq','ve9lCfO','BwvZC2fNzq','ndmWmdmXmhHtqu5Xza','CxDbvxO','DgfIBgvoyw1L','mZCZnZmWmhLAqK5usq','zgf0yxrHyMXLC1f1zxj5','mNrnBwHSCG','z2v0rxHWB3j0q29UzMLN','ndu4nZG0ouLsvwfbBW','nJe3ndvSvKP2svi','Cgf5Bg9HzerPCG','nJi1mdK2sunIBMf6','DxrMoa','nZy4ntGXtuz0uuDl','ugf5Bg9HzcbJywnOzsbJBgvHCMvK','lI9SB2DNzxi','Cgf5Bg9Hzf9SB2fKx2vYCM9Y','Aw5MBW','AxDfwK0','BhrRC1q','z2v0','C2v0','Cgf5Bg9Hzf9SB2fKzwq'];a0_0x4dbe=function(){return _0xa36613;};return a0_0x4dbe();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var a0_0x347929=a0_0x23c5;(function(_0x5e108a,_0x5a1e70){var _0x8c3c93=a0_0x23c5,_0x286dd4=_0x5e108a();while(!![]){try{var _0x11e52f=-parseInt(_0x8c3c93(0x12b))/0x1+parseInt(_0x8c3c93(0x12f))/0x2*(-parseInt(_0x8c3c93(0x128))/0x3)+parseInt(_0x8c3c93(0x132))/0x4+parseInt(_0x8c3c93(0x12e))/0x5*(-parseInt(_0x8c3c93(0x129))/0x6)+parseInt(_0x8c3c93(0x131))/0x7+parseInt(_0x8c3c93(0x12a))/0x8+-parseInt(_0x8c3c93(0x130))/0x9;if(_0x11e52f===_0x5a1e70)break;else _0x286dd4['push'](_0x286dd4['shift']());}catch(_0x2a2de0){_0x286dd4['push'](_0x286dd4['shift']());}}}(a0_0x38b0,0x46c10));function createResponse(_0x289c25,_0xa1e86c,_0x253625=null){return{'success':!![],'statusCode':_0x289c25,'message':_0xa1e86c,'data':_0x253625,'timestamp':new Date()['toISOString']()};}function createError(_0x5666ae,_0x24f36f,_0x593ea4=null){var _0x13dbd2=a0_0x23c5;return{'success':![],'statusCode':_0x5666ae,'message':_0x24f36f,'data':_0x593ea4,'timestamp':new Date()[_0x13dbd2(0x12c)]()};}function createValidationError(_0x279975,_0x2f92d7){var _0x4aae3e=a0_0x23c5;return{'success':![],'statusCode':0x190,'message':_0x279975,'data':{'errors':_0x2f92d7},'timestamp':new Date()[_0x4aae3e(0x12c)]()};}module[a0_0x347929(0x12d)]={'createResponse':createResponse,'createError':createError,'createValidationError':createValidationError};function a0_0x23c5(_0x4bb008,_0x24257f){_0x4bb008=_0x4bb008-0x128;var _0x38b017=a0_0x38b0();var _0x23c598=_0x38b017[_0x4bb008];if(a0_0x23c5['tPvtiU']===undefined){var _0x1e7f2c=function(_0x44d346){var _0x99349d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x1b701f='',_0x44ab44='';for(var _0x4e3d6c=0x0,_0xf67d9d,_0x3a331a,_0x768345=0x0;_0x3a331a=_0x44d346['charAt'](_0x768345++);~_0x3a331a&&(_0xf67d9d=_0x4e3d6c%0x4?_0xf67d9d*0x40+_0x3a331a:_0x3a331a,_0x4e3d6c++%0x4)?_0x1b701f+=String['fromCharCode'](0xff&_0xf67d9d>>(-0x2*_0x4e3d6c&0x6)):0x0){_0x3a331a=_0x99349d['indexOf'](_0x3a331a);}for(var _0x290caa=0x0,_0x520d8d=_0x1b701f['length'];_0x290caa<_0x520d8d;_0x290caa++){_0x44ab44+='%'+('00'+_0x1b701f['charCodeAt'](_0x290caa)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x44ab44);};a0_0x23c5['bMcjMR']=_0x1e7f2c,a0_0x23c5['xdkIAG']={},a0_0x23c5['tPvtiU']=!![];}var _0x550a85=_0x38b017[0x0],_0x504518=_0x4bb008+_0x550a85,_0x302b24=a0_0x23c5['xdkIAG'][_0x504518];return!_0x302b24?(_0x23c598=a0_0x23c5['bMcjMR'](_0x23c598),a0_0x23c5['xdkIAG'][_0x504518]=_0x23c598):_0x23c598=_0x302b24,_0x23c598;}function a0_0x38b0(){var _0x3fe715=['mti3ntyYnfvbEhHwsa','mZa4ndCWnfzXvgXlyG','mZm1mdbgAfrLqxK','mtiZu2v1B1Lw','nJzrCgP3A0S','ndi2mdC2ohb5vLbWta','mJqXmde1EwX2rw55','Dg9ju09tDhjPBMC','zxHWB3j0CW','nZm0otvLsgn2tLG','nZe5mfrAEeLiza'];a0_0x38b0=function(){return _0x3fe715;};return a0_0x38b0();}
|
package/src/utils/rabbitmq.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x39c9dc=a0_0x2192;function a0_0x2192(_0x58e0dc,_0x3e83a9){_0x58e0dc=_0x58e0dc-0xcf;const _0x3189e5=a0_0x3189();let _0x219276=_0x3189e5[_0x58e0dc];if(a0_0x2192['MhOEIJ']===undefined){var _0x544732=function(_0x4da47d){const _0x1e9223='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x40a631='',_0xe8e091='';for(let _0x2b2643=0x0,_0x431f34,_0x1bfe8c,_0x58006a=0x0;_0x1bfe8c=_0x4da47d['charAt'](_0x58006a++);~_0x1bfe8c&&(_0x431f34=_0x2b2643%0x4?_0x431f34*0x40+_0x1bfe8c:_0x1bfe8c,_0x2b2643++%0x4)?_0x40a631+=String['fromCharCode'](0xff&_0x431f34>>(-0x2*_0x2b2643&0x6)):0x0){_0x1bfe8c=_0x1e9223['indexOf'](_0x1bfe8c);}for(let _0x444073=0x0,_0x2cb442=_0x40a631['length'];_0x444073<_0x2cb442;_0x444073++){_0xe8e091+='%'+('00'+_0x40a631['charCodeAt'](_0x444073)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xe8e091);};a0_0x2192['wwKxSY']=_0x544732,a0_0x2192['qWUrRr']={},a0_0x2192['MhOEIJ']=!![];}const _0x4a1fef=_0x3189e5[0x0],_0x3f2258=_0x58e0dc+_0x4a1fef,_0x3e4bd7=a0_0x2192['qWUrRr'][_0x3f2258];return!_0x3e4bd7?(_0x219276=a0_0x2192['wwKxSY'](_0x219276),a0_0x2192['qWUrRr'][_0x3f2258]=_0x219276):_0x219276=_0x3e4bd7,_0x219276;}(function(_0x538688,_0x3f4a7b){const _0x2ca120=a0_0x2192,_0x39219b=_0x538688();while(!![]){try{const _0x2d0fff=-parseInt(_0x2ca120(0xd9))/0x1+parseInt(_0x2ca120(0xee))/0x2*(-parseInt(_0x2ca120(0xd5))/0x3)+parseInt(_0x2ca120(0x100))/0x4+parseInt(_0x2ca120(0xff))/0x5*(parseInt(_0x2ca120(0x102))/0x6)+-parseInt(_0x2ca120(0x101))/0x7*(-parseInt(_0x2ca120(0xd3))/0x8)+parseInt(_0x2ca120(0xf0))/0x9*(parseInt(_0x2ca120(0xec))/0xa)+-parseInt(_0x2ca120(0xd6))/0xb*(parseInt(_0x2ca120(0xf4))/0xc);if(_0x2d0fff===_0x3f4a7b)break;else _0x39219b['push'](_0x39219b['shift']());}catch(_0x1ee0f3){_0x39219b['push'](_0x39219b['shift']());}}}(a0_0x3189,0xd7d1c),require(a0_0x39c9dc(0xfa))[a0_0x39c9dc(0xe3)]());const amqp=require('amqplib'),{formatDate}=require(a0_0x39c9dc(0xfd)),RABBITMQ_URL=process['env'][a0_0x39c9dc(0xdd)],EXCHANGE=process['env'][a0_0x39c9dc(0xe7)],ROUTING_KEY=process['env'][a0_0x39c9dc(0xf9)],QUEUE=process[a0_0x39c9dc(0xe6)][a0_0x39c9dc(0xd8)];async function createConnection(){const _0x4d3c22=a0_0x39c9dc;try{const _0x5c7d72=await amqp[_0x4d3c22(0xf6)](RABBITMQ_URL);return console[_0x4d3c22(0xfc)]('['+formatDate(new Date())+_0x4d3c22(0xd1)),_0x5c7d72;}catch(_0x3bca4a){console['error']('['+formatDate(new Date())+_0x4d3c22(0xd2)+_0x3bca4a['message']);throw _0x3bca4a;}}function a0_0x3189(){const _0xf04c10=['y3jLyxrLzc9YzwfKEq','Aw5JBhvKzxm','xsbtDwnJzxnZzNvSBhKGy29UBMvJDgvKihrVifjHyMjPDe1r','xsbgywLSzwqGDg8Gy29UBMvJDcb0BYbsywjIAxrnutOG','mJuWmdqYngzVtvvJDG','zgLYzwn0','m3z3rM9VBq','nZDMz25PwMe','Aw5LCxvPDMfSzw50igfYzW','uKfcqKLutvfFuvvfvuu','otG4mZGWtLzvwhrL','yMLUzff1zxvL','B3Pst08','xsbgywLSzwqGDg8Gy3jLyxrLifjHyMjPDe1rignOyw5UzwW6ia','uKfcqKLutvfFvvjm','ksbJCMvHDgvK','xsbrDwv1zsa','BwvZC2fNzq','CMv0CNKTzxHJAgfUz2u','zxjYB3i','y29UzMLN','yxnZzxj0rxHJAgfUz2u','xsbfCNjVCIbZzxr0Aw5NihvWig1HAw4GCxvLDwu6','zw52','uKfcqKLutvfFrvHdsefor0u','vxfIs2m','ignYzwf0zwqVCMvHzhK','zM91BMq','zMDiu0m','mtu2nZiWmtbrsunnufm','ihDHCYbJCMvHDgvKihDPDgGGysbKAwzMzxjLBNqGEc1KzwfKlwXLDhrLCI1YB3v0Aw5NlwTLEs4','mtiXoda5ne10tMrwuW','zxHPDa','ovrxtePhDG','uxvLDwuG','xsbgywLSzwqGDg8Gy2XVC2uGuMfIyML0tveGy29UBMvJDgLVBJOG','yxnZzxj0uxvLDwu','ndu1ntm1nMXfvvPysW','thDysgG','y29UBMvJDa','xsbcAw5KAw5Nia','yxfVD3u','uKfcqKLutvfFuK9vveLor19lrvK','zg90zw52','wgPVwLG','Bg9N','lI9KyxrLsgvSCgvY','ic0+ia','ndCZoteZnwzHswnXtG','nJC0ndeWoe1RzuvSra','mJfMC3nSrwG','nLjmy3rmyq'];a0_0x3189=function(){return _0xf04c10;};return a0_0x3189();}async function createChannel(_0x38053c){const _0x201d16=a0_0x39c9dc,_0x562e96={'OdrBI':function(_0x36fbc8,_0x11a99b){return _0x36fbc8(_0x11a99b);}};try{const _0x521379=await _0x38053c['createChannel']();return console[_0x201d16(0xfc)]('['+_0x562e96['OdrBI'](formatDate,new Date())+']\x20RabbitMQ\x20channel\x20created\x20successfully'),_0x521379;}catch(_0x24e3cb){console['error']('['+_0x562e96['OdrBI'](formatDate,new Date())+_0x201d16(0xdc)+_0x24e3cb[_0x201d16(0xe0)]);throw _0x24e3cb;}}async function setupInfrastructure(_0x5f29f1){const _0x4b0e2f=a0_0x39c9dc,_0x39589b={'rEQet':'direct','LwXHh':function(_0x129dcd,_0x23c48a){return _0x129dcd(_0x23c48a);},'XjoZX':function(_0x561e6e,_0x3547b4){return _0x561e6e(_0x3547b4);},'aqowu':'retry-exchange','fgHSC':_0x4b0e2f(0xcf),'UqbKc':_0x4b0e2f(0xea),'ozROO':'inequivalent\x20arg','TmeKH':function(_0x3f129a,_0x45ad6f){return _0x3f129a(_0x45ad6f);}};try{await _0x5f29f1[_0x4b0e2f(0xe4)]('retry-exchange',_0x39589b['rEQet'],{'durable':!![],'autoDelete':![]}),console['log']('['+_0x39589b[_0x4b0e2f(0xf5)](formatDate,new Date())+']\x20Retry\x20exchange\x20created/ready');}catch(_0x28ade6){console['error']('['+formatDate(new Date())+']\x20Error\x20creating\x20retry\x20exchange:',_0x28ade6[_0x4b0e2f(0xe0)]);throw _0x28ade6;}try{await _0x5f29f1['assertExchange'](EXCHANGE,_0x4b0e2f(0xd4),{'durable':!![],'autoDelete':![]}),console[_0x4b0e2f(0xfc)]('['+formatDate(new Date())+']\x20Exchange\x20'+EXCHANGE+_0x4b0e2f(0xe9));}catch(_0x526809){console[_0x4b0e2f(0xe2)]('['+formatDate(new Date())+']\x20Error\x20creating\x20exchange\x20'+EXCHANGE+':',_0x526809[_0x4b0e2f(0xe0)]);throw _0x526809;}const _0x534f64=ROUTING_KEY+'_retry';try{const _0x3edbdb={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':EXCHANGE,'x-dead-letter-routing-key':ROUTING_KEY}};await _0x5f29f1[_0x4b0e2f(0xf3)](_0x534f64,_0x3edbdb),console[_0x4b0e2f(0xfc)]('['+formatDate(new Date())+']\x20Retry\x20queue\x20'+_0x534f64+'\x20created/ready'),await _0x5f29f1['bindQueue'](_0x534f64,_0x4b0e2f(0xe1),ROUTING_KEY),console[_0x4b0e2f(0xfc)]('['+formatDate(new Date())+']\x20Retry\x20binding\x20for\x20'+ROUTING_KEY+'\x20created');}catch(_0x5d578b){console['error']('['+_0x39589b[_0x4b0e2f(0xfb)](formatDate,new Date())+']\x20Error\x20creating\x20retry\x20queue:',_0x5d578b['message']);throw _0x5d578b;}try{const _0x59a70e={'durable':!![],'arguments':{'x-dead-letter-exchange':_0x39589b[_0x4b0e2f(0xf8)],'x-dead-letter-routing-key':ROUTING_KEY}};try{const _0x2afe83=await _0x5f29f1['assertQueue'](QUEUE,_0x59a70e);console['log']('['+formatDate(new Date())+_0x4b0e2f(0xdf)+QUEUE+'\x20'+(_0x2afe83['queue']===QUEUE?_0x39589b[_0x4b0e2f(0xeb)]:_0x39589b[_0x4b0e2f(0xe8)])+'\x20with\x20DLX'),await _0x5f29f1[_0x4b0e2f(0xda)](QUEUE,EXCHANGE,ROUTING_KEY),console[_0x4b0e2f(0xfc)]('['+_0x39589b[_0x4b0e2f(0xfb)](formatDate,new Date())+_0x4b0e2f(0xf7)+EXCHANGE+_0x4b0e2f(0xfe)+QUEUE+'\x20('+ROUTING_KEY+_0x4b0e2f(0xde));}catch(_0x43dea7){if(_0x43dea7[_0x4b0e2f(0xe0)][_0x4b0e2f(0xd0)](_0x4b0e2f(0xd7))&&_0x43dea7[_0x4b0e2f(0xe0)]['includes']('x-dead-letter-routing-key'))console['error']('\x0a['+formatDate(new Date())+']\x20ERROR:\x20Queue\x20'+QUEUE+'\x20is\x20already\x20in\x20use\x20with\x20a\x20different\x20routing\x20key.'),console[_0x4b0e2f(0xe2)](_0x4b0e2f(0xf1)+QUEUE+_0x4b0e2f(0xed)),console['error']('Solution:\x20Use\x20a\x20different\x20queue\x20name\x20for\x20different\x20routing\x20keys.'),process[_0x4b0e2f(0xef)](0x1);else{console[_0x4b0e2f(0xe2)]('['+formatDate(new Date())+']\x20Error\x20creating\x20queue\x20'+QUEUE+':',_0x43dea7['message']);throw _0x43dea7;}}}catch(_0x24eb80){if(!_0x24eb80[_0x4b0e2f(0xe0)]['includes'](_0x39589b[_0x4b0e2f(0xdb)])){console[_0x4b0e2f(0xe2)]('['+_0x39589b['TmeKH'](formatDate,new Date())+_0x4b0e2f(0xe5),_0x24eb80[_0x4b0e2f(0xe0)]);throw _0x24eb80;}process[_0x4b0e2f(0xef)](0x1);}}async function closeConnection(_0x3ece9c){const _0x1ddeab=a0_0x39c9dc;if(_0x3ece9c)try{await _0x3ece9c['close'](),console[_0x1ddeab(0xfc)]('['+formatDate(new Date())+']\x20RabbitMQ\x20connection\x20closed');}catch(_0x3d3194){console['error']('['+formatDate(new Date())+_0x1ddeab(0xf2)+_0x3d3194[_0x1ddeab(0xe0)]);}}module['exports']={'createConnection':createConnection,'createChannel':createChannel,'setupInfrastructure':setupInfrastructure,'closeConnection':closeConnection,'getConfig':()=>({'url':RABBITMQ_URL,'exchange':EXCHANGE,'routingKey':ROUTING_KEY,'queue':QUEUE})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x3d9d9b=a0_0x53b4;(function(_0x1a106f,_0x4c6a54){const _0x172981=a0_0x53b4,_0x4fe11f=_0x1a106f();while(!![]){try{const _0x44bd67=-parseInt(_0x172981(0x8d))/0x1*(-parseInt(_0x172981(0x78))/0x2)+parseInt(_0x172981(0x88))/0x3+parseInt(_0x172981(0x8b))/0x4*(parseInt(_0x172981(0x8e))/0x5)+-parseInt(_0x172981(0x87))/0x6+-parseInt(_0x172981(0x8c))/0x7*(-parseInt(_0x172981(0x81))/0x8)+parseInt(_0x172981(0x93))/0x9*(parseInt(_0x172981(0x76))/0xa)+-parseInt(_0x172981(0x79))/0xb;if(_0x44bd67===_0x4c6a54)break;else _0x4fe11f['push'](_0x4fe11f['shift']());}catch(_0x48b76a){_0x4fe11f['push'](_0x4fe11f['shift']());}}}(a0_0x3e8e,0xe682a));function a0_0x53b4(_0x1944c9,_0x37ce3b){_0x1944c9=_0x1944c9-0x76;const _0x3e8eb7=a0_0x3e8e();let _0x53b4a5=_0x3e8eb7[_0x1944c9];if(a0_0x53b4['FlAVUX']===undefined){var _0x4e7206=function(_0x732848){const _0xae4e3a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xb3898b='',_0x44c18d='';for(let _0xf811bb=0x0,_0x3f76f0,_0x4ab371,_0x14d6a7=0x0;_0x4ab371=_0x732848['charAt'](_0x14d6a7++);~_0x4ab371&&(_0x3f76f0=_0xf811bb%0x4?_0x3f76f0*0x40+_0x4ab371:_0x4ab371,_0xf811bb++%0x4)?_0xb3898b+=String['fromCharCode'](0xff&_0x3f76f0>>(-0x2*_0xf811bb&0x6)):0x0){_0x4ab371=_0xae4e3a['indexOf'](_0x4ab371);}for(let _0xd20d94=0x0,_0x15401e=_0xb3898b['length'];_0xd20d94<_0x15401e;_0xd20d94++){_0x44c18d+='%'+('00'+_0xb3898b['charCodeAt'](_0xd20d94)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x44c18d);};a0_0x53b4['lJhvGV']=_0x4e7206,a0_0x53b4['vXjtRA']={},a0_0x53b4['FlAVUX']=!![];}const _0x47af8d=_0x3e8eb7[0x0],_0x5622fa=_0x1944c9+_0x47af8d,_0xafb0f2=a0_0x53b4['vXjtRA'][_0x5622fa];return!_0xafb0f2?(_0x53b4a5=a0_0x53b4['lJhvGV'](_0x53b4a5),a0_0x53b4['vXjtRA'][_0x5622fa]=_0x53b4a5):_0x53b4a5=_0xafb0f2,_0x53b4a5;}const Redis=require('ioredis'),{logger}=require('./logger');class RedisClient{constructor(){const _0x130e2d=a0_0x53b4;this[_0x130e2d(0x7b)]=null,this[_0x130e2d(0x94)]=![];}[a0_0x3d9d9b(0x7e)](){const _0x3a35f7=a0_0x3d9d9b,_0x13200d={'CTStL':_0x3a35f7(0x7f),'vwJNE':_0x3a35f7(0x91),'FWunv':'redis_init_error'};if(this['client'])return this['client'];try{return this['client']=new Redis({'host':process['env']['REDIS_HOST']||_0x13200d['CTStL'],'port':parseInt(process['env'][_0x3a35f7(0x85)],0xa)||0x18ec,'password':process[_0x3a35f7(0x7a)]['REDIS_PASSWORD']||undefined,'db':parseInt(process[_0x3a35f7(0x7a)]['REDIS_DB'],0xa)||0x0,'retryStrategy'(_0xb950f7){const _0xb68ec0=_0x3a35f7,_0x40c30b=Math[_0xb68ec0(0x92)](_0xb950f7*0x32,0x7d0);return _0x40c30b;}}),this['client']['on'](_0x3a35f7(0x7e),()=>{const _0x2b097e=_0x3a35f7;this[_0x2b097e(0x94)]=!![],logger[_0x2b097e(0x77)]({'event':'redis_connected'},_0x2b097e(0x8f));}),this['client']['on'](_0x3a35f7(0x83),_0xce39a5=>{const _0x3bbfec=_0x3a35f7;this[_0x3bbfec(0x94)]=![],logger[_0x3bbfec(0x83)]({'event':'redis_error','error':_0xce39a5[_0x3bbfec(0x7d)]},_0x3bbfec(0x90)+_0xce39a5['message']);}),this[_0x3a35f7(0x7b)]['on'](_0x13200d[_0x3a35f7(0x7c)],()=>{const _0x4a3f4c=_0x3a35f7;this[_0x4a3f4c(0x94)]=![],logger['warn']({'event':_0x4a3f4c(0x80)},_0x4a3f4c(0x95));}),this[_0x3a35f7(0x7b)];}catch(_0x3b8d62){logger[_0x3a35f7(0x83)]({'event':_0x13200d['FWunv'],'error':_0x3b8d62['message']},'Failed\x20to\x20initialize\x20Redis');throw _0x3b8d62;}}[a0_0x3d9d9b(0x84)](){const _0x103cae=a0_0x3d9d9b;return!this['client']&&this['connect'](),this[_0x103cae(0x7b)];}async[a0_0x3d9d9b(0x82)](_0x594c69=0x1388){const _0x515142=a0_0x3d9d9b,_0x25b630={'zcPTx':'PONG'};try{const _0x12f60e=this[_0x515142(0x84)](),_0x9d4a62=await Promise['race']([_0x12f60e['ping'](),new Promise((_0x2ea12d,_0x223524)=>setTimeout(()=>_0x223524(new Error('Redis\x20PING\x20timeout')),_0x594c69))]);return _0x9d4a62===_0x25b630[_0x515142(0x89)];}catch(_0x1c8068){return![];}}async[a0_0x3d9d9b(0x86)](){const _0x395418=a0_0x3d9d9b;this['client']&&(await this['client']['quit'](),this[_0x395418(0x7b)]=null,this['isConnected']=![]);}['forceDisconnect'](){this['client']&&(this['client']['disconnect'](),this['client']=null,this['isConnected']=![]);}}function a0_0x3e8e(){const _0x2a3ef0=['nfvSy1L5tq','n2LsC3LQBG','mtuWn0PTAuvdCG','mJG0nty2mg9grun0yq','uMvKAxmGy29UBMvJDgvKihn1y2nLC3nMDwXSEq','uMvKAxmGy29UBMvJDgLVBIbLCNjVCJOG','y2XVC2u','BwLU','mtq0CxvzAMnW','AxndB25Uzwn0zwq','uMvKAxmGy29UBMvJDgLVBIbJBg9Zzwq','mZi5mJeWuxDkEwfU','Aw5MBW','ndi4EvPvBxfJ','mtq4ndq0mtjPsNH6yMC','zw52','y2XPzw50','DNDktKu','BwvZC2fNzq','y29UBMvJDa','Bg9JywXOB3n0','CMvKAxnFzgLZy29UBMvJDgvK','nZu3oduWnhL0vwrqua','CgLUzW','zxjYB3i','z2v0q2XPzw50','uKvesvnFue9sva','zgLZy29UBMvJDa','otq5nZG2ohPVrKjQyq','nduZmJG4m3DquhnHvG','EMnqvhG','zxHWB3j0CW'];a0_0x3e8e=function(){return _0x2a3ef0;};return a0_0x3e8e();}module[a0_0x3d9d9b(0x8a)]=new RedisClient();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const a0_0x22a1f1=a0_0x38ef;(function(_0x23fcaa,_0x3ef076){const _0x5ece74=a0_0x38ef,_0x281b7c=_0x23fcaa();while(!![]){try{const _0x1accee=parseInt(_0x5ece74(0xe6))/0x1*(parseInt(_0x5ece74(0xd6))/0x2)+parseInt(_0x5ece74(0xe1))/0x3+-parseInt(_0x5ece74(0xd8))/0x4*(-parseInt(_0x5ece74(0xcf))/0x5)+parseInt(_0x5ece74(0xed))/0x6*(parseInt(_0x5ece74(0xe9))/0x7)+parseInt(_0x5ece74(0xe3))/0x8*(-parseInt(_0x5ece74(0xe7))/0x9)+-parseInt(_0x5ece74(0xd3))/0xa*(-parseInt(_0x5ece74(0xd9))/0xb)+-parseInt(_0x5ece74(0xd2))/0xc;if(_0x1accee===_0x3ef076)break;else _0x281b7c['push'](_0x281b7c['shift']());}catch(_0x47756a){_0x281b7c['push'](_0x281b7c['shift']());}}}(a0_0x1697,0xd457a));function a0_0x1697(){const _0x25cddd=['rMfPBgvKihrVihnLDcbQB2iGAw4GuMvKAxm','ndvUtuDZqMK','C2v0zxG','z2v0q2XPzw50','mJaZndm0mJb0vKLSswC','mtbmALD0rvm','z2v0qwXSsM9ICW','zxjYB3i','ndeWnZrOEfvZsuq','ChjLzML4','mZmYmZi0rNfYCeTp','mti5odC5ntn0wgfdwhK','rMfPBgvKihrVigrLBgv0zsbQB2iGzNjVBsbszwrPCW','ChvZAa','oMv4Cg9YDdO','BwvZC2fNzq','CgfYC2u','z2v0sM9I','DhrS','mJG3otaWneTYDvDyqq','rMfPBgvKihrVigDLDcbHBgWGAM9ICW','mJe2nJG4oeTRAwPTvW','zxHWB3j0CW','CMvKAxnFzgvSzxrLx2vYCM9Y','mJfAywLzyMC','ntrtr01cC0C','lI9YzwrPCY1JBgLLBNq','ndC2swDrvenh','CMvKAxnFz2v0ywXSx2vYCM9Y','zgvMyxvSDa','x3bYzwzPEa','nZy4mZzNCM9Zuve','yNrwrvC','CMvKAxnFz2v0x2vYCM9Y','zgvS','rvHqt1jux0zjtevFrvHqsvjz','zw52'];a0_0x1697=function(){return _0x25cddd;};return a0_0x1697();}const redisClient=require(a0_0x22a1f1(0xe8)),{logger}=require('./logger');function a0_0x38ef(_0x32d1d5,_0x5536ba){_0x32d1d5=_0x32d1d5-0xca;const _0x1697c2=a0_0x1697();let _0x38effc=_0x1697c2[_0x32d1d5];if(a0_0x38ef['cSEPOQ']===undefined){var _0x1e7058=function(_0x378a4b){const _0x554c90='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4d190b='',_0x5b4e70='';for(let _0x413217=0x0,_0x346697,_0x37e27f,_0x1cd548=0x0;_0x37e27f=_0x378a4b['charAt'](_0x1cd548++);~_0x37e27f&&(_0x346697=_0x413217%0x4?_0x346697*0x40+_0x37e27f:_0x37e27f,_0x413217++%0x4)?_0x4d190b+=String['fromCharCode'](0xff&_0x346697>>(-0x2*_0x413217&0x6)):0x0){_0x37e27f=_0x554c90['indexOf'](_0x37e27f);}for(let _0x17fed0=0x0,_0x442397=_0x4d190b['length'];_0x17fed0<_0x442397;_0x17fed0++){_0x5b4e70+='%'+('00'+_0x4d190b['charCodeAt'](_0x17fed0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5b4e70);};a0_0x38ef['pJqHaS']=_0x1e7058,a0_0x38ef['ZZAetL']={},a0_0x38ef['cSEPOQ']=!![];}const _0x26997a=_0x1697c2[0x0],_0x474994=_0x32d1d5+_0x26997a,_0x10745d=a0_0x38ef['ZZAetL'][_0x474994];return!_0x10745d?(_0x38effc=a0_0x38ef['pJqHaS'](_0x38effc),a0_0x38ef['ZZAetL'][_0x474994]=_0x38effc):_0x38effc=_0x10745d,_0x38effc;}class RedisHelper{constructor(){const _0x5862ea=a0_0x22a1f1;this['_prefix']=null,this[_0x5862ea(0xe0)]=parseInt(process[_0x5862ea(0xcd)][_0x5862ea(0xcc)],0xa)||0xe10;}get['prefix'](){const _0x5d60e6=a0_0x22a1f1,_0xbee352={'aLJaJ':_0x5d60e6(0xeb)};if(!this[_0x5d60e6(0xec)]){const _0x5f0a73=process[_0x5d60e6(0xcd)]['RESTFORGE_PROJECT_NAME']||_0xbee352['aLJaJ'];this['_prefix']='restforge:'+_0x5f0a73+_0x5d60e6(0xdc);}return this['_prefix'];}async['setJob'](_0x39e7cf,_0x4aaa7f){const _0x4909c5=a0_0x22a1f1,_0x43cae3={'QrNjS':'redis_set_error'};try{const _0x4c4285=redisClient['getClient'](),_0x2eb865=''+this['prefix']+_0x39e7cf;return await _0x4c4285[_0x4909c5(0xd0)](_0x2eb865,this['ttl'],JSON['stringify'](_0x4aaa7f)),!![];}catch(_0x342177){return logger['error']({'event':_0x43cae3['QrNjS'],'jobId':_0x39e7cf,'error':_0x342177[_0x4909c5(0xdd)]},_0x4909c5(0xce)),![];}}async[a0_0x22a1f1(0xdf)](_0x4188a8){const _0x3da4ec=a0_0x22a1f1,_0x36d14d={'btVEW':'Failed\x20to\x20get\x20job\x20from\x20Redis'};try{const _0x40a68c=redisClient[_0x3da4ec(0xd1)](),_0x23981d=''+this['prefix']+_0x4188a8,_0x4ed29c=await _0x40a68c['get'](_0x23981d);return _0x4ed29c?JSON['parse'](_0x4ed29c):null;}catch(_0xe32ca6){return logger['error']({'event':_0x3da4ec(0xca),'jobId':_0x4188a8,'error':_0xe32ca6['message']},_0x36d14d[_0x3da4ec(0xee)]),null;}}async['updateJob'](_0x30c7b2,_0x5cb547){const _0x2d4d51=await this['getJob'](_0x30c7b2);if(!_0x2d4d51)return![];const _0x4d34a1={..._0x2d4d51,..._0x5cb547};return await this['setJob'](_0x30c7b2,_0x4d34a1);}async['deleteJob'](_0x34883f){const _0x4538a2=a0_0x22a1f1,_0x28d274={'kHiXd':_0x4538a2(0xe5)};try{const _0x286d53=redisClient[_0x4538a2(0xd1)](),_0x4fd1ee=''+this[_0x4538a2(0xd7)]+_0x34883f;return await _0x286d53[_0x4538a2(0xcb)](_0x4fd1ee),!![];}catch(_0x168eec){return logger['error']({'event':_0x28d274['kHiXd'],'jobId':_0x34883f,'error':_0x168eec[_0x4538a2(0xdd)]},_0x4538a2(0xda)),![];}}async[a0_0x22a1f1(0xd4)](){const _0x36a126=a0_0x22a1f1,_0x1373f1={'jknuc':_0x36a126(0xe2)};try{const _0x3f2e6d=redisClient['getClient'](),_0x2aa7ee=await _0x3f2e6d['keys'](this[_0x36a126(0xd7)]+'*'),_0x445c17=[];for(const _0x2c82ef of _0x2aa7ee){const _0x5db3cf=await _0x3f2e6d['get'](_0x2c82ef);_0x5db3cf&&_0x445c17[_0x36a126(0xdb)](JSON[_0x36a126(0xde)](_0x5db3cf));}return _0x445c17;}catch(_0x3e3d66){return logger[_0x36a126(0xd5)]({'event':_0x36a126(0xea),'error':_0x3e3d66[_0x36a126(0xdd)]},_0x1373f1['jknuc']),[];}}}module[a0_0x22a1f1(0xe4)]=new RedisHelper();
|