@restforgejs/platform 5.1.7 → 5.1.16
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/restforge-hwinfo-linux +0 -0
- package/bin/restforge-hwinfo.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/payload/generate.js +10 -2
- package/generators/cli/schema/apply.js +6 -1
- package/generators/cli/schema/diff.js +6 -1
- package/generators/cli/schema/introspect.js +32 -11
- package/generators/lib/data/db-executor.js +8 -8
- package/generators/lib/data/envelope.js +3 -3
- package/generators/lib/dbschema-kit/apply-engine.js +20 -0
- package/generators/lib/dbschema-kit/dialect/mysql.js +2 -0
- package/generators/lib/dbschema-kit/dialect/oracle.js +2 -0
- package/generators/lib/dbschema-kit/dialect/postgres.js +4 -0
- package/generators/lib/dbschema-kit/dialect/sqlite.js +5 -0
- package/generators/lib/dbschema-kit/diff-engine.js +22 -1
- package/generators/lib/dbschema-kit/diff-reporter.js +293 -272
- package/generators/lib/dbschema-kit/emitters/create-index.js +23 -1
- package/generators/lib/dbschema-kit/emitters/create-table.js +48 -0
- package/generators/lib/dbschema-kit/introspect-mapper.js +154 -2
- package/generators/lib/dbschema-kit/ir-builder.js +84 -1
- package/generators/lib/dbschema-kit/schema-printer.js +20 -0
- package/generators/lib/dbschema-kit/soft-delete-constants.js +111 -0
- package/generators/lib/dbschema-kit/validator/schema-validator.js +231 -0
- package/generators/lib/generators/processor-validation-generator.js +16 -16
- package/generators/lib/payload/payload-runner.js +711 -1
- package/generators/lib/payload/schema-diff.js +7 -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/database-introspector.js +48 -0
- package/generators/lib/utils/env-manager.js +4 -4
- package/generators/lib/utils/file-utils.js +6 -6
- package/generators/lib/utils/payload-processor.js +18 -2
- package/generators/lib/validators/argument-validator.js +2 -2
- package/generators/lib/validators/dashboard-validator.js +35 -1
- package/generators/lib/validators/payload-validator.js +460 -33
- package/integrity-manifest.json +20 -20
- package/package.json +2 -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 -0
- package/src/utils/sql-table-extractor.js +1 -0
- 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
- package/generators/lib/utils/sql-table-extractor.js +0 -83
|
@@ -1 +1 @@
|
|
|
1
|
-
function a0_0x4a29(_0x391968,_0x237662){_0x391968=_0x391968-0x1dc;const _0x4bcd12=a0_0x4bcd();let _0x4a2960=_0x4bcd12[_0x391968];if(a0_0x4a29['WtSscA']===undefined){var _0x15cc5b=function(_0x8b403d){const _0x482d6d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2a2bc0='',_0x2fca0f='';for(let _0x24ac9d=0x0,_0x44b523,_0x57459e,_0x5d92d3=0x0;_0x57459e=_0x8b403d['charAt'](_0x5d92d3++);~_0x57459e&&(_0x44b523=_0x24ac9d%0x4?_0x44b523*0x40+_0x57459e:_0x57459e,_0x24ac9d++%0x4)?_0x2a2bc0+=String['fromCharCode'](0xff&_0x44b523>>(-0x2*_0x24ac9d&0x6)):0x0){_0x57459e=_0x482d6d['indexOf'](_0x57459e);}for(let _0x59279e=0x0,_0x54d187=_0x2a2bc0['length'];_0x59279e<_0x54d187;_0x59279e++){_0x2fca0f+='%'+('00'+_0x2a2bc0['charCodeAt'](_0x59279e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2fca0f);};a0_0x4a29['sGfrNc']=_0x15cc5b,a0_0x4a29['VuCvhj']={},a0_0x4a29['WtSscA']=!![];}const _0x21d601=_0x4bcd12[0x0],_0x283a65=_0x391968+_0x21d601,_0x39f7a4=a0_0x4a29['VuCvhj'][_0x283a65];return!_0x39f7a4?(_0x4a2960=a0_0x4a29['sGfrNc'](_0x4a2960),a0_0x4a29['VuCvhj'][_0x283a65]=_0x4a2960):_0x4a2960=_0x39f7a4,_0x4a2960;}const a0_0x8ea4dc=a0_0x4a29;(function(_0x1ed246,_0x45766e){const _0x3cb126=a0_0x4a29,_0x2acb3c=_0x1ed246();while(!![]){try{const _0x31fa83=parseInt(_0x3cb126(0x226))/0x1*(-parseInt(_0x3cb126(0x22c))/0x2)+-parseInt(_0x3cb126(0x1e2))/0x3*(parseInt(_0x3cb126(0x21a))/0x4)+parseInt(_0x3cb126(0x221))/0x5+-parseInt(_0x3cb126(0x216))/0x6+parseInt(_0x3cb126(0x22b))/0x7+-parseInt(_0x3cb126(0x215))/0x8*(parseInt(_0x3cb126(0x20f))/0x9)+parseInt(_0x3cb126(0x1f8))/0xa;if(_0x31fa83===_0x45766e)break;else _0x2acb3c['push'](_0x2acb3c['shift']());}catch(_0x548239){_0x2acb3c['push'](_0x2acb3c['shift']());}}}(a0_0x4bcd,0x721d9));const redisClient=require(a0_0x8ea4dc(0x1df)),{logger}=require(a0_0x8ea4dc(0x224)),{v4:uuidv4}=require(a0_0x8ea4dc(0x209));class LockManager{constructor(){const _0x2cf802=a0_0x8ea4dc,_0x24b445='0|1|6|3|7|4|2|5'['split']('|');let _0x345ee9=0x0;while(!![]){switch(_0x24b445[_0x345ee9++]){case'0':this[_0x2cf802(0x1dd)]=null;continue;case'1':this['_enabled']=null;continue;case'2':this['_workerId']=null;continue;case'3':this['_retryCount']=null;continue;case'4':this['_strategy']=null;continue;case'5':this[_0x2cf802(0x1f0)]=![];continue;case'6':this['_defaultTTL']=null;continue;case'7':this['_retryDelay']=null;continue;}break;}}['_initConfig'](){const _0x4b0ba3=a0_0x8ea4dc,_0x50b91d={'vulmf':function(_0x1d428f,_0x2ecfaa){return _0x1d428f===_0x2ecfaa;},'VxbiA':'true','lMtdq':function(_0x5cfb43,_0x146f29,_0xcb08e7){return _0x5cfb43(_0x146f29,_0xcb08e7);},'vtahA':function(_0x37ab2b,_0x296912,_0x146298){return _0x37ab2b(_0x296912,_0x146298);},'ELVBe':_0x4b0ba3(0x208)};this[_0x4b0ba3(0x1dd)]=_0x4b0ba3(0x22a),this['_enabled']=_0x50b91d['vulmf'](process['env']['LOCK_DISTRIBUTED_ENABLED'],_0x50b91d['VxbiA']),this[_0x4b0ba3(0x229)]=_0x50b91d[_0x4b0ba3(0x218)](parseInt,process[_0x4b0ba3(0x1ea)][_0x4b0ba3(0x1e4)],0xa)||0xa,this[_0x4b0ba3(0x21e)]=_0x50b91d[_0x4b0ba3(0x20b)](parseInt,process['env']['LOCK_DISTRIBUTED_RETRY'],0xa)||0x3,this[_0x4b0ba3(0x1fe)]=parseInt(process['env'][_0x4b0ba3(0x1de)],0xa)||0x64,this['_strategy']=process[_0x4b0ba3(0x1ea)][_0x4b0ba3(0x1ec)]||_0x50b91d[_0x4b0ba3(0x200)],this['_workerId']='worker-'+process[_0x4b0ba3(0x1ef)],this[_0x4b0ba3(0x1f0)]=!![],logger['info']({'event':_0x4b0ba3(0x20e),'enabled':this['_enabled'],'strategy':this[_0x4b0ba3(0x206)],'ttl':this['_defaultTTL'],'retryCount':this[_0x4b0ba3(0x21e)],'retryDelay':this['_retryDelay'],'workerId':this['_workerId']},'Lock\x20configuration\x20initialized\x20-\x20enabled:\x20'+this['_enabled']+_0x4b0ba3(0x1fc)+this['_strategy']);}['_ensureInitialized'](){const _0x4413ab=a0_0x8ea4dc;!this[_0x4413ab(0x1f0)]&&this['_initConfig']();}get['prefix'](){return this['_ensureInitialized'](),this['_prefix'];}get[a0_0x8ea4dc(0x1f6)](){const _0x1f4679=a0_0x8ea4dc;return this[_0x1f4679(0x1fa)](),this[_0x1f4679(0x20a)];}get['defaultTTL'](){return this['_ensureInitialized'](),this['_defaultTTL'];}get['retryCount'](){const _0x18ae49=a0_0x8ea4dc;return this[_0x18ae49(0x1fa)](),this['_retryCount'];}get[a0_0x8ea4dc(0x22e)](){const _0x4eedac=a0_0x8ea4dc;return this['_ensureInitialized'](),this[_0x4eedac(0x1fe)];}get['strategy'](){return this['_ensureInitialized'](),this['_strategy'];}get[a0_0x8ea4dc(0x21b)](){const _0x3bf591=a0_0x8ea4dc;return this[_0x3bf591(0x1fa)](),this[_0x3bf591(0x205)];}['buildLockKey'](_0x5bbd4d){const _0xc3a222=a0_0x8ea4dc,{module:_0x3e0c3f,endpoint:_0x2cd0f6,lockType:_0x245cf7,recordId:_0x69003}=_0x5bbd4d;if(_0x69003)return''+this['prefix']+_0x3e0c3f+':'+_0x2cd0f6+':'+_0x69003+':'+_0x245cf7;return''+this[_0xc3a222(0x20c)]+_0x3e0c3f+':'+_0x2cd0f6+':'+_0x245cf7;}[a0_0x8ea4dc(0x1f1)](){const _0x22b99b=a0_0x8ea4dc;return this['workerId']+':'+uuidv4()+':'+Date[_0x22b99b(0x213)]();}async[a0_0x8ea4dc(0x227)](_0xb935e5){const _0x43616e=a0_0x8ea4dc,_0x19c9ae={'jSgCr':'read','CFQqm':function(_0xe65893,_0x16d83c){return _0xe65893<_0x16d83c;},'coMTa':'read_lock_acquired','cgjge':'READ\x20lock\x20acquired','nnNWV':_0x43616e(0x225),'cVJyt':'Waiting\x20for\x20WRITE\x20lock\x20to\x20release','NOrzi':_0x43616e(0x1e3),'UcuLk':'read_lock_error'};if(!this['enabled'])return{'success':!![],'lockValue':null,'lockKey':null};const _0x511a67=this[_0x43616e(0x1e0)]({..._0xb935e5,'lockType':'write'}),_0x101d12=this[_0x43616e(0x1e0)]({..._0xb935e5,'lockType':_0x19c9ae['jSgCr']}),_0x5bd094=this[_0x43616e(0x1f1)]();try{const _0x55aaa9=redisClient['getClient']();for(let _0x39f8fc=0x0;_0x19c9ae['CFQqm'](_0x39f8fc,this['retryCount']);_0x39f8fc++){const _0x3fa434=await _0x55aaa9[_0x43616e(0x1f4)](_0x511a67);if(!_0x3fa434){await _0x55aaa9['incr'](_0x101d12),await _0x55aaa9['expire'](_0x101d12,this[_0x43616e(0x1e9)]);const _0x35fbae=_0x101d12+':'+_0x5bd094;return await _0x55aaa9['setex'](_0x35fbae,this[_0x43616e(0x1e9)],_0x5bd094),logger[_0x43616e(0x223)]({'event':_0x19c9ae['coMTa'],'key':_0x101d12,'value':_0x5bd094},_0x19c9ae['cgjge']),{'success':!![],'lockValue':_0x5bd094,'lockKey':_0x35fbae};}logger['debug']({'event':_0x19c9ae['nnNWV'],'writeKey':_0x511a67,'attempt':_0x39f8fc},_0x19c9ae['cVJyt']),await this[_0x43616e(0x1f9)](this[_0x43616e(0x22e)]*Math['pow'](0x2,_0x39f8fc));}return logger['warn']({'event':_0x19c9ae['NOrzi'],'key':_0x101d12},_0x43616e(0x1e7)),{'success':![],'lockValue':null,'lockKey':null};}catch(_0x40734d){return logger['error']({'event':_0x19c9ae['UcuLk'],'error':_0x40734d[_0x43616e(0x207)]},'READ\x20lock\x20error'),{'success':![],'lockValue':null,'lockKey':null};}}async[a0_0x8ea4dc(0x1dc)](_0x23a143){const _0x22228b=a0_0x8ea4dc,_0x42a72d={'bqERP':'write','ySqgV':'read','bwuIo':function(_0x34d255,_0x5a2d35){return _0x34d255===_0x5a2d35;},'eZUET':'write_lock_acquired','aqada':'reject','ctiRc':_0x22228b(0x222),'dZruV':'write_lock_rejected','zMuSw':function(_0x4c09ef,_0x507cb6){return _0x4c09ef(_0x507cb6);},'ddsgK':_0x22228b(0x208),'nYPrv':_0x22228b(0x1fd),'KuHVv':'Waiting\x20for\x20locks\x20to\x20release','DuuqZ':function(_0xf0bea7,_0x43c2f1){return _0xf0bea7*_0x43c2f1;}};if(!this['enabled'])return{'success':!![],'lockValue':null,'lockKey':null};const _0x40b5ea=this['buildLockKey']({..._0x23a143,'lockType':_0x42a72d['bqERP']}),_0x2e9544=this['buildLockKey']({..._0x23a143,'lockType':_0x42a72d[_0x22228b(0x1f7)]}),_0x11a4b5=this[_0x22228b(0x1f1)]();try{const _0x1486af=redisClient[_0x22228b(0x1f2)]();if(this['strategy']===_0x22228b(0x219)){const _0x28f4fa=await _0x1486af['set'](_0x40b5ea,_0x11a4b5,'EX',this[_0x22228b(0x1e9)],'NX');if(_0x42a72d['bwuIo'](_0x28f4fa,'OK'))return logger['debug']({'event':_0x42a72d[_0x22228b(0x1ed)],'key':_0x40b5ea,'value':_0x11a4b5,'strategy':_0x42a72d['aqada']},_0x42a72d[_0x22228b(0x1f3)]),{'success':!![],'lockValue':_0x11a4b5,'lockKey':_0x40b5ea};return logger[_0x22228b(0x223)]({'event':_0x42a72d['dZruV'],'key':_0x40b5ea},_0x22228b(0x20d)),{'success':![],'lockValue':null,'lockKey':null};}for(let _0xd5560a=0x0;_0xd5560a<this['retryCount'];_0xd5560a++){const [_0x413570,_0x3dab3d]=await Promise['all']([_0x1486af[_0x22228b(0x1f4)](_0x2e9544),_0x1486af['get'](_0x40b5ea)]);if(!_0x3dab3d&&(!_0x413570||_0x42a72d[_0x22228b(0x1eb)](parseInt,_0x413570)===0x0)){const _0x2f7785=await _0x1486af['set'](_0x40b5ea,_0x11a4b5,'EX',this[_0x22228b(0x1e9)],'NX');if(_0x2f7785==='OK')return logger['debug']({'event':_0x42a72d['eZUET'],'key':_0x40b5ea,'value':_0x11a4b5,'strategy':_0x42a72d['ddsgK']},_0x42a72d[_0x22228b(0x1e5)]),{'success':!![],'lockValue':_0x11a4b5,'lockKey':_0x40b5ea};}logger['debug']({'event':'write_lock_waiting','writeKey':_0x40b5ea,'readCount':_0x413570,'attempt':_0xd5560a},_0x42a72d[_0x22228b(0x1e8)]),await this[_0x22228b(0x1f9)](_0x42a72d[_0x22228b(0x1e1)](this[_0x22228b(0x22e)],Math['pow'](0x2,_0xd5560a)));}return logger['warn']({'event':'write_lock_timeout','key':_0x40b5ea},_0x22228b(0x214)),{'success':![],'lockValue':null,'lockKey':null};}catch(_0x38e37e){return logger[_0x22228b(0x1e6)]({'event':_0x22228b(0x201),'error':_0x38e37e[_0x22228b(0x207)]},_0x22228b(0x22d)),{'success':![],'lockValue':null,'lockKey':null};}}async['releaseLock'](_0x44a584,_0x5df27c){const _0x1f70bf=a0_0x8ea4dc,_0x5207ed={'rFgKh':':read:','LbcQH':function(_0x4c2ac7,_0x3abd0c){return _0x4c2ac7===_0x3abd0c;},'oOSJZ':'write_lock_released'};if(!this[_0x1f70bf(0x1f6)]||!_0x44a584)return!![];try{const _0x4c7c9e=redisClient[_0x1f70bf(0x1f2)]();if(_0x44a584[_0x1f70bf(0x210)](_0x5207ed['rFgKh'])){await _0x4c7c9e[_0x1f70bf(0x21c)](_0x44a584);const _0x3c4d94=_0x44a584[_0x1f70bf(0x211)](0x0,_0x44a584[_0x1f70bf(0x1f5)](':')),_0x36dcdc=await _0x4c7c9e['get'](_0x3c4d94);return _0x36dcdc&&parseInt(_0x36dcdc)>0x0&&await _0x4c7c9e['decr'](_0x3c4d94),logger[_0x1f70bf(0x223)]({'event':'read_lock_released','key':_0x44a584},_0x1f70bf(0x217)),!![];}const _0x4b4add=_0x1f70bf(0x202),_0x5aeea8=await _0x4c7c9e['eval'](_0x4b4add,0x1,_0x44a584,_0x5df27c);if(_0x5207ed['LbcQH'](_0x5aeea8,0x1))return logger[_0x1f70bf(0x223)]({'event':_0x5207ed['oOSJZ'],'key':_0x44a584},_0x1f70bf(0x1ee)),!![];return logger[_0x1f70bf(0x1fb)]({'event':_0x1f70bf(0x203),'key':_0x44a584},'Cannot\x20release\x20lock\x20-\x20not\x20owner'),![];}catch(_0x1f0b1c){return logger[_0x1f70bf(0x1e6)]({'event':_0x1f70bf(0x1ff),'key':_0x44a584,'error':_0x1f0b1c[_0x1f70bf(0x207)]},_0x1f70bf(0x220)),![];}}async['extendLock'](_0x12df37,_0x295364,_0x391d78=null){const _0x1a6dd8=a0_0x8ea4dc,_0x4887cf={'iHdyp':function(_0x52dab5,_0x18ec16){return _0x52dab5===_0x18ec16;}};if(!this[_0x1a6dd8(0x1f6)]||!_0x12df37)return!![];try{const _0x43e1ce=redisClient['getClient'](),_0x1dfcda='\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',_0x51a9a=await _0x43e1ce['eval'](_0x1dfcda,0x1,_0x12df37,_0x295364,_0x391d78||this['defaultTTL']);if(_0x4887cf['iHdyp'](_0x51a9a,0x1))return logger[_0x1a6dd8(0x223)]({'event':_0x1a6dd8(0x21d),'key':_0x12df37,'ttl':_0x391d78||this['defaultTTL']},_0x1a6dd8(0x21f)),!![];return![];}catch(_0xe8d169){return logger[_0x1a6dd8(0x1e6)]({'event':'lock_extend_error','key':_0x12df37,'error':_0xe8d169['message']},'Lock\x20extend\x20error'),![];}}['isEnabled'](){const _0x48b61f=a0_0x8ea4dc;return this[_0x48b61f(0x1f6)];}[a0_0x8ea4dc(0x1f9)](_0x1092f3){return new Promise(_0x576e5c=>setTimeout(_0x576e5c,_0x1092f3));}async['getLockInfo'](_0x38a4ee){const _0x7ced1e=a0_0x8ea4dc,_0xaa0fc2={'qMDEY':'write','zvzNj':'read','ziLtx':function(_0x3c02a9,_0x25030b){return _0x3c02a9||_0x25030b;},'ZEjUV':function(_0x5421f7,_0x1db388){return _0x5421f7(_0x1db388);}};if(!this['enabled'])return{'enabled':![]};try{const _0x1e53bd=redisClient[_0x7ced1e(0x1f2)](),_0x4d3ab0=this[_0x7ced1e(0x1e0)]({..._0x38a4ee,'lockType':_0xaa0fc2['qMDEY']}),_0x1fbc7b=this['buildLockKey']({..._0x38a4ee,'lockType':_0xaa0fc2[_0x7ced1e(0x204)]}),[_0x236c38,_0x44cd23]=await Promise['all']([_0x1e53bd['get'](_0x4d3ab0),_0x1e53bd[_0x7ced1e(0x1f4)](_0x1fbc7b)]);return{'enabled':!![],'writeLock':_0xaa0fc2[_0x7ced1e(0x228)](_0x236c38,null),'readCount':_0xaa0fc2[_0x7ced1e(0x212)](parseInt,_0x44cd23)||0x0,'writeKey':_0x4d3ab0,'readKey':_0x1fbc7b};}catch(_0x58333e){return{'enabled':!![],'error':_0x58333e['message']};}}}module['exports']=new LockManager();function a0_0x4bcd(){const _0x15eb2f=['x3jLDhj5q291BNq','tg9JAYbuveWGzxH0zw5Kzwq','tg9JAYbYzwXLyxnLigvYCM9Y','mtC4nZa5nwHpA21wsW','v1jjveuGBg9JAYbHy3f1AxjLzcaOCMvQzwn0ig1VzguP','zgvIDwC','lI9SB2DNzxi','CMvHzf9SB2nRx3DHAxrPBMC','nZyYntq0B1PmCgjl','ywnXDwLYzvjLywrmB2nR','EMLmDhG','x2rLzMf1BhruveW','CMy6Bg9JAZO','mJeXnte5mhPoC011Aa','mLHqAfPtDW','v1jjveuGBg9JAYbLCNjVCG','CMv0CNLezwXHEq','ywnXDwLYzvDYAxrLtg9JAW','x3bYzwzPEa','te9ds19esvnuuKLcvvrfrf9srvrswv9eruXbwq','lI9YzwrPCY1JBgLLBNq','yNvPBgrmB2nRs2v5','rhv1CvO','mtm3mtqYm1PfyvDdqW','CMvHzf9SB2nRx3rPBwvVDxq','te9ds19esvnuuKLcvvrfrf9uveW','BLLqCNy','zxjYB3i','uKvbrcbSB2nRigfJCxvPCMuGDgLTzw91Da','s3vivNy','zgvMyxvSDfruta','zw52','EK11u3C','te9ds19esvnuuKLcvvrfrf9tvfjbvevhwq','zvPvrvq','v1jjveuGBg9JAYbYzwXLyxnLza','CgLK','x2LUAxrPywXPEMvK','z2vUzxjHDgvmB2nRvMfSDwu','z2v0q2XPzw50','y3rPuMm','z2v0','BgfZDeLUzgv4t2y','zw5HyMXLza','EvnXz1y','mJq5nZy2mtboruzluu0','C2XLzxa','x2vUC3vYzuLUAxrPywXPEMvK','D2fYBG','lcbZDhjHDgvNEtOG','v1jjveuGBg9JAYbHy3f1AxjLzcaOCMv0CNKGBw9KzsK','x3jLDhj5rgvSyxK','Bg9JA19YzwXLyxnLx2vYCM9Y','ruXwqMu','D3jPDgvFBg9JA19LCNjVCG','cIaGicaGicaGAwyGCMvKAxmUy2fSBcGIz2v0iIWGs0vzu1SXxsKGpt0GqvjhvLSXxsb0AgvUcIaGicaGicaGicbYzxr1CM4GCMvKAxmUy2fSBcGIzgvSiIWGs0vzu1SXxsKkicaGicaGicbLBhnLcIaGicaGicaGicbYzxr1CM4GmaOGicaGicaGigvUzaOGicaGica','Bg9JA19YzwXLyxnLx25VDf9VD25LCG','ENz6tMO','x3DVCMTLCKLK','x3n0CMf0zwD5','BwvZC2fNzq','CMv0CNK','DxvPza','x2vUywjSzwq','DNrHAee','ChjLzML4','v1jjveuGBg9JAYbYzwPLy3rLzcaTihjLy29YzcbIDxn5','Bg9JA19JB25MAwDFAw5PDa','ndvJEKf0whq','Aw5JBhvKzxm','C3vIC3rYAw5N','wKvQvvy','BM93','v1jjveuGBg9JAYbHy3f1AxjLihrPBwvVDxq','ndKXntuYtePgqLnw','ndiZndCYmMHxtvbKCW','uKvbrcbSB2nRihjLBgvHC2vK','Be10zhe','CMvQzwn0','oerkDhfrDa','D29YA2vYswq','zgvS','Bg9JA19LEhrLBMrLza'];a0_0x4bcd=function(){return _0x15eb2f;};return a0_0x4bcd();}
|
|
1
|
+
const a0_0x4b7b72=a0_0x1dbc;(function(_0x22072d,_0x58ff32){const _0xc76b3e=a0_0x1dbc,_0x1ba020=_0x22072d();while(!![]){try{const _0x3d4739=parseInt(_0xc76b3e(0x19a))/0x1+parseInt(_0xc76b3e(0x169))/0x2*(-parseInt(_0xc76b3e(0x167))/0x3)+-parseInt(_0xc76b3e(0x170))/0x4+-parseInt(_0xc76b3e(0x163))/0x5+parseInt(_0xc76b3e(0x183))/0x6+-parseInt(_0xc76b3e(0x1af))/0x7+parseInt(_0xc76b3e(0x1a7))/0x8;if(_0x3d4739===_0x58ff32)break;else _0x1ba020['push'](_0x1ba020['shift']());}catch(_0x76fd5a){_0x1ba020['push'](_0x1ba020['shift']());}}}(a0_0x488d,0x1e297));const redisClient=require('./redis-client'),{logger}=require(a0_0x4b7b72(0x177)),{v4:uuidv4}=require(a0_0x4b7b72(0x1ae));function a0_0x1dbc(_0x1aba52,_0x5bcbdd){_0x1aba52=_0x1aba52-0x160;const _0x488d5f=a0_0x488d();let _0x1dbcc9=_0x488d5f[_0x1aba52];if(a0_0x1dbc['AAloGe']===undefined){var _0x34d0b0=function(_0x3e34db){const _0x29a188='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5d11d5='',_0x5ce419='';for(let _0x5a064f=0x0,_0x3958c6,_0x3172f2,_0x5b82d4=0x0;_0x3172f2=_0x3e34db['charAt'](_0x5b82d4++);~_0x3172f2&&(_0x3958c6=_0x5a064f%0x4?_0x3958c6*0x40+_0x3172f2:_0x3172f2,_0x5a064f++%0x4)?_0x5d11d5+=String['fromCharCode'](0xff&_0x3958c6>>(-0x2*_0x5a064f&0x6)):0x0){_0x3172f2=_0x29a188['indexOf'](_0x3172f2);}for(let _0x1bc090=0x0,_0x4efcbb=_0x5d11d5['length'];_0x1bc090<_0x4efcbb;_0x1bc090++){_0x5ce419+='%'+('00'+_0x5d11d5['charCodeAt'](_0x1bc090)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5ce419);};a0_0x1dbc['uKwoiL']=_0x34d0b0,a0_0x1dbc['IIQwfm']={},a0_0x1dbc['AAloGe']=!![];}const _0x5b2308=_0x488d5f[0x0],_0x376d39=_0x1aba52+_0x5b2308,_0x206378=a0_0x1dbc['IIQwfm'][_0x376d39];return!_0x206378?(_0x1dbcc9=a0_0x1dbc['uKwoiL'](_0x1dbcc9),a0_0x1dbc['IIQwfm'][_0x376d39]=_0x1dbcc9):_0x1dbcc9=_0x206378,_0x1dbcc9;}class LockManager{constructor(){const _0x3c92ef=a0_0x4b7b72;this[_0x3c92ef(0x173)]=null,this[_0x3c92ef(0x164)]=null,this[_0x3c92ef(0x1a3)]=null,this['_retryCount']=null,this['_retryDelay']=null,this[_0x3c92ef(0x1b4)]=null,this['_workerId']=null,this['_initialized']=![];}['_initConfig'](){const _0x3df9dd=a0_0x4b7b72,_0x95cbc3={'woOKj':'rf:lock:','SFBRL':function(_0x7420ca,_0x2e022b){return _0x7420ca===_0x2e022b;},'CEpIt':_0x3df9dd(0x1ab),'lSPXT':function(_0x1cfcd2,_0x139b06,_0x1cb3fc){return _0x1cfcd2(_0x139b06,_0x1cb3fc);},'hbWbT':function(_0x449046,_0x58c5ba,_0x4a8e33){return _0x449046(_0x58c5ba,_0x4a8e33);}};this['_prefix']=_0x95cbc3['woOKj'],this[_0x3df9dd(0x164)]=_0x95cbc3['SFBRL'](process['env'][_0x3df9dd(0x17f)],_0x95cbc3['CEpIt']),this[_0x3df9dd(0x1a3)]=_0x95cbc3[_0x3df9dd(0x1b7)](parseInt,process[_0x3df9dd(0x18c)]['LOCK_DISTRIBUTED_TTL'],0xa)||0xa,this['_retryCount']=_0x95cbc3[_0x3df9dd(0x1a6)](parseInt,process['env'][_0x3df9dd(0x17e)],0xa)||0x3,this['_retryDelay']=_0x95cbc3[_0x3df9dd(0x1b7)](parseInt,process['env'][_0x3df9dd(0x19e)],0xa)||0x64,this[_0x3df9dd(0x1b4)]=process['env']['LOCK_DISTRIBUTED_STRATEGY']||_0x3df9dd(0x196),this[_0x3df9dd(0x188)]='worker-'+process[_0x3df9dd(0x18b)],this[_0x3df9dd(0x197)]=!![],logger['info']({'event':_0x3df9dd(0x168),'enabled':this['_enabled'],'strategy':this['_strategy'],'ttl':this[_0x3df9dd(0x1a3)],'retryCount':this['_retryCount'],'retryDelay':this['_retryDelay'],'workerId':this['_workerId']},_0x3df9dd(0x19c)+this['_enabled']+_0x3df9dd(0x184)+this[_0x3df9dd(0x1b4)]);}[a0_0x4b7b72(0x1b3)](){!this['_initialized']&&this['_initConfig']();}get[a0_0x4b7b72(0x198)](){const _0x1d169d=a0_0x4b7b72;return this[_0x1d169d(0x1b3)](),this['_prefix'];}get['enabled'](){const _0x2ddce4=a0_0x4b7b72;return this['_ensureInitialized'](),this[_0x2ddce4(0x164)];}get[a0_0x4b7b72(0x161)](){const _0x11b426=a0_0x4b7b72;return this['_ensureInitialized'](),this[_0x11b426(0x1a3)];}get[a0_0x4b7b72(0x16f)](){const _0x45e626=a0_0x4b7b72;return this[_0x45e626(0x1b3)](),this['_retryCount'];}get[a0_0x4b7b72(0x179)](){const _0x33e165=a0_0x4b7b72;return this[_0x33e165(0x1b3)](),this['_retryDelay'];}get[a0_0x4b7b72(0x162)](){const _0x1cb3f3=a0_0x4b7b72;return this[_0x1cb3f3(0x1b3)](),this[_0x1cb3f3(0x1b4)];}get[a0_0x4b7b72(0x19f)](){const _0x44d77a=a0_0x4b7b72;return this[_0x44d77a(0x1b3)](),this['_workerId'];}[a0_0x4b7b72(0x17b)](_0x950b7e){const {module:_0x1c8be6,endpoint:_0x463bdc,lockType:_0x48106f,recordId:_0x1f646c}=_0x950b7e;if(_0x1f646c)return''+this['prefix']+_0x1c8be6+':'+_0x463bdc+':'+_0x1f646c+':'+_0x48106f;return''+this['prefix']+_0x1c8be6+':'+_0x463bdc+':'+_0x48106f;}['generateLockValue'](){const _0xd9cf80=a0_0x4b7b72,_0x6c86de={'yCqpK':function(_0x1d96b6){return _0x1d96b6();}};return this[_0xd9cf80(0x19f)]+':'+_0x6c86de[_0xd9cf80(0x17d)](uuidv4)+':'+Date[_0xd9cf80(0x187)]();}async[a0_0x4b7b72(0x189)](_0x51ef47){const _0x399717=a0_0x4b7b72,_0x338b1b={'GWJwg':'read','EbFSf':'READ\x20lock\x20acquired','IGLQC':_0x399717(0x19b),'kHrJF':'Waiting\x20for\x20WRITE\x20lock\x20to\x20release','QuaXi':'READ\x20lock\x20acquire\x20timeout','CkUXi':'READ\x20lock\x20error'};if(!this[_0x399717(0x1ac)])return{'success':!![],'lockValue':null,'lockKey':null};const _0x253bbe=this['buildLockKey']({..._0x51ef47,'lockType':'write'}),_0x47b6d7=this[_0x399717(0x17b)]({..._0x51ef47,'lockType':_0x338b1b['GWJwg']}),_0x2d7cbb=this[_0x399717(0x191)]();try{const _0x45decb=redisClient['getClient']();for(let _0x4c1bb8=0x0;_0x4c1bb8<this['retryCount'];_0x4c1bb8++){const _0x219707=await _0x45decb[_0x399717(0x16d)](_0x253bbe);if(!_0x219707){await _0x45decb[_0x399717(0x16e)](_0x47b6d7),await _0x45decb['expire'](_0x47b6d7,this[_0x399717(0x161)]);const _0x5a8b45=_0x47b6d7+':'+_0x2d7cbb;return await _0x45decb['setex'](_0x5a8b45,this[_0x399717(0x161)],_0x2d7cbb),logger[_0x399717(0x165)]({'event':'read_lock_acquired','key':_0x47b6d7,'value':_0x2d7cbb},_0x338b1b['EbFSf']),{'success':!![],'lockValue':_0x2d7cbb,'lockKey':_0x5a8b45};}logger['debug']({'event':_0x338b1b[_0x399717(0x1a5)],'writeKey':_0x253bbe,'attempt':_0x4c1bb8},_0x338b1b['kHrJF']),await this[_0x399717(0x185)](this[_0x399717(0x179)]*Math['pow'](0x2,_0x4c1bb8));}return logger['warn']({'event':_0x399717(0x1a4),'key':_0x47b6d7},_0x338b1b[_0x399717(0x1b6)]),{'success':![],'lockValue':null,'lockKey':null};}catch(_0x4145ca){return logger['error']({'event':'read_lock_error','error':_0x4145ca[_0x399717(0x1b0)]},_0x338b1b[_0x399717(0x193)]),{'success':![],'lockValue':null,'lockKey':null};}}async[a0_0x4b7b72(0x181)](_0x3ba75b){const _0x35c0a8=a0_0x4b7b72,_0x29b24b={'YNTiy':'reject','olOEb':function(_0xa90e42,_0x4a3e15){return _0xa90e42===_0x4a3e15;},'vLSdJ':'write_lock_acquired','kskVU':_0x35c0a8(0x1a9),'PJFcH':_0x35c0a8(0x1a0),'zGEZE':_0x35c0a8(0x16c),'KUEXr':function(_0x1e558e,_0x55a16f){return _0x1e558e<_0x55a16f;},'TKUHd':function(_0x541900,_0x18dd72){return _0x541900(_0x18dd72);},'yPtAi':'write_lock_timeout','mhTzJ':'write_lock_error'};if(!this['enabled'])return{'success':!![],'lockValue':null,'lockKey':null};const _0x5ef02e=this['buildLockKey']({..._0x3ba75b,'lockType':_0x35c0a8(0x192)}),_0x1d2874=this[_0x35c0a8(0x17b)]({..._0x3ba75b,'lockType':_0x35c0a8(0x16b)}),_0x1764e0=this[_0x35c0a8(0x191)]();try{const _0x1e2d3e=redisClient['getClient']();if(this[_0x35c0a8(0x162)]===_0x29b24b[_0x35c0a8(0x190)]){const _0x2ddd4f=await _0x1e2d3e[_0x35c0a8(0x195)](_0x5ef02e,_0x1764e0,'EX',this['defaultTTL'],'NX');if(_0x29b24b[_0x35c0a8(0x166)](_0x2ddd4f,'OK'))return logger[_0x35c0a8(0x165)]({'event':_0x29b24b[_0x35c0a8(0x182)],'key':_0x5ef02e,'value':_0x1764e0,'strategy':'reject'},_0x29b24b['kskVU']),{'success':!![],'lockValue':_0x1764e0,'lockKey':_0x5ef02e};return logger['debug']({'event':_0x29b24b['PJFcH'],'key':_0x5ef02e},_0x29b24b[_0x35c0a8(0x1a8)]),{'success':![],'lockValue':null,'lockKey':null};}for(let _0x3f310e=0x0;_0x29b24b[_0x35c0a8(0x18d)](_0x3f310e,this[_0x35c0a8(0x16f)]);_0x3f310e++){const [_0x24ae8b,_0x229fd7]=await Promise['all']([_0x1e2d3e['get'](_0x1d2874),_0x1e2d3e[_0x35c0a8(0x16d)](_0x5ef02e)]);if(!_0x229fd7&&(!_0x24ae8b||_0x29b24b['TKUHd'](parseInt,_0x24ae8b)===0x0)){const _0xfaadad=await _0x1e2d3e[_0x35c0a8(0x195)](_0x5ef02e,_0x1764e0,'EX',this['defaultTTL'],'NX');if(_0x29b24b[_0x35c0a8(0x166)](_0xfaadad,'OK'))return logger[_0x35c0a8(0x165)]({'event':_0x35c0a8(0x180),'key':_0x5ef02e,'value':_0x1764e0,'strategy':'retry'},_0x35c0a8(0x199)),{'success':!![],'lockValue':_0x1764e0,'lockKey':_0x5ef02e};}logger['debug']({'event':'write_lock_waiting','writeKey':_0x5ef02e,'readCount':_0x24ae8b,'attempt':_0x3f310e},'Waiting\x20for\x20locks\x20to\x20release'),await this[_0x35c0a8(0x185)](this[_0x35c0a8(0x179)]*Math[_0x35c0a8(0x186)](0x2,_0x3f310e));}return logger['warn']({'event':_0x29b24b[_0x35c0a8(0x178)],'key':_0x5ef02e},'WRITE\x20lock\x20acquire\x20timeout'),{'success':![],'lockValue':null,'lockKey':null};}catch(_0x2a30b1){return logger[_0x35c0a8(0x176)]({'event':_0x29b24b['mhTzJ'],'error':_0x2a30b1[_0x35c0a8(0x1b0)]},_0x35c0a8(0x1a1)),{'success':![],'lockValue':null,'lockKey':null};}}async['releaseLock'](_0xd5a742,_0x4b71cf){const _0x36b91b=a0_0x4b7b72,_0x67884f={'LnjBm':function(_0x20c027,_0x2ca143){return _0x20c027(_0x2ca143);},'UeRvW':_0x36b91b(0x19d),'QfATp':function(_0x2283c9,_0x40009d){return _0x2283c9===_0x40009d;},'DLqkw':'lock_release_error','cqxmK':'Lock\x20release\x20error'};if(!this[_0x36b91b(0x1ac)]||!_0xd5a742)return!![];try{const _0x5224d6=redisClient['getClient']();if(_0xd5a742[_0x36b91b(0x194)](_0x36b91b(0x18e))){await _0x5224d6[_0x36b91b(0x174)](_0xd5a742);const _0x8e1ee2=_0xd5a742['substring'](0x0,_0xd5a742[_0x36b91b(0x1b2)](':')),_0x2778c9=await _0x5224d6[_0x36b91b(0x16d)](_0x8e1ee2);return _0x2778c9&&_0x67884f[_0x36b91b(0x16a)](parseInt,_0x2778c9)>0x0&&await _0x5224d6[_0x36b91b(0x171)](_0x8e1ee2),logger['debug']({'event':_0x67884f['UeRvW'],'key':_0xd5a742},_0x36b91b(0x18f)),!![];}const _0x41e7ae='\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20redis.call(\x22get\x22,\x20KEYS[1])\x20==\x20ARGV[1]\x20then\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20redis.call(\x22del\x22,\x20KEYS[1])\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x200\x0a\x20\x20\x20\x20\x20\x20\x20\x20end\x0a\x20\x20\x20\x20\x20\x20',_0x5937e1=await _0x5224d6[_0x36b91b(0x1a2)](_0x41e7ae,0x1,_0xd5a742,_0x4b71cf);if(_0x67884f['QfATp'](_0x5937e1,0x1))return logger[_0x36b91b(0x165)]({'event':_0x36b91b(0x17c),'key':_0xd5a742},'WRITE\x20lock\x20released'),!![];return logger['warn']({'event':_0x36b91b(0x1b5),'key':_0xd5a742},_0x36b91b(0x17a)),![];}catch(_0x1ac6e5){return logger['error']({'event':_0x67884f[_0x36b91b(0x1ad)],'key':_0xd5a742,'error':_0x1ac6e5['message']},_0x67884f['cqxmK']),![];}}async[a0_0x4b7b72(0x160)](_0x2f6710,_0x44b7a2,_0x2fbdc6=null){const _0x14b38a=a0_0x4b7b72,_0x274fd0={'ViPPM':function(_0x1bf887,_0x521696){return _0x1bf887===_0x521696;}};if(!this['enabled']||!_0x2f6710)return!![];try{const _0x27777b=redisClient[_0x14b38a(0x1aa)](),_0x567163=_0x14b38a(0x18a),_0xbdfc89=await _0x27777b['eval'](_0x567163,0x1,_0x2f6710,_0x44b7a2,_0x2fbdc6||this['defaultTTL']);if(_0x274fd0['ViPPM'](_0xbdfc89,0x1))return logger['debug']({'event':'lock_extended','key':_0x2f6710,'ttl':_0x2fbdc6||this['defaultTTL']},'Lock\x20TTL\x20extended'),!![];return![];}catch(_0x35d0e6){return logger['error']({'event':_0x14b38a(0x1b1),'key':_0x2f6710,'error':_0x35d0e6[_0x14b38a(0x1b0)]},'Lock\x20extend\x20error'),![];}}['isEnabled'](){const _0x1792f7=a0_0x4b7b72;return this[_0x1792f7(0x1ac)];}['sleep'](_0x1402fc){return new Promise(_0xc77edd=>setTimeout(_0xc77edd,_0x1402fc));}async['getLockInfo'](_0x29bb3d){const _0x50fe90=a0_0x4b7b72,_0x164e10={'VLnMB':'write','ZkSZV':_0x50fe90(0x16b),'fHXeE':function(_0x38b1b3,_0x1bc3dd){return _0x38b1b3(_0x1bc3dd);}};if(!this[_0x50fe90(0x1ac)])return{'enabled':![]};try{const _0x1a89d9=redisClient[_0x50fe90(0x1aa)](),_0x3ffb41=this['buildLockKey']({..._0x29bb3d,'lockType':_0x164e10[_0x50fe90(0x175)]}),_0xb50193=this['buildLockKey']({..._0x29bb3d,'lockType':_0x164e10['ZkSZV']}),[_0x1101d6,_0x4b0d3a]=await Promise[_0x50fe90(0x172)]([_0x1a89d9['get'](_0x3ffb41),_0x1a89d9['get'](_0xb50193)]);return{'enabled':!![],'writeLock':_0x1101d6||null,'readCount':_0x164e10['fHXeE'](parseInt,_0x4b0d3a)||0x0,'writeKey':_0x3ffb41,'readKey':_0xb50193};}catch(_0xb47cb3){return{'enabled':!![],'error':_0xb47cb3['message']};}}}function a0_0x488d(){const _0x1b309f=['vKXUtui','zxjYB3i','lI9SB2DNzxi','Evb0qwK','CMv0CNLezwXHEq','q2fUBM90ihjLBgvHC2uGBg9JAYaTig5VDcbVD25LCG','yNvPBgrmB2nRs2v5','D3jPDgvFBg9JA19YzwXLyxnLza','EunXCeS','te9ds19esvnuuKLcvvrfrf9srvrswq','te9ds19esvnuuKLcvvrfrf9ftKfcteve','D3jPDgvFBg9JA19Hy3f1AxjLza','ywnXDwLYzvDYAxrLtg9JAW','DKXtzeO','odmWnty4ALDcwMnf','lcbZDhjHDgvNEtOG','C2XLzxa','Cg93','BM93','x3DVCMTLCKLK','ywnXDwLYzvjLywrmB2nR','cIaGicaGicaGAwyGCMvKAxmUy2fSBcGIz2v0iIWGs0vzu1SXxsKGpt0GqvjhvLSXxsb0AgvUcIaGicaGicaGicbYzxr1CM4GCMvKAxmUy2fSBcGIzxHWAxjLiIWGs0vzu1SXxsWGqvjhvLSYxsKkicaGicaGicbLBhnLcIaGicaGicaGicbYzxr1CM4GmaOGicaGicaGigvUzaOGicaGica','CgLK','zw52','s1vfwhi','oNjLywq6','uKvbrcbSB2nRihjLBgvHC2vK','wu5uAxK','z2vUzxjHDgvmB2nRvMfSDwu','D3jPDgu','q2TvwgK','Aw5JBhvKzxm','C2v0','CMv0CNK','x2LUAxrPywXPEMvK','ChjLzML4','v1jjveuGBg9JAYbHy3f1AxjLzcaOCMv0CNKGBw9KzsK','mJi0ndmWu2DbuNLM','CMvHzf9SB2nRx3DHAxrPBMC','tg9JAYbJB25MAwD1CMf0Aw9UigLUAxrPywXPEMvKic0Gzw5HyMXLzdOG','CMvHzf9SB2nRx3jLBgvHC2vK','te9ds19esvnuuKLcvvrfrf9srvrswv9eruXbwq','D29YA2vYswq','D3jPDgvFBg9JA19YzwPLy3rLza','v1jjveuGBg9JAYbLCNjVCG','zxzHBa','x2rLzMf1BhruveW','CMvHzf9SB2nRx3rPBwvVDxq','suDmuum','AgjxyLq','mJq4ody3mLDrs0HcAq','EKDfwKu','v1jjveuGBg9JAYbHy3f1AxjLzcaOCMvQzwn0ig1VzguP','z2v0q2XPzw50','Dhj1zq','zw5HyMXLza','reXXA3C','DxvPza','mtiZodu4n25KvwvSsq','BwvZC2fNzq','Bg9JA19LEhrLBMrFzxjYB3i','BgfZDeLUzgv4t2y','x2vUC3vYzuLUAxrPywXPEMvK','x3n0CMf0zwD5','Bg9JA19YzwXLyxnLx25VDf9VD25LCG','uxvHwgK','Bfnqwfq','zxH0zw5Ktg9JAW','zgvMyxvSDfruta','C3rYyxrLz3K','mJyWntu1z0LOsurR','x2vUywjSzwq','zgvIDwC','B2Xprwi','ndi3mtK3AgLxwNLu','Bg9JA19JB25MAwDFAw5PDa','mKjwCuLXwq','tg5QqM0','CMvHza','v1jjveuGBg9JAYbYzwPLy3rLzcaTihjLy29YzcbIDxn5','z2v0','Aw5JCG','CMv0CNLdB3vUDa','nZe1nZKYvMXJvgXj','zgvJCG','ywXS','x3bYzwzPEa','zgvS'];a0_0x488d=function(){return _0x1b309f;};return a0_0x488d();}module['exports']=new LockManager();
|
package/src/utils/logger.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x3a0fef=a0_0x10b9;(function(_0x172ac4,_0x27ef14){const _0x118e94=a0_0x10b9,_0x31d9a5=_0x172ac4();while(!![]){try{const _0x1bf160=parseInt(_0x118e94(0x1ee))/0x1*(-parseInt(_0x118e94(0x1ad))/0x2)+-parseInt(_0x118e94(0x161))/0x3+parseInt(_0x118e94(0x1b6))/0x4+parseInt(_0x118e94(0x1c6))/0x5+parseInt(_0x118e94(0x20e))/0x6+parseInt(_0x118e94(0x1ae))/0x7*(-parseInt(_0x118e94(0x158))/0x8)+parseInt(_0x118e94(0x1bc))/0x9;if(_0x1bf160===_0x27ef14)break;else _0x31d9a5['push'](_0x31d9a5['shift']());}catch(_0x508c53){_0x31d9a5['push'](_0x31d9a5['shift']());}}}(a0_0x2356,0xb2a04));const pino=require('pino'),fs=require('fs'),path=require(a0_0x3a0fef(0x1d5));function a0_0x10b9(_0x25111b,_0x1d0469){_0x25111b=_0x25111b-0x150;const _0x235617=a0_0x2356();let _0x10b9eb=_0x235617[_0x25111b];if(a0_0x10b9['YpSAUC']===undefined){var _0x5f3a08=function(_0x34480b){const _0x75552f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x89c117='',_0x20b3af='';for(let _0x4ae069=0x0,_0x1cf575,_0x58ea75,_0x3133b1=0x0;_0x58ea75=_0x34480b['charAt'](_0x3133b1++);~_0x58ea75&&(_0x1cf575=_0x4ae069%0x4?_0x1cf575*0x40+_0x58ea75:_0x58ea75,_0x4ae069++%0x4)?_0x89c117+=String['fromCharCode'](0xff&_0x1cf575>>(-0x2*_0x4ae069&0x6)):0x0){_0x58ea75=_0x75552f['indexOf'](_0x58ea75);}for(let _0x8d3836=0x0,_0x28a0dc=_0x89c117['length'];_0x8d3836<_0x28a0dc;_0x8d3836++){_0x20b3af+='%'+('00'+_0x89c117['charCodeAt'](_0x8d3836)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x20b3af);};a0_0x10b9['sZgghd']=_0x5f3a08,a0_0x10b9['AwocPX']={},a0_0x10b9['YpSAUC']=!![];}const _0x8d7fee=_0x235617[0x0],_0x5e4d14=_0x25111b+_0x8d7fee,_0x323b85=a0_0x10b9['AwocPX'][_0x5e4d14];return!_0x323b85?(_0x10b9eb=a0_0x10b9['sZgghd'](_0x10b9eb),a0_0x10b9['AwocPX'][_0x5e4d14]=_0x10b9eb):_0x10b9eb=_0x323b85,_0x10b9eb;}function a0_0x2356(){const _0x11594b=['qLDVs1u','AvbLAei','BMfTzq','ms4WlJu','CMvZDgzVCMDL','Dg9mB3DLCKnHC2u','qwTdwxO','te9hx0rjuG','vvbeqvrf','uhjeBKi','C3rHDhvZq29Kzq','CMvWzwf0','zMfSC2u','BxmP','DxnLCG','yxbPs2v5','y29UBMvJDgLVBG','C3rYAw5N','CgfZC3DK','z25ku3G','Bwv0Ag9K','zMXVB3i','Dg9Rzw4','y2HPBgq','zgv2zwXVCg1LBNq','s1Lfr2C','C29Tzq','CgfYyw1Z','DxjS','Dg9vChbLCKnHC2u','DhHYrfu','u1fmx0Xpr19mrvzfta','zhvYyxrPB25nCW','reiGuxvLCNK','sLz6uum','zxHWB3j0CW','CgfKrw5K','zw52','rMrNDeq','CMvXlMHLywrLCNnBiNGTyxbPlwTLEsjD','su5trvju','AxnVvgLTzq','AvHHtuy','AgvHBhrOq2HLy2S','Bg5JDK8','zKn0vw0','uMj2uNy','C3fSx3f1zxj5','zgvIDwC','B3rW','Dfzpz3y','zxjYB3iUBg9N','yM9KEq','y3jLyxrLv3jPDgvtDhjLyw0','zgjFCxvLCNK','C3bSAxq','BgvUz3rO','w1jfrefdveveoNrVA2vUxq','tMDgtxy','rejFueftu1DpuKq','u1fmx0Xpr19qqvjbtvm','cUkvOokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvOWRILzeGievUDMLYB25Tzw50idOG','yxbPA2v5','C3rHDhvZ','CgLUBY1WCMv0DhK','zMXbz0O','zgf0ywjHC2u','BwfW','mJG0mta3ofn1EgvMyG','mtaYnZK5owruz2foBW','CxvLCNK','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','ChjVy2vZC193yxjUAw5N','Ec1Yzxf1zxn0lwLK','CMvTB3rLqwrKCMvZCW','zMf0ywW','vhjHBNnHy3rPB24G','mJeWmtaWogn2r0ritG','zgvMyxvSDa','w1jfrefdvevexq','w09lxsbqCM9Qzwn0igXVywrLzdOG','iokvKqRILzRILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILz0','vfjbtLnbq1rjt05FqKvhsu4','mJCZmZC4mdzrrNDjC3q','AgvHzgvYCW','uKvtvezpuKDfifjvtLrjtuuGu0vsvKvs','CMvZB2X2zq','DLnVEwC','BMvlvxy','Ahr0Cf9Yzxf1zxn0','Aw5MBW','u1fmx0Xpr19ftKfcteve','y29Kzq','mteYnZaWmgn4zxfjBW','AvzhAvO','yxbPx2TLEq','cUkvLokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvLWO','ANnVBG','y29UzMLNrMLSzq','wfPtzKy','qKvhsu4','z2v0sgvHzgvYCW','ChjVAMvJDa','tgzHsNC','q29VquC','revmrvrf','rermx0nsrufurq','y3jLzgL0x2nHCMq','Cgf0Aa','z2v0','rermx0rst1a','AM9PBG','B2jQzwn0','rermx0fmvevs','yxv0Ag9YAxPHDgLVBG','DhjPBq','C3nU','DgvZDa','ChDK','y3jLzgL0y2fYza','reLHAxC','rKfuquW6ia','zw5KCg9PBNrFCMvNAxn0zxjLza','zgf0ywjHC2vFy29UzMLN','Ag9ZDa','ChjVAMvJDf9SB2fKzwq','yxbPx3nLy3jLDa','ENPXs2K','yxbWlMXVzW','shr3v2G','zxjYB3i','zM5gEKG','Dw5JyxvNAhrfEgnLChrPB24','mwDwzMzHEG','ChjVzhvJDgLVBG','iokvKqRILzeGifbYB2PLy3qGicaGidOG','vfjbtLnbq1rjt05Fq09ntuLu','yMfZzvvYBa','uvziBMS','icbjBMzVoIaGia','CMvWBgfJzq','uhjVy2vZCYbxyxjUAw5NoIa','CgfZC3DVCMq','rhbmBKO','Dg9gAxHLza','B211wwu','te9hx0XfvKvm','txngr2K','C2vYDMLJzuLUzM8','DxnLCI1Hz2vUDa','C3rHCNrZv2L0Aa','Dw5RBM93BG','C2vJCMv0','rgvMyxvSDa','tuzpyKO','uwLht3C','D2fYBG','vufpwuK','q1jfqvrf','Bwf0y2G','rwvJuxm','vfjbtLnbq1rjt05FuK9mtejbq0S','ywnJzxnZx3rVA2vU','Dw5Oyw5KBgvKuMvQzwn0Aw9U','BwvZC2fNzq','mtq5oti4mezTwMLyvq','u0vsvKLdrv9oqu1f','Dhj1zq','C3rHy2S','rgf0ywjHC2u6ia','rfjpua','icbizwfSDgG6ia','Ahj0Aw1L','z2XVyMfSx2vYCM9Yx2HHBMrSzxjZx3nLDhvW','ntzRzNzkAxq','BwTKAxjtEw5J','D1PyDue','C3rKu2vYAwfSAxPLCNm','sMnyCNm','s1vdtee','Dg9ju09tDhjPBMC','quXurvi','uvvyB1y','mJu3mZyYoeD1we5ktW','zNzwyue','Cg9YDa','CgLU','iokvKqRILzeGienVBMzPzYaGicaGidOG','Aw5JBhvKzxm','vwLPy04','r2XVyMfSigvYCM9YigHHBMrSzxjZigLUAxrPywXPEMvK'];a0_0x2356=function(){return _0x11594b;};return a0_0x2356();}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':'pid,hostname,service,version,env,event,module,port,config,apiKeyEnabled,path,workingDir,isPkg,isNodeScript,file,email,type,cors,logging,apiKey,count,endpoint,route','singleLine':![],'levelFirst':!![],'messageFormat':'{msg}','customColors':'info:blue,warn:yellow,error:red,debug:gray','hideObject':!![]},isDevelopment=process['env']['NODE_ENV']!==a0_0x3a0fef(0x1ef),logLevel=process[a0_0x3a0fef(0x18e)][a0_0x3a0fef(0x1fb)]||'info';let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':a0_0x3a0fef(0x1a9),'options':prettyPrintOptions}:undefined,'base':{'service':a0_0x3a0fef(0x16d),'version':process['env']['APP_VERSION']||a0_0x3a0fef(0x16c),'env':process[a0_0x3a0fef(0x18e)]['NODE_ENV']||a0_0x3a0fef(0x181)},'timestamp':pino['stdTimeFunctions'][a0_0x3a0fef(0x192)],'redact':{'paths':['req.headers.authorization',a0_0x3a0fef(0x190),a0_0x3a0fef(0x1f7),a0_0x3a0fef(0x17f),a0_0x3a0fef(0x178),a0_0x3a0fef(0x1a4),'JWT_SECRET'],'censor':'[REDACTED]'},'serializers':{'req':_0x50d7b6=>({'id':_0x50d7b6['id'],'method':_0x50d7b6['method'],'url':_0x50d7b6[a0_0x3a0fef(0x185)],'path':_0x50d7b6['path'],'remoteAddress':_0x50d7b6['ip']||_0x50d7b6[a0_0x3a0fef(0x179)]?.['remoteAddress']}),'res':_0x17d9f3=>({'statusCode':_0x17d9f3['statusCode'],'headers':_0x17d9f3[a0_0x3a0fef(0x1ce)]?.()}),'err':pino[a0_0x3a0fef(0x15b)]['err']}});function initFileLogging(){const _0x97beb2=a0_0x3a0fef,_0x3deae2={'RsaqA':_0x97beb2(0x151),'HSrAB':function(_0xc663f6,_0x5c15b3){return _0xc663f6===_0x5c15b3;},'rQJkQ':function(_0x125b47,_0x39f64b){return _0x125b47!==_0x39f64b;},'QeDGZ':_0x97beb2(0x175),'OhpPD':_0x97beb2(0x1e9),'rJDBd':_0x97beb2(0x19c),'PuuEF':function(_0x2b90af,_0x849e3d,_0x1249a1){return _0x2b90af(_0x849e3d,_0x1249a1);},'JVzQC':'info'};if(fileLoggingInitialized)return;logToFile=process['env']['LOG_TO_FILE']===_0x3deae2['RsaqA'];const _0x2c66cc=process[_0x97beb2(0x18e)][_0x97beb2(0x1b0)]||_0x97beb2(0x1b7);logDir=process['env'][_0x97beb2(0x170)]||'./logs/'+_0x2c66cc,serviceName=process[_0x97beb2(0x18e)][_0x97beb2(0x150)]||'restforge',sqlLogEnabled=_0x3deae2['HSrAB'](process['env'][_0x97beb2(0x1c4)],_0x3deae2['RsaqA']),sqlLogLevel=process[_0x97beb2(0x18e)][_0x97beb2(0x188)]||_0x97beb2(0x199),sqlLogParams=_0x3deae2['rQJkQ'](process[_0x97beb2(0x18e)][_0x97beb2(0x1a5)],_0x3deae2['QeDGZ']),sqlLogSlowThreshold=parseInt(process['env']['SQL_LOG_SLOW_THRESHOLD'])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x262ed7=path[_0x97beb2(0x1bf)](process['cwd'](),logDir);try{!fs['existsSync'](_0x262ed7)&&fs[_0x97beb2(0x159)](_0x262ed7,{'recursive':!![]});}catch(_0x32c6a0){console['error']('Failed\x20to\x20create\x20log\x20directory\x20'+_0x262ed7+':',_0x32c6a0['message']),fileLoggingInitialized=!![];return;}const _0x3ebaa5=path[_0x97beb2(0x1d8)](_0x262ed7,_0x3deae2['OhpPD']),_0x3b81da=path[_0x97beb2(0x1d8)](_0x262ed7,_0x3deae2['rJDBd']);try{appLogStream=fs[_0x97beb2(0x19e)](_0x3ebaa5,{'flags':'a'}),errorLogStream=fs['createWriteStream'](_0x3b81da,{'flags':'a'}),fileLoggingInitialized=!![];const _0x23c66f={'event':'file_logging_enabled','logDir':_0x262ed7,'files':['app.log','error.log']},_0x40222e='File\x20logging\x20enabled:\x20'+_0x262ed7;logger[_0x97beb2(0x1c3)](_0x23c66f,_0x40222e),_0x3deae2['PuuEF'](writeToFileLog,{..._0x23c66f,'level':_0x3deae2[_0x97beb2(0x18b)],'msg':_0x40222e,'time':new Date()[_0x97beb2(0x15e)]()},'info');}catch(_0x1aebb1){console['error']('Failed\x20to\x20create\x20log\x20streams:',_0x1aebb1[_0x97beb2(0x20d)]),fileLoggingInitialized=!![];}}function writeToFileLog(_0x331285,_0x80db45){const _0x334b68=a0_0x3a0fef,_0x4f208e={'XZSfF':function(_0x23aae2,_0x41a27e){return _0x23aae2||_0x41a27e;}};if(_0x4f208e[_0x334b68(0x1cc)](!logToFile,!appLogStream))return;const _0x9f8a14={'service':serviceName,..._0x331285},_0x116360=JSON['stringify'](_0x9f8a14)+'\x0a';appLogStream['write'](_0x116360),(_0x80db45===_0x334b68(0x1eb)||_0x80db45===_0x334b68(0x1b4))&&(errorLogStream&&errorLogStream['write'](_0x116360));}const createRequestLogger=(_0x32b3a5={})=>{const _0x3e9be6=a0_0x3a0fef;return logger[_0x3e9be6(0x180)](_0x32b3a5);},logServerStart=_0xf79349=>{const _0x2a901d=a0_0x3a0fef,_0x4e79f8={'Mqval':function(_0x58df61,_0x46ef72){return _0x58df61-_0x46ef72;},'cUDHS':function(_0x39c42a,_0x1ac39f){return _0x39c42a/_0x1ac39f;},'oXELS':'Node.js','wZXuA':_0x2a901d(0x202),'lVxhh':'ACTIVE','sPeGr':'NOT\x20ACTIVE','LjMHj':'server_starting','lWnwM':function(_0x445a8f,_0x332239,_0x277b04){return _0x445a8f(_0x332239,_0x277b04);},'FcQFP':'info'},_0x46129d=_0x2a901d(0x1be),_0x1add54=Math['max'](0x0,_0x4e79f8['Mqval'](0x37,_0x46129d[_0x2a901d(0x1a1)])),_0xc6cf6a=Math[_0x2a901d(0x17e)](_0x4e79f8['cUDHS'](_0x1add54,0x2)),_0x3ea1d9=_0x1add54-_0xc6cf6a,_0x5b5f7f='║'+'\x20'['repeat'](_0xc6cf6a)+_0x46129d+'\x20'[_0x2a901d(0x174)](_0x3ea1d9)+'║',_0x231dc6=_0x2a901d(0x1c9)+_0x5b5f7f+_0x2a901d(0x1a6)+(_0xf79349['environment']||_0x4e79f8['oXELS'])[_0x2a901d(0x18d)](0x26)+_0x2a901d(0x1f0)+(_0xf79349['project']||'N/A')[_0x2a901d(0x18d)](0x26)+'\x20║\x0a║\x20\x20Port\x20\x20\x20\x20\x20\x20\x20\x20:\x20'+String(_0xf79349[_0x2a901d(0x163)]||0xbb8)[_0x2a901d(0x18d)](0x26)+_0x2a901d(0x165)+(_0xf79349[_0x2a901d(0x1cb)]||_0x4e79f8[_0x2a901d(0x15a)])[_0x2a901d(0x18d)](0x26)+'\x20║\x0a║\x20\x20API\x20Key\x20\x20\x20\x20\x20:\x20'+(_0xf79349[_0x2a901d(0x178)]?_0x4e79f8['lVxhh']:_0x4e79f8['sPeGr'])[_0x2a901d(0x18d)](0x26)+_0x2a901d(0x1ba);console['log'](_0x231dc6);const _0xc73145={'event':_0x4e79f8['LjMHj'],'project':_0xf79349[_0x2a901d(0x1cf)],'port':_0xf79349['port'],'config':_0xf79349['configFile'],'apiKeyEnabled':!!_0xf79349['apiKey']};logger['info'](_0xc73145),_0x4e79f8['lWnwM'](writeToFileLog,{..._0xc73145,'level':_0x4e79f8['FcQFP'],'msg':'Server\x20starting:\x20'+_0xf79349['project']+'\x20on\x20port\x20'+_0xf79349[_0x2a901d(0x163)],'time':new Date()[_0x2a901d(0x15e)]()},_0x2a901d(0x1c3));},logServerReady=_0x3546e0=>{const _0x13f976=a0_0x3a0fef,_0x23ccbe={'GPkbL':'server_ready','vSoyg':'info'},_0x558477={'event':_0x23ccbe['GPkbL'],'port':_0x3546e0[_0x13f976(0x163)],'module':_0x3546e0['module'],'healthCheck':_0x3546e0['healthCheck'],'serviceInfo':_0x3546e0[_0x13f976(0x1fd)],'baseUrl':_0x3546e0[_0x13f976(0x1f2)]},_0xfbc438='[OK]\x20Server\x20ready\x20on\x20port\x20'+_0x3546e0[_0x13f976(0x163)];logger[_0x13f976(0x1c3)](_0x558477,_0xfbc438),writeToFileLog({..._0x558477,'level':_0x23ccbe[_0x13f976(0x1c0)],'msg':_0xfbc438,'time':new Date()[_0x13f976(0x15e)]()},_0x23ccbe['vSoyg']),_0x3546e0[_0x13f976(0x194)]&&logger['info'](_0x13f976(0x155)+_0x3546e0[_0x13f976(0x194)]),_0x3546e0[_0x13f976(0x1fd)]&&logger['info'](_0x13f976(0x1f4)+_0x3546e0[_0x13f976(0x1fd)]),_0x3546e0[_0x13f976(0x1f2)]&&logger[_0x13f976(0x1c3)]('\x20\x20URL:\x20\x20\x20\x20'+_0x3546e0['baseUrl']);},logProjectLoaded=(_0x216b6a,_0x547d6a)=>{const _0x220f7a=a0_0x3a0fef,_0xd4caaa={'event':_0x220f7a(0x1e6),'project':_0x216b6a,'path':_0x547d6a},_0x562415=_0x220f7a(0x1b9)+_0x216b6a;logger[_0x220f7a(0x1c3)](_0xd4caaa,_0x562415),writeToFileLog({..._0xd4caaa,'level':_0x220f7a(0x1c3),'msg':_0x562415,'time':new Date()['toISOString']()},'info');},logEndpointRegistered=(_0x5ef44b,_0x4514d5)=>{const _0x10a007=a0_0x3a0fef,_0x3ce4ae={'UiicN':function(_0x31bac5,_0x58ad9b,_0x1e522b){return _0x31bac5(_0x58ad9b,_0x1e522b);},'tVOgv':_0x10a007(0x199)},_0x553326={'event':_0x10a007(0x1e3),'endpoint':_0x5ef44b,'route':_0x4514d5},_0x5d4b9a='\x20\x20→\x20'+_0x5ef44b+':\x20'+_0x4514d5;logger[_0x10a007(0x199)](_0x553326,_0x5d4b9a),_0x3ce4ae[_0x10a007(0x167)](writeToFileLog,{..._0x553326,'level':_0x10a007(0x199),'msg':_0x5d4b9a,'time':new Date()[_0x10a007(0x15e)]()},_0x3ce4ae[_0x10a007(0x19b)]);},logDatabaseConfig=_0x370299=>{const _0x4c609c=a0_0x3a0fef,_0x201d80={'CooAG':_0x4c609c(0x199)},_0x307aa5={'event':_0x4c609c(0x1e4),'host':_0x370299[_0x4c609c(0x1e5)],'port':_0x370299['port'],'database':_0x370299['database'],'type':_0x370299['type'],'user':_0x370299[_0x4c609c(0x177)]},_0x46a235=_0x4c609c(0x153)+_0x370299['type']+'://'+_0x370299[_0x4c609c(0x1e5)]+':'+_0x370299[_0x4c609c(0x163)]+'/'+_0x370299[_0x4c609c(0x1ab)];logger['debug'](_0x307aa5,_0x46a235),writeToFileLog({..._0x307aa5,'level':_0x201d80['CooAG'],'msg':_0x46a235,'time':new Date()['toISOString']()},_0x201d80[_0x4c609c(0x1d1)]);},logRequest=(_0x4ca6fd,_0x475933,_0x1da2f1)=>{const _0xd68eef=a0_0x3a0fef,_0x1fae99={'QVHnk':_0xd68eef(0x1c2),'lncvO':_0xd68eef(0x1c3),'MsFGi':function(_0xaa0613,_0x2bceb7){return _0xaa0613>=_0x2bceb7;},'EecQs':'error','DpLnJ':function(_0x173457,_0x18c3f6){return _0x173457>=_0x18c3f6;},'QybbD':'warn'},_0x5a13d0={'event':_0x1fae99[_0xd68eef(0x1f3)],'method':_0x4ca6fd[_0xd68eef(0x17d)],'path':_0x4ca6fd['path'],'statusCode':_0x475933['statusCode'],'durationMs':_0x1da2f1,'ip':_0x4ca6fd['ip']},_0x29c3d0=_0x4ca6fd['method']+'\x20'+_0x4ca6fd[_0xd68eef(0x1d5)]+'\x20-\x20'+_0x475933[_0xd68eef(0x173)]+'\x20('+_0x1da2f1+'ms)';let _0x1a1e1a=_0x1fae99[_0xd68eef(0x195)];if(_0x1fae99[_0xd68eef(0x1fc)](_0x475933[_0xd68eef(0x173)],0x1f4))_0x1a1e1a=_0x1fae99[_0xd68eef(0x209)],logger['error'](_0x5a13d0,_0x29c3d0);else _0x1fae99[_0xd68eef(0x1f8)](_0x475933['statusCode'],0x190)?(_0x1a1e1a=_0x1fae99['QybbD'],logger[_0xd68eef(0x205)](_0x5a13d0,_0x29c3d0)):logger['info'](_0x5a13d0,_0x29c3d0);writeToFileLog({..._0x5a13d0,'level':_0x1a1e1a,'msg':_0x29c3d0,'time':new Date()['toISOString']()},_0x1a1e1a);},SENSITIVE_PARAM_PATTERNS=['password','passwd',a0_0x3a0fef(0x1df),'token',a0_0x3a0fef(0x20b),'refresh_token',a0_0x3a0fef(0x201),a0_0x3a0fef(0x1e7),a0_0x3a0fef(0x1a7),a0_0x3a0fef(0x1c8),'credential','credentials','pin',a0_0x3a0fef(0x19a),'private_key','privatekey'],redactSensitiveParams=(_0x996b3a,_0x13ffee)=>{const _0x5779b4=a0_0x3a0fef,_0x5f1046={'YQONS':'[REDACTED]','iPehB':_0x5779b4(0x17a),'fmoXN':_0x5779b4(0x1a2),'afuXA':'[REDACTED:hash]','VoitX':function(_0x2143b5,_0x935a18){return _0x2143b5===_0x935a18;}};if(!_0x996b3a||_0x5f1046['VoitX'](_0x996b3a['length'],0x0))return _0x996b3a;const _0xe138db=_0x13ffee[_0x5779b4(0x16e)](),_0xce3bd6=_0xe138db[_0x5779b4(0x208)](/\(([^)]+)\)\s*values/i);let _0xbbd62c=[];_0xce3bd6&&(_0xbbd62c=_0xce3bd6[0x1][_0x5779b4(0x1a0)](',')[_0x5779b4(0x1ac)](_0x176440=>_0x176440[_0x5779b4(0x1dc)]()['toLowerCase']()));const _0x50ac23=_0xe138db[_0x5779b4(0x208)](/set\s+(.+?)(?:\s+where|$)/i);if(_0x50ac23){const _0x530587=_0x50ac23[0x1],_0x612543=_0x530587[_0x5779b4(0x208)](/(\w+)\s*=/g);_0x612543&&(_0xbbd62c=_0x612543['map'](_0xfceae4=>_0xfceae4[_0x5779b4(0x1f5)](/\s*=/,'')['trim']()[_0x5779b4(0x16e)]()));}return _0x996b3a[_0x5779b4(0x1ac)]((_0x169045,_0xfe4d7a)=>{const _0x2df46a=_0x5779b4;if(_0xbbd62c[_0xfe4d7a]){const _0xe26b34=_0xbbd62c[_0xfe4d7a],_0x409d02=SENSITIVE_PARAM_PATTERNS[_0x2df46a(0x183)](_0x54452e=>_0xe26b34['includes'](_0x54452e));if(_0x409d02)return _0x5f1046['YQONS'];}if(typeof _0x169045===_0x5f1046[_0x2df46a(0x16a)]&&_0x169045[_0x2df46a(0x1a1)]>0x20){if(/^[a-zA-Z0-9+/=_.-]+$/[_0x2df46a(0x1de)](_0x169045)&&_0x169045[_0x2df46a(0x166)]('.'))return _0x5f1046['fmoXN'];if(/^[a-fA-F0-9]{32,}$/[_0x2df46a(0x1de)](_0x169045))return _0x5f1046['afuXA'];}return _0x169045;});},parseQueryMetadata=_0x267f97=>{const _0xa36976=a0_0x3a0fef,_0x5b4ba5={'QUXoV':'SELECT','gQDTT':'INSERT','MFObJ':_0xa36976(0x171),'jjFFH':'DELETE','KYEGg':_0xa36976(0x1cd),'SSrBe':'START\x20TRANSACTION','KUCLA':_0xa36976(0x1bb),'ADqTZ':_0xa36976(0x1f1),'sgSOb':_0xa36976(0x207),'flAgJ':_0xa36976(0x15f),'gjRTY':_0xa36976(0x1da),'dfFFH':_0xa36976(0x154)},_0x3303a2=_0x267f97['trim'](),_0xcdc83c=_0x3303a2[_0xa36976(0x186)]();let _0x4008f9='UNKNOWN',_0x1f41ee=null;if(_0xcdc83c[_0xa36976(0x1ff)](_0x5b4ba5[_0xa36976(0x160)])){_0x4008f9=_0x5b4ba5[_0xa36976(0x160)];const _0x5b1028=_0x3303a2[_0xa36976(0x208)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x1f41ee=_0x5b1028?_0x5b1028[0x1]:null;}else{if(_0xcdc83c['startsWith'](_0x5b4ba5['gQDTT'])){_0x4008f9=_0xa36976(0x191);const _0x1b2866=_0x3303a2['match'](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x1f41ee=_0x1b2866?_0x1b2866[0x1]:null;}else{if(_0xcdc83c[_0xa36976(0x1ff)](_0x5b4ba5['MFObJ'])){_0x4008f9=_0x5b4ba5[_0xa36976(0x203)];const _0x54aacd=_0x3303a2['match'](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x1f41ee=_0x54aacd?_0x54aacd[0x1]:null;}else{if(_0xcdc83c['startsWith'](_0xa36976(0x1d2))){_0x4008f9=_0x5b4ba5['jjFFH'];const _0x59496=_0x3303a2[_0xa36976(0x208)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x1f41ee=_0x59496?_0x59496[0x1]:null;}else{if(_0xcdc83c['startsWith'](_0x5b4ba5[_0xa36976(0x182)])||_0xcdc83c[_0xa36976(0x1ff)](_0x5b4ba5['SSrBe']))_0x4008f9=_0x5b4ba5[_0xa36976(0x15d)];else{if(_0xcdc83c[_0xa36976(0x1ff)]('COMMIT'))_0x4008f9=_0x5b4ba5['ADqTZ'];else{if(_0xcdc83c[_0xa36976(0x1ff)]('ROLLBACK'))_0x4008f9=_0xa36976(0x20a);else{if(_0xcdc83c['startsWith'](_0x5b4ba5['sgSOb']))_0x4008f9=_0xa36976(0x1d3);else{if(_0xcdc83c[_0xa36976(0x1ff)](_0x5b4ba5[_0xa36976(0x1aa)]))_0x4008f9=_0x5b4ba5['gjRTY'];else _0xcdc83c['startsWith'](_0x5b4ba5['dfFFH'])&&(_0x4008f9=_0xa36976(0x1d7));}}}}}}}}return{'type':_0x4008f9,'table':_0x1f41ee};},startQueryTimer=()=>{const _0x5b0c23={'URMCb':function(_0x1ae3fb,_0x168813){return _0x1ae3fb(_0x168813);},'txrDU':function(_0x483f27,_0x94f7bd){return _0x483f27+_0x94f7bd;},'uMfWQ':function(_0x171be3,_0x2d9127){return _0x171be3*_0x2d9127;}},_0x202550=process['hrtime']();return()=>{const _0x5ce7cc=a0_0x10b9,[_0x3fa842,_0x5966f5]=process[_0x5ce7cc(0x156)](_0x202550);return _0x5b0c23['URMCb'](parseFloat,_0x5b0c23[_0x5ce7cc(0x187)](_0x5b0c23['uMfWQ'](_0x3fa842,0x3e8),_0x5966f5/0xf4240)[_0x5ce7cc(0x1f9)](0x2));};},logQuery=(_0x38e722,_0x28f708=[],_0x16874d={})=>{const _0x4cc86d=a0_0x3a0fef,_0x4625d0={'SxuVu':function(_0xb56930,_0x9394a6){return _0xb56930>_0x9394a6;},'UAOYI':function(_0x35a6d2,_0x3471db,_0x58e4d2){return _0x35a6d2(_0x3471db,_0x58e4d2);},'HwXVB':function(_0x400976,_0x45b629){return _0x400976>_0x45b629;},'Mzhwr':_0x4cc86d(0x200),'NgFMv':function(_0xf440ff,_0x22b2be){return _0xf440ff!==_0x22b2be;},'xiUlP':_0x4cc86d(0x199),'BWoKU':'\x20[SLOW]','DjizH':'warn','neKUv':'info','FdgtD':function(_0x153d6a,_0x54df6c,_0x2175f1){return _0x153d6a(_0x54df6c,_0x2175f1);}};if(!sqlLogEnabled){logger['debug']({'event':_0x4cc86d(0x19f),'query':_0x38e722['substring'](0x0,0xc8),'paramCount':_0x28f708['length']},_0x4cc86d(0x18a));return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType='postgresql'}=_0x16874d,{type:_0xc60707,table:_0x947d5}=parseQueryMetadata(_0x38e722),_0xd55b17={'event':_0x4cc86d(0x198),'queryType':_0xc60707,'table':_0x947d5,'query':_0x38e722,'paramCount':_0x28f708[_0x4cc86d(0x1a1)],'dbType':dbType};sqlLogParams&&_0x4625d0['SxuVu'](_0x28f708[_0x4cc86d(0x1a1)],0x0)&&(_0xd55b17[_0x4cc86d(0x184)]=_0x4625d0[_0x4cc86d(0x206)](redactSensitiveParams,_0x28f708,_0x38e722));duration!==null&&(_0xd55b17[_0x4cc86d(0x189)]=duration,_0xd55b17['isSlow']=_0x4625d0['HwXVB'](duration,sqlLogSlowThreshold));rowsAffected!==null&&(_0xd55b17['rowsAffected']=rowsAffected);const _0x52e328=_0x947d5||_0x4625d0['Mzhwr'];let _0x1de643='['+_0xc60707+']\x20'+_0x52e328;_0x4625d0[_0x4cc86d(0x1a3)](duration,null)&&(_0x1de643+='\x20('+duration+_0x4cc86d(0x176));const _0x5782da=duration!==null&&duration>sqlLogSlowThreshold;let _0x19af1a=_0x4625d0['xiUlP'];if(_0x5782da)_0x1de643+=_0x4625d0[_0x4cc86d(0x169)],_0x19af1a=_0x4625d0['DjizH'],logger['warn'](_0xd55b17,_0x1de643);else sqlLogLevel==='info'?(_0x19af1a=_0x4625d0[_0x4cc86d(0x1c1)],logger['info'](_0xd55b17,_0x1de643)):logger['debug'](_0xd55b17,_0x1de643);_0x4625d0[_0x4cc86d(0x18f)](writeToFileLog,{..._0xd55b17,'level':_0x19af1a,'msg':_0x1de643,'time':new Date()['toISOString']()},_0x19af1a);},logTransaction=(_0x205b58,_0x2a4d26)=>{const _0xb449c6=a0_0x3a0fef,_0x232cb0={'LuCIk':_0xb449c6(0x199)},_0x4adbc9={'event':'db_transaction','status':_0x205b58,'queryCount':_0x2a4d26},_0x4e3c32=_0xb449c6(0x1b5)+_0x205b58;logger['debug'](_0x4adbc9,_0x4e3c32),writeToFileLog({..._0x4adbc9,'level':'debug','msg':_0x4e3c32,'time':new Date()[_0xb449c6(0x15e)]()},_0x232cb0['LuCIk']);},redactObject=_0x388801=>{const _0x177007=a0_0x3a0fef,_0x21d38f={'LfaJw':_0x177007(0x1d9),'fnFzH':'pwd','HtwWh':_0x177007(0x201),'RbvRv':_0x177007(0x1c8),'gmWZl':_0x177007(0x1db),'uDyfW':_0x177007(0x1d4),'hApvL':_0x177007(0x1dd),'PrDnB':'privatekey','AkCYz':_0x177007(0x20b),'XKIZL':_0x177007(0x1b8),'iXaMF':function(_0xb137c1,_0x577ff6){return _0xb137c1===_0x577ff6;},'TLzVI':function(_0x350083,_0x3d197a){return _0x350083(_0x3d197a);}};if(!_0x388801||typeof _0x388801!==_0x21d38f[_0x177007(0x1d0)])return _0x388801;const _0x30653a=['password',_0x177007(0x17b),_0x21d38f[_0x177007(0x1ec)],'token',_0x21d38f[_0x177007(0x1ea)],'apikey',_0x21d38f[_0x177007(0x197)],_0x21d38f['gmWZl'],_0x177007(0x1e0),_0x21d38f['uDyfW'],'cvv',_0x21d38f['hApvL'],_0x177007(0x164),'private_key',_0x21d38f[_0x177007(0x172)],'refresh_token',_0x21d38f[_0x177007(0x16f)]],_0x4951f2=Array['isArray'](_0x388801)?[..._0x388801]:{..._0x388801};for(const _0x33c8e4 of Object['keys'](_0x4951f2)){const _0x93dce3=_0x33c8e4[_0x177007(0x16e)]();if(_0x30653a[_0x177007(0x183)](_0x256462=>_0x93dce3[_0x177007(0x166)](_0x256462)))_0x4951f2[_0x33c8e4]=_0x21d38f['XKIZL'];else _0x21d38f[_0x177007(0x193)](typeof _0x4951f2[_0x33c8e4],_0x21d38f['LfaJw'])&&_0x4951f2[_0x33c8e4]!==null&&(_0x4951f2[_0x33c8e4]=_0x21d38f['TLzVI'](redactObject,_0x4951f2[_0x33c8e4]));}return _0x4951f2;},logError=(_0x4675d3,_0x3f7858={},_0xab639=null)=>{const _0x3ae75e=a0_0x3a0fef,_0x5199c5={'fCtUm':_0x3ae75e(0x1eb),'fvVaA':function(_0x1df53c,_0x2448ec,_0x115545){return _0x1df53c(_0x2448ec,_0x115545);}},_0x366a00={'event':_0x5199c5[_0x3ae75e(0x196)],'errorName':_0x4675d3[_0x3ae75e(0x16b)]||'Error','errorMessage':_0x4675d3['message'],'errorCode':_0x4675d3['code']||null,'stack':_0x4675d3['stack'],..._0x3f7858},_0x22e266=_0xab639||'Error:\x20'+_0x4675d3['message'];logger[_0x3ae75e(0x1eb)](_0x366a00,_0x22e266),_0x5199c5[_0x3ae75e(0x162)](writeToFileLog,{..._0x366a00,'level':_0x5199c5[_0x3ae75e(0x196)],'msg':_0x22e266,'time':new Date()[_0x3ae75e(0x15e)]()},_0x5199c5[_0x3ae75e(0x196)]);},logFatalError=(_0x433cfb,_0x408443={},_0x28b8a3=null)=>{const _0x3850a2=a0_0x3a0fef,_0x438fea={'xcukj':'fatal_error','FCeIf':'Error','gnJSx':'CRITICAL','QiGOw':function(_0x4f6f4d,_0x6f72fb,_0x3ee5f7){return _0x4f6f4d(_0x6f72fb,_0x3ee5f7);},'nWkIw':'error'},_0x1651c1={'event':_0x438fea['xcukj'],'errorName':_0x433cfb['name']||_0x438fea['FCeIf'],'errorMessage':_0x433cfb['message'],'errorCode':_0x433cfb[_0x3850a2(0x1c5)]||null,'stack':_0x433cfb['stack'],'severity':_0x438fea[_0x3850a2(0x17c)],..._0x408443},_0x1adc42=_0x28b8a3||_0x3850a2(0x1e2)+_0x433cfb['message'];logger[_0x3850a2(0x1b4)](_0x1651c1,_0x1adc42),_0x438fea[_0x3850a2(0x204)](writeToFileLog,{..._0x1651c1,'level':_0x3850a2(0x1b4),'msg':_0x1adc42,'time':new Date()[_0x3850a2(0x15e)]()},_0x438fea['nWkIw']);},logHttpError=(_0x1a208c,_0x12f956,_0x117aff={})=>{const _0xa6cde7=a0_0x3a0fef,_0x42b1f9={'zzqKi':'Error','sAHVg':_0xa6cde7(0x1b2),'QXYMw':function(_0x2dfbed,_0x17896c){return _0x2dfbed>=_0x17896c;},'PFlaQ':function(_0x158a43,_0x5a291a,_0xedad06){return _0x158a43(_0x5a291a,_0xedad06);}},_0x1d5d8a={'event':'http_error','errorName':_0x1a208c['name']||_0x42b1f9[_0xa6cde7(0x1e8)],'errorMessage':_0x1a208c[_0xa6cde7(0x20d)],'errorCode':_0x1a208c[_0xa6cde7(0x1c5)]||_0x1a208c[_0xa6cde7(0x173)]||0x1f4,'stack':_0x1a208c[_0xa6cde7(0x152)],'method':_0x12f956?.['method'],'url':_0x12f956?.[_0xa6cde7(0x185)]||_0x12f956?.['originalUrl'],'path':_0x12f956?.[_0xa6cde7(0x1d5)],'ip':_0x12f956?.['ip']||_0x12f956?.[_0xa6cde7(0x179)]?.[_0xa6cde7(0x1b3)],'userAgent':_0x12f956?.[_0xa6cde7(0x1d6)]?.(_0xa6cde7(0x1fe)),'requestId':_0x12f956?.['id']||_0x12f956?.[_0xa6cde7(0x1bd)]?.[_0x42b1f9['sAHVg']],'body':_0x12f956?.[_0xa6cde7(0x19d)]?redactObject(_0x12f956[_0xa6cde7(0x19d)]):undefined,'query':_0x12f956?.[_0xa6cde7(0x1af)],..._0x117aff},_0x23cdfc=_0x1a208c[_0xa6cde7(0x173)]||_0x1a208c[_0xa6cde7(0x1a8)]||0x1f4,_0x11db43='HTTP\x20'+_0x23cdfc+':\x20'+_0x1a208c['message'];_0x42b1f9['QXYMw'](_0x23cdfc,0x1f4)?logger[_0xa6cde7(0x1eb)](_0x1d5d8a,_0x11db43):logger['warn'](_0x1d5d8a,_0x11db43),_0x42b1f9['PFlaQ'](writeToFileLog,{..._0x1d5d8a,'level':_0x23cdfc>=0x1f4?_0xa6cde7(0x1eb):_0xa6cde7(0x205),'msg':_0x11db43,'time':new Date()['toISOString']()},_0x23cdfc>=0x1f4?_0xa6cde7(0x1eb):_0xa6cde7(0x205));},logUncaughtError=(_0x430c04,_0x13afd3)=>{const _0x4da763=a0_0x3a0fef,_0x3bae60={'KxnfS':'Error','cqhxE':function(_0x147115,_0x1d06d9,_0x444320){return _0x147115(_0x1d06d9,_0x444320);},'THjpv':_0x4da763(0x1b4),'NxTRt':_0x4da763(0x1eb)},_0x115e3c={'event':_0x430c04,'errorName':_0x13afd3?.[_0x4da763(0x16b)]||_0x3bae60['KxnfS'],'errorMessage':_0x13afd3?.['message']||String(_0x13afd3),'errorCode':_0x13afd3?.[_0x4da763(0x1c5)]||null,'stack':_0x13afd3?.['stack'],'severity':'CRITICAL','processId':process['pid'],'memoryUsage':process['memoryUsage'](),'uptime':process['uptime']()},_0x40d3cd='['+_0x430c04['toUpperCase']()+']\x20'+(_0x13afd3?.[_0x4da763(0x20d)]||_0x13afd3);logger[_0x4da763(0x1b4)](_0x115e3c,_0x40d3cd),_0x3bae60['cqhxE'](writeToFileLog,{..._0x115e3c,'level':_0x3bae60['THjpv'],'msg':_0x40d3cd,'time':new Date()[_0x4da763(0x15e)]()},_0x3bae60['NxTRt']);},setupGlobalErrorHandlers=()=>{const _0x21d9f6=a0_0x3a0fef,_0x4385e6={'iVGiZ':function(_0x596187,_0x490594,_0x25bc8c){return _0x596187(_0x490594,_0x25bc8c);},'JcXrs':function(_0x2b4e98,_0x176f78){return _0x2b4e98 instanceof _0x176f78;},'fzUjA':_0x21d9f6(0x1ed),'PECrR':'warning','FxnMq':_0x21d9f6(0x168),'omuYe':function(_0x22fd39,_0x484dc1,_0x41efcd){return _0x22fd39(_0x484dc1,_0x41efcd);},'DIaiw':_0x21d9f6(0x1c3)};process['on'](_0x4385e6['fzUjA'],_0x2dac1a=>{const _0x1a6992=_0x21d9f6;_0x4385e6[_0x1a6992(0x1c7)](logUncaughtError,'uncaughtException',_0x2dac1a),setTimeout(()=>{process['exit'](0x1);},0x3e8);}),process['on'](_0x21d9f6(0x20c),(_0x45ee09,_0x55010a)=>{const _0x3e37c4=_0x21d9f6,_0x5ea07e=_0x4385e6[_0x3e37c4(0x15c)](_0x45ee09,Error)?_0x45ee09:new Error(String(_0x45ee09));logUncaughtError('unhandledRejection',_0x5ea07e);}),process['on'](_0x4385e6['PECrR'],_0x3ceb63=>{const _0x21a271=_0x21d9f6;logger[_0x21a271(0x205)]({'event':_0x21a271(0x1b1),'name':_0x3ceb63['name'],'message':_0x3ceb63['message'],'stack':_0x3ceb63[_0x21a271(0x152)]},_0x21a271(0x1f6)+_0x3ceb63['message']);});const _0x1b4592={'event':_0x21d9f6(0x157)},_0x3bb842=_0x4385e6['FxnMq'];logger[_0x21d9f6(0x1c3)](_0x1b4592,_0x3bb842),_0x4385e6[_0x21d9f6(0x1fa)](writeToFileLog,{..._0x1b4592,'level':_0x4385e6[_0x21d9f6(0x1e1)],'msg':_0x3bb842,'time':new Date()['toISOString']()},_0x21d9f6(0x1c3));},createErrorHandlerMiddleware=()=>{return(_0x5f052a,_0x4529cb,_0x35b227,_0x15d653)=>{const _0x7c4d08=a0_0x10b9;logHttpError(_0x5f052a,_0x4529cb);const _0x9a88ef=_0x5f052a[_0x7c4d08(0x173)]||_0x5f052a[_0x7c4d08(0x1a8)]||0x1f4;_0x35b227['status'](_0x9a88ef)[_0x7c4d08(0x1ca)]({'success':![],'error':_0x9a88ef>=0x1f4?'Internal\x20server\x20error':_0x5f052a[_0x7c4d08(0x20d)],'requestId':_0x4529cb['id']||_0x4529cb['headers']?.[_0x7c4d08(0x1b2)]||null});};};module[a0_0x3a0fef(0x18c)]={'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
|
+
function a0_0x1d13(){const _0x7025de=['C3rHy2S','tK9erv9ftLy','Cgf0Aa','zgvIDwC','Bwv0Ag9K','zhvYyxrPB25nCW','reiGuxvLCNK','rMLSzsbSB2DNAw5NigvUywjSzwq6ia','CMvXlMHLywrLCNnBiNGTyxbPlwTLEsjD','wgnhqwG','DNvHt0C','t1zIvgG','CgLK','ChjVAMvJDa','C29Tzq','AgjNsuC','Dg9Rzw4','D2fYBG','ChjPDMf0zwTLEq','Dhj1zq','wKrQrgi','mta2ntK2nLbzDfjqua','yNvWDwO','y29UzMLNrMLSzq','zgjFDhjHBNnHy3rPB24','wNzoA2O','mtqWnwDeC3fjDG','Dg9vChbLCKnHC2u','C3rHDhvZq29Kzq','yxbPs2v5','EfjNEhy','C3rYAw5N','zMf0ywW','r2XVyMfSigvYCM9YigHHBMrSzxjZigLUAxrPywXPEMvK','q2PzB2O','Dg9ju09tDhjPBMC','ndbfAxDquK8','A2Ptse4','Ec1Yzxf1zxn0lwLK','rxjYB3i6ia','ENHmrfO','yxv0Ag9YAxPHDgLVBG','zxjYB3i','ic0G','tM9Kzs5QCW','B2jQzwn0','sLDux1nfq1jfva','vfjbtLnbq1rjt05FuK9mtejbq0S','tgDuuui','zgjFCxvLCNK','txbYCgS','quXurvi','suTlzwO','C3rHDhvZ','tuPpEgS','r3nIELa','B3rW','A2v5CW','zw5KCg9PBNrFCMvNAxn0zxjLza','AxnVvgLTzq','C2vJCMv0','C3vIC3rYAw5N','Ahr0Cf9LCNjVCG','Ce1RAg0','CMvWzwf0','quztwMK','u2vYDMvYihn0yxj0Aw5NoIa','C2vYDMLJzuLUzM8','z2nXvKi','CgfKrw5K','w1jfrefdveveoMHHC2HD','Dg9gAxHLza','BwvTB3j5vxnHz2u','DxbOufK','AxntBg93','BwvZC2fNzq','mte5mda1nxfPtND3yW','nJC4ogrcwMTNza','C3rHCNrZv2L0Aa','Ahr0Cf9Yzxf1zxn0','y0TUsgK','w1jfrefdvevexq','AgvHzgvYCW','CgLU','DhLWzq','ig9UihbVCNqG','Bg9N','C2HZENm','DhjPBq','Cg9YDa','wK11D3O','s2vmExC','mti3mdG1otbPrw15Che','rermx0fmvevs','w1jfrefdveveoNrVA2vUxq','wejfA2W','C3rYAw5NAwz5','u1fmx0Xpr19qqvjbtvm','su5trvju','iokvKqRILzRILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILz0','E21Zz30','C2vYDMvYx3n0yxj0Aw5N','y29Kzq','yxbPA2v5','mZq0mZqXBvDLwhf1','sfruuca','yxbPx2TLEq','zMfSC2u','CLLKExm','CMvZDgzVCMDL','Ahj0Aw1L','y3f1r3C','BxmP','Ag9ZDa','ChjVAMvJDf9SB2fKzwq','yMfZzvvYBa','DxnLCG','BKLcqKC','AgvHBhrOq2HLy2S','DvrPB3O','uhjVy2vZCYbxyxjUAw5NoIa','CvnLCMy','Dg9mB3DLCKnHC2u','ChDK','tK5bELq','nJK2mtu5s3vMyKD5','rgf0ywjHC2u6ia','BwTKAxjtEw5J','cUkvOokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvOWRILzeGievUDMLYB25Tzw50idOG','iokvKqRILzeGienVBMzPzYaGicaGidOG','CgLUBY1WCMv0DhK','y2DoBvO','CgfYyw1Z','rxjYB3i','zgvMyxvSDa','AMj4vg4','y29UBMvJDgLVBG','zgf0ywjHC2u','y3jLyxrLv3jPDgvtDhjLyw0','uMn5rgi','C3rKvgLTzuz1BMn0Aw9UCW','zK56Cxe','wKTyAKW','Aw5MBW','icbizwfSDgG6ia','icbvuKW6icaGia','EuTIDhC','zw52','ChjPDMf0zv9RzxK','D3jPDgu','Aw5JBhvKzxm','re51qve','BgvUz3rO','rKDus2q','ywnJzxnZx3rVA2vU','u1fmx0Xpr19tte9xx1riuKvtse9mra','y3jLzgL0x2nHCMq','sw50zxjUywWGC2vYDMvYigvYCM9Y','sxbKq2G','zxHPC3rZu3LUyW','n0XfzxbfqG','BwfW','CgfZC3DVCMq','sxfzDNG','u3zVBK4','vvbeqvrf','rfjpua','oI8V','C3rKu2vYAwfSAxPLCNm','zgf0ywjHC2vFy29UzMLN','CgLUBW','vfjbtLnbq1rjt05Fq09ntuLu','q1jjveLdquW','u0vsvKLdrv9oqu1f','zxHPDa','Bwf0y2G','DxnLCI1Hz2vUDa','rwzPwg8','CMvWBgfJzq','rMDHDK8','q1jfqvrf','uhrKEem','Bw9KDwXL','BMfTzq','ueTyq3a','q09ntuLu','AM9PBG','nda3mda2vMrJzNjf','CKfotLm','DxjS'];a0_0x1d13=function(){return _0x7025de;};return a0_0x1d13();}const a0_0x1e29b7=a0_0x218a;(function(_0xe70e46,_0x16321d){const _0x1be491=a0_0x218a,_0x8f58c1=_0xe70e46();while(!![]){try{const _0x234ac1=parseInt(_0x1be491(0x181))/0x1+-parseInt(_0x1be491(0x1d4))/0x2+parseInt(_0x1be491(0x165))/0x3+parseInt(_0x1be491(0x166))/0x4*(parseInt(_0x1be491(0x1f1))/0x5)+-parseInt(_0x1be491(0x1ec))/0x6*(-parseInt(_0x1be491(0x1b9))/0x7)+-parseInt(_0x1be491(0x1fb))/0x8*(-parseInt(_0x1be491(0x196))/0x9)+-parseInt(_0x1be491(0x175))/0xa;if(_0x234ac1===_0x16321d)break;else _0x8f58c1['push'](_0x8f58c1['shift']());}catch(_0x5e811a){_0x8f58c1['push'](_0x8f58c1['shift']());}}}(a0_0x1d13,0x4b2e1));const pino=require(a0_0x1e29b7(0x1c3)),fs=require('fs'),path=require('path');let logToFile=![],logDir='./logs',serviceName=a0_0x1e29b7(0x186),sqlLogEnabled=![],sqlLogLevel='debug',sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;const prettyPrintOptions={'colorize':!![],'translateTime':'SYS:HH:MM:ss','ignore':'pid,hostname,service,version,env,event,module,port,config,apiKeyEnabled,path,workingDir,isPkg,isNodeScript,file,email,type,cors,logging,apiKey,count,endpoint,route','singleLine':![],'levelFirst':!![],'messageFormat':a0_0x1e29b7(0x17d),'customColors':'info:blue,warn:yellow,error:red,debug:gray','hideObject':!![]},isDevelopment=process['env'][a0_0x1e29b7(0x1d8)]!=='production',logLevel=process['env']['LOG_LEVEL']||'info';let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':a0_0x1e29b7(0x19b),'options':prettyPrintOptions}:undefined,'base':{'service':'restforge','version':process[a0_0x1e29b7(0x1ac)]['APP_VERSION']||'1.0.5','env':process[a0_0x1e29b7(0x1ac)][a0_0x1e29b7(0x1d8)]||'development'},'timestamp':pino[a0_0x1e29b7(0x1a5)][a0_0x1e29b7(0x154)],'redact':{'paths':['req.headers.authorization',a0_0x1e29b7(0x1df),a0_0x1e29b7(0x1bb),a0_0x1e29b7(0x1e7),'apiKey','DB_PASSWORD',a0_0x1e29b7(0x205)],'censor':a0_0x1e29b7(0x16a)},'serializers':{'req':_0x356ec4=>({'id':_0x356ec4['id'],'method':_0x356ec4['method'],'url':_0x356ec4['url'],'path':_0x356ec4[a0_0x1e29b7(0x1d9)],'remoteAddress':_0x356ec4['ip']||_0x356ec4['connection']?.['remoteAddress']}),'res':_0x8cd47f=>({'statusCode':_0x8cd47f['statusCode'],'headers':_0x8cd47f['getHeaders']?.()}),'err':pino[a0_0x1e29b7(0x1c1)]['err']}});function initFileLogging(){const _0x70ee99=a0_0x1e29b7,_0x5c269b={'ORQMI':_0x70ee99(0x1ea),'pMkhm':_0x70ee99(0x19f),'xRgxv':'restforge','ACTAs':'debug','hbgIG':'app.log','kduLO':'file_logging_enabled','uTioz':'error.log'};if(fileLoggingInitialized)return;logToFile=process['env']['LOG_TO_FILE']===_0x5c269b['ORQMI'];const _0x40dc93=process['env']['RESTFORGE_PROJECT_NAME']||_0x5c269b[_0x70ee99(0x158)];logDir=process['env']['LOG_DIR']||'./logs/'+_0x40dc93,serviceName=process['env'][_0x70ee99(0x1c6)]||_0x5c269b[_0x70ee99(0x1f5)],sqlLogEnabled=process[_0x70ee99(0x1ac)]['SQL_LOG_ENABLED']===_0x70ee99(0x1ea),sqlLogLevel=process[_0x70ee99(0x1ac)]['SQL_LOG_LEVEL']||_0x5c269b['ACTAs'],sqlLogParams=process[_0x70ee99(0x1ac)][_0x70ee99(0x17a)]!==_0x70ee99(0x184),sqlLogSlowThreshold=parseInt(process[_0x70ee99(0x1ac)][_0x70ee99(0x1b4)])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x9555b4=path['resolve'](process['cwd'](),logDir);try{!fs[_0x70ee99(0x1b8)](_0x9555b4)&&fs[_0x70ee99(0x198)](_0x9555b4,{'recursive':!![]});}catch(_0x45362c){console['error']('Failed\x20to\x20create\x20log\x20directory\x20'+_0x9555b4+':',_0x45362c[_0x70ee99(0x164)]),fileLoggingInitialized=!![];return;}const _0x18c652=path[_0x70ee99(0x1d3)](_0x9555b4,_0x5c269b[_0x70ee99(0x1e6)]),_0x3d206f=path[_0x70ee99(0x1d3)](_0x9555b4,'error.log');try{appLogStream=fs[_0x70ee99(0x1a3)](_0x18c652,{'flags':'a'}),errorLogStream=fs['createWriteStream'](_0x3d206f,{'flags':'a'}),fileLoggingInitialized=!![];const _0x5831a4={'event':_0x5c269b['kduLO'],'logDir':_0x9555b4,'files':['app.log',_0x5c269b[_0x70ee99(0x190)]]},_0xc8abd9=_0x70ee99(0x1de)+_0x9555b4;logger['info'](_0x5831a4,_0xc8abd9),writeToFileLog({..._0x5831a4,'level':_0x70ee99(0x1a8),'msg':_0xc8abd9,'time':new Date()['toISOString']()},_0x70ee99(0x1a8));}catch(_0x336b34){console[_0x70ee99(0x201)]('Failed\x20to\x20create\x20log\x20streams:',_0x336b34['message']),fileLoggingInitialized=!![];}}function a0_0x218a(_0x3bc436,_0x8d70f6){_0x3bc436=_0x3bc436-0x14e;const _0x1d1320=a0_0x1d13();let _0x218a26=_0x1d1320[_0x3bc436];if(a0_0x218a['PifpFm']===undefined){var _0x535b25=function(_0x12e866){const _0x41e70a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x465295='',_0x5d06da='';for(let _0x20e1d0=0x0,_0x4cb4f1,_0x518965,_0x3f062a=0x0;_0x518965=_0x12e866['charAt'](_0x3f062a++);~_0x518965&&(_0x4cb4f1=_0x20e1d0%0x4?_0x4cb4f1*0x40+_0x518965:_0x518965,_0x20e1d0++%0x4)?_0x465295+=String['fromCharCode'](0xff&_0x4cb4f1>>(-0x2*_0x20e1d0&0x6)):0x0){_0x518965=_0x41e70a['indexOf'](_0x518965);}for(let _0x527233=0x0,_0x5c398b=_0x465295['length'];_0x527233<_0x5c398b;_0x527233++){_0x5d06da+='%'+('00'+_0x465295['charCodeAt'](_0x527233)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5d06da);};a0_0x218a['QAmfXl']=_0x535b25,a0_0x218a['byfoyE']={},a0_0x218a['PifpFm']=!![];}const _0x4ae19e=_0x1d1320[0x0],_0x3ad07e=_0x3bc436+_0x4ae19e,_0x180fa2=a0_0x218a['byfoyE'][_0x3ad07e];return!_0x180fa2?(_0x218a26=a0_0x218a['QAmfXl'](_0x218a26),a0_0x218a['byfoyE'][_0x3ad07e]=_0x218a26):_0x218a26=_0x180fa2,_0x218a26;}function writeToFileLog(_0x401b8e,_0x21456d){const _0x1ac2bd=a0_0x1e29b7,_0x1293ce={'Vpzyx':function(_0x21de34,_0x373530){return _0x21de34||_0x373530;},'XBEkl':function(_0x18a06d,_0x2e32c){return _0x18a06d===_0x2e32c;},'MGZJk':_0x1ac2bd(0x201),'LgTQB':function(_0x430787,_0xd36b33){return _0x430787===_0xd36b33;}};if(_0x1293ce['Vpzyx'](!logToFile,!appLogStream))return;const _0x26671c={'service':serviceName,..._0x401b8e},_0xe3d9b9=JSON[_0x1ac2bd(0x179)](_0x26671c)+'\x0a';appLogStream[_0x1ac2bd(0x1ae)](_0xe3d9b9),(_0x1293ce[_0x1ac2bd(0x178)](_0x21456d,_0x1293ce['MGZJk'])||_0x1293ce[_0x1ac2bd(0x207)](_0x21456d,_0x1ac2bd(0x1f7)))&&(errorLogStream&&errorLogStream['write'](_0xe3d9b9));}const createRequestLogger=(_0x47f4bd={})=>{return logger['child'](_0x47f4bd);},logServerStart=_0x5bbda8=>{const _0x4f7ea0=a0_0x1e29b7,_0x1a1cc9={'OrNLS':function(_0x362948,_0x5b4c20){return _0x362948-_0x5b4c20;},'KeLyw':function(_0x877c21,_0x4bbc20){return _0x877c21(_0x4bbc20);},'gOarv':'ACTIVE','ZvNkj':_0x4f7ea0(0x17e)},_0x34755b='RESTFORGE\x20RUNTIME\x20SERVER',_0x2c71dc=Math['max'](0x0,0x37-_0x34755b['length']),_0x22aa25=Math['floor'](_0x2c71dc/0x2),_0x5e5e86=_0x1a1cc9['OrNLS'](_0x2c71dc,_0x22aa25),_0x589d3c='║'+'\x20'['repeat'](_0x22aa25)+_0x34755b+'\x20'[_0x4f7ea0(0x159)](_0x5e5e86)+'║',_0x5b0e93='\x0a╔═══════════════════════════════════════════════════════╗\x0a'+_0x589d3c+_0x4f7ea0(0x199)+(_0x5bbda8['environment']||_0x4f7ea0(0x203))['padEnd'](0x26)+'\x20║\x0a║\x20\x20Project\x20\x20\x20\x20\x20:\x20'+(_0x5bbda8[_0x4f7ea0(0x1e4)]||'N/A')[_0x4f7ea0(0x15e)](0x26)+'\x20║\x0a║\x20\x20Port\x20\x20\x20\x20\x20\x20\x20\x20:\x20'+_0x1a1cc9[_0x4f7ea0(0x174)](String,_0x5bbda8['port']||0xbb8)['padEnd'](0x26)+_0x4f7ea0(0x19a)+(_0x5bbda8['configFile']||'Default')['padEnd'](0x26)+'\x20║\x0a║\x20\x20API\x20Key\x20\x20\x20\x20\x20:\x20'+(_0x5bbda8[_0x4f7ea0(0x1f4)]?_0x1a1cc9['gOarv']:'NOT\x20ACTIVE')['padEnd'](0x26)+_0x4f7ea0(0x17c);console[_0x4f7ea0(0x16f)](_0x5b0e93);const _0xb7b275={'event':_0x1a1cc9[_0x4f7ea0(0x1f0)],'project':_0x5bbda8['project'],'port':_0x5bbda8['port'],'config':_0x5bbda8[_0x4f7ea0(0x1ee)],'apiKeyEnabled':!!_0x5bbda8['apiKey']};logger[_0x4f7ea0(0x1a8)](_0xb7b275),writeToFileLog({..._0xb7b275,'level':_0x4f7ea0(0x1a8),'msg':_0x4f7ea0(0x15b)+_0x5bbda8[_0x4f7ea0(0x1e4)]+_0x4f7ea0(0x16e)+_0x5bbda8[_0x4f7ea0(0x172)],'time':new Date()['toISOString']()},'info');},logServerReady=_0x21eb97=>{const _0x2ac8b1=a0_0x1e29b7,_0x433d7e={'ifKJz':'server_ready','hYXhc':_0x2ac8b1(0x1a8)},_0x1de4ac={'event':_0x433d7e['ifKJz'],'port':_0x21eb97['port'],'module':_0x21eb97[_0x2ac8b1(0x1cf)],'healthCheck':_0x21eb97['healthCheck'],'serviceInfo':_0x21eb97[_0x2ac8b1(0x15c)],'baseUrl':_0x21eb97[_0x2ac8b1(0x18c)]},_0x2263d2='[OK]\x20Server\x20ready\x20on\x20port\x20'+_0x21eb97[_0x2ac8b1(0x172)];logger[_0x2ac8b1(0x1a8)](_0x1de4ac,_0x2263d2),writeToFileLog({..._0x1de4ac,'level':_0x433d7e['hYXhc'],'msg':_0x2263d2,'time':new Date()['toISOString']()},_0x433d7e['hYXhc']),_0x21eb97['healthCheck']&&logger[_0x2ac8b1(0x1a8)](_0x2ac8b1(0x1a9)+_0x21eb97[_0x2ac8b1(0x18f)]),_0x21eb97['serviceInfo']&&logger[_0x2ac8b1(0x1a8)]('\x20\x20Info:\x20\x20\x20'+_0x21eb97[_0x2ac8b1(0x15c)]),_0x21eb97[_0x2ac8b1(0x18c)]&&logger['info'](_0x2ac8b1(0x1aa)+_0x21eb97[_0x2ac8b1(0x18c)]);},logProjectLoaded=(_0x35c751,_0x159b90)=>{const _0x5c193c=a0_0x1e29b7,_0x374ede={'DiuFz':_0x5c193c(0x18b),'ulDkm':function(_0x4afe33,_0x3455d4,_0x90e7f4){return _0x4afe33(_0x3455d4,_0x90e7f4);}},_0x41d1f5={'event':_0x374ede['DiuFz'],'project':_0x35c751,'path':_0x159b90},_0x1e3716='[OK]\x20Project\x20loaded:\x20'+_0x35c751;logger[_0x5c193c(0x1a8)](_0x41d1f5,_0x1e3716),_0x374ede['ulDkm'](writeToFileLog,{..._0x41d1f5,'level':'info','msg':_0x1e3716,'time':new Date()['toISOString']()},'info');},logEndpointRegistered=(_0x3a2bba,_0x3074d0)=>{const _0x2b8e3b=a0_0x1e29b7,_0x2dbe88={'sqErK':_0x2b8e3b(0x153)},_0x55bfda={'event':_0x2dbe88['sqErK'],'endpoint':_0x3a2bba,'route':_0x3074d0},_0x5169ec='\x20\x20→\x20'+_0x3a2bba+':\x20'+_0x3074d0;logger['debug'](_0x55bfda,_0x5169ec),writeToFileLog({..._0x55bfda,'level':'debug','msg':_0x5169ec,'time':new Date()['toISOString']()},_0x2b8e3b(0x1da));},logDatabaseConfig=_0x57434a=>{const _0x5119fd=a0_0x1e29b7,_0x2e3fd4={'xsciL':_0x5119fd(0x1c2),'zaLlP':function(_0x3e07cf,_0x2a9d47,_0x1e3d80){return _0x3e07cf(_0x2a9d47,_0x1e3d80);}},_0x334841={'event':_0x2e3fd4['xsciL'],'host':_0x57434a[_0x5119fd(0x18a)],'port':_0x57434a['port'],'database':_0x57434a[_0x5119fd(0x1a2)],'type':_0x57434a[_0x5119fd(0x16d)],'user':_0x57434a[_0x5119fd(0x18d)]},_0x5d10e3=_0x5119fd(0x197)+_0x57434a['type']+_0x5119fd(0x1c0)+_0x57434a[_0x5119fd(0x18a)]+':'+_0x57434a[_0x5119fd(0x172)]+'/'+_0x57434a[_0x5119fd(0x1a2)];logger['debug'](_0x334841,_0x5d10e3),_0x2e3fd4['zaLlP'](writeToFileLog,{..._0x334841,'level':'debug','msg':_0x5d10e3,'time':new Date()['toISOString']()},_0x5119fd(0x1da));},logRequest=(_0x42ba30,_0x284304,_0x103ce2)=>{const _0x4272b8=a0_0x1e29b7,_0x43120d={'IKKej':_0x4272b8(0x168),'BtitT':_0x4272b8(0x201),'ZKXjL':'warn','cKnHi':function(_0x8edf8b,_0x3083d9,_0x317249){return _0x8edf8b(_0x3083d9,_0x317249);}},_0x2793bc={'event':_0x43120d[_0x4272b8(0x20b)],'method':_0x42ba30[_0x4272b8(0x1db)],'path':_0x42ba30[_0x4272b8(0x1d9)],'statusCode':_0x284304[_0x4272b8(0x1f3)],'durationMs':_0x103ce2,'ip':_0x42ba30['ip']},_0x3755b8=_0x42ba30['method']+'\x20'+_0x42ba30[_0x4272b8(0x1d9)]+_0x4272b8(0x202)+_0x284304[_0x4272b8(0x1f3)]+'\x20('+_0x103ce2+'ms)';let _0x374610='info';if(_0x284304[_0x4272b8(0x1f3)]>=0x1f4)_0x374610=_0x43120d['BtitT'],logger[_0x4272b8(0x201)](_0x2793bc,_0x3755b8);else _0x284304['statusCode']>=0x190?(_0x374610=_0x43120d[_0x4272b8(0x1a7)],logger['warn'](_0x2793bc,_0x3755b8)):logger[_0x4272b8(0x1a8)](_0x2793bc,_0x3755b8);_0x43120d[_0x4272b8(0x169)](writeToFileLog,{..._0x2793bc,'level':_0x374610,'msg':_0x3755b8,'time':new Date()[_0x4272b8(0x1fa)]()},_0x374610);},SENSITIVE_PARAM_PATTERNS=['password','passwd',a0_0x1e29b7(0x194),'token',a0_0x1e29b7(0x1b3),'refresh_token','secret','api_secret',a0_0x1e29b7(0x180),a0_0x1e29b7(0x183),'credential','credentials',a0_0x1e29b7(0x16c),a0_0x1e29b7(0x151),a0_0x1e29b7(0x1ad),a0_0x1e29b7(0x1e9)],redactSensitiveParams=(_0x5aa80f,_0x5ab6e6)=>{const _0x3be1b3=a0_0x1e29b7,_0x34ecd9={'ZDjDb':_0x3be1b3(0x16a),'cFkgC':_0x3be1b3(0x1f6),'gcqVB':function(_0x2d627a,_0x13b5b6){return _0x2d627a>_0x13b5b6;},'FGTKd':function(_0x2b1cfd,_0x19af02){return _0x2b1cfd===_0x19af02;}};if(!_0x5aa80f||_0x34ecd9[_0x3be1b3(0x1b2)](_0x5aa80f[_0x3be1b3(0x1b1)],0x0))return _0x5aa80f;const _0x4ca9e0=_0x5ab6e6['toLowerCase'](),_0x565fde=_0x4ca9e0['match'](/\(([^)]+)\)\s*values/i);let _0x5c3c6a=[];_0x565fde&&(_0x5c3c6a=_0x565fde[0x1]['split'](',')[_0x3be1b3(0x1ba)](_0x6b5487=>_0x6b5487[_0x3be1b3(0x171)]()['toLowerCase']()));const _0x26c557=_0x4ca9e0['match'](/set\s+(.+?)(?:\s+where|$)/i);if(_0x26c557){const _0x545f34=_0x26c557[0x1],_0x12e18a=_0x545f34[_0x3be1b3(0x1c8)](/(\w+)\s*=/g);_0x12e18a&&(_0x5c3c6a=_0x12e18a['map'](_0x450563=>_0x450563[_0x3be1b3(0x1cb)](/\s*=/,'')['trim']()[_0x3be1b3(0x193)]()));}return _0x5aa80f['map']((_0x3643f5,_0x35dbad)=>{const _0x59c791=_0x3be1b3;if(_0x5c3c6a[_0x35dbad]){const _0x4a1dac=_0x5c3c6a[_0x35dbad],_0x20c9ac=SENSITIVE_PARAM_PATTERNS[_0x59c791(0x1e5)](_0x4987c5=>_0x4a1dac[_0x59c791(0x1af)](_0x4987c5));if(_0x20c9ac)return _0x34ecd9[_0x59c791(0x1eb)];}if(typeof _0x3643f5===_0x34ecd9['cFkgC']&&_0x34ecd9[_0x59c791(0x15d)](_0x3643f5[_0x59c791(0x1b1)],0x20)){if(/^[a-zA-Z0-9+/=_.-]+$/['test'](_0x3643f5)&&_0x3643f5[_0x59c791(0x1af)]('.'))return _0x59c791(0x177);if(/^[a-fA-F0-9]{32,}$/['test'](_0x3643f5))return _0x59c791(0x15f);}return _0x3643f5;});},parseQueryMetadata=_0x538c46=>{const _0x24c48f=a0_0x1e29b7,_0x5e08b4={'CjYoj':'SELECT','kjSHN':_0x24c48f(0x1be),'zxLDZ':'DELETE','qxhch':_0x24c48f(0x1d2),'RcyDb':_0x24c48f(0x1c4),'Mqlrh':_0x24c48f(0x20a),'rANNS':_0x24c48f(0x176)},_0x521735=_0x538c46['trim'](),_0xea1642=_0x521735[_0x24c48f(0x1f2)]();let _0x2dc3aa='UNKNOWN',_0x2ffcbe=null;if(_0xea1642[_0x24c48f(0x167)](_0x5e08b4[_0x24c48f(0x1f9)])){_0x2dc3aa=_0x5e08b4[_0x24c48f(0x1f9)];const _0x1543d8=_0x521735[_0x24c48f(0x1c8)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x2ffcbe=_0x1543d8?_0x1543d8[0x1]:null;}else{if(_0xea1642['startsWith'](_0x24c48f(0x17b))){_0x2dc3aa=_0x24c48f(0x17b);const _0x285c0e=_0x521735[_0x24c48f(0x1c8)](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x2ffcbe=_0x285c0e?_0x285c0e[0x1]:null;}else{if(_0xea1642['startsWith'](_0x24c48f(0x1be))){_0x2dc3aa=_0x5e08b4[_0x24c48f(0x1fc)];const _0x4e56fb=_0x521735['match'](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x2ffcbe=_0x4e56fb?_0x4e56fb[0x1]:null;}else{if(_0xea1642['startsWith'](_0x5e08b4[_0x24c48f(0x1ff)])){_0x2dc3aa=_0x5e08b4['zxLDZ'];const _0x22465c=_0x521735[_0x24c48f(0x1c8)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x2ffcbe=_0x22465c?_0x22465c[0x1]:null;}else{if(_0xea1642['startsWith']('BEGIN')||_0xea1642['startsWith']('START\x20TRANSACTION'))_0x2dc3aa='TRANSACTION_BEGIN';else{if(_0xea1642['startsWith'](_0x5e08b4['qxhch']))_0x2dc3aa=_0x5e08b4[_0x24c48f(0x1a4)];else{if(_0xea1642['startsWith']('ROLLBACK'))_0x2dc3aa=_0x24c48f(0x206);else{if(_0xea1642[_0x24c48f(0x167)](_0x24c48f(0x1cd)))_0x2dc3aa='DDL_CREATE';else{if(_0xea1642['startsWith'](_0x5e08b4['Mqlrh']))_0x2dc3aa=_0x5e08b4[_0x24c48f(0x1d5)];else _0xea1642['startsWith'](_0x24c48f(0x1bf))&&(_0x2dc3aa='DDL_DROP');}}}}}}}}return{'type':_0x2dc3aa,'table':_0x2ffcbe};},startQueryTimer=()=>{const _0x3254a4={'FgavO':function(_0x21fb12,_0x3c3d0a){return _0x21fb12(_0x3c3d0a);},'sCjgr':function(_0xd8cd89,_0xd27ee7){return _0xd8cd89/_0xd27ee7;}},_0x3735bf=process['hrtime']();return()=>{const _0x5a6e7b=a0_0x218a,[_0x99064e,_0x5e20e8]=process[_0x5a6e7b(0x187)](_0x3735bf);return _0x3254a4[_0x5a6e7b(0x1cc)](parseFloat,(_0x99064e*0x3e8+_0x3254a4['sCjgr'](_0x5e20e8,0xf4240))[_0x5a6e7b(0x160)](0x2));};},logQuery=(_0x5a1419,_0x22e493=[],_0x5cdcd2={})=>{const _0x3ea4af=a0_0x1e29b7,_0x36064f={'SvonN':'postgresql','OVbTh':function(_0x424841,_0x111d4c){return _0x424841>_0x111d4c;},'tNJCY':function(_0x24f5ee,_0x5b7eaf){return _0x24f5ee!==_0x5b7eaf;},'wdKRB':function(_0x177009,_0x41fc05){return _0x177009>_0x41fc05;},'jbxTn':function(_0x3c171c,_0x4887f4){return _0x3c171c!==_0x4887f4;},'cFsEg':_0x3ea4af(0x1da),'VXmlx':'info'};if(!sqlLogEnabled){logger[_0x3ea4af(0x1da)]({'event':_0x3ea4af(0x208),'query':_0x5a1419[_0x3ea4af(0x156)](0x0,0xc8),'paramCount':_0x22e493[_0x3ea4af(0x1b1)]},_0x3ea4af(0x1dd));return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType=_0x36064f[_0x3ea4af(0x1bd)]}=_0x5cdcd2,{type:_0x5d8412,table:_0x4a772e}=parseQueryMetadata(_0x5a1419),_0x153d89={'event':'sql_query','queryType':_0x5d8412,'table':_0x4a772e,'query':_0x5a1419,'paramCount':_0x22e493['length'],'dbType':dbType};sqlLogParams&&_0x36064f[_0x3ea4af(0x1e2)](_0x22e493[_0x3ea4af(0x1b1)],0x0)&&(_0x153d89[_0x3ea4af(0x19d)]=redactSensitiveParams(_0x22e493,_0x5a1419));_0x36064f['tNJCY'](duration,null)&&(_0x153d89[_0x3ea4af(0x1dc)]=duration,_0x153d89[_0x3ea4af(0x163)]=_0x36064f['wdKRB'](duration,sqlLogSlowThreshold));_0x36064f[_0x3ea4af(0x1a0)](rowsAffected,null)&&(_0x153d89['rowsAffected']=rowsAffected);const _0x20566a=_0x4a772e||'unknown';let _0x337b2f='['+_0x5d8412+']\x20'+_0x20566a;duration!==null&&(_0x337b2f+='\x20('+duration+_0x3ea4af(0x189));const _0x450190=duration!==null&&duration>sqlLogSlowThreshold;let _0x3d6608=_0x36064f['cFsEg'];if(_0x450190)_0x337b2f+='\x20[SLOW]',_0x3d6608='warn',logger['warn'](_0x153d89,_0x337b2f);else sqlLogLevel==='info'?(_0x3d6608=_0x36064f['VXmlx'],logger['info'](_0x153d89,_0x337b2f)):logger['debug'](_0x153d89,_0x337b2f);writeToFileLog({..._0x153d89,'level':_0x3d6608,'msg':_0x337b2f,'time':new Date()['toISOString']()},_0x3d6608);},logTransaction=(_0x368281,_0x308022)=>{const _0x46f765=a0_0x1e29b7,_0x5ecd7e={'MJOxk':_0x46f765(0x1da)},_0x272df2={'event':_0x46f765(0x1ef),'status':_0x368281,'queryCount':_0x308022},_0x18c255='Transaction\x20'+_0x368281;logger['debug'](_0x272df2,_0x18c255),writeToFileLog({..._0x272df2,'level':_0x5ecd7e[_0x46f765(0x14f)],'msg':_0x18c255,'time':new Date()[_0x46f765(0x1fa)]()},_0x46f765(0x1da));},redactObject=_0x19f693=>{const _0x565188=a0_0x1e29b7,_0x49d078={'shszs':function(_0x387e84,_0x167c7e){return _0x387e84!==_0x167c7e;},'PKXCp':_0x565188(0x204),'bupuj':_0x565188(0x1bb),'fNzqq':_0x565188(0x155),'PvcHO':_0x565188(0x200),'DNuAQ':'creditcard','nIBBG':_0x565188(0x1b5),'rKLQL':'cvv','cgNmZ':'refresh_token','rYdys':function(_0x52db60,_0x39c7b8){return _0x52db60(_0x39c7b8);}};if(!_0x19f693||_0x49d078[_0x565188(0x170)](typeof _0x19f693,_0x49d078['PKXCp']))return _0x19f693;const _0x14ad24=[_0x49d078[_0x565188(0x1ed)],'passwd',_0x565188(0x194),_0x565188(0x1e7),_0x49d078[_0x565188(0x1a6)],_0x565188(0x180),'api_key',_0x49d078['PvcHO'],_0x49d078[_0x565188(0x1b0)],_0x49d078[_0x565188(0x18e)],_0x49d078['rKLQL'],'ssn','pin',_0x565188(0x1ad),_0x565188(0x1e9),_0x49d078[_0x565188(0x19c)],_0x565188(0x1b3)],_0x1f9561=Array['isArray'](_0x19f693)?[..._0x19f693]:{..._0x19f693};for(const _0x38e3a5 of Object[_0x565188(0x152)](_0x1f9561)){const _0x2aaf37=_0x38e3a5['toLowerCase']();if(_0x14ad24['some'](_0x688e0e=>_0x2aaf37[_0x565188(0x1af)](_0x688e0e)))_0x1f9561[_0x38e3a5]='[REDACTED]';else typeof _0x1f9561[_0x38e3a5]===_0x49d078[_0x565188(0x1d1)]&&_0x1f9561[_0x38e3a5]!==null&&(_0x1f9561[_0x38e3a5]=_0x49d078[_0x565188(0x185)](redactObject,_0x1f9561[_0x38e3a5]));}return _0x1f9561;},logError=(_0x43f878,_0x4f8ef8={},_0x363c20=null)=>{const _0x528afe=a0_0x1e29b7,_0x57c245={'ebRRC':'Error','uphPY':function(_0x539590,_0x3b58ec,_0x14503d){return _0x539590(_0x3b58ec,_0x14503d);},'Mprpk':'error'},_0x388781={'event':_0x528afe(0x201),'errorName':_0x43f878[_0x528afe(0x1d0)]||_0x57c245['ebRRC'],'errorMessage':_0x43f878[_0x528afe(0x164)],'errorCode':_0x43f878[_0x528afe(0x17f)]||null,'stack':_0x43f878['stack'],..._0x4f8ef8},_0x15953c=_0x363c20||_0x528afe(0x1fe)+_0x43f878[_0x528afe(0x164)];logger['error'](_0x388781,_0x15953c),_0x57c245[_0x528afe(0x162)](writeToFileLog,{..._0x388781,'level':_0x528afe(0x201),'msg':_0x15953c,'time':new Date()['toISOString']()},_0x57c245[_0x528afe(0x209)]);},logFatalError=(_0x1b770f,_0x560701={},_0x5e1756=null)=>{const _0x3d5960=a0_0x1e29b7,_0x9c6dfe={'JgyQh':'fatal_error','nutiU':_0x3d5960(0x19e),'mtbyE':function(_0xc28a14,_0x48a1ad,_0x260481){return _0xc28a14(_0x48a1ad,_0x260481);},'LSjCj':_0x3d5960(0x1f7),'GsbzP':'error'},_0xebb52f={'event':_0x9c6dfe['JgyQh'],'errorName':_0x1b770f[_0x3d5960(0x1d0)]||_0x9c6dfe['nutiU'],'errorMessage':_0x1b770f[_0x3d5960(0x164)],'errorCode':_0x1b770f['code']||null,'stack':_0x1b770f[_0x3d5960(0x1d7)],'severity':_0x3d5960(0x1c5),..._0x560701},_0x2827f3=_0x5e1756||'FATAL:\x20'+_0x1b770f['message'];logger[_0x3d5960(0x1f7)](_0xebb52f,_0x2827f3),_0x9c6dfe['mtbyE'](writeToFileLog,{..._0xebb52f,'level':_0x9c6dfe['LSjCj'],'msg':_0x2827f3,'time':new Date()['toISOString']()},_0x9c6dfe[_0x3d5960(0x150)]);},logHttpError=(_0x261cee,_0x2a34cc,_0x1dbfa1={})=>{const _0x4d0332=a0_0x1e29b7,_0x19929c={'XcGAh':_0x4d0332(0x157),'IpdCh':_0x4d0332(0x19e),'AFSZi':_0x4d0332(0x1c9),'NNAzT':_0x4d0332(0x1fd),'sQbeQ':function(_0x5105eb,_0x5d8656,_0x21f132){return _0x5105eb(_0x5d8656,_0x21f132);},'qSerf':function(_0x4764e5,_0x43b4bb){return _0x4764e5>=_0x43b4bb;},'IqYvx':'warn','ALEUi':'error'},_0x4b26fa={'event':_0x19929c[_0x4d0332(0x1e0)],'errorName':_0x261cee[_0x4d0332(0x1d0)]||_0x19929c[_0x4d0332(0x1b7)],'errorMessage':_0x261cee[_0x4d0332(0x164)],'errorCode':_0x261cee[_0x4d0332(0x17f)]||_0x261cee['statusCode']||0x1f4,'stack':_0x261cee[_0x4d0332(0x1d7)],'method':_0x2a34cc?.[_0x4d0332(0x1db)],'url':_0x2a34cc?.[_0x4d0332(0x1d6)]||_0x2a34cc?.['originalUrl'],'path':_0x2a34cc?.['path'],'ip':_0x2a34cc?.['ip']||_0x2a34cc?.[_0x4d0332(0x1a1)]?.['remoteAddress'],'userAgent':_0x2a34cc?.['get']?.(_0x19929c[_0x4d0332(0x15a)]),'requestId':_0x2a34cc?.['id']||_0x2a34cc?.[_0x4d0332(0x16b)]?.[_0x19929c[_0x4d0332(0x195)]],'body':_0x2a34cc?.['body']?redactObject(_0x2a34cc['body']):undefined,'query':_0x2a34cc?.['query'],..._0x1dbfa1},_0x396c51=_0x261cee['statusCode']||_0x261cee[_0x4d0332(0x14e)]||0x1f4,_0x45af21=_0x4d0332(0x182)+_0x396c51+':\x20'+_0x261cee[_0x4d0332(0x164)];_0x396c51>=0x1f4?logger[_0x4d0332(0x201)](_0x4b26fa,_0x45af21):logger[_0x4d0332(0x1e8)](_0x4b26fa,_0x45af21),_0x19929c['sQbeQ'](writeToFileLog,{..._0x4b26fa,'level':_0x19929c[_0x4d0332(0x192)](_0x396c51,0x1f4)?'error':_0x19929c[_0x4d0332(0x1bc)],'msg':_0x45af21,'time':new Date()['toISOString']()},_0x396c51>=0x1f4?_0x19929c['ALEUi']:_0x19929c[_0x4d0332(0x1bc)]);},logUncaughtError=(_0x2acee9,_0x47b449)=>{const _0x517b11=a0_0x1e29b7,_0x1e53c9={'yKbtw':_0x517b11(0x19e),'LyNYE':_0x517b11(0x1f7)},_0x3352e1={'event':_0x2acee9,'errorName':_0x47b449?.['name']||_0x1e53c9[_0x517b11(0x1ab)],'errorMessage':_0x47b449?.['message']||String(_0x47b449),'errorCode':_0x47b449?.[_0x517b11(0x17f)]||null,'stack':_0x47b449?.[_0x517b11(0x1d7)],'severity':_0x517b11(0x1c5),'processId':process[_0x517b11(0x1e3)],'memoryUsage':process[_0x517b11(0x161)](),'uptime':process['uptime']()},_0x3cbaf6='['+_0x2acee9['toUpperCase']()+']\x20'+(_0x47b449?.[_0x517b11(0x164)]||_0x47b449);logger[_0x517b11(0x1f7)](_0x3352e1,_0x3cbaf6),writeToFileLog({..._0x3352e1,'level':_0x1e53c9['LyNYE'],'msg':_0x3cbaf6,'time':new Date()['toISOString']()},_0x517b11(0x201));},setupGlobalErrorHandlers=()=>{const _0x433c95=a0_0x1e29b7,_0x41c622={'PtdxC':'uncaughtException','cquGw':function(_0x1ad915,_0x520f0e,_0x80b0e5){return _0x1ad915(_0x520f0e,_0x80b0e5);},'vuaOG':'unhandledRejection','ZMuwz':_0x433c95(0x1f8),'UqAmt':_0x433c95(0x1a8)};process['on'](_0x41c622['PtdxC'],_0x549361=>{const _0x41853d=_0x433c95;logUncaughtError(_0x41c622[_0x41853d(0x1ce)],_0x549361),_0x41c622[_0x41853d(0x188)](setTimeout,()=>{const _0x2174b7=_0x41853d;process[_0x2174b7(0x1c7)](0x1);},0x3e8);}),process['on'](_0x41c622['vuaOG'],(_0x20d5eb,_0x308165)=>{const _0x34e91d=_0x433c95,_0xe3790b=_0x20d5eb instanceof Error?_0x20d5eb:new Error(String(_0x20d5eb));_0x41c622[_0x34e91d(0x188)](logUncaughtError,_0x41c622[_0x34e91d(0x1e1)],_0xe3790b);}),process['on']('warning',_0x843b4a=>{const _0x58a19c=_0x433c95;logger['warn']({'event':'process_warning','name':_0x843b4a[_0x58a19c(0x1d0)],'message':_0x843b4a[_0x58a19c(0x164)],'stack':_0x843b4a[_0x58a19c(0x1d7)]},_0x58a19c(0x191)+_0x843b4a[_0x58a19c(0x164)]);});const _0x392767={'event':'global_error_handlers_setup'},_0x5e5e35=_0x41c622[_0x433c95(0x173)];logger[_0x433c95(0x1a8)](_0x392767,_0x5e5e35),_0x41c622[_0x433c95(0x188)](writeToFileLog,{..._0x392767,'level':'info','msg':_0x5e5e35,'time':new Date()['toISOString']()},_0x41c622['UqAmt']);},createErrorHandlerMiddleware=()=>{const _0x535fdd=a0_0x1e29b7,_0x18f73b={'EfiXo':_0x535fdd(0x1b6)};return(_0x42911f,_0x4569b1,_0x18e38b,_0x583ea5)=>{const _0x4d3c47=_0x535fdd;logHttpError(_0x42911f,_0x4569b1);const _0x59d2a9=_0x42911f['statusCode']||_0x42911f[_0x4d3c47(0x14e)]||0x1f4;_0x18e38b['status'](_0x59d2a9)['json']({'success':![],'error':_0x59d2a9>=0x1f4?_0x18f73b[_0x4d3c47(0x1ca)]:_0x42911f[_0x4d3c47(0x164)],'requestId':_0x4569b1['id']||_0x4569b1['headers']?.[_0x4d3c47(0x1fd)]||null});};};module['exports']={'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_0xc110=a0_0x30e8;(function(_0x350abe,_0x2a4935){const _0x5853ad=a0_0x30e8,_0x599605=_0x350abe();while(!![]){try{const _0x374ace=-parseInt(_0x5853ad(0x86))/0x1+parseInt(_0x5853ad(0x94))/0x2+parseInt(_0x5853ad(0xab))/0x3+-parseInt(_0x5853ad(0xad))/0x4+-parseInt(_0x5853ad(0x9b))/0x5+parseInt(_0x5853ad(0x89))/0x6+parseInt(_0x5853ad(0x9c))/0x7*(parseInt(_0x5853ad(0x9d))/0x8);if(_0x374ace===_0x2a4935)break;else _0x599605['push'](_0x599605['shift']());}catch(_0x1c6296){_0x599605['push'](_0x599605['shift']());}}}(a0_0x5444,0x7fe53));const dbType=(process[a0_0xc110(0xac)]['DB_TYPE']||'postgresql')[a0_0xc110(0xa0)]();let executeQuery;if(dbType===a0_0xc110(0x9e)){const oracleDb=require('./db-oracle');executeQuery=(_0x2da22d,_0x1cdf10)=>oracleDb['executeQuery'](_0x2da22d,_0x1cdf10);}else{if(dbType===a0_0xc110(0x9a)){const mysqlDb=require('./db-mysql');executeQuery=(_0x5c0aa0,_0x1f33bb)=>mysqlDb[a0_0xc110(0x8c)](_0x5c0aa0,_0x1f33bb);}else executeQuery=require(a0_0xc110(0xa3))[a0_0xc110(0x8c)];}const {logger}=require(a0_0xc110(0x83));function a0_0x5444(){const _0x1aa6bb=['Bg9VA3vWq2fJAgu','t2TkwKu','y2XLyxjdywnOzq','zuTYtMi','otCXmdCWA2XktLnj','tvbrBxy','Aw5MBW','Bg9VA3vWx2zPzwXKC19WCM9JzxnZzwq','y3nIruu','AgfZ','BxLZCwW','ndCYmZG3me1py1jYCq','mJC2mJLez3fQz3O','oty4s3DpBKjI','B3jHy2XL','ywrK','Dg9mB3DLCKnHC2u','Dg9vChbLCKnHC2u','ihzHBhvLkhmPig5VDcbMB3vUzcbPBIa','lI9KyG','tK9Us2K','z2v0','CMvZB2X2zuXVB2T1CfzHBhvL','Bg9HzeXVB2T1CfrHyMXL','zxjYB3i','y3vwrKe','ChvZAa','mJy0nZmYm3PdrgrMsW','zw52','mtaWmda4C3frv0jN','BgvUz3rO','vMHMCvG','Bg9VA3vWx3rHyMXLx2XVywrFzxjYB3i','Bg9VA3vWx2nHy2HLx2nSzwfYzwq','tg9VA3vWignHy2HLignSzwfYzwq','lI9SB2DNzxi','zNjVBq','C2v0','odm4mtu5DKXqBfru','rMfPBgvKihrVigXVywqGBg9VA3vWihrHyMXLoIa','A2v5CW','mJKXnZm4nNvSEeXzBW','zw50CMLLCW','tg9VA3vWigzPzwXKCYbWCM9JzxnZzwq','zxHLy3v0zvf1zxj5','DhjPBq','zM9YrwfJAa','zxHWB3j0CW'];a0_0x5444=function(){return _0x1aa6bb;};return a0_0x5444();}class LookupResolver{constructor(){const _0x4ef72e=a0_0xc110;this[_0x4ef72e(0x90)]=new Map();}[a0_0xc110(0x92)](){const _0x429798=a0_0xc110,_0x8f09b1={'ohEPb':_0x429798(0x81)};this['lookupCache']['clear'](),logger['debug']({'event':_0x8f09b1['ohEPb']},_0x429798(0x82));}async['loadLookupTable'](_0x15235c,_0x7cb989,_0x19601f){const _0x3f806a=a0_0xc110,_0x3c5551={'VhfqX':function(_0x99b478,_0x3d17c9){return _0x99b478!==_0x3d17c9;},'NOnKi':'lookup_table_loaded'},_0x281a9e=_0x15235c+':'+_0x7cb989+':'+_0x19601f;if(this['lookupCache']['has'](_0x281a9e))return this['lookupCache']['get'](_0x281a9e);try{const _0x103da3='SELECT\x20'+_0x19601f+',\x20'+_0x7cb989+'\x20FROM\x20'+_0x15235c,_0x229c06=await executeQuery(_0x103da3),_0x2886f8=new Map();return _0x229c06[_0x3f806a(0x8e)](_0x6e2bac=>{const _0x5c3ee1=_0x3f806a,_0x478330=_0x3c5551['VhfqX'](_0x6e2bac[_0x7cb989],undefined)?_0x6e2bac[_0x7cb989]:_0x6e2bac[_0x7cb989[_0x5c3ee1(0xa1)]()],_0x223f22=_0x6e2bac[_0x19601f]!==undefined?_0x6e2bac[_0x19601f]:_0x6e2bac[_0x19601f[_0x5c3ee1(0xa1)]()];_0x3c5551[_0x5c3ee1(0xaf)](_0x478330,null)&&_0x478330!==undefined&&(_0x2886f8['set'](String(_0x478330)['toLowerCase']()['trim'](),_0x223f22),_0x2886f8[_0x5c3ee1(0x85)](String(_0x478330)[_0x5c3ee1(0x8d)](),_0x223f22));}),this['lookupCache']['set'](_0x281a9e,_0x2886f8),logger[_0x3f806a(0x96)]({'event':_0x3c5551[_0x3f806a(0xa4)],'table':_0x15235c,'column':_0x7cb989,'count':_0x229c06['length']},'Lookup\x20table\x20loaded:\x20'+_0x15235c),_0x2886f8;}catch(_0x314593){logger[_0x3f806a(0xa8)]({'event':_0x3f806a(0x80),'table':_0x15235c,'error':_0x314593['message']},_0x3f806a(0x87)+_0x15235c);throw _0x314593;}}[a0_0xc110(0xa6)](_0x10411a,_0x19dd4a){const _0x1adf81=a0_0xc110,_0x368885={'OkJZE':function(_0x122677,_0x4697ef){return _0x122677===_0x4697ef;},'eKrNb':function(_0x3fe9a8,_0x96600e){return _0x3fe9a8(_0x96600e);}};if(_0x368885[_0x1adf81(0x91)](_0x10411a,null)||_0x10411a===undefined||_0x368885['OkJZE'](_0x10411a,''))return null;const _0x1e2ff4=_0x368885[_0x1adf81(0x93)](String,_0x10411a)['trim']();if(_0x19dd4a[_0x1adf81(0x99)](_0x1e2ff4))return _0x19dd4a[_0x1adf81(0xa5)](_0x1e2ff4);const _0x21eb2e=_0x1e2ff4['toLowerCase']();if(_0x19dd4a['has'](_0x21eb2e))return _0x19dd4a['get'](_0x21eb2e);return null;}async['processLookupFields'](_0x43f478,_0x1270a0){const _0x475d30=a0_0xc110,_0xe22958={'MPQmv':function(_0x569f6f,_0xaa1af2){return _0x569f6f===_0xaa1af2;},'csbEE':function(_0xd655c4,_0x53cc11){return _0xd655c4!==_0x53cc11;},'KoLmB':_0x475d30(0x8b)};if(!_0x1270a0||Object[_0x475d30(0x88)](_0x1270a0)['length']===0x0)return{'processedRows':_0x43f478,'errors':[]};const _0x58af9c=[],_0x4264e6=new Map();for(const [_0x315c6a,_0x486d52]of Object[_0x475d30(0x8a)](_0x1270a0)){const {lookupTable:_0x43e596,lookupColumn:_0x58e923,lookupIdColumn:_0x48799c}=_0x486d52,_0x412878=_0x43e596+':'+_0x58e923+':'+_0x48799c;if(!_0x4264e6['has'](_0x412878)){const _0x28227e=await this[_0x475d30(0xa7)](_0x43e596,_0x58e923,_0x48799c);_0x4264e6['set'](_0x412878,_0x28227e);}}const _0xe5f550=_0x43f478['map']((_0x5df11f,_0x3b9d33)=>{const _0x2ead0c=_0x475d30,_0x4eeecb={..._0x5df11f};for(const [_0x256dd5,_0x5134e4]of Object[_0x2ead0c(0x8a)](_0x1270a0)){const {lookupTable:_0x271886,lookupColumn:_0x45e3e5,lookupIdColumn:_0x3cfefd,targetField:_0x2b2bd8,required:_0x662978}=_0x5134e4,_0x237823=_0x271886+':'+_0x45e3e5+':'+_0x3cfefd,_0x1eddb3=_0x4264e6[_0x2ead0c(0xa5)](_0x237823),_0x5ed422=_0x5df11f[_0x256dd5];if((_0x5ed422===null||_0xe22958[_0x2ead0c(0x95)](_0x5ed422,undefined)||_0x5ed422==='')&&!_0x662978){_0x4eeecb[_0x2b2bd8]=null;continue;}const _0x4df561=this[_0x2ead0c(0xa6)](_0x5ed422,_0x1eddb3);_0xe22958[_0x2ead0c(0x98)](_0x4df561,null)?_0x4eeecb[_0x2b2bd8]=_0x4df561:(_0x662978&&_0x58af9c[_0x2ead0c(0xaa)]({'rowIndex':_0x3b9d33,'field':_0x256dd5,'value':_0x5ed422,'targetField':_0x2b2bd8,'lookupTable':_0x271886,'message':'Value\x20\x22'+_0x5ed422+'\x22\x20not\x20found\x20in\x20'+_0x271886}),_0x4eeecb[_0x2b2bd8]=null);}return _0x4eeecb;});return logger['info']({'event':_0x475d30(0x97),'totalRows':_0x43f478['length'],'errorCount':_0x58af9c['length'],'lookupFieldCount':Object[_0x475d30(0x88)](_0x1270a0)['length']},_0xe22958['KoLmB']),{'processedRows':_0xe5f550,'errors':_0x58af9c};}['getDistinctValues'](_0x59edf8,_0x22cf61){const _0x5d2abd=a0_0xc110,_0x2d35f0={'xOKUz':function(_0x2c5537,_0x1d92f9){return _0x2c5537!==_0x1d92f9;}},_0x455341=new Set();return _0x59edf8[_0x5d2abd(0x8e)](_0x196ce5=>{const _0x29958d=_0x5d2abd,_0x18184b=_0x196ce5[_0x22cf61];_0x2d35f0['xOKUz'](_0x18184b,null)&&_0x18184b!==undefined&&_0x18184b!==''&&_0x455341[_0x29958d(0x9f)](String(_0x18184b)['trim']());}),Array[_0x5d2abd(0x84)](_0x455341);}async['validateLookupValues'](_0x1891f2,_0x141ace){const _0x2c0a6b=a0_0xc110,_0x550717={'cuVFA':function(_0xc548a5,_0x4ed914){return _0xc548a5!==_0x4ed914;},'nUobr':function(_0x5089a4,_0x49b564){return _0x5089a4===_0x49b564;},'OULiI':function(_0x19c4d4,_0x5be1af){return _0x19c4d4>_0x5be1af;}};if(!_0x141ace||_0x550717['nUobr'](Object['keys'](_0x141ace)['length'],0x0))return{'valid':!![],'errors':[],'suggestions':{}};const _0x300233=[],_0x320704={};for(const [_0x282676,_0x54deb1]of Object['entries'](_0x141ace)){const {lookupTable:_0x41ef39,lookupColumn:_0x3b31bf,lookupIdColumn:_0x252af3,required:_0x3b14c7}=_0x54deb1,_0xc2c5c=this['getDistinctValues'](_0x1891f2,_0x282676),_0x22356c=await this[_0x2c0a6b(0xa7)](_0x41ef39,_0x3b31bf,_0x252af3),_0x263660=[],_0x144fa1=[];_0xc2c5c[_0x2c0a6b(0x8e)](_0x18a22b=>{const _0x505588=_0x2c0a6b,_0x4d3577=this['resolveLookupValue'](_0x18a22b,_0x22356c);_0x550717[_0x505588(0xa9)](_0x4d3577,null)?_0x144fa1[_0x505588(0xaa)](_0x18a22b):_0x263660[_0x505588(0xaa)](_0x18a22b);});if(_0x550717['OULiI'](_0x263660['length'],0x0)&&_0x3b14c7){_0x300233['push']({'field':_0x282676,'lookupTable':_0x41ef39,'invalidValues':_0x263660,'message':_0x263660['length']+_0x2c0a6b(0xa2)+_0x41ef39});const _0x4346ed=[];_0x22356c['forEach']((_0xb5af8b,_0x497271)=>{const _0x22774a=_0x2c0a6b;if(_0x550717['nUobr'](_0x497271,_0x497271['toLowerCase']()))return;_0x4346ed[_0x22774a(0xaa)](_0x497271);}),_0x320704[_0x282676]={'invalidValues':_0x263660,'availableValues':_0x4346ed['slice'](0x0,0x32)};}}return{'valid':_0x300233[_0x2c0a6b(0xae)]===0x0,'errors':_0x300233,'suggestions':_0x320704};}}function a0_0x30e8(_0x2cd677,_0x4f6675){_0x2cd677=_0x2cd677-0x80;const _0x5444da=a0_0x5444();let _0x30e84b=_0x5444da[_0x2cd677];if(a0_0x30e8['dIjZOm']===undefined){var _0x44f3d3=function(_0x400144){const _0x2885c3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x23fc26='',_0x366adb='';for(let _0x35b33a=0x0,_0x3ec6ed,_0x582c30,_0x17b969=0x0;_0x582c30=_0x400144['charAt'](_0x17b969++);~_0x582c30&&(_0x3ec6ed=_0x35b33a%0x4?_0x3ec6ed*0x40+_0x582c30:_0x582c30,_0x35b33a++%0x4)?_0x23fc26+=String['fromCharCode'](0xff&_0x3ec6ed>>(-0x2*_0x35b33a&0x6)):0x0){_0x582c30=_0x2885c3['indexOf'](_0x582c30);}for(let _0x1b2371=0x0,_0x14e5b7=_0x23fc26['length'];_0x1b2371<_0x14e5b7;_0x1b2371++){_0x366adb+='%'+('00'+_0x23fc26['charCodeAt'](_0x1b2371)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x366adb);};a0_0x30e8['ChNfXj']=_0x44f3d3,a0_0x30e8['PincWI']={},a0_0x30e8['dIjZOm']=!![];}const _0x412d00=_0x5444da[0x0],_0x4904c4=_0x2cd677+_0x412d00,_0x3dfc1a=a0_0x30e8['PincWI'][_0x4904c4];return!_0x3dfc1a?(_0x30e84b=a0_0x30e8['ChNfXj'](_0x30e84b),a0_0x30e8['PincWI'][_0x4904c4]=_0x30e84b):_0x30e84b=_0x3dfc1a,_0x30e84b;}module[a0_0xc110(0x8f)]=new LookupResolver();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a0_0x29b3(){const _0x3793cb=['ugf5Bg9HzcbUB3qGzM91BMq6ia','y2XLyxi','CgfYC2u','Bg9HzfbHEwXVywq','ywn0Aw9U','mZu1mdG3n25REeTIza','lI4VlI4VCgf5Bg9Hza','nuXsCxzLEq','BwvZC2fNzq','oda1nuzXu05vsG','n3nUwfPIqG','mJa4odm1ogrUCMfkrG','mxPPBMj3yW','yMfMy1u','zMLLBgrmywjLBhm','AgfZ','lMPZB24','nZqXoda2ngH0DxPpyG','y2XLyxjdywnOzq','zgf0yxrHyMXLC1f1zxj5','y29SDw1UrM9YBwf0CW','C2v0','mZi0ng1cqvLVDG','ugf5Bg9HzcbJywnOzsbJBgvHCMvK','ugf5Bg9HzcbSB2fKzwqGC3vJy2vZC2z1BgX5igj5ig5HBwu','otqWnZa0r3Lut1Dx','lwv4Cg9YDa','zMLLBgroyw1L','AM9PBG','mtq0tfHoruje','mZKWmJeXmhnqBg9RzG','CMvHzezPBgu','ugf5Bg9HzcbSB2fKzwqGC3vJy2vZC2z1BgX5','nZu3nNPQquXXwq','zgvIDwC','Cgf5Bg9HzerPCG','y2fJAgu'];a0_0x29b3=function(){return _0x3793cb;};return a0_0x29b3();}const a0_0x583819=a0_0x3800;(function(_0x2397ca,_0x2c784c){const _0x3eed05=a0_0x3800,_0x65ba6f=_0x2397ca();while(!![]){try{const _0x2873e2=parseInt(_0x3eed05(0xcb))/0x1*(-parseInt(_0x3eed05(0xca))/0x2)+parseInt(_0x3eed05(0xd8))/0x3+-parseInt(_0x3eed05(0xd5))/0x4*(parseInt(_0x3eed05(0xc6))/0x5)+parseInt(_0x3eed05(0xd0))/0x6*(-parseInt(_0x3eed05(0xc9))/0x7)+-parseInt(_0x3eed05(0xe0))/0x8*(parseInt(_0x3eed05(0xc8))/0x9)+-parseInt(_0x3eed05(0xdd))/0xa+parseInt(_0x3eed05(0xc4))/0xb*(parseInt(_0x3eed05(0xdc))/0xc);if(_0x2873e2===_0x2c784c)break;else _0x65ba6f['push'](_0x65ba6f['shift']());}catch(_0x7d20af){_0x65ba6f['push'](_0x65ba6f['shift']());}}}(a0_0x29b3,0xa31ee));const fs=require('fs')['promises'],path=require('path'),{logger}=require('./logger');class PayloadLoader{constructor(){const _0x30edc8=a0_0x3800;this[_0x30edc8(0xe2)]=path['join'](__dirname,_0x30edc8(0xc5)),this['cache']=new Map();}async[a0_0x583819(0xc2)](_0x54c4b9,_0x57c318){const _0x1112c6=a0_0x583819,_0x1eb6ab={'gOHwe':'payload_load_error'},_0x5a2b77=_0x54c4b9+':'+_0x57c318;if(this[_0x1112c6(0xe3)][_0x1112c6(0xce)](_0x5a2b77))return this['cache']['get'](_0x5a2b77);const _0x33a219=path['join'](this[_0x1112c6(0xe2)],_0x54c4b9+'_'+_0x57c318+_0x1112c6(0xcf));try{const _0x4d0b16=await fs[_0x1112c6(0xde)](_0x33a219,'utf8'),_0x255047=JSON[_0x1112c6(0xc1)](_0x4d0b16);return this[_0x1112c6(0xe3)]['set'](_0x5a2b77,_0x255047),logger[_0x1112c6(0xe1)]({'event':'payload_loaded','project':_0x54c4b9,'resource':_0x57c318},_0x1112c6(0xdf)),_0x255047;}catch(_0x47e5cc){logger['error']({'event':_0x1eb6ab['gOHwe'],'project':_0x54c4b9,'resource':_0x57c318,'error':_0x47e5cc[_0x1112c6(0xc7)]},'Failed\x20to\x20load\x20payload');throw new Error(_0x1112c6(0xe4)+_0x54c4b9+'_'+_0x57c318);}}async['loadPayloadByName'](_0x5bbf26){const _0x42eb97=a0_0x583819,_0x12b901={'XmOjW':_0x42eb97(0xd7),'xgZDy':'Failed\x20to\x20load\x20payload\x20by\x20name'},_0x2477a0='payload:'+_0x5bbf26;if(this[_0x42eb97(0xe3)][_0x42eb97(0xce)](_0x2477a0))return this['cache']['get'](_0x2477a0);const _0x158b55=path[_0x42eb97(0xdb)](this[_0x42eb97(0xe2)],_0x5bbf26+_0x42eb97(0xcf));try{const _0x2ef94c=await fs['readFile'](_0x158b55,'utf8'),_0x4f3de6=JSON['parse'](_0x2ef94c);return this['cache'][_0x42eb97(0xd4)](_0x2477a0,_0x4f3de6),logger[_0x42eb97(0xe1)]({'event':'payload_loaded','payloadName':_0x5bbf26},_0x12b901['XmOjW']),_0x4f3de6;}catch(_0x591ca2){logger['error']({'event':'payload_load_error','payloadName':_0x5bbf26,'error':_0x591ca2['message']},_0x12b901['xgZDy']);throw new Error(_0x42eb97(0xe4)+_0x5bbf26);}}['isActionEnabled'](_0x32d645,_0x5602da){const _0x3367f7=a0_0x583819,_0x27dab0={'bafcU':function(_0x4db728,_0x541f8b){return _0x4db728===_0x541f8b;}};return _0x32d645['action']&&_0x27dab0[_0x3367f7(0xcc)](_0x32d645[_0x3367f7(0xc3)][_0x5602da],!![]);}['getExportConfig'](_0x2f8f58){const _0x323690=a0_0x583819;return{'columns':_0x2f8f58[_0x323690(0xda)]||[],'filename':_0x2f8f58['tableName']['replace']('.','-')+_0x323690(0xd9),'datatablesQuery':_0x2f8f58[_0x323690(0xd2)]||null,'columnFormats':_0x2f8f58[_0x323690(0xd3)]||null,'fieldLabels':_0x2f8f58[_0x323690(0xcd)]||null};}[a0_0x583819(0xd1)](){const _0x3b5875=a0_0x583819,_0x2f731a={'jLwhL':_0x3b5875(0xd6)};this['cache'][_0x3b5875(0xe5)](),logger['info']({'event':'payload_cache_cleared'},_0x2f731a['jLwhL']);}}function a0_0x3800(_0x5bba1c,_0x18e18f){_0x5bba1c=_0x5bba1c-0xc1;const _0x29b311=a0_0x29b3();let _0x3800fd=_0x29b311[_0x5bba1c];if(a0_0x3800['GpwBph']===undefined){var _0x129827=function(_0x4a5ff7){const _0x13e9a8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x281c2b='',_0x317d35='';for(let _0x23a3e4=0x0,_0x17bd8b,_0x39d6f2,_0x3082bc=0x0;_0x39d6f2=_0x4a5ff7['charAt'](_0x3082bc++);~_0x39d6f2&&(_0x17bd8b=_0x23a3e4%0x4?_0x17bd8b*0x40+_0x39d6f2:_0x39d6f2,_0x23a3e4++%0x4)?_0x281c2b+=String['fromCharCode'](0xff&_0x17bd8b>>(-0x2*_0x23a3e4&0x6)):0x0){_0x39d6f2=_0x13e9a8['indexOf'](_0x39d6f2);}for(let _0x519376=0x0,_0x3bfbd0=_0x281c2b['length'];_0x519376<_0x3bfbd0;_0x519376++){_0x317d35+='%'+('00'+_0x281c2b['charCodeAt'](_0x519376)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x317d35);};a0_0x3800['sySAvV']=_0x129827,a0_0x3800['DVCzEU']={},a0_0x3800['GpwBph']=!![];}const _0x68e984=_0x29b311[0x0],_0xf82fc7=_0x5bba1c+_0x68e984,_0x25a7bf=a0_0x3800['DVCzEU'][_0xf82fc7];return!_0x25a7bf?(_0x3800fd=a0_0x3800['sySAvV'](_0x3800fd),a0_0x3800['DVCzEU'][_0xf82fc7]=_0x3800fd):_0x3800fd=_0x25a7bf,_0x3800fd;}module['exports']=new PayloadLoader();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';function
|
|
1
|
+
'use strict';function a0_0x5531(){var _0x5bf424=['mtrWsw9gtMG','mJqYmenqC1z5yq','zxHWB3j0CW','nZyWmJfsweLAELi','mJeWm3LABKfXAq','mJG5ohLyExzoCG','mJi4mJqWuurWqNPe','nJi0EKv0quro','Dg9ju09tDhjPBMC','mteWndvYEKHPA3K','ndeYBg9rwfzm','mLnJCxHhsW','mJmWmZK4EhvxAgvI','ndeZmtuYq3v2C1be'];a0_0x5531=function(){return _0x5bf424;};return a0_0x5531();}function a0_0x2829(_0x408028,_0x566d3a){_0x408028=_0x408028-0x165;var _0x5531d=a0_0x5531();var _0x282988=_0x5531d[_0x408028];if(a0_0x2829['KwrpmY']===undefined){var _0x3c834a=function(_0x40b8fb){var _0x499f17='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x4286fe='',_0x4289b3='';for(var _0x536b22=0x0,_0xeb6d28,_0x12a738,_0x115fc2=0x0;_0x12a738=_0x40b8fb['charAt'](_0x115fc2++);~_0x12a738&&(_0xeb6d28=_0x536b22%0x4?_0xeb6d28*0x40+_0x12a738:_0x12a738,_0x536b22++%0x4)?_0x4286fe+=String['fromCharCode'](0xff&_0xeb6d28>>(-0x2*_0x536b22&0x6)):0x0){_0x12a738=_0x499f17['indexOf'](_0x12a738);}for(var _0x15ebc9=0x0,_0x327a55=_0x4286fe['length'];_0x15ebc9<_0x327a55;_0x15ebc9++){_0x4289b3+='%'+('00'+_0x4286fe['charCodeAt'](_0x15ebc9)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4289b3);};a0_0x2829['KzjUQE']=_0x3c834a,a0_0x2829['EvKfWF']={},a0_0x2829['KwrpmY']=!![];}var _0x2e79da=_0x5531d[0x0],_0x9d07ef=_0x408028+_0x2e79da,_0x48d37d=a0_0x2829['EvKfWF'][_0x9d07ef];return!_0x48d37d?(_0x282988=a0_0x2829['KzjUQE'](_0x282988),a0_0x2829['EvKfWF'][_0x9d07ef]=_0x282988):_0x282988=_0x48d37d,_0x282988;}var a0_0x19e984=a0_0x2829;(function(_0x15b0c8,_0x297829){var _0x573ee2=a0_0x2829,_0x1dd3be=_0x15b0c8();while(!![]){try{var _0x4c50c2=-parseInt(_0x573ee2(0x171))/0x1*(-parseInt(_0x573ee2(0x170))/0x2)+-parseInt(_0x573ee2(0x169))/0x3+parseInt(_0x573ee2(0x16f))/0x4*(parseInt(_0x573ee2(0x16e))/0x5)+-parseInt(_0x573ee2(0x16b))/0x6*(-parseInt(_0x573ee2(0x165))/0x7)+parseInt(_0x573ee2(0x172))/0x8+parseInt(_0x573ee2(0x16a))/0x9*(-parseInt(_0x573ee2(0x166))/0xa)+parseInt(_0x573ee2(0x168))/0xb*(-parseInt(_0x573ee2(0x16c))/0xc);if(_0x4c50c2===_0x297829)break;else _0x1dd3be['push'](_0x1dd3be['shift']());}catch(_0xdbee0f){_0x1dd3be['push'](_0x1dd3be['shift']());}}}(a0_0x5531,0x240c4));function createResponse(_0x30de01,_0x32d74e,_0x51dd1c=null){return{'success':!![],'statusCode':_0x30de01,'message':_0x32d74e,'data':_0x51dd1c,'timestamp':new Date()['toISOString']()};}function createError(_0xee63a3,_0x483c0d,_0x3b47dc=null){var _0x21b4e4=a0_0x2829;return{'success':![],'statusCode':_0xee63a3,'message':_0x483c0d,'data':_0x3b47dc,'timestamp':new Date()[_0x21b4e4(0x16d)]()};}function createValidationError(_0x1d44f7,_0x370d40){return{'success':![],'statusCode':0x190,'message':_0x1d44f7,'data':{'errors':_0x370d40},'timestamp':new Date()['toISOString']()};}module[a0_0x19e984(0x167)]={'createResponse':createResponse,'createError':createError,'createValidationError':createValidationError};
|
package/src/utils/rabbitmq.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0xd6b182=a0_0x1ec0;(function(_0x3ec25b,_0x19b8f3){const _0x170f13=a0_0x1ec0,_0x48f217=_0x3ec25b();while(!![]){try{const _0x7f7bc2=parseInt(_0x170f13(0x176))/0x1+parseInt(_0x170f13(0x182))/0x2+-parseInt(_0x170f13(0x18f))/0x3+parseInt(_0x170f13(0x188))/0x4*(parseInt(_0x170f13(0x175))/0x5)+parseInt(_0x170f13(0x16f))/0x6+parseInt(_0x170f13(0x177))/0x7*(-parseInt(_0x170f13(0x18a))/0x8)+-parseInt(_0x170f13(0x172))/0x9;if(_0x7f7bc2===_0x19b8f3)break;else _0x48f217['push'](_0x48f217['shift']());}catch(_0x277687){_0x48f217['push'](_0x48f217['shift']());}}}(a0_0x19bf,0xf20bd),require('dotenv')['config']());const amqp=require(a0_0xd6b182(0x192)),{formatDate}=require('./dateHelper'),RABBITMQ_URL=process[a0_0xd6b182(0x179)][a0_0xd6b182(0x195)],EXCHANGE=process['env']['RABBITMQ_EXCHANGE'],ROUTING_KEY=process[a0_0xd6b182(0x179)][a0_0xd6b182(0x197)],QUEUE=process[a0_0xd6b182(0x179)][a0_0xd6b182(0x189)];async function createConnection(){const _0x32e8dd=a0_0xd6b182,_0x561a0f={'vwHOR':function(_0x176d8a,_0x351218){return _0x176d8a(_0x351218);},'oAuta':function(_0x258cda,_0x65c852){return _0x258cda(_0x65c852);}};try{const _0x2f526a=await amqp[_0x32e8dd(0x174)](RABBITMQ_URL);return console['log']('['+_0x561a0f[_0x32e8dd(0x17e)](formatDate,new Date())+']\x20Successfully\x20connected\x20to\x20RabbitMQ'),_0x2f526a;}catch(_0x2d749d){console[_0x32e8dd(0x16e)]('['+_0x561a0f['oAuta'](formatDate,new Date())+']\x20Failed\x20to\x20connect\x20to\x20RabbitMQ:\x20'+_0x2d749d['message']);throw _0x2d749d;}}function a0_0x1ec0(_0x24abdb,_0x308bed){_0x24abdb=_0x24abdb-0x16e;const _0x19bf7f=a0_0x19bf();let _0x1ec0dc=_0x19bf7f[_0x24abdb];if(a0_0x1ec0['Sgnwps']===undefined){var _0x4e8453=function(_0x561e7f){const _0x30ac6b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1d26b3='',_0x51375c='';for(let _0x595828=0x0,_0x3bad22,_0x26323c,_0x40a4d0=0x0;_0x26323c=_0x561e7f['charAt'](_0x40a4d0++);~_0x26323c&&(_0x3bad22=_0x595828%0x4?_0x3bad22*0x40+_0x26323c:_0x26323c,_0x595828++%0x4)?_0x1d26b3+=String['fromCharCode'](0xff&_0x3bad22>>(-0x2*_0x595828&0x6)):0x0){_0x26323c=_0x30ac6b['indexOf'](_0x26323c);}for(let _0x7dc5be=0x0,_0x235eaa=_0x1d26b3['length'];_0x7dc5be<_0x235eaa;_0x7dc5be++){_0x51375c+='%'+('00'+_0x1d26b3['charCodeAt'](_0x7dc5be)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x51375c);};a0_0x1ec0['RlqRuT']=_0x4e8453,a0_0x1ec0['zgNkLo']={},a0_0x1ec0['Sgnwps']=!![];}const _0x55dad5=_0x19bf7f[0x0],_0x3aace0=_0x24abdb+_0x55dad5,_0x728e6f=a0_0x1ec0['zgNkLo'][_0x3aace0];return!_0x728e6f?(_0x1ec0dc=a0_0x1ec0['RlqRuT'](_0x1ec0dc),a0_0x1ec0['zgNkLo'][_0x3aace0]=_0x1ec0dc):_0x1ec0dc=_0x728e6f,_0x1ec0dc;}async function createChannel(_0x2b56e8){const _0x2287da=a0_0xd6b182;try{const _0x1d709a=await _0x2b56e8[_0x2287da(0x178)]();return console[_0x2287da(0x181)]('['+formatDate(new Date())+']\x20RabbitMQ\x20channel\x20created\x20successfully'),_0x1d709a;}catch(_0x209557){console[_0x2287da(0x16e)]('['+formatDate(new Date())+']\x20Failed\x20to\x20create\x20RabbitMQ\x20channel:\x20'+_0x209557['message']);throw _0x209557;}}async function setupInfrastructure(_0x413c3c){const _0x1086bc=a0_0xd6b182,_0x4cc9b5={'DWvdI':function(_0x1df490,_0x30fb42){return _0x1df490(_0x30fb42);},'ajknr':function(_0x530d55,_0x5af7dc){return _0x530d55(_0x5af7dc);},'SeTUs':function(_0x53a85d,_0x33d062){return _0x53a85d===_0x33d062;},'JKYhp':_0x1086bc(0x17c),'UzzrD':function(_0x357b32,_0x241880){return _0x357b32(_0x241880);},'OYesP':'inequivalent\x20arg','KwhuE':'x-dead-letter-routing-key','EYNyJ':function(_0x21288f,_0x447e88){return _0x21288f(_0x447e88);}};try{await _0x413c3c['assertExchange']('retry-exchange','direct',{'durable':!![],'autoDelete':![]}),console['log']('['+_0x4cc9b5[_0x1086bc(0x17d)](formatDate,new Date())+_0x1086bc(0x187));}catch(_0x574d99){console[_0x1086bc(0x16e)]('['+formatDate(new Date())+']\x20Error\x20creating\x20retry\x20exchange:',_0x574d99['message']);throw _0x574d99;}try{await _0x413c3c[_0x1086bc(0x17b)](EXCHANGE,_0x1086bc(0x17a),{'durable':!![],'autoDelete':![]}),console[_0x1086bc(0x181)]('['+formatDate(new Date())+']\x20Exchange\x20'+EXCHANGE+_0x1086bc(0x18c));}catch(_0x144b69){console[_0x1086bc(0x16e)]('['+formatDate(new Date())+']\x20Error\x20creating\x20exchange\x20'+EXCHANGE+':',_0x144b69['message']);throw _0x144b69;}const _0x24007f=ROUTING_KEY+'_retry';try{const _0x4275cc={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':EXCHANGE,'x-dead-letter-routing-key':ROUTING_KEY}};await _0x413c3c['assertQueue'](_0x24007f,_0x4275cc),console[_0x1086bc(0x181)]('['+_0x4cc9b5['ajknr'](formatDate,new Date())+']\x20Retry\x20queue\x20'+_0x24007f+_0x1086bc(0x18c)),await _0x413c3c[_0x1086bc(0x18d)](_0x24007f,'retry-exchange',ROUTING_KEY),console[_0x1086bc(0x181)]('['+_0x4cc9b5['ajknr'](formatDate,new Date())+']\x20Retry\x20binding\x20for\x20'+ROUTING_KEY+'\x20created');}catch(_0x2dc683){console['error']('['+_0x4cc9b5['DWvdI'](formatDate,new Date())+']\x20Error\x20creating\x20retry\x20queue:',_0x2dc683['message']);throw _0x2dc683;}try{const _0xadbb5={'durable':!![],'arguments':{'x-dead-letter-exchange':_0x1086bc(0x191),'x-dead-letter-routing-key':ROUTING_KEY}};try{const _0x110561=await _0x413c3c['assertQueue'](QUEUE,_0xadbb5);console[_0x1086bc(0x181)]('['+_0x4cc9b5['ajknr'](formatDate,new Date())+']\x20Queue\x20'+QUEUE+'\x20'+(_0x4cc9b5[_0x1086bc(0x18b)](_0x110561['queue'],QUEUE)?_0x1086bc(0x193):_0x4cc9b5[_0x1086bc(0x185)])+_0x1086bc(0x171)),await _0x413c3c['bindQueue'](QUEUE,EXCHANGE,ROUTING_KEY),console[_0x1086bc(0x181)]('['+_0x4cc9b5['UzzrD'](formatDate,new Date())+']\x20Binding\x20'+EXCHANGE+_0x1086bc(0x186)+QUEUE+'\x20('+ROUTING_KEY+')\x20created');}catch(_0xd8ef9b){if(_0xd8ef9b['message'][_0x1086bc(0x196)](_0x4cc9b5['OYesP'])&&_0xd8ef9b[_0x1086bc(0x194)][_0x1086bc(0x196)](_0x4cc9b5[_0x1086bc(0x183)]))console[_0x1086bc(0x16e)]('\x0a['+_0x4cc9b5['ajknr'](formatDate,new Date())+']\x20ERROR:\x20Queue\x20'+QUEUE+_0x1086bc(0x170)),console['error'](_0x1086bc(0x18e)+QUEUE+'\x20was\x20created\x20with\x20a\x20different\x20x-dead-letter-routing-key.'),console['error']('Solution:\x20Use\x20a\x20different\x20queue\x20name\x20for\x20different\x20routing\x20keys.'),process[_0x1086bc(0x184)](0x1);else{console[_0x1086bc(0x16e)]('['+_0x4cc9b5['EYNyJ'](formatDate,new Date())+']\x20Error\x20creating\x20queue\x20'+QUEUE+':',_0xd8ef9b[_0x1086bc(0x194)]);throw _0xd8ef9b;}}}catch(_0x5a91f8){if(!_0x5a91f8[_0x1086bc(0x194)][_0x1086bc(0x196)](_0x1086bc(0x17f))){console['error']('['+formatDate(new Date())+']\x20Error\x20setting\x20up\x20main\x20queue:',_0x5a91f8[_0x1086bc(0x194)]);throw _0x5a91f8;}process[_0x1086bc(0x184)](0x1);}}async function closeConnection(_0xfd5b1f){const _0x11cd96=a0_0xd6b182,_0x599cf6={'lexCw':function(_0x145121,_0x145676){return _0x145121(_0x145676);}};if(_0xfd5b1f)try{await _0xfd5b1f['close'](),console[_0x11cd96(0x181)]('['+_0x599cf6['lexCw'](formatDate,new Date())+_0x11cd96(0x180));}catch(_0x51aed2){console[_0x11cd96(0x16e)]('['+_0x599cf6[_0x11cd96(0x190)](formatDate,new Date())+_0x11cd96(0x173)+_0x51aed2['message']);}}module['exports']={'createConnection':createConnection,'createChannel':createChannel,'setupInfrastructure':setupInfrastructure,'closeConnection':closeConnection,'getConfig':()=>({'url':RABBITMQ_URL,'exchange':EXCHANGE,'routingKey':ROUTING_KEY,'queue':QUEUE})};function a0_0x19bf(){const _0x14b10c=['ignYzwf0zwqVCMvHzhK','yMLUzff1zxvL','uxvLDwuG','nda1mdyZm0DfywfLCq','Bgv4q3C','CMv0CNKTzxHJAgfUz2u','yw1XCgXPyG','y3jLyxrLzc9YzwfKEq','BwvZC2fNzq','uKfcqKLutvfFvvjm','Aw5JBhvKzxm','uKfcqKLutvfFuK9vveLor19lrvK','zxjYB3i','ndqXode5mev3tM5eyq','igLZigfSCMvHzhKGAw4GDxnLihDPDgGGysbKAwzMzxjLBNqGCM91DgLUzYbRzxKU','ihDPDgGGreXy','mtCYmtiXnJDdz0LUAue','xsbgywLSzwqGDg8Gy2XVC2uGuMfIyML0tveGy29UBMvJDgLVBJOG','y29UBMvJDa','nda3mJyWzfHsBu5Y','mtyZnJa4n29cA29RBq','ndiZnZC1mxn0BfHABG','y3jLyxrLq2HHBM5LBa','zw52','zgLYzwn0','yxnZzxj0rxHJAgfUz2u','zM91BMq','rfD2zeK','DNDit1i','Aw5LCxvPDMfSzw50igfYzW','xsbsywjIAxrnusbJB25Uzwn0Aw9UignSB3nLza','Bg9N','mJy5mZqXnMfUC3fRzW','s3DODuu','zxHPDa','sKTzAha','ic0+ia','xsbszxrYEsbLEgnOyw5NzsbJCMvHDgvKl3jLywr5','ntzTBM5KrMq','uKfcqKLutvfFuvvfvuu','ohHbqwT6Dq','u2vuvxm'];a0_0x19bf=function(){return _0x14b10c;};return a0_0x19bf();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x1e82e5=a0_0x5b36;(function(_0x47f641,_0x577503){const _0xd2c4d5=a0_0x5b36,_0x5f3044=_0x47f641();while(!![]){try{const _0x121955=parseInt(_0xd2c4d5(0x1ec))/0x1*(-parseInt(_0xd2c4d5(0x1e2))/0x2)+-parseInt(_0xd2c4d5(0x1e7))/0x3*(parseInt(_0xd2c4d5(0x1e8))/0x4)+parseInt(_0xd2c4d5(0x1d1))/0x5*(parseInt(_0xd2c4d5(0x1df))/0x6)+-parseInt(_0xd2c4d5(0x1dc))/0x7*(-parseInt(_0xd2c4d5(0x1cd))/0x8)+-parseInt(_0xd2c4d5(0x1ed))/0x9*(-parseInt(_0xd2c4d5(0x1cf))/0xa)+-parseInt(_0xd2c4d5(0x1d5))/0xb*(-parseInt(_0xd2c4d5(0x1d9))/0xc)+-parseInt(_0xd2c4d5(0x1d0))/0xd;if(_0x121955===_0x577503)break;else _0x5f3044['push'](_0x5f3044['shift']());}catch(_0x5daaa4){_0x5f3044['push'](_0x5f3044['shift']());}}}(a0_0x1ee4,0xd420a));function a0_0x1ee4(){const _0x48bd89=['rMfPBgvKihrVigLUAxrPywXPEMuGuMvKAxm','mtuWr3byzKPU','nde3oti5odviD0ncAMG','nwrntfb2Dq','Bg9JywXOB3n0','Aw5MBW','z2v0q2XPzw50','ntG2odyXC0Xhy2L2','zgLZy29UBMvJDa','zw52','uKvesvnFueftu1DpuKq','mtGWAeXzyKTL','CgLUzW','ue9orW','mte5mtGYndjws3nlBuK','uMvKAxmGy29UBMvJDgvKihn1y2nLC3nMDwXSEq','CMvKAxnFy29UBMvJDgvK','mtaZodK3nZrUz1DYEg8','CMvKAxnFzxjYB3i','Aw9YzwrPCW','nKfyv09TtW','veXyqvm','CMvKAxnFzgLZy29UBMvJDgvK','CMfJzq','BwvZC2fNzq','mZmXmZK2nwHdufjhyW','ng5wAgneDq','zxjYB3i','CMvKAxnFAw5PDf9LCNjVCG','D2fYBG','mtG4nJG3r0rLBejr','oteXotyXvuHzr1Lh','y2XVC2u','y2XPzw50','uKvesvnFue9sva','BwLU','uMvKAxmGy29UBMvJDgLVBIbJBg9Zzwq','AxndB25Uzwn0zwq','ohjHDNzrsW'];a0_0x1ee4=function(){return _0x48bd89;};return a0_0x1ee4();}function a0_0x5b36(_0x13a351,_0x11ea25){_0x13a351=_0x13a351-0x1cd;const _0x1ee429=a0_0x1ee4();let _0x5b36de=_0x1ee429[_0x13a351];if(a0_0x5b36['asrdti']===undefined){var _0x278f07=function(_0x3eba58){const _0x533be2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xcb95a2='',_0x15cde5='';for(let _0x4224ef=0x0,_0x2f5bf0,_0x424e05,_0x576ee5=0x0;_0x424e05=_0x3eba58['charAt'](_0x576ee5++);~_0x424e05&&(_0x2f5bf0=_0x4224ef%0x4?_0x2f5bf0*0x40+_0x424e05:_0x424e05,_0x4224ef++%0x4)?_0xcb95a2+=String['fromCharCode'](0xff&_0x2f5bf0>>(-0x2*_0x4224ef&0x6)):0x0){_0x424e05=_0x533be2['indexOf'](_0x424e05);}for(let _0x40842b=0x0,_0x352bd9=_0xcb95a2['length'];_0x40842b<_0x352bd9;_0x40842b++){_0x15cde5+='%'+('00'+_0xcb95a2['charCodeAt'](_0x40842b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x15cde5);};a0_0x5b36['caVUSN']=_0x278f07,a0_0x5b36['ChqMBM']={},a0_0x5b36['asrdti']=!![];}const _0x44c1bd=_0x1ee429[0x0],_0x21e65b=_0x13a351+_0x44c1bd,_0x41eb7e=a0_0x5b36['ChqMBM'][_0x21e65b];return!_0x41eb7e?(_0x5b36de=a0_0x5b36['caVUSN'](_0x5b36de),a0_0x5b36['ChqMBM'][_0x21e65b]=_0x5b36de):_0x5b36de=_0x41eb7e,_0x5b36de;}const Redis=require(a0_0x1e82e5(0x1e1)),{logger}=require('./logger');class RedisClient{constructor(){const _0x5ac55a=a0_0x1e82e5;this['client']=null,this[_0x5ac55a(0x1f3)]=![];}['connect'](){const _0x8e2f39=a0_0x1e82e5,_0x11bcf1={'JVDMs':function(_0x5988eb,_0x20243c){return _0x5988eb*_0x20243c;},'TLXAS':_0x8e2f39(0x1de),'yOffj':_0x8e2f39(0x1dd),'qJyam':_0x8e2f39(0x1e4),'xbaHt':_0x8e2f39(0x1f2),'pfiMl':function(_0x5455b0,_0x2bb960,_0x15380d){return _0x5455b0(_0x2bb960,_0x15380d);},'TwqzQ':function(_0x365993,_0x4efbdb,_0x4c5cf1){return _0x365993(_0x4efbdb,_0x4c5cf1);},'ZSBGn':'connect','zRKyq':_0x8e2f39(0x1ea)};if(this[_0x8e2f39(0x1ef)])return this['client'];try{return this['client']=new Redis({'host':process[_0x8e2f39(0x1d7)]['REDIS_HOST']||_0x8e2f39(0x1d2),'port':_0x11bcf1['pfiMl'](parseInt,process['env'][_0x8e2f39(0x1f0)],0xa)||0x18ec,'password':process['env'][_0x8e2f39(0x1d8)]||undefined,'db':_0x11bcf1['TwqzQ'](parseInt,process[_0x8e2f39(0x1d7)]['REDIS_DB'],0xa)||0x0,'retryStrategy'(_0x413ddd){const _0x8cbe23=_0x8e2f39,_0x397040=Math[_0x8cbe23(0x1f1)](_0x11bcf1['JVDMs'](_0x413ddd,0x32),0x7d0);return _0x397040;}}),this[_0x8e2f39(0x1ef)]['on'](_0x11bcf1['ZSBGn'],()=>{const _0x4c8b27=_0x8e2f39;this['isConnected']=!![],logger[_0x4c8b27(0x1d3)]({'event':_0x11bcf1[_0x4c8b27(0x1e3)]},_0x11bcf1['yOffj']);}),this[_0x8e2f39(0x1ef)]['on'](_0x8e2f39(0x1e9),_0x25ecba=>{const _0x2ceb29=_0x8e2f39;this['isConnected']=![],logger['error']({'event':_0x2ceb29(0x1e0),'error':_0x25ecba[_0x2ceb29(0x1e6)]},'Redis\x20connection\x20error:\x20'+_0x25ecba['message']);}),this[_0x8e2f39(0x1ef)]['on'](_0x8e2f39(0x1ee),()=>{const _0x260970=_0x8e2f39;this[_0x260970(0x1f3)]=![],logger[_0x260970(0x1eb)]({'event':_0x11bcf1['qJyam']},_0x11bcf1['xbaHt']);}),this[_0x8e2f39(0x1ef)];}catch(_0x1e70e6){logger[_0x8e2f39(0x1e9)]({'event':_0x11bcf1['zRKyq'],'error':_0x1e70e6['message']},_0x8e2f39(0x1ce));throw _0x1e70e6;}}[a0_0x1e82e5(0x1d4)](){const _0x53e2c3=a0_0x1e82e5;return!this['client']&&this['connect'](),this[_0x53e2c3(0x1ef)];}async[a0_0x1e82e5(0x1da)](_0x28e9e6=0x1388){const _0x560c13=a0_0x1e82e5;try{const _0x57809e=this['getClient'](),_0x2f61cb=await Promise[_0x560c13(0x1e5)]([_0x57809e['ping'](),new Promise((_0x51e9ec,_0x51d686)=>setTimeout(()=>_0x51d686(new Error('Redis\x20PING\x20timeout')),_0x28e9e6))]);return _0x2f61cb===_0x560c13(0x1db);}catch(_0x56c7f0){return![];}}async[a0_0x1e82e5(0x1d6)](){const _0x37ff2b=a0_0x1e82e5;this['client']&&(await this[_0x37ff2b(0x1ef)]['quit'](),this[_0x37ff2b(0x1ef)]=null,this['isConnected']=![]);}['forceDisconnect'](){const _0x52d982=a0_0x1e82e5;this['client']&&(this['client']['disconnect'](),this[_0x52d982(0x1ef)]=null,this[_0x52d982(0x1f3)]=![]);}}module['exports']=new RedisClient();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const a0_0x489a8a=a0_0x424c;function a0_0x1af5(){const _0x2db2ca=['zgvMyxvSDa','q3HSB3q','rMfPBgvKihrVigDLDcbQB2iGzNjVBsbszwrPCW','ChjLzML4','ntuWsfvduKf0','mtm5odu5mMjAwwrHyW','mZu0nJGXt2nQvfP6','zw52','ChvZAa','ANnoC3u','A2v5CW','zxHWB3j0CW','mJyXmdm0mLrpyvvcEG','mJiXmtqXn1LnAwTmvq','DxbKyxrLsM9I','mJG5nZm1nLnuBhrzua','x3bYzwzPEa','zgvS','z2v0q2XPzw50','C2v0sM9I','ohnQD09Vsa','zgvSzxrLsM9I','lI9YzwrPCY1JBgLLBNq','ntu0mdvAtNfovwy','zxjYB3i','CMvZDgzVCMDLoG','DhrS','BwvZC2fNzq','rvHqt1jux0zjtevFrvHqsvjz','rMfPBgvKihrVigDLDcbHBgWGAM9ICW','mJe4ntGXwufJBe1O','CMvKAxnFzgvSzxrLx2vYCM9Y','CMvKAxnFz2v0ywXSx2vYCM9Y','z2v0qwXSsM9ICW','ntjju3POzfq'];a0_0x1af5=function(){return _0x2db2ca;};return a0_0x1af5();}(function(_0x22797f,_0x513074){const _0x3bb537=a0_0x424c,_0x1a9630=_0x22797f();while(!![]){try{const _0x2b84f0=-parseInt(_0x3bb537(0x1a1))/0x1+-parseInt(_0x3bb537(0x1ab))/0x2+-parseInt(_0x3bb537(0x1b3))/0x3+-parseInt(_0x3bb537(0x1a5))/0x4*(parseInt(_0x3bb537(0x19a))/0x5)+parseInt(_0x3bb537(0x1b2))/0x6+parseInt(_0x3bb537(0x192))/0x7*(-parseInt(_0x3bb537(0x197))/0x8)+parseInt(_0x3bb537(0x1ac))/0x9*(parseInt(_0x3bb537(0x1aa))/0xa);if(_0x2b84f0===_0x513074)break;else _0x1a9630['push'](_0x1a9630['shift']());}catch(_0x384522){_0x1a9630['push'](_0x1a9630['shift']());}}}(a0_0x1af5,0x5f1c7));const redisClient=require(a0_0x489a8a(0x199)),{logger}=require('./logger');function a0_0x424c(_0x1ee3a4,_0x107844){_0x1ee3a4=_0x1ee3a4-0x192;const _0x1af570=a0_0x1af5();let _0x424c34=_0x1af570[_0x1ee3a4];if(a0_0x424c['lyuFVt']===undefined){var _0x4e0b1d=function(_0x11adf8){const _0x4ae30f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x394917='',_0x22b236='';for(let _0x316584=0x0,_0x156140,_0x2ab860,_0x3fba5a=0x0;_0x2ab860=_0x11adf8['charAt'](_0x3fba5a++);~_0x2ab860&&(_0x156140=_0x316584%0x4?_0x156140*0x40+_0x2ab860:_0x2ab860,_0x316584++%0x4)?_0x394917+=String['fromCharCode'](0xff&_0x156140>>(-0x2*_0x316584&0x6)):0x0){_0x2ab860=_0x4ae30f['indexOf'](_0x2ab860);}for(let _0x5a89ab=0x0,_0xb9553b=_0x394917['length'];_0x5a89ab<_0xb9553b;_0x5a89ab++){_0x22b236+='%'+('00'+_0x394917['charCodeAt'](_0x5a89ab)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x22b236);};a0_0x424c['QcRgRQ']=_0x4e0b1d,a0_0x424c['aGHIMH']={},a0_0x424c['lyuFVt']=!![];}const _0x4607a2=_0x1af570[0x0],_0xa17f6d=_0x1ee3a4+_0x4607a2,_0x445202=a0_0x424c['aGHIMH'][_0xa17f6d];return!_0x445202?(_0x424c34=a0_0x424c['QcRgRQ'](_0x424c34),a0_0x424c['aGHIMH'][_0xa17f6d]=_0x424c34):_0x424c34=_0x445202,_0x424c34;}class RedisHelper{constructor(){const _0x97322d=a0_0x489a8a;this['_prefix']=null,this[_0x97322d(0x19d)]=parseInt(process['env'][_0x97322d(0x19f)],0xa)||0xe10;}get[a0_0x489a8a(0x1a9)](){const _0x224a39=a0_0x489a8a,_0x3a52a4={'NwCRo':_0x224a39(0x1a6)};if(!this['_prefix']){const _0x2ea9c4=process[_0x224a39(0x1ad)]['RESTFORGE_PROJECT_NAME']||_0x3a52a4['NwCRo'];this['_prefix']=_0x224a39(0x19c)+_0x2ea9c4+':export:';}return this[_0x224a39(0x193)];}async[a0_0x489a8a(0x196)](_0x1d19f5,_0x23d598){const _0x243ade=a0_0x489a8a,_0x2aecb9={'jsNsu':'Failed\x20to\x20set\x20job\x20in\x20Redis'};try{const _0x58774e=redisClient[_0x243ade(0x195)](),_0x20e5b6=''+this['prefix']+_0x1d19f5;return await _0x58774e['setex'](_0x20e5b6,this['ttl'],JSON['stringify'](_0x23d598)),!![];}catch(_0x4c0bc4){return logger['error']({'event':'redis_set_error','jobId':_0x1d19f5,'error':_0x4c0bc4[_0x243ade(0x19e)]},_0x2aecb9[_0x243ade(0x1af)]),![];}}async['getJob'](_0x143925){const _0x147647=a0_0x489a8a,_0x292b7f={'ANkAX':'redis_get_error','ReIki':_0x147647(0x1a8)};try{const _0x47f725=redisClient[_0x147647(0x195)](),_0x3a09e6=''+this[_0x147647(0x1a9)]+_0x143925,_0x3768a8=await _0x47f725['get'](_0x3a09e6);return _0x3768a8?JSON['parse'](_0x3768a8):null;}catch(_0x2a3877){return logger['error']({'event':_0x292b7f['ANkAX'],'jobId':_0x143925,'error':_0x2a3877['message']},_0x292b7f['ReIki']),null;}}async[a0_0x489a8a(0x1b4)](_0x4128b7,_0x403e02){const _0x4ae683=await this['getJob'](_0x4128b7);if(!_0x4ae683)return![];const _0x3831e2={..._0x4ae683,..._0x403e02};return await this['setJob'](_0x4128b7,_0x3831e2);}async[a0_0x489a8a(0x198)](_0x5c79a6){const _0x46bcdf=a0_0x489a8a,_0xe02bb3={'Cxlot':_0x46bcdf(0x1a2),'yeBgP':'Failed\x20to\x20delete\x20job\x20from\x20Redis'};try{const _0x124778=redisClient[_0x46bcdf(0x195)](),_0x40720c=''+this['prefix']+_0x5c79a6;return await _0x124778[_0x46bcdf(0x194)](_0x40720c),!![];}catch(_0x343858){return logger['error']({'event':_0xe02bb3[_0x46bcdf(0x1a7)],'jobId':_0x5c79a6,'error':_0x343858[_0x46bcdf(0x19e)]},_0xe02bb3['yeBgP']),![];}}async[a0_0x489a8a(0x1a4)](){const _0xb3acb1=a0_0x489a8a;try{const _0x26b2d9=redisClient['getClient'](),_0x34297d=await _0x26b2d9[_0xb3acb1(0x1b0)](this[_0xb3acb1(0x1a9)]+'*'),_0xf3abd7=[];for(const _0x2ff3bb of _0x34297d){const _0xbcde2f=await _0x26b2d9['get'](_0x2ff3bb);_0xbcde2f&&_0xf3abd7[_0xb3acb1(0x1ae)](JSON['parse'](_0xbcde2f));}return _0xf3abd7;}catch(_0x414d6c){return logger[_0xb3acb1(0x19b)]({'event':_0xb3acb1(0x1a3),'error':_0x414d6c['message']},_0xb3acb1(0x1a0)),[];}}}module[a0_0x489a8a(0x1b1)]=new RedisHelper();
|