@restforgejs/platform 5.2.13 → 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/bin/drift-check-linux +0 -0
- package/bin/sdf-tools-linux +0 -0
- package/bin/sdf-tools.exe +0 -0
- 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/fast-track.js +4 -2
- package/generators/cli/payload/sync.js +16 -6
- package/generators/cli/project/auth.js +209 -0
- package/generators/cli/project/sdk.js +112 -0
- package/generators/lib/arg-parser.js +6 -0
- package/generators/lib/auth/component-generator.js +58 -0
- package/generators/lib/auth/dependency-checker.js +102 -0
- package/generators/lib/auth/env-injector.js +81 -0
- package/generators/lib/auth/migrate-runner.js +111 -0
- package/generators/lib/auth/prefix.js +22 -0
- package/generators/lib/auth/processor-generator.js +57 -0
- package/generators/lib/auth/sdf-generator.js +102 -0
- package/generators/lib/auth/template-renderer.js +29 -0
- package/generators/lib/auth/templates/processor/google.js.tmpl +178 -0
- package/generators/lib/auth/templates/processor/login.js.tmpl +152 -0
- package/generators/lib/auth/templates/processor/logout.js.tmpl +58 -0
- package/generators/lib/auth/templates/processor/me.js.tmpl +64 -0
- package/generators/lib/auth/templates/processor/refresh.js.tmpl +134 -0
- package/generators/lib/auth/templates/processor/register.js.tmpl +77 -0
- package/generators/lib/auth/templates/processor/reset-password.js.tmpl +106 -0
- package/generators/lib/auth/templates/rfx_auth-middleware.js.tmpl +79 -0
- package/generators/lib/auth/templates/rfx_auth.js.tmpl +107 -0
- package/generators/lib/dbschema-kit/schema-printer.js +10 -1
- 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
|
-
const a0_0x8a01d0=a0_0x2038;(function(_0x30f12d,_0x1f5ae0){const _0x1e3be1=a0_0x2038,_0x440bd9=_0x30f12d();while(!![]){try{const _0x3ceda9=-parseInt(_0x1e3be1(0xf4))/0x1*(parseInt(_0x1e3be1(0x11f))/0x2)+-parseInt(_0x1e3be1(0xd6))/0x3*(parseInt(_0x1e3be1(0x114))/0x4)+parseInt(_0x1e3be1(0xe9))/0x5+parseInt(_0x1e3be1(0xcd))/0x6+-parseInt(_0x1e3be1(0xcc))/0x7*(parseInt(_0x1e3be1(0x119))/0x8)+parseInt(_0x1e3be1(0x100))/0x9+parseInt(_0x1e3be1(0xd0))/0xa;if(_0x3ceda9===_0x1f5ae0)break;else _0x440bd9['push'](_0x440bd9['shift']());}catch(_0x5b6a49){_0x440bd9['push'](_0x440bd9['shift']());}}}(a0_0x3df4,0x570a0));function a0_0x2038(_0x3941c3,_0x389ef3){_0x3941c3=_0x3941c3-0xcb;const _0x3df422=a0_0x3df4();let _0x20387e=_0x3df422[_0x3941c3];if(a0_0x2038['UJYPqT']===undefined){var _0x3dc1f4=function(_0x489c3f){const _0x2ed4a0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1e0c75='',_0x26ab88='';for(let _0x362dfa=0x0,_0x17b988,_0x49b0e5,_0x101b0d=0x0;_0x49b0e5=_0x489c3f['charAt'](_0x101b0d++);~_0x49b0e5&&(_0x17b988=_0x362dfa%0x4?_0x17b988*0x40+_0x49b0e5:_0x49b0e5,_0x362dfa++%0x4)?_0x1e0c75+=String['fromCharCode'](0xff&_0x17b988>>(-0x2*_0x362dfa&0x6)):0x0){_0x49b0e5=_0x2ed4a0['indexOf'](_0x49b0e5);}for(let _0x1cdc49=0x0,_0x21fa17=_0x1e0c75['length'];_0x1cdc49<_0x21fa17;_0x1cdc49++){_0x26ab88+='%'+('00'+_0x1e0c75['charCodeAt'](_0x1cdc49)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x26ab88);};a0_0x2038['gLVJtk']=_0x3dc1f4,a0_0x2038['BXWxIw']={},a0_0x2038['UJYPqT']=!![];}const _0x21e208=_0x3df422[0x0],_0x54e74d=_0x3941c3+_0x21e208,_0x5c8f79=a0_0x2038['BXWxIw'][_0x54e74d];return!_0x5c8f79?(_0x20387e=a0_0x2038['gLVJtk'](_0x20387e),a0_0x2038['BXWxIw'][_0x54e74d]=_0x20387e):_0x20387e=_0x5c8f79,_0x20387e;}function a0_0x3df4(){const _0x2d087e=['x3bYzwzPEa','x3jLDhj5rgvSyxK','D3jPDgu','mJHesgjpy2i','te11ue8','ChjLzML4','zw5HyMXLza','vMf3q3C','odi0uwT4sM1i','C2v0','D3jPDgvFBg9JA19Hy3f1AxjLza','m3W1Fdf8n3WYFdb8nhW2','uKvbrcbSB2nRigvYCM9Y','svz6zxa','mJbjB2fQvLC','BgfZDeLUzgv4t2y','CuH0vw8','mZqWmJDUAxL1Dge','mJm2mtaWmffKA2XAra','zgvIDwC','A0HSs2u','nJK0otGXme1xENzyCG','tg9JAYbJB25MAwD1CMf0Aw9UigLUAxrPywXPEMvKic0Gzw5HyMXLzdOG','CMvHzf9SB2nRx3DHAxrPBMC','te9Vthe','tg9JAYbYzwXLyxnLigvYCM9Y','DNnJrLq','mJmWnJy3D1f1se9I','x2vUC3vYzuLUAxrPywXPEMvK','CgLK','CMvHzf9SB2nRx3jLBgvHC2vK','uKvbrcbSB2nRigfJCxvPCMuGDgLTzw91Da','AxnfBMfIBgvK','CMvHza','sgHoANm','z2v0','D3jPDgvFBg9JA193ywL0Aw5N','zgvMyxvSDfruta','C2XLzxa','DuLJsgq','z2v0q2XPzw50','CMvHzf9SB2nRx2fJCxvPCMvK','D3jPDgvFBg9JA19YzwXLyxnLza','zw52','u01MDeS','CMv0CNLezwXHEq','mtq1mJmWmg5UAxDyEa','te9ds19esvnuuKLcvvrfrf9uveW','Bg9JA19LEhrLBMrLza','lI9YzwrPCY1JBgLLBNq','tKvvt0O','wgn1C0O','x3DVCMTLCKLK','zxH0zw5Ktg9JAW','Aw5JBhvKzxm','te9ds19esvnuuKLcvvrfrf9srvrswv9eruXbwq','x2LUAxrdB25MAwC','mtqZm3DVsffivq','x3n0CMf0zwD5','ywnXDwLYzvDYAxrLtg9JAW','D3jPDgvFBg9JA19LCNjVCG','D2fYBG','zgvJCG','x3jLDhj5q291BNq','v1jjveuGBg9JAYbHy3f1AxjLihrPBwvVDxq','C2v0zxG','x2rLzMf1BhruveW','CMy6Bg9JAZO','Dhj1zq','mJC3mJyZA0jjt1jb','cIaGicaGicaGAwyGCMvKAxmUy2fSBcGIz2v0iIWGs0vzu1SXxsKGpt0GqvjhvLSXxsb0AgvUcIaGicaGicaGicbYzxr1CM4GCMvKAxmUy2fSBcGIzgvSiIWGs0vzu1SXxsKkicaGicaGicbLBhnLcIaGicaGicaGicbYzxr1CM4GmaOGicaGicaGigvUzaOGicaGica','Bg9JA19JB25MAwDFAw5PDa','zgvS','z2vUzxjHDgvmB2nRvMfSDwu','vwTPt0m','lcbZDhjHDgvNEtOG','ywnXDwLYzvjLywrmB2nR','D3jPDgvFBg9JA190Aw1LB3v0','zxjYB3i','x2LUAxrPywXPEMvK','uKvbrcbSB2nRihjLBgvHC2vK','yNvPBgrmB2nRs2v5','Bg9JA19YzwXLyxnLx25VDf9VD25LCG','D29YA2vYlq','rw5jwKG','x2vUywjSzwq'];a0_0x3df4=function(){return _0x2d087e;};return a0_0x3df4();}const redisClient=require(a0_0x8a01d0(0xec)),{logger}=require('./logger'),{v4:uuidv4}=require('uuid');class LockManager{constructor(){const _0x304e4b=a0_0x8a01d0,_0x4a594d=_0x304e4b(0x11c)['split']('|');let _0x38d605=0x0;while(!![]){switch(_0x4a594d[_0x38d605++]){case'0':this['_strategy']=null;continue;case'1':this[_0x304e4b(0xfd)]=null;continue;case'2':this[_0x304e4b(0x112)]=null;continue;case'3':this[_0x304e4b(0x111)]=null;continue;case'4':this[_0x304e4b(0xef)]=null;continue;case'5':this['_enabled']=null;continue;case'6':this['_initialized']=![];continue;case'7':this['_retryCount']=null;continue;}break;}}[a0_0x8a01d0(0xf3)](){const _0x142ca3=a0_0x8a01d0,_0x49c3de={'SMftK':_0x142ca3(0xfe),'mXCfU':function(_0x42f49f,_0x349dc9,_0x1e68db){return _0x42f49f(_0x349dc9,_0x1e68db);},'kHlKe':_0x142ca3(0x102)};this[_0x142ca3(0x111)]=_0x49c3de[_0x142ca3(0xe7)],this['_enabled']=process[_0x142ca3(0xe6)]['LOCK_DISTRIBUTED_ENABLED']===_0x142ca3(0xff),this['_defaultTTL']=parseInt(process[_0x142ca3(0xe6)][_0x142ca3(0xea)],0xa)||0xa,this['_retryCount']=parseInt(process['env']['LOCK_DISTRIBUTED_RETRY'],0xa)||0x3,this[_0x142ca3(0x112)]=_0x49c3de['mXCfU'](parseInt,process['env'][_0x142ca3(0xf2)],0xa)||0x64,this['_strategy']=process[_0x142ca3(0xe6)]['LOCK_DISTRIBUTED_STRATEGY']||'retry',this['_workerId']=_0x142ca3(0x10e)+process[_0x142ca3(0xd8)],this['_initialized']=!![],logger['info']({'event':_0x49c3de[_0x142ca3(0xcf)],'enabled':this[_0x142ca3(0x110)],'strategy':this[_0x142ca3(0xf5)],'ttl':this['_defaultTTL'],'retryCount':this[_0x142ca3(0xfa)],'retryDelay':this['_retryDelay'],'workerId':this['_workerId']},_0x142ca3(0xd1)+this[_0x142ca3(0x110)]+_0x142ca3(0x106)+this['_strategy']);}[a0_0x8a01d0(0xd7)](){const _0x58eb5f=a0_0x8a01d0;!this[_0x58eb5f(0x10a)]&&this[_0x58eb5f(0xf3)]();}get['prefix'](){const _0x3c75eb=a0_0x8a01d0;return this[_0x3c75eb(0xd7)](),this[_0x3c75eb(0x111)];}get[a0_0x8a01d0(0x117)](){const _0x363196=a0_0x8a01d0;return this[_0x363196(0xd7)](),this[_0x363196(0x110)];}get['defaultTTL'](){return this['_ensureInitialized'](),this['_defaultTTL'];}get['retryCount'](){const _0x5572df=a0_0x8a01d0;return this[_0x5572df(0xd7)](),this['_retryCount'];}get[a0_0x8a01d0(0xe8)](){return this['_ensureInitialized'](),this['_retryDelay'];}get['strategy'](){const _0x272b7f=a0_0x8a01d0;return this['_ensureInitialized'](),this[_0x272b7f(0xf5)];}get['workerId'](){const _0x4b7086=a0_0x8a01d0;return this[_0x4b7086(0xd7)](),this[_0x4b7086(0xef)];}['buildLockKey'](_0x2e2ae5){const _0x55f168=a0_0x8a01d0,{module:_0x13f601,endpoint:_0x594b4d,lockType:_0x1ce4cd,recordId:_0x47d017}=_0x2e2ae5;if(_0x47d017)return''+this['prefix']+_0x13f601+':'+_0x594b4d+':'+_0x47d017+':'+_0x1ce4cd;return''+this[_0x55f168(0x116)]+_0x13f601+':'+_0x594b4d+':'+_0x1ce4cd;}[a0_0x8a01d0(0x104)](){const _0x5e6580={'uTlsK':function(_0x2c53e4){return _0x2c53e4();}};return this['workerId']+':'+_0x5e6580['uTlsK'](uuidv4)+':'+Date['now']();}async[a0_0x8a01d0(0x107)](_0x2dfd6c){const _0x4f5829=a0_0x8a01d0,_0x567b1f={'pRkZT':_0x4f5829(0x113),'UkiOC':_0x4f5829(0xdc),'zbTxh':function(_0x51a134,_0x58d687){return _0x51a134<_0x58d687;},'NEUOJ':'READ\x20lock\x20acquired','VawCw':'Waiting\x20for\x20WRITE\x20lock\x20to\x20release','qHtUo':function(_0x40ac89,_0x339e44){return _0x40ac89*_0x339e44;},'EnIZH':'read_lock_error'};if(!this[_0x4f5829(0x117)])return{'success':!![],'lockValue':null,'lockKey':null};const _0x47ab0f=this[_0x4f5829(0x10c)]({..._0x2dfd6c,'lockType':_0x567b1f['pRkZT']}),_0x41149f=this['buildLockKey']({..._0x2dfd6c,'lockType':_0x567b1f[_0x4f5829(0x105)]}),_0x548b2b=this['generateLockValue']();try{const _0x20f2a3=redisClient['getClient']();for(let _0x241412=0x0;_0x567b1f['zbTxh'](_0x241412,this['retryCount']);_0x241412++){const _0x4601db=await _0x20f2a3['get'](_0x47ab0f);if(!_0x4601db){await _0x20f2a3['incr'](_0x41149f),await _0x20f2a3['expire'](_0x41149f,this[_0x4f5829(0xe0)]);const _0x1c6047=_0x41149f+':'+_0x548b2b;return await _0x20f2a3[_0x4f5829(0xfc)](_0x1c6047,this[_0x4f5829(0xe0)],_0x548b2b),logger[_0x4f5829(0xce)]({'event':_0x4f5829(0xe4),'key':_0x41149f,'value':_0x548b2b},_0x567b1f[_0x4f5829(0xed)]),{'success':!![],'lockValue':_0x548b2b,'lockKey':_0x1c6047};}logger[_0x4f5829(0xce)]({'event':_0x4f5829(0xd2),'writeKey':_0x47ab0f,'attempt':_0x241412},_0x567b1f[_0x4f5829(0x118)]),await this[_0x4f5829(0xe1)](_0x567b1f[_0x4f5829(0xcb)](this['retryDelay'],Math['pow'](0x2,_0x241412)));}return logger[_0x4f5829(0xf8)]({'event':'read_lock_timeout','key':_0x41149f},_0x4f5829(0xda)),{'success':![],'lockValue':null,'lockKey':null};}catch(_0x155d9f){return logger[_0x4f5829(0x109)]({'event':_0x567b1f[_0x4f5829(0x10f)],'error':_0x155d9f['message']},_0x4f5829(0x11d)),{'success':![],'lockValue':null,'lockKey':null};}}async[a0_0x8a01d0(0xf6)](_0x1ff95f){const _0x21b8d9=a0_0x8a01d0,_0x3e109f={'OepyW':'write','vscFT':'reject','XcusJ':function(_0x1ea844,_0x1b8016){return _0x1ea844===_0x1b8016;},'mDaQl':_0x21b8d9(0x11b),'gtTZP':'WRITE\x20lock\x20acquired\x20(reject\x20mode)','HhNjs':'write_lock_rejected','yMRAG':'retry','LOoLq':'WRITE\x20lock\x20acquired\x20(retry\x20mode)','cmCSL':_0x21b8d9(0xdf),'mNGvF':'Waiting\x20for\x20locks\x20to\x20release','bfxjG':function(_0x1274e4,_0x25ef07){return _0x1274e4*_0x25ef07;}};if(!this[_0x21b8d9(0x117)])return{'success':!![],'lockValue':null,'lockKey':null};const _0x496f0d=this['buildLockKey']({..._0x1ff95f,'lockType':_0x3e109f['OepyW']}),_0x475970=this[_0x21b8d9(0x10c)]({..._0x1ff95f,'lockType':'read'}),_0x5c2724=this[_0x21b8d9(0x104)]();try{const _0x246602=redisClient[_0x21b8d9(0xe3)]();if(this['strategy']===_0x3e109f[_0x21b8d9(0xd5)]){const _0x2535c9=await _0x246602[_0x21b8d9(0x11a)](_0x496f0d,_0x5c2724,'EX',this[_0x21b8d9(0xe0)],'NX');if(_0x3e109f[_0x21b8d9(0xee)](_0x2535c9,'OK'))return logger[_0x21b8d9(0xce)]({'event':_0x3e109f['mDaQl'],'key':_0x496f0d,'value':_0x5c2724,'strategy':_0x3e109f[_0x21b8d9(0xd5)]},_0x3e109f['gtTZP']),{'success':!![],'lockValue':_0x5c2724,'lockKey':_0x496f0d};return logger[_0x21b8d9(0xce)]({'event':_0x3e109f[_0x21b8d9(0xdd)],'key':_0x496f0d},'WRITE\x20lock\x20rejected\x20-\x20record\x20busy'),{'success':![],'lockValue':null,'lockKey':null};}for(let _0x15f9dc=0x0;_0x15f9dc<this['retryCount'];_0x15f9dc++){const [_0x135b64,_0x25706b]=await Promise['all']([_0x246602[_0x21b8d9(0xde)](_0x475970),_0x246602[_0x21b8d9(0xde)](_0x496f0d)]);if(!_0x25706b&&(!_0x135b64||parseInt(_0x135b64)===0x0)){const _0x277add=await _0x246602[_0x21b8d9(0x11a)](_0x496f0d,_0x5c2724,'EX',this['defaultTTL'],'NX');if(_0x277add==='OK')return logger[_0x21b8d9(0xce)]({'event':'write_lock_acquired','key':_0x496f0d,'value':_0x5c2724,'strategy':_0x3e109f['yMRAG']},_0x3e109f[_0x21b8d9(0xd3)]),{'success':!![],'lockValue':_0x5c2724,'lockKey':_0x496f0d};}logger['debug']({'event':_0x3e109f['cmCSL'],'writeKey':_0x496f0d,'readCount':_0x135b64,'attempt':_0x15f9dc},_0x3e109f['mNGvF']),await this[_0x21b8d9(0xe1)](_0x3e109f['bfxjG'](this['retryDelay'],Math['pow'](0x2,_0x15f9dc)));}return logger[_0x21b8d9(0xf8)]({'event':_0x21b8d9(0x108),'key':_0x496f0d},_0x21b8d9(0xfb)),{'success':![],'lockValue':null,'lockKey':null};}catch(_0x29275e){return logger[_0x21b8d9(0x109)]({'event':_0x21b8d9(0xf7),'error':_0x29275e['message']},'WRITE\x20lock\x20error'),{'success':![],'lockValue':null,'lockKey':null};}}async['releaseLock'](_0x4544af,_0x2de8ef){const _0x1ea3e3=a0_0x8a01d0,_0x43e59a={'wGhEA':':read:','hnIEA':'Cannot\x20release\x20lock\x20-\x20not\x20owner','ocIcW':'lock_release_error'};if(!this['enabled']||!_0x4544af)return!![];try{const _0x2e5023=redisClient['getClient']();if(_0x4544af[_0x1ea3e3(0xf1)](_0x43e59a['wGhEA'])){await _0x2e5023[_0x1ea3e3(0x103)](_0x4544af);const _0x20f8bc=_0x4544af['substring'](0x0,_0x4544af[_0x1ea3e3(0x120)](':')),_0x1c8475=await _0x2e5023[_0x1ea3e3(0xde)](_0x20f8bc);return _0x1c8475&&parseInt(_0x1c8475)>0x0&&await _0x2e5023[_0x1ea3e3(0xf9)](_0x20f8bc),logger['debug']({'event':_0x1ea3e3(0xd9),'key':_0x4544af},_0x1ea3e3(0x10b)),!![];}const _0x51bf6b=_0x1ea3e3(0x101),_0x184660=await _0x2e5023['eval'](_0x51bf6b,0x1,_0x4544af,_0x2de8ef);if(_0x184660===0x1)return logger[_0x1ea3e3(0xce)]({'event':_0x1ea3e3(0xe5),'key':_0x4544af},'WRITE\x20lock\x20released'),!![];return logger['warn']({'event':_0x1ea3e3(0x10d),'key':_0x4544af},_0x43e59a['hnIEA']),![];}catch(_0x140271){return logger[_0x1ea3e3(0x109)]({'event':_0x43e59a['ocIcW'],'key':_0x4544af,'error':_0x140271['message']},_0x1ea3e3(0xd4)),![];}}async[a0_0x8a01d0(0xf0)](_0xa359ca,_0x27285a,_0x3303ff=null){const _0x2b4810=a0_0x8a01d0,_0x166d8c={'LMuPO':function(_0xe72d9a,_0x2bc4df){return _0xe72d9a===_0x2bc4df;},'uIcHd':_0x2b4810(0xeb),'WoRSC':'Lock\x20extend\x20error'};if(!this[_0x2b4810(0x117)]||!_0xa359ca)return!![];try{const _0x4d33ce=redisClient['getClient'](),_0xe65295='\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',_0x14fd12=await _0x4d33ce['eval'](_0xe65295,0x1,_0xa359ca,_0x27285a,_0x3303ff||this['defaultTTL']);if(_0x166d8c[_0x2b4810(0x115)](_0x14fd12,0x1))return logger[_0x2b4810(0xce)]({'event':_0x166d8c[_0x2b4810(0xe2)],'key':_0xa359ca,'ttl':_0x3303ff||this['defaultTTL']},'Lock\x20TTL\x20extended'),!![];return![];}catch(_0x43197f){return logger['error']({'event':'lock_extend_error','key':_0xa359ca,'error':_0x43197f['message']},_0x166d8c['WoRSC']),![];}}[a0_0x8a01d0(0xdb)](){return this['enabled'];}['sleep'](_0x3e63c6){return new Promise(_0x2e7f32=>setTimeout(_0x2e7f32,_0x3e63c6));}async['getLockInfo'](_0x4c5413){const _0x51b73b=a0_0x8a01d0,_0x4d7dae={'IVzep':function(_0xc3a984,_0x4b3f41){return _0xc3a984||_0x4b3f41;}};if(!this['enabled'])return{'enabled':![]};try{const _0x593788=redisClient['getClient'](),_0x1c4b23=this[_0x51b73b(0x10c)]({..._0x4c5413,'lockType':_0x51b73b(0x113)}),_0x5bfcc3=this[_0x51b73b(0x10c)]({..._0x4c5413,'lockType':'read'}),[_0x25920a,_0x4d97ee]=await Promise['all']([_0x593788['get'](_0x1c4b23),_0x593788[_0x51b73b(0xde)](_0x5bfcc3)]);return{'enabled':!![],'writeLock':_0x4d7dae[_0x51b73b(0x11e)](_0x25920a,null),'readCount':parseInt(_0x4d97ee)||0x0,'writeKey':_0x1c4b23,'readKey':_0x5bfcc3};}catch(_0x1f903b){return{'enabled':!![],'error':_0x1f903b['message']};}}}module['exports']=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_0x261a(_0xc60f06,_0x29e58e){_0xc60f06=_0xc60f06-0x106;const _0x47ba85=a0_0x47ba();let _0x261ac5=_0x47ba85[_0xc60f06];if(a0_0x261a['zDUWSS']===undefined){var _0x315e4f=function(_0x4121e0){const _0xd9e40d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1e7ac1='',_0x43e40d='';for(let _0x520304=0x0,_0x4db0e1,_0x5b6431,_0x977010=0x0;_0x5b6431=_0x4121e0['charAt'](_0x977010++);~_0x5b6431&&(_0x4db0e1=_0x520304%0x4?_0x4db0e1*0x40+_0x5b6431:_0x5b6431,_0x520304++%0x4)?_0x1e7ac1+=String['fromCharCode'](0xff&_0x4db0e1>>(-0x2*_0x520304&0x6)):0x0){_0x5b6431=_0xd9e40d['indexOf'](_0x5b6431);}for(let _0x58a6ec=0x0,_0x1a2bf2=_0x1e7ac1['length'];_0x58a6ec<_0x1a2bf2;_0x58a6ec++){_0x43e40d+='%'+('00'+_0x1e7ac1['charCodeAt'](_0x58a6ec)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x43e40d);};a0_0x261a['mGxLag']=_0x315e4f,a0_0x261a['HAFHqK']={},a0_0x261a['zDUWSS']=!![];}const _0x179cd5=_0x47ba85[0x0],_0x40804a=_0xc60f06+_0x179cd5,_0x2c5fa9=a0_0x261a['HAFHqK'][_0x40804a];return!_0x2c5fa9?(_0x261ac5=a0_0x261a['mGxLag'](_0x261ac5),a0_0x261a['HAFHqK'][_0x40804a]=_0x261ac5):_0x261ac5=_0x2c5fa9,_0x261ac5;}const a0_0x3096f5=a0_0x261a;(function(_0x12a533,_0x59421d){const _0x4cd962=a0_0x261a,_0x2f5c13=_0x12a533();while(!![]){try{const _0x2ec9e6=-parseInt(_0x4cd962(0x177))/0x1+parseInt(_0x4cd962(0x140))/0x2+parseInt(_0x4cd962(0x189))/0x3+-parseInt(_0x4cd962(0x1b1))/0x4+-parseInt(_0x4cd962(0x1b6))/0x5+parseInt(_0x4cd962(0x142))/0x6+parseInt(_0x4cd962(0x172))/0x7;if(_0x2ec9e6===_0x59421d)break;else _0x2f5c13['push'](_0x2f5c13['shift']());}catch(_0x3310a4){_0x2f5c13['push'](_0x2f5c13['shift']());}}}(a0_0x47ba,0x8b0fc));const pino=require('pino'),fs=require('fs'),path=require(a0_0x3096f5(0x17d));let logToFile=![],logDir=a0_0x3096f5(0x187),serviceName=a0_0x3096f5(0x136),sqlLogEnabled=![],sqlLogLevel=a0_0x3096f5(0x12d),sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;const prettyPrintOptions={'colorize':!![],'translateTime':'SYS:HH:MM:ss','ignore':a0_0x3096f5(0x12e),'singleLine':![],'levelFirst':!![],'messageFormat':'{msg}','customColors':a0_0x3096f5(0x18e),'hideObject':!![]},isDevelopment=process[a0_0x3096f5(0x110)][a0_0x3096f5(0x1ca)]!==a0_0x3096f5(0x128),logLevel=process[a0_0x3096f5(0x110)]['LOG_LEVEL']||a0_0x3096f5(0x1b9);function a0_0x47ba(){const _0x49e4af=['CgLK','otu0odK2sKfuA2LY','AgvHBhrOq2HLy2S','mtK1mZCYmezSqwfQuq','rxjYB3i','Eu9KwMW','rxfNqxe','qKvhsu4','rermx0nsrufurq','C2vYDMvYx3jLywr5','DhLWzq','DenOzKm','C3rHy2S','u0vsvKLdrv9oqu1f','C3bSAxq','u1fmx0Xpr19qqvjbtvm','Bwv0Ag9K','zw5KCg9PBNrFCMvNAxn0zxjLza','D2fYBMLUzW','cUkvOokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvOWRILzeGievUDMLYB25Tzw50idOG','Ce9rDLa','rLLqrwG','uKHsC3K','Dg9mB3DLCKnHC2u','C3rKu2vYAwfSAxPLCNm','zxHPDa','uhjVy2vZCYbxyxjUAw5NoIa','BMfbz2W','te9hx0rjuG','ig9UihbVCNqG','C2rkAMW','zxjYB3i','u0vmrunu','ChjVAMvJDa','rermx0fmvevs','Bwf0y2G','y3jLzgvUDgLHBa','icbvuKW6icaGia','CgTgtNG','BwTKAxjtEw5J','q09ntuLu','zxHWB3j0CW','CwLYq3a','EwrJCgO','q2vIu3G','ANnVBG','Ag9ZDa','C3vIC3rYAw5N','zxjY','qunusvzf','Dg9ju09tDhjPBMC','nZCXnZu2m3z5sKLuwa','CxvrtMm','D2fYBG','C3rYAw5N','qMrcDva','odK1nJa5t09oCvPl','Cg9YDa','zgjFDhjHBNnHy3rPB24','CgfKrw5K','w1jfrefdvevexq','AxntBg93','Cgf0Aa','vMHswKq','AuTWufe','BejiBvG','u3HWBge','CujjtwS','C3rKvgLTzuz1BMn0Aw9UCW','zgv2zwXVCg1LBNq','qvbqx1zfuLnjt04','u2vYDMvYihn0yxj0Aw5NoIa','lI9SB2DZ','AKTPDeG','mJe0mZuWovfRwu9Yrq','BgvUz3rO','txPzCgm','vxfWB1G','tu9xyM0','Aw5MBZPIBhvLlhDHCM46EwvSBg93lgvYCM9YoNjLzcXKzwj1zZPNCMf5','yxbWlMXVzW','AuXZBNi','t3nkDg4','Dw5Oyw5KBgvKuMvQzwn0Aw9U','zLvOBfy','DhjPBq','rMfPBgvKihrVignYzwf0zsbSB2CGC3rYzwfTCZO','DxnLCG','Dhj1zq','iokvKqRILzeGienVBMzPzYaGicaGidOG','CgLU','CMvXlMHLywrLCNmUyxv0Ag9YAxPHDgLVBG','sMjxs1i','Dw5JyxvNAhrfEgnLChrPB24','oI8V','zMfSC2u','z2v0sgvHzgvYCW','rLbzDum','C2vYDMLJzuLUzM8','rejFueftu1DpuKq','C2vYDMvYx3n0yxj0Aw5N','Aw5JBhvKzxm','wKDxyMi','zxjYB3iUBg9N','C3rHDhvZ','yM9KEq','yLP5vfG','yxbPA2v5','revmrvrf','Bg9N','BuDhqKC','C3nU','BMfTzq','C3rHDhvZq29Kzq','mJe3odq5mMjTvxfxDG','AMrJwK0','CgfZC3DK','Dxb0Aw1L','yxbPx3nLy3jLDa','mZa1mti2merowxjUsW','y29Kzq','ChDK','Aw5MBW','Awj0BKO','ChjPDMf0zwTLEq','ic0G','u0vXrey','zMf0ywW','AxPUzve','zKjYr3u','DKnsz3i','q1jfqvrf','uLvmvLu','BwvZC2fNzq','zgf0ywjHC2vFy29UzMLN','C3rHCNrZv2L0Aa','q1jjveLdquW','w1jfrefdveveoMHHC2HD','D3bSBNe','tK9erv9ftLy','Bgvpzuq','Ahj0Aw1L','w09lxsbtzxj2zxiGCMvHzhKGB24GCg9YDca','zvLyBuG','y3DK','rgT5DeK','vNjQCNy','r2XVyMfSigvYCM9YigHHBMrSzxjZigLUAxrPywXPEMvK','C29Tzq','iokvKqRILzeGifbYB2PLy3qGicaGidOG','wLDxD3C','zw52','B2jQzwn0','uNLJrva','su5trvju','rfjpua','CMvTB3rLqwrKCMvZCW','ms4WlJu','B0jKvue','vfjbtLnbq1rjt05Fq09ntuLu','CKf3C3K','Dg9vChbLCKnHC2u','qKXOCMq','vfjbtLnbq1rjt05FuK9mtejbq0S','C3fSx3f1zxj5','rNHIu20','y3z2','DgvZDa','zgf0ywjHC2u','y29UzMLNrMLSzq','q1votKC','wfH5yue','tI9b','ifTtte9xxq','iokvKqRILzeGifbVCNqGicaGicaGidOG','ChjVzhvJDgLVBG','zMf0ywXFzxjYB3i','AM9PBG','q29HBg4','yvPKz0e','zgvIDwC','CgLKlgHVC3rUyw1LlhnLCNzPy2uSDMvYC2LVBIXLBNySzxzLBNqSBw9KDwXLlhbVCNqSy29UzMLNlgfWAuTLEuvUywjSzwqSCgf0AcX3B3jRAw5NrgLYlgLZugTNlgLZtM9KzvnJCMLWDcXMAwXLlgvTywLSlhr5CguSy29YCYXSB2DNAw5NlgfWAuTLEsXJB3vUDcXLBMrWB2LUDcXYB3v0zq','yMfZzvvYBa','AxnbCNjHEq','vKzczLe','u1fmx0Xpr19ftKfcteve','w1jfrefdveveoNrVA2vUxq','C0jJvKO','y3jLyxrLv3jPDgvtDhjLyw0','CMvZDgzVCMDL','Ahr0Cf9Yzxf1zxn0','y0rJzMO','DxjS','te9hx1rpx0zjteu','vvbeqvrf','ExnqDuq','u1fmx0Xpr19mrvzfta','ChjPDMf0zv9RzxK'];a0_0x47ba=function(){return _0x49e4af;};return a0_0x47ba();}let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':'pino-pretty','options':prettyPrintOptions}:undefined,'base':{'service':'restforge','version':process['env'][a0_0x3096f5(0x185)]||a0_0x3096f5(0x116),'env':process['env'][a0_0x3096f5(0x1ca)]||a0_0x3096f5(0x184)},'timestamp':pino[a0_0x3096f5(0x183)]['isoTime'],'redact':{'paths':[a0_0x3096f5(0x19a),'req.headers[\x22x-api-key\x22]','password','token','apiKey',a0_0x3096f5(0x1a2),'JWT_SECRET'],'censor':'[REDACTED]'},'serializers':{'req':_0xec587c=>({'id':_0xec587c['id'],'method':_0xec587c[a0_0x3096f5(0x14f)],'url':_0xec587c[a0_0x3096f5(0x139)],'path':_0xec587c[a0_0x3096f5(0x17d)],'remoteAddress':_0xec587c['ip']||_0xec587c['connection']?.['remoteAddress']}),'res':_0xe9d4c5=>({'statusCode':_0xe9d4c5['statusCode'],'headers':_0xe9d4c5[a0_0x3096f5(0x19f)]?.()}),'err':pino[a0_0x3096f5(0x157)][a0_0x3096f5(0x16f)]}});function initFileLogging(){const _0x44ebe4=a0_0x3096f5,_0x25fb1b={'sBcVJ':function(_0x435f73,_0x2806fb){return _0x435f73===_0x2806fb;},'DCBaW':'default','gHFJV':function(_0x412b89,_0x390a14){return _0x412b89===_0x390a14;},'RpIHP':_0x44ebe4(0x197),'VFBfQ':function(_0x555a66,_0x24fb17){return _0x555a66!==_0x24fb17;},'quQNc':function(_0x8f466,_0x41bcda){return _0x8f466(_0x41bcda);},'rAwsy':'error.log','xeQMc':function(_0xededeb,_0x5876b5,_0x5a9ad4){return _0xededeb(_0x5876b5,_0x5a9ad4);},'qirCp':_0x44ebe4(0x1b9)};if(fileLoggingInitialized)return;logToFile=_0x25fb1b[_0x44ebe4(0x134)](process['env'][_0x44ebe4(0x13a)],_0x44ebe4(0x197));const _0x32e056=process['env']['RESTFORGE_PROJECT_NAME']||_0x25fb1b['DCBaW'];logDir=process['env'][_0x44ebe4(0x15b)]||'./logs/'+_0x32e056,serviceName=process[_0x44ebe4(0x110)][_0x44ebe4(0x14c)]||'restforge',sqlLogEnabled=_0x25fb1b['gHFJV'](process['env'][_0x44ebe4(0x132)],_0x25fb1b['RpIHP']),sqlLogLevel=process['env'][_0x44ebe4(0x13d)]||_0x44ebe4(0x12d),sqlLogParams=_0x25fb1b[_0x44ebe4(0x131)](process['env'][_0x44ebe4(0x14e)],_0x44ebe4(0x19e)),sqlLogSlowThreshold=_0x25fb1b[_0x44ebe4(0x173)](parseInt,process['env']['SQL_LOG_SLOW_THRESHOLD'])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x523b7b=path['resolve'](process[_0x44ebe4(0x109)](),logDir);try{!fs['existsSync'](_0x523b7b)&&fs[_0x44ebe4(0x166)](_0x523b7b,{'recursive':!![]});}catch(_0x10db7b){console['error']('Failed\x20to\x20create\x20log\x20directory\x20'+_0x523b7b+':',_0x10db7b[_0x44ebe4(0x1c4)]),fileLoggingInitialized=!![];return;}const _0xcab749=path[_0x44ebe4(0x12a)](_0x523b7b,_0x44ebe4(0x18f)),_0x5d6ceb=path['join'](_0x523b7b,_0x25fb1b[_0x44ebe4(0x119)]);try{appLogStream=fs[_0x44ebe4(0x135)](_0xcab749,{'flags':'a'}),errorLogStream=fs[_0x44ebe4(0x135)](_0x5d6ceb,{'flags':'a'}),fileLoggingInitialized=!![];const _0x2bd96d={'event':'file_logging_enabled','logDir':_0x523b7b,'files':[_0x44ebe4(0x18f),_0x44ebe4(0x1a6)]},_0x3c4b72='File\x20logging\x20enabled:\x20'+_0x523b7b;logger[_0x44ebe4(0x1b9)](_0x2bd96d,_0x3c4b72),_0x25fb1b['xeQMc'](writeToFileLog,{..._0x2bd96d,'level':'info','msg':_0x3c4b72,'time':new Date()['toISOString']()},_0x25fb1b[_0x44ebe4(0x169)]);}catch(_0x6b632a){console['error'](_0x44ebe4(0x195),_0x6b632a[_0x44ebe4(0x1c4)]),fileLoggingInitialized=!![];}}function writeToFileLog(_0x20d8e4,_0x359d62){const _0x1dced1=a0_0x3096f5,_0xd4452a={'oBdUA':function(_0x19ab8f,_0x3da419){return _0x19ab8f===_0x3da419;},'mGGBG':_0x1dced1(0x1be)};if(!logToFile||!appLogStream)return;const _0x8d866f={'service':serviceName,..._0x20d8e4},_0x12a280=JSON['stringify'](_0x8d866f)+'\x0a';appLogStream['write'](_0x12a280),(_0xd4452a[_0x1dced1(0x117)](_0x359d62,_0x1dced1(0x15e))||_0xd4452a['oBdUA'](_0x359d62,_0xd4452a[_0x1dced1(0x1ad)]))&&(errorLogStream&&errorLogStream['write'](_0x12a280));}const createRequestLogger=(_0x21217b={})=>{return logger['child'](_0x21217b);},logServerStart=_0x586edc=>{const _0x76b0c8=a0_0x3096f5,_0x1aa491={'JYiOI':'RESTFORGE\x20RUNTIME\x20SERVER','jdcZM':function(_0x1fa2e7,_0x4fa0aa){return _0x1fa2e7-_0x4fa0aa;},'wllER':'Node.js','cSRcY':'NOT\x20ACTIVE','aZdgA':function(_0x3c77d1,_0x356d2a,_0x2cf1c8){return _0x3c77d1(_0x356d2a,_0x2cf1c8);},'BdBuP':_0x76b0c8(0x1b9)},_0x170d0d=_0x1aa491['JYiOI'],_0x133b23=Math['max'](0x0,_0x1aa491[_0x76b0c8(0x1b2)](0x37,_0x170d0d['length'])),_0x162dc5=Math['floor'](_0x133b23/0x2),_0x58291b=_0x133b23-_0x162dc5,_0x3554d0='║'+'\x20'['repeat'](_0x162dc5)+_0x170d0d+'\x20'['repeat'](_0x58291b)+'║',_0x37f747='\x0a╔═══════════════════════════════════════════════════════╗\x0a'+_0x3554d0+_0x76b0c8(0x152)+(_0x586edc['environment']||_0x1aa491['wllER'])['padEnd'](0x26)+_0x76b0c8(0x10e)+(_0x586edc[_0x76b0c8(0x160)]||_0x76b0c8(0x125))[_0x76b0c8(0x17a)](0x26)+_0x76b0c8(0x127)+String(_0x586edc[_0x76b0c8(0x178)]||0xbb8)['padEnd'](0x26)+_0x76b0c8(0x198)+(_0x586edc[_0x76b0c8(0x122)]||'Default')['padEnd'](0x26)+'\x20║\x0a║\x20\x20API\x20Key\x20\x20\x20\x20\x20:\x20'+(_0x586edc['apiKey']?_0x76b0c8(0x170):_0x1aa491['cSRcY'])['padEnd'](0x26)+'\x20║\x0a╚═══════════════════════════════════════════════════════╝';console[_0x76b0c8(0x1ac)](_0x37f747);const _0x37015a={'event':_0x76b0c8(0x1a3),'project':_0x586edc['project'],'port':_0x586edc['port'],'config':_0x586edc[_0x76b0c8(0x122)],'apiKeyEnabled':!!_0x586edc['apiKey']};logger[_0x76b0c8(0x1b9)](_0x37015a),_0x1aa491[_0x76b0c8(0x12c)](writeToFileLog,{..._0x37015a,'level':_0x1aa491[_0x76b0c8(0x176)],'msg':_0x76b0c8(0x186)+_0x586edc['project']+_0x76b0c8(0x15c)+_0x586edc['port'],'time':new Date()[_0x76b0c8(0x171)]()},'info');},logServerReady=_0x517c69=>{const _0xce8764=a0_0x3096f5,_0x5d502c={'IaKpV':_0xce8764(0x1b9)},_0x441a8d={'event':_0xce8764(0x148),'port':_0x517c69['port'],'module':_0x517c69['module'],'healthCheck':_0x517c69['healthCheck'],'serviceInfo':_0x517c69['serviceInfo'],'baseUrl':_0x517c69[_0xce8764(0x12f)]},_0x63930b=_0xce8764(0x107)+_0x517c69['port'];logger['info'](_0x441a8d,_0x63930b),writeToFileLog({..._0x441a8d,'level':_0x5d502c['IaKpV'],'msg':_0x63930b,'time':new Date()['toISOString']()},_0x5d502c['IaKpV']),_0x517c69[_0xce8764(0x141)]&&logger['info']('\x20\x20Health:\x20'+_0x517c69['healthCheck']),_0x517c69['serviceInfo']&&logger[_0xce8764(0x1b9)]('\x20\x20Info:\x20\x20\x20'+_0x517c69[_0xce8764(0x1a1)]),_0x517c69['baseUrl']&&logger['info'](_0xce8764(0x164)+_0x517c69['baseUrl']);},logProjectLoaded=(_0x2b6fe8,_0x3c54be)=>{const _0x116be3=a0_0x3096f5,_0x4f9fef={'event':'project_loaded','project':_0x2b6fe8,'path':_0x3c54be},_0x38b196='[OK]\x20Project\x20loaded:\x20'+_0x2b6fe8;logger[_0x116be3(0x1b9)](_0x4f9fef,_0x38b196),writeToFileLog({..._0x4f9fef,'level':'info','msg':_0x38b196,'time':new Date()[_0x116be3(0x171)]()},'info');},logEndpointRegistered=(_0x31a4e1,_0x38be89)=>{const _0x5b1201=a0_0x3096f5,_0x5cd434={'eYXmH':_0x5b1201(0x150),'fBrGu':_0x5b1201(0x12d)},_0x3dd3cc={'event':_0x5cd434[_0x5b1201(0x108)],'endpoint':_0x31a4e1,'route':_0x38be89},_0x6c9787='\x20\x20→\x20'+_0x31a4e1+':\x20'+_0x38be89;logger[_0x5b1201(0x12d)](_0x3dd3cc,_0x6c9787),writeToFileLog({..._0x3dd3cc,'level':'debug','msg':_0x6c9787,'time':new Date()['toISOString']()},_0x5cd434[_0x5b1201(0x1c0)]);},logDatabaseConfig=_0x151a19=>{const _0x5d479d=a0_0x3096f5,_0x3f0ef0={'qBIMk':function(_0x50e5e3,_0x2d0381,_0xa69bf8){return _0x50e5e3(_0x2d0381,_0xa69bf8);},'FduMh':'debug'},_0x348019={'event':_0x5d479d(0x1c5),'host':_0x151a19['host'],'port':_0x151a19[_0x5d479d(0x178)],'database':_0x151a19[_0x5d479d(0x121)],'type':_0x151a19['type'],'user':_0x151a19[_0x5d479d(0x196)]},_0x565833='Database:\x20'+_0x151a19[_0x5d479d(0x149)]+_0x5d479d(0x19d)+_0x151a19[_0x5d479d(0x16d)]+':'+_0x151a19[_0x5d479d(0x178)]+'/'+_0x151a19['database'];logger['debug'](_0x348019,_0x565833),_0x3f0ef0[_0x5d479d(0x182)](writeToFileLog,{..._0x348019,'level':_0x5d479d(0x12d),'msg':_0x565833,'time':new Date()[_0x5d479d(0x171)]()},_0x3f0ef0['FduMh']);},logRequest=(_0x30e74c,_0x41f10b,_0x230b39)=>{const _0x37d731=a0_0x3096f5,_0x2c98aa={'leOeD':_0x37d731(0x137),'KcJcl':'info','MFnVw':function(_0x5dec24,_0x154daa){return _0x5dec24>=_0x154daa;},'RHRsy':'error','jTZjW':function(_0xb748a6,_0x2dabf0){return _0xb748a6>=_0x2dabf0;},'Sxpla':'warn'},_0x48d63b={'event':_0x2c98aa[_0x37d731(0x1cb)],'method':_0x30e74c[_0x37d731(0x14f)],'path':_0x30e74c['path'],'statusCode':_0x41f10b['statusCode'],'durationMs':_0x230b39,'ip':_0x30e74c['ip']},_0x10442b=_0x30e74c[_0x37d731(0x14f)]+'\x20'+_0x30e74c['path']+_0x37d731(0x1bc)+_0x41f10b['statusCode']+'\x20('+_0x230b39+'ms)';let _0x63ad16=_0x2c98aa['KcJcl'];if(_0x2c98aa['MFnVw'](_0x41f10b[_0x37d731(0x1b0)],0x1f4))_0x63ad16=_0x2c98aa[_0x37d731(0x155)],logger['error'](_0x48d63b,_0x10442b);else _0x2c98aa['jTZjW'](_0x41f10b[_0x37d731(0x1b0)],0x190)?(_0x63ad16=_0x2c98aa[_0x37d731(0x181)],logger['warn'](_0x48d63b,_0x10442b)):logger['info'](_0x48d63b,_0x10442b);writeToFileLog({..._0x48d63b,'level':_0x63ad16,'msg':_0x10442b,'time':new Date()['toISOString']()},_0x63ad16);},SENSITIVE_PARAM_PATTERNS=['password',a0_0x3096f5(0x1b3),a0_0x3096f5(0x1b8),'token','access_token','refresh_token','secret',a0_0x3096f5(0x1b5),'apikey','api_key',a0_0x3096f5(0x163),'credentials',a0_0x3096f5(0x199),'otp',a0_0x3096f5(0x13e),a0_0x3096f5(0x1bb)],redactSensitiveParams=(_0x58d113,_0x4d55fe)=>{const _0x70dc8=a0_0x3096f5,_0x2774b1={'qFvGx':_0x70dc8(0x17b),'cOyjc':_0x70dc8(0x175),'DmqGV':function(_0x38ad15,_0x296068){return _0x38ad15>_0x296068;},'qmIiA':function(_0x1cd5af,_0xe188d3){return _0x1cd5af===_0xe188d3;}};if(!_0x58d113||_0x2774b1['qmIiA'](_0x58d113['length'],0x0))return _0x58d113;const _0xb5e12e=_0x4d55fe['toLowerCase'](),_0x226061=_0xb5e12e['match'](/\(([^)]+)\)\s*values/i);let _0x4eeae6=[];_0x226061&&(_0x4eeae6=_0x226061[0x1][_0x70dc8(0x14d)](',')['map'](_0x574ef9=>_0x574ef9[_0x70dc8(0x194)]()[_0x70dc8(0x156)]()));const _0x4dc73f=_0xb5e12e['match'](/set\s+(.+?)(?:\s+where|$)/i);if(_0x4dc73f){const _0xcbc4cd=_0x4dc73f[0x1],_0x1e4f08=_0xcbc4cd[_0x70dc8(0x162)](/(\w+)\s*=/g);_0x1e4f08&&(_0x4eeae6=_0x1e4f08['map'](_0x34741a=>_0x34741a['replace'](/\s*=/,'')['trim']()[_0x70dc8(0x156)]()));}return _0x58d113['map']((_0x2b9938,_0x37a737)=>{const _0x17ecb1=_0x70dc8;if(_0x4eeae6[_0x37a737]){const _0x40b3d1=_0x4eeae6[_0x37a737],_0x1793a4=SENSITIVE_PARAM_PATTERNS[_0x17ecb1(0x10d)](_0x1094bc=>_0x40b3d1['includes'](_0x1094bc));if(_0x1793a4)return _0x2774b1['qFvGx'];}if(typeof _0x2b9938===_0x2774b1['cOyjc']&&_0x2774b1['DmqGV'](_0x2b9938[_0x17ecb1(0x18a)],0x20)){if(/^[a-zA-Z0-9+/=_.-]+$/['test'](_0x2b9938)&&_0x2b9938['includes']('.'))return _0x17ecb1(0x133);if(/^[a-fA-F0-9]{32,}$/[_0x17ecb1(0x120)](_0x2b9938))return _0x17ecb1(0x1c8);}return _0x2b9938;});},parseQueryMetadata=_0x3f0756=>{const _0x43a7de=a0_0x3096f5,_0x147e49={'xVsyS':'UNKNOWN','JbWKR':_0x43a7de(0x15f),'RycEP':_0x43a7de(0x113),'QgmwO':_0x43a7de(0x13b),'sdJjl':_0x43a7de(0x1ab),'WcNMO':_0x43a7de(0x167),'jSaWv':'ROLLBACK','MOWbm':_0x43a7de(0x11c),'LreWo':_0x43a7de(0x1c2),'CebSx':_0x43a7de(0x147),'jKitH':'ALTER','tChfC':'DDL_DROP'},_0xbbacf4=_0x3f0756[_0x43a7de(0x194)](),_0x5d136e=_0xbbacf4[_0x43a7de(0x11a)]();let _0x83ee93=_0x147e49['xVsyS'],_0x25d5fa=null;if(_0x5d136e['startsWith']('SELECT')){_0x83ee93=_0x147e49[_0x43a7de(0x19b)];const _0x335dba=_0xbbacf4['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x25d5fa=_0x335dba?_0x335dba[0x1]:null;}else{if(_0x5d136e['startsWith'](_0x147e49['RycEP'])){_0x83ee93=_0x147e49[_0x43a7de(0x112)];const _0x545a8d=_0xbbacf4[_0x43a7de(0x162)](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x25d5fa=_0x545a8d?_0x545a8d[0x1]:null;}else{if(_0x5d136e[_0x43a7de(0x1c6)](_0x43a7de(0x13b))){_0x83ee93=_0x147e49['QgmwO'];const _0x2f74a1=_0xbbacf4['match'](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x25d5fa=_0x2f74a1?_0x2f74a1[0x1]:null;}else{if(_0x5d136e['startsWith'](_0x147e49[_0x43a7de(0x15d)])){_0x83ee93=_0x147e49[_0x43a7de(0x15d)];const _0x1af80c=_0xbbacf4['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x25d5fa=_0x1af80c?_0x1af80c[0x1]:null;}else{if(_0x5d136e['startsWith'](_0x43a7de(0x146))||_0x5d136e[_0x43a7de(0x1c6)]('START\x20TRANSACTION'))_0x83ee93='TRANSACTION_BEGIN';else{if(_0x5d136e[_0x43a7de(0x1c6)](_0x147e49['WcNMO']))_0x83ee93=_0x43a7de(0x118);else{if(_0x5d136e['startsWith'](_0x147e49['jSaWv']))_0x83ee93=_0x147e49[_0x43a7de(0x18d)];else{if(_0x5d136e['startsWith'](_0x147e49['LreWo']))_0x83ee93=_0x147e49[_0x43a7de(0x16b)];else{if(_0x5d136e[_0x43a7de(0x1c6)](_0x147e49[_0x43a7de(0x188)]))_0x83ee93=_0x43a7de(0x161);else _0x5d136e['startsWith'](_0x43a7de(0x114))&&(_0x83ee93=_0x147e49[_0x43a7de(0x14a)]);}}}}}}}}return{'type':_0x83ee93,'table':_0x25d5fa};},startQueryTimer=()=>{const _0x27f74b=a0_0x3096f5,_0x4bd05a={'iLsnr':function(_0x50a37a,_0x176e95){return _0x50a37a(_0x176e95);},'naAgl':function(_0x45f96b,_0x22bba9){return _0x45f96b+_0x22bba9;},'DkytI':function(_0x2e0c67,_0x39d891){return _0x2e0c67/_0x39d891;}},_0x6c673a=process[_0x27f74b(0x106)]();return()=>{const _0x4ce5a5=_0x27f74b,[_0x33e83c,_0x1cd647]=process[_0x4ce5a5(0x106)](_0x6c673a);return _0x4bd05a[_0x4ce5a5(0x190)](parseFloat,_0x4bd05a[_0x4ce5a5(0x15a)](_0x33e83c*0x3e8,_0x4bd05a[_0x4ce5a5(0x10a)](_0x1cd647,0xf4240))['toFixed'](0x2));};},logQuery=(_0x483ea2,_0x46d34c=[],_0x126c65={})=>{const _0x36a089=a0_0x3096f5,_0x4e1b03={'iKpPQ':function(_0x48c77a,_0x4b6975){return _0x48c77a>_0x4b6975;},'UqpoX':function(_0x5589d9,_0x4522e4){return _0x5589d9!==_0x4522e4;},'biPix':function(_0x39c4ff,_0x1468c6){return _0x39c4ff>_0x1468c6;},'wplnq':'unknown','caLIL':_0x36a089(0x12d),'dTWrk':_0x36a089(0x126),'OiBnQ':_0x36a089(0x174),'ysPuD':function(_0x1223e8,_0x43faa9){return _0x1223e8===_0x43faa9;},'ibtnJ':_0x36a089(0x1b9)};if(!sqlLogEnabled){logger[_0x36a089(0x12d)]({'event':'db_query','query':_0x483ea2[_0x36a089(0x16e)](0x0,0xc8),'paramCount':_0x46d34c['length']},'DB\x20Query');return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType='postgresql'}=_0x126c65,{type:_0x122878,table:_0x5c61bd}=parseQueryMetadata(_0x483ea2),_0x4eb92f={'event':_0x36a089(0x11d),'queryType':_0x122878,'table':_0x5c61bd,'query':_0x483ea2,'paramCount':_0x46d34c[_0x36a089(0x18a)],'dbType':dbType};sqlLogParams&&_0x4e1b03[_0x36a089(0x17f)](_0x46d34c['length'],0x0)&&(_0x4eb92f['params']=redactSensitiveParams(_0x46d34c,_0x483ea2));_0x4e1b03[_0x36a089(0x18c)](duration,null)&&(_0x4eb92f['durationMs']=duration,_0x4eb92f[_0x36a089(0x17c)]=_0x4e1b03['biPix'](duration,sqlLogSlowThreshold));rowsAffected!==null&&(_0x4eb92f['rowsAffected']=rowsAffected);const _0x8a32a5=_0x5c61bd||_0x4e1b03[_0x36a089(0x1c9)];let _0x238950='['+_0x122878+']\x20'+_0x8a32a5;_0x4e1b03[_0x36a089(0x18c)](duration,null)&&(_0x238950+='\x20('+duration+'ms)');const _0xb19098=duration!==null&&_0x4e1b03['biPix'](duration,sqlLogSlowThreshold);let _0x1817be=_0x4e1b03['caLIL'];if(_0xb19098)_0x238950+=_0x4e1b03['dTWrk'],_0x1817be=_0x4e1b03['OiBnQ'],logger['warn'](_0x4eb92f,_0x238950);else _0x4e1b03[_0x36a089(0x13c)](sqlLogLevel,_0x4e1b03[_0x36a089(0x1ba)])?(_0x1817be='info',logger[_0x36a089(0x1b9)](_0x4eb92f,_0x238950)):logger['debug'](_0x4eb92f,_0x238950);writeToFileLog({..._0x4eb92f,'level':_0x1817be,'msg':_0x238950,'time':new Date()['toISOString']()},_0x1817be);},logTransaction=(_0x11c026,_0x5adf5c)=>{const _0xbb7ecc=a0_0x3096f5,_0x50f679={'ydcpj':_0xbb7ecc(0x179),'lnYcv':'debug'},_0x31ee5d={'event':_0x50f679[_0xbb7ecc(0x16a)],'status':_0x11c026,'queryCount':_0x5adf5c},_0x3a0486='Transaction\x20'+_0x11c026;logger[_0xbb7ecc(0x12d)](_0x31ee5d,_0x3a0486),writeToFileLog({..._0x31ee5d,'level':_0x50f679['lnYcv'],'msg':_0x3a0486,'time':new Date()['toISOString']()},_0x50f679['lnYcv']);},redactObject=_0xded90d=>{const _0x34bb0d=a0_0x3096f5,_0x1818e0={'AUFgn':'password','hCdaz':'passwd','ZGWbb':'token','yOdZl':'secret','BLhrd':_0x34bb0d(0x1aa),'FYPEh':'authorization','VQJNe':_0x34bb0d(0x199),'cDcfj':'private_key','fUhlV':'refresh_token','twbUp':'[REDACTED]','SEqDF':'object'};if(!_0xded90d||typeof _0xded90d!==_0x34bb0d(0x111))return _0xded90d;const _0x4517c2=[_0x1818e0['AUFgn'],_0x1818e0['hCdaz'],'pwd',_0x1818e0[_0x34bb0d(0x1a5)],_0x1818e0[_0x34bb0d(0x144)],_0x1818e0[_0x34bb0d(0x11b)],'api_key',_0x1818e0[_0x34bb0d(0x154)],'creditcard','credit_card',_0x34bb0d(0x11f),_0x34bb0d(0x1ae),_0x1818e0['VQJNe'],_0x1818e0[_0x34bb0d(0x138)],'privatekey',_0x1818e0[_0x34bb0d(0x193)],'access_token'],_0x5e5fe3=Array[_0x34bb0d(0x130)](_0xded90d)?[..._0xded90d]:{..._0xded90d};for(const _0x297264 of Object['keys'](_0x5e5fe3)){const _0x38305f=_0x297264[_0x34bb0d(0x156)]();if(_0x4517c2['some'](_0x268c1b=>_0x38305f[_0x34bb0d(0x1a4)](_0x268c1b)))_0x5e5fe3[_0x297264]=_0x1818e0['twbUp'];else typeof _0x5e5fe3[_0x297264]===_0x1818e0[_0x34bb0d(0x1bd)]&&_0x5e5fe3[_0x297264]!==null&&(_0x5e5fe3[_0x297264]=redactObject(_0x5e5fe3[_0x297264]));}return _0x5e5fe3;},logError=(_0xc92ee0,_0x5595dd={},_0x26833e=null)=>{const _0x329959=a0_0x3096f5,_0x4c109a={'bZyTX':_0x329959(0x15e),'vCRgr':'Error'},_0x236eab={'event':_0x4c109a[_0x329959(0x1a9)],'errorName':_0xc92ee0[_0x329959(0x1af)]||_0x4c109a[_0x329959(0x1c1)],'errorMessage':_0xc92ee0['message'],'errorCode':_0xc92ee0['code']||null,'stack':_0xc92ee0['stack'],..._0x5595dd},_0x20fb9=_0x26833e||'Error:\x20'+_0xc92ee0['message'];logger['error'](_0x236eab,_0x20fb9),writeToFileLog({..._0x236eab,'level':'error','msg':_0x20fb9,'time':new Date()[_0x329959(0x171)]()},_0x4c109a[_0x329959(0x1a9)]);},logFatalError=(_0x27bcf0,_0x35628f={},_0x419a85=null)=>{const _0x55aaa6=a0_0x3096f5,_0x5ea884={'olAOl':_0x55aaa6(0x1c7),'zfCZs':function(_0x44b327,_0x26c31a,_0xe60448){return _0x44b327(_0x26c31a,_0xe60448);},'EqgAq':'error'},_0x4134c5={'event':_0x55aaa6(0x129),'errorName':_0x27bcf0['name']||'Error','errorMessage':_0x27bcf0['message'],'errorCode':_0x27bcf0[_0x55aaa6(0x1b7)]||null,'stack':_0x27bcf0[_0x55aaa6(0x14b)],'severity':_0x5ea884['olAOl'],..._0x35628f},_0x4b9d42=_0x419a85||'FATAL:\x20'+_0x27bcf0['message'];logger[_0x55aaa6(0x1be)](_0x4134c5,_0x4b9d42),_0x5ea884['zfCZs'](writeToFileLog,{..._0x4134c5,'level':'fatal','msg':_0x4b9d42,'time':new Date()[_0x55aaa6(0x171)]()},_0x5ea884[_0x55aaa6(0x145)]);},logHttpError=(_0x2fe8e4,_0x4a7814,_0x63d2e8={})=>{const _0x37a8a2=a0_0x3096f5,_0x4a7f2e={'MzYpc':'http_error','CUNNG':_0x37a8a2(0x143),'rYWSA':'user-agent','lBHmX':'x-request-id','RULVU':function(_0x24c6dc,_0x625cb0){return _0x24c6dc(_0x625cb0);},'Vrjrv':function(_0x3ef969,_0x340e93,_0x5b689b){return _0x3ef969(_0x340e93,_0x5b689b);},'XXyaA':'error','FPYuC':'warn'},_0x1f3793={'event':_0x4a7f2e[_0x37a8a2(0x18b)],'errorName':_0x2fe8e4['name']||_0x4a7f2e[_0x37a8a2(0x123)],'errorMessage':_0x2fe8e4[_0x37a8a2(0x1c4)],'errorCode':_0x2fe8e4[_0x37a8a2(0x1b7)]||_0x2fe8e4['statusCode']||0x1f4,'stack':_0x2fe8e4[_0x37a8a2(0x14b)],'method':_0x4a7814?.[_0x37a8a2(0x14f)],'url':_0x4a7814?.[_0x37a8a2(0x139)]||_0x4a7814?.['originalUrl'],'path':_0x4a7814?.[_0x37a8a2(0x17d)],'ip':_0x4a7814?.['ip']||_0x4a7814?.['connection']?.[_0x37a8a2(0x115)],'userAgent':_0x4a7814?.['get']?.(_0x4a7f2e['rYWSA']),'requestId':_0x4a7814?.['id']||_0x4a7814?.['headers']?.[_0x4a7f2e[_0x37a8a2(0x180)]],'body':_0x4a7814?.[_0x37a8a2(0x1a8)]?_0x4a7f2e[_0x37a8a2(0x1c3)](redactObject,_0x4a7814[_0x37a8a2(0x1a8)]):undefined,'query':_0x4a7814?.['query'],..._0x63d2e8},_0x15d856=_0x2fe8e4[_0x37a8a2(0x1b0)]||_0x2fe8e4[_0x37a8a2(0x1a7)]||0x1f4,_0x21246a='HTTP\x20'+_0x15d856+':\x20'+_0x2fe8e4['message'];_0x15d856>=0x1f4?logger['error'](_0x1f3793,_0x21246a):logger[_0x37a8a2(0x174)](_0x1f3793,_0x21246a),_0x4a7f2e[_0x37a8a2(0x10b)](writeToFileLog,{..._0x1f3793,'level':_0x15d856>=0x1f4?_0x4a7f2e['XXyaA']:_0x4a7f2e[_0x37a8a2(0x1a0)],'msg':_0x21246a,'time':new Date()['toISOString']()},_0x15d856>=0x1f4?_0x4a7f2e[_0x37a8a2(0x124)]:'warn');},logUncaughtError=(_0x2c0918,_0x53d56e)=>{const _0x456df9=a0_0x3096f5,_0x5767a8={'yEnrQ':function(_0x10d449,_0x2d4292){return _0x10d449(_0x2d4292);},'AIguf':_0x456df9(0x1c7),'cdwaI':function(_0x458117,_0xc75cdb,_0x4a1b96){return _0x458117(_0xc75cdb,_0x4a1b96);},'FxbSm':_0x456df9(0x15e)},_0xcab78f={'event':_0x2c0918,'errorName':_0x53d56e?.['name']||'Error','errorMessage':_0x53d56e?.['message']||_0x5767a8['yEnrQ'](String,_0x53d56e),'errorCode':_0x53d56e?.['code']||null,'stack':_0x53d56e?.[_0x456df9(0x14b)],'severity':_0x5767a8['AIguf'],'processId':process[_0x456df9(0x13f)],'memoryUsage':process['memoryUsage'](),'uptime':process[_0x456df9(0x1b4)]()},_0x3c67f8='['+_0x2c0918['toUpperCase']()+']\x20'+(_0x53d56e?.['message']||_0x53d56e);logger[_0x456df9(0x1be)](_0xcab78f,_0x3c67f8),_0x5767a8['cdwaI'](writeToFileLog,{..._0xcab78f,'level':_0x456df9(0x1be),'msg':_0x3c67f8,'time':new Date()['toISOString']()},_0x5767a8[_0x456df9(0x11e)]);},setupGlobalErrorHandlers=()=>{const _0x59bf8c=a0_0x3096f5,_0x2d1b80={'OsJtn':function(_0x4c0f0e,_0x42ea58,_0x35143e){return _0x4c0f0e(_0x42ea58,_0x35143e);},'eMEHm':function(_0x1c3a95,_0x1ca2a3){return _0x1c3a95 instanceof _0x1ca2a3;},'NYTIm':function(_0x198059,_0x1a5f1f){return _0x198059(_0x1a5f1f);},'izneQ':_0x59bf8c(0x192),'dhYYb':'process_warning','uJrwL':'uncaughtException','pkFNx':_0x59bf8c(0x151),'ZWWww':'global_error_handlers_setup','UugAr':function(_0x546e34,_0x49fe3a,_0x18c3e0){return _0x546e34(_0x49fe3a,_0x18c3e0);},'VhRZD':'info'};process['on'](_0x2d1b80['uJrwL'],_0x3aca06=>{const _0x2058ac=_0x59bf8c;logUncaughtError(_0x2058ac(0x19c),_0x3aca06),_0x2d1b80['OsJtn'](setTimeout,()=>{const _0x4b9578=_0x2058ac;process[_0x4b9578(0x158)](0x1);},0x3e8);}),process['on'](_0x2d1b80[_0x59bf8c(0x1bf)],(_0x5df95f,_0xaa07ea)=>{const _0x1112d0=_0x59bf8c,_0x4b71b5=_0x2d1b80['eMEHm'](_0x5df95f,Error)?_0x5df95f:new Error(_0x2d1b80['NYTIm'](String,_0x5df95f));_0x2d1b80[_0x1112d0(0x191)](logUncaughtError,_0x2d1b80['izneQ'],_0x4b71b5);}),process['on'](_0x2d1b80[_0x59bf8c(0x165)],_0x4b8389=>{const _0x2626f1=_0x59bf8c;logger['warn']({'event':_0x2d1b80['dhYYb'],'name':_0x4b8389['name'],'message':_0x4b8389['message'],'stack':_0x4b8389['stack']},_0x2626f1(0x159)+_0x4b8389['message']);});const _0x46834c={'event':_0x2d1b80[_0x59bf8c(0x10f)]},_0x1a3a77=_0x59bf8c(0x10c);logger[_0x59bf8c(0x1b9)](_0x46834c,_0x1a3a77),_0x2d1b80['UugAr'](writeToFileLog,{..._0x46834c,'level':_0x59bf8c(0x1b9),'msg':_0x1a3a77,'time':new Date()[_0x59bf8c(0x171)]()},_0x2d1b80[_0x59bf8c(0x17e)]);},createErrorHandlerMiddleware=()=>{const _0x205a40={'Coaln':function(_0x26d837,_0x3d2f6c,_0x45e3af){return _0x26d837(_0x3d2f6c,_0x45e3af);},'pOQvP':function(_0x707909,_0x23d4fe){return _0x707909>=_0x23d4fe;}};return(_0x5d8be8,_0x19305f,_0x177a0b,_0x3bab63)=>{const _0x478e69=a0_0x261a;_0x205a40[_0x478e69(0x12b)](logHttpError,_0x5d8be8,_0x19305f);const _0x53f6da=_0x5d8be8['statusCode']||_0x5d8be8['status']||0x1f4;_0x177a0b['status'](_0x53f6da)[_0x478e69(0x16c)]({'success':![],'error':_0x205a40[_0x478e69(0x153)](_0x53f6da,0x1f4)?'Internal\x20server\x20error':_0x5d8be8['message'],'requestId':_0x19305f['id']||_0x19305f['headers']?.['x-request-id']||null});};};module[a0_0x3096f5(0x168)]={'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';(function(
|
|
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
|
-
const
|
|
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();
|