@restforgejs/platform 5.1.6 → 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/fast-track.js +63 -43
- 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
|
-
const
|
|
1
|
+
const a0_0x57c1ed=a0_0x1840;function a0_0x1840(_0x46c0b3,_0x58596c){_0x46c0b3=_0x46c0b3-0x110;const _0x52651a=a0_0x5265();let _0x18408a=_0x52651a[_0x46c0b3];if(a0_0x1840['CSBSgy']===undefined){var _0x321bb1=function(_0x2f9623){const _0x577180='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4ef4c8='',_0xdac21='';for(let _0x46805e=0x0,_0x17080e,_0x197bbb,_0x3589ed=0x0;_0x197bbb=_0x2f9623['charAt'](_0x3589ed++);~_0x197bbb&&(_0x17080e=_0x46805e%0x4?_0x17080e*0x40+_0x197bbb:_0x197bbb,_0x46805e++%0x4)?_0x4ef4c8+=String['fromCharCode'](0xff&_0x17080e>>(-0x2*_0x46805e&0x6)):0x0){_0x197bbb=_0x577180['indexOf'](_0x197bbb);}for(let _0x1f924d=0x0,_0x2c591e=_0x4ef4c8['length'];_0x1f924d<_0x2c591e;_0x1f924d++){_0xdac21+='%'+('00'+_0x4ef4c8['charCodeAt'](_0x1f924d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xdac21);};a0_0x1840['kdDZVU']=_0x321bb1,a0_0x1840['FkDEvX']={},a0_0x1840['CSBSgy']=!![];}const _0xd4495d=_0x52651a[0x0],_0x3f5be7=_0x46c0b3+_0xd4495d,_0x4ebb59=a0_0x1840['FkDEvX'][_0x3f5be7];return!_0x4ebb59?(_0x18408a=a0_0x1840['kdDZVU'](_0x18408a),a0_0x1840['FkDEvX'][_0x3f5be7]=_0x18408a):_0x18408a=_0x4ebb59,_0x18408a;}(function(_0x48bc12,_0x4c36f3){const _0x508869=a0_0x1840,_0x4e8ffc=_0x48bc12();while(!![]){try{const _0xfc07d5=parseInt(_0x508869(0x112))/0x1+parseInt(_0x508869(0x130))/0x2+parseInt(_0x508869(0x11a))/0x3*(-parseInt(_0x508869(0x131))/0x4)+-parseInt(_0x508869(0x120))/0x5+parseInt(_0x508869(0x116))/0x6*(parseInt(_0x508869(0x129))/0x7)+-parseInt(_0x508869(0x11f))/0x8*(parseInt(_0x508869(0x113))/0x9)+parseInt(_0x508869(0x117))/0xa*(parseInt(_0x508869(0x119))/0xb);if(_0xfc07d5===_0x4c36f3)break;else _0x4e8ffc['push'](_0x4e8ffc['shift']());}catch(_0x598a28){_0x4e8ffc['push'](_0x4e8ffc['shift']());}}}(a0_0x5265,0x24501));class DateTimeParser{static['parse'](_0x22fe3a,_0x50169f,_0x23980b){const _0x33ec9c=a0_0x1840,_0x72fc91={'BxqSr':function(_0x5adfcd,_0x377a97){return _0x5adfcd===_0x377a97;},'NzJSl':_0x33ec9c(0x11d),'gMdCs':'timestamp','YzAQT':function(_0x39848d,_0x198d61){return _0x39848d===_0x198d61;}};if(!_0x22fe3a||_0x22fe3a==='')return null;try{if(_0x72fc91['BxqSr'](_0x23980b,_0x72fc91[_0x33ec9c(0x12e)]))return this[_0x33ec9c(0x11b)](_0x22fe3a,_0x50169f);else{if(_0x72fc91[_0x33ec9c(0x122)](_0x23980b,_0x72fc91[_0x33ec9c(0x127)]))return this[_0x33ec9c(0x115)](_0x22fe3a,_0x50169f);else{if(_0x72fc91['YzAQT'](_0x23980b,_0x33ec9c(0x110)))return this[_0x33ec9c(0x111)](_0x22fe3a,_0x50169f);}}return _0x22fe3a;}catch(_0x11119c){return console[_0x33ec9c(0x123)](_0x33ec9c(0x125)+_0x11119c['message']),null;}}static['parseDate'](_0x37b17a,_0x35323c){const _0x251284=a0_0x1840,_0x1bc610={'LuLPM':_0x251284(0x124),'AOxaY':_0x251284(0x132),'mCHOH':'month'};if(!_0x35323c||_0x35323c===_0x251284(0x12c))return _0x37b17a;const _0x2cad0b={'dd/MM/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':[_0x1bc610[_0x251284(0x121)],_0x251284(0x12b),_0x251284(0x132)]},'dd-MM-yyyy':{'pattern':/^(\d{2})-(\d{2})-(\d{4})$/,'order':[_0x251284(0x124),_0x251284(0x12b),'year']},'MM/dd/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':['month',_0x251284(0x124),_0x251284(0x132)]},'yyyy/MM/dd':{'pattern':/^(\d{4})\/(\d{2})\/(\d{2})$/,'order':[_0x1bc610['AOxaY'],_0x1bc610['mCHOH'],_0x1bc610[_0x251284(0x121)]]}},_0x5a94bd=_0x2cad0b[_0x35323c];if(!_0x5a94bd)return console['warn'](_0x251284(0x114)+_0x35323c+',\x20returning\x20null'),null;const _0x1beaf2=_0x37b17a['match'](_0x5a94bd['pattern']);if(!_0x1beaf2)return console[_0x251284(0x133)]('Date\x20value\x20\x22'+_0x37b17a+'\x22\x20doesn\x27t\x20match\x20format\x20\x22'+_0x35323c+'\x22'),null;const _0x59a770={'day':null,'month':null,'year':null};return _0x5a94bd['order'][_0x251284(0x118)]((_0x1b9f9c,_0x52c4b9)=>{_0x59a770[_0x1b9f9c]=_0x1beaf2[_0x52c4b9+0x1];}),_0x59a770['year']+'-'+_0x59a770[_0x251284(0x12b)]+'-'+_0x59a770['day'];}static['parseTimestamp'](_0x33a893,_0x4536a0){const _0x3e59d9=a0_0x1840,_0x2bffc8={'JNUbT':function(_0x3a76bc,_0x393bee){return _0x3a76bc!==_0x393bee;},'lalKw':function(_0x96a4b8,_0x1370b1){return _0x96a4b8===_0x1370b1;}};if(!_0x4536a0||_0x4536a0===_0x3e59d9(0x11e))return _0x33a893;const _0x49c7c5=_0x33a893['split']('\x20');if(_0x2bffc8['JNUbT'](_0x49c7c5['length'],0x2))return console['warn'](_0x3e59d9(0x12d)+_0x33a893),null;const [_0x2f469d,_0x3d52f5]=_0x49c7c5,_0x457657=_0x4536a0['split']('\x20')[0x0],_0x1ad249=this[_0x3e59d9(0x11b)](_0x2f469d,_0x457657);if(!_0x1ad249)return null;const _0x3c72a0=_0x2bffc8[_0x3e59d9(0x126)](_0x3d52f5[_0x3e59d9(0x134)](':')[_0x3e59d9(0x11c)],0x2)?_0x3d52f5+':00':_0x3d52f5;return _0x1ad249+'\x20'+_0x3c72a0;}static['parseTime'](_0x1a1148,_0x98c601){const _0x2fc078=a0_0x1840,_0x266ac1={'ciUzN':_0x2fc078(0x12f)};if(!_0x98c601||_0x98c601===_0x266ac1['ciUzN'])return _0x1a1148;if(_0x98c601===_0x2fc078(0x128)){if(_0x1a1148['match'](/^\d{2}:\d{2}$/))return _0x1a1148+':00';}return _0x1a1148;}}module[a0_0x57c1ed(0x12a)]=DateTimeParser;function a0_0x5265(){const _0x229437=['ExL5Es1nts1KzcbisdPTBtPZCW','ogrQEffhAW','mteZmdm5mfbSsLrwCa','thvmue0','qNHXu3i','zxjYB3i','zgf5','rxjYB3iGCgfYC2LUzYbKyxrLDgLTztOG','BgfSs3C','z01Kq3m','seG6Bw0','mta1zg5gzhLm','zxHWB3j0CW','Bw9UDgG','ExL5Es1nts1Kza','sw52ywXPzcb0Aw1LC3rHBxaGzM9YBwf0oIa','tNPku2W','seG6Bw06C3m','mZuXnZCWqNHnwNPJ','mJHUwhDpwNG','EwvHCG','D2fYBG','C3bSAxq','DgLTzq','CgfYC2vuAw1L','nZGXntbrq29hCfG','mZy0ndm3C05Sq2fW','vw5RBM93BIbKyxrLigzVCM1HDdOG','CgfYC2vuAw1LC3rHBxa','mtaZmZG2zvvVCwL0','mZa1ndCWt1vJywrH','zM9YrwfJAa','ndrozvHHzKi','otqWmJburezbAMK','CgfYC2veyxrL','BgvUz3rO','zgf0zq'];a0_0x5265=function(){return _0x229437;};return a0_0x5265();}
|
package/src/core/utils/db.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x46cfcf=a0_0x29e3;(function(_0x5c7636,_0x1246a2){const _0x47837f=a0_0x29e3,_0x3d57c6=_0x5c7636();while(!![]){try{const _0x3b3204=parseInt(_0x47837f(0xb9))/0x1*(parseInt(_0x47837f(0xd0))/0x2)+parseInt(_0x47837f(0xdc))/0x3+-parseInt(_0x47837f(0xae))/0x4*(-parseInt(_0x47837f(0x9f))/0x5)+parseInt(_0x47837f(0xce))/0x6*(parseInt(_0x47837f(0xab))/0x7)+parseInt(_0x47837f(0xa6))/0x8*(-parseInt(_0x47837f(0xdb))/0x9)+parseInt(_0x47837f(0xcc))/0xa*(-parseInt(_0x47837f(0xd7))/0xb)+parseInt(_0x47837f(0xa5))/0xc;if(_0x3b3204===_0x1246a2)break;else _0x3d57c6['push'](_0x3d57c6['shift']());}catch(_0x597edf){_0x3d57c6['push'](_0x3d57c6['shift']());}}}(a0_0x1e96,0xd36ca));const {Pool}=require('pg'),{logQuery,logTransaction,startQueryTimer,logDatabaseConfig,logger,logError}=require('./logger'),dbConfig={'host':process[a0_0x46cfcf(0xa4)][a0_0x46cfcf(0xad)]||a0_0x46cfcf(0xa9),'port':parseInt(process[a0_0x46cfcf(0xa4)]['DB_PORT']||'5432'),'user':process[a0_0x46cfcf(0xa4)][a0_0x46cfcf(0x9d)]||a0_0x46cfcf(0xc4),'password':process['env'][a0_0x46cfcf(0xa3)]||a0_0x46cfcf(0xe2),'database':process['env']['DB_NAME']||'dbxa03'};logDatabaseConfig({'host':dbConfig[a0_0x46cfcf(0xe4)],'port':dbConfig[a0_0x46cfcf(0xc1)],'database':dbConfig[a0_0x46cfcf(0xca)],'type':a0_0x46cfcf(0xbe),'user':dbConfig['user']});let pool=new Pool(dbConfig),isPoolClosed=![];function getPool(){const _0x581189=a0_0x46cfcf,_0x2807cc={'vQIjE':_0x581189(0xd2),'EoTiW':'Creating\x20new\x20database\x20pool\x20(previous\x20pool\x20was\x20closed)'};return isPoolClosed&&(logger[_0x581189(0xcb)]({'event':_0x2807cc['vQIjE']},_0x2807cc[_0x581189(0xe1)]),pool=new Pool(dbConfig),isPoolClosed=![]),pool;}async function executeQuery(_0x3b2160,_0x3d28b9=[]){const _0x185b16=a0_0x46cfcf,_0xe91154={'EtOTP':function(_0x153d89){return _0x153d89();},'UmrPN':function(_0x33ba0d){return _0x33ba0d();},'VqBgC':function(_0x3f6793,_0x9a4ca7,_0x3ffbfc,_0x31e765){return _0x3f6793(_0x9a4ca7,_0x3ffbfc,_0x31e765);},'gZiJu':'sql_error'},_0x2fe8b7=_0xe91154['EtOTP'](startQueryTimer);try{const _0x58ccd1=getPool(),_0x594da0=await _0x58ccd1['connect']();try{const _0x4eb59d=await _0x594da0[_0x185b16(0xb1)](_0x3b2160,_0x3d28b9),_0xf15eb6=_0xe91154[_0x185b16(0xd4)](_0x2fe8b7);return _0xe91154[_0x185b16(0xc2)](logQuery,_0x3b2160,_0x3d28b9,{'duration':_0xf15eb6,'rowsAffected':_0x4eb59d[_0x185b16(0xc3)],'dbType':_0x185b16(0xbe)}),_0x4eb59d['rows'];}finally{_0x594da0[_0x185b16(0x9a)]();}}catch(_0x203508){const _0x5c8c17=_0x2fe8b7();logError(_0x203508,{'event':_0xe91154['gZiJu'],'query':_0x3b2160[_0x185b16(0xbf)](0x0,0x1f4),'paramCount':_0x3d28b9['length'],'durationMs':_0x5c8c17,'code':_0x203508['code'],'dbType':'postgresql'},_0x185b16(0xb5)+_0x203508[_0x185b16(0xcf)]);throw _0x203508;}}function formatResponse(_0x113a81,_0x22b012=null){const _0x220c90=a0_0x46cfcf,_0x2a527b={'QWvWl':'SYNTAX_ERROR','COuNR':_0x220c90(0xb3),'hnsMt':function(_0x35726c,_0x412e64){return _0x35726c===_0x412e64;},'MOwpH':_0x220c90(0xb2),'gTKtH':_0x220c90(0xc0),'ztSDe':function(_0x35382b,_0x598bf0){return _0x35382b===_0x598bf0;},'GcyKy':'08001','isURF':'No\x20data\x20found.'};if(_0x22b012){let _0x526840=_0x220c90(0x9e);if(_0x22b012[_0x220c90(0xcf)]['includes']('syntax\x20error'))_0x526840=_0x2a527b['QWvWl'];else{if(_0x22b012[_0x220c90(0xdd)]===_0x220c90(0xd9))_0x526840=_0x2a527b[_0x220c90(0xe5)];else{if(_0x2a527b[_0x220c90(0xdf)](_0x22b012[_0x220c90(0xdd)],_0x2a527b[_0x220c90(0xb4)]))_0x526840=_0x2a527b['gTKtH'];else(_0x2a527b['ztSDe'](_0x22b012['code'],_0x220c90(0xb7))||_0x22b012['code']===_0x2a527b['GcyKy'])&&(_0x526840=_0x220c90(0xc5));}}return{'success':![],'message':_0x220c90(0xe0)+_0x22b012[_0x220c90(0xcf)],'count':-0x1,'error_code':_0x526840};}else{if(!_0x113a81||_0x113a81['length']===0x0)return{'success':!![],'message':_0x2a527b[_0x220c90(0xcd)],'count':0x0,'data':[]};return{'success':!![],'message':'Query\x20returned\x20'+_0x113a81['length']+'\x20row'+(_0x2a527b[_0x220c90(0xdf)](_0x113a81[_0x220c90(0xd1)],0x1)?'':'s')+'.','count':_0x113a81[_0x220c90(0xd1)],'data':_0x113a81};}}function a0_0x1e96(){const _0x3ce8ba=['u0vmrunuide','rxv3we4','CgfYyw1Z','zxHWB3j0CW','Cg9ZDgDYzxnXBa','C3vIC3rYAw5N','qvvusevoveLdqvrjt05Frvjst1i','Cg9YDa','vNfcz0m','CM93q291BNq','Cg9ZDgDYzxm','q09otKvdveLptL9fuLjpuG','rxjYB3iGCMvSzwfZAw5NihrYyw5Zywn0Aw9UignSAwvUDdOG','ChvZAa','vhjHBNnHy3rPB24GzMfPBgvKoIa','zgjFy29UBMvJDgLVBL9JAgvJA19LCNjVCG','zgf0ywjHC2u','Aw5MBW','mtbZEfznCLC','AxnvuKy','ndK4s1PVvM9s','BwvZC2fNzq','mtK5nLPSvvz2BG','BgvUz3rO','zgjFCg9VBf9YzwnYzwf0zq','vKLSvee','vw1Yue4','zgvIDwC','BxfRAg8','mJeWnJa0oufWwgjSuq','v1zAr2C','ndjqmde','q3jyuNK','ndK5mdvRuxDXANi','nZK5odG3BfzYz0jL','y29Kzq','q09ntuLu','Ag5Ztxq','rgf0ywjHC2uGzxjYB3i6ia','rw9uAvC','Cg9ZDgDYzxmXmJm0','y2XPzw50x3jLBgvHC2vFzxjYB3i','Ag9ZDa','q091tLi','qKvhsu4','vfLgqxG','zgjFCg9VBf9JBg9Zzwq','CMvSzwfZzq','u29wy0G','C3rHCNq','rejFvvnfuG','vu5ltK9xtL9fuLjpuG','mZy3nuTyzMHnzq','CM93CW','CM9SBgjHy2S','yNvtDNy','rejFueftu1DpuKq','zw52','mtm3mdG4otzesLH3zeC','mtuYogHrr1riAW','C3fS','vhjHBNnHy3rPB24Gy29TBwL0DgvKicG','mtKYlJe2oc4XmdaUmq','CLfxtNG','mZe3mtDKu3HZEfO','y29UBMvJDa','rejFse9tva','mtC0nhLfCeXeyq','DeHtBNm','ihf1zxjPzxmP','CxvLCNK','mJHqmde','vefctevFtK9ux0zpvu5e','tu93CeG','u1fmievYCM9YoIa','DhjHBNnHy3rPB25FzxjYB3i','mdGWmdy','ENz0rxC','mtfKuhj5zei'];a0_0x1e96=function(){return _0x3ce8ba;};return a0_0x1e96();}async function closePool(){const _0x3f1e58=a0_0x46cfcf,_0x2bcfc1={'rtXzh':function(_0x175e60,_0x2147cc,_0x34e1c6,_0x3f91fd){return _0x175e60(_0x2147cc,_0x34e1c6,_0x3f91fd);},'zvtEw':'db_pool_close_error','VIlTA':'db_pool_already_closed'};if(!isPoolClosed)try{isPoolClosed=!![],await pool['end'](),logger['info']({'event':_0x3f1e58(0x99)},'Database\x20pool\x20closed\x20successfully');}catch(_0x4fdce0){_0x2bcfc1['rtXzh'](logError,_0x4fdce0,{'event':_0x2bcfc1[_0x3f1e58(0xb8)]},'Error\x20closing\x20database\x20pool:\x20'+_0x4fdce0[_0x3f1e58(0xcf)]);}else logger[_0x3f1e58(0xd5)]({'event':_0x2bcfc1[_0x3f1e58(0xd3)]},'Database\x20pool\x20was\x20already\x20closed');}function a0_0x29e3(_0x12aa98,_0x5f0630){_0x12aa98=_0x12aa98-0x99;const _0x1e9665=a0_0x1e96();let _0x29e338=_0x1e9665[_0x12aa98];if(a0_0x29e3['AxQMjv']===undefined){var _0x26691a=function(_0x15b024){const _0x2d5fc6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5aee1c='',_0x23aa80='';for(let _0x30ae02=0x0,_0x13b3c8,_0x3afb37,_0x12774b=0x0;_0x3afb37=_0x15b024['charAt'](_0x12774b++);~_0x3afb37&&(_0x13b3c8=_0x30ae02%0x4?_0x13b3c8*0x40+_0x3afb37:_0x3afb37,_0x30ae02++%0x4)?_0x5aee1c+=String['fromCharCode'](0xff&_0x13b3c8>>(-0x2*_0x30ae02&0x6)):0x0){_0x3afb37=_0x2d5fc6['indexOf'](_0x3afb37);}for(let _0x5c99aa=0x0,_0x5e3235=_0x5aee1c['length'];_0x5c99aa<_0x5e3235;_0x5c99aa++){_0x23aa80+='%'+('00'+_0x5aee1c['charCodeAt'](_0x5c99aa)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x23aa80);};a0_0x29e3['OFJYFN']=_0x26691a,a0_0x29e3['UTNwHK']={},a0_0x29e3['AxQMjv']=!![];}const _0x1cdd0f=_0x1e9665[0x0],_0x37dbde=_0x12aa98+_0x1cdd0f,_0x336f47=a0_0x29e3['UTNwHK'][_0x37dbde];return!_0x336f47?(_0x29e338=a0_0x29e3['OFJYFN'](_0x29e338),a0_0x29e3['UTNwHK'][_0x37dbde]=_0x29e338):_0x29e338=_0x336f47,_0x29e338;}async function checkConnection(){const _0x1f2109=a0_0x46cfcf,_0x187474={'TYFAx':_0x1f2109(0xc9)};try{const _0x4ee4a9=getPool(),_0x5e58c1=await _0x4ee4a9[_0x1f2109(0xac)]();try{return await _0x5e58c1['query'](_0x1f2109(0xba)),!![];}finally{_0x5e58c1['release']();}}catch(_0x1a9726){return logError(_0x1a9726,{'event':_0x187474[_0x1f2109(0xe7)]},'Error\x20checking\x20database\x20connection:\x20'+_0x1a9726[_0x1f2109(0xcf)]),![];}}async function executeTransaction(_0x22aeb7){const _0x445344=a0_0x46cfcf,_0x1afb31={'muSDZ':function(_0xb67740){return _0xb67740();},'buSvv':function(_0x18a799,_0x8b3ce7,_0x12d160){return _0x18a799(_0x8b3ce7,_0x12d160);},'EuwXN':_0x445344(0xe6),'WVZGg':_0x445344(0xde),'CrXRy':'transaction_complete','tHSns':function(_0x5d9ae8,_0x17eaf9,_0x2325b1,_0x1d7ab2){return _0x5d9ae8(_0x17eaf9,_0x2325b1,_0x1d7ab2);},'egftS':'postgresql','mqkho':function(_0x4bb579,_0x432be4,_0x5745e4){return _0x4bb579(_0x432be4,_0x5745e4);},'rQWNx':_0x445344(0xa1),'SoVcH':_0x445344(0xe3)};let _0x3034ea;const _0x485f6b=_0x1afb31['muSDZ'](startQueryTimer);try{const _0x2990bd=getPool();_0x3034ea=await _0x2990bd[_0x445344(0xac)](),_0x1afb31[_0x445344(0xa2)](logTransaction,_0x445344(0x9c),_0x22aeb7[_0x445344(0xd1)]),await _0x3034ea['query'](_0x1afb31[_0x445344(0xbb)]);const _0x53518b=[];for(const _0x14a399 of _0x22aeb7){const _0x4699e8=startQueryTimer(),_0x1be9eb=await _0x3034ea[_0x445344(0xb1)](_0x14a399[_0x445344(0xa7)],_0x14a399[_0x445344(0xbc)]||[]),_0x32b6e5=_0x4699e8();logQuery(_0x14a399['sql'],_0x14a399['params']||[],{'duration':_0x32b6e5,'rowsAffected':_0x1be9eb[_0x445344(0xc3)],'dbType':'postgresql'}),_0x53518b[_0x445344(0xc7)](_0x1be9eb[_0x445344(0xa0)]);}await _0x3034ea['query'](_0x1afb31[_0x445344(0xd8)]);const _0x460eab=_0x485f6b();return logTransaction('commit',_0x22aeb7['length']),logger['info']({'event':_0x1afb31[_0x445344(0xda)],'queryCount':_0x22aeb7[_0x445344(0xd1)],'totalDurationMs':_0x460eab,'dbType':_0x445344(0xbe)},_0x445344(0xa8)+_0x460eab+'ms,\x20'+_0x22aeb7[_0x445344(0xd1)]+_0x445344(0xb0)),_0x53518b;}catch(_0x5d5a71){const _0x12915f=_0x485f6b();_0x1afb31['tHSns'](logError,_0x5d5a71,{'event':_0x445344(0xb6),'queryCount':_0x22aeb7[_0x445344(0xd1)],'totalDurationMs':_0x12915f,'code':_0x5d5a71[_0x445344(0xdd)],'dbType':_0x1afb31['egftS']},_0x445344(0xc8)+_0x5d5a71['message']);if(_0x3034ea)try{await _0x3034ea[_0x445344(0xb1)]('ROLLBACK'),_0x1afb31[_0x445344(0xd6)](logTransaction,_0x1afb31[_0x445344(0xaa)],_0x22aeb7[_0x445344(0xd1)]);}catch(_0x31d503){_0x1afb31[_0x445344(0xaf)](logError,_0x31d503,{'event':'rollback_error','dbType':_0x1afb31['egftS']},'Error\x20rolling\x20back\x20transaction:\x20'+_0x31d503[_0x445344(0xcf)]);}throw _0x5d5a71;}finally{if(_0x3034ea)try{_0x3034ea[_0x445344(0x9a)]();}catch(_0x126779){logger['error']({'event':_0x1afb31[_0x445344(0x9b)],'error':_0x126779[_0x445344(0xcf)],'dbType':_0x445344(0xbe)},_0x445344(0xc6)+_0x126779[_0x445344(0xcf)]);}}}module[a0_0x46cfcf(0xbd)]={'executeQuery':executeQuery,'executeTransaction':executeTransaction,'formatResponse':formatResponse,'closePool':closePool,'getPool':getPool,'checkConnection':checkConnection};
|
|
1
|
+
const a0_0x19ec3e=a0_0x5837;(function(_0x3367fa,_0x550ca7){const _0x513e07=a0_0x5837,_0x3068e6=_0x3367fa();while(!![]){try{const _0x3dc3fa=parseInt(_0x513e07(0x74))/0x1+parseInt(_0x513e07(0xa3))/0x2+parseInt(_0x513e07(0x81))/0x3+-parseInt(_0x513e07(0x98))/0x4*(-parseInt(_0x513e07(0x7d))/0x5)+-parseInt(_0x513e07(0x90))/0x6*(parseInt(_0x513e07(0x75))/0x7)+-parseInt(_0x513e07(0x97))/0x8+-parseInt(_0x513e07(0x8b))/0x9;if(_0x3dc3fa===_0x550ca7)break;else _0x3068e6['push'](_0x3068e6['shift']());}catch(_0x164bb8){_0x3068e6['push'](_0x3068e6['shift']());}}}(a0_0x206f,0xa85fd));const {Pool}=require('pg'),{logQuery,logTransaction,startQueryTimer,logDatabaseConfig,logger,logError}=require('./logger'),dbConfig={'host':process[a0_0x19ec3e(0x8a)]['DB_HOST']||a0_0x19ec3e(0x9e),'port':parseInt(process[a0_0x19ec3e(0x8a)]['DB_PORT']||a0_0x19ec3e(0x7c)),'user':process[a0_0x19ec3e(0x8a)]['DB_USER']||'postgres','password':process[a0_0x19ec3e(0x8a)][a0_0x19ec3e(0xab)]||a0_0x19ec3e(0xa5),'database':process[a0_0x19ec3e(0x8a)][a0_0x19ec3e(0x99)]||a0_0x19ec3e(0x78)};logDatabaseConfig({'host':dbConfig[a0_0x19ec3e(0x95)],'port':dbConfig[a0_0x19ec3e(0xa4)],'database':dbConfig['database'],'type':'postgresql','user':dbConfig[a0_0x19ec3e(0x89)]});let pool=new Pool(dbConfig),isPoolClosed=![];function getPool(){const _0x28d6ba={'oxKRW':'Creating\x20new\x20database\x20pool\x20(previous\x20pool\x20was\x20closed)'};return isPoolClosed&&(logger['info']({'event':'db_pool_recreate'},_0x28d6ba['oxKRW']),pool=new Pool(dbConfig),isPoolClosed=![]),pool;}async function executeQuery(_0x710562,_0x3987e9=[]){const _0x18c2e2=a0_0x19ec3e,_0xed1835={'tPDAV':function(_0x5efa92){return _0x5efa92();},'kdgwh':function(_0x37682d){return _0x37682d();},'XmdFx':function(_0x2e8cec,_0x5bd54d,_0x41b318,_0x33730d){return _0x2e8cec(_0x5bd54d,_0x41b318,_0x33730d);},'nluxh':function(_0x47380b){return _0x47380b();}},_0x437259=startQueryTimer();try{const _0xa3f587=_0xed1835['tPDAV'](getPool),_0x2b1a7b=await _0xa3f587['connect']();try{const _0xd61e3=await _0x2b1a7b[_0x18c2e2(0x7b)](_0x710562,_0x3987e9),_0x45cd7c=_0xed1835[_0x18c2e2(0x9d)](_0x437259);return _0xed1835[_0x18c2e2(0x94)](logQuery,_0x710562,_0x3987e9,{'duration':_0x45cd7c,'rowsAffected':_0xd61e3[_0x18c2e2(0x70)],'dbType':'postgresql'}),_0xd61e3['rows'];}finally{_0x2b1a7b[_0x18c2e2(0x8c)]();}}catch(_0x33b063){const _0x34901a=_0xed1835[_0x18c2e2(0x8f)](_0x437259);logError(_0x33b063,{'event':'sql_error','query':_0x710562[_0x18c2e2(0x6f)](0x0,0x1f4),'paramCount':_0x3987e9[_0x18c2e2(0x88)],'durationMs':_0x34901a,'code':_0x33b063['code'],'dbType':'postgresql'},_0x18c2e2(0xa8)+_0x33b063[_0x18c2e2(0x85)]);throw _0x33b063;}}function formatResponse(_0x27de41,_0x240944=null){const _0x5e64fa=a0_0x19ec3e,_0x30ec6b={'uVuqm':'UNKNOWN_ERROR','aWXql':_0x5e64fa(0x80),'IApmX':function(_0x493219,_0x18bc88){return _0x493219===_0x18bc88;},'qOaih':'TABLE_NOT_FOUND','SFnvh':'AUTHENTICATION_ERROR','BQsKm':_0x5e64fa(0xa2),'Rjfby':'08001','lLeWR':function(_0x27a7c9,_0x24e08b){return _0x27a7c9===_0x24e08b;}};if(_0x240944){let _0x42377a=_0x30ec6b['uVuqm'];if(_0x240944['message']['includes'](_0x30ec6b['aWXql']))_0x42377a='SYNTAX_ERROR';else{if(_0x30ec6b[_0x5e64fa(0xa9)](_0x240944[_0x5e64fa(0x9c)],_0x5e64fa(0x7a)))_0x42377a=_0x30ec6b[_0x5e64fa(0x9b)];else{if(_0x240944[_0x5e64fa(0x9c)]===_0x5e64fa(0x79))_0x42377a=_0x30ec6b['SFnvh'];else(_0x240944[_0x5e64fa(0x9c)]===_0x30ec6b[_0x5e64fa(0x76)]||_0x30ec6b['IApmX'](_0x240944['code'],_0x30ec6b['Rjfby']))&&(_0x42377a=_0x5e64fa(0x91));}}return{'success':![],'message':'Database\x20error:\x20'+_0x240944[_0x5e64fa(0x85)],'count':-0x1,'error_code':_0x42377a};}else{if(!_0x27de41||_0x27de41[_0x5e64fa(0x88)]===0x0)return{'success':!![],'message':'No\x20data\x20found.','count':0x0,'data':[]};return{'success':!![],'message':_0x5e64fa(0x71)+_0x27de41['length']+'\x20row'+(_0x30ec6b['lLeWR'](_0x27de41[_0x5e64fa(0x88)],0x1)?'':'s')+'.','count':_0x27de41[_0x5e64fa(0x88)],'data':_0x27de41};}}function a0_0x5837(_0x1bd589,_0x72bf5b){_0x1bd589=_0x1bd589-0x6e;const _0x206f63=a0_0x206f();let _0x583726=_0x206f63[_0x1bd589];if(a0_0x5837['uNWezi']===undefined){var _0x572d2a=function(_0x4613c0){const _0x37afda='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x224420='',_0x2968d1='';for(let _0x87b764=0x0,_0x515002,_0x2637a6,_0x58e18f=0x0;_0x2637a6=_0x4613c0['charAt'](_0x58e18f++);~_0x2637a6&&(_0x515002=_0x87b764%0x4?_0x515002*0x40+_0x2637a6:_0x2637a6,_0x87b764++%0x4)?_0x224420+=String['fromCharCode'](0xff&_0x515002>>(-0x2*_0x87b764&0x6)):0x0){_0x2637a6=_0x37afda['indexOf'](_0x2637a6);}for(let _0x2159f2=0x0,_0x133124=_0x224420['length'];_0x2159f2<_0x133124;_0x2159f2++){_0x2968d1+='%'+('00'+_0x224420['charCodeAt'](_0x2159f2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2968d1);};a0_0x5837['CFRfTZ']=_0x572d2a,a0_0x5837['fLeFRM']={},a0_0x5837['uNWezi']=!![];}const _0x212041=_0x206f63[0x0],_0x4c38e0=_0x1bd589+_0x212041,_0x15abb5=a0_0x5837['fLeFRM'][_0x4c38e0];return!_0x15abb5?(_0x583726=a0_0x5837['CFRfTZ'](_0x583726),a0_0x5837['fLeFRM'][_0x4c38e0]=_0x583726):_0x583726=_0x15abb5,_0x583726;}async function closePool(){const _0x4f3536=a0_0x19ec3e,_0xa69219={'fWcth':function(_0x2f76db,_0x4fea68,_0x1948dc,_0xb19db5){return _0x2f76db(_0x4fea68,_0x1948dc,_0xb19db5);},'UHQzq':'db_pool_already_closed'};if(!isPoolClosed)try{isPoolClosed=!![],await pool['end'](),logger['info']({'event':'db_pool_closed'},'Database\x20pool\x20closed\x20successfully');}catch(_0x31770e){_0xa69219[_0x4f3536(0x87)](logError,_0x31770e,{'event':'db_pool_close_error'},_0x4f3536(0x7e)+_0x31770e['message']);}else logger['debug']({'event':_0xa69219['UHQzq']},_0x4f3536(0x83));}async function checkConnection(){const _0x9ca9e=a0_0x19ec3e,_0x1584bd={'IqRvq':_0x9ca9e(0x77),'ZWcZr':function(_0x5e08e6,_0x9e8cee,_0x3bf2ca,_0x82af){return _0x5e08e6(_0x9e8cee,_0x3bf2ca,_0x82af);},'DPlTB':'db_connection_check_error'};try{const _0x26d2de=getPool(),_0x2a9ae6=await _0x26d2de[_0x9ca9e(0x73)]();try{return await _0x2a9ae6[_0x9ca9e(0x7b)](_0x1584bd['IqRvq']),!![];}finally{_0x2a9ae6['release']();}}catch(_0x1e5c78){return _0x1584bd[_0x9ca9e(0x82)](logError,_0x1e5c78,{'event':_0x1584bd['DPlTB']},_0x9ca9e(0xa7)+_0x1e5c78['message']),![];}}async function executeTransaction(_0x704fd1){const _0x1320b7=a0_0x19ec3e,_0x53ac68={'oLAyg':function(_0x482833){return _0x482833();},'Bzwgo':function(_0x1c43ff){return _0x1c43ff();},'RGjXr':function(_0xe59274,_0xfe129d,_0x43316c){return _0xe59274(_0xfe129d,_0x43316c);},'DHTOT':_0x1320b7(0xaa),'pkgdI':'COMMIT','Xvseg':function(_0xe18a59,_0x54bf23,_0xbf1912){return _0xe18a59(_0x54bf23,_0xbf1912);},'HuZwM':'postgresql','mCyWn':function(_0x44ea10,_0x1ab969,_0x2589d5,_0x3b6d98){return _0x44ea10(_0x1ab969,_0x2589d5,_0x3b6d98);},'AXifC':function(_0x48d3a2,_0x2cff98,_0x5b9124,_0x2edf5c){return _0x48d3a2(_0x2cff98,_0x5b9124,_0x2edf5c);}};let _0x25a81f;const _0x202154=_0x53ac68['oLAyg'](startQueryTimer);try{const _0x3acef=_0x53ac68[_0x1320b7(0x92)](getPool);_0x25a81f=await _0x3acef['connect'](),_0x53ac68['RGjXr'](logTransaction,_0x53ac68['DHTOT'],_0x704fd1[_0x1320b7(0x88)]),await _0x25a81f['query']('BEGIN');const _0x232a36=[];for(const _0x771027 of _0x704fd1){const _0x3069e5=startQueryTimer(),_0x2a6deb=await _0x25a81f['query'](_0x771027[_0x1320b7(0x86)],_0x771027['params']||[]),_0x24ddcc=_0x3069e5();logQuery(_0x771027[_0x1320b7(0x86)],_0x771027['params']||[],{'duration':_0x24ddcc,'rowsAffected':_0x2a6deb['rowCount'],'dbType':_0x1320b7(0xa1)}),_0x232a36['push'](_0x2a6deb[_0x1320b7(0x8d)]);}await _0x25a81f[_0x1320b7(0x7b)](_0x53ac68[_0x1320b7(0x84)]);const _0x3151eb=_0x202154();return _0x53ac68[_0x1320b7(0x9a)](logTransaction,'commit',_0x704fd1[_0x1320b7(0x88)]),logger[_0x1320b7(0xa6)]({'event':_0x1320b7(0x6e),'queryCount':_0x704fd1['length'],'totalDurationMs':_0x3151eb,'dbType':_0x53ac68[_0x1320b7(0x9f)]},'Transaction\x20committed\x20('+_0x3151eb+_0x1320b7(0xa0)+_0x704fd1['length']+'\x20queries)'),_0x232a36;}catch(_0xcca9c3){const _0x4d9ad4=_0x202154();_0x53ac68[_0x1320b7(0x93)](logError,_0xcca9c3,{'event':'transaction_error','queryCount':_0x704fd1[_0x1320b7(0x88)],'totalDurationMs':_0x4d9ad4,'code':_0xcca9c3[_0x1320b7(0x9c)],'dbType':_0x1320b7(0xa1)},_0x1320b7(0x8e)+_0xcca9c3['message']);if(_0x25a81f)try{await _0x25a81f['query']('ROLLBACK'),logTransaction('rollback',_0x704fd1[_0x1320b7(0x88)]);}catch(_0x598078){_0x53ac68[_0x1320b7(0x7f)](logError,_0x598078,{'event':_0x1320b7(0x96),'dbType':_0x53ac68[_0x1320b7(0x9f)]},'Error\x20rolling\x20back\x20transaction:\x20'+_0x598078[_0x1320b7(0x85)]);}throw _0xcca9c3;}finally{if(_0x25a81f)try{_0x25a81f['release']();}catch(_0x513fec){logger[_0x1320b7(0x72)]({'event':'client_release_error','error':_0x513fec[_0x1320b7(0x85)],'dbType':'postgresql'},'Error\x20releasing\x20transaction\x20client:\x20'+_0x513fec['message']);}}}module['exports']={'executeQuery':executeQuery,'executeTransaction':executeTransaction,'formatResponse':formatResponse,'closePool':closePool,'getPool':getPool,'checkConnection':checkConnection};function a0_0x206f(){const _0x248211=['wLDJwNi','rgf0ywjHC2uGCg9VBcb3yxmGywXYzwfKEsbJBg9Zzwq','CgTNzeK','BwvZC2fNzq','C3fS','zLDJDgG','BgvUz3rO','DxnLCG','zw52','mtqZnZaZodfQB2f3u0G','CMvSzwfZzq','CM93CW','vhjHBNnHy3rPB24GzMfPBgvKoIa','BMX1EgG','odC1ndziAxnsEgS','q09otKvdveLptL9fuLjpuG','qNP3z28','Bun5v24','wg1KrNG','Ag9ZDa','CM9SBgjHy2TFzxjYB3i','ndaXntu2mhrQAMjpqq','mti5mdrks2DcAhm','rejFtKfnrq','whzZzwC','Cu9HAwG','y29Kzq','A2rND2G','mtKYlJe2oc4XmdaUmq','shvAD00','BxmSia','Cg9ZDgDYzxnXBa','mdGWmdy','mJuYnJm0nNDHB2D4ta','Cg9YDa','Cg9ZDgDYzxmXmJm0','Aw5MBW','rxjYB3iGy2HLy2TPBMCGzgf0ywjHC2uGy29UBMvJDgLVBJOG','u1fmievYCM9YoIa','sufWBvG','C3rHCNq','rejFueftu1DpuKq','DhjHBNnHy3rPB25Fy29TCgXLDgu','C3vIC3rYAw5N','CM93q291BNq','uxvLCNKGCMv0DxjUzwqG','zxjYB3i','y29UBMvJDa','nJGZmZm1CNrOsNbv','mZvdvxLtCwK','qLfZs20','u0vmrunuide','zgj4ytaZ','mJHqmde','ndjqmde','CxvLCNK','ntqZmG','mZm1whzND0rt','rxjYB3iGy2XVC2LUzYbKyxrHyMfZzsbWB29SoIa','qvHPzKm','C3LUDgf4igvYCM9Y','mJa5ntG2mfbzzMv4rW'];a0_0x206f=function(){return _0x248211;};return a0_0x206f();}
|
package/src/core/utils/logger.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x450014=a0_0x81e5;(function(_0x2faed3,_0x419145){const _0x1b573b=a0_0x81e5,_0x350db7=_0x2faed3();while(!![]){try{const _0x30b16e=-parseInt(_0x1b573b(0x197))/0x1*(parseInt(_0x1b573b(0x10a))/0x2)+parseInt(_0x1b573b(0x10c))/0x3*(-parseInt(_0x1b573b(0x193))/0x4)+parseInt(_0x1b573b(0x199))/0x5*(parseInt(_0x1b573b(0x16c))/0x6)+-parseInt(_0x1b573b(0x116))/0x7+-parseInt(_0x1b573b(0x141))/0x8+parseInt(_0x1b573b(0x128))/0x9+parseInt(_0x1b573b(0xf5))/0xa;if(_0x30b16e===_0x419145)break;else _0x350db7['push'](_0x350db7['shift']());}catch(_0x34412c){_0x350db7['push'](_0x350db7['shift']());}}}(a0_0x2c41,0xb4cb0));const pino=require('pino'),fs=require('fs'),path=require('path');function a0_0x81e5(_0x300a92,_0x26b0af){_0x300a92=_0x300a92-0xe3;const _0x2c4128=a0_0x2c41();let _0x81e5b3=_0x2c4128[_0x300a92];if(a0_0x81e5['ZYOHoa']===undefined){var _0x202097=function(_0xfc8159){const _0x13759b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x107580='',_0x390f71='';for(let _0x48e033=0x0,_0x521595,_0x34b8aa,_0x2e537a=0x0;_0x34b8aa=_0xfc8159['charAt'](_0x2e537a++);~_0x34b8aa&&(_0x521595=_0x48e033%0x4?_0x521595*0x40+_0x34b8aa:_0x34b8aa,_0x48e033++%0x4)?_0x107580+=String['fromCharCode'](0xff&_0x521595>>(-0x2*_0x48e033&0x6)):0x0){_0x34b8aa=_0x13759b['indexOf'](_0x34b8aa);}for(let _0xcbcc93=0x0,_0x546541=_0x107580['length'];_0xcbcc93<_0x546541;_0xcbcc93++){_0x390f71+='%'+('00'+_0x107580['charCodeAt'](_0xcbcc93)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x390f71);};a0_0x81e5['BqBash']=_0x202097,a0_0x81e5['DiUQOw']={},a0_0x81e5['ZYOHoa']=!![];}const _0x3cd3f1=_0x2c4128[0x0],_0x36e97a=_0x300a92+_0x3cd3f1,_0x846294=a0_0x81e5['DiUQOw'][_0x36e97a];return!_0x846294?(_0x81e5b3=a0_0x81e5['BqBash'](_0x81e5b3),a0_0x81e5['DiUQOw'][_0x36e97a]=_0x81e5b3):_0x81e5b3=_0x846294,_0x81e5b3;}let logToFile=![],logDir=a0_0x450014(0xfb),serviceName=a0_0x450014(0x16b),sqlLogEnabled=![],sqlLogLevel='debug',sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;const prettyPrintOptions={'colorize':!![],'translateTime':'SYS:HH:MM:ss','ignore':a0_0x450014(0x133),'singleLine':![],'levelFirst':!![],'messageFormat':a0_0x450014(0x19a),'customColors':a0_0x450014(0x129),'hideObject':!![]},isDevelopment=process[a0_0x450014(0x15f)][a0_0x450014(0x191)]!=='production',logLevel=process[a0_0x450014(0x15f)][a0_0x450014(0x162)]||'info';let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':a0_0x450014(0x13a),'options':prettyPrintOptions}:undefined,'base':{'service':'restforge','version':process['env']['APP_VERSION']||'1.0.5','env':process['env'][a0_0x450014(0x191)]||a0_0x450014(0xfa)},'timestamp':pino[a0_0x450014(0x138)]['isoTime'],'redact':{'paths':[a0_0x450014(0x198),a0_0x450014(0x11d),'password','token','apiKey','DB_PASSWORD','JWT_SECRET'],'censor':'[REDACTED]'},'serializers':{'req':_0x5a2305=>({'id':_0x5a2305['id'],'method':_0x5a2305[a0_0x450014(0x149)],'url':_0x5a2305['url'],'path':_0x5a2305['path'],'remoteAddress':_0x5a2305['ip']||_0x5a2305['connection']?.[a0_0x450014(0x105)]}),'res':_0x39aeca=>({'statusCode':_0x39aeca['statusCode'],'headers':_0x39aeca[a0_0x450014(0x14c)]?.()}),'err':pino['stdSerializers']['err']}});function initFileLogging(){const _0x454892=a0_0x450014,_0x3ae170={'QbCUT':_0x454892(0x19b),'lGdUw':'restforge','UZzIo':_0x454892(0xf6),'lKgWQ':_0x454892(0x10e),'YLgRt':'info'};if(fileLoggingInitialized)return;logToFile=process['env'][_0x454892(0xef)]===_0x3ae170[_0x454892(0xec)],logDir=process['env']['LOG_DIR']||_0x454892(0xfb),serviceName=process[_0x454892(0x15f)]['SERVICE_NAME']||_0x3ae170[_0x454892(0x192)],sqlLogEnabled=process['env'][_0x454892(0x159)]===_0x3ae170[_0x454892(0xec)],sqlLogLevel=process['env']['SQL_LOG_LEVEL']||_0x3ae170[_0x454892(0x127)],sqlLogParams=process['env']['SQL_LOG_PARAMS']!=='false',sqlLogSlowThreshold=parseInt(process['env']['SQL_LOG_SLOW_THRESHOLD'])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x258054=path['resolve'](process['cwd'](),logDir);try{!fs[_0x454892(0x167)](_0x258054)&&fs['mkdirSync'](_0x258054,{'recursive':!![]});}catch(_0x500410){console[_0x454892(0x15a)](_0x454892(0x147)+_0x258054+':',_0x500410[_0x454892(0x123)]),fileLoggingInitialized=!![];return;}const _0x39bd87=path['join'](_0x258054,'app.log'),_0x4c7222=path['join'](_0x258054,_0x3ae170['lKgWQ']);try{appLogStream=fs[_0x454892(0x130)](_0x39bd87,{'flags':'a'}),errorLogStream=fs['createWriteStream'](_0x4c7222,{'flags':'a'}),fileLoggingInitialized=!![];const _0x3f216b={'event':_0x454892(0x112),'logDir':_0x258054,'files':[_0x454892(0x11f),_0x454892(0x10e)]},_0x2589b8=_0x454892(0x13f)+_0x258054;logger[_0x454892(0x196)](_0x3f216b,_0x2589b8),writeToFileLog({..._0x3f216b,'level':_0x3ae170[_0x454892(0x144)],'msg':_0x2589b8,'time':new Date()['toISOString']()},_0x3ae170['YLgRt']);}catch(_0xedfca4){console['error'](_0x454892(0x157),_0xedfca4['message']),fileLoggingInitialized=!![];}}function writeToFileLog(_0x4a32ef,_0x55da8f){const _0xc0df4=a0_0x450014,_0x2bd03e={'XnxLF':function(_0x3648b1,_0x5ad689){return _0x3648b1+_0x5ad689;},'MGskU':function(_0x4cfe89,_0x4d938d){return _0x4cfe89===_0x4d938d;},'qjxRY':_0xc0df4(0x15a)};if(!logToFile||!appLogStream)return;const _0x526708={'service':serviceName,..._0x4a32ef},_0x412a28=_0x2bd03e['XnxLF'](JSON['stringify'](_0x526708),'\x0a');appLogStream['write'](_0x412a28),(_0x2bd03e['MGskU'](_0x55da8f,_0x2bd03e['qjxRY'])||_0x2bd03e[_0xc0df4(0xe5)](_0x55da8f,_0xc0df4(0x114)))&&(errorLogStream&&errorLogStream[_0xc0df4(0x13e)](_0x412a28));}const createRequestLogger=(_0x13c212={})=>{const _0x464a36=a0_0x450014;return logger[_0x464a36(0x16a)](_0x13c212);},logServerStart=_0x5ad1d3=>{const _0xba419a=a0_0x450014,_0x5c6e6d={'vBsGD':_0xba419a(0x122),'HiTLm':'Default','pRTkS':'ACTIVE','vMpTp':_0xba419a(0x11a),'VbPwl':'server_starting','ZEabs':_0xba419a(0x196)},_0xce937e='\x0a╔═══════════════════════════════════════════════════════╗\x0a║\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20RESTFORGE\x20RUNTIME\x20SERVER\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20║\x0a╠═══════════════════════════════════════════════════════╣\x0a║\x20\x20Environment\x20:\x20'+(_0x5ad1d3[_0xba419a(0x139)]||_0x5c6e6d[_0xba419a(0x12c)])[_0xba419a(0x134)](0x26)+'\x20║\x0a║\x20\x20Project\x20\x20\x20\x20\x20:\x20'+(_0x5ad1d3[_0xba419a(0x19c)]||'N/A')['padEnd'](0x26)+_0xba419a(0xfc)+String(_0x5ad1d3[_0xba419a(0x168)]||0xbb8)['padEnd'](0x26)+'\x20║\x0a║\x20\x20Config\x20\x20\x20\x20\x20\x20:\x20'+(_0x5ad1d3[_0xba419a(0xe7)]||_0x5c6e6d[_0xba419a(0x18e)])['padEnd'](0x26)+'\x20║\x0a║\x20\x20API\x20Key\x20\x20\x20\x20\x20:\x20'+(_0x5ad1d3[_0xba419a(0x188)]?_0x5c6e6d[_0xba419a(0x14f)]:_0x5c6e6d['vMpTp'])['padEnd'](0x26)+_0xba419a(0x165);console['log'](_0xce937e);const _0x5c6ec5={'event':_0x5c6e6d[_0xba419a(0x126)],'project':_0x5ad1d3[_0xba419a(0x19c)],'port':_0x5ad1d3['port'],'config':_0x5ad1d3[_0xba419a(0xe7)],'apiKeyEnabled':!!_0x5ad1d3['apiKey']};logger['info'](_0x5c6ec5),writeToFileLog({..._0x5c6ec5,'level':_0xba419a(0x196),'msg':'Server\x20starting:\x20'+_0x5ad1d3['project']+'\x20on\x20port\x20'+_0x5ad1d3[_0xba419a(0x168)],'time':new Date()[_0xba419a(0x109)]()},_0x5c6e6d[_0xba419a(0x137)]);},logServerReady=_0x1a4b66=>{const _0x4f7fae=a0_0x450014,_0x5e7e7e={'wVFee':_0x4f7fae(0x160),'iPmJl':_0x4f7fae(0x196)},_0x115bc8={'event':_0x5e7e7e[_0x4f7fae(0x135)],'port':_0x1a4b66['port'],'module':_0x1a4b66[_0x4f7fae(0x189)],'healthCheck':_0x1a4b66[_0x4f7fae(0x16d)],'serviceInfo':_0x1a4b66['serviceInfo'],'baseUrl':_0x1a4b66['baseUrl']},_0x129623=_0x4f7fae(0x103)+_0x1a4b66['port'];logger[_0x4f7fae(0x196)](_0x115bc8,_0x129623),writeToFileLog({..._0x115bc8,'level':_0x5e7e7e[_0x4f7fae(0x124)],'msg':_0x129623,'time':new Date()[_0x4f7fae(0x109)]()},_0x5e7e7e['iPmJl']),_0x1a4b66['healthCheck']&&logger['info']('\x20\x20Health:\x20'+_0x1a4b66[_0x4f7fae(0x16d)]),_0x1a4b66['serviceInfo']&&logger[_0x4f7fae(0x196)](_0x4f7fae(0x131)+_0x1a4b66['serviceInfo']),_0x1a4b66['baseUrl']&&logger[_0x4f7fae(0x196)](_0x4f7fae(0x152)+_0x1a4b66['baseUrl']);},logProjectLoaded=(_0x48d68d,_0x18f84a)=>{const _0x5e405d=a0_0x450014,_0x9dddbc={'WEdEv':'info'},_0x265849={'event':'project_loaded','project':_0x48d68d,'path':_0x18f84a},_0x27b134=_0x5e405d(0x11e)+_0x48d68d;logger['info'](_0x265849,_0x27b134),writeToFileLog({..._0x265849,'level':'info','msg':_0x27b134,'time':new Date()['toISOString']()},_0x9dddbc[_0x5e405d(0x18c)]);},logEndpointRegistered=(_0x9b8396,_0x2ba87f)=>{const _0x2bf4bb=a0_0x450014,_0x5b2b52={'pgEkG':'endpoint_registered','jMreR':_0x2bf4bb(0xf6)},_0x2e6360={'event':_0x5b2b52['pgEkG'],'endpoint':_0x9b8396,'route':_0x2ba87f},_0x20d355=_0x2bf4bb(0x14a)+_0x9b8396+':\x20'+_0x2ba87f;logger['debug'](_0x2e6360,_0x20d355),writeToFileLog({..._0x2e6360,'level':_0x5b2b52[_0x2bf4bb(0x17d)],'msg':_0x20d355,'time':new Date()[_0x2bf4bb(0x109)]()},_0x5b2b52[_0x2bf4bb(0x17d)]);},logDatabaseConfig=_0x1e931e=>{const _0x886543=a0_0x450014,_0x496141={'DcquK':'database_config','IdCmd':'debug'},_0x354ddb={'event':_0x496141['DcquK'],'host':_0x1e931e[_0x886543(0x187)],'port':_0x1e931e['port'],'database':_0x1e931e[_0x886543(0x176)],'type':_0x1e931e['type'],'user':_0x1e931e['user']},_0x58c1e7=_0x886543(0x158)+_0x1e931e[_0x886543(0x153)]+_0x886543(0xe9)+_0x1e931e['host']+':'+_0x1e931e['port']+'/'+_0x1e931e['database'];logger[_0x886543(0xf6)](_0x354ddb,_0x58c1e7),writeToFileLog({..._0x354ddb,'level':'debug','msg':_0x58c1e7,'time':new Date()[_0x886543(0x109)]()},_0x496141[_0x886543(0x181)]);},logRequest=(_0x5449de,_0x54fafb,_0x25125c)=>{const _0x45ca01=a0_0x450014,_0x7e7cc3={'xDxEl':'http_request','sYXsv':function(_0x511f14,_0x14da1a){return _0x511f14>=_0x14da1a;},'mGlpe':_0x45ca01(0x15a)},_0x3c119b={'event':_0x7e7cc3[_0x45ca01(0x10d)],'method':_0x5449de['method'],'path':_0x5449de['path'],'statusCode':_0x54fafb['statusCode'],'durationMs':_0x25125c,'ip':_0x5449de['ip']},_0x15a6e3=_0x5449de['method']+'\x20'+_0x5449de['path']+'\x20-\x20'+_0x54fafb[_0x45ca01(0x101)]+'\x20('+_0x25125c+'ms)';let _0x20a438=_0x45ca01(0x196);if(_0x7e7cc3['sYXsv'](_0x54fafb[_0x45ca01(0x101)],0x1f4))_0x20a438=_0x7e7cc3[_0x45ca01(0x17f)],logger['error'](_0x3c119b,_0x15a6e3);else _0x54fafb['statusCode']>=0x190?(_0x20a438='warn',logger['warn'](_0x3c119b,_0x15a6e3)):logger['info'](_0x3c119b,_0x15a6e3);writeToFileLog({..._0x3c119b,'level':_0x20a438,'msg':_0x15a6e3,'time':new Date()['toISOString']()},_0x20a438);},SENSITIVE_PARAM_PATTERNS=[a0_0x450014(0xe6),a0_0x450014(0x155),a0_0x450014(0xed),a0_0x450014(0xee),'access_token',a0_0x450014(0x106),a0_0x450014(0x17e),a0_0x450014(0x110),a0_0x450014(0xea),'api_key',a0_0x450014(0x14b),a0_0x450014(0x186),'pin',a0_0x450014(0x15d),'private_key','privatekey'],redactSensitiveParams=(_0x3a70bf,_0x547264)=>{const _0x340daf=a0_0x450014,_0x51c632={'Rysua':'[REDACTED]','jZOgm':_0x340daf(0x13d),'kJasx':'[REDACTED:hash]'};if(!_0x3a70bf||_0x3a70bf['length']===0x0)return _0x3a70bf;const _0x2827a0=_0x547264[_0x340daf(0x115)](),_0xa240c3=_0x2827a0[_0x340daf(0x163)](/\(([^)]+)\)\s*values/i);let _0x1b0fc2=[];_0xa240c3&&(_0x1b0fc2=_0xa240c3[0x1]['split'](',')[_0x340daf(0x15c)](_0x56db57=>_0x56db57['trim']()['toLowerCase']()));const _0x166e93=_0x2827a0['match'](/set\s+(.+?)(?:\s+where|$)/i);if(_0x166e93){const _0x38b734=_0x166e93[0x1],_0x4dad53=_0x38b734['match'](/(\w+)\s*=/g);_0x4dad53&&(_0x1b0fc2=_0x4dad53['map'](_0x5668e9=>_0x5668e9['replace'](/\s*=/,'')['trim']()[_0x340daf(0x115)]()));}return _0x3a70bf['map']((_0x595920,_0x413f2d)=>{const _0x159962=_0x340daf;if(_0x1b0fc2[_0x413f2d]){const _0x4ff3b7=_0x1b0fc2[_0x413f2d],_0x106447=SENSITIVE_PARAM_PATTERNS[_0x159962(0xfd)](_0x21e61d=>_0x4ff3b7['includes'](_0x21e61d));if(_0x106447)return _0x51c632['Rysua'];}if(typeof _0x595920===_0x51c632[_0x159962(0x172)]&&_0x595920['length']>0x20){if(/^[a-zA-Z0-9+/=_.-]+$/[_0x159962(0x154)](_0x595920)&&_0x595920['includes']('.'))return'[REDACTED:token]';if(/^[a-fA-F0-9]{32,}$/[_0x159962(0x154)](_0x595920))return _0x51c632['kJasx'];}return _0x595920;});},parseQueryMetadata=_0xfc1a71=>{const _0x2af508=a0_0x450014,_0xfa8198={'EwsHR':'UNKNOWN','FRRel':'SELECT','xtCiO':'DELETE','Iqrfl':'START\x20TRANSACTION','rNsmm':_0x2af508(0xf2),'bwmnj':'TRANSACTION_ROLLBACK','dolda':_0x2af508(0x161),'gXfpB':'DDL_CREATE','WteHe':'ALTER','cfMMC':'DDL_ALTER','VpdQo':'DROP'},_0x4b5eaf=_0xfc1a71[_0x2af508(0x142)](),_0x57e5fb=_0x4b5eaf['toUpperCase']();let _0x568f61=_0xfa8198['EwsHR'],_0x369f7b=null;if(_0x57e5fb[_0x2af508(0xfe)](_0xfa8198[_0x2af508(0xf3)])){_0x568f61=_0xfa8198['FRRel'];const _0x460ac3=_0x4b5eaf[_0x2af508(0x163)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x369f7b=_0x460ac3?_0x460ac3[0x1]:null;}else{if(_0x57e5fb[_0x2af508(0xfe)](_0x2af508(0x15b))){_0x568f61='INSERT';const _0x7a3079=_0x4b5eaf[_0x2af508(0x163)](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x369f7b=_0x7a3079?_0x7a3079[0x1]:null;}else{if(_0x57e5fb['startsWith'](_0x2af508(0x178))){_0x568f61='UPDATE';const _0x2d6ec1=_0x4b5eaf[_0x2af508(0x163)](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x369f7b=_0x2d6ec1?_0x2d6ec1[0x1]:null;}else{if(_0x57e5fb[_0x2af508(0xfe)](_0xfa8198['xtCiO'])){_0x568f61='DELETE';const _0x5dce6c=_0x4b5eaf['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x369f7b=_0x5dce6c?_0x5dce6c[0x1]:null;}else{if(_0x57e5fb[_0x2af508(0xfe)](_0x2af508(0x10f))||_0x57e5fb[_0x2af508(0xfe)](_0xfa8198[_0x2af508(0x171)]))_0x568f61=_0x2af508(0xf7);else{if(_0x57e5fb[_0x2af508(0xfe)](_0x2af508(0x184)))_0x568f61=_0xfa8198['rNsmm'];else{if(_0x57e5fb[_0x2af508(0xfe)]('ROLLBACK'))_0x568f61=_0xfa8198['bwmnj'];else{if(_0x57e5fb[_0x2af508(0xfe)](_0xfa8198['dolda']))_0x568f61=_0xfa8198[_0x2af508(0xe4)];else{if(_0x57e5fb[_0x2af508(0xfe)](_0xfa8198['WteHe']))_0x568f61=_0xfa8198['cfMMC'];else _0x57e5fb['startsWith'](_0xfa8198[_0x2af508(0x180)])&&(_0x568f61=_0x2af508(0x150));}}}}}}}}return{'type':_0x568f61,'table':_0x369f7b};},startQueryTimer=()=>{const _0x43d590={'lHVNH':function(_0x3917d0,_0x3724e3){return _0x3917d0(_0x3724e3);},'xrVcO':function(_0x4a7c05,_0x206335){return _0x4a7c05*_0x206335;},'mIANL':function(_0x2e7cba,_0x263287){return _0x2e7cba/_0x263287;}},_0x234090=process['hrtime']();return()=>{const _0x23c65d=a0_0x81e5,[_0x47d47d,_0x330ff3]=process[_0x23c65d(0x12f)](_0x234090);return _0x43d590[_0x23c65d(0xf4)](parseFloat,(_0x43d590['xrVcO'](_0x47d47d,0x3e8)+_0x43d590['mIANL'](_0x330ff3,0xf4240))['toFixed'](0x2));};},logQuery=(_0x49f7c2,_0xe3d15c=[],_0x5092c1={})=>{const _0x20d3db=a0_0x450014,_0x3eb26c={'ZTdhh':_0x20d3db(0x18b),'BYbLO':_0x20d3db(0x118),'Hitfz':function(_0x57b8f6,_0x1554d5){return _0x57b8f6>_0x1554d5;},'LcDsB':function(_0x5d3127,_0x3281c,_0x3df7ff){return _0x5d3127(_0x3281c,_0x3df7ff);},'KzSXL':function(_0x31beea,_0x599e2f){return _0x31beea!==_0x599e2f;},'etFqE':'debug','fZtSh':function(_0x1c95ff,_0x34399e){return _0x1c95ff===_0x34399e;},'uDWjn':_0x20d3db(0x196)};if(!sqlLogEnabled){logger[_0x20d3db(0xf6)]({'event':_0x3eb26c['ZTdhh'],'query':_0x49f7c2[_0x20d3db(0xe8)](0x0,0xc8),'paramCount':_0xe3d15c['length']},'DB\x20Query');return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType=_0x3eb26c[_0x20d3db(0x166)]}=_0x5092c1,{type:_0x3aa212,table:_0x51edab}=parseQueryMetadata(_0x49f7c2),_0x16cd83={'event':'sql_query','queryType':_0x3aa212,'table':_0x51edab,'query':_0x49f7c2,'paramCount':_0xe3d15c[_0x20d3db(0x132)],'dbType':dbType};sqlLogParams&&_0x3eb26c[_0x20d3db(0x164)](_0xe3d15c['length'],0x0)&&(_0x16cd83[_0x20d3db(0xf1)]=_0x3eb26c[_0x20d3db(0xf8)](redactSensitiveParams,_0xe3d15c,_0x49f7c2));duration!==null&&(_0x16cd83['durationMs']=duration,_0x16cd83[_0x20d3db(0x16e)]=duration>sqlLogSlowThreshold);rowsAffected!==null&&(_0x16cd83[_0x20d3db(0x121)]=rowsAffected);const _0x5c8990=_0x51edab||_0x20d3db(0x151);let _0x41c45e='['+_0x3aa212+']\x20'+_0x5c8990;duration!==null&&(_0x41c45e+='\x20('+duration+_0x20d3db(0x17c));const _0x21c87a=_0x3eb26c[_0x20d3db(0x14d)](duration,null)&&_0x3eb26c[_0x20d3db(0x164)](duration,sqlLogSlowThreshold);let _0x1db78a=_0x3eb26c['etFqE'];if(_0x21c87a)_0x41c45e+='\x20[SLOW]',_0x1db78a='warn',logger[_0x20d3db(0x173)](_0x16cd83,_0x41c45e);else _0x3eb26c['fZtSh'](sqlLogLevel,_0x3eb26c[_0x20d3db(0x146)])?(_0x1db78a=_0x3eb26c['uDWjn'],logger['info'](_0x16cd83,_0x41c45e)):logger['debug'](_0x16cd83,_0x41c45e);_0x3eb26c['LcDsB'](writeToFileLog,{..._0x16cd83,'level':_0x1db78a,'msg':_0x41c45e,'time':new Date()['toISOString']()},_0x1db78a);},logTransaction=(_0x5cf5af,_0x5b742)=>{const _0x3e214c=a0_0x450014,_0x181e86={'QpViK':_0x3e214c(0x194),'SgJSy':_0x3e214c(0xf6)},_0x352ab7={'event':_0x181e86[_0x3e214c(0x11b)],'status':_0x5cf5af,'queryCount':_0x5b742},_0x4f6335='Transaction\x20'+_0x5cf5af;logger['debug'](_0x352ab7,_0x4f6335),writeToFileLog({..._0x352ab7,'level':_0x181e86[_0x3e214c(0x15e)],'msg':_0x4f6335,'time':new Date()[_0x3e214c(0x109)]()},'debug');},redactObject=_0x3c1989=>{const _0x1423f3=a0_0x450014,_0x332ca9={'hUIKM':function(_0x10eed5,_0x47f927){return _0x10eed5!==_0x47f927;},'vNZpE':'pwd','boAIZ':_0x1423f3(0xee),'pCAaE':_0x1423f3(0x17e),'XXBup':_0x1423f3(0xf0),'fhsZc':_0x1423f3(0x12a),'XiDvL':'ssn','lfujl':'pin','tSDdQ':'privatekey','uYkXl':'refresh_token','QOLBK':_0x1423f3(0x102),'jPgUj':function(_0x4d7e39,_0x29f327){return _0x4d7e39===_0x29f327;},'KFRWS':function(_0x2392c2,_0x516622){return _0x2392c2!==_0x516622;}};if(!_0x3c1989||_0x332ca9['hUIKM'](typeof _0x3c1989,_0x1423f3(0x174)))return _0x3c1989;const _0x112ef6=['password',_0x1423f3(0x155),_0x332ca9[_0x1423f3(0x179)],_0x332ca9['boAIZ'],_0x332ca9[_0x1423f3(0x13b)],'apikey',_0x332ca9['XXBup'],_0x332ca9[_0x1423f3(0x156)],_0x1423f3(0xf9),_0x1423f3(0x136),'cvv',_0x332ca9['XiDvL'],_0x332ca9[_0x1423f3(0x177)],_0x1423f3(0xeb),_0x332ca9[_0x1423f3(0x100)],_0x332ca9[_0x1423f3(0x12b)],_0x1423f3(0x104)],_0x2c1cc9=Array['isArray'](_0x3c1989)?[..._0x3c1989]:{..._0x3c1989};for(const _0x8c496a of Object['keys'](_0x2c1cc9)){const _0x55fc36=_0x8c496a['toLowerCase']();if(_0x112ef6['some'](_0x3dc146=>_0x55fc36['includes'](_0x3dc146)))_0x2c1cc9[_0x8c496a]=_0x332ca9['QOLBK'];else _0x332ca9[_0x1423f3(0x113)](typeof _0x2c1cc9[_0x8c496a],'object')&&_0x332ca9['KFRWS'](_0x2c1cc9[_0x8c496a],null)&&(_0x2c1cc9[_0x8c496a]=redactObject(_0x2c1cc9[_0x8c496a]));}return _0x2c1cc9;},logError=(_0x5ba335,_0x20eb1a={},_0x3a1bb6=null)=>{const _0x2547ca=a0_0x450014,_0x53ddcc={'nlNxr':'error','wnVrw':function(_0x3248f5,_0x21d098,_0x55a1f1){return _0x3248f5(_0x21d098,_0x55a1f1);}},_0x34db07={'event':_0x53ddcc['nlNxr'],'errorName':_0x5ba335['name']||_0x2547ca(0x143),'errorMessage':_0x5ba335[_0x2547ca(0x123)],'errorCode':_0x5ba335['code']||null,'stack':_0x5ba335[_0x2547ca(0x11c)],..._0x20eb1a},_0x2380f8=_0x3a1bb6||'Error:\x20'+_0x5ba335[_0x2547ca(0x123)];logger[_0x2547ca(0x15a)](_0x34db07,_0x2380f8),_0x53ddcc['wnVrw'](writeToFileLog,{..._0x34db07,'level':'error','msg':_0x2380f8,'time':new Date()[_0x2547ca(0x109)]()},_0x53ddcc['nlNxr']);},logFatalError=(_0x1d3a61,_0x305033={},_0x268614=null)=>{const _0x4bf6e6=a0_0x450014,_0x4fb7bf={'YbaUf':_0x4bf6e6(0x14e),'zjHMr':_0x4bf6e6(0x143),'SICRq':function(_0x2f7f83,_0x1aa071,_0x5352d3){return _0x2f7f83(_0x1aa071,_0x5352d3);},'ylVvW':_0x4bf6e6(0x114)},_0x53e121={'event':_0x4fb7bf['YbaUf'],'errorName':_0x1d3a61['name']||_0x4fb7bf[_0x4bf6e6(0x117)],'errorMessage':_0x1d3a61['message'],'errorCode':_0x1d3a61['code']||null,'stack':_0x1d3a61['stack'],'severity':_0x4bf6e6(0x17a),..._0x305033},_0x395e39=_0x268614||_0x4bf6e6(0x190)+_0x1d3a61[_0x4bf6e6(0x123)];logger['fatal'](_0x53e121,_0x395e39),_0x4fb7bf[_0x4bf6e6(0x175)](writeToFileLog,{..._0x53e121,'level':_0x4fb7bf[_0x4bf6e6(0x12d)],'msg':_0x395e39,'time':new Date()[_0x4bf6e6(0x109)]()},'error');},logHttpError=(_0x5c0265,_0x2235f,_0x40dea1={})=>{const _0x3fc7e7=a0_0x450014,_0x52bc31={'XcqWj':'http_error','Fqxbw':'Error','ytiZa':'user-agent','reziU':_0x3fc7e7(0x145),'pQDXh':function(_0x10296d,_0x347acb){return _0x10296d(_0x347acb);},'aXiSr':function(_0x55d78a,_0x71ef20){return _0x55d78a>=_0x71ef20;},'uJaur':function(_0x4e4618,_0x12a10e){return _0x4e4618>=_0x12a10e;},'KsPoo':_0x3fc7e7(0x15a),'lmZJU':_0x3fc7e7(0x173)},_0x28a3f3={'event':_0x52bc31[_0x3fc7e7(0x18d)],'errorName':_0x5c0265[_0x3fc7e7(0x111)]||_0x52bc31['Fqxbw'],'errorMessage':_0x5c0265['message'],'errorCode':_0x5c0265[_0x3fc7e7(0x17b)]||_0x5c0265['statusCode']||0x1f4,'stack':_0x5c0265['stack'],'method':_0x2235f?.[_0x3fc7e7(0x149)],'url':_0x2235f?.[_0x3fc7e7(0x125)]||_0x2235f?.['originalUrl'],'path':_0x2235f?.[_0x3fc7e7(0x182)],'ip':_0x2235f?.['ip']||_0x2235f?.[_0x3fc7e7(0x185)]?.[_0x3fc7e7(0x105)],'userAgent':_0x2235f?.[_0x3fc7e7(0x140)]?.(_0x52bc31['ytiZa']),'requestId':_0x2235f?.['id']||_0x2235f?.[_0x3fc7e7(0x119)]?.[_0x52bc31[_0x3fc7e7(0x169)]],'body':_0x2235f?.['body']?_0x52bc31['pQDXh'](redactObject,_0x2235f[_0x3fc7e7(0x120)]):undefined,'query':_0x2235f?.[_0x3fc7e7(0x10b)],..._0x40dea1},_0x2ea6bc=_0x5c0265[_0x3fc7e7(0x101)]||_0x5c0265[_0x3fc7e7(0x170)]||0x1f4,_0x2a13b2='HTTP\x20'+_0x2ea6bc+':\x20'+_0x5c0265['message'];_0x52bc31['aXiSr'](_0x2ea6bc,0x1f4)?logger['error'](_0x28a3f3,_0x2a13b2):logger[_0x3fc7e7(0x173)](_0x28a3f3,_0x2a13b2),writeToFileLog({..._0x28a3f3,'level':_0x52bc31['uJaur'](_0x2ea6bc,0x1f4)?_0x52bc31['KsPoo']:_0x52bc31['lmZJU'],'msg':_0x2a13b2,'time':new Date()['toISOString']()},_0x52bc31['aXiSr'](_0x2ea6bc,0x1f4)?'error':'warn');},logUncaughtError=(_0x3bc53f,_0x3703cb)=>{const _0x2c061a=a0_0x450014,_0x17490c={'lQJvY':_0x2c061a(0x17a),'QvOZc':function(_0x39d8b0,_0x12e140,_0x55a9a6){return _0x39d8b0(_0x12e140,_0x55a9a6);}},_0x478934={'event':_0x3bc53f,'errorName':_0x3703cb?.['name']||'Error','errorMessage':_0x3703cb?.['message']||String(_0x3703cb),'errorCode':_0x3703cb?.['code']||null,'stack':_0x3703cb?.[_0x2c061a(0x11c)],'severity':_0x17490c[_0x2c061a(0x16f)],'processId':process['pid'],'memoryUsage':process[_0x2c061a(0x12e)](),'uptime':process['uptime']()},_0x397677='['+_0x3bc53f['toUpperCase']()+']\x20'+(_0x3703cb?.[_0x2c061a(0x123)]||_0x3703cb);logger['fatal'](_0x478934,_0x397677),_0x17490c['QvOZc'](writeToFileLog,{..._0x478934,'level':_0x2c061a(0x114),'msg':_0x397677,'time':new Date()[_0x2c061a(0x109)]()},'error');},setupGlobalErrorHandlers=()=>{const _0x554b8=a0_0x450014,_0x5ca318={'FrvfO':function(_0x1ea1a5,_0x177325,_0x203c2c){return _0x1ea1a5(_0x177325,_0x203c2c);},'HCQhk':_0x554b8(0x107),'AGykZ':_0x554b8(0x195),'MYVcn':'Global\x20error\x20handlers\x20initialized','bVMqs':_0x554b8(0x196)};process['on'](_0x554b8(0x18a),_0x388424=>{const _0x557ca6=_0x554b8;_0x5ca318['FrvfO'](logUncaughtError,_0x557ca6(0x18a),_0x388424),setTimeout(()=>{const _0x4da6de=_0x557ca6;process[_0x4da6de(0xff)](0x1);},0x3e8);}),process['on'](_0x554b8(0x183),(_0x437573,_0x258272)=>{const _0x3e8d69=_0x437573 instanceof Error?_0x437573:new Error(String(_0x437573));logUncaughtError('unhandledRejection',_0x3e8d69);}),process['on'](_0x5ca318[_0x554b8(0x108)],_0x4e42e4=>{const _0x5c2c95=_0x554b8;logger['warn']({'event':_0x5ca318[_0x5c2c95(0xe3)],'name':_0x4e42e4['name'],'message':_0x4e42e4['message'],'stack':_0x4e42e4['stack']},'Process\x20Warning:\x20'+_0x4e42e4[_0x5c2c95(0x123)]);});const _0x1b14dc={'event':'global_error_handlers_setup'},_0x137940=_0x5ca318['MYVcn'];logger[_0x554b8(0x196)](_0x1b14dc,_0x137940),_0x5ca318['FrvfO'](writeToFileLog,{..._0x1b14dc,'level':_0x5ca318[_0x554b8(0x148)],'msg':_0x137940,'time':new Date()[_0x554b8(0x109)]()},_0x5ca318['bVMqs']);},createErrorHandlerMiddleware=()=>{const _0x3ae093={'nlWCD':function(_0x5068c3,_0x41deab,_0x188f17){return _0x5068c3(_0x41deab,_0x188f17);},'ajMZD':function(_0x4f8765,_0x1a0783){return _0x4f8765>=_0x1a0783;},'cWcXh':'Internal\x20server\x20error'};return(_0x30175e,_0x37f5b3,_0x5824d6,_0x297961)=>{const _0x1a8327=a0_0x81e5;_0x3ae093[_0x1a8327(0x13c)](logHttpError,_0x30175e,_0x37f5b3);const _0x5d90e5=_0x30175e['statusCode']||_0x30175e[_0x1a8327(0x170)]||0x1f4;_0x5824d6[_0x1a8327(0x170)](_0x5d90e5)['json']({'success':![],'error':_0x3ae093[_0x1a8327(0x18f)](_0x5d90e5,0x1f4)?_0x3ae093['cWcXh']:_0x30175e[_0x1a8327(0x123)],'requestId':_0x37f5b3['id']||_0x37f5b3[_0x1a8327(0x119)]?.['x-request-id']||null});};};function a0_0x2c41(){const _0x30c40d=['icbjBMzVoIaGia','BgvUz3rO','CgLKlgHVC3rUyw1LlhnLCNzPy2uSDMvYC2LVBIXLBNySzxzLBNqSBw9KDwXLlhbVCNqSy29UzMLNlgfWAuTLEuvUywjSzwqSCgf0AcX3B3jRAw5NrgLYlgLZugTNlgLZtM9KzvnJCMLWDcXMAwXLlgvTywLSlhr5CguSy29YCYXSB2DNAw5NlgfWAuTLEsXJB3vUDcXLBMrWB2LUDcXYB3v0zq','CgfKrw5K','D1zgzwu','y3jLzgL0x2nHCMq','wKvHyNm','C3rKvgLTzuz1BMn0Aw9UCW','zw52AxjVBM1LBNq','CgLUBY1WCMv0DhK','Cenbyuu','BMXxq0q','C3rYAw5N','D3jPDgu','rMLSzsbSB2DNAw5NigvUywjSzwq6ia','z2v0','mtaYmZe0mJrVt3fVB0q','DhjPBq','rxjYB3i','wuXNuNq','Ec1Yzxf1zxn0lwLK','DurxAM4','rMfPBgvKihrVignYzwf0zsbSB2CGzgLYzwn0B3j5ia','yLznCxm','Bwv0Ag9K','icdIHPiG','y3jLzgvUDgLHBa','z2v0sgvHzgvYCW','s3PtweW','zMf0ywXFzxjYB3i','CfjuA1m','rermx0rst1a','Dw5RBM93BG','icbvuKW6icaGia','DhLWzq','DgvZDa','CgfZC3DK','zMHZwMm','rMfPBgvKihrVignYzwf0zsbSB2CGC3rYzwfTCZO','rgf0ywjHC2u6ia','u1fmx0Xpr19ftKfcteve','zxjYB3i','su5trvju','BwfW','B3rW','u2Dku3K','zw52','C2vYDMvYx3jLywr5','q1jfqvrf','te9hx0XfvKvm','Bwf0y2G','sgL0zNO','iokvKqRILzRILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILz0','qLLIte8','zxHPC3rZu3LUyW','Cg9YDa','CMv6Avu','y2HPBgq','CMvZDgzVCMDL','mtG0otHcvNzJCe0','AgvHBhrOq2HLy2S','AxntBg93','BffkDLK','C3rHDhvZ','sxfYzMW','ALPpz20','D2fYBG','B2jQzwn0','u0LduNe','zgf0ywjHC2u','Bgz1AMW','vvbeqvrf','DK5ACeu','q1jjveLdquW','y29Kzq','BxmP','AK1Yzvi','C2vJCMv0','BuDSCgu','vNbKuw8','swrdBwq','Cgf0Aa','Dw5Oyw5KBgvKuMvQzwn0Aw9U','q09ntuLu','y29UBMvJDgLVBG','y3jLzgvUDgLHBhm','Ag9ZDa','yxbPs2v5','Bw9KDwXL','Dw5JyxvNAhrfEgnLChrPB24','zgjFCxvLCNK','v0vKrxy','wgnXv2O','sgLutg0','ywPnwKq','rKfuquW6ia','tK9erv9ftLy','BeDKvxC','mta0mZGXnMjAuvn0ra','zgjFDhjHBNnHy3rPB24','D2fYBMLUzW','Aw5MBW','mtm5uKD3DeLT','CMvXlMHLywrLCNmUyxv0Ag9YAxPHDgLVBG','mte4me9QBLnLtW','E21Zz30','Dhj1zq','ChjVAMvJDa','senrAgS','z1HMCei','tuDZA1u','CgfZC3DVCMq','y29UzMLNrMLSzq','C3vIC3rYAw5N','oI8V','yxbPA2v5','ChjPDMf0zv9RzxK','uwjdvvq','ChDK','Dg9Rzw4','te9hx1rpx0zjteu','yxbPx2TLEq','CgfYyw1Z','vfjbtLnbq1rjt05Fq09ntuLu','rLjszwW','BeHwtKG','mZyXotm1mJbgrg5ut3a','zgvIDwC','vfjbtLnbq1rjt05FqKvhsu4','tgneC0i','y3jLzgL0y2fYza','zgv2zwXVCg1LBNq','lI9SB2DZ','iokvKqRILzeGifbVCNqGicaGicaGidOG','C29Tzq','C3rHCNrZv2L0Aa','zxHPDa','Dfnezfe','C3rHDhvZq29Kzq','w1jfrefdvevexq','w09lxsbtzxj2zxiGCMvHzhKGB24GCg9YDca','ywnJzxnZx3rVA2vU','CMvTB3rLqwrKCMvZCW','CMvMCMvZAf90B2TLBG','ChjVy2vZC193yxjUAw5N','quD5A1O','Dg9ju09tDhjPBMC','nZuZoejIuxnkCq','CxvLCNK','mtvtBxbZq1G','Eer4rwW','zxjYB3iUBg9N','qKvhsu4','yxbPx3nLy3jLDa','BMfTzq','zMLSzv9SB2DNAw5Nx2vUywjSzwq','ALbNvwO','zMf0ywW','Dg9mB3DLCKnHC2u','ndCZmdi4nwL5qLjwsG','EMPitxi','Cg9ZDgDYzxnXBa','AgvHzgvYCW','tK9uiefdveLwrq','uxbwAuS','C3rHy2S','CMvXlMHLywrLCNnBiNGTyxbPlwTLEsjD','w09lxsbqCM9Qzwn0igXVywrLzdOG','yxbWlMXVzW','yM9KEq','CM93C0fMzMvJDgvK','tM9Kzs5QCW','BwvZC2fNzq','AvbTsMW','DxjS','vMjqD2W','vvP6sw8','mtu5mJm4oerPANfOEq','Aw5MBZPIBhvLlhDHCM46EwvSBg93lgvYCM9YoNjLzcXKzwj1zZPNCMf5','yxv0Ag9YAxPHDgLVBG','DvLRwgW','DKjZr0q','EwXwDLC','BwvTB3j5vxnHz2u','Ahj0Aw1L','y3jLyxrLv3jPDgvtDhjLyw0'];a0_0x2c41=function(){return _0x30c40d;};return a0_0x2c41();}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
|
+
const a0_0x1f7e7c=a0_0x3736;(function(_0x2ca2d8,_0x4dc6bf){const _0x586b6e=a0_0x3736,_0x15cb27=_0x2ca2d8();while(!![]){try{const _0x3932fa=parseInt(_0x586b6e(0xda))/0x1+-parseInt(_0x586b6e(0x13a))/0x2*(-parseInt(_0x586b6e(0xd1))/0x3)+-parseInt(_0x586b6e(0x107))/0x4+-parseInt(_0x586b6e(0x113))/0x5+-parseInt(_0x586b6e(0xdc))/0x6*(-parseInt(_0x586b6e(0x15f))/0x7)+-parseInt(_0x586b6e(0x136))/0x8*(parseInt(_0x586b6e(0xd0))/0x9)+parseInt(_0x586b6e(0x142))/0xa;if(_0x3932fa===_0x4dc6bf)break;else _0x15cb27['push'](_0x15cb27['shift']());}catch(_0x50d896){_0x15cb27['push'](_0x15cb27['shift']());}}}(a0_0x1266,0xb7177));const pino=require(a0_0x1f7e7c(0x143)),fs=require('fs'),path=require(a0_0x1f7e7c(0x174));function a0_0x3736(_0x6f716f,_0x46d07e){_0x6f716f=_0x6f716f-0xc3;const _0x12661b=a0_0x1266();let _0x37369a=_0x12661b[_0x6f716f];if(a0_0x3736['LSsYZs']===undefined){var _0x5e78ca=function(_0x25d2ea){const _0x52e235='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x237f41='',_0x278f4c='';for(let _0x4f4ae5=0x0,_0x1a8d50,_0x33faa2,_0x596261=0x0;_0x33faa2=_0x25d2ea['charAt'](_0x596261++);~_0x33faa2&&(_0x1a8d50=_0x4f4ae5%0x4?_0x1a8d50*0x40+_0x33faa2:_0x33faa2,_0x4f4ae5++%0x4)?_0x237f41+=String['fromCharCode'](0xff&_0x1a8d50>>(-0x2*_0x4f4ae5&0x6)):0x0){_0x33faa2=_0x52e235['indexOf'](_0x33faa2);}for(let _0x5967dc=0x0,_0x136508=_0x237f41['length'];_0x5967dc<_0x136508;_0x5967dc++){_0x278f4c+='%'+('00'+_0x237f41['charCodeAt'](_0x5967dc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x278f4c);};a0_0x3736['yezIDQ']=_0x5e78ca,a0_0x3736['YswFRO']={},a0_0x3736['LSsYZs']=!![];}const _0x12a728=_0x12661b[0x0],_0x2912e1=_0x6f716f+_0x12a728,_0x504912=a0_0x3736['YswFRO'][_0x2912e1];return!_0x504912?(_0x37369a=a0_0x3736['yezIDQ'](_0x37369a),a0_0x3736['YswFRO'][_0x2912e1]=_0x37369a):_0x37369a=_0x504912,_0x37369a;}let logToFile=![],logDir=a0_0x1f7e7c(0xe3),serviceName=a0_0x1f7e7c(0xf9),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_0x1f7e7c(0xea),'customColors':'info:blue,warn:yellow,error:red,debug:gray','hideObject':!![]},isDevelopment=process['env']['NODE_ENV']!==a0_0x1f7e7c(0x12c),logLevel=process['env'][a0_0x1f7e7c(0x153)]||'info';function a0_0x1266(){const _0x400d65=['B2jQzwn0','B3jPz2LUywXvCMW','BNnVq0e','zxHPC3rZu3LUyW','te9hx0XfvKvm','C3rHCNrZv2L0Aa','sLDux1nfq1jfva','CgfZC3DVCMq','CgLUBY1WCMv0DhK','ALfLDMe','w09lxsbtzxj2zxiGCMvHzhKGB24GCg9YDca','zgv2zwXVCg1LBNq','qunusvzf','r2XVyMfSigvYCM9YigHHBMrSzxjZigLUAxrPywXPEMvK','C3Lnt2C','ug14wgS','nZiXCMTICeXW','zfL6Ewu','BwvZC2fNzq','C0zlDve','q1jfqvrf','BwfW','C3rHy2S','rvLXu1K','Ec1Yzxf1zxn0lwLK','w1jfrefdveveoMHHC2HD','CMvXlMHLywrLCNmUyxv0Ag9YAxPHDgLVBG','wuLTrfq','vhjHBNnHy3rPB24G','u0vmrunu','zMf0ywW','BurNufK','vfjbtLnbq1rjt05FqKvhsu4','q1jjveLdquW','Ahj0Aw1L','rMLSzsbSB2DNAw5NigvUywjSzwq6ia','CMvXlMHLywrLCNnBiNGTyxbPlwTLEsjD','Cgf0Aa','D3jPDgu','DxnLCI1Hz2vUDa','CMvTB3rLqwrKCMvZCW','zhf6rgy','z2zABvy','rxjYB3i6ia','Bwv0Ag9K','t3HcEuO','w1jfrefdvevexq','Dg9ju09tDhjPBMC','Dg9vChbLCKnHC2u','A2jSEum','C2vYDMvYx3jLywr5','C2vJCMv0','C3rKvgLTzuz1BMn0Aw9UCW','Dxb0Aw1L','u3DtzfK','D2fYBG','C2vYDMLJzuLUzM8','CvrQEey','w09lxsbqCM9Qzwn0igXVywrLzdOG','zgvIDwC','nda0ntC3r2rprxLv','nti0mda3EMr2uKTm','wvjuEfm','y0Pwvfy','q2PYz1e','y3jLzgL0x2nHCMq','BKjhBe4','ic0G','CxzOAw4','ywnJzxnZx3rVA2vU','mJq2nJaWBgHzvKjf','zhvfrwu','ntm2odHetfnvA20','Cg9YDa','uK9mtejbq0S','qMTuwNy','wLjHufy','ChjVy2vZC193yxjUAw5N','tLDMu0m','lI9SB2DZ','ChjPDMf0zv9RzxK','wLrutLe','te9hx1rpx0zjteu','zw52','Ag9ZDa','Aw5JBhvKzxm','E21Zz30','su5trvju','BwTKAxjtEw5J','zxjY','Dw5Oyw5KBgvKuMvQzwn0Aw9U','AgvHBhrOq2HLy2S','zMfSC2u','rejFueftu1DpuKq','sg5Vve4','Bg9N','Bwf0y2G','y3DK','zgf0ywjHC2vFy29UzMLN','Ahr0Cf9Yzxf1zxn0','rermx0nsrufurq','CMvZDgzVCMDL','iokvKqRILzRILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILz0','Dg9mB3DLCKnHC2u','yxv0Ag9YAxPHDgLVBG','ChDK','wgP3Dem','Cwfnvve','y3jLzgvUDgLHBa','BMXwywi','cUkvLokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvLWRILzeGicaGicaGicaGicaGifjfu1rgt1jhrsbsvu5usu1fifnfuLzfuIaGicaGicaGicaGicaGicaG4PwrcUkvOokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvOWRILzeGievUDMLYB25Tzw50idOG','vxv5zw8','yxbWlMXVzW','tK9erv9ftLy','t3DPzfC','nteYnZyYmfr5DfPXzq','Dw5JyxvNAhrfEgnLChrPB24','C3rHDhvZ','rermx0fmvevs','yK1dy0q','BeTPsLK','zxjYB3i','yxbPs2v5','zMf0ywXFzxjYB3i','vuPhz08','CgfZC3DK','CM93C0fMzMvJDgvK','nJuXodKWnxDWAgnAtq','y3jLzgvUDgLHBhm','BMfTzq','ChjVAMvJDf9SB2fKzwq','iokvKqRILzeGifbVCNqGicaGicaGidOG','rMfPBgvKihrVignYzwf0zsbSB2CGC3rYzwfTCZO','zxHWB3j0CW','uhjVy2vZCYbxyxjUAw5NoIa','vvbeqvrf','rfjpua','vfjbtLnbq1rjt05Fq09ntuLu','DKT0zuG','t0ftsgS','iokvKqRILzeGiefqssblzxKGicaGidOG','Ahr0Cf9LCNjVCG','iokvKqRILzeGienVBMzPzYaGicaGidOG','A2v5CW','reL0q2W','y3jLyxrLv3jPDgvtDhjLyw0','yMfZzvvYBa','BgvUz3rO','CgLU','zgf0ywjHC2u','tI9b','y29UzMLNrMLSzq','ChjVzhvJDgLVBG','u1fmx0Xpr19mrvzfta','CgfKrw5K','DgvZDa','y29Kzq','DxnLCG','Dg9gAxHLza','C3nU','BxmP','Aw5MBW','ofzRwKTdBW','q21Avgm','vuPoww8','rxjYB3i','mtbTEuPrDfe','revmrvrf','uvHhDhq','C29Tzq','reiGuxvLCNK','C3rHDhvZq29Kzq','tLrpruW','CMvWBgfJzq','mtmZodK5mZbbDe5xrxG','CgLUBW','CgfYyw1Z','DhjPBq','zgjFCxvLCNK','C3rKu2vYAwfSAxPLCNm','tK9uiefdveLwrq','ifTtte9xxq','z2v0sgvHzgvYCW','ChjVAMvJDa','ChjPDMf0zwTLEq','CMvMCMvZAf90B2TLBG','icdIHPiG'];a0_0x1266=function(){return _0x400d65;};return a0_0x1266();}let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':a0_0x1f7e7c(0x157),'options':prettyPrintOptions}:undefined,'base':{'service':'restforge','version':process['env']['APP_VERSION']||'1.0.5','env':process[a0_0x1f7e7c(0xe7)][a0_0x1f7e7c(0x105)]||a0_0x1f7e7c(0x15a)},'timestamp':pino[a0_0x1f7e7c(0xc8)]['isoTime'],'redact':{'paths':[a0_0x1f7e7c(0x169),a0_0x1f7e7c(0x173),'password','token',a0_0x1f7e7c(0x10e),a0_0x1f7e7c(0xf1),a0_0x1f7e7c(0x155)],'censor':'[REDACTED]'},'serializers':{'req':_0x12779f=>({'id':_0x12779f['id'],'method':_0x12779f['method'],'url':_0x12779f['url'],'path':_0x12779f[a0_0x1f7e7c(0x174)],'remoteAddress':_0x12779f['ip']||_0x12779f['connection']?.['remoteAddress']}),'res':_0x5016d9=>({'statusCode':_0x5016d9[a0_0x1f7e7c(0x13f)],'headers':_0x5016d9[a0_0x1f7e7c(0x14a)]?.()}),'err':pino[a0_0x1f7e7c(0x147)][a0_0x1f7e7c(0xed)]}});function initFileLogging(){const _0x1cf8b6=a0_0x1f7e7c,_0x52e5d2={'YbKHP':_0x1cf8b6(0xe3),'UJNYo':'restforge','faFcR':function(_0x408868,_0x1e81b1){return _0x408868===_0x1e81b1;},'UJGgO':'debug','jQeva':'error.log','gfZmV':function(_0x54bffb,_0x4c6d69,_0x3d3bda){return _0x54bffb(_0x4c6d69,_0x3d3bda);}};if(fileLoggingInitialized)return;logToFile=process['env'][_0x1cf8b6(0xe6)]==='true',logDir=process[_0x1cf8b6(0xe7)]['LOG_DIR']||_0x52e5d2['YbKHP'],serviceName=process['env']['SERVICE_NAME']||_0x52e5d2[_0x1cf8b6(0x138)],sqlLogEnabled=_0x52e5d2['faFcR'](process['env']['SQL_LOG_ENABLED'],'true'),sqlLogLevel=process[_0x1cf8b6(0xe7)][_0x1cf8b6(0x12d)]||_0x52e5d2[_0x1cf8b6(0x110)],sqlLogParams=process[_0x1cf8b6(0xe7)]['SQL_LOG_PARAMS']!==_0x1cf8b6(0xf0),sqlLogSlowThreshold=parseInt(process['env']['SQL_LOG_SLOW_THRESHOLD'])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x3a6684=path['resolve'](process[_0x1cf8b6(0xf5)](),logDir);try{!fs[_0x1cf8b6(0x152)](_0x3a6684)&&fs[_0x1cf8b6(0xec)](_0x3a6684,{'recursive':!![]});}catch(_0x37a152){console[_0x1cf8b6(0x10d)]('Failed\x20to\x20create\x20log\x20directory\x20'+_0x3a6684+':',_0x37a152[_0x1cf8b6(0x161)]),fileLoggingInitialized=!![];return;}const _0x4cc07e=path['join'](_0x3a6684,_0x1cf8b6(0x104)),_0x1565e9=path['join'](_0x3a6684,_0x52e5d2[_0x1cf8b6(0x158)]);try{appLogStream=fs[_0x1cf8b6(0x125)](_0x4cc07e,{'flags':'a'}),errorLogStream=fs['createWriteStream'](_0x1565e9,{'flags':'a'}),fileLoggingInitialized=!![];const _0x8e2301={'event':'file_logging_enabled','logDir':_0x3a6684,'files':[_0x1cf8b6(0x104),'error.log']},_0x500d85=_0x1cf8b6(0x172)+_0x3a6684;logger['info'](_0x8e2301,_0x500d85),_0x52e5d2[_0x1cf8b6(0x179)](writeToFileLog,{..._0x8e2301,'level':'info','msg':_0x500d85,'time':new Date()[_0x1cf8b6(0xc3)]()},'info');}catch(_0x249e6c){console[_0x1cf8b6(0x10d)](_0x1cf8b6(0x118),_0x249e6c[_0x1cf8b6(0x161)]),fileLoggingInitialized=!![];}}function writeToFileLog(_0x3b698a,_0x7618ae){const _0x4ab201=a0_0x1f7e7c,_0x50c51a={'ipoeF':'error','syMOg':_0x4ab201(0x16d)};if(!logToFile||!appLogStream)return;const _0x4f6ed0={'service':serviceName,..._0x3b698a},_0x53a959=JSON['stringify'](_0x4f6ed0)+'\x0a';appLogStream[_0x4ab201(0x175)](_0x53a959),(_0x7618ae===_0x50c51a['ipoeF']||_0x7618ae===_0x50c51a[_0x4ab201(0x15d)])&&(errorLogStream&&errorLogStream['write'](_0x53a959));}const createRequestLogger=(_0x5f1b8d={})=>{return logger['child'](_0x5f1b8d);},logServerStart=_0x3d5234=>{const _0x29ffda=a0_0x1f7e7c,_0x2fd62a={'SZgIn':'Node.js','Shibd':'Default','bBLdI':_0x29ffda(0x15b),'LVDZY':_0x29ffda(0x148),'cJVTV':function(_0x44ff1f,_0x1f7251,_0x27a725){return _0x44ff1f(_0x1f7251,_0x27a725);},'NxXLD':'info'},_0x26e676=_0x29ffda(0x102)+(_0x3d5234['environment']||_0x2fd62a['SZgIn'])['padEnd'](0x26)+'\x20║\x0a║\x20\x20Project\x20\x20\x20\x20\x20:\x20'+(_0x3d5234['project']||_0x29ffda(0x12a))['padEnd'](0x26)+_0x29ffda(0x117)+String(_0x3d5234['port']||0xbb8)[_0x29ffda(0x12e)](0x26)+_0x29ffda(0x122)+(_0x3d5234[_0x29ffda(0x12b)]||_0x2fd62a['Shibd'])[_0x29ffda(0x12e)](0x26)+_0x29ffda(0x120)+(_0x3d5234['apiKey']?_0x2fd62a['bBLdI']:_0x2fd62a['LVDZY'])[_0x29ffda(0x12e)](0x26)+_0x29ffda(0xfa);console[_0x29ffda(0xf3)](_0x26e676);const _0x2f2449={'event':'server_starting','project':_0x3d5234['project'],'port':_0x3d5234[_0x29ffda(0xdd)],'config':_0x3d5234['configFile'],'apiKeyEnabled':!!_0x3d5234[_0x29ffda(0x10e)]};logger['info'](_0x2f2449),_0x2fd62a[_0x29ffda(0xd3)](writeToFileLog,{..._0x2f2449,'level':'info','msg':'Server\x20starting:\x20'+_0x3d5234[_0x29ffda(0x14b)]+'\x20on\x20port\x20'+_0x3d5234[_0x29ffda(0xdd)],'time':new Date()[_0x29ffda(0xc3)]()},_0x2fd62a['NxXLD']);},logServerReady=_0x2a1aa0=>{const _0x209d1c=a0_0x1f7e7c,_0x1284e5={'UFVEF':_0x209d1c(0xc6),'IKYjF':function(_0x449799,_0x4c4434,_0x484bdf){return _0x449799(_0x4c4434,_0x484bdf);},'CmZTc':_0x209d1c(0x135)},_0x372b05={'event':_0x1284e5['UFVEF'],'port':_0x2a1aa0['port'],'module':_0x2a1aa0['module'],'healthCheck':_0x2a1aa0['healthCheck'],'serviceInfo':_0x2a1aa0['serviceInfo'],'baseUrl':_0x2a1aa0[_0x209d1c(0x126)]},_0x1eeaaf=_0x209d1c(0x159)+_0x2a1aa0['port'];logger['info'](_0x372b05,_0x1eeaaf),_0x1284e5['IKYjF'](writeToFileLog,{..._0x372b05,'level':_0x1284e5['CmZTc'],'msg':_0x1eeaaf,'time':new Date()[_0x209d1c(0xc3)]()},_0x1284e5[_0x209d1c(0x137)]),_0x2a1aa0[_0x209d1c(0xef)]&&logger['info']('\x20\x20Health:\x20'+_0x2a1aa0[_0x209d1c(0xef)]),_0x2a1aa0[_0x209d1c(0xcc)]&&logger[_0x209d1c(0x135)]('\x20\x20Info:\x20\x20\x20'+_0x2a1aa0[_0x209d1c(0xcc)]),_0x2a1aa0[_0x209d1c(0x126)]&&logger[_0x209d1c(0x135)]('\x20\x20URL:\x20\x20\x20\x20'+_0x2a1aa0['baseUrl']);},logProjectLoaded=(_0x76b0b6,_0x4196c5)=>{const _0x23d668=a0_0x1f7e7c,_0x1e4ea8={'YImDT':function(_0x1759f1,_0x343fab,_0xb0c954){return _0x1759f1(_0x343fab,_0xb0c954);},'HnoTN':'info'},_0x339fe2={'event':_0x23d668(0x116),'project':_0x76b0b6,'path':_0x4196c5},_0x4b7c5c=_0x23d668(0xce)+_0x76b0b6;logger['info'](_0x339fe2,_0x4b7c5c),_0x1e4ea8[_0x23d668(0x16a)](writeToFileLog,{..._0x339fe2,'level':_0x1e4ea8['HnoTN'],'msg':_0x4b7c5c,'time':new Date()[_0x23d668(0xc3)]()},_0x1e4ea8[_0x23d668(0xf2)]);},logEndpointRegistered=(_0xf94904,_0x474fc6)=>{const _0x58d7d4=a0_0x1f7e7c,_0x27f077={'event':'endpoint_registered','endpoint':_0xf94904,'route':_0x474fc6},_0x581c81=_0x58d7d4(0x14e)+_0xf94904+':\x20'+_0x474fc6;logger['debug'](_0x27f077,_0x581c81),writeToFileLog({..._0x27f077,'level':_0x58d7d4(0xcf),'msg':_0x581c81,'time':new Date()[_0x58d7d4(0xc3)]()},_0x58d7d4(0xcf));},logDatabaseConfig=_0x15a342=>{const _0x361554=a0_0x1f7e7c,_0x158eb5={'qyYYQ':function(_0x1042ca,_0x1e5f4c,_0x5d3fd8){return _0x1042ca(_0x1e5f4c,_0x5d3fd8);},'ktdQs':'debug'},_0x133e25={'event':_0x361554(0xf6),'host':_0x15a342['host'],'port':_0x15a342[_0x361554(0xdd)],'database':_0x15a342[_0x361554(0x129)],'type':_0x15a342['type'],'user':_0x15a342[_0x361554(0x131)]},_0x34e136='Database:\x20'+_0x15a342['type']+'://'+_0x15a342[_0x361554(0xe8)]+':'+_0x15a342[_0x361554(0xdd)]+'/'+_0x15a342[_0x361554(0x129)];logger['debug'](_0x133e25,_0x34e136),_0x158eb5['qyYYQ'](writeToFileLog,{..._0x133e25,'level':_0x158eb5['ktdQs'],'msg':_0x34e136,'time':new Date()['toISOString']()},_0x158eb5['ktdQs']);},logRequest=(_0x324938,_0x4c6a5c,_0x514f95)=>{const _0x7c21ee=a0_0x1f7e7c,_0x3a8fe0={'rNKmz':_0x7c21ee(0xf7),'OeePu':_0x7c21ee(0x135),'NTOEL':function(_0x5d60ed,_0x1a3cbd){return _0x5d60ed>=_0x1a3cbd;},'MFqUh':function(_0xcb2792,_0x37b7b7){return _0xcb2792>=_0x37b7b7;},'OxByJ':_0x7c21ee(0xcb),'ZTTNQ':function(_0x5e9ee0,_0x36bc20,_0x253026){return _0x5e9ee0(_0x36bc20,_0x253026);}},_0x48415b={'event':_0x3a8fe0['rNKmz'],'method':_0x324938['method'],'path':_0x324938[_0x7c21ee(0x174)],'statusCode':_0x4c6a5c[_0x7c21ee(0x13f)],'durationMs':_0x514f95,'ip':_0x324938['ip']},_0x28eef5=_0x324938[_0x7c21ee(0x17b)]+'\x20'+_0x324938['path']+_0x7c21ee(0xd7)+_0x4c6a5c[_0x7c21ee(0x13f)]+'\x20('+_0x514f95+'ms)';let _0x1d8bdb=_0x3a8fe0['OeePu'];if(_0x3a8fe0[_0x7c21ee(0x140)](_0x4c6a5c['statusCode'],0x1f4))_0x1d8bdb='error',logger['error'](_0x48415b,_0x28eef5);else _0x3a8fe0['MFqUh'](_0x4c6a5c[_0x7c21ee(0x13f)],0x190)?(_0x1d8bdb=_0x3a8fe0[_0x7c21ee(0x17c)],logger[_0x7c21ee(0xcb)](_0x48415b,_0x28eef5)):logger[_0x7c21ee(0x135)](_0x48415b,_0x28eef5);_0x3a8fe0[_0x7c21ee(0xe5)](writeToFileLog,{..._0x48415b,'level':_0x1d8bdb,'msg':_0x28eef5,'time':new Date()[_0x7c21ee(0xc3)]()},_0x1d8bdb);},SENSITIVE_PARAM_PATTERNS=[a0_0x1f7e7c(0x156),a0_0x1f7e7c(0x111),a0_0x1f7e7c(0xfd),'token',a0_0x1f7e7c(0xd9),'refresh_token',a0_0x1f7e7c(0xc7),'api_secret','apikey','api_key',a0_0x1f7e7c(0x100),a0_0x1f7e7c(0x114),'pin','otp','private_key',a0_0x1f7e7c(0x14c)],redactSensitiveParams=(_0x2c0535,_0x3df95b)=>{const _0x205891=a0_0x1f7e7c,_0x4a1601={'mDgPY':_0x205891(0x17d),'ZUGCm':function(_0x1b2cfa,_0x31eb99){return _0x1b2cfa===_0x31eb99;},'DItCl':function(_0x119a6d,_0x3f039f){return _0x119a6d>_0x3f039f;},'wHgjz':'[REDACTED:token]','BkTZv':_0x205891(0x168)};if(!_0x2c0535||_0x2c0535[_0x205891(0x127)]===0x0)return _0x2c0535;const _0x4a0254=_0x3df95b['toLowerCase'](),_0x4b520b=_0x4a0254['match'](/\(([^)]+)\)\s*values/i);let _0x53b92f=[];_0x4b520b&&(_0x53b92f=_0x4b520b[0x1]['split'](',')['map'](_0x4cb9fd=>_0x4cb9fd['trim']()[_0x205891(0xfb)]()));const _0x23d4be=_0x4a0254['match'](/set\s+(.+?)(?:\s+where|$)/i);if(_0x23d4be){const _0x3e1ccb=_0x23d4be[0x1],_0x3937a9=_0x3e1ccb['match'](/(\w+)\s*=/g);_0x3937a9&&(_0x53b92f=_0x3937a9['map'](_0x323eca=>_0x323eca[_0x205891(0x141)](/\s*=/,'')[_0x205891(0x145)]()[_0x205891(0xfb)]()));}return _0x2c0535[_0x205891(0x164)]((_0x23731f,_0x2d2d06)=>{const _0x3a9e2b=_0x205891;if(_0x53b92f[_0x2d2d06]){const _0x2c294e=_0x53b92f[_0x2d2d06],_0x3ab83f=SENSITIVE_PARAM_PATTERNS['some'](_0x1c3ce7=>_0x2c294e['includes'](_0x1c3ce7));if(_0x3ab83f)return _0x4a1601[_0x3a9e2b(0x16e)];}if(_0x4a1601['ZUGCm'](typeof _0x23731f,'string')&&_0x4a1601[_0x3a9e2b(0x124)](_0x23731f[_0x3a9e2b(0x127)],0x20)){if(/^[a-zA-Z0-9+/=_.-]+$/[_0x3a9e2b(0x12f)](_0x23731f)&&_0x23731f[_0x3a9e2b(0xe9)]('.'))return _0x4a1601['wHgjz'];if(/^[a-fA-F0-9]{32,}$/[_0x3a9e2b(0x12f)](_0x23731f))return _0x4a1601[_0x3a9e2b(0xdf)];}return _0x23731f;});},parseQueryMetadata=_0xedd75e=>{const _0x2f1e88=a0_0x1f7e7c,_0x4cb1b7={'lzcDo':'UNKNOWN','YfbiK':_0x2f1e88(0x16c),'bMCcD':'UPDATE','YRTxS':_0x2f1e88(0x13b),'mzwyl':_0x2f1e88(0x16f),'CjrgQ':'COMMIT','dqzDf':_0x2f1e88(0x163),'PmxXk':'ALTER','TYgeC':_0x2f1e88(0x11c),'kblyC':'DDL_DROP'},_0x3efad7=_0xedd75e['trim'](),_0x17acb2=_0x3efad7[_0x2f1e88(0xc4)]();let _0x2defa2=_0x4cb1b7['lzcDo'],_0x1ae1cf=null;if(_0x17acb2['startsWith'](_0x4cb1b7['YfbiK'])){_0x2defa2=_0x2f1e88(0x16c);const _0x56dfaa=_0x3efad7['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x1ae1cf=_0x56dfaa?_0x56dfaa[0x1]:null;}else{if(_0x17acb2[_0x2f1e88(0x154)](_0x2f1e88(0xeb))){_0x2defa2=_0x2f1e88(0xeb);const _0x225113=_0x3efad7[_0x2f1e88(0xf4)](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x1ae1cf=_0x225113?_0x225113[0x1]:null;}else{if(_0x17acb2['startsWith'](_0x4cb1b7[_0x2f1e88(0x10b)])){_0x2defa2=_0x2f1e88(0x11b);const _0x545b83=_0x3efad7['match'](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x1ae1cf=_0x545b83?_0x545b83[0x1]:null;}else{if(_0x17acb2['startsWith'](_0x2f1e88(0x13b))){_0x2defa2=_0x4cb1b7[_0x2f1e88(0xd2)];const _0x40b015=_0x3efad7[_0x2f1e88(0xf4)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x1ae1cf=_0x40b015?_0x40b015[0x1]:null;}else{if(_0x17acb2['startsWith']('BEGIN')||_0x17acb2[_0x2f1e88(0x154)]('START\x20TRANSACTION'))_0x2defa2=_0x4cb1b7['mzwyl'];else{if(_0x17acb2[_0x2f1e88(0x154)](_0x4cb1b7[_0x2f1e88(0xd4)]))_0x2defa2=_0x2f1e88(0x11d);else{if(_0x17acb2[_0x2f1e88(0x154)](_0x2f1e88(0xde)))_0x2defa2='TRANSACTION_ROLLBACK';else{if(_0x17acb2[_0x2f1e88(0x154)](_0x4cb1b7[_0x2f1e88(0x178)]))_0x2defa2=_0x2f1e88(0xf8);else{if(_0x17acb2['startsWith'](_0x4cb1b7[_0x2f1e88(0x15e)]))_0x2defa2=_0x2f1e88(0x10a);else _0x17acb2[_0x2f1e88(0x154)](_0x4cb1b7['TYgeC'])&&(_0x2defa2=_0x4cb1b7[_0x2f1e88(0xc5)]);}}}}}}}}return{'type':_0x2defa2,'table':_0x1ae1cf};},startQueryTimer=()=>{const _0x4e5e60=a0_0x1f7e7c,_0xb98da8={'OrFoK':function(_0x325231,_0x2404a0){return _0x325231+_0x2404a0;}},_0x51db79=process[_0x4e5e60(0x171)]();return()=>{const _0x538d7d=_0x4e5e60,[_0x5bb863,_0x26de9]=process['hrtime'](_0x51db79);return parseFloat(_0xb98da8['OrFoK'](_0x5bb863*0x3e8,_0x26de9/0xf4240)[_0x538d7d(0x132)](0x2));};},logQuery=(_0x192c4c,_0x4096b2=[],_0x4575b0={})=>{const _0x2e30db=a0_0x1f7e7c,_0xe75022={'qaMUQ':_0x2e30db(0x146),'EYqSY':function(_0x14a981,_0xa814c7){return _0x14a981!==_0xa814c7;},'TdLgS':function(_0x5304fe,_0x10ebdf){return _0x5304fe||_0x10ebdf;},'NWfSC':'unknown','qTjxF':function(_0x140535,_0x557b2b){return _0x140535!==_0x557b2b;},'CtjhA':_0x2e30db(0x149),'pSzwL':_0x2e30db(0xcb)};if(!sqlLogEnabled){logger['debug']({'event':_0xe75022[_0x2e30db(0xff)],'query':_0x192c4c['substring'](0x0,0xc8),'paramCount':_0x4096b2['length']},_0x2e30db(0x13e));return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType='postgresql'}=_0x4575b0,{type:_0x24adfa,table:_0x2bad19}=parseQueryMetadata(_0x192c4c),_0x50f234={'event':'sql_query','queryType':_0x24adfa,'table':_0x2bad19,'query':_0x192c4c,'paramCount':_0x4096b2['length'],'dbType':dbType};sqlLogParams&&_0x4096b2[_0x2e30db(0x127)]>0x0&&(_0x50f234[_0x2e30db(0x144)]=redactSensitiveParams(_0x4096b2,_0x192c4c));_0xe75022[_0x2e30db(0x166)](duration,null)&&(_0x50f234['durationMs']=duration,_0x50f234['isSlow']=duration>sqlLogSlowThreshold);_0xe75022['EYqSY'](rowsAffected,null)&&(_0x50f234[_0x2e30db(0x112)]=rowsAffected);const _0x167615=_0xe75022['TdLgS'](_0x2bad19,_0xe75022[_0x2e30db(0xe2)]);let _0x260d35='['+_0x24adfa+']\x20'+_0x167615;_0xe75022['EYqSY'](duration,null)&&(_0x260d35+='\x20('+duration+_0x2e30db(0x134));const _0x25ed06=_0xe75022[_0x2e30db(0xcd)](duration,null)&&duration>sqlLogSlowThreshold;let _0x3e9c72='debug';if(_0x25ed06)_0x260d35+=_0xe75022['CtjhA'],_0x3e9c72=_0xe75022['pSzwL'],logger['warn'](_0x50f234,_0x260d35);else sqlLogLevel===_0x2e30db(0x135)?(_0x3e9c72='info',logger[_0x2e30db(0x135)](_0x50f234,_0x260d35)):logger[_0x2e30db(0xcf)](_0x50f234,_0x260d35);writeToFileLog({..._0x50f234,'level':_0x3e9c72,'msg':_0x260d35,'time':new Date()[_0x2e30db(0xc3)]()},_0x3e9c72);},logTransaction=(_0x14728e,_0x219168)=>{const _0x20ba31=a0_0x1f7e7c,_0x5516ef={'duEEe':'db_transaction','OASHk':'debug'},_0x10f2e5={'event':_0x5516ef[_0x20ba31(0xdb)],'status':_0x14728e,'queryCount':_0x219168},_0x38cf6c=_0x20ba31(0x16b)+_0x14728e;logger[_0x20ba31(0xcf)](_0x10f2e5,_0x38cf6c),writeToFileLog({..._0x10f2e5,'level':'debug','msg':_0x38cf6c,'time':new Date()[_0x20ba31(0xc3)]()},_0x5516ef[_0x20ba31(0x11f)]);},redactObject=_0x509a08=>{const _0x150ff4=a0_0x1f7e7c,_0x4b1da7={'ZRaPV':function(_0x3e5f07,_0x585ed6){return _0x3e5f07!==_0x585ed6;},'nquCu':'object','sFKuQ':'password','fspwa':_0x150ff4(0x111),'DkTMF':'apikey','vKteH':_0x150ff4(0xfc),'VThDe':_0x150ff4(0x128),'nBGlN':_0x150ff4(0xe4),'PSckb':_0x150ff4(0x14d),'nsoCA':'[REDACTED]'};if(!_0x509a08||_0x4b1da7[_0x150ff4(0xe0)](typeof _0x509a08,_0x4b1da7['nquCu']))return _0x509a08;const _0x1db41e=[_0x4b1da7[_0x150ff4(0x162)],_0x4b1da7['fspwa'],_0x150ff4(0xfd),'token','secret',_0x4b1da7['DkTMF'],'api_key',_0x4b1da7[_0x150ff4(0x11e)],'creditcard',_0x150ff4(0xd5),'cvv',_0x150ff4(0x133),_0x4b1da7['VThDe'],_0x4b1da7[_0x150ff4(0xd6)],'privatekey',_0x4b1da7['PSckb'],_0x150ff4(0xd9)],_0x1f04d1=Array['isArray'](_0x509a08)?[..._0x509a08]:{..._0x509a08};for(const _0x5318d9 of Object[_0x150ff4(0x123)](_0x1f04d1)){const _0x1e2164=_0x5318d9['toLowerCase']();if(_0x1db41e[_0x150ff4(0x13d)](_0x1036d9=>_0x1e2164['includes'](_0x1036d9)))_0x1f04d1[_0x5318d9]=_0x4b1da7[_0x150ff4(0x151)];else typeof _0x1f04d1[_0x5318d9]===_0x150ff4(0x14f)&&_0x1f04d1[_0x5318d9]!==null&&(_0x1f04d1[_0x5318d9]=redactObject(_0x1f04d1[_0x5318d9]));}return _0x1f04d1;},logError=(_0x191cc7,_0xef8d72={},_0x26ad45=null)=>{const _0x27e47e=a0_0x1f7e7c,_0x486ad9={'Uuyeo':_0x27e47e(0x10d)},_0x52ff60={'event':_0x486ad9[_0x27e47e(0x103)],'errorName':_0x191cc7[_0x27e47e(0x115)]||'Error','errorMessage':_0x191cc7['message'],'errorCode':_0x191cc7[_0x27e47e(0x130)]||null,'stack':_0x191cc7[_0x27e47e(0x165)],..._0xef8d72},_0x4a726e=_0x26ad45||_0x27e47e(0x17a)+_0x191cc7[_0x27e47e(0x161)];logger['error'](_0x52ff60,_0x4a726e),writeToFileLog({..._0x52ff60,'level':_0x27e47e(0x10d),'msg':_0x4a726e,'time':new Date()['toISOString']()},_0x27e47e(0x10d));},logFatalError=(_0x166dc4,_0x3622fe={},_0x32518b=null)=>{const _0x512878=a0_0x1f7e7c,_0x55f2a9={'KDqbX':_0x512878(0x10f),'lKiJY':'fatal'},_0x4dd32a={'event':_0x55f2a9['KDqbX'],'errorName':_0x166dc4[_0x512878(0x115)]||_0x512878(0x139),'errorMessage':_0x166dc4['message'],'errorCode':_0x166dc4['code']||null,'stack':_0x166dc4['stack'],'severity':_0x512878(0x170),..._0x3622fe},_0x49d54c=_0x32518b||'FATAL:\x20'+_0x166dc4['message'];logger[_0x512878(0x16d)](_0x4dd32a,_0x49d54c),writeToFileLog({..._0x4dd32a,'level':_0x55f2a9[_0x512878(0x10c)],'msg':_0x49d54c,'time':new Date()['toISOString']()},'error');},logHttpError=(_0x83dd53,_0x2acbc4,_0x6b926c={})=>{const _0x1181c5=a0_0x1f7e7c,_0x5bb4e9={'QXGtt':_0x1181c5(0x121),'ZkZhl':_0x1181c5(0x139),'XjwtC':_0x1181c5(0x176),'DxsMW':function(_0x58c0f3,_0x1c272d){return _0x58c0f3(_0x1c272d);},'Penaq':'error','EIQpi':'warn','dYzye':function(_0x4f7440,_0x19f48a){return _0x4f7440>=_0x19f48a;}},_0x455e0d={'event':_0x5bb4e9[_0x1181c5(0x13c)],'errorName':_0x83dd53[_0x1181c5(0x115)]||_0x5bb4e9['ZkZhl'],'errorMessage':_0x83dd53[_0x1181c5(0x161)],'errorCode':_0x83dd53['code']||_0x83dd53[_0x1181c5(0x13f)]||0x1f4,'stack':_0x83dd53[_0x1181c5(0x165)],'method':_0x2acbc4?.[_0x1181c5(0x17b)],'url':_0x2acbc4?.['url']||_0x2acbc4?.[_0x1181c5(0x150)],'path':_0x2acbc4?.['path'],'ip':_0x2acbc4?.['ip']||_0x2acbc4?.['connection']?.[_0x1181c5(0x177)],'userAgent':_0x2acbc4?.['get']?.(_0x5bb4e9[_0x1181c5(0xfe)]),'requestId':_0x2acbc4?.['id']||_0x2acbc4?.['headers']?.[_0x1181c5(0x167)],'body':_0x2acbc4?.['body']?_0x5bb4e9['DxsMW'](redactObject,_0x2acbc4['body']):undefined,'query':_0x2acbc4?.['query'],..._0x6b926c},_0x151b58=_0x83dd53[_0x1181c5(0x13f)]||_0x83dd53[_0x1181c5(0x109)]||0x1f4,_0x179a2e='HTTP\x20'+_0x151b58+':\x20'+_0x83dd53[_0x1181c5(0x161)];_0x151b58>=0x1f4?logger['error'](_0x455e0d,_0x179a2e):logger['warn'](_0x455e0d,_0x179a2e),writeToFileLog({..._0x455e0d,'level':_0x151b58>=0x1f4?_0x5bb4e9['Penaq']:_0x5bb4e9['EIQpi'],'msg':_0x179a2e,'time':new Date()[_0x1181c5(0xc3)]()},_0x5bb4e9[_0x1181c5(0x160)](_0x151b58,0x1f4)?_0x5bb4e9['Penaq']:_0x5bb4e9['EIQpi']);},logUncaughtError=(_0x75676b,_0x53ea58)=>{const _0x55c9c5=a0_0x1f7e7c,_0x4aab86={'OwidW':function(_0x27cf6f,_0x30ad32,_0x344e2f){return _0x27cf6f(_0x30ad32,_0x344e2f);},'LLnxj':'fatal','nlVab':_0x55c9c5(0x10d)},_0x4e32ea={'event':_0x75676b,'errorName':_0x53ea58?.[_0x55c9c5(0x115)]||'Error','errorMessage':_0x53ea58?.['message']||String(_0x53ea58),'errorCode':_0x53ea58?.['code']||null,'stack':_0x53ea58?.['stack'],'severity':'CRITICAL','processId':process['pid'],'memoryUsage':process['memoryUsage'](),'uptime':process[_0x55c9c5(0xc9)]()},_0xe40012='['+_0x75676b['toUpperCase']()+']\x20'+(_0x53ea58?.[_0x55c9c5(0x161)]||_0x53ea58);logger['fatal'](_0x4e32ea,_0xe40012),_0x4aab86[_0x55c9c5(0x106)](writeToFileLog,{..._0x4e32ea,'level':_0x4aab86['LLnxj'],'msg':_0xe40012,'time':new Date()[_0x55c9c5(0xc3)]()},_0x4aab86[_0x55c9c5(0x101)]);},setupGlobalErrorHandlers=()=>{const _0x294a8e=a0_0x1f7e7c,_0xc01f0d={'ksAcb':function(_0x396c1a,_0x30fd8c){return _0x396c1a(_0x30fd8c);},'SwSdY':_0x294a8e(0xee),'KKehU':_0x294a8e(0xe1),'NjeQT':_0x294a8e(0x15c),'ErTuW':_0x294a8e(0x135)};process['on'](_0x294a8e(0x108),_0x83307f=>{const _0x4e7081=_0x294a8e;logUncaughtError(_0x4e7081(0x108),_0x83307f),setTimeout(()=>{process['exit'](0x1);},0x3e8);}),process['on'](_0xc01f0d[_0x294a8e(0xca)],(_0x3ba31b,_0x2d4cbc)=>{const _0x2bd156=_0x3ba31b instanceof Error?_0x3ba31b:new Error(_0xc01f0d['ksAcb'](String,_0x3ba31b));logUncaughtError(_0xc01f0d['SwSdY'],_0x2bd156);}),process['on']('warning',_0x55ca25=>{const _0x4837f5=_0x294a8e;logger[_0x4837f5(0xcb)]({'event':_0xc01f0d['KKehU'],'name':_0x55ca25['name'],'message':_0x55ca25[_0x4837f5(0x161)],'stack':_0x55ca25[_0x4837f5(0x165)]},_0x4837f5(0x11a)+_0x55ca25[_0x4837f5(0x161)]);});const _0x17c824={'event':'global_error_handlers_setup'},_0xd01d05=_0xc01f0d['NjeQT'];logger['info'](_0x17c824,_0xd01d05),writeToFileLog({..._0x17c824,'level':_0x294a8e(0x135),'msg':_0xd01d05,'time':new Date()['toISOString']()},_0xc01f0d['ErTuW']);},createErrorHandlerMiddleware=()=>{const _0x5311f1={'qvhin':'x-request-id'};return(_0x920751,_0x192584,_0x2ee7a0,_0x21fb28)=>{const _0x45cc10=a0_0x3736;logHttpError(_0x920751,_0x192584);const _0x1a6779=_0x920751['statusCode']||_0x920751[_0x45cc10(0x109)]||0x1f4;_0x2ee7a0[_0x45cc10(0x109)](_0x1a6779)['json']({'success':![],'error':_0x1a6779>=0x1f4?'Internal\x20server\x20error':_0x920751['message'],'requestId':_0x192584['id']||_0x192584['headers']?.[_0x5311f1[_0x45cc10(0xd8)]]||null});};};module[a0_0x1f7e7c(0x119)]={'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
|
-
function
|
|
1
|
+
function a0_0x263e(_0x8d74d3,_0xe99cc4){_0x8d74d3=_0x8d74d3-0xfc;const _0x70160e=a0_0x7016();let _0x263e03=_0x70160e[_0x8d74d3];if(a0_0x263e['zvEUEw']===undefined){var _0x4d4b4c=function(_0x12adf2){const _0x1e3a84='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x24352e='',_0x2db3e5='';for(let _0x35a387=0x0,_0xe0e75e,_0x1e34c7,_0x1fc273=0x0;_0x1e34c7=_0x12adf2['charAt'](_0x1fc273++);~_0x1e34c7&&(_0xe0e75e=_0x35a387%0x4?_0xe0e75e*0x40+_0x1e34c7:_0x1e34c7,_0x35a387++%0x4)?_0x24352e+=String['fromCharCode'](0xff&_0xe0e75e>>(-0x2*_0x35a387&0x6)):0x0){_0x1e34c7=_0x1e3a84['indexOf'](_0x1e34c7);}for(let _0x2e2844=0x0,_0xacdb8c=_0x24352e['length'];_0x2e2844<_0xacdb8c;_0x2e2844++){_0x2db3e5+='%'+('00'+_0x24352e['charCodeAt'](_0x2e2844)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2db3e5);};a0_0x263e['SJJHPD']=_0x4d4b4c,a0_0x263e['VMvVso']={},a0_0x263e['zvEUEw']=!![];}const _0x148395=_0x70160e[0x0],_0x589945=_0x8d74d3+_0x148395,_0x5674d9=a0_0x263e['VMvVso'][_0x589945];return!_0x5674d9?(_0x263e03=a0_0x263e['SJJHPD'](_0x263e03),a0_0x263e['VMvVso'][_0x589945]=_0x263e03):_0x263e03=_0x5674d9,_0x263e03;}const a0_0x4e07f3=a0_0x263e;(function(_0x58adfc,_0x318754){const _0x8f4a9e=a0_0x263e,_0x55cc1d=_0x58adfc();while(!![]){try{const _0x526a9f=-parseInt(_0x8f4a9e(0x11f))/0x1*(-parseInt(_0x8f4a9e(0x11a))/0x2)+-parseInt(_0x8f4a9e(0x118))/0x3*(parseInt(_0x8f4a9e(0x117))/0x4)+-parseInt(_0x8f4a9e(0x107))/0x5*(parseInt(_0x8f4a9e(0x11c))/0x6)+parseInt(_0x8f4a9e(0xfe))/0x7*(parseInt(_0x8f4a9e(0x10d))/0x8)+parseInt(_0x8f4a9e(0x10a))/0x9*(parseInt(_0x8f4a9e(0x11d))/0xa)+-parseInt(_0x8f4a9e(0x121))/0xb*(parseInt(_0x8f4a9e(0x103))/0xc)+-parseInt(_0x8f4a9e(0x110))/0xd*(-parseInt(_0x8f4a9e(0x10e))/0xe);if(_0x526a9f===_0x318754)break;else _0x55cc1d['push'](_0x55cc1d['shift']());}catch(_0x44371d){_0x55cc1d['push'](_0x55cc1d['shift']());}}}(a0_0x7016,0x6f937));function a0_0x7016(){const _0x4561fc=['BwvZC2fNzq','ndq0nLjoA2TRzq','rMfPBgvKihrVigXVywqGCgf5Bg9HzcbIEsbUyw1L','zgvIDwC','Cgf5Bg9Hzf9JywnOzv9JBgvHCMvK','Cgf5Bg9HzerPCG','vKfnBLO','lI4VlI4VCgf5Bg9Hza','ohvnrvziDq','otu4odnuwM10rNK','AgfZ','mZqXnZmYzhHezhzx','AM9PBG','nK1PwM5AuG','nZmZmgr3Bg5Iuq','zMLLBgroyw1L','mvDRA2T3Aa','z2v0','mJKYnZyXn29LB1DoDG','zMLLBgrmywjLBhm','quPTvwC','ndq2mZqXn3fYDxzHza','C2v0','zgf0yxrHyMXLC1f1zxj5','zxjYB3i','Cgf5Bg9Hzf9SB2fKx2vYCM9Y','mZzhDwjNrg8','z2v0rxHWB3j0q29UzMLN','DxrMoa','CMvHzezPBgu','mtC1nJmWnwvMBfvbrW','ywn0Aw9U','lI9SB2DNzxi','mZyZnMPMyw5RAq','y2fJAgu','ugf5Bg9HzcbSB2fKzwqGC3vJy2vZC2z1BgX5igj5ig5HBwu','ohHtquHiuq','mJmXnZbst09OEeu'];a0_0x7016=function(){return _0x4561fc;};return a0_0x7016();}const fs=require('fs')['promises'],path=require('path'),{logger}=require(a0_0x4e07f3(0x109));class PayloadLoader{constructor(){const _0x84fba1=a0_0x4e07f3,_0x127e4={'AJmUg':_0x84fba1(0x116)};this['payloadDir']=path[_0x84fba1(0x11b)](__dirname,_0x127e4[_0x84fba1(0xfd)]),this[_0x84fba1(0x10b)]=new Map();}async['loadPayload'](_0x290c08,_0x33955c){const _0x456f58=a0_0x4e07f3,_0x392902={'hXDqN':'Payload\x20loaded\x20successfully'},_0x434dba=_0x290c08+':'+_0x33955c;if(this[_0x456f58(0x10b)]['has'](_0x434dba))return this[_0x456f58(0x10b)]['get'](_0x434dba);const _0x1df6f8=path[_0x456f58(0x11b)](this[_0x456f58(0x114)],_0x290c08+'_'+_0x33955c+'.json');try{const _0x1fc5a6=await fs[_0x456f58(0x106)](_0x1df6f8,'utf8'),_0x86f8a4=JSON['parse'](_0x1fc5a6);return this['cache']['set'](_0x434dba,_0x86f8a4),logger[_0x456f58(0x112)]({'event':'payload_loaded','project':_0x290c08,'resource':_0x33955c},_0x392902['hXDqN']),_0x86f8a4;}catch(_0x42c12a){logger['error']({'event':'payload_load_error','project':_0x290c08,'resource':_0x33955c,'error':_0x42c12a['message']},'Failed\x20to\x20load\x20payload');throw new Error('Payload\x20not\x20found:\x20'+_0x290c08+'_'+_0x33955c);}}async['loadPayloadByName'](_0x10cbb7){const _0x2550f2=a0_0x4e07f3,_0x419d24={'VAMnZ':'payload_loaded'},_0x2d3ead='payload:'+_0x10cbb7;if(this[_0x2550f2(0x10b)][_0x2550f2(0x119)](_0x2d3ead))return this[_0x2550f2(0x10b)][_0x2550f2(0x120)](_0x2d3ead);const _0x24f649=path[_0x2550f2(0x11b)](this[_0x2550f2(0x114)],_0x10cbb7+'.json');try{const _0x53e7cf=await fs[_0x2550f2(0x106)](_0x24f649,_0x2550f2(0x105)),_0x1b8016=JSON['parse'](_0x53e7cf);return this['cache'][_0x2550f2(0xff)](_0x2d3ead,_0x1b8016),logger['debug']({'event':_0x419d24[_0x2550f2(0x115)],'payloadName':_0x10cbb7},_0x2550f2(0x10c)),_0x1b8016;}catch(_0x2966d8){logger[_0x2550f2(0x101)]({'event':_0x2550f2(0x102),'payloadName':_0x10cbb7,'error':_0x2966d8[_0x2550f2(0x10f)]},_0x2550f2(0x111));throw new Error('Payload\x20not\x20found:\x20'+_0x10cbb7);}}['isActionEnabled'](_0x3fdd0a,_0x29f121){const _0x51b5e5=a0_0x4e07f3;return _0x3fdd0a[_0x51b5e5(0x108)]&&_0x3fdd0a['action'][_0x29f121]===!![];}[a0_0x4e07f3(0x104)](_0x191525){const _0x4db9b2=a0_0x4e07f3;return{'columns':_0x191525[_0x4db9b2(0x11e)]||[],'filename':_0x191525['tableName']['replace']('.','-')+'-export','datatablesQuery':_0x191525[_0x4db9b2(0x100)]||null,'columnFormats':_0x191525['columnFormats']||null,'fieldLabels':_0x191525[_0x4db9b2(0xfc)]||null};}['clearCache'](){const _0x450045=a0_0x4e07f3;this['cache']['clear'](),logger['info']({'event':_0x450045(0x113)},'Payload\x20cache\x20cleared');}}module['exports']=new PayloadLoader();
|