@restforgejs/platform 4.3.8 → 5.0.1

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.
Files changed (193) hide show
  1. package/bin/sdf-tools.exe +0 -0
  2. package/build-info.json +2 -2
  3. package/cli/consumer-deploy.js +1 -1
  4. package/cli/consumer.js +1 -1
  5. package/generators/cli/init.js +4 -104
  6. package/generators/cli/payload/migrate.js +96 -96
  7. package/generators/cli/schema/list.js +82 -18
  8. package/generators/cli/schema/migrate.js +23 -3
  9. package/generators/lib/dbschema-kit/apply-engine.js +211 -46
  10. package/generators/lib/dbschema-kit/diff-engine.js +715 -703
  11. package/generators/lib/dbschema-kit/emitters/alter-table.js +96 -2
  12. package/generators/lib/dbschema-kit/introspect-mapper.js +9 -0
  13. package/generators/lib/migrate/backend-payload-migrator.js +221 -221
  14. package/generators/lib/migrate/field-type-resolver.js +325 -319
  15. package/generators/lib/migrate/label-generator.js +38 -38
  16. package/generators/lib/migrate/migrate-runner.js +244 -38
  17. package/generators/lib/migrate/naming.js +52 -43
  18. package/generators/lib/migrate/sql-parser.js +124 -124
  19. package/generators/lib/templates/dashboard-catalog.js +1 -1
  20. package/generators/lib/templates/db-connection-env.js +1 -1
  21. package/generators/lib/templates/dbschema-catalog.js +1 -1
  22. package/generators/lib/templates/field-validation-catalog.js +1 -1
  23. package/generators/lib/templates/mysql-template.js +1 -1
  24. package/generators/lib/templates/oracle-template.js +1 -1
  25. package/generators/lib/templates/postgres-template.js +1 -1
  26. package/generators/lib/templates/query-declarative-catalog.js +1 -1
  27. package/generators/lib/templates/sqlite-template.js +1 -1
  28. package/integrity-manifest.json +18 -18
  29. package/node_modules/brace-expansion/index.js +1 -1
  30. package/node_modules/brace-expansion/package.json +1 -1
  31. package/node_modules/dayjs/CHANGELOG.md +7 -0
  32. package/node_modules/dayjs/README.md +12 -10
  33. package/node_modules/dayjs/dayjs.min.js +1 -1
  34. package/node_modules/dayjs/esm/constant.js +1 -1
  35. package/node_modules/dayjs/esm/plugin/duration/index.js +5 -4
  36. package/node_modules/dayjs/locale.json +1 -1
  37. package/node_modules/dayjs/package.json +2 -2
  38. package/node_modules/dayjs/plugin/duration.js +1 -1
  39. package/node_modules/tmp/lib/tmp.js +37 -7
  40. package/node_modules/tmp/package.json +4 -16
  41. package/package.json +1 -1
  42. package/scripts/verify-integrity.js +1 -1
  43. package/server.js +1 -1
  44. package/src/components/handlers/adjust_handler.js +1 -1
  45. package/src/components/handlers/audit_handler.js +1 -1
  46. package/src/components/handlers/delete_handler.js +1 -1
  47. package/src/components/handlers/export_handler.js +1 -1
  48. package/src/components/handlers/import_handler.js +1 -1
  49. package/src/components/handlers/insert_handler.js +1 -1
  50. package/src/components/handlers/update_handler.js +1 -1
  51. package/src/components/handlers/upload_handler.js +1 -1
  52. package/src/components/handlers/workflow_handler.js +1 -1
  53. package/src/components/integrations/webhook.js +1 -1
  54. package/src/consumers/baseConsumer.js +1 -1
  55. package/src/consumers/declarativeMapper.js +1 -1
  56. package/src/consumers/handlers/apiHandler.js +1 -1
  57. package/src/consumers/handlers/consoleHandler.js +1 -1
  58. package/src/consumers/handlers/databaseHandler.js +1 -1
  59. package/src/consumers/handlers/index.js +1 -1
  60. package/src/consumers/handlers/kafkaHandler.js +1 -1
  61. package/src/consumers/index.js +1 -1
  62. package/src/consumers/messageTransformer.js +1 -1
  63. package/src/consumers/validator.js +1 -1
  64. package/src/core/db/dialect/base-dialect.js +1 -1
  65. package/src/core/db/dialect/index.js +1 -1
  66. package/src/core/db/dialect/mysql-dialect.js +1 -1
  67. package/src/core/db/dialect/oracle-dialect.js +1 -1
  68. package/src/core/db/dialect/postgres-dialect.js +1 -1
  69. package/src/core/db/dialect/sqlite-dialect.js +1 -1
  70. package/src/core/db/flatten-helper.js +1 -1
  71. package/src/core/db/query-builder-error.js +1 -1
  72. package/src/core/db/query-builder.js +1 -1
  73. package/src/core/db/relation-helper.js +1 -1
  74. package/src/core/handlers/delete_handler.js +1 -1
  75. package/src/core/handlers/insert_handler.js +1 -1
  76. package/src/core/handlers/update_handler.js +1 -1
  77. package/src/core/models/base-model.js +1 -1
  78. package/src/core/utils/cache-manager.js +1 -1
  79. package/src/core/utils/component-engine.js +1 -1
  80. package/src/core/utils/context-builder.js +1 -1
  81. package/src/core/utils/datetime-formatter.js +1 -1
  82. package/src/core/utils/datetime-parser.js +1 -1
  83. package/src/core/utils/db.js +1 -1
  84. package/src/core/utils/logger.js +1 -1
  85. package/src/core/utils/payload-loader.js +1 -1
  86. package/src/core/utils/security-checks.js +1 -1
  87. package/src/middleware/body-options.js +1 -1
  88. package/src/middleware/cors.js +1 -1
  89. package/src/middleware/idempotency.js +1 -1
  90. package/src/middleware/rate-limiter.js +1 -1
  91. package/src/middleware/request-logger.js +1 -1
  92. package/src/middleware/security-headers.js +1 -1
  93. package/src/models/base-model-mysql.js +1 -1
  94. package/src/models/base-model-oracle.js +1 -1
  95. package/src/models/base-model-sqlite.js +1 -1
  96. package/src/models/base-model.js +1 -1
  97. package/src/pro/caching/redis-client.js +1 -1
  98. package/src/pro/caching/redis-helper.js +1 -1
  99. package/src/pro/consumers/baseConsumer.js +1 -1
  100. package/src/pro/consumers/declarativeMapper.js +1 -1
  101. package/src/pro/consumers/handlers/apiHandler.js +1 -1
  102. package/src/pro/consumers/handlers/consoleHandler.js +1 -1
  103. package/src/pro/consumers/handlers/databaseHandler.js +1 -1
  104. package/src/pro/consumers/handlers/index.js +1 -1
  105. package/src/pro/consumers/handlers/kafkaHandler.js +1 -1
  106. package/src/pro/consumers/index.js +1 -1
  107. package/src/pro/consumers/messageTransformer.js +1 -1
  108. package/src/pro/consumers/validator.js +1 -1
  109. package/src/pro/database/base-model-mysql.js +1 -1
  110. package/src/pro/database/base-model-oracle.js +1 -1
  111. package/src/pro/database/base-model-sqlite.js +1 -1
  112. package/src/pro/database/db-mysql.js +1 -1
  113. package/src/pro/database/db-oracle.js +1 -1
  114. package/src/pro/database/db-sqlite.js +1 -1
  115. package/src/pro/excel/excel-generator.js +1 -1
  116. package/src/pro/excel/excel-parser.js +1 -1
  117. package/src/pro/excel/export-service.js +1 -1
  118. package/src/pro/excel/export_handler.js +1 -1
  119. package/src/pro/excel/import-service.js +1 -1
  120. package/src/pro/excel/import-validator.js +1 -1
  121. package/src/pro/excel/import_handler.js +1 -1
  122. package/src/pro/excel/upsert-builder.js +1 -1
  123. package/src/pro/idgen/idgen-routes.js +1 -1
  124. package/src/pro/integrations/lookup-resolver.js +1 -1
  125. package/src/pro/integrations/upload-handler-v2.js +1 -1
  126. package/src/pro/integrations/upload-handler.js +1 -1
  127. package/src/pro/integrations/webhook.js +1 -1
  128. package/src/pro/locking/lock-routes.js +1 -1
  129. package/src/pro/locking/resource-lock-manager.js +1 -1
  130. package/src/pro/messaging/kafkaConsumerService.js +1 -1
  131. package/src/pro/messaging/kafkaService.js +1 -1
  132. package/src/pro/messaging/messagehubService.js +1 -1
  133. package/src/pro/messaging/rabbitmqService.js +1 -1
  134. package/src/pro/scheduler/job-manager.js +1 -1
  135. package/src/pro/scheduler/job-routes.js +1 -1
  136. package/src/pro/scheduler/job-validator.js +1 -1
  137. package/src/pro/storage/base-storage-provider.js +1 -1
  138. package/src/pro/storage/file-metadata-helper.js +1 -1
  139. package/src/pro/storage/index.js +1 -1
  140. package/src/pro/storage/local-storage-provider.js +1 -1
  141. package/src/pro/storage/s3-storage-provider.js +1 -1
  142. package/src/pro/storage/upload-cleanup-job.js +1 -1
  143. package/src/pro/storage/upload-cleanup-scheduler.js +1 -1
  144. package/src/pro/storage/upload-pending-tracker.js +1 -1
  145. package/src/pro/websocket/broadcast-helper.js +1 -1
  146. package/src/pro/websocket/index.js +1 -1
  147. package/src/pro/websocket/livesync-server.js +1 -1
  148. package/src/pro/websocket/ws-broadcaster.js +1 -1
  149. package/src/services/export-service.js +1 -1
  150. package/src/services/import-service.js +1 -1
  151. package/src/services/kafkaConsumerService.js +1 -1
  152. package/src/services/kafkaService.js +1 -1
  153. package/src/services/messagehubService.js +1 -1
  154. package/src/services/rabbitmqService.js +1 -1
  155. package/src/utils/cache-invalidation-registry.js +1 -1
  156. package/src/utils/cache-manager.js +1 -1
  157. package/src/utils/component-engine.js +1 -1
  158. package/src/utils/config-extractor.js +1 -1
  159. package/src/utils/consumerLogger.js +1 -1
  160. package/src/utils/context-builder.js +1 -1
  161. package/src/utils/dashboard-helpers.js +1 -1
  162. package/src/utils/dateHelper.js +1 -1
  163. package/src/utils/datetime-formatter.js +1 -1
  164. package/src/utils/datetime-parser.js +1 -1
  165. package/src/utils/db-bootstrap.js +1 -1
  166. package/src/utils/db-mysql.js +1 -1
  167. package/src/utils/db-oracle.js +1 -1
  168. package/src/utils/db-sqlite.js +1 -1
  169. package/src/utils/db.js +1 -1
  170. package/src/utils/demo-generator.js +1 -1
  171. package/src/utils/excel-generator.js +1 -1
  172. package/src/utils/excel-parser.js +1 -1
  173. package/src/utils/file-watcher.js +1 -1
  174. package/src/utils/id-generator.js +1 -1
  175. package/src/utils/idempotency-manager.js +1 -1
  176. package/src/utils/import-validator.js +1 -1
  177. package/src/utils/license-client.js +1 -1
  178. package/src/utils/lock-manager.js +1 -1
  179. package/src/utils/logger.js +1 -1
  180. package/src/utils/lookup-resolver.js +1 -1
  181. package/src/utils/payload-loader.js +1 -1
  182. package/src/utils/processor-response.js +1 -1
  183. package/src/utils/rabbitmq.js +1 -1
  184. package/src/utils/redis-client.js +1 -1
  185. package/src/utils/redis-helper.js +1 -1
  186. package/src/utils/request-scope.js +1 -1
  187. package/src/utils/security-checks.js +1 -1
  188. package/src/utils/service-resolver.js +1 -1
  189. package/src/utils/shutdown-coordinator.js +1 -1
  190. package/src/utils/trusted-keys.js +1 -1
  191. package/src/utils/upload-handler.js +1 -1
  192. package/src/utils/upsert-builder.js +1 -1
  193. package/src/utils/workflow-hook-executor.js +1 -1
@@ -1 +1 @@
1
- const a0_0x533a37=a0_0xfa5f;function a0_0xfa5f(_0xa85601,_0x37a524){_0xa85601=_0xa85601-0x90;const _0x47b6e5=a0_0x47b6();let _0xfa5f8=_0x47b6e5[_0xa85601];if(a0_0xfa5f['VCRKqA']===undefined){var _0x215b88=function(_0x366570){const _0x15abe6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x8e9d79='',_0x2f8840='';for(let _0x5a5985=0x0,_0x24ea6d,_0x1f0dd9,_0xb5dabe=0x0;_0x1f0dd9=_0x366570['charAt'](_0xb5dabe++);~_0x1f0dd9&&(_0x24ea6d=_0x5a5985%0x4?_0x24ea6d*0x40+_0x1f0dd9:_0x1f0dd9,_0x5a5985++%0x4)?_0x8e9d79+=String['fromCharCode'](0xff&_0x24ea6d>>(-0x2*_0x5a5985&0x6)):0x0){_0x1f0dd9=_0x15abe6['indexOf'](_0x1f0dd9);}for(let _0x221b6f=0x0,_0x43f29e=_0x8e9d79['length'];_0x221b6f<_0x43f29e;_0x221b6f++){_0x2f8840+='%'+('00'+_0x8e9d79['charCodeAt'](_0x221b6f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2f8840);};a0_0xfa5f['LIfRbc']=_0x215b88,a0_0xfa5f['XVkwXE']={},a0_0xfa5f['VCRKqA']=!![];}const _0x3d92ec=_0x47b6e5[0x0],_0x18999b=_0xa85601+_0x3d92ec,_0xe18b42=a0_0xfa5f['XVkwXE'][_0x18999b];return!_0xe18b42?(_0xfa5f8=a0_0xfa5f['LIfRbc'](_0xfa5f8),a0_0xfa5f['XVkwXE'][_0x18999b]=_0xfa5f8):_0xfa5f8=_0xe18b42,_0xfa5f8;}(function(_0xb340e8,_0x35537a){const _0x3b7c2a=a0_0xfa5f,_0x2459ce=_0xb340e8();while(!![]){try{const _0x46c470=-parseInt(_0x3b7c2a(0x91))/0x1*(-parseInt(_0x3b7c2a(0x9e))/0x2)+-parseInt(_0x3b7c2a(0x99))/0x3+-parseInt(_0x3b7c2a(0xa3))/0x4*(-parseInt(_0x3b7c2a(0x9d))/0x5)+parseInt(_0x3b7c2a(0xaa))/0x6*(parseInt(_0x3b7c2a(0x95))/0x7)+parseInt(_0x3b7c2a(0xb3))/0x8+parseInt(_0x3b7c2a(0x90))/0x9*(parseInt(_0x3b7c2a(0xab))/0xa)+-parseInt(_0x3b7c2a(0x9a))/0xb;if(_0x46c470===_0x35537a)break;else _0x2459ce['push'](_0x2459ce['shift']());}catch(_0x3dce6b){_0x2459ce['push'](_0x2459ce['shift']());}}}(a0_0x47b6,0x59e3f));function a0_0x47b6(){const _0x31c611=['BwvZC2fNzq','ExL5Es1nts1KzcbisdPTBtPZCW','seG6Bw0','Bw9UDgG','mZa0mdu2sg5ozhnV','mtuXndm0BKHfzuXM','ndK1mdz5CLHSquW','CgfYC2veyxrL','DgLTzxn0yw1W','vu1kA0e','n0rUANnqua','D2fYBG','zgf0zq','zgf5','mtq3mZe1mhfmDgP1DW','nJG2nta0nuLTu1fzAa','BgvUz3rO','CgfYC2vuAw1L','nwfkqKvjsG','mJjcA3HftvG','vhrlv2i','zKnur2S','zMrYr1a','ExL5Es1nts1Kza','mtiZmtiYoffpDfjRza','ruvrCeC','CgfYC2vuAw1LC3rHBxa','EwvHCG','CgfYC2u','oJaW','Cgf0DgvYBG','mZa1mJK1nNbNt0vgvG','ntbtBNnkr2W','zxHWB3j0CW','rgf0zsb2ywX1zsaI','DLr4veK'];a0_0x47b6=function(){return _0x31c611;};return a0_0x47b6();}class DateTimeParser{static[a0_0x533a37(0xa7)](_0x184cc2,_0x16596f,_0x31ccbc){const _0x2d8af2=a0_0x533a37,_0x4b577a={'UMJkA':function(_0x23f5a1,_0x1568b4){return _0x23f5a1===_0x1568b4;},'Kilkp':function(_0x475eb6,_0x55f483){return _0x475eb6===_0x55f483;}};if(!_0x184cc2||_0x4b577a[_0x2d8af2(0x94)](_0x184cc2,''))return null;try{if(_0x31ccbc===_0x2d8af2(0x97))return this['parseDate'](_0x184cc2,_0x16596f);else{if(_0x4b577a['UMJkA'](_0x31ccbc,_0x2d8af2(0x93)))return this[_0x2d8af2(0xa5)](_0x184cc2,_0x16596f);else{if(_0x4b577a['Kilkp'](_0x31ccbc,'time'))return this[_0x2d8af2(0x9c)](_0x184cc2,_0x16596f);}}return _0x184cc2;}catch(_0x3d612a){return console['error']('Error\x20parsing\x20datetime:\x20'+_0x3d612a[_0x2d8af2(0xaf)]),null;}}static[a0_0x533a37(0x92)](_0x31d854,_0x40faee){const _0x2a37f4=a0_0x533a37,_0x499a4f={'cfMMQ':function(_0x4ccef3,_0x24b41b){return _0x4ccef3+_0x24b41b;},'fCTGk':_0x2a37f4(0xa2),'fdrGP':_0x2a37f4(0x98),'EEQpG':'month','vTxTI':'year'};if(!_0x40faee||_0x40faee===_0x499a4f[_0x2a37f4(0xa0)])return _0x31d854;const _0x3b6681={'dd/MM/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':[_0x499a4f['fdrGP'],_0x2a37f4(0xb2),_0x2a37f4(0xa6)]},'dd-MM-yyyy':{'pattern':/^(\d{2})-(\d{2})-(\d{4})$/,'order':[_0x499a4f[_0x2a37f4(0xa1)],_0x499a4f[_0x2a37f4(0xa4)],_0x499a4f[_0x2a37f4(0xae)]]},'MM/dd/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':[_0x2a37f4(0xb2),_0x499a4f[_0x2a37f4(0xa1)],_0x499a4f['vTxTI']]},'yyyy/MM/dd':{'pattern':/^(\d{4})\/(\d{2})\/(\d{2})$/,'order':[_0x499a4f[_0x2a37f4(0xae)],_0x499a4f['EEQpG'],_0x499a4f[_0x2a37f4(0xa1)]]}},_0x38cb94=_0x3b6681[_0x40faee];if(!_0x38cb94)return console[_0x2a37f4(0x96)]('Unknown\x20date\x20format:\x20'+_0x40faee+',\x20returning\x20null'),null;const _0x40f2ea=_0x31d854['match'](_0x38cb94[_0x2a37f4(0xa9)]);if(!_0x40f2ea)return console[_0x2a37f4(0x96)](_0x2a37f4(0xad)+_0x31d854+'\x22\x20doesn\x27t\x20match\x20format\x20\x22'+_0x40faee+'\x22'),null;const _0x4568f7={'day':null,'month':null,'year':null};return _0x38cb94['order']['forEach']((_0x14fdfb,_0x401ca7)=>{_0x4568f7[_0x14fdfb]=_0x40f2ea[_0x499a4f['cfMMQ'](_0x401ca7,0x1)];}),_0x4568f7['year']+'-'+_0x4568f7['month']+'-'+_0x4568f7['day'];}static['parseTimestamp'](_0x416f3a,_0x1456e0){const _0x31fe24=a0_0x533a37,_0x5168e8={'UKaqw':function(_0x97befc,_0x3208a9){return _0x97befc===_0x3208a9;}};if(!_0x1456e0||_0x1456e0===_0x31fe24(0xb0))return _0x416f3a;const _0x41d95a=_0x416f3a['split']('\x20');if(_0x41d95a[_0x31fe24(0x9b)]!==0x2)return console['warn']('Invalid\x20timestamp\x20format:\x20'+_0x416f3a),null;const [_0x504e8a,_0x1548bb]=_0x41d95a,_0x83e1b3=_0x1456e0['split']('\x20')[0x0],_0x4d4b43=this[_0x31fe24(0x92)](_0x504e8a,_0x83e1b3);if(!_0x4d4b43)return null;const _0x558223=_0x5168e8['UKaqw'](_0x1548bb['split'](':')[_0x31fe24(0x9b)],0x2)?_0x1548bb+_0x31fe24(0xa8):_0x1548bb;return _0x4d4b43+'\x20'+_0x558223;}static[a0_0x533a37(0x9c)](_0x471853,_0x55e2c6){const _0x3d2447=a0_0x533a37,_0x14cbdc={'TtKWb':function(_0x3b0651,_0x51e52d){return _0x3b0651===_0x51e52d;}};if(!_0x55e2c6||_0x55e2c6==='HH:mm:ss')return _0x471853;if(_0x14cbdc[_0x3d2447(0x9f)](_0x55e2c6,_0x3d2447(0xb1))){if(_0x471853['match'](/^\d{2}:\d{2}$/))return _0x471853+':00';}return _0x471853;}}module[a0_0x533a37(0xac)]=DateTimeParser;
1
+ const a0_0x2f51d0=a0_0x4148;function a0_0x4148(_0x2a747f,_0xadb063){_0x2a747f=_0x2a747f-0x14d;const _0x555d94=a0_0x555d();let _0x414852=_0x555d94[_0x2a747f];if(a0_0x4148['udyluQ']===undefined){var _0x36c9cb=function(_0x42c01b){const _0x49a5ca='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x31b58b='',_0x4a3a5e='';for(let _0x468b5d=0x0,_0x28480a,_0x41e55a,_0x4d7fc1=0x0;_0x41e55a=_0x42c01b['charAt'](_0x4d7fc1++);~_0x41e55a&&(_0x28480a=_0x468b5d%0x4?_0x28480a*0x40+_0x41e55a:_0x41e55a,_0x468b5d++%0x4)?_0x31b58b+=String['fromCharCode'](0xff&_0x28480a>>(-0x2*_0x468b5d&0x6)):0x0){_0x41e55a=_0x49a5ca['indexOf'](_0x41e55a);}for(let _0xfbcc52=0x0,_0x586420=_0x31b58b['length'];_0xfbcc52<_0x586420;_0xfbcc52++){_0x4a3a5e+='%'+('00'+_0x31b58b['charCodeAt'](_0xfbcc52)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4a3a5e);};a0_0x4148['WVoaKF']=_0x36c9cb,a0_0x4148['ckZCIZ']={},a0_0x4148['udyluQ']=!![];}const _0x58d0da=_0x555d94[0x0],_0x175cba=_0x2a747f+_0x58d0da,_0x22ab2b=a0_0x4148['ckZCIZ'][_0x175cba];return!_0x22ab2b?(_0x414852=a0_0x4148['WVoaKF'](_0x414852),a0_0x4148['ckZCIZ'][_0x175cba]=_0x414852):_0x414852=_0x22ab2b,_0x414852;}function a0_0x555d(){const _0x1bf741=['CgfYC2vuAw1LC3rHBxa','DgLTzq','tK1tz0e','zgf0zq','BgvUz3rO','suzosMG','seG6Bw06C3m','Cgf0DgvYBG','rxjYB3iGCgfYC2LUzYbKyxrLDgLTztOG','CgfYC2veyxrL','ExL5Es1nts1KzcbisdPTBtPZCW','Bw9UDgG','mtj5DufnC00','ExL5Es1nts1Kza','nJu3ndjnB1Hywwi','D2fYBG','ywDWrLC','ouTpsKT4qW','y2HJrhO','EwvHCG','mJC0otu5mg9Nyuz0zW','r0zwrgG','mtqZmJe0ogvwAgnhqG','CgfYC2u','m3LuwKndsG','u1DJvfG','ueTozvq','C3bSAxq','C0XQvM4','yKTlBwK','mtLxEuTzugy','odrtuMLzCee','sLjTugy','mtyXotu4m3bKCxfKqW','q2LmEhm','zgf5','mtK5mdiWnvHXvxnACG','B3jKzxi','mte1oda1nMzIqLHmyW','zxHWB3j0CW','otKZmdKXte1Ku2PT'];a0_0x555d=function(){return _0x1bf741;};return a0_0x555d();}(function(_0x1484ac,_0x175b10){const _0x2850d2=a0_0x4148,_0x1b45ca=_0x1484ac();while(!![]){try{const _0x7daf25=parseInt(_0x2850d2(0x167))/0x1*(-parseInt(_0x2850d2(0x157))/0x2)+parseInt(_0x2850d2(0x161))/0x3*(parseInt(_0x2850d2(0x15f))/0x4)+parseInt(_0x2850d2(0x16d))/0x5+-parseInt(_0x2850d2(0x155))/0x6*(-parseInt(_0x2850d2(0x16a))/0x7)+parseInt(_0x2850d2(0x16f))/0x8*(parseInt(_0x2850d2(0x15a))/0x9)+parseInt(_0x2850d2(0x15d))/0xa+-parseInt(_0x2850d2(0x171))/0xb*(parseInt(_0x2850d2(0x168))/0xc);if(_0x7daf25===_0x175b10)break;else _0x1b45ca['push'](_0x1b45ca['shift']());}catch(_0x21da9a){_0x1b45ca['push'](_0x1b45ca['shift']());}}}(a0_0x555d,0x5d440));class DateTimeParser{static[a0_0x2f51d0(0x160)](_0x147cfd,_0x2aaa3e,_0x2a55a2){const _0x20efea=a0_0x2f51d0,_0x3f8f52={'VYJtR':_0x20efea(0x175),'FnrQp':function(_0x41a601,_0x2ffc9a){return _0x41a601===_0x2ffc9a;},'PKNeT':'timestamp','sLjVn':_0x20efea(0x173)};if(!_0x147cfd||_0x147cfd==='')return null;try{if(_0x2a55a2===_0x3f8f52['VYJtR'])return this[_0x20efea(0x152)](_0x147cfd,_0x2aaa3e);else{if(_0x3f8f52['FnrQp'](_0x2a55a2,_0x3f8f52[_0x20efea(0x163)]))return this[_0x20efea(0x172)](_0x147cfd,_0x2aaa3e);else{if(_0x2a55a2===_0x3f8f52[_0x20efea(0x165)])return this['parseTime'](_0x147cfd,_0x2aaa3e);}}return _0x147cfd;}catch(_0x25e644){return console['error'](_0x20efea(0x151)+_0x25e644['message']),null;}}static['parseDate'](_0xfae194,_0x8685b9){const _0x42a5f2=a0_0x2f51d0,_0x640f19={'dmJuo':function(_0x2026e0,_0x19073d){return _0x2026e0+_0x19073d;},'bXFnF':function(_0x1aaa85,_0x23e018){return _0x1aaa85===_0x23e018;},'agpFW':_0x42a5f2(0x156),'chcDz':_0x42a5f2(0x15c),'CiLxs':_0x42a5f2(0x16c),'bKKmi':_0x42a5f2(0x154)};if(!_0x8685b9||_0x640f19['bXFnF'](_0x8685b9,_0x640f19[_0x42a5f2(0x159)]))return _0xfae194;const _0x35dbf2={'dd/MM/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':[_0x42a5f2(0x16c),_0x42a5f2(0x154),_0x640f19[_0x42a5f2(0x15b)]]},'dd-MM-yyyy':{'pattern':/^(\d{2})-(\d{2})-(\d{4})$/,'order':[_0x640f19['CiLxs'],_0x640f19[_0x42a5f2(0x166)],_0x640f19[_0x42a5f2(0x15b)]]},'MM/dd/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':[_0x42a5f2(0x154),_0x640f19[_0x42a5f2(0x16b)],_0x42a5f2(0x15c)]},'yyyy/MM/dd':{'pattern':/^(\d{4})\/(\d{2})\/(\d{2})$/,'order':[_0x640f19['chcDz'],_0x640f19['bKKmi'],_0x42a5f2(0x16c)]}},_0x3bc6b=_0x35dbf2[_0x8685b9];if(!_0x3bc6b)return console['warn']('Unknown\x20date\x20format:\x20'+_0x8685b9+',\x20returning\x20null'),null;const _0x4151a1=_0xfae194['match'](_0x3bc6b[_0x42a5f2(0x150)]);if(!_0x4151a1)return console[_0x42a5f2(0x158)]('Date\x20value\x20\x22'+_0xfae194+'\x22\x20doesn\x27t\x20match\x20format\x20\x22'+_0x8685b9+'\x22'),null;const _0x372807={'day':null,'month':null,'year':null};return _0x3bc6b[_0x42a5f2(0x16e)]['forEach']((_0x3c6ca3,_0x5548fa)=>{_0x372807[_0x3c6ca3]=_0x4151a1[_0x640f19['dmJuo'](_0x5548fa,0x1)];}),_0x372807['year']+'-'+_0x372807['month']+'-'+_0x372807[_0x42a5f2(0x16c)];}static['parseTimestamp'](_0x45b679,_0x10c486){const _0x3263ca=a0_0x2f51d0,_0x378541={'JRmPf':function(_0x43e48b,_0xed1c5c){return _0x43e48b===_0xed1c5c;},'NMSgA':_0x3263ca(0x153),'GFVDh':function(_0x461e12,_0xb70f6d){return _0x461e12!==_0xb70f6d;}};if(!_0x10c486||_0x378541[_0x3263ca(0x169)](_0x10c486,_0x378541[_0x3263ca(0x174)]))return _0x45b679;const _0x3489cf=_0x45b679[_0x3263ca(0x164)]('\x20');if(_0x378541[_0x3263ca(0x15e)](_0x3489cf[_0x3263ca(0x14d)],0x2))return console['warn']('Invalid\x20timestamp\x20format:\x20'+_0x45b679),null;const [_0x2a5f7e,_0x4d4150]=_0x3489cf,_0x188796=_0x10c486[_0x3263ca(0x164)]('\x20')[0x0],_0x3af02c=this['parseDate'](_0x2a5f7e,_0x188796);if(!_0x3af02c)return null;const _0x49ecb0=_0x4d4150['split'](':')[_0x3263ca(0x14d)]===0x2?_0x4d4150+':00':_0x4d4150;return _0x3af02c+'\x20'+_0x49ecb0;}static['parseTime'](_0x1fb4c0,_0x10a28d){const _0x4f4127=a0_0x2f51d0,_0x105e84={'SWcTX':function(_0x2c0561,_0x54556f){return _0x2c0561===_0x54556f;},'IFNJh':_0x4f4127(0x14f)};if(!_0x10a28d||_0x105e84[_0x4f4127(0x162)](_0x10a28d,_0x105e84[_0x4f4127(0x14e)]))return _0x1fb4c0;if(_0x10a28d==='HH:mm'){if(_0x1fb4c0['match'](/^\d{2}:\d{2}$/))return _0x1fb4c0+':00';}return _0x1fb4c0;}}module[a0_0x2f51d0(0x170)]=DateTimeParser;
@@ -1 +1 @@
1
- const a0_0x3b4a54=a0_0xb876;(function(_0x377448,_0x4bd5f9){const _0x24e6c0=a0_0xb876,_0x5ad6a6=_0x377448();while(!![]){try{const _0x52559d=parseInt(_0x24e6c0(0x1c2))/0x1+-parseInt(_0x24e6c0(0x1b2))/0x2*(parseInt(_0x24e6c0(0x1a2))/0x3)+parseInt(_0x24e6c0(0x185))/0x4+parseInt(_0x24e6c0(0x18b))/0x5+parseInt(_0x24e6c0(0x182))/0x6+-parseInt(_0x24e6c0(0x1bf))/0x7+-parseInt(_0x24e6c0(0x1bb))/0x8*(parseInt(_0x24e6c0(0x192))/0x9);if(_0x52559d===_0x4bd5f9)break;else _0x5ad6a6['push'](_0x5ad6a6['shift']());}catch(_0x1bd900){_0x5ad6a6['push'](_0x5ad6a6['shift']());}}}(a0_0x31c8,0x92561));const {Pool}=require('pg'),{logQuery,logTransaction,startQueryTimer,logDatabaseConfig,logger,logError}=require(a0_0x3b4a54(0x19e)),dbConfig={'host':process[a0_0x3b4a54(0x1ab)][a0_0x3b4a54(0x196)]||'192.168.100.1','port':parseInt(process['env']['DB_PORT']||'5432'),'user':process[a0_0x3b4a54(0x1ab)]['DB_USER']||'postgres','password':process['env'][a0_0x3b4a54(0x190)]||'postgres1234','database':process['env'][a0_0x3b4a54(0x1a8)]||a0_0x3b4a54(0x194)};function a0_0xb876(_0x178f69,_0x465c7d){_0x178f69=_0x178f69-0x182;const _0x31c8ce=a0_0x31c8();let _0xb87616=_0x31c8ce[_0x178f69];if(a0_0xb876['XtgxtA']===undefined){var _0x384747=function(_0x174c94){const _0x32c7af='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xd0a4e='',_0x253a5f='';for(let _0x415f28=0x0,_0x34d5aa,_0x3c8faf,_0x1efe4b=0x0;_0x3c8faf=_0x174c94['charAt'](_0x1efe4b++);~_0x3c8faf&&(_0x34d5aa=_0x415f28%0x4?_0x34d5aa*0x40+_0x3c8faf:_0x3c8faf,_0x415f28++%0x4)?_0xd0a4e+=String['fromCharCode'](0xff&_0x34d5aa>>(-0x2*_0x415f28&0x6)):0x0){_0x3c8faf=_0x32c7af['indexOf'](_0x3c8faf);}for(let _0x146dc1=0x0,_0x501a0b=_0xd0a4e['length'];_0x146dc1<_0x501a0b;_0x146dc1++){_0x253a5f+='%'+('00'+_0xd0a4e['charCodeAt'](_0x146dc1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x253a5f);};a0_0xb876['YZaJsl']=_0x384747,a0_0xb876['jgFCPf']={},a0_0xb876['XtgxtA']=!![];}const _0x551e1e=_0x31c8ce[0x0],_0x5e4618=_0x178f69+_0x551e1e,_0x1039b0=a0_0xb876['jgFCPf'][_0x5e4618];return!_0x1039b0?(_0xb87616=a0_0xb876['YZaJsl'](_0xb87616),a0_0xb876['jgFCPf'][_0x5e4618]=_0xb87616):_0xb87616=_0x1039b0,_0xb87616;}logDatabaseConfig({'host':dbConfig['host'],'port':dbConfig[a0_0x3b4a54(0x1a1)],'database':dbConfig['database'],'type':'postgresql','user':dbConfig['user']});let pool=new Pool(dbConfig),isPoolClosed=![];function getPool(){const _0x312c9c=a0_0x3b4a54;return isPoolClosed&&(logger[_0x312c9c(0x1c0)]({'event':'db_pool_recreate'},_0x312c9c(0x1b4)),pool=new Pool(dbConfig),isPoolClosed=![]),pool;}async function executeQuery(_0x795efb,_0x200322=[]){const _0x259cf5=a0_0x3b4a54,_0x319571={'PWjwd':function(_0x138d98){return _0x138d98();},'HeCLS':function(_0x4783e8){return _0x4783e8();},'qOrvN':function(_0x4161e7,_0xa13731,_0x2d52bd,_0x45c7f5){return _0x4161e7(_0xa13731,_0x2d52bd,_0x45c7f5);},'WWWhU':'postgresql','XrUDi':function(_0x3dc7f2,_0x2ac9d4,_0x384b68,_0x3b42aa){return _0x3dc7f2(_0x2ac9d4,_0x384b68,_0x3b42aa);}},_0x2a4eb8=_0x319571['PWjwd'](startQueryTimer);try{const _0x1339c1=_0x319571['HeCLS'](getPool),_0x57f9b6=await _0x1339c1['connect']();try{const _0x31b874=await _0x57f9b6[_0x259cf5(0x1b8)](_0x795efb,_0x200322),_0x2bfb43=_0x319571['HeCLS'](_0x2a4eb8);return _0x319571['qOrvN'](logQuery,_0x795efb,_0x200322,{'duration':_0x2bfb43,'rowsAffected':_0x31b874[_0x259cf5(0x1a0)],'dbType':_0x319571[_0x259cf5(0x1aa)]}),_0x31b874['rows'];}finally{_0x57f9b6['release']();}}catch(_0x3146ef){const _0x298aba=_0x2a4eb8();_0x319571[_0x259cf5(0x1af)](logError,_0x3146ef,{'event':_0x259cf5(0x19f),'query':_0x795efb['substring'](0x0,0x1f4),'paramCount':_0x200322[_0x259cf5(0x1ba)],'durationMs':_0x298aba,'code':_0x3146ef[_0x259cf5(0x1bc)],'dbType':_0x319571['WWWhU']},_0x259cf5(0x18d)+_0x3146ef[_0x259cf5(0x1b6)]);throw _0x3146ef;}}function formatResponse(_0x42608a,_0xb16483=null){const _0x55b2e3=a0_0x3b4a54,_0x30becc={'yLOpW':_0x55b2e3(0x18f),'XAVrg':_0x55b2e3(0x1ac),'uLfdv':function(_0x4aed22,_0x39027b){return _0x4aed22===_0x39027b;},'hOMXo':_0x55b2e3(0x1ad),'aLhbB':_0x55b2e3(0x197),'MkQHR':_0x55b2e3(0x1b3)};if(_0xb16483){let _0x581d0c=_0x30becc['yLOpW'];if(_0xb16483['message']['includes'](_0x55b2e3(0x186)))_0x581d0c=_0x30becc['XAVrg'];else{if(_0x30becc['uLfdv'](_0xb16483[_0x55b2e3(0x1bc)],'42P01'))_0x581d0c=_0x30becc['hOMXo'];else{if(_0x30becc[_0x55b2e3(0x198)](_0xb16483[_0x55b2e3(0x1bc)],'28P01'))_0x581d0c='AUTHENTICATION_ERROR';else(_0x30becc['uLfdv'](_0xb16483[_0x55b2e3(0x1bc)],_0x30becc[_0x55b2e3(0x188)])||_0x30becc['uLfdv'](_0xb16483['code'],'08001'))&&(_0x581d0c=_0x30becc['MkQHR']);}}return{'success':![],'message':'Database\x20error:\x20'+_0xb16483[_0x55b2e3(0x1b6)],'count':-0x1,'error_code':_0x581d0c};}else{if(!_0x42608a||_0x42608a[_0x55b2e3(0x1ba)]===0x0)return{'success':!![],'message':'No\x20data\x20found.','count':0x0,'data':[]};return{'success':!![],'message':_0x55b2e3(0x187)+_0x42608a['length']+'\x20row'+(_0x42608a['length']===0x1?'':'s')+'.','count':_0x42608a['length'],'data':_0x42608a};}}async function closePool(){const _0x425e85=a0_0x3b4a54,_0x3dfb38={'wfRHD':_0x425e85(0x1c3),'HMEeu':_0x425e85(0x1a6)};if(!isPoolClosed)try{isPoolClosed=!![],await pool[_0x425e85(0x184)](),logger['info']({'event':'db_pool_closed'},_0x3dfb38[_0x425e85(0x19c)]);}catch(_0x12263b){logError(_0x12263b,{'event':'db_pool_close_error'},'Error\x20closing\x20database\x20pool:\x20'+_0x12263b[_0x425e85(0x1b6)]);}else logger[_0x425e85(0x1a4)]({'event':_0x3dfb38[_0x425e85(0x1c1)]},_0x425e85(0x1a7));}function a0_0x31c8(){const _0x346e5e=['rejFueftu1DpuKq','DhjHBNnHy3rPB25FzxjYB3i','oxnKsfn5rW','wKX6rKm','zgj4ytaZ','uK9mtejbq0S','rejFse9tva','mdGWmdy','DuXMzhy','ChvZAa','Cg9ZDgDYzxnXBa','CMvSzwfZzq','D2zsseq','zgjFy29UBMvJDgLVBL9JAgvJA19LCNjVCG','lI9SB2DNzxi','C3fSx2vYCM9Y','CM93q291BNq','Cg9YDa','m1fXswPbEa','vhjHBNnHy3rPB24GzMfPBgvKoIa','zgvIDwC','DhjHBNnHy3rPB25Fy29TCgXLDgu','zgjFCg9VBf9HBhjLywr5x2nSB3nLza','rgf0ywjHC2uGCg9VBcb3yxmGywXYzwfKEsbJBg9Zzwq','rejFtKfnrq','zxjYB3i','v1DxAfu','zw52','u1Lovefyx0vsuK9s','vefctevFtK9ux0zpvu5e','vhjHBNnHy3rPB24Gy29TBwL0DgvKicG','whjvrgK','y29UBMvJDa','q05euNm','nJqWndrKtvjwB1O','q09otKvdveLptL9fuLjpuG','q3jLyxrPBMCGBMv3igrHDgfIyxnLihbVB2WGkhbYzxzPB3vZihbVB2WGD2fZignSB3nLzcK','EMLAshq','BwvZC2fNzq','yuvSCem','CxvLCNK','y29TBwL0','BgvUz3rO','odGWmJaWogv0Dg5Xsq','y29Kzq','tfzbBKq','CM93CW','oda2ntK3ngTeBvrvDG','Aw5MBW','se1fzxu','mtK4nJa0rNzjy0Hz','rgf0ywjHC2uGCg9VBcbJBg9ZzwqGC3vJy2vZC2z1BgX5','CM9SBgjHy2TFzxjYB3i','ndG0mZq5nffmCen3yG','zxHWB3j0CW','zw5K','mZyZmJm3nMr4A1DXzW','C3LUDgf4igvYCM9Y','uxvLCNKGCMv0DxjUzwqG','yuXOyKi','s0vluxe','Dhn2CLC','ndG1mdaWnwTIshjtzG','q09ntuLu','u1fmievYCM9YoIa','ihf1zxjPzxmP','vu5ltK9xtL9fuLjpuG'];a0_0x31c8=function(){return _0x346e5e;};return a0_0x31c8();}async function checkConnection(){const _0x3df6d7=a0_0x3b4a54,_0x521efe={'IpMws':'SELECT\x201','ziZHt':function(_0x312cfc,_0x113c29,_0x3157cd,_0xc60d20){return _0x312cfc(_0x113c29,_0x3157cd,_0xc60d20);},'CNDRs':_0x3df6d7(0x19d)};try{const _0x2b5b39=getPool(),_0x183157=await _0x2b5b39['connect']();try{return await _0x183157['query'](_0x521efe['IpMws']),!![];}finally{_0x183157[_0x3df6d7(0x19b)]();}}catch(_0x359361){return _0x521efe[_0x3df6d7(0x1b5)](logError,_0x359361,{'event':_0x521efe[_0x3df6d7(0x1b1)]},'Error\x20checking\x20database\x20connection:\x20'+_0x359361[_0x3df6d7(0x1b6)]),![];}}async function executeTransaction(_0x382e8c){const _0x303d7f=a0_0x3b4a54,_0x1c2934={'MnWbY':function(_0x3c4a79){return _0x3c4a79();},'ZLzFC':function(_0xf8de26,_0x8ad39c,_0x23d186){return _0xf8de26(_0x8ad39c,_0x23d186);},'tsvrW':function(_0x54cfec){return _0x54cfec();},'aElpC':_0x303d7f(0x19a),'GOVok':_0x303d7f(0x1b9),'nClCn':_0x303d7f(0x1a5),'KEKQq':function(_0x4bbc04,_0x5a0df1,_0x278f3a,_0x2b97f9){return _0x4bbc04(_0x5a0df1,_0x278f3a,_0x2b97f9);},'LVAnD':'rollback','JOiZG':'client_release_error'};let _0x5aaa39;const _0x4a6cb4=_0x1c2934['MnWbY'](startQueryTimer);try{const _0x47ac43=getPool();_0x5aaa39=await _0x47ac43[_0x303d7f(0x1b0)](),_0x1c2934[_0x303d7f(0x193)](logTransaction,'start',_0x382e8c[_0x303d7f(0x1ba)]),await _0x5aaa39[_0x303d7f(0x1b8)]('BEGIN');const _0x1dafc8=[];for(const _0x45505d of _0x382e8c){const _0x258718=startQueryTimer(),_0x413c12=await _0x5aaa39[_0x303d7f(0x1b8)](_0x45505d['sql'],_0x45505d['params']||[]),_0x350d88=_0x1c2934[_0x303d7f(0x18a)](_0x258718);logQuery(_0x45505d['sql'],_0x45505d['params']||[],{'duration':_0x350d88,'rowsAffected':_0x413c12['rowCount'],'dbType':_0x1c2934[_0x303d7f(0x1b7)]}),_0x1dafc8[_0x303d7f(0x199)](_0x413c12[_0x303d7f(0x1be)]);}await _0x5aaa39['query'](_0x303d7f(0x18c));const _0x36cf2d=_0x4a6cb4();return logTransaction(_0x1c2934['GOVok'],_0x382e8c['length']),logger['info']({'event':_0x1c2934['nClCn'],'queryCount':_0x382e8c[_0x303d7f(0x1ba)],'totalDurationMs':_0x36cf2d,'dbType':'postgresql'},_0x303d7f(0x1ae)+_0x36cf2d+'ms,\x20'+_0x382e8c['length']+_0x303d7f(0x18e)),_0x1dafc8;}catch(_0xb999ef){const _0x22823e=_0x4a6cb4();_0x1c2934[_0x303d7f(0x189)](logError,_0xb999ef,{'event':_0x303d7f(0x191),'queryCount':_0x382e8c['length'],'totalDurationMs':_0x22823e,'code':_0xb999ef[_0x303d7f(0x1bc)],'dbType':_0x303d7f(0x19a)},_0x303d7f(0x1a3)+_0xb999ef['message']);if(_0x5aaa39)try{await _0x5aaa39['query'](_0x303d7f(0x195)),logTransaction(_0x1c2934[_0x303d7f(0x1bd)],_0x382e8c['length']);}catch(_0x5390f9){_0x1c2934[_0x303d7f(0x189)](logError,_0x5390f9,{'event':_0x303d7f(0x1c4),'dbType':'postgresql'},'Error\x20rolling\x20back\x20transaction:\x20'+_0x5390f9['message']);}throw _0xb999ef;}finally{if(_0x5aaa39)try{_0x5aaa39[_0x303d7f(0x19b)]();}catch(_0x88d056){logger[_0x303d7f(0x1a9)]({'event':_0x1c2934['JOiZG'],'error':_0x88d056['message'],'dbType':_0x1c2934[_0x303d7f(0x1b7)]},'Error\x20releasing\x20transaction\x20client:\x20'+_0x88d056['message']);}}}module[a0_0x3b4a54(0x183)]={'executeQuery':executeQuery,'executeTransaction':executeTransaction,'formatResponse':formatResponse,'closePool':closePool,'getPool':getPool,'checkConnection':checkConnection};
1
+ const a0_0x40e4ea=a0_0x3f76;function a0_0x4b36(){const _0x25817e=['z3PWA1a','rejFueftu1DpuKq','CM93CW','Aw5MBW','rejFue9sva','rxjYB3iGCMvSzwfZAw5NihrYyw5Zywn0Aw9UignSAwvUDdOG','rgf0ywjHC2uGzxjYB3i6ia','sePAyxK','q0nKEMC','CgfYyw1Z','zxHWB3j0CW','C3rHCNq','yu5Nzxu','CM93q291BNq','Cg9ZDgDYzxm','sgzHteS','mJeZmZiZndrAuerIC1m','nZm2nMHPEgLpDG','vhjHBNnHy3rPB24Gy29TBwL0DgvKicG','ndjqmde','nZq3mZv2tfzMy28','u2nSCg8','wfrLCKm','Cg9YDa','u1fmievYCM9YoIa','mtKYlJe2oc4XmdaUmq','ogDgyvvyzG','otHAq2fcDLa','ihjVDW','y29UBMvJDa','rxjYB3iGy2XVC2LUzYbKyxrHyMfZzsbWB29SoIa','ChvZAa','y29Kzq','mdGWmdy','mtbhsLPxsMC','A2nxDe0','uK9mtejbq0S','qvvusevoveLdqvrjt05Frvjst1i','nfHMreXetq','DLnxENG','BwvZC2fNzq','CMvSzwfZzq','ndy1mJqZogzQBvPZua','rLjjsNO','rLvvCNO','rxjYB3iGy2HLy2TPBMCGzgf0ywjHC2uGy29UBMvJDgLVBJOG','rgLPtgS','mJq1nJm0m1z4CK16BG','DxnLCG','y29TBwL0','BxmSia','zw52','Cg9ZDgDYzxnXBa','qNLxtNy','q3jLyxrPBMCGBMv3igrHDgfIyxnLihbVB2WGkhbYzxzPB3vZihbVB2WGD2fZignSB3nLzcK','vhjHBNnHy3rPB24GzMfPBgvKoIa','zxjYB3i','u1Lovefyx0vsuK9s','tM8Gzgf0ysbMB3vUzc4','zgjFCg9VBf9YzwnYzwf0zq','mJa5mZqXmMX1BfjHqW','BgvUz3rO','mtq2otq2yuLhuwT3','BvbgBg8'];a0_0x4b36=function(){return _0x25817e;};return a0_0x4b36();}(function(_0x1dfb68,_0x198b8b){const _0x1a1b2e=a0_0x3f76,_0x32b043=_0x1dfb68();while(!![]){try{const _0x345d28=-parseInt(_0x1a1b2e(0x116))/0x1*(parseInt(_0x1a1b2e(0xe0))/0x2)+-parseInt(_0x1a1b2e(0x101))/0x3+-parseInt(_0x1a1b2e(0xeb))/0x4*(parseInt(_0x1a1b2e(0x119))/0x5)+parseInt(_0x1a1b2e(0x103))/0x6+parseInt(_0x1a1b2e(0xef))/0x7*(-parseInt(_0x1a1b2e(0xdf))/0x8)+-parseInt(_0x1a1b2e(0xf4))/0x9*(-parseInt(_0x1a1b2e(0xe7))/0xa)+parseInt(_0x1a1b2e(0x115))/0xb;if(_0x345d28===_0x198b8b)break;else _0x32b043['push'](_0x32b043['shift']());}catch(_0x205b3d){_0x32b043['push'](_0x32b043['shift']());}}}(a0_0x4b36,0x79ae3));const {Pool}=require('pg'),{logQuery,logTransaction,startQueryTimer,logDatabaseConfig,logger,logError}=require('./logger'),dbConfig={'host':process[a0_0x40e4ea(0xf8)]['DB_HOST']||a0_0x40e4ea(0xde),'port':parseInt(process['env'][a0_0x40e4ea(0x109)]||'5432'),'user':process[a0_0x40e4ea(0xf8)]['DB_USER']||a0_0x40e4ea(0x113),'password':process['env'][a0_0x40e4ea(0x106)]||'postgres1234','database':process[a0_0x40e4ea(0xf8)]['DB_NAME']||'dbxa03'};logDatabaseConfig({'host':dbConfig['host'],'port':dbConfig[a0_0x40e4ea(0xdc)],'database':dbConfig['database'],'type':a0_0x40e4ea(0xf9),'user':dbConfig[a0_0x40e4ea(0xf5)]});let pool=new Pool(dbConfig),isPoolClosed=![];function getPool(){const _0x1e60de=a0_0x40e4ea,_0xc3999e={'YYXdq':_0x1e60de(0x100)};return isPoolClosed&&(logger['info']({'event':_0xc3999e['YYXdq']},_0x1e60de(0xfb)),pool=new Pool(dbConfig),isPoolClosed=![]),pool;}async function executeQuery(_0xcd85c8,_0xf4eb2f=[]){const _0x4ca308=a0_0x40e4ea,_0x16baa8={'kcWtM':function(_0x1e2311){return _0x1e2311();},'aNgeu':function(_0x33af7e,_0x57c23c,_0x562a65,_0x4b939b){return _0x33af7e(_0x57c23c,_0x562a65,_0x4b939b);}},_0x263394=_0x16baa8[_0x4ca308(0xe8)](startQueryTimer);try{const _0x5e695e=_0x16baa8['kcWtM'](getPool),_0x10b48e=await _0x5e695e['connect']();try{const _0x3643f5=await _0x10b48e['query'](_0xcd85c8,_0xf4eb2f),_0x478c50=_0x263394();return _0x16baa8[_0x4ca308(0x111)](logQuery,_0xcd85c8,_0xf4eb2f,{'duration':_0x478c50,'rowsAffected':_0x3643f5['rowCount'],'dbType':'postgresql'}),_0x3643f5[_0x4ca308(0x107)];}finally{_0x10b48e['release']();}}catch(_0x2b37a5){const _0x2f537f=_0x263394();logError(_0x2b37a5,{'event':'sql_error','query':_0xcd85c8['substring'](0x0,0x1f4),'paramCount':_0xf4eb2f[_0x4ca308(0x102)],'durationMs':_0x2f537f,'code':_0x2b37a5['code'],'dbType':_0x4ca308(0xf9)},_0x4ca308(0xdd)+_0x2b37a5['message']);throw _0x2b37a5;}}function a0_0x3f76(_0x1a0cf5,_0x2dc685){_0x1a0cf5=_0x1a0cf5-0xdb;const _0x4b36b9=a0_0x4b36();let _0x3f76d5=_0x4b36b9[_0x1a0cf5];if(a0_0x3f76['bmMLqC']===undefined){var _0x5a5c26=function(_0x3f8f61){const _0x202907='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x37ff6e='',_0x5d471d='';for(let _0x1f9735=0x0,_0x438e54,_0x438764,_0x30c76c=0x0;_0x438764=_0x3f8f61['charAt'](_0x30c76c++);~_0x438764&&(_0x438e54=_0x1f9735%0x4?_0x438e54*0x40+_0x438764:_0x438764,_0x1f9735++%0x4)?_0x37ff6e+=String['fromCharCode'](0xff&_0x438e54>>(-0x2*_0x1f9735&0x6)):0x0){_0x438764=_0x202907['indexOf'](_0x438764);}for(let _0x1a26ac=0x0,_0x2e81aa=_0x37ff6e['length'];_0x1a26ac<_0x2e81aa;_0x1a26ac++){_0x5d471d+='%'+('00'+_0x37ff6e['charCodeAt'](_0x1a26ac)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5d471d);};a0_0x3f76['DxCWyl']=_0x5a5c26,a0_0x3f76['UAYMci']={},a0_0x3f76['bmMLqC']=!![];}const _0x45fe5f=_0x4b36b9[0x0],_0x1516ea=_0x1a0cf5+_0x45fe5f,_0x2646ef=a0_0x3f76['UAYMci'][_0x1516ea];return!_0x2646ef?(_0x3f76d5=a0_0x3f76['DxCWyl'](_0x3f76d5),a0_0x3f76['UAYMci'][_0x1516ea]=_0x3f76d5):_0x3f76d5=_0x2646ef,_0x3f76d5;}function formatResponse(_0x4e20e1,_0x3a4107=null){const _0xea7216=a0_0x40e4ea,_0x27829a={'ByWNv':'UNKNOWN_ERROR','HJZay':function(_0x20604a,_0x5c1cf8){return _0x20604a===_0x5c1cf8;},'FUUrz':_0xea7216(0x118),'SUmmw':'08001','yrfpH':_0xea7216(0xff)};if(_0x3a4107){let _0x268baf=_0x27829a[_0xea7216(0xfa)];if(_0x3a4107[_0xea7216(0xed)]['includes']('syntax\x20error'))_0x268baf=_0xea7216(0xfe);else{if(_0x27829a[_0xea7216(0x10c)](_0x3a4107['code'],_0x27829a[_0xea7216(0xf1)]))_0x268baf='TABLE_NOT_FOUND';else{if(_0x27829a[_0xea7216(0x10c)](_0x3a4107[_0xea7216(0xe5)],'28P01'))_0x268baf=_0xea7216(0xea);else(_0x3a4107['code']===_0xea7216(0xe6)||_0x3a4107[_0xea7216(0xe5)]===_0x27829a['SUmmw'])&&(_0x268baf='CONNECTION_ERROR');}}return{'success':![],'message':_0xea7216(0x10b)+_0x3a4107['message'],'count':-0x1,'error_code':_0x268baf};}else{if(!_0x4e20e1||_0x4e20e1[_0xea7216(0x102)]===0x0)return{'success':!![],'message':_0x27829a['yrfpH'],'count':0x0,'data':[]};return{'success':!![],'message':'Query\x20returned\x20'+_0x4e20e1['length']+_0xea7216(0xe1)+(_0x4e20e1[_0xea7216(0x102)]===0x1?'':'s')+'.','count':_0x4e20e1[_0xea7216(0x102)],'data':_0x4e20e1};}}async function closePool(){const _0x535195=a0_0x40e4ea,_0x11f43b={'vSWzx':'Database\x20pool\x20closed\x20successfully','BmpEY':function(_0x51e385,_0x2c79f6,_0x44b1c9,_0x42de73){return _0x51e385(_0x2c79f6,_0x44b1c9,_0x42de73);},'UPQUu':'db_pool_close_error','XTerC':'db_pool_already_closed','buefm':'Database\x20pool\x20was\x20already\x20closed'};if(!isPoolClosed)try{isPoolClosed=!![],await pool['end'](),logger[_0x535195(0x108)]({'event':'db_pool_closed'},_0x11f43b[_0x535195(0xec)]);}catch(_0xa740c8){_0x11f43b['BmpEY'](logError,_0xa740c8,{'event':_0x11f43b['UPQUu']},_0x535195(0xe3)+_0xa740c8[_0x535195(0xed)]);}else logger['debug']({'event':_0x11f43b[_0x535195(0xdb)]},_0x11f43b['buefm']);}async function checkConnection(){const _0x30f695=a0_0x40e4ea,_0x549fcd={'vwRHw':'db_connection_check_error'};try{const _0x3cb032=getPool(),_0x41cc7f=await _0x3cb032[_0x30f695(0xe2)]();try{return await _0x41cc7f['query']('SELECT\x201'),!![];}finally{_0x41cc7f[_0x30f695(0xee)]();}}catch(_0x780c0a){return logError(_0x780c0a,{'event':_0x549fcd['vwRHw']},_0x30f695(0xf2)+_0x780c0a[_0x30f695(0xed)]),![];}}async function executeTransaction(_0x421a30){const _0x576f13=a0_0x40e4ea,_0x8fee5f={'mPFlo':function(_0x17fa8e){return _0x17fa8e();},'CCdzg':function(_0x214640,_0x46370e,_0x467e2d,_0x2d842c){return _0x214640(_0x46370e,_0x467e2d,_0x2d842c);},'DiiLk':'postgresql','FRIJz':'COMMIT','gzpkP':function(_0x172cc5,_0x58d668,_0x2c6938){return _0x172cc5(_0x58d668,_0x2c6938);},'bIGtS':'transaction_error','HfaLK':_0x576f13(0xe9),'ePvjM':'rollback_error','Sclpo':'client_release_error'};let _0x1285a5;const _0x3eebd7=startQueryTimer();try{const _0x2622f3=getPool();_0x1285a5=await _0x2622f3[_0x576f13(0xe2)](),logTransaction(_0x576f13(0x110),_0x421a30[_0x576f13(0x102)]),await _0x1285a5['query']('BEGIN');const _0xe4a4af=[];for(const _0x4e7131 of _0x421a30){const _0x292569=_0x8fee5f['mPFlo'](startQueryTimer),_0x407555=await _0x1285a5['query'](_0x4e7131['sql'],_0x4e7131[_0x576f13(0x10e)]||[]),_0x2a441c=_0x8fee5f['mPFlo'](_0x292569);_0x8fee5f[_0x576f13(0x10d)](logQuery,_0x4e7131['sql'],_0x4e7131['params']||[],{'duration':_0x2a441c,'rowsAffected':_0x407555[_0x576f13(0x112)],'dbType':_0x8fee5f['DiiLk']}),_0xe4a4af[_0x576f13(0xe4)](_0x407555['rows']);}await _0x1285a5['query'](_0x8fee5f[_0x576f13(0xf0)]);const _0x46f199=_0x8fee5f[_0x576f13(0x104)](_0x3eebd7);return _0x8fee5f[_0x576f13(0x105)](logTransaction,_0x576f13(0xf6),_0x421a30['length']),logger['info']({'event':'transaction_complete','queryCount':_0x421a30['length'],'totalDurationMs':_0x46f199,'dbType':_0x576f13(0xf9)},_0x576f13(0x117)+_0x46f199+_0x576f13(0xf7)+_0x421a30['length']+'\x20queries)'),_0xe4a4af;}catch(_0xd0613b){const _0x1ce413=_0x8fee5f[_0x576f13(0x104)](_0x3eebd7);_0x8fee5f['CCdzg'](logError,_0xd0613b,{'event':_0x8fee5f['bIGtS'],'queryCount':_0x421a30['length'],'totalDurationMs':_0x1ce413,'code':_0xd0613b[_0x576f13(0xe5)],'dbType':_0x8fee5f[_0x576f13(0xf3)]},_0x576f13(0xfc)+_0xd0613b['message']);if(_0x1285a5)try{await _0x1285a5['query'](_0x8fee5f[_0x576f13(0x114)]),logTransaction('rollback',_0x421a30['length']);}catch(_0x8c9379){_0x8fee5f[_0x576f13(0x10d)](logError,_0x8c9379,{'event':_0x8fee5f['ePvjM'],'dbType':'postgresql'},'Error\x20rolling\x20back\x20transaction:\x20'+_0x8c9379['message']);}throw _0xd0613b;}finally{if(_0x1285a5)try{_0x1285a5['release']();}catch(_0x544a4d){logger[_0x576f13(0xfd)]({'event':_0x8fee5f[_0x576f13(0x11a)],'error':_0x544a4d[_0x576f13(0xed)],'dbType':'postgresql'},_0x576f13(0x10a)+_0x544a4d['message']);}}}module[a0_0x40e4ea(0x10f)]={'executeQuery':executeQuery,'executeTransaction':executeTransaction,'formatResponse':formatResponse,'closePool':closePool,'getPool':getPool,'checkConnection':checkConnection};
@@ -1 +1 @@
1
- const a0_0x394442=a0_0xb25a;(function(_0x3018dc,_0xc20779){const _0x542f13=a0_0xb25a,_0x75a8c1=_0x3018dc();while(!![]){try{const _0x4685bd=parseInt(_0x542f13(0xd9))/0x1*(parseInt(_0x542f13(0xdc))/0x2)+parseInt(_0x542f13(0x11c))/0x3+-parseInt(_0x542f13(0xc0))/0x4*(parseInt(_0x542f13(0xd2))/0x5)+-parseInt(_0x542f13(0xf4))/0x6+-parseInt(_0x542f13(0x129))/0x7*(parseInt(_0x542f13(0x101))/0x8)+-parseInt(_0x542f13(0x110))/0x9+-parseInt(_0x542f13(0xe1))/0xa*(-parseInt(_0x542f13(0x118))/0xb);if(_0x4685bd===_0xc20779)break;else _0x75a8c1['push'](_0x75a8c1['shift']());}catch(_0x20a998){_0x75a8c1['push'](_0x75a8c1['shift']());}}}(a0_0x3791,0xd6999));const pino=require('pino'),fs=require('fs'),path=require('path');let logToFile=![],logDir='./logs',serviceName='restforge',sqlLogEnabled=![],sqlLogLevel='debug',sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;const prettyPrintOptions={'colorize':!![],'translateTime':a0_0x394442(0xc5),'ignore':'pid,hostname,service,version,env,event,module,port,config,apiKeyEnabled,path,workingDir,isPkg,isNodeScript,file,email,type,cors,logging,apiKey,count,endpoint,route','singleLine':![],'levelFirst':!![],'messageFormat':'{msg}','customColors':'info:blue,warn:yellow,error:red,debug:gray','hideObject':!![]},isDevelopment=process['env']['NODE_ENV']!==a0_0x394442(0x13d),logLevel=process['env'][a0_0x394442(0xde)]||'info';let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':'pino-pretty','options':prettyPrintOptions}:undefined,'base':{'service':'restforge','version':process[a0_0x394442(0xb9)][a0_0x394442(0x126)]||'1.0.5','env':process['env'][a0_0x394442(0xc8)]||a0_0x394442(0xc4)},'timestamp':pino['stdTimeFunctions']['isoTime'],'redact':{'paths':['req.headers.authorization',a0_0x394442(0x104),a0_0x394442(0x152),'token',a0_0x394442(0xd5),'DB_PASSWORD',a0_0x394442(0x112)],'censor':a0_0x394442(0x147)},'serializers':{'req':_0x4a629e=>({'id':_0x4a629e['id'],'method':_0x4a629e['method'],'url':_0x4a629e[a0_0x394442(0xce)],'path':_0x4a629e[a0_0x394442(0x11e)],'remoteAddress':_0x4a629e['ip']||_0x4a629e['connection']?.['remoteAddress']}),'res':_0xeff388=>({'statusCode':_0xeff388[a0_0x394442(0x106)],'headers':_0xeff388[a0_0x394442(0xf9)]?.()}),'err':pino[a0_0x394442(0x107)]['err']}});function initFileLogging(){const _0x182b82=a0_0x394442,_0x4c5c7b={'ECMmQ':function(_0x102bb5,_0xdcf6db){return _0x102bb5===_0xdcf6db;},'dttgW':'true','voIjj':_0x182b82(0x15a),'CWwfY':_0x182b82(0x10f),'umYeN':_0x182b82(0x111),'foEDW':'info'};if(fileLoggingInitialized)return;logToFile=process[_0x182b82(0xb9)]['LOG_TO_FILE']===_0x182b82(0x162),logDir=process['env']['LOG_DIR']||'./logs',serviceName=process[_0x182b82(0xb9)][_0x182b82(0x136)]||'restforge',sqlLogEnabled=_0x4c5c7b[_0x182b82(0x146)](process[_0x182b82(0xb9)][_0x182b82(0x154)],_0x4c5c7b[_0x182b82(0x121)]),sqlLogLevel=process['env'][_0x182b82(0x151)]||_0x4c5c7b['voIjj'],sqlLogParams=process['env']['SQL_LOG_PARAMS']!=='false',sqlLogSlowThreshold=parseInt(process['env'][_0x182b82(0xcd)])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x2c48ed=path['resolve'](process[_0x182b82(0xfb)](),logDir);try{!fs[_0x182b82(0xe8)](_0x2c48ed)&&fs[_0x182b82(0xd6)](_0x2c48ed,{'recursive':!![]});}catch(_0x5f16b1){console[_0x182b82(0xb8)](_0x182b82(0xc9)+_0x2c48ed+':',_0x5f16b1['message']),fileLoggingInitialized=!![];return;}const _0xa1d500=path[_0x182b82(0xd7)](_0x2c48ed,'app.log'),_0xc4d97a=path[_0x182b82(0xd7)](_0x2c48ed,_0x182b82(0x111));try{appLogStream=fs['createWriteStream'](_0xa1d500,{'flags':'a'}),errorLogStream=fs['createWriteStream'](_0xc4d97a,{'flags':'a'}),fileLoggingInitialized=!![];const _0x5241f9={'event':_0x4c5c7b[_0x182b82(0x15f)],'logDir':_0x2c48ed,'files':['app.log',_0x4c5c7b['umYeN']]},_0x558da8=_0x182b82(0x119)+_0x2c48ed;logger[_0x182b82(0x100)](_0x5241f9,_0x558da8),writeToFileLog({..._0x5241f9,'level':_0x4c5c7b[_0x182b82(0x133)],'msg':_0x558da8,'time':new Date()['toISOString']()},_0x182b82(0x100));}catch(_0x30b670){console[_0x182b82(0xb8)]('Failed\x20to\x20create\x20log\x20streams:',_0x30b670['message']),fileLoggingInitialized=!![];}}function a0_0x3791(){const _0x47e2bd=['zxjYB3i','zw52','rgf0ywjHC2u6ia','BgvUz3rO','svPgtgq','icbjBMzVoIaGia','B2jQzwn0','v2XArwm','mJiWnZe3nMnUs2nXBW','Bwf0y2G','BxmP','Dg9vChbLCKnHC2u','zgv2zwXVCg1LBNq','u1LtoKHioK1noNnZ','w09lxsbqCM9Qzwn0igXVywrLzdOG','Bwv0Ag9K','tK9erv9ftLy','rMfPBgvKihrVignYzwf0zsbSB2CGzgLYzwn0B3j5ia','rxjYB3i','qMXysfi','y3jLzgvUDgLHBa','u1fmx0Xpr19tte9xx1riuKvtse9mra','DxjS','u2vYDMvYihn0yxj0Aw5NoIa','icbvuKW6icaGia','rKHwtKy','mtblv2TAsKS','zw5KCg9PBNrFCMvNAxn0zxjLza','Ag9ZDa','yxbPs2v5','BwTKAxjtEw5J','AM9PBG','BMfTzq','nJKYndyYrhPdDwHn','D2fYBMLUzW','BwfW','mLHIzKTPyG','DxnLCG','te9hx0XfvKvm','Be9uteK','ChjVAMvJDf9SB2fKzwq','ndK3mhjcsMvNzW','vuv5rNq','AgvHBhrOq2HLy2S','sw50zxjUywWGC2vYDMvYigvYCM9Y','Dg9gAxHLza','iokvKqRILzeGifbYB2PLy3qGicaGidOG','Ahj0Aw1L','zxHPC3rZu3LUyW','C2vYDMLJzuLUzM8','v2PdvLa','uwTjveG','vfjbtLnbq1rjt05FqKvhsu4','rxvqwgS','Ce5wwei','Dw5RBM93BG','ChDK','Cg9YDa','C2vJCMv0','Dg9ju09tDhjPBMC','mtCYotGZnKvbyKPdva','C3rYAw5NAwz5','Dw5Oyw5KBgvKuMvQzwn0Aw9U','rermx0rst1a','u1rbuLqGvfjbtLnbq1rjt04','z2v0sgvHzgvYCW','y29Kzq','y3DK','zhvYyxrPB25nCW','u0vmrunu','yMfZzvvYBa','zgfyq1a','Aw5MBW','mZa2nJr0wu1jz2m','A3flA3K','q1H1sK4','CMvXlMHLywrLCNnBiNGTyxbPlwTLEsjD','zgjFCxvLCNK','C3rHDhvZq29Kzq','C3rKu2vYAwfSAxPLCNm','y2v1EMy','CMv5yuu','CgP6B0G','EeDhvwi','AufAzLy','ig9UihbVCNqG','yxbPA2v5','zMLSzv9SB2DNAw5Nx2vUywjSzwq','nZa0mJCYnur5r2HwEa','zxjYB3iUBg9N','sLDux1nfq1jfva','Cg9ZDgDYzxnXBa','D2fYBG','CxvLCNK','vvvLALm','rfjpua','mZC1ndnrAuDxt1y','rMLSzsbSB2DNAw5NigvUywjSzwq6ia','CMvMCMvZAf90B2TLBG','A2v5DfK','mJq0mJu1mLfrvMDVua','CMvTB3rLqwrKCMvZCW','Cgf0Aa','CgfYyw1Z','revmrvrf','zhr0z1C','vvbeqvrf','w09lxsbtzxj2zxiGCMvHzhKGB24GCg9YDca','Bhf0v1K','B3rW','qvbqx1zfuLnjt04','ChjPDMf0zwTLEq','iokvKqRILzRILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILz0','mJCZzxbUANzT','zw52AxjVBM1LBNq','q09ntuLu','C3rHy2S','r1Dbwee','DgvZDa','zMf0ywW','CgfKrw5K','swvLrfm','DhjPBq','zM9frfC','rgvMyxvSDa','ChjVy2vZC193yxjUAw5N','u0vsvKLdrv9oqu1f','DhLWzq','De9yA0u','vfDHzgC','ChjVAMvJDa','Dw5JyxvNAhrfEgnLChrPB24','rxjYB3i6ia','ChjVzhvJDgLVBG','C29Tzq','yNnmthO','AwTJyNe','tK9uiefdveLwrq','BwvZC2fNzq','yxbPx2TLEq','y3jLzgL0y2fYza','AgvHzgvYCW','runnBve','w1jfrefdvevexq','zgf0ywjHC2u','ANnVBG','y3jLzgL0x2nHCMq','DxnLCI1Hz2vUDa','Dg9mB3DLCKnHC2u','ChjPDMf0zv9RzxK','Dg9Rzw4','zMf0ywXFzxjYB3i','Dxb0Aw1L','u1fmx0Xpr19mrvzfta','CgfZC3DVCMq','yM9KEq','u1fmx0Xpr19ftKfcteve','DvvAEe4','C3rHCNrZv2L0Aa','Bw9KDwXL','yxbPx3nLy3jLDa','uK9mtejbq0S','zgvIDwC','C3rHDhvZ','sMPdteu','yuDHrNe','y2HPBgq','q1D3zLK','CgfZC3DK','CgPcALm','Dhj1zq','q1jjveLdquW','tM9Kzs5QCW','yurivxK'];a0_0x3791=function(){return _0x47e2bd;};return a0_0x3791();}function writeToFileLog(_0x494a5d,_0x3c230d){const _0x4d7026=a0_0x394442,_0x4699c8={'fWhSn':function(_0x2a8be9,_0x3fa69e){return _0x2a8be9||_0x3fa69e;},'JjCLE':function(_0xea7b50,_0x160463){return _0xea7b50+_0x160463;},'EuPXk':function(_0xb18c8f,_0x27648c){return _0xb18c8f===_0x27648c;}};if(_0x4699c8['fWhSn'](!logToFile,!appLogStream))return;const _0x54af9d={'service':serviceName,..._0x494a5d},_0x5bf1f8=_0x4699c8[_0x4d7026(0x15c)](JSON[_0x4d7026(0xf5)](_0x54af9d),'\x0a');appLogStream['write'](_0x5bf1f8),(_0x3c230d===_0x4d7026(0xb8)||_0x4699c8[_0x4d7026(0xed)](_0x3c230d,'fatal'))&&(errorLogStream&&errorLogStream['write'](_0x5bf1f8));}function a0_0xb25a(_0x4c3a3a,_0x5bbde5){_0x4c3a3a=_0x4c3a3a-0xb6;const _0x379147=a0_0x3791();let _0xb25a99=_0x379147[_0x4c3a3a];if(a0_0xb25a['yubFZt']===undefined){var _0x2d0334=function(_0x5e7951){const _0x4929cf='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x174135='',_0x337cbd='';for(let _0x4ab16a=0x0,_0x2cc8e5,_0x3e32d4,_0x40241d=0x0;_0x3e32d4=_0x5e7951['charAt'](_0x40241d++);~_0x3e32d4&&(_0x2cc8e5=_0x4ab16a%0x4?_0x2cc8e5*0x40+_0x3e32d4:_0x3e32d4,_0x4ab16a++%0x4)?_0x174135+=String['fromCharCode'](0xff&_0x2cc8e5>>(-0x2*_0x4ab16a&0x6)):0x0){_0x3e32d4=_0x4929cf['indexOf'](_0x3e32d4);}for(let _0x33c997=0x0,_0x4d4779=_0x174135['length'];_0x33c997<_0x4d4779;_0x33c997++){_0x337cbd+='%'+('00'+_0x174135['charCodeAt'](_0x33c997)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x337cbd);};a0_0xb25a['nyHvbo']=_0x2d0334,a0_0xb25a['PLoBKC']={},a0_0xb25a['yubFZt']=!![];}const _0x59369c=_0x379147[0x0],_0x23b7ad=_0x4c3a3a+_0x59369c,_0x22779c=a0_0xb25a['PLoBKC'][_0x23b7ad];return!_0x22779c?(_0xb25a99=a0_0xb25a['nyHvbo'](_0xb25a99),a0_0xb25a['PLoBKC'][_0x23b7ad]=_0xb25a99):_0xb25a99=_0x22779c,_0xb25a99;}const createRequestLogger=(_0x4eecd6={})=>{const _0x525dde=a0_0x394442;return logger[_0x525dde(0x15e)](_0x4eecd6);},logServerStart=_0x518e93=>{const _0x22851f=a0_0x394442,_0x539bd4={'GWAXA':_0x22851f(0xb6),'DxBDn':function(_0x255ef2,_0x597689){return _0x255ef2(_0x597689);},'kqKky':'ACTIVE','tFsFd':_0x22851f(0x141),'NaTxv':'server_starting','DrLdb':'info'},_0x309f2a='\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'+(_0x518e93[_0x22851f(0x12a)]||_0x539bd4[_0x22851f(0x12d)])['padEnd'](0x26)+_0x22851f(0xe6)+(_0x518e93[_0x22851f(0x13a)]||'N/A')[_0x22851f(0x130)](0x26)+'\x20║\x0a║\x20\x20Port\x20\x20\x20\x20\x20\x20\x20\x20:\x20'+_0x539bd4['DxBDn'](String,_0x518e93['port']||0xbb8)[_0x22851f(0x130)](0x26)+'\x20║\x0a║\x20\x20Config\x20\x20\x20\x20\x20\x20:\x20'+(_0x518e93['configFile']||_0x22851f(0x134))['padEnd'](0x26)+'\x20║\x0a║\x20\x20API\x20Key\x20\x20\x20\x20\x20:\x20'+(_0x518e93[_0x22851f(0xd5)]?_0x539bd4[_0x22851f(0x102)]:_0x539bd4['tFsFd'])[_0x22851f(0x130)](0x26)+_0x22851f(0x128);console['log'](_0x309f2a);const _0x41a0ad={'event':_0x539bd4['NaTxv'],'project':_0x518e93['project'],'port':_0x518e93[_0x22851f(0xf1)],'config':_0x518e93['configFile'],'apiKeyEnabled':!!_0x518e93[_0x22851f(0xd5)]};logger['info'](_0x41a0ad),writeToFileLog({..._0x41a0ad,'level':'info','msg':_0x22851f(0xcf)+_0x518e93['project']+_0x22851f(0x10d)+_0x518e93[_0x22851f(0xf1)],'time':new Date()[_0x22851f(0xf3)]()},_0x539bd4['DrLdb']);},logServerReady=_0x57e32e=>{const _0x14cf66=a0_0x394442,_0x2c2cb7={'event':'server_ready','port':_0x57e32e[_0x14cf66(0xf1)],'module':_0x57e32e[_0x14cf66(0x157)],'healthCheck':_0x57e32e[_0x14cf66(0xe3)],'serviceInfo':_0x57e32e[_0x14cf66(0xe9)],'baseUrl':_0x57e32e['baseUrl']},_0x2ec3a8=_0x14cf66(0x123)+_0x57e32e[_0x14cf66(0xf1)];logger['info'](_0x2c2cb7,_0x2ec3a8),writeToFileLog({..._0x2c2cb7,'level':'info','msg':_0x2ec3a8,'time':new Date()['toISOString']()},_0x14cf66(0x100)),_0x57e32e[_0x14cf66(0xe3)]&&logger['info']('\x20\x20Health:\x20'+_0x57e32e['healthCheck']),_0x57e32e[_0x14cf66(0xe9)]&&logger[_0x14cf66(0x100)](_0x14cf66(0xbd)+_0x57e32e['serviceInfo']),_0x57e32e['baseUrl']&&logger[_0x14cf66(0x100)](_0x14cf66(0xd0)+_0x57e32e[_0x14cf66(0xfe)]);},logProjectLoaded=(_0x83a1d0,_0x384b95)=>{const _0x46fd13=a0_0x394442,_0x4bf569={'NCdUt':_0x46fd13(0xe0),'WwHyA':'info'},_0x3ddb83={'event':_0x4bf569['NCdUt'],'project':_0x83a1d0,'path':_0x384b95},_0x28f9dc=_0x46fd13(0xc6)+_0x83a1d0;logger[_0x46fd13(0x100)](_0x3ddb83,_0x28f9dc),writeToFileLog({..._0x3ddb83,'level':_0x4bf569['WwHyA'],'msg':_0x28f9dc,'time':new Date()[_0x46fd13(0xf3)]()},'info');},logEndpointRegistered=(_0x17243b,_0x5c10ad)=>{const _0x4b5b7c=a0_0x394442,_0x3bb2df={'wVWgz':_0x4b5b7c(0xd3),'cteAo':'debug'},_0x1d558c={'event':_0x3bb2df['wVWgz'],'endpoint':_0x17243b,'route':_0x5c10ad},_0x43e248='\x20\x20→\x20'+_0x17243b+':\x20'+_0x5c10ad;logger['debug'](_0x1d558c,_0x43e248),writeToFileLog({..._0x1d558c,'level':_0x3bb2df['cteAo'],'msg':_0x43e248,'time':new Date()[_0x4b5b7c(0xf3)]()},'debug');},logDatabaseConfig=_0x494819=>{const _0x5640a6=a0_0x394442,_0x55b4c3={'lvuFk':function(_0x24056d,_0x26f60d,_0x5b726c){return _0x24056d(_0x26f60d,_0x5b726c);},'IZFLd':'debug'},_0x5900f4={'event':'database_config','host':_0x494819['host'],'port':_0x494819['port'],'database':_0x494819[_0x5640a6(0x148)],'type':_0x494819[_0x5640a6(0x137)],'user':_0x494819[_0x5640a6(0xdd)]},_0x56a3c0=_0x5640a6(0xba)+_0x494819['type']+'://'+_0x494819[_0x5640a6(0xd4)]+':'+_0x494819[_0x5640a6(0xf1)]+'/'+_0x494819['database'];logger['debug'](_0x5900f4,_0x56a3c0),_0x55b4c3['lvuFk'](writeToFileLog,{..._0x5900f4,'level':_0x55b4c3[_0x5640a6(0xbc)],'msg':_0x56a3c0,'time':new Date()[_0x5640a6(0xf3)]()},_0x55b4c3[_0x5640a6(0xbc)]);},logRequest=(_0x5e4c09,_0x2604b3,_0x564fc3)=>{const _0x4ee765=a0_0x394442,_0x3cdd2f={'UiCjd':function(_0x490862,_0x4db12d){return _0x490862>=_0x4db12d;},'mvqBJ':_0x4ee765(0xb8),'UJgNE':function(_0x5bf8d2,_0x2b455e){return _0x5bf8d2>=_0x2b455e;},'VxdeO':function(_0x3ef7a7,_0x3a450c,_0x53c697){return _0x3ef7a7(_0x3a450c,_0x53c697);}},_0x1cc610={'event':'http_request','method':_0x5e4c09[_0x4ee765(0xc7)],'path':_0x5e4c09[_0x4ee765(0x11e)],'statusCode':_0x2604b3[_0x4ee765(0x106)],'durationMs':_0x564fc3,'ip':_0x5e4c09['ip']},_0x3517a2=_0x5e4c09['method']+'\x20'+_0x5e4c09[_0x4ee765(0x11e)]+'\x20-\x20'+_0x2604b3[_0x4ee765(0x106)]+'\x20('+_0x564fc3+_0x4ee765(0xc2);let _0x373cf5='info';if(_0x3cdd2f['UiCjd'](_0x2604b3[_0x4ee765(0x106)],0x1f4))_0x373cf5=_0x3cdd2f['mvqBJ'],logger[_0x4ee765(0xb8)](_0x1cc610,_0x3517a2);else _0x3cdd2f['UJgNE'](_0x2604b3['statusCode'],0x190)?(_0x373cf5=_0x4ee765(0x114),logger['warn'](_0x1cc610,_0x3517a2)):logger['info'](_0x1cc610,_0x3517a2);_0x3cdd2f['VxdeO'](writeToFileLog,{..._0x1cc610,'level':_0x373cf5,'msg':_0x3517a2,'time':new Date()['toISOString']()},_0x373cf5);},SENSITIVE_PARAM_PATTERNS=['password',a0_0x394442(0x160),a0_0x394442(0xf0),'token','access_token',a0_0x394442(0x11a),a0_0x394442(0xf2),a0_0x394442(0x158),a0_0x394442(0x10e),'api_key',a0_0x394442(0xcc),'credentials','pin',a0_0x394442(0x125),'private_key',a0_0x394442(0x127)],redactSensitiveParams=(_0x546a86,_0x5162da)=>{const _0x133c56=a0_0x394442,_0x4b15d3={'WjCVP':'string','daXCP':function(_0x4d6f17,_0x372b3f){return _0x4d6f17>_0x372b3f;}};if(!_0x546a86||_0x546a86[_0x133c56(0xbb)]===0x0)return _0x546a86;const _0x370c8a=_0x5162da[_0x133c56(0x14c)](),_0x26bb1b=_0x370c8a['match'](/\(([^)]+)\)\s*values/i);let _0x461201=[];_0x26bb1b&&(_0x461201=_0x26bb1b[0x1]['split'](',')[_0x133c56(0xdb)](_0x48fceb=>_0x48fceb[_0x133c56(0x132)]()[_0x133c56(0x14c)]()));const _0x577f95=_0x370c8a[_0x133c56(0xc1)](/set\s+(.+?)(?:\s+where|$)/i);if(_0x577f95){const _0xd94ee9=_0x577f95[0x1],_0x10ac6a=_0xd94ee9['match'](/(\w+)\s*=/g);_0x10ac6a&&(_0x461201=_0x10ac6a['map'](_0x3237a9=>_0x3237a9['replace'](/\s*=/,'')['trim']()[_0x133c56(0x14c)]()));}return _0x546a86['map']((_0x244656,_0x406d2b)=>{const _0x1c5abb=_0x133c56;if(_0x461201[_0x406d2b]){const _0xd0db70=_0x461201[_0x406d2b],_0x157185=SENSITIVE_PARAM_PATTERNS[_0x1c5abb(0x13e)](_0x369236=>_0xd0db70['includes'](_0x369236));if(_0x157185)return _0x1c5abb(0x147);}if(typeof _0x244656===_0x4b15d3[_0x1c5abb(0xea)]&&_0x4b15d3[_0x1c5abb(0xff)](_0x244656['length'],0x20)){if(/^[a-zA-Z0-9+/=_.-]+$/[_0x1c5abb(0x12e)](_0x244656)&&_0x244656['includes']('.'))return'[REDACTED:token]';if(/^[a-fA-F0-9]{32,}$/['test'](_0x244656))return'[REDACTED:hash]';}return _0x244656;});},parseQueryMetadata=_0x2d6881=>{const _0x1ee1f9=a0_0x394442,_0x1a94e8={'gQBNN':'INSERT','aDHUy':_0x1ee1f9(0x120),'UUejS':_0x1ee1f9(0xf8),'iAZfV':_0x1ee1f9(0xec),'IoCUa':'TRANSACTION_COMMIT','lOTLI':'TRANSACTION_ROLLBACK','OAAMJ':'DDL_CREATE','bQrQM':'ALTER'},_0x354f75=_0x2d6881['trim'](),_0x39ee3a=_0x354f75[_0x1ee1f9(0xc3)]();let _0x215be0='UNKNOWN',_0x271d0f=null;if(_0x39ee3a[_0x1ee1f9(0x156)](_0x1ee1f9(0xfd))){_0x215be0=_0x1ee1f9(0xfd);const _0x537286=_0x354f75['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x271d0f=_0x537286?_0x537286[0x1]:null;}else{if(_0x39ee3a['startsWith'](_0x1a94e8['gQBNN'])){_0x215be0='INSERT';const _0x2361c9=_0x354f75['match'](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x271d0f=_0x2361c9?_0x2361c9[0x1]:null;}else{if(_0x39ee3a['startsWith'](_0x1ee1f9(0x122))){_0x215be0=_0x1ee1f9(0x122);const _0x3fb985=_0x354f75[_0x1ee1f9(0xc1)](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x271d0f=_0x3fb985?_0x3fb985[0x1]:null;}else{if(_0x39ee3a['startsWith'](_0x1a94e8[_0x1ee1f9(0xb7)])){_0x215be0=_0x1ee1f9(0x120);const _0x4f8cdf=_0x354f75['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x271d0f=_0x4f8cdf?_0x4f8cdf[0x1]:null;}else{if(_0x39ee3a['startsWith']('BEGIN')||_0x39ee3a[_0x1ee1f9(0x156)](_0x1a94e8[_0x1ee1f9(0x116)]))_0x215be0=_0x1a94e8[_0x1ee1f9(0x10c)];else{if(_0x39ee3a['startsWith'](_0x1ee1f9(0x12b)))_0x215be0=_0x1a94e8['IoCUa'];else{if(_0x39ee3a['startsWith'](_0x1ee1f9(0x159)))_0x215be0=_0x1a94e8[_0x1ee1f9(0xdf)];else{if(_0x39ee3a['startsWith']('CREATE'))_0x215be0=_0x1a94e8['OAAMJ'];else{if(_0x39ee3a['startsWith'](_0x1a94e8['bQrQM']))_0x215be0='DDL_ALTER';else _0x39ee3a['startsWith'](_0x1ee1f9(0x117))&&(_0x215be0=_0x1ee1f9(0xf7));}}}}}}}}return{'type':_0x215be0,'table':_0x271d0f};},startQueryTimer=()=>{const _0x388707=process['hrtime']();return()=>{const _0x3b9f1c=a0_0xb25a,[_0xca49fc,_0x58745b]=process[_0x3b9f1c(0xe7)](_0x388707);return parseFloat((_0xca49fc*0x3e8+_0x58745b/0xf4240)[_0x3b9f1c(0xe5)](0x2));};},logQuery=(_0x201df6,_0x2da5db=[],_0x147d4e={})=>{const _0x25bab9=a0_0x394442,_0x2ff001={'ZNOee':_0x25bab9(0x105),'keytY':_0x25bab9(0x113),'aGaFq':function(_0x24a879,_0x4ed717){return _0x24a879(_0x4ed717);},'Rzale':'sql_query','UmPxW':function(_0x338b66,_0x3c15d4,_0x2aac4f){return _0x338b66(_0x3c15d4,_0x2aac4f);},'UEyFt':function(_0x5182c4,_0x393872){return _0x5182c4!==_0x393872;},'bsLLz':function(_0x3d685a,_0x3920ed){return _0x3d685a>_0x3920ed;},'rUreo':function(_0xd99ad9,_0x15aa86){return _0xd99ad9||_0x15aa86;},'PvdvG':_0x25bab9(0xef),'BlXHR':function(_0x3de881,_0x1401fd){return _0x3de881!==_0x1401fd;},'LhjtN':function(_0x689b8c,_0x2ed7b8){return _0x689b8c!==_0x2ed7b8;},'bMKWP':function(_0x1ba1cc,_0x37ada1){return _0x1ba1cc>_0x37ada1;},'ikcbq':function(_0x144502,_0x453764){return _0x144502===_0x453764;},'QkITH':_0x25bab9(0x100)};if(!sqlLogEnabled){logger[_0x25bab9(0x15a)]({'event':_0x2ff001['ZNOee'],'query':_0x201df6['substring'](0x0,0xc8),'paramCount':_0x2da5db['length']},'DB\x20Query');return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType=_0x2ff001[_0x25bab9(0x11b)]}=_0x147d4e,{type:_0x57d599,table:_0x14412e}=_0x2ff001[_0x25bab9(0x15d)](parseQueryMetadata,_0x201df6),_0x483075={'event':_0x2ff001['Rzale'],'queryType':_0x57d599,'table':_0x14412e,'query':_0x201df6,'paramCount':_0x2da5db['length'],'dbType':dbType};sqlLogParams&&_0x2da5db[_0x25bab9(0xbb)]>0x0&&(_0x483075[_0x25bab9(0x11f)]=_0x2ff001['UmPxW'](redactSensitiveParams,_0x2da5db,_0x201df6));_0x2ff001[_0x25bab9(0xe2)](duration,null)&&(_0x483075[_0x25bab9(0xfc)]=duration,_0x483075['isSlow']=_0x2ff001[_0x25bab9(0x13f)](duration,sqlLogSlowThreshold));rowsAffected!==null&&(_0x483075['rowsAffected']=rowsAffected);const _0x41fb13=_0x2ff001['rUreo'](_0x14412e,_0x2ff001['PvdvG']);let _0x49aadf='['+_0x57d599+']\x20'+_0x41fb13;_0x2ff001[_0x25bab9(0xcb)](duration,null)&&(_0x49aadf+='\x20('+duration+_0x25bab9(0xc2));const _0xa22f09=_0x2ff001['LhjtN'](duration,null)&&_0x2ff001['bMKWP'](duration,sqlLogSlowThreshold);let _0x12dc3d='debug';if(_0xa22f09)_0x49aadf+='\x20[SLOW]',_0x12dc3d='warn',logger[_0x25bab9(0x114)](_0x483075,_0x49aadf);else _0x2ff001[_0x25bab9(0x140)](sqlLogLevel,_0x2ff001['QkITH'])?(_0x12dc3d=_0x2ff001[_0x25bab9(0xeb)],logger['info'](_0x483075,_0x49aadf)):logger[_0x25bab9(0x15a)](_0x483075,_0x49aadf);writeToFileLog({..._0x483075,'level':_0x12dc3d,'msg':_0x49aadf,'time':new Date()[_0x25bab9(0xf3)]()},_0x12dc3d);},logTransaction=(_0x1462cc,_0x5268ea)=>{const _0x263293=a0_0x394442,_0x32d19d={'cEFVj':function(_0x452f06,_0xc83131,_0x5d95f2){return _0x452f06(_0xc83131,_0x5d95f2);},'XoNgP':'debug'},_0xdae5d5={'event':'db_transaction','status':_0x1462cc,'queryCount':_0x5268ea},_0xbdafd3='Transaction\x20'+_0x1462cc;logger['debug'](_0xdae5d5,_0xbdafd3),_0x32d19d['cEFVj'](writeToFileLog,{..._0xdae5d5,'level':_0x32d19d['XoNgP'],'msg':_0xbdafd3,'time':new Date()[_0x263293(0xf3)]()},_0x263293(0x15a));},redactObject=_0x52558=>{const _0x543549=a0_0x394442,_0x5cc62a={'weeMb':_0x543549(0x160),'Sekad':_0x543549(0xf0),'IeeDS':'apikey','wEvsl':'authorization','xGGUb':'cvv','Lxqvj':_0x543549(0x14d),'cogKa':'privatekey','TOUbj':function(_0x5f4b02,_0xd47dc0){return _0x5f4b02===_0xd47dc0;},'pjzoH':_0x543549(0xbe),'Jwijm':function(_0x4ee2ce,_0x3bde7c){return _0x4ee2ce!==_0x3bde7c;},'JKJov':function(_0x46f9d1,_0x460242){return _0x46f9d1(_0x460242);}};if(!_0x52558||typeof _0x52558!=='object')return _0x52558;const _0x259a3a=['password',_0x5cc62a['weeMb'],_0x5cc62a['Sekad'],_0x543549(0x14e),'secret',_0x5cc62a[_0x543549(0x131)],_0x543549(0x143),_0x5cc62a['wEvsl'],_0x543549(0x144),_0x543549(0x14a),_0x5cc62a[_0x543549(0x10b)],'ssn','pin',_0x5cc62a['Lxqvj'],_0x5cc62a['cogKa'],'refresh_token','access_token'],_0x29e39b=Array['isArray'](_0x52558)?[..._0x52558]:{..._0x52558};for(const _0x3497ec of Object['keys'](_0x29e39b)){const _0x5035ad=_0x3497ec['toLowerCase']();if(_0x259a3a['some'](_0x58a497=>_0x5035ad['includes'](_0x58a497)))_0x29e39b[_0x3497ec]='[REDACTED]';else _0x5cc62a['TOUbj'](typeof _0x29e39b[_0x3497ec],_0x5cc62a[_0x543549(0x10a)])&&_0x5cc62a['Jwijm'](_0x29e39b[_0x3497ec],null)&&(_0x29e39b[_0x3497ec]=_0x5cc62a['JKJov'](redactObject,_0x29e39b[_0x3497ec]));}return _0x29e39b;},logError=(_0x4d748e,_0x4a93fc={},_0x449924=null)=>{const _0x39a7f1=a0_0x394442,_0x5a4536={'tOXkE':'error','VnXiB':_0x39a7f1(0xca),'UkrFa':function(_0x3016f9,_0x4bb006,_0x1ccccf){return _0x3016f9(_0x4bb006,_0x1ccccf);}},_0x256f5e={'event':_0x5a4536[_0x39a7f1(0x138)],'errorName':_0x4d748e[_0x39a7f1(0xd8)]||_0x5a4536['VnXiB'],'errorMessage':_0x4d748e['message'],'errorCode':_0x4d748e[_0x39a7f1(0xfa)]||null,'stack':_0x4d748e['stack'],..._0x4a93fc},_0x530fde=_0x449924||_0x39a7f1(0x13c)+_0x4d748e[_0x39a7f1(0x142)];logger[_0x39a7f1(0xb8)](_0x256f5e,_0x530fde),_0x5a4536['UkrFa'](writeToFileLog,{..._0x256f5e,'level':_0x39a7f1(0xb8),'msg':_0x530fde,'time':new Date()['toISOString']()},_0x39a7f1(0xb8));},logFatalError=(_0xd834e1,_0x1df4e8={},_0x343d31=null)=>{const _0x3ddc15=a0_0x394442,_0x215109={'ruAnh':_0x3ddc15(0x14f),'dkLZj':_0x3ddc15(0xca),'WlZEc':_0x3ddc15(0x163),'XcJRz':function(_0x3101ed,_0x4946fb,_0xbe63e1){return _0x3101ed(_0x4946fb,_0xbe63e1);},'IZiYk':_0x3ddc15(0xb8)},_0x3531c7={'event':_0x215109['ruAnh'],'errorName':_0xd834e1[_0x3ddc15(0xd8)]||_0x215109['dkLZj'],'errorMessage':_0xd834e1[_0x3ddc15(0x142)],'errorCode':_0xd834e1['code']||null,'stack':_0xd834e1[_0x3ddc15(0x12c)],'severity':_0x215109[_0x3ddc15(0xbf)],..._0x1df4e8},_0x3eef92=_0x343d31||'FATAL:\x20'+_0xd834e1['message'];logger['fatal'](_0x3531c7,_0x3eef92),_0x215109['XcJRz'](writeToFileLog,{..._0x3531c7,'level':_0x3ddc15(0x12f),'msg':_0x3eef92,'time':new Date()[_0x3ddc15(0xf3)]()},_0x215109['IZiYk']);},logHttpError=(_0x1f9dbf,_0x25e374,_0x301885={})=>{const _0x1fc401=a0_0x394442,_0x42b01c={'cqKUY':'http_error','Rlkro':_0x1fc401(0x14b),'tUAJi':'x-request-id','pNVXB':function(_0xadc965,_0x5d1d7f){return _0xadc965>=_0x5d1d7f;},'uUZxN':function(_0x3805e5,_0x186834){return _0x3805e5>=_0x186834;},'ceuzf':'error','CXuJN':'warn'},_0x44e127={'event':_0x42b01c['cqKUY'],'errorName':_0x1f9dbf[_0x1fc401(0xd8)]||_0x1fc401(0xca),'errorMessage':_0x1f9dbf[_0x1fc401(0x142)],'errorCode':_0x1f9dbf['code']||_0x1f9dbf['statusCode']||0x1f4,'stack':_0x1f9dbf['stack'],'method':_0x25e374?.[_0x1fc401(0xc7)],'url':_0x25e374?.[_0x1fc401(0xce)]||_0x25e374?.['originalUrl'],'path':_0x25e374?.[_0x1fc401(0x11e)],'ip':_0x25e374?.['ip']||_0x25e374?.['connection']?.[_0x1fc401(0x11d)],'userAgent':_0x25e374?.['get']?.(_0x42b01c['Rlkro']),'requestId':_0x25e374?.['id']||_0x25e374?.[_0x1fc401(0x145)]?.[_0x42b01c['tUAJi']],'body':_0x25e374?.[_0x1fc401(0x153)]?redactObject(_0x25e374[_0x1fc401(0x153)]):undefined,'query':_0x25e374?.[_0x1fc401(0x115)],..._0x301885},_0x1f7729=_0x1f9dbf[_0x1fc401(0x106)]||_0x1f9dbf[_0x1fc401(0x15b)]||0x1f4,_0x477a3b='HTTP\x20'+_0x1f7729+':\x20'+_0x1f9dbf['message'];_0x42b01c[_0x1fc401(0xee)](_0x1f7729,0x1f4)?logger[_0x1fc401(0xb8)](_0x44e127,_0x477a3b):logger[_0x1fc401(0x114)](_0x44e127,_0x477a3b),writeToFileLog({..._0x44e127,'level':_0x42b01c[_0x1fc401(0x155)](_0x1f7729,0x1f4)?_0x42b01c[_0x1fc401(0x108)]:_0x42b01c[_0x1fc401(0x103)],'msg':_0x477a3b,'time':new Date()['toISOString']()},_0x1f7729>=0x1f4?'error':'warn');},logUncaughtError=(_0x291b64,_0x1e30de)=>{const _0x1ba5ba=a0_0x394442,_0xfede76={'FHVNF':function(_0xf5620b,_0x52dcff){return _0xf5620b(_0x52dcff);},'pjBjS':function(_0x3db789,_0x37e9aa,_0x400d5e){return _0x3db789(_0x37e9aa,_0x400d5e);},'NoECB':_0x1ba5ba(0x12f)},_0x30b308={'event':_0x291b64,'errorName':_0x1e30de?.['name']||'Error','errorMessage':_0x1e30de?.['message']||_0xfede76[_0x1ba5ba(0xd1)](String,_0x1e30de),'errorCode':_0x1e30de?.['code']||null,'stack':_0x1e30de?.['stack'],'severity':_0x1ba5ba(0x163),'processId':process['pid'],'memoryUsage':process['memoryUsage'](),'uptime':process[_0x1ba5ba(0x150)]()},_0x3b1758='['+_0x291b64[_0x1ba5ba(0xc3)]()+']\x20'+(_0x1e30de?.[_0x1ba5ba(0x142)]||_0x1e30de);logger[_0x1ba5ba(0x12f)](_0x30b308,_0x3b1758),_0xfede76[_0x1ba5ba(0x161)](writeToFileLog,{..._0x30b308,'level':_0xfede76['NoECB'],'msg':_0x3b1758,'time':new Date()[_0x1ba5ba(0xf3)]()},_0x1ba5ba(0xb8));},setupGlobalErrorHandlers=()=>{const _0x54f1dd=a0_0x394442,_0x4a6096={'dkmAp':function(_0x4ef91a,_0x247d1e,_0x5a546c){return _0x4ef91a(_0x247d1e,_0x5a546c);},'hjBKm':function(_0x1d5fe1,_0x26654e){return _0x1d5fe1(_0x26654e);},'reyaE':function(_0x572bba,_0x3f29b,_0x15ab08){return _0x572bba(_0x3f29b,_0x15ab08);},'lqtWY':'unhandledRejection','sfTLI':'global_error_handlers_setup'};process['on'](_0x54f1dd(0x13b),_0x56f46a=>{const _0x552e42=_0x54f1dd;logUncaughtError(_0x552e42(0x13b),_0x56f46a),_0x4a6096['dkmAp'](setTimeout,()=>{process['exit'](0x1);},0x3e8);}),process['on'](_0x54f1dd(0xf6),(_0x4ead9d,_0xdbf83e)=>{const _0x19c85d=_0x54f1dd,_0x535af8=_0x4ead9d instanceof Error?_0x4ead9d:new Error(_0x4a6096['hjBKm'](String,_0x4ead9d));_0x4a6096[_0x19c85d(0x109)](logUncaughtError,_0x4a6096[_0x19c85d(0x124)],_0x535af8);}),process['on'](_0x54f1dd(0xda),_0x474791=>{const _0x44eb5f=_0x54f1dd;logger['warn']({'event':_0x44eb5f(0x135),'name':_0x474791[_0x44eb5f(0xd8)],'message':_0x474791[_0x44eb5f(0x142)],'stack':_0x474791['stack']},'Process\x20Warning:\x20'+_0x474791['message']);});const _0x368790={'event':_0x4a6096['sfTLI']},_0xde5505='Global\x20error\x20handlers\x20initialized';logger[_0x54f1dd(0x100)](_0x368790,_0xde5505),writeToFileLog({..._0x368790,'level':_0x54f1dd(0x100),'msg':_0xde5505,'time':new Date()[_0x54f1dd(0xf3)]()},_0x54f1dd(0x100));},createErrorHandlerMiddleware=()=>{const _0x81a015=a0_0x394442,_0x167a49={'TWadg':_0x81a015(0xe4)};return(_0x49b4aa,_0x592044,_0xc8767b,_0x216c45)=>{const _0x56d005=_0x81a015;logHttpError(_0x49b4aa,_0x592044);const _0x2f8e47=_0x49b4aa[_0x56d005(0x106)]||_0x49b4aa[_0x56d005(0x15b)]||0x1f4;_0xc8767b[_0x56d005(0x15b)](_0x2f8e47)[_0x56d005(0x149)]({'success':![],'error':_0x2f8e47>=0x1f4?_0x167a49[_0x56d005(0x139)]:_0x49b4aa['message'],'requestId':_0x592044['id']||_0x592044['headers']?.['x-request-id']||null});};};module['exports']={'logger':logger,'createRequestLogger':createRequestLogger,'logServerStart':logServerStart,'logServerReady':logServerReady,'logProjectLoaded':logProjectLoaded,'logEndpointRegistered':logEndpointRegistered,'logDatabaseConfig':logDatabaseConfig,'logRequest':logRequest,'logQuery':logQuery,'logTransaction':logTransaction,'startQueryTimer':startQueryTimer,'parseQueryMetadata':parseQueryMetadata,'redactSensitiveParams':redactSensitiveParams,'initFileLogging':initFileLogging,'logError':logError,'logFatalError':logFatalError,'logHttpError':logHttpError,'logUncaughtError':logUncaughtError,'setupGlobalErrorHandlers':setupGlobalErrorHandlers,'createErrorHandlerMiddleware':createErrorHandlerMiddleware,'redactObject':redactObject,'SQL_LOG_CONFIG':{'enabled':sqlLogEnabled,'level':sqlLogLevel,'logParams':sqlLogParams,'slowThreshold':sqlLogSlowThreshold},'FILE_LOG_CONFIG':{'enabled':logToFile,'directory':logDir,'serviceName':serviceName}};
1
+ const a0_0x5c80d2=a0_0x4f21;function a0_0x8952(){const _0x5bfc32=['zw52AxjVBM1LBNq','y3z2','ChjPDMf0zv9RzxK','Cg9YDa','oI8V','mtqWzvnSzfPN','Ag9ZDa','ChjVAMvJDf9SB2fKzwq','zLLez1K','Bwv0Ag9K','EKDRD2G','zMf0ywW','zhjjsem','zKz6ruS','tK9erv9ftLy','mtmYAw9gt0rQ','CgLK','D2fYBG','rgf0ywjHC2u6ia','ChjVAMvJDa','zxjYB3i','wLzAt2e','v21TChG','BMfTzq','mtiXodyWsfv5r3v3','Ahr0Cf9Yzxf1zxn0','Bwf0y2G','C2jvC04','q0nPAfa','re5fy2e','C0X0y3a','y3jLzgL0x2nHCMq','yxbPx2TLEq','rvLuDg8','C2vJCMv0','w1jfrefdvevexq','n3HLCwn3vW','y29UzMLNrMLSzq','zxjYB3iUBg9N','Bw9KDwXL','AgvHzgvYCW','DLnmte8','mJq3odaZvNH2wLPv','iokvKqRILzRILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILz0','DgvZDa','uePUzeW','zgv2zwXVCg1LBNq','rermx0fmvevs','Bg9N','ChjVy2vZC193yxjUAw5N','Aw5JBhvKzxm','D3jPDgu','rxjYB3i','CgLUBY1WCMv0DhK','rKfuquW6ia','y3jLyxrLv3jPDgvtDhjLyw0','C2vYDMvYx3jLywr5','q3f5sgm','te9hx1rpx0zjteu','Dw5JyxvNAhrfEgnLChrPB24','C3rHCNrZv2L0Aa','C3fSx3f1zxj5','yM9KEq','C3rHDhvZq29Kzq','B3jPz2LUywXvCMW','wNr5zuK','zw52','C29Tzq','E21Zz30','icbjBMzVoIaGia','C3bSAxq','sfDcsgO','rKrxDe0','mZa0mtCZEwPntgnz','rKrKCvG','CMXHELu','mJm0mdeYnKnltgvdEq','Aw1sB2e','sfruuca','icdIHPiG','u0vsvKLdrv9oqu1f','zxHPDa','DxnLCI1Hz2vUDa','suv1B2q','Aw5MBW','C3rYAw5NAwz5','ywnJzxnZx3rVA2vU','yMfZzvvYBa','zfnwuLi','iokvKqRILzeGifbVCNqGicaGicaGidOG','D2fYBMLUzW','CMvZDgzVCMDL','te9hx0rjuG','z2v0sgvHzgvYCW','t1L2DuS','yxbPx3nLy3jLDa','Dg9ju09tDhjPBMC','q1jjveLdquW','y2HPBgq','AxnVvgLTzq','lI9SB2DZ','r2PLEui','zgjFCxvLCNK','iokvKqRILzeGienVBMzPzYaGicaGidOG','icbizwfSDgG6ia','sgThseS','ufnfAK4','u1rbuLqGvfjbtLnbq1rjt04','ChDK','C3rYAw5N','r0LhAeO','v0TNwem','Dg9gAxHLza','uK9mtejbq0S','vfjbtLnbq1rjt05FqKvhsu4','u05kvNa','BLzgy28','zgvIDwC','ChjPDMf0zwTLEq','mJu4mdiWCvrrCu1w','ifTtte9xxq','mZe3otqYnezRDhvKuG','Dg9mB3DLCKnHC2u','A2v5CW','AeL2D0e','Cg9ZDgDYzxnXBa','u2vYDMvYihn0yxj0Aw5NoIa','r0HZywS','q09ntuLu','Ec1Yzxf1zxn0lwLK','B3rOuei','DxjS','ic0G','revmrvrf','wMfey1y','y3jLzgvUDgLHBhm','yKPWD1i','qunusvzf','C3rKvgLTzuz1BMn0Aw9UCW','zgf0ywjHC2u','BxmP','m2DUy3DmDW','w1jfrefdveveoMHHC2HD','Dg9Rzw4','zxDiENm','rgvMyxvSDa','w1jfrefdveveoNrVA2vUxq','tK9uiefdveLwrq','CMvXlMHLywrLCNmUyxv0Ag9YAxPHDgLVBG','y29Kzq','C3nU','yxv0Ag9YAxPHDgLVBG','icbvuKW6icaGia','C3rKu2vYAwfSAxPLCNm','DhjPBq','B3rW','zw5KCg9PBNrFCMvNAxn0zxjLza','CgLU','AKvRse0','BwvTB3j5vxnHz2u','zgf0ywjHC2vFy29UzMLN','vgfVBMO','u1fmx0Xpr19qqvjbtvm','DhLWzq','w09lxsbtzxj2zxiGCMvHzhKGB24GCg9YDca','s3H6vwe','C3rHDhvZ','ngrSAMLkwG','BwfW','CMvMCMvZAf90B2TLBG','BwvZC2fNzq','C3rHy2S','Cgf0Aa','z2XVyMfSx2vYCM9Yx2HHBMrSzxjZx3nLDhvW','CgfZC3DK','Dw5Oyw5KBgvKuMvQzwn0Aw9U','BwrZrxy','CgfKrw5K','mJmZmtK4vwnyANzS','DMjtDw4','zxHPC3rZu3LUyW','DNfAtw0'];a0_0x8952=function(){return _0x5bfc32;};return a0_0x8952();}(function(_0x8376e6,_0x53e99b){const _0x33334a=a0_0x4f21,_0x2ab90d=_0x8376e6();while(!![]){try{const _0x4db9d7=parseInt(_0x33334a(0x1ca))/0x1*(-parseInt(_0x33334a(0x1ef))/0x2)+-parseInt(_0x33334a(0x167))/0x3*(-parseInt(_0x33334a(0x1e4))/0x4)+-parseInt(_0x33334a(0x1b4))/0x5+parseInt(_0x33334a(0x189))/0x6*(parseInt(_0x33334a(0x161))/0x7)+-parseInt(_0x33334a(0x1b6))/0x8+-parseInt(_0x33334a(0x186))/0x9*(-parseInt(_0x33334a(0x1f8))/0xa)+parseInt(_0x33334a(0x14c))/0xb*(parseInt(_0x33334a(0x155))/0xc);if(_0x4db9d7===_0x53e99b)break;else _0x2ab90d['push'](_0x2ab90d['shift']());}catch(_0x3f5407){_0x2ab90d['push'](_0x2ab90d['shift']());}}}(a0_0x8952,0x41a0b));const pino=require('pino'),fs=require('fs'),path=require(a0_0x5c80d2(0x1e9));let logToFile=![],logDir='./logs',serviceName='restforge',sqlLogEnabled=![],sqlLogLevel='debug',sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;const prettyPrintOptions={'colorize':!![],'translateTime':'SYS:HH:MM:ss','ignore':'pid,hostname,service,version,env,event,module,port,config,apiKeyEnabled,path,workingDir,isPkg,isNodeScript,file,email,type,cors,logging,apiKey,count,endpoint,route','singleLine':![],'levelFirst':!![],'messageFormat':a0_0x5c80d2(0x181),'customColors':'info:blue,warn:yellow,error:red,debug:gray','hideObject':!![]},isDevelopment=process[a0_0x5c80d2(0x17f)]['NODE_ENV']!=='production',logLevel=process['env']['LOG_LEVEL']||'info';let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':a0_0x5c80d2(0x172),'options':prettyPrintOptions}:undefined,'base':{'service':a0_0x5c80d2(0x198),'version':process['env']['APP_VERSION']||'1.0.5','env':process[a0_0x5c80d2(0x17f)][a0_0x5c80d2(0x201)]||a0_0x5c80d2(0x16b)},'timestamp':pino[a0_0x5c80d2(0x1c7)][a0_0x5c80d2(0x1a0)],'redact':{'paths':[a0_0x5c80d2(0x1d1),'req.headers[\x22x-api-key\x22]','password','token','apiKey','DB_PASSWORD','JWT_SECRET'],'censor':'[REDACTED]'},'serializers':{'req':_0x12c591=>({'id':_0x12c591['id'],'method':_0x12c591[a0_0x5c80d2(0x1fc)],'url':_0x12c591['url'],'path':_0x12c591[a0_0x5c80d2(0x1e9)],'remoteAddress':_0x12c591['ip']||_0x12c591['connection']?.['remoteAddress']}),'res':_0x33fa40=>({'statusCode':_0x33fa40[a0_0x5c80d2(0x17c)],'headers':_0x33fa40[a0_0x5c80d2(0x19a)]?.()}),'err':pino[a0_0x5c80d2(0x1d6)]['err']}});function initFileLogging(){const _0xcebd1a=a0_0x5c80d2,_0x4d9d55={'WKgXC':'true','IEuod':_0xcebd1a(0x1a1),'GIGhJ':_0xcebd1a(0x198),'DAtIO':'false','dSVRR':_0xcebd1a(0x163),'XkrKM':'file_logging_enabled','ZaDcV':'app.log'};if(fileLoggingInitialized)return;logToFile=process['env'][_0xcebd1a(0x177)]===_0x4d9d55[_0xcebd1a(0x1ac)],logDir=process[_0xcebd1a(0x17f)][_0xcebd1a(0x199)]||_0x4d9d55[_0xcebd1a(0x190)],serviceName=process[_0xcebd1a(0x17f)][_0xcebd1a(0x18d)]||_0x4d9d55[_0xcebd1a(0x1ab)],sqlLogEnabled=process['env']['SQL_LOG_ENABLED']===_0x4d9d55['WKgXC'],sqlLogLevel=process['env']['SQL_LOG_LEVEL']||'debug',sqlLogParams=process['env'][_0xcebd1a(0x1df)]!==_0x4d9d55['DAtIO'],sqlLogSlowThreshold=parseInt(process['env']['SQL_LOG_SLOW_THRESHOLD'])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x37d030=path['resolve'](process['cwd'](),logDir);try{!fs[_0xcebd1a(0x1f1)](_0x37d030)&&fs['mkdirSync'](_0x37d030,{'recursive':!![]});}catch(_0x2d1b1e){console['error']('Failed\x20to\x20create\x20log\x20directory\x20'+_0x37d030+':',_0x2d1b1e['message']),fileLoggingInitialized=!![];return;}const _0x24d546=path['join'](_0x37d030,'app.log'),_0x4106d6=path['join'](_0x37d030,_0x4d9d55[_0xcebd1a(0x195)]);try{appLogStream=fs[_0xcebd1a(0x174)](_0x24d546,{'flags':'a'}),errorLogStream=fs['createWriteStream'](_0x4106d6,{'flags':'a'}),fileLoggingInitialized=!![];const _0xb2a56d={'event':_0x4d9d55['XkrKM'],'logDir':_0x37d030,'files':[_0x4d9d55[_0xcebd1a(0x1c3)],_0x4d9d55['dSVRR']]},_0x53653d='File\x20logging\x20enabled:\x20'+_0x37d030;logger[_0xcebd1a(0x191)](_0xb2a56d,_0x53653d),writeToFileLog({..._0xb2a56d,'level':_0xcebd1a(0x191),'msg':_0x53653d,'time':new Date()['toISOString']()},_0xcebd1a(0x191));}catch(_0x1f56be){console['error']('Failed\x20to\x20create\x20log\x20streams:',_0x1f56be['message']),fileLoggingInitialized=!![];}}function a0_0x4f21(_0x38e102,_0x1743ab){_0x38e102=_0x38e102-0x14c;const _0x89526e=a0_0x8952();let _0x4f21d3=_0x89526e[_0x38e102];if(a0_0x4f21['lxiaWC']===undefined){var _0x91f11d=function(_0x129847){const _0x4eff57='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x29241b='',_0x40564d='';for(let _0x351d9f=0x0,_0x3379cc,_0x1ecef4,_0x5f304c=0x0;_0x1ecef4=_0x129847['charAt'](_0x5f304c++);~_0x1ecef4&&(_0x3379cc=_0x351d9f%0x4?_0x3379cc*0x40+_0x1ecef4:_0x1ecef4,_0x351d9f++%0x4)?_0x29241b+=String['fromCharCode'](0xff&_0x3379cc>>(-0x2*_0x351d9f&0x6)):0x0){_0x1ecef4=_0x4eff57['indexOf'](_0x1ecef4);}for(let _0x1f1cc8=0x0,_0x522d5c=_0x29241b['length'];_0x1f1cc8<_0x522d5c;_0x1f1cc8++){_0x40564d+='%'+('00'+_0x29241b['charCodeAt'](_0x1f1cc8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x40564d);};a0_0x4f21['OgIZvk']=_0x91f11d,a0_0x4f21['HKMFBD']={},a0_0x4f21['lxiaWC']=!![];}const _0xd460a=_0x89526e[0x0],_0x12df88=_0x38e102+_0xd460a,_0x1033e2=a0_0x4f21['HKMFBD'][_0x12df88];return!_0x1033e2?(_0x4f21d3=a0_0x4f21['OgIZvk'](_0x4f21d3),a0_0x4f21['HKMFBD'][_0x12df88]=_0x4f21d3):_0x4f21d3=_0x1033e2,_0x4f21d3;}function writeToFileLog(_0xae237d,_0x1c5770){const _0x3cb687=a0_0x5c80d2,_0x881661={'Taonj':function(_0x5192c8,_0x2ab49d){return _0x5192c8===_0x2ab49d;}};if(!logToFile||!appLogStream)return;const _0x5bbe5f={'service':serviceName,..._0xae237d},_0x1a3411=JSON[_0x3cb687(0x192)](_0x5bbe5f)+'\x0a';appLogStream['write'](_0x1a3411),(_0x881661[_0x3cb687(0x1de)](_0x1c5770,_0x3cb687(0x151))||_0x881661['Taonj'](_0x1c5770,'fatal'))&&(errorLogStream&&errorLogStream[_0x3cb687(0x170)](_0x1a3411));}const createRequestLogger=(_0x42dfda={})=>{const _0x139bcf=a0_0x5c80d2;return logger[_0x139bcf(0x19f)](_0x42dfda);},logServerStart=_0x32a307=>{const _0x3e7b00=a0_0x5c80d2,_0x9670e2={'imRoa':'N/A','vbSun':'server_starting','YlGrj':'info'},_0x669570='\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'+(_0x32a307[_0x3e7b00(0x1f3)]||'Node.js')['padEnd'](0x26)+'\x20║\x0a║\x20\x20Project\x20\x20\x20\x20\x20:\x20'+(_0x32a307[_0x3e7b00(0x150)]||_0x9670e2[_0x3e7b00(0x18a)])[_0x3e7b00(0x1ee)](0x26)+_0x3e7b00(0x196)+String(_0x32a307[_0x3e7b00(0x1f6)]||0xbb8)['padEnd'](0x26)+_0x3e7b00(0x1a4)+(_0x32a307['configFile']||_0x3e7b00(0x1ce))['padEnd'](0x26)+'\x20║\x0a║\x20\x20API\x20Key\x20\x20\x20\x20\x20:\x20'+(_0x32a307['apiKey']?_0x3e7b00(0x1c6):_0x3e7b00(0x1d0))[_0x3e7b00(0x1ee)](0x26)+_0x3e7b00(0x168);console[_0x3e7b00(0x16d)](_0x669570);const _0xeeae2f={'event':_0x9670e2[_0x3e7b00(0x1f0)],'project':_0x32a307[_0x3e7b00(0x150)],'port':_0x32a307[_0x3e7b00(0x1f6)],'config':_0x32a307[_0x3e7b00(0x162)],'apiKeyEnabled':!!_0x32a307['apiKey']};logger['info'](_0xeeae2f),writeToFileLog({..._0xeeae2f,'level':_0x9670e2['YlGrj'],'msg':_0x3e7b00(0x1bb)+_0x32a307[_0x3e7b00(0x150)]+'\x20on\x20port\x20'+_0x32a307['port'],'time':new Date()[_0x3e7b00(0x19d)]()},'info');},logServerReady=_0x1eb962=>{const _0x2b9e04=a0_0x5c80d2,_0x8e80a0={'othPB':_0x2b9e04(0x175),'IWxIp':_0x2b9e04(0x191)},_0x7c6868={'event':_0x8e80a0[_0x2b9e04(0x1bf)],'port':_0x1eb962['port'],'module':_0x1eb962[_0x2b9e04(0x164)],'healthCheck':_0x1eb962['healthCheck'],'serviceInfo':_0x1eb962['serviceInfo'],'baseUrl':_0x1eb962['baseUrl']},_0xea5e44=_0x2b9e04(0x1e1)+_0x1eb962['port'];logger[_0x2b9e04(0x191)](_0x7c6868,_0xea5e44),writeToFileLog({..._0x7c6868,'level':_0x8e80a0['IWxIp'],'msg':_0xea5e44,'time':new Date()['toISOString']()},_0x8e80a0['IWxIp']),_0x1eb962['healthCheck']&&logger['info'](_0x2b9e04(0x1a5)+_0x1eb962['healthCheck']),_0x1eb962['serviceInfo']&&logger['info'](_0x2b9e04(0x182)+_0x1eb962['serviceInfo']),_0x1eb962[_0x2b9e04(0x194)]&&logger['info'](_0x2b9e04(0x1d5)+_0x1eb962[_0x2b9e04(0x194)]);},logProjectLoaded=(_0x3c43f7,_0x27ec56)=>{const _0x3bbcc4=a0_0x5c80d2,_0x2bad7f={'uBgTk':_0x3bbcc4(0x1fa)},_0x2fc0b5={'event':_0x2bad7f['uBgTk'],'project':_0x3c43f7,'path':_0x27ec56},_0x37c2b4='[OK]\x20Project\x20loaded:\x20'+_0x3c43f7;logger[_0x3bbcc4(0x191)](_0x2fc0b5,_0x37c2b4),writeToFileLog({..._0x2fc0b5,'level':'info','msg':_0x37c2b4,'time':new Date()[_0x3bbcc4(0x19d)]()},'info');},logEndpointRegistered=(_0x4fbbf3,_0x3f972e)=>{const _0x41761a=a0_0x5c80d2,_0x1fec3e={'abpLx':_0x41761a(0x1d9),'QIQDo':_0x41761a(0x1b2)},_0x51e1c1={'event':_0x1fec3e['abpLx'],'endpoint':_0x4fbbf3,'route':_0x3f972e},_0x2a8a54=_0x41761a(0x18c)+_0x4fbbf3+':\x20'+_0x3f972e;logger[_0x41761a(0x1b2)](_0x51e1c1,_0x2a8a54),writeToFileLog({..._0x51e1c1,'level':_0x41761a(0x1b2),'msg':_0x2a8a54,'time':new Date()['toISOString']()},_0x1fec3e['QIQDo']);},logDatabaseConfig=_0x46994c=>{const _0x49096f=a0_0x5c80d2,_0x1106fc={'kKVaO':function(_0x5cc1f2,_0xc50791,_0x3d5ec9){return _0x5cc1f2(_0xc50791,_0x3d5ec9);},'fYDgY':_0x49096f(0x1b2)},_0x316d2d={'event':_0x49096f(0x1dd),'host':_0x46994c[_0x49096f(0x1f9)],'port':_0x46994c[_0x49096f(0x1f6)],'database':_0x46994c[_0x49096f(0x1c8)],'type':_0x46994c[_0x49096f(0x1e0)],'user':_0x46994c['user']},_0x45b2f2=_0x49096f(0x14f)+_0x46994c['type']+_0x49096f(0x1f7)+_0x46994c['host']+':'+_0x46994c['port']+'/'+_0x46994c['database'];logger['debug'](_0x316d2d,_0x45b2f2),_0x1106fc['kKVaO'](writeToFileLog,{..._0x316d2d,'level':_0x1106fc[_0x49096f(0x1fb)],'msg':_0x45b2f2,'time':new Date()[_0x49096f(0x19d)]()},_0x1106fc['fYDgY']);},logRequest=(_0x33071a,_0x1342f4,_0x4c6cf1)=>{const _0x51628d=a0_0x5c80d2,_0x4c7baf={'IzonD':_0x51628d(0x156),'HxyCU':_0x51628d(0x191),'nVFco':function(_0x2261b7,_0x65a39b){return _0x2261b7>=_0x65a39b;},'xGGho':'error'},_0x16e77c={'event':_0x4c7baf['IzonD'],'method':_0x33071a['method'],'path':_0x33071a['path'],'statusCode':_0x1342f4[_0x51628d(0x17c)],'durationMs':_0x4c6cf1,'ip':_0x33071a['ip']},_0x3f44ff=_0x33071a[_0x51628d(0x1fc)]+'\x20'+_0x33071a['path']+_0x51628d(0x1c1)+_0x1342f4[_0x51628d(0x17c)]+'\x20('+_0x4c6cf1+_0x51628d(0x1c9);let _0x2fc300=_0x4c7baf['HxyCU'];if(_0x4c7baf[_0x51628d(0x1b1)](_0x1342f4['statusCode'],0x1f4))_0x2fc300=_0x4c7baf['xGGho'],logger['error'](_0x16e77c,_0x3f44ff);else _0x4c7baf['nVFco'](_0x1342f4[_0x51628d(0x17c)],0x190)?(_0x2fc300=_0x51628d(0x14e),logger['warn'](_0x16e77c,_0x3f44ff)):logger['info'](_0x16e77c,_0x3f44ff);writeToFileLog({..._0x16e77c,'level':_0x2fc300,'msg':_0x3f44ff,'time':new Date()[_0x51628d(0x19d)]()},_0x2fc300);},SENSITIVE_PARAM_PATTERNS=['password','passwd',a0_0x5c80d2(0x1a9),a0_0x5c80d2(0x1cc),a0_0x5c80d2(0x193),a0_0x5c80d2(0x1e6),a0_0x5c80d2(0x15f),a0_0x5c80d2(0x19c),'apikey','api_key','credential',a0_0x5c80d2(0x1c4),'pin',a0_0x5c80d2(0x1d8),a0_0x5c80d2(0x1f5),'privatekey'],redactSensitiveParams=(_0x4d3992,_0x2e44fa)=>{const _0x186b79=a0_0x5c80d2,_0x10a385={'JfsrC':function(_0x49744b,_0x4af835){return _0x49744b>_0x4af835;},'BXrrD':function(_0xa9e49a,_0x1302ab){return _0xa9e49a===_0x1302ab;}};if(!_0x4d3992||_0x10a385['BXrrD'](_0x4d3992['length'],0x0))return _0x4d3992;const _0x3bbbab=_0x2e44fa['toLowerCase'](),_0x4eafcc=_0x3bbbab['match'](/\(([^)]+)\)\s*values/i);let _0x389379=[];_0x4eafcc&&(_0x389379=_0x4eafcc[0x1][_0x186b79(0x183)](',')['map'](_0x398b3f=>_0x398b3f[_0x186b79(0x1d7)]()['toLowerCase']()));const _0x5767ac=_0x3bbbab[_0x186b79(0x157)](/set\s+(.+?)(?:\s+where|$)/i);if(_0x5767ac){const _0x21ce83=_0x5767ac[0x1],_0x3f4eb7=_0x21ce83['match'](/(\w+)\s*=/g);_0x3f4eb7&&(_0x389379=_0x3f4eb7[_0x186b79(0x1e5)](_0x56b325=>_0x56b325['replace'](/\s*=/,'')['trim']()['toLowerCase']()));}return _0x4d3992[_0x186b79(0x1e5)]((_0x19f9b1,_0x346052)=>{const _0x504751=_0x186b79;if(_0x389379[_0x346052]){const _0x2d4b0f=_0x389379[_0x346052],_0x4c5cc1=SENSITIVE_PARAM_PATTERNS[_0x504751(0x180)](_0x588054=>_0x2d4b0f['includes'](_0x588054));if(_0x4c5cc1)return _0x504751(0x160);}if(typeof _0x19f9b1===_0x504751(0x1aa)&&_0x10a385['JfsrC'](_0x19f9b1['length'],0x20)){if(/^[a-zA-Z0-9+/=_.-]+$/['test'](_0x19f9b1)&&_0x19f9b1['includes']('.'))return _0x504751(0x1cf);if(/^[a-fA-F0-9]{32,}$/[_0x504751(0x169)](_0x19f9b1))return _0x504751(0x1cb);}return _0x19f9b1;});},parseQueryMetadata=_0x60fb32=>{const _0x511f18=a0_0x5c80d2,_0x1abb7b={'YpQYB':'SELECT','FDWtM':'INSERT','HTWtY':'UPDATE','OYvuK':_0x511f18(0x1c2),'PSEjN':_0x511f18(0x1a8),'HkGHK':_0x511f18(0x1bd),'lGmqv':'TRANSACTION_COMMIT','zGkwh':_0x511f18(0x1ae),'fHorS':'TRANSACTION_ROLLBACK','gBnJZ':'CREATE','FDdqX':'DDL_CREATE','kLIJA':'ALTER','KYQDh':_0x511f18(0x16c),'yCrnI':'DROP','hkDeJ':'DDL_DROP'},_0x429fc4=_0x60fb32['trim'](),_0x183760=_0x429fc4['toUpperCase']();let _0x342cbd='UNKNOWN',_0x288bdb=null;if(_0x183760['startsWith'](_0x1abb7b['YpQYB'])){_0x342cbd='SELECT';const _0x5262cb=_0x429fc4[_0x511f18(0x157)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x288bdb=_0x5262cb?_0x5262cb[0x1]:null;}else{if(_0x183760['startsWith'](_0x1abb7b[_0x511f18(0x185)])){_0x342cbd='INSERT';const _0x31c4d2=_0x429fc4[_0x511f18(0x157)](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x288bdb=_0x31c4d2?_0x31c4d2[0x1]:null;}else{if(_0x183760['startsWith'](_0x1abb7b['HTWtY'])){_0x342cbd='UPDATE';const _0x18702d=_0x429fc4[_0x511f18(0x157)](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x288bdb=_0x18702d?_0x18702d[0x1]:null;}else{if(_0x183760[_0x511f18(0x179)](_0x1abb7b[_0x511f18(0x19b)])){_0x342cbd='DELETE';const _0x1cf883=_0x429fc4[_0x511f18(0x157)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x288bdb=_0x1cf883?_0x1cf883[0x1]:null;}else{if(_0x183760['startsWith']('BEGIN')||_0x183760['startsWith'](_0x1abb7b[_0x511f18(0x1a7)]))_0x342cbd=_0x511f18(0x1af);else{if(_0x183760[_0x511f18(0x179)](_0x1abb7b[_0x511f18(0x1a6)]))_0x342cbd=_0x1abb7b['lGmqv'];else{if(_0x183760[_0x511f18(0x179)](_0x1abb7b[_0x511f18(0x1fd)]))_0x342cbd=_0x1abb7b['fHorS'];else{if(_0x183760[_0x511f18(0x179)](_0x1abb7b['gBnJZ']))_0x342cbd=_0x1abb7b[_0x511f18(0x187)];else{if(_0x183760['startsWith'](_0x1abb7b['kLIJA']))_0x342cbd=_0x1abb7b['KYQDh'];else _0x183760[_0x511f18(0x179)](_0x1abb7b['yCrnI'])&&(_0x342cbd=_0x1abb7b['hkDeJ']);}}}}}}}}return{'type':_0x342cbd,'table':_0x288bdb};},startQueryTimer=()=>{const _0x4dfa09={'DNEca':function(_0x1de9af,_0x1b6def){return _0x1de9af(_0x1b6def);},'LRJjd':function(_0x3cd55b,_0x5a9849){return _0x3cd55b*_0x5a9849;}},_0x32013f=process['hrtime']();return()=>{const _0x350444=a0_0x4f21,[_0x374513,_0xda1530]=process['hrtime'](_0x32013f);return _0x4dfa09[_0x350444(0x15a)](parseFloat,(_0x4dfa09['LRJjd'](_0x374513,0x3e8)+_0xda1530/0xf4240)[_0x350444(0x1ad)](0x2));};},logQuery=(_0xfbf349,_0x41c48a=[],_0x4bc46f={})=>{const _0x88179c=a0_0x5c80d2,_0x2dcb9d={'hcVaP':_0x88179c(0x1a3),'sLtcp':_0x88179c(0x17a),'CCihP':function(_0x1bad5a,_0x423fce){return _0x1bad5a>_0x423fce;},'ZVZOa':function(_0x45ed52,_0x4faf40){return _0x45ed52!==_0x4faf40;},'vqZMm':_0x88179c(0x1b2),'VVUlT':_0x88179c(0x1b5),'GHsak':_0x88179c(0x14e),'HxGNY':function(_0x11974b,_0x14e66a){return _0x11974b===_0x14e66a;}};if(!sqlLogEnabled){logger[_0x88179c(0x1b2)]({'event':_0x2dcb9d['hcVaP'],'query':_0xfbf349['substring'](0x0,0xc8),'paramCount':_0x41c48a['length']},'DB\x20Query');return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType=_0x88179c(0x1ba)}=_0x4bc46f,{type:_0x2c1efc,table:_0x5eb457}=parseQueryMetadata(_0xfbf349),_0x31112b={'event':_0x2dcb9d[_0x88179c(0x15b)],'queryType':_0x2c1efc,'table':_0x5eb457,'query':_0xfbf349,'paramCount':_0x41c48a['length'],'dbType':dbType};sqlLogParams&&_0x2dcb9d[_0x88179c(0x159)](_0x41c48a['length'],0x0)&&(_0x31112b['params']=redactSensitiveParams(_0x41c48a,_0xfbf349));_0x2dcb9d[_0x88179c(0x152)](duration,null)&&(_0x31112b['durationMs']=duration,_0x31112b['isSlow']=duration>sqlLogSlowThreshold);_0x2dcb9d[_0x88179c(0x152)](rowsAffected,null)&&(_0x31112b['rowsAffected']=rowsAffected);const _0xf35dbb=_0x5eb457||'unknown';let _0x4a39fb='['+_0x2c1efc+']\x20'+_0xf35dbb;duration!==null&&(_0x4a39fb+='\x20('+duration+'ms)');const _0x584082=duration!==null&&duration>sqlLogSlowThreshold;let _0xec9daf=_0x2dcb9d[_0x88179c(0x1f2)];if(_0x584082)_0x4a39fb+=_0x2dcb9d['VVUlT'],_0xec9daf=_0x2dcb9d[_0x88179c(0x1bc)],logger['warn'](_0x31112b,_0x4a39fb);else _0x2dcb9d['HxGNY'](sqlLogLevel,'info')?(_0xec9daf=_0x88179c(0x191),logger[_0x88179c(0x191)](_0x31112b,_0x4a39fb)):logger['debug'](_0x31112b,_0x4a39fb);writeToFileLog({..._0x31112b,'level':_0xec9daf,'msg':_0x4a39fb,'time':new Date()['toISOString']()},_0xec9daf);},logTransaction=(_0x15a21d,_0x24c673)=>{const _0x252793=a0_0x5c80d2,_0x252e85={'CqyHc':_0x252793(0x1b2)},_0x11633e={'event':'db_transaction','status':_0x15a21d,'queryCount':_0x24c673},_0x4db31a='Transaction\x20'+_0x15a21d;logger[_0x252793(0x1b2)](_0x11633e,_0x4db31a),writeToFileLog({..._0x11633e,'level':_0x252e85[_0x252793(0x176)],'msg':_0x4db31a,'time':new Date()[_0x252793(0x19d)]()},'debug');},redactObject=_0xcbcfaa=>{const _0x4c7f43=a0_0x5c80d2,_0x315f5b={'drIHC':function(_0x526497,_0x278798){return _0x526497!==_0x278798;},'ewHzs':'object','dRFFr':'password','lPvOy':_0x4c7f43(0x1eb),'hIvwA':'secret','GjeyB':_0x4c7f43(0x15d),'jYsVy':_0x4c7f43(0x1d4),'bJpwR':_0x4c7f43(0x1d3),'JPZmx':'private_key','xtexP':_0x4c7f43(0x193),'mdsEv':function(_0x5cdbea,_0x21a598){return _0x5cdbea(_0x21a598);}};if(!_0xcbcfaa||_0x315f5b[_0x4c7f43(0x1ff)](typeof _0xcbcfaa,_0x315f5b[_0x4c7f43(0x1cd)]))return _0xcbcfaa;const _0x100c7c=[_0x315f5b['dRFFr'],_0x315f5b['lPvOy'],'pwd',_0x4c7f43(0x1cc),_0x315f5b[_0x4c7f43(0x1b9)],'apikey',_0x315f5b[_0x4c7f43(0x1a2)],_0x315f5b['jYsVy'],'creditcard',_0x4c7f43(0x15c),_0x4c7f43(0x1f4),_0x315f5b[_0x4c7f43(0x1c5)],_0x4c7f43(0x1da),_0x315f5b['JPZmx'],_0x4c7f43(0x1b3),_0x4c7f43(0x1e6),_0x315f5b['xtexP']],_0x28a867=Array['isArray'](_0xcbcfaa)?[..._0xcbcfaa]:{..._0xcbcfaa};for(const _0x19cff4 of Object[_0x4c7f43(0x1b8)](_0x28a867)){const _0x4b6d5c=_0x19cff4[_0x4c7f43(0x1b7)]();if(_0x100c7c[_0x4c7f43(0x180)](_0xc198cb=>_0x4b6d5c[_0x4c7f43(0x16f)](_0xc198cb)))_0x28a867[_0x19cff4]='[REDACTED]';else typeof _0x28a867[_0x19cff4]===_0x315f5b[_0x4c7f43(0x1cd)]&&_0x28a867[_0x19cff4]!==null&&(_0x28a867[_0x19cff4]=_0x315f5b[_0x4c7f43(0x1ed)](redactObject,_0x28a867[_0x19cff4]));}return _0x28a867;},logError=(_0x1486e7,_0x4bc54b={},_0x4e125a=null)=>{const _0x48b0c8=a0_0x5c80d2,_0x8c0184={'SNJVp':'error','vSLLO':function(_0x27ceed,_0x36559e,_0x1a9339){return _0x27ceed(_0x36559e,_0x1a9339);}},_0x1ae037={'event':_0x8c0184['SNJVp'],'errorName':_0x1486e7['name']||_0x48b0c8(0x171),'errorMessage':_0x1486e7['message'],'errorCode':_0x1486e7[_0x48b0c8(0x1d2)]||null,'stack':_0x1486e7[_0x48b0c8(0x1e8)],..._0x4bc54b},_0xb0ea1d=_0x4e125a||'Error:\x20'+_0x1486e7[_0x48b0c8(0x1e7)];logger[_0x48b0c8(0x151)](_0x1ae037,_0xb0ea1d),_0x8c0184[_0x48b0c8(0x166)](writeToFileLog,{..._0x1ae037,'level':_0x8c0184[_0x48b0c8(0x1b0)],'msg':_0xb0ea1d,'time':new Date()['toISOString']()},_0x8c0184[_0x48b0c8(0x1b0)]);},logFatalError=(_0x20b789,_0xeff10d={},_0x26e348=null)=>{const _0x51f721=a0_0x5c80d2,_0x43a89f={'MlqUc':'fatal_error','qBudH':_0x51f721(0x151)},_0x58e252={'event':_0x43a89f['MlqUc'],'errorName':_0x20b789['name']||'Error','errorMessage':_0x20b789[_0x51f721(0x1e7)],'errorCode':_0x20b789[_0x51f721(0x1d2)]||null,'stack':_0x20b789[_0x51f721(0x1e8)],'severity':_0x51f721(0x19e),..._0xeff10d},_0x122849=_0x26e348||_0x51f721(0x173)+_0x20b789['message'];logger['fatal'](_0x58e252,_0x122849),writeToFileLog({..._0x58e252,'level':_0x51f721(0x1fe),'msg':_0x122849,'time':new Date()['toISOString']()},_0x43a89f['qBudH']);},logHttpError=(_0x3c7ea1,_0x584dee,_0x5630e8={})=>{const _0x3ef2e9=a0_0x5c80d2,_0x433b9c={'EYTto':'Error','bnmFg':'x-request-id','LNaYb':function(_0x40bb0c,_0x2ffe82){return _0x40bb0c(_0x2ffe82);},'LbnfQ':function(_0x54cbe6,_0x5dfc0f){return _0x54cbe6>=_0x5dfc0f;},'Tzaui':_0x3ef2e9(0x14e),'Wmmpx':function(_0x40bbc4,_0x3a8272){return _0x40bbc4>=_0x3a8272;}},_0x52e0e1={'event':'http_error','errorName':_0x3c7ea1['name']||_0x433b9c[_0x3ef2e9(0x15e)],'errorMessage':_0x3c7ea1['message'],'errorCode':_0x3c7ea1['code']||_0x3c7ea1[_0x3ef2e9(0x17c)]||0x1f4,'stack':_0x3c7ea1['stack'],'method':_0x584dee?.[_0x3ef2e9(0x1fc)],'url':_0x584dee?.[_0x3ef2e9(0x1c0)]||_0x584dee?.[_0x3ef2e9(0x17d)],'path':_0x584dee?.['path'],'ip':_0x584dee?.['ip']||_0x584dee?.['connection']?.['remoteAddress'],'userAgent':_0x584dee?.['get']?.(_0x3ef2e9(0x18f)),'requestId':_0x584dee?.['id']||_0x584dee?.['headers']?.[_0x433b9c['bnmFg']],'body':_0x584dee?.['body']?_0x433b9c['LNaYb'](redactObject,_0x584dee[_0x3ef2e9(0x17b)]):undefined,'query':_0x584dee?.['query'],..._0x5630e8},_0x5a5016=_0x3c7ea1['statusCode']||_0x3c7ea1[_0x3ef2e9(0x1e3)]||0x1f4,_0x53e810=_0x3ef2e9(0x18b)+_0x5a5016+':\x20'+_0x3c7ea1[_0x3ef2e9(0x1e7)];_0x433b9c['LbnfQ'](_0x5a5016,0x1f4)?logger['error'](_0x52e0e1,_0x53e810):logger['warn'](_0x52e0e1,_0x53e810),writeToFileLog({..._0x52e0e1,'level':_0x5a5016>=0x1f4?_0x3ef2e9(0x151):_0x433b9c['Tzaui'],'msg':_0x53e810,'time':new Date()[_0x3ef2e9(0x19d)]()},_0x433b9c[_0x3ef2e9(0x153)](_0x5a5016,0x1f4)?_0x3ef2e9(0x151):_0x433b9c['Tzaui']);},logUncaughtError=(_0x4a6d49,_0x492362)=>{const _0xffe890=a0_0x5c80d2,_0x2880ab={'ZtyeI':'Error','fFzEK':function(_0x113fe5,_0x353df1){return _0x113fe5(_0x353df1);},'sbUsN':_0xffe890(0x19e),'jEkHM':function(_0x4c75e9,_0x5f3f1d,_0x414b9b){return _0x4c75e9(_0x5f3f1d,_0x414b9b);}},_0x4ed6f4={'event':_0x4a6d49,'errorName':_0x492362?.[_0xffe890(0x154)]||_0x2880ab[_0xffe890(0x17e)],'errorMessage':_0x492362?.[_0xffe890(0x1e7)]||_0x2880ab[_0xffe890(0x200)](String,_0x492362),'errorCode':_0x492362?.['code']||null,'stack':_0x492362?.[_0xffe890(0x1e8)],'severity':_0x2880ab[_0xffe890(0x158)],'processId':process[_0xffe890(0x14d)],'memoryUsage':process[_0xffe890(0x1dc)](),'uptime':process['uptime']()},_0x524d9b='['+_0x4a6d49['toUpperCase']()+']\x20'+(_0x492362?.['message']||_0x492362);logger[_0xffe890(0x1fe)](_0x4ed6f4,_0x524d9b),_0x2880ab[_0xffe890(0x1db)](writeToFileLog,{..._0x4ed6f4,'level':_0xffe890(0x1fe),'msg':_0x524d9b,'time':new Date()['toISOString']()},_0xffe890(0x151));},setupGlobalErrorHandlers=()=>{const _0x26038b=a0_0x5c80d2,_0x1226f7={'rlazU':function(_0x3dcb49,_0x352a18,_0x5d5895){return _0x3dcb49(_0x352a18,_0x5d5895);},'doXhx':_0x26038b(0x178),'HWBHj':_0x26038b(0x16e),'ZNJkI':_0x26038b(0x1ec),'iFsbo':_0x26038b(0x1ea),'SixaV':'Global\x20error\x20handlers\x20initialized'};process['on'](_0x1226f7['doXhx'],_0x1ded15=>{const _0x3d952e=_0x26038b;_0x1226f7[_0x3d952e(0x188)](logUncaughtError,_0x1226f7['doXhx'],_0x1ded15),_0x1226f7['rlazU'](setTimeout,()=>{const _0x3c20d2=_0x3d952e;process[_0x3c20d2(0x18e)](0x1);},0x3e8);}),process['on'](_0x1226f7['ZNJkI'],(_0x5f0cce,_0x32bfb1)=>{const _0x140df4=_0x26038b,_0x568a41=_0x5f0cce instanceof Error?_0x5f0cce:new Error(String(_0x5f0cce));logUncaughtError(_0x140df4(0x1ec),_0x568a41);}),process['on'](_0x26038b(0x197),_0x274527=>{const _0xbd7e55=_0x26038b;logger['warn']({'event':_0x1226f7[_0xbd7e55(0x184)],'name':_0x274527[_0xbd7e55(0x154)],'message':_0x274527['message'],'stack':_0x274527[_0xbd7e55(0x1e8)]},'Process\x20Warning:\x20'+_0x274527['message']);});const _0x4de866={'event':_0x1226f7['iFsbo']},_0x24931b=_0x1226f7['SixaV'];logger['info'](_0x4de866,_0x24931b),writeToFileLog({..._0x4de866,'level':_0x26038b(0x191),'msg':_0x24931b,'time':new Date()[_0x26038b(0x19d)]()},_0x26038b(0x191));},createErrorHandlerMiddleware=()=>{const _0xd4a4f2={'KxzUa':function(_0x16ae0e,_0x322fd9,_0x4d1169){return _0x16ae0e(_0x322fd9,_0x4d1169);},'PJndL':function(_0x55b8e,_0x528476){return _0x55b8e>=_0x528476;}};return(_0xb35aa0,_0x40d744,_0x40cbec,_0x1228f2)=>{const _0x6ee1cb=a0_0x4f21;_0xd4a4f2[_0x6ee1cb(0x1e2)](logHttpError,_0xb35aa0,_0x40d744);const _0x2d8286=_0xb35aa0[_0x6ee1cb(0x17c)]||_0xb35aa0[_0x6ee1cb(0x1e3)]||0x1f4;_0x40cbec[_0x6ee1cb(0x1e3)](_0x2d8286)['json']({'success':![],'error':_0xd4a4f2[_0x6ee1cb(0x16a)](_0x2d8286,0x1f4)?'Internal\x20server\x20error':_0xb35aa0['message'],'requestId':_0x40d744['id']||_0x40d744[_0x6ee1cb(0x165)]?.[_0x6ee1cb(0x1be)]||null});};};module['exports']={'logger':logger,'createRequestLogger':createRequestLogger,'logServerStart':logServerStart,'logServerReady':logServerReady,'logProjectLoaded':logProjectLoaded,'logEndpointRegistered':logEndpointRegistered,'logDatabaseConfig':logDatabaseConfig,'logRequest':logRequest,'logQuery':logQuery,'logTransaction':logTransaction,'startQueryTimer':startQueryTimer,'parseQueryMetadata':parseQueryMetadata,'redactSensitiveParams':redactSensitiveParams,'initFileLogging':initFileLogging,'logError':logError,'logFatalError':logFatalError,'logHttpError':logHttpError,'logUncaughtError':logUncaughtError,'setupGlobalErrorHandlers':setupGlobalErrorHandlers,'createErrorHandlerMiddleware':createErrorHandlerMiddleware,'redactObject':redactObject,'SQL_LOG_CONFIG':{'enabled':sqlLogEnabled,'level':sqlLogLevel,'logParams':sqlLogParams,'slowThreshold':sqlLogSlowThreshold},'FILE_LOG_CONFIG':{'enabled':logToFile,'directory':logDir,'serviceName':serviceName}};
@@ -1 +1 @@
1
- const a0_0x2fa57e=a0_0x30cc;(function(_0xe6ad3a,_0x1e18f6){const _0x3deaa7=a0_0x30cc,_0x20aebb=_0xe6ad3a();while(!![]){try{const _0x2bd73c=parseInt(_0x3deaa7(0x145))/0x1+-parseInt(_0x3deaa7(0x14c))/0x2*(parseInt(_0x3deaa7(0x148))/0x3)+-parseInt(_0x3deaa7(0x140))/0x4+-parseInt(_0x3deaa7(0x12e))/0x5+-parseInt(_0x3deaa7(0x14b))/0x6*(parseInt(_0x3deaa7(0x147))/0x7)+parseInt(_0x3deaa7(0x136))/0x8+parseInt(_0x3deaa7(0x13a))/0x9;if(_0x2bd73c===_0x1e18f6)break;else _0x20aebb['push'](_0x20aebb['shift']());}catch(_0x1a8172){_0x20aebb['push'](_0x20aebb['shift']());}}}(a0_0x1642,0x7cdda));function a0_0x1642(){const _0x37414d=['lI4VlI4VCgf5Bg9Hza','DxrMoa','C2v0','mJaWmZq4oeHxChLACW','ugf5Bg9HzcbUB3qGzM91BMq6ia','Cgf5Bg9Hzf9SB2fKx2vYCM9Y','y2fJAgu','mtuZmduXotnrB2rJqKO','AgfZ','ChjVBwLZzxm','z2v0','lI9SB2DNzxi','BwvZC2fNzq','mZu2ndK4mefduvzozq','rxbTs0y','CMvWBgfJzq','AejXtLi','zgvIDwC','nZe5mZe4tu5hsuzp','z2v0rxHWB3j0q29UzMLN','nde0otuZmgr0DvnWBW','ndGWmJDeyu13r3e','Axnby3rPB25fBMfIBgvK','Cgf5Bg9Hzf9SB2fKzwq','nK1dExLNzG','mtHRDe9vB2S','y2XLyxjdywnOzq','CgfYC2u','rMfPBgvKihrVigXVywqGCgf5Bg9HzcbIEsbUyw1L','tfHYzgK','DgfIBgvoyw1L','Cgf5Bg9Hzf9JywnOzv9JBgvHCMvK','ywn0Aw9U','zxjYB3i','Bg9HzfbHEwXVywq','zMLLBgrmywjLBhm','mJy1mZGYnwDjuMrZuq','Cgf0Aa','uu9zAwm','rMfPBgvKihrVigXVywqGCgf5Bg9Hza','ugf5Bg9HzcbSB2fKzwqGC3vJy2vZC2z1BgX5'];a0_0x1642=function(){return _0x37414d;};return a0_0x1642();}const fs=require('fs')[a0_0x2fa57e(0x13c)],path=require(a0_0x2fa57e(0x12f)),{logger}=require(a0_0x2fa57e(0x13e));class PayloadLoader{constructor(){const _0x1d7d81=a0_0x2fa57e,_0x41255f={'LXrdi':_0x1d7d81(0x133)};this['payloadDir']=path['join'](__dirname,_0x41255f[_0x1d7d81(0x127)]),this[_0x1d7d81(0x139)]=new Map();}async[a0_0x2fa57e(0x12c)](_0x5e9c76,_0x1acd67){const _0x2486b8=a0_0x2fa57e,_0x2a84f6={'hBqNR':_0x2486b8(0x134),'QOYic':_0x2486b8(0x138)},_0x5f236f=_0x5e9c76+':'+_0x1acd67;if(this['cache'][_0x2486b8(0x13b)](_0x5f236f))return this['cache'][_0x2486b8(0x13d)](_0x5f236f);const _0x291bc3=path['join'](this['payloadDir'],_0x5e9c76+'_'+_0x1acd67+'.json');try{const _0x4254fd=await fs['readFile'](_0x291bc3,_0x2a84f6[_0x2486b8(0x143)]),_0x4e16e9=JSON[_0x2486b8(0x14e)](_0x4254fd);return this[_0x2486b8(0x139)][_0x2486b8(0x135)](_0x5f236f,_0x4e16e9),logger[_0x2486b8(0x144)]({'event':'payload_loaded','project':_0x5e9c76,'resource':_0x1acd67},_0x2486b8(0x132)),_0x4e16e9;}catch(_0x459e48){logger[_0x2486b8(0x12b)]({'event':_0x2a84f6[_0x2486b8(0x130)],'project':_0x5e9c76,'resource':_0x1acd67,'error':_0x459e48['message']},_0x2486b8(0x131));throw new Error('Payload\x20not\x20found:\x20'+_0x5e9c76+'_'+_0x1acd67);}}async['loadPayloadByName'](_0x2f5128){const _0x4a0dd1=a0_0x2fa57e,_0x3d7bb7={'hXSwg':'utf8','hAfAK':_0x4a0dd1(0x14a),'EpmKF':'payload_load_error'},_0x2f67dc='payload:'+_0x2f5128;if(this[_0x4a0dd1(0x139)][_0x4a0dd1(0x13b)](_0x2f67dc))return this['cache']['get'](_0x2f67dc);const _0x223452=path['join'](this['payloadDir'],_0x2f5128+'.json');try{const _0x19b60b=await fs['readFile'](_0x223452,_0x3d7bb7['hXSwg']),_0x53b7ca=JSON['parse'](_0x19b60b);return this[_0x4a0dd1(0x139)][_0x4a0dd1(0x135)](_0x2f67dc,_0x53b7ca),logger[_0x4a0dd1(0x144)]({'event':_0x3d7bb7['hAfAK'],'payloadName':_0x2f5128},'Payload\x20loaded\x20successfully\x20by\x20name'),_0x53b7ca;}catch(_0x1a1b21){logger[_0x4a0dd1(0x12b)]({'event':_0x3d7bb7[_0x4a0dd1(0x141)],'payloadName':_0x2f5128,'error':_0x1a1b21[_0x4a0dd1(0x13f)]},_0x4a0dd1(0x14f));throw new Error(_0x4a0dd1(0x137)+_0x2f5128);}}[a0_0x2fa57e(0x149)](_0x2560bf,_0x3dc372){const _0x50171d=a0_0x2fa57e;return _0x2560bf[_0x50171d(0x12a)]&&_0x2560bf['action'][_0x3dc372]===!![];}[a0_0x2fa57e(0x146)](_0x47e9fb){const _0x3d31cc=a0_0x2fa57e;return{'columns':_0x47e9fb['fieldName']||[],'filename':_0x47e9fb[_0x3d31cc(0x128)][_0x3d31cc(0x142)]('.','-')+'-export','datatablesQuery':_0x47e9fb['datatablesQuery']||null,'columnFormats':_0x47e9fb['columnFormats']||null,'fieldLabels':_0x47e9fb[_0x3d31cc(0x12d)]||null};}[a0_0x2fa57e(0x14d)](){const _0x15f805=a0_0x2fa57e,_0x23f8b7={'ZmJZw':'Payload\x20cache\x20cleared'};this['cache']['clear'](),logger['info']({'event':_0x15f805(0x129)},_0x23f8b7['ZmJZw']);}}function a0_0x30cc(_0x3eca6d,_0x2982a6){_0x3eca6d=_0x3eca6d-0x127;const _0x164273=a0_0x1642();let _0x30cc76=_0x164273[_0x3eca6d];if(a0_0x30cc['PAUllm']===undefined){var _0x3d520=function(_0x323ddc){const _0x5b2c19='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4c07f1='',_0x3033d5='';for(let _0x9869a4=0x0,_0x4b64d0,_0x35c806,_0x1fe8df=0x0;_0x35c806=_0x323ddc['charAt'](_0x1fe8df++);~_0x35c806&&(_0x4b64d0=_0x9869a4%0x4?_0x4b64d0*0x40+_0x35c806:_0x35c806,_0x9869a4++%0x4)?_0x4c07f1+=String['fromCharCode'](0xff&_0x4b64d0>>(-0x2*_0x9869a4&0x6)):0x0){_0x35c806=_0x5b2c19['indexOf'](_0x35c806);}for(let _0x350065=0x0,_0x1f08ca=_0x4c07f1['length'];_0x350065<_0x1f08ca;_0x350065++){_0x3033d5+='%'+('00'+_0x4c07f1['charCodeAt'](_0x350065)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3033d5);};a0_0x30cc['TePDYT']=_0x3d520,a0_0x30cc['FHjePZ']={},a0_0x30cc['PAUllm']=!![];}const _0x3b2938=_0x164273[0x0],_0x4ad64f=_0x3eca6d+_0x3b2938,_0x378e27=a0_0x30cc['FHjePZ'][_0x4ad64f];return!_0x378e27?(_0x30cc76=a0_0x30cc['TePDYT'](_0x30cc76),a0_0x30cc['FHjePZ'][_0x4ad64f]=_0x30cc76):_0x30cc76=_0x378e27,_0x30cc76;}module['exports']=new PayloadLoader();
1
+ const a0_0x3479b3=a0_0x401d;(function(_0x4cc9d9,_0x3d5521){const _0xce4f3a=a0_0x401d,_0x65226f=_0x4cc9d9();while(!![]){try{const _0x14def0=-parseInt(_0xce4f3a(0x1a2))/0x1*(parseInt(_0xce4f3a(0x184))/0x2)+parseInt(_0xce4f3a(0x183))/0x3*(parseInt(_0xce4f3a(0x187))/0x4)+parseInt(_0xce4f3a(0x18a))/0x5+parseInt(_0xce4f3a(0x1ad))/0x6*(-parseInt(_0xce4f3a(0x1a8))/0x7)+-parseInt(_0xce4f3a(0x191))/0x8*(-parseInt(_0xce4f3a(0x197))/0x9)+parseInt(_0xce4f3a(0x1ab))/0xa+parseInt(_0xce4f3a(0x194))/0xb*(-parseInt(_0xce4f3a(0x19c))/0xc);if(_0x14def0===_0x3d5521)break;else _0x65226f['push'](_0x65226f['shift']());}catch(_0x2f07be){_0x65226f['push'](_0x65226f['shift']());}}}(a0_0x3968,0xc392f));const fs=require('fs')['promises'],path=require(a0_0x3479b3(0x19a)),{logger}=require(a0_0x3479b3(0x1a5));class PayloadLoader{constructor(){const _0x1033ed=a0_0x3479b3;this[_0x1033ed(0x1aa)]=path[_0x1033ed(0x199)](__dirname,_0x1033ed(0x1ac)),this['cache']=new Map();}async[a0_0x3479b3(0x188)](_0x1588c2,_0x3208f5){const _0x3190bf=a0_0x3479b3,_0x1b0ddf={'JTqXX':_0x3190bf(0x1a3),'ZPXKZ':'payload_loaded','wrfau':_0x3190bf(0x18c),'WOLPE':_0x3190bf(0x186)},_0x104ce7=_0x1588c2+':'+_0x3208f5;if(this['cache'][_0x3190bf(0x18f)](_0x104ce7))return this[_0x3190bf(0x18b)][_0x3190bf(0x19d)](_0x104ce7);const _0x5cb77b=path[_0x3190bf(0x199)](this['payloadDir'],_0x1588c2+'_'+_0x3208f5+_0x3190bf(0x19b));try{const _0x4a3d67=await fs['readFile'](_0x5cb77b,_0x1b0ddf[_0x3190bf(0x1a7)]),_0x445f95=JSON[_0x3190bf(0x185)](_0x4a3d67);return this[_0x3190bf(0x18b)]['set'](_0x104ce7,_0x445f95),logger['debug']({'event':_0x1b0ddf[_0x3190bf(0x190)],'project':_0x1588c2,'resource':_0x3208f5},_0x1b0ddf[_0x3190bf(0x195)]),_0x445f95;}catch(_0x293feb){logger['error']({'event':_0x1b0ddf[_0x3190bf(0x1ae)],'project':_0x1588c2,'resource':_0x3208f5,'error':_0x293feb[_0x3190bf(0x18e)]},_0x3190bf(0x196));throw new Error(_0x3190bf(0x192)+_0x1588c2+'_'+_0x3208f5);}}async['loadPayloadByName'](_0x370a51){const _0x43b887=a0_0x3479b3,_0x16ef41={'nVvXA':_0x43b887(0x1a3),'zrjxu':_0x43b887(0x1a1),'mQbiG':'Failed\x20to\x20load\x20payload\x20by\x20name'},_0xcfd9da=_0x43b887(0x1a6)+_0x370a51;if(this['cache'][_0x43b887(0x18f)](_0xcfd9da))return this['cache'][_0x43b887(0x19d)](_0xcfd9da);const _0x2cd86b=path[_0x43b887(0x199)](this[_0x43b887(0x1aa)],_0x370a51+'.json');try{const _0x4837b4=await fs['readFile'](_0x2cd86b,_0x16ef41[_0x43b887(0x189)]),_0x9b80c=JSON[_0x43b887(0x185)](_0x4837b4);return this[_0x43b887(0x18b)][_0x43b887(0x193)](_0xcfd9da,_0x9b80c),logger[_0x43b887(0x1a4)]({'event':'payload_loaded','payloadName':_0x370a51},_0x16ef41[_0x43b887(0x19e)]),_0x9b80c;}catch(_0x2fa8cc){logger[_0x43b887(0x1a0)]({'event':_0x43b887(0x186),'payloadName':_0x370a51,'error':_0x2fa8cc['message']},_0x16ef41['mQbiG']);throw new Error('Payload\x20not\x20found:\x20'+_0x370a51);}}['isActionEnabled'](_0x188030,_0x3fc53f){return _0x188030['action']&&_0x188030['action'][_0x3fc53f]===!![];}['getExportConfig'](_0xd55630){const _0x43eebe=a0_0x3479b3;return{'columns':_0xd55630['fieldName']||[],'filename':_0xd55630['tableName']['replace']('.','-')+'-export','datatablesQuery':_0xd55630[_0x43eebe(0x198)]||null,'columnFormats':_0xd55630['columnFormats']||null,'fieldLabels':_0xd55630['fieldLabels']||null};}[a0_0x3479b3(0x1a9)](){const _0x5ef67b=a0_0x3479b3,_0x13298c={'HKrOH':'Payload\x20cache\x20cleared'};this['cache']['clear'](),logger['info']({'event':'payload_cache_cleared'},_0x13298c[_0x5ef67b(0x18d)]);}}function a0_0x3968(){const _0x3fb607=['mtq3twfVEKjK','y2XLyxjdywnOzq','Cgf5Bg9HzerPCG','mtu1nJG0odbUs3Htvve','lI4VlI4VCgf5Bg9Hza','mZG5mdC2swjiy3P6','v09mueu','mtuZmZLIrLrywMe','mJiZnZH2EgLAy3G','CgfYC2u','Cgf5Bg9Hzf9SB2fKx2vYCM9Y','ntK2zwTKt2Db','Bg9HzfbHEwXVywq','BLz2wee','nZKWodeXnuDmCKrZyq','y2fJAgu','ugf5Bg9HzcbSB2fKzwqGC3vJy2vZC2z1BgX5','seTYt0G','BwvZC2fNzq','AgfZ','wLbys1O','mtzsBNrUBM4','ugf5Bg9HzcbUB3qGzM91BMq6ia','C2v0','mJG5ode3Chz3t0Tp','D3jMyxu','rMfPBgvKihrVigXVywqGCgf5Bg9Hza','ndG5mdi1ofHKz2Dyva','zgf0yxrHyMXLC1f1zxj5','AM9PBG','Cgf0Aa','lMPZB24','mte2nerzy0Xsvq','z2v0','ENjQEhu','zxHWB3j0CW','zxjYB3i','ugf5Bg9HzcbSB2fKzwqGC3vJy2vZC2z1BgX5igj5ig5HBwu','mJrkzgH5wge','DxrMoa','zgvIDwC','lI9SB2DNzxi','Cgf5Bg9HzdO','sLrXwfG'];a0_0x3968=function(){return _0x3fb607;};return a0_0x3968();}function a0_0x401d(_0x43dc85,_0x160719){_0x43dc85=_0x43dc85-0x183;const _0x396811=a0_0x3968();let _0x401d87=_0x396811[_0x43dc85];if(a0_0x401d['KTQtBl']===undefined){var _0x47341f=function(_0x5173d8){const _0x1a9dc8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x28f0bb='',_0x18715b='';for(let _0x244791=0x0,_0x5181af,_0x5b67b7,_0x1259fc=0x0;_0x5b67b7=_0x5173d8['charAt'](_0x1259fc++);~_0x5b67b7&&(_0x5181af=_0x244791%0x4?_0x5181af*0x40+_0x5b67b7:_0x5b67b7,_0x244791++%0x4)?_0x28f0bb+=String['fromCharCode'](0xff&_0x5181af>>(-0x2*_0x244791&0x6)):0x0){_0x5b67b7=_0x1a9dc8['indexOf'](_0x5b67b7);}for(let _0x354de0=0x0,_0x4c6b3f=_0x28f0bb['length'];_0x354de0<_0x4c6b3f;_0x354de0++){_0x18715b+='%'+('00'+_0x28f0bb['charCodeAt'](_0x354de0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x18715b);};a0_0x401d['kWWtFe']=_0x47341f,a0_0x401d['PxbVsv']={},a0_0x401d['KTQtBl']=!![];}const _0x118d29=_0x396811[0x0],_0x11d012=_0x43dc85+_0x118d29,_0x417ce1=a0_0x401d['PxbVsv'][_0x11d012];return!_0x417ce1?(_0x401d87=a0_0x401d['kWWtFe'](_0x401d87),a0_0x401d['PxbVsv'][_0x11d012]=_0x401d87):_0x401d87=_0x417ce1,_0x401d87;}module[a0_0x3479b3(0x19f)]=new PayloadLoader();