@restforgejs/platform 5.1.21 → 5.2.0

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 (211) hide show
  1. package/build-info.json +2 -2
  2. package/cli/consumer-deploy.js +1 -1
  3. package/cli/consumer.js +1 -1
  4. package/generators/cli/catalog/dashboard.js +1 -1
  5. package/generators/cli/catalog/dbschema.js +3 -3
  6. package/generators/cli/catalog/field-validation.js +1 -1
  7. package/generators/cli/catalog/query-declarative.js +1 -1
  8. package/generators/cli/config/clear-default.js +1 -1
  9. package/generators/cli/config/get-default.js +1 -1
  10. package/generators/cli/config/list.js +1 -1
  11. package/generators/cli/config/schema.js +1 -1
  12. package/generators/cli/config/set-default.js +2 -2
  13. package/generators/cli/config/template.js +1 -1
  14. package/generators/cli/dashboard/create.js +7 -7
  15. package/generators/cli/data/pull.js +12 -12
  16. package/generators/cli/data/push.js +9 -9
  17. package/generators/cli/endpoint/create.js +11 -11
  18. package/generators/cli/endpoint/list.js +3 -3
  19. package/generators/cli/fast-track.js +7 -7
  20. package/generators/cli/init.js +2 -2
  21. package/generators/cli/kafka/consumer-create.js +5 -5
  22. package/generators/cli/key/generate.js +3 -3
  23. package/generators/cli/key/list.js +2 -2
  24. package/generators/cli/key/revoke.js +3 -3
  25. package/generators/cli/payload/diff.js +3 -3
  26. package/generators/cli/payload/generate.js +5 -5
  27. package/generators/cli/payload/sync.js +5 -5
  28. package/generators/cli/payload/validate.js +3 -3
  29. package/generators/cli/processor/create.js +7 -7
  30. package/generators/cli/processor/list.js +3 -3
  31. package/generators/cli/project/delete.js +2 -2
  32. package/generators/cli/project/list.js +1 -1
  33. package/generators/cli/query/validate.js +3 -3
  34. package/generators/cli/schema/apply.js +13 -13
  35. package/generators/cli/schema/describe.js +6 -6
  36. package/generators/cli/schema/diff.js +10 -10
  37. package/generators/cli/schema/generate-ddl.js +11 -11
  38. package/generators/cli/schema/init.js +95 -95
  39. package/generators/cli/schema/introspect.js +8 -8
  40. package/generators/cli/schema/list.js +6 -6
  41. package/generators/cli/schema/migrate.js +91 -13
  42. package/generators/cli/schema/models.js +6 -6
  43. package/generators/cli/schema/template.js +223 -222
  44. package/generators/cli/schema/validate.js +6 -6
  45. package/generators/cli/test/generate.js +6 -6
  46. package/generators/lib/dbschema-kit/introspect-mapper.js +20 -0
  47. package/generators/lib/templates/dashboard-catalog.js +1 -1
  48. package/generators/lib/templates/db-connection-env.js +1 -1
  49. package/generators/lib/templates/dbschema-catalog.js +1 -1
  50. package/generators/lib/templates/field-validation-catalog.js +1 -1
  51. package/generators/lib/templates/mysql-template.js +1 -1
  52. package/generators/lib/templates/oracle-template.js +1 -1
  53. package/generators/lib/templates/postgres-template.js +1 -1
  54. package/generators/lib/templates/query-declarative-catalog.js +1 -1
  55. package/generators/lib/templates/sqlite-template.js +1 -1
  56. package/integrity-manifest.json +18 -18
  57. package/package.json +1 -1
  58. package/scripts/verify-integrity.js +1 -1
  59. package/server.js +1 -1
  60. package/src/components/handlers/adjust_handler.js +1 -1
  61. package/src/components/handlers/audit_handler.js +1 -1
  62. package/src/components/handlers/delete_handler.js +1 -1
  63. package/src/components/handlers/export_handler.js +1 -1
  64. package/src/components/handlers/import_handler.js +1 -1
  65. package/src/components/handlers/insert_handler.js +1 -1
  66. package/src/components/handlers/update_handler.js +1 -1
  67. package/src/components/handlers/upload_handler.js +1 -1
  68. package/src/components/handlers/workflow_handler.js +1 -1
  69. package/src/components/integrations/webhook.js +1 -1
  70. package/src/consumers/baseConsumer.js +1 -1
  71. package/src/consumers/declarativeMapper.js +1 -1
  72. package/src/consumers/handlers/apiHandler.js +1 -1
  73. package/src/consumers/handlers/consoleHandler.js +1 -1
  74. package/src/consumers/handlers/databaseHandler.js +1 -1
  75. package/src/consumers/handlers/index.js +1 -1
  76. package/src/consumers/handlers/kafkaHandler.js +1 -1
  77. package/src/consumers/index.js +1 -1
  78. package/src/consumers/messageTransformer.js +1 -1
  79. package/src/consumers/validator.js +1 -1
  80. package/src/core/db/dialect/base-dialect.js +1 -1
  81. package/src/core/db/dialect/index.js +1 -1
  82. package/src/core/db/dialect/mysql-dialect.js +1 -1
  83. package/src/core/db/dialect/oracle-dialect.js +1 -1
  84. package/src/core/db/dialect/postgres-dialect.js +1 -1
  85. package/src/core/db/dialect/sqlite-dialect.js +1 -1
  86. package/src/core/db/flatten-helper.js +1 -1
  87. package/src/core/db/query-builder-error.js +1 -1
  88. package/src/core/db/query-builder.js +1 -1
  89. package/src/core/db/relation-helper.js +1 -1
  90. package/src/core/handlers/delete_handler.js +1 -1
  91. package/src/core/handlers/insert_handler.js +1 -1
  92. package/src/core/handlers/update_handler.js +1 -1
  93. package/src/core/models/base-model.js +1 -1
  94. package/src/core/utils/cache-manager.js +1 -1
  95. package/src/core/utils/component-engine.js +1 -1
  96. package/src/core/utils/context-builder.js +1 -1
  97. package/src/core/utils/datetime-formatter.js +1 -1
  98. package/src/core/utils/datetime-parser.js +1 -1
  99. package/src/core/utils/db.js +1 -1
  100. package/src/core/utils/logger.js +1 -1
  101. package/src/core/utils/payload-loader.js +1 -1
  102. package/src/core/utils/security-checks.js +1 -1
  103. package/src/middleware/body-options.js +1 -1
  104. package/src/middleware/cors.js +1 -1
  105. package/src/middleware/idempotency.js +1 -1
  106. package/src/middleware/rate-limiter.js +1 -1
  107. package/src/middleware/request-logger.js +1 -1
  108. package/src/middleware/security-headers.js +1 -1
  109. package/src/models/base-model-mysql.js +1 -1
  110. package/src/models/base-model-oracle.js +1 -1
  111. package/src/models/base-model-sqlite.js +1 -1
  112. package/src/models/base-model.js +1 -1
  113. package/src/pro/caching/redis-client.js +1 -1
  114. package/src/pro/caching/redis-helper.js +1 -1
  115. package/src/pro/consumers/baseConsumer.js +1 -1
  116. package/src/pro/consumers/declarativeMapper.js +1 -1
  117. package/src/pro/consumers/handlers/apiHandler.js +1 -1
  118. package/src/pro/consumers/handlers/consoleHandler.js +1 -1
  119. package/src/pro/consumers/handlers/databaseHandler.js +1 -1
  120. package/src/pro/consumers/handlers/index.js +1 -1
  121. package/src/pro/consumers/handlers/kafkaHandler.js +1 -1
  122. package/src/pro/consumers/index.js +1 -1
  123. package/src/pro/consumers/messageTransformer.js +1 -1
  124. package/src/pro/consumers/validator.js +1 -1
  125. package/src/pro/database/base-model-mysql.js +1 -1
  126. package/src/pro/database/base-model-oracle.js +1 -1
  127. package/src/pro/database/base-model-sqlite.js +1 -1
  128. package/src/pro/database/db-mysql.js +1 -1
  129. package/src/pro/database/db-oracle.js +1 -1
  130. package/src/pro/database/db-sqlite.js +1 -1
  131. package/src/pro/excel/excel-generator.js +1 -1
  132. package/src/pro/excel/excel-parser.js +1 -1
  133. package/src/pro/excel/export-service.js +1 -1
  134. package/src/pro/excel/export_handler.js +1 -1
  135. package/src/pro/excel/import-service.js +1 -1
  136. package/src/pro/excel/import-validator.js +1 -1
  137. package/src/pro/excel/import_handler.js +1 -1
  138. package/src/pro/excel/upsert-builder.js +1 -1
  139. package/src/pro/idgen/idgen-routes.js +1 -1
  140. package/src/pro/integrations/lookup-resolver.js +1 -1
  141. package/src/pro/integrations/upload-handler-v2.js +1 -1
  142. package/src/pro/integrations/upload-handler.js +1 -1
  143. package/src/pro/integrations/webhook.js +1 -1
  144. package/src/pro/locking/lock-routes.js +1 -1
  145. package/src/pro/locking/resource-lock-manager.js +1 -1
  146. package/src/pro/messaging/kafkaConsumerService.js +1 -1
  147. package/src/pro/messaging/kafkaService.js +1 -1
  148. package/src/pro/messaging/messagehubService.js +1 -1
  149. package/src/pro/messaging/rabbitmqService.js +1 -1
  150. package/src/pro/scheduler/job-manager.js +1 -1
  151. package/src/pro/scheduler/job-routes.js +1 -1
  152. package/src/pro/scheduler/job-validator.js +1 -1
  153. package/src/pro/storage/base-storage-provider.js +1 -1
  154. package/src/pro/storage/file-metadata-helper.js +1 -1
  155. package/src/pro/storage/index.js +1 -1
  156. package/src/pro/storage/local-storage-provider.js +1 -1
  157. package/src/pro/storage/s3-storage-provider.js +1 -1
  158. package/src/pro/storage/upload-cleanup-job.js +1 -1
  159. package/src/pro/storage/upload-cleanup-scheduler.js +1 -1
  160. package/src/pro/storage/upload-pending-tracker.js +1 -1
  161. package/src/pro/websocket/broadcast-helper.js +1 -1
  162. package/src/pro/websocket/index.js +1 -1
  163. package/src/pro/websocket/livesync-server.js +1 -1
  164. package/src/pro/websocket/ws-broadcaster.js +1 -1
  165. package/src/services/export-service.js +1 -1
  166. package/src/services/import-service.js +1 -1
  167. package/src/services/kafkaConsumerService.js +1 -1
  168. package/src/services/kafkaService.js +1 -1
  169. package/src/services/messagehubService.js +1 -1
  170. package/src/services/rabbitmqService.js +1 -1
  171. package/src/utils/cache-invalidation-registry.js +1 -1
  172. package/src/utils/cache-manager.js +1 -1
  173. package/src/utils/component-engine.js +1 -1
  174. package/src/utils/config-extractor.js +1 -1
  175. package/src/utils/consumerLogger.js +1 -1
  176. package/src/utils/context-builder.js +1 -1
  177. package/src/utils/dashboard-helpers.js +1 -1
  178. package/src/utils/dateHelper.js +1 -1
  179. package/src/utils/datetime-formatter.js +1 -1
  180. package/src/utils/datetime-parser.js +1 -1
  181. package/src/utils/db-bootstrap.js +1 -1
  182. package/src/utils/db-mysql.js +1 -1
  183. package/src/utils/db-oracle.js +1 -1
  184. package/src/utils/db-sqlite.js +1 -1
  185. package/src/utils/db.js +1 -1
  186. package/src/utils/demo-generator.js +1 -1
  187. package/src/utils/excel-generator.js +1 -1
  188. package/src/utils/excel-parser.js +1 -1
  189. package/src/utils/file-watcher.js +1 -1
  190. package/src/utils/id-generator.js +1 -1
  191. package/src/utils/idempotency-manager.js +1 -1
  192. package/src/utils/import-validator.js +1 -1
  193. package/src/utils/license-client.js +1 -1
  194. package/src/utils/lock-manager.js +1 -1
  195. package/src/utils/logger.js +1 -1
  196. package/src/utils/lookup-resolver.js +1 -1
  197. package/src/utils/payload-loader.js +1 -1
  198. package/src/utils/processor-response.js +1 -1
  199. package/src/utils/rabbitmq.js +1 -1
  200. package/src/utils/redis-client.js +1 -1
  201. package/src/utils/redis-helper.js +1 -1
  202. package/src/utils/request-scope.js +1 -1
  203. package/src/utils/security-checks.js +1 -1
  204. package/src/utils/service-resolver.js +1 -1
  205. package/src/utils/shutdown-coordinator.js +1 -1
  206. package/src/utils/soft-delete-dashboard-guard.js +1 -1
  207. package/src/utils/sql-table-extractor.js +1 -1
  208. package/src/utils/trusted-keys.js +1 -1
  209. package/src/utils/upload-handler.js +1 -1
  210. package/src/utils/upsert-builder.js +1 -1
  211. package/src/utils/workflow-hook-executor.js +1 -1
@@ -1 +1 @@
1
- const a0_0x52a819=a0_0x28c9;(function(_0x6f6758,_0x5428d8){const _0x425c27=a0_0x28c9,_0x31e3a3=_0x6f6758();while(!![]){try{const _0x4e3555=parseInt(_0x425c27(0xa7))/0x1+-parseInt(_0x425c27(0x91))/0x2+parseInt(_0x425c27(0xa4))/0x3*(-parseInt(_0x425c27(0xaf))/0x4)+parseInt(_0x425c27(0x9b))/0x5+-parseInt(_0x425c27(0x8e))/0x6+-parseInt(_0x425c27(0xae))/0x7*(parseInt(_0x425c27(0xad))/0x8)+parseInt(_0x425c27(0x8d))/0x9;if(_0x4e3555===_0x5428d8)break;else _0x31e3a3['push'](_0x31e3a3['shift']());}catch(_0x537f3b){_0x31e3a3['push'](_0x31e3a3['shift']());}}}(a0_0xa787,0x3be4e));function a0_0x28c9(_0x3cb832,_0x544bc8){_0x3cb832=_0x3cb832-0x8b;const _0xa787a1=a0_0xa787();let _0x28c950=_0xa787a1[_0x3cb832];if(a0_0x28c9['SPXQFn']===undefined){var _0x357faa=function(_0x480092){const _0x5f1eba='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x51352c='',_0x4c3534='';for(let _0x225124=0x0,_0x3d6198,_0x4bf8e6,_0x589504=0x0;_0x4bf8e6=_0x480092['charAt'](_0x589504++);~_0x4bf8e6&&(_0x3d6198=_0x225124%0x4?_0x3d6198*0x40+_0x4bf8e6:_0x4bf8e6,_0x225124++%0x4)?_0x51352c+=String['fromCharCode'](0xff&_0x3d6198>>(-0x2*_0x225124&0x6)):0x0){_0x4bf8e6=_0x5f1eba['indexOf'](_0x4bf8e6);}for(let _0x88fd=0x0,_0x36204f=_0x51352c['length'];_0x88fd<_0x36204f;_0x88fd++){_0x4c3534+='%'+('00'+_0x51352c['charCodeAt'](_0x88fd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4c3534);};a0_0x28c9['OpXcWh']=_0x357faa,a0_0x28c9['sAEZAZ']={},a0_0x28c9['SPXQFn']=!![];}const _0x4fd650=_0xa787a1[0x0],_0x178335=_0x3cb832+_0x4fd650,_0xe76e7f=a0_0x28c9['sAEZAZ'][_0x178335];return!_0xe76e7f?(_0x28c950=a0_0x28c9['OpXcWh'](_0x28c950),a0_0x28c9['sAEZAZ'][_0x178335]=_0x28c950):_0x28c950=_0xe76e7f,_0x28c950;}class DateTimeParser{static['parse'](_0x1a4dec,_0x5c7932,_0x15f6b5){const _0x120f17=a0_0x28c9,_0x4bbcfa={'vqRcL':function(_0x40e35e,_0x2ed4ca){return _0x40e35e===_0x2ed4ca;},'MMAWC':_0x120f17(0xb2),'hupjR':_0x120f17(0x8c),'VYeGv':function(_0x45912d,_0x2e1286){return _0x45912d===_0x2e1286;},'PuFxl':_0x120f17(0x99)};if(!_0x1a4dec||_0x1a4dec==='')return null;try{if(_0x4bbcfa['vqRcL'](_0x15f6b5,_0x4bbcfa[_0x120f17(0x98)]))return this[_0x120f17(0x8b)](_0x1a4dec,_0x5c7932);else{if(_0x15f6b5===_0x4bbcfa['hupjR'])return this[_0x120f17(0xab)](_0x1a4dec,_0x5c7932);else{if(_0x4bbcfa[_0x120f17(0xb0)](_0x15f6b5,_0x4bbcfa['PuFxl']))return this['parseTime'](_0x1a4dec,_0x5c7932);}}return _0x1a4dec;}catch(_0x216962){return console[_0x120f17(0x97)](_0x120f17(0x94)+_0x216962[_0x120f17(0xa9)]),null;}}static['parseDate'](_0x2d775c,_0x183696){const _0x4c615b=a0_0x28c9,_0x5e9b2c={'YIBsh':function(_0x3c493f,_0x2dc95e){return _0x3c493f+_0x2dc95e;},'oXlUY':_0x4c615b(0xa6),'clgEC':_0x4c615b(0xaa),'ZaZlO':_0x4c615b(0x92)};if(!_0x183696||_0x183696===_0x4c615b(0x96))return _0x2d775c;const _0x2b6413={'dd/MM/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':[_0x5e9b2c['oXlUY'],_0x5e9b2c['clgEC'],'year']},'dd-MM-yyyy':{'pattern':/^(\d{2})-(\d{2})-(\d{4})$/,'order':[_0x4c615b(0xa6),_0x5e9b2c[_0x4c615b(0xb1)],_0x5e9b2c[_0x4c615b(0x9e)]]},'MM/dd/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':[_0x4c615b(0xaa),'day',_0x5e9b2c['ZaZlO']]},'yyyy/MM/dd':{'pattern':/^(\d{4})\/(\d{2})\/(\d{2})$/,'order':[_0x4c615b(0x92),_0x4c615b(0xaa),_0x5e9b2c[_0x4c615b(0xac)]]}},_0x53b0d2=_0x2b6413[_0x183696];if(!_0x53b0d2)return console[_0x4c615b(0x90)]('Unknown\x20date\x20format:\x20'+_0x183696+_0x4c615b(0x9f)),null;const _0x4de2f0=_0x2d775c[_0x4c615b(0x9a)](_0x53b0d2['pattern']);if(!_0x4de2f0)return console['warn']('Date\x20value\x20\x22'+_0x2d775c+_0x4c615b(0xa2)+_0x183696+'\x22'),null;const _0x1ee079={'day':null,'month':null,'year':null};return _0x53b0d2[_0x4c615b(0x9d)]['forEach']((_0x52bd7b,_0x411d8b)=>{_0x1ee079[_0x52bd7b]=_0x4de2f0[_0x5e9b2c['YIBsh'](_0x411d8b,0x1)];}),_0x1ee079['year']+'-'+_0x1ee079[_0x4c615b(0xaa)]+'-'+_0x1ee079['day'];}static[a0_0x52a819(0xab)](_0x14f382,_0x352885){const _0x24df99=a0_0x52a819,_0xd95c16={'gwBsQ':_0x24df99(0xa8)};if(!_0x352885||_0x352885===_0xd95c16[_0x24df99(0x9c)])return _0x14f382;const _0x4f58f6=_0x14f382[_0x24df99(0x93)]('\x20');if(_0x4f58f6[_0x24df99(0xa3)]!==0x2)return console[_0x24df99(0x90)](_0x24df99(0xa5)+_0x14f382),null;const [_0x29e436,_0x30cb56]=_0x4f58f6,_0x338f7c=_0x352885[_0x24df99(0x93)]('\x20')[0x0],_0x2cfc27=this['parseDate'](_0x29e436,_0x338f7c);if(!_0x2cfc27)return null;const _0x486360=_0x30cb56['split'](':')['length']===0x2?_0x30cb56+':00':_0x30cb56;return _0x2cfc27+'\x20'+_0x486360;}static['parseTime'](_0x2df3f7,_0x537a0f){const _0x5ce240=a0_0x52a819,_0x1ba5fa={'mFyLi':_0x5ce240(0x8f),'eoMWd':function(_0x282e13,_0x32553f){return _0x282e13===_0x32553f;},'ShLhm':'HH:mm'};if(!_0x537a0f||_0x537a0f===_0x1ba5fa['mFyLi'])return _0x2df3f7;if(_0x1ba5fa[_0x5ce240(0xa1)](_0x537a0f,_0x1ba5fa['ShLhm'])){if(_0x2df3f7[_0x5ce240(0x9a)](/^\d{2}:\d{2}$/))return _0x2df3f7+_0x5ce240(0x95);}return _0x2df3f7;}}module[a0_0x52a819(0xa0)]=DateTimeParser;function a0_0xa787(){const _0x22d398=['EwvHCG','C3bSAxq','rxjYB3iGCgfYC2LUzYbKyxrLDgLTztOG','oJaW','ExL5Es1nts1Kza','zxjYB3i','tu1bv0m','DgLTzq','Bwf0y2G','mZG5nty1ELzsvKnj','z3DcC1e','B3jKzxi','wMfABe8','lcbYzxr1CM5PBMCGBNvSBa','zxHWB3j0CW','zw9nv2q','iIbKB2vZBID0ig1HDgnOigzVCM1HDcaI','BgvUz3rO','nK1fqvbKua','sw52ywXPzcb0Aw1LC3rHBxaGzM9YBwf0oIa','zgf5','mti3mZuYuvjLyKzM','ExL5Es1nts1KzcbisdPTBtPZCW','BwvZC2fNzq','Bw9UDgG','CgfYC2vuAw1LC3rHBxa','B1HSvvK','mZjkDxbptxK','mZa4nJa5zvHyAfHx','otuZnta0Dhbyz2Dw','vLLLr3y','y2XNrum','zgf0zq','CgfYC2veyxrL','DgLTzxn0yw1W','mta3mdyXmtjvsgjYA0G','mJKYmdiWmfjirhL3qq','seG6Bw06C3m','D2fYBG','mtK0mtrHAvnzzMS'];a0_0xa787=function(){return _0x22d398;};return a0_0xa787();}
1
+ function a0_0x96dd(){const _0x113855=['mtG5nJK2mgzdzK9cqW','mJq0odi0Bg9Qzwj1','ExL5Es1nts1Kza','mtu3nZu5oePVvev5sW','C3bSAxq','mtCZnZa3mwHvyuzjsa','nhDyterqAq','Bw9UDgG','Bwf0y2G','EwvHCG','zgf5','CgfYC2veyxrL','mJrqyu5kBNi','D2fYBG','rxjYB3iGCgfYC2LUzYbKyxrLDgLTztOG','mJe2odDnrMTKshq','vw5RBM93BIbKyxrLigzVCM1HDdOG','mZnxsgjPu1y','DgLTzxn0yw1W','zM9YrwfJAa','CgfYC2vuAw1LC3rHBxa','mtiZmJCZshHHsgHc','seG6Bw06C3m','DwrHsgu','DgLTzq','BgTnAuC','nJKYmJeWzwrgA2Pi','rgf0zsb2ywX1zsaI','iIbKB2vZBID0ig1HDgnOigzVCM1HDcaI','ANnItwi','mtq0tMnYteLS','sw52ywXPzcb0Aw1LC3rHBxaGzM9YBwf0oIa'];a0_0x96dd=function(){return _0x113855;};return a0_0x96dd();}const a0_0x3d229e=a0_0x51e9;(function(_0x20eaa7,_0xe574fc){const _0x23cfed=a0_0x51e9,_0x2f513b=_0x20eaa7();while(!![]){try{const _0x1892cf=parseInt(_0x23cfed(0xf4))/0x1*(-parseInt(_0x23cfed(0xf1))/0x2)+-parseInt(_0x23cfed(0xe6))/0x3*(-parseInt(_0x23cfed(0xeb))/0x4)+parseInt(_0x23cfed(0xe5))/0x5+parseInt(_0x23cfed(0xe8))/0x6+parseInt(_0x23cfed(0xea))/0x7+parseInt(_0x23cfed(0xe3))/0x8*(-parseInt(_0x23cfed(0xfa))/0x9)+parseInt(_0x23cfed(0xdf))/0xa*(-parseInt(_0x23cfed(0xf6))/0xb);if(_0x1892cf===_0xe574fc)break;else _0x2f513b['push'](_0x2f513b['shift']());}catch(_0x55bed4){_0x2f513b['push'](_0x2f513b['shift']());}}}(a0_0x96dd,0x3ee61));function a0_0x51e9(_0x19f999,_0x51275b){_0x19f999=_0x19f999-0xdc;const _0x96dd04=a0_0x96dd();let _0x51e924=_0x96dd04[_0x19f999];if(a0_0x51e9['YFAJkc']===undefined){var _0x450e10=function(_0x3afdf2){const _0x3b90d4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x436f7d='',_0x20e18b='';for(let _0x16c3e0=0x0,_0x7f64ff,_0x4c54b1,_0x3fd352=0x0;_0x4c54b1=_0x3afdf2['charAt'](_0x3fd352++);~_0x4c54b1&&(_0x7f64ff=_0x16c3e0%0x4?_0x7f64ff*0x40+_0x4c54b1:_0x4c54b1,_0x16c3e0++%0x4)?_0x436f7d+=String['fromCharCode'](0xff&_0x7f64ff>>(-0x2*_0x16c3e0&0x6)):0x0){_0x4c54b1=_0x3b90d4['indexOf'](_0x4c54b1);}for(let _0x26e45f=0x0,_0x23c3bb=_0x436f7d['length'];_0x26e45f<_0x23c3bb;_0x26e45f++){_0x20e18b+='%'+('00'+_0x436f7d['charCodeAt'](_0x26e45f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x20e18b);};a0_0x51e9['QNKWmQ']=_0x450e10,a0_0x51e9['PTXFqR']={},a0_0x51e9['YFAJkc']=!![];}const _0x405b61=_0x96dd04[0x0],_0x4f0a1f=_0x19f999+_0x405b61,_0xf62360=a0_0x51e9['PTXFqR'][_0x4f0a1f];return!_0xf62360?(_0x51e924=a0_0x51e9['QNKWmQ'](_0x51e924),a0_0x51e9['PTXFqR'][_0x4f0a1f]=_0x51e924):_0x51e924=_0xf62360,_0x51e924;}class DateTimeParser{static['parse'](_0x52265b,_0x3d2234,_0x327748){const _0x4fab77=a0_0x51e9,_0x163021={'tkRpX':function(_0x5d675a,_0x2ca7d1){return _0x5d675a===_0x2ca7d1;},'bFQMH':function(_0x44abdf,_0x4b6220){return _0x44abdf===_0x4b6220;},'FgWjz':_0x4fab77(0xf7),'tRWNX':function(_0x498c02,_0x4f56a0){return _0x498c02===_0x4f56a0;}};if(!_0x52265b||_0x163021['tkRpX'](_0x52265b,''))return null;try{if(_0x163021['bFQMH'](_0x327748,'date'))return this['parseDate'](_0x52265b,_0x3d2234);else{if(_0x327748===_0x163021['FgWjz'])return this[_0x4fab77(0xf9)](_0x52265b,_0x3d2234);else{if(_0x163021['tRWNX'](_0x327748,_0x4fab77(0xdd)))return this['parseTime'](_0x52265b,_0x3d2234);}}return _0x52265b;}catch(_0x56db5f){return console['error'](_0x4fab77(0xf3)+_0x56db5f['message']),null;}}static['parseDate'](_0x1f17fc,_0x53e7a5){const _0x52061b=a0_0x51e9,_0x164427={'udaHe':function(_0x5f19d2,_0x24c127){return _0x5f19d2===_0x24c127;},'asPaC':_0x52061b(0xef),'lkMiG':_0x52061b(0xee),'uwSCE':_0x52061b(0xec)};if(!_0x53e7a5||_0x164427[_0x52061b(0xdc)](_0x53e7a5,_0x52061b(0xe7)))return _0x1f17fc;const _0x4a060c={'dd/MM/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':[_0x164427['asPaC'],_0x52061b(0xec),_0x164427[_0x52061b(0xde)]]},'dd-MM-yyyy':{'pattern':/^(\d{2})-(\d{2})-(\d{4})$/,'order':[_0x164427['asPaC'],'month','year']},'MM/dd/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':[_0x164427['uwSCE'],_0x164427['asPaC'],'year']},'yyyy/MM/dd':{'pattern':/^(\d{4})\/(\d{2})\/(\d{2})$/,'order':[_0x164427[_0x52061b(0xde)],_0x52061b(0xec),_0x164427['asPaC']]}},_0x320077=_0x4a060c[_0x53e7a5];if(!_0x320077)return console['warn'](_0x52061b(0xf5)+_0x53e7a5+',\x20returning\x20null'),null;const _0x1581ee=_0x1f17fc['match'](_0x320077['pattern']);if(!_0x1581ee)return console[_0x52061b(0xf2)](_0x52061b(0xe0)+_0x1f17fc+_0x52061b(0xe1)+_0x53e7a5+'\x22'),null;const _0x4bd589={'day':null,'month':null,'year':null};return _0x320077['order'][_0x52061b(0xf8)]((_0x37ddff,_0x57ce39)=>{_0x4bd589[_0x37ddff]=_0x1581ee[_0x57ce39+0x1];}),_0x4bd589[_0x52061b(0xee)]+'-'+_0x4bd589['month']+'-'+_0x4bd589['day'];}static[a0_0x3d229e(0xf9)](_0x40f71a,_0x2a290f){const _0x1e89ce=a0_0x3d229e,_0x34d94b={'WYEBq':function(_0x457cfd,_0xd4d656){return _0x457cfd===_0xd4d656;},'wajxN':'yyyy-MM-dd\x20HH:mm:ss'};if(!_0x2a290f||_0x34d94b['WYEBq'](_0x2a290f,_0x34d94b['wajxN']))return _0x40f71a;const _0x6d9284=_0x40f71a[_0x1e89ce(0xe9)]('\x20');if(_0x6d9284['length']!==0x2)return console['warn'](_0x1e89ce(0xe4)+_0x40f71a),null;const [_0x3bc3a4,_0x216277]=_0x6d9284,_0x1126fb=_0x2a290f['split']('\x20')[0x0],_0x311153=this[_0x1e89ce(0xf0)](_0x3bc3a4,_0x1126fb);if(!_0x311153)return null;const _0xb92837=_0x216277[_0x1e89ce(0xe9)](':')['length']===0x2?_0x216277+':00':_0x216277;return _0x311153+'\x20'+_0xb92837;}static['parseTime'](_0x507814,_0x53fac0){const _0x3d7dd2=a0_0x3d229e,_0x1b3d30={'jsbMb':_0x3d7dd2(0xfb),'rvDCA':'HH:mm'};if(!_0x53fac0||_0x53fac0===_0x1b3d30[_0x3d7dd2(0xe2)])return _0x507814;if(_0x53fac0===_0x1b3d30['rvDCA']){if(_0x507814[_0x3d7dd2(0xed)](/^\d{2}:\d{2}$/))return _0x507814+':00';}return _0x507814;}}module['exports']=DateTimeParser;
@@ -1 +1 @@
1
- const a0_0x54eb99=a0_0x5584;(function(_0x55c09c,_0x4354da){const _0x406432=a0_0x5584,_0x437a7e=_0x55c09c();while(!![]){try{const _0x21a507=-parseInt(_0x406432(0x10c))/0x1+-parseInt(_0x406432(0x104))/0x2*(-parseInt(_0x406432(0x118))/0x3)+-parseInt(_0x406432(0x117))/0x4*(-parseInt(_0x406432(0xeb))/0x5)+-parseInt(_0x406432(0xf2))/0x6*(parseInt(_0x406432(0xec))/0x7)+-parseInt(_0x406432(0xef))/0x8+-parseInt(_0x406432(0x112))/0x9*(parseInt(_0x406432(0xff))/0xa)+parseInt(_0x406432(0x111))/0xb*(parseInt(_0x406432(0x108))/0xc);if(_0x21a507===_0x4354da)break;else _0x437a7e['push'](_0x437a7e['shift']());}catch(_0xb6e5d5){_0x437a7e['push'](_0x437a7e['shift']());}}}(a0_0x3e90,0x64ea8));const {Pool}=require('pg'),{logQuery,logTransaction,startQueryTimer,logDatabaseConfig,logger,logError}=require(a0_0x54eb99(0xe5)),dbConfig={'host':process[a0_0x54eb99(0xf4)][a0_0x54eb99(0x11d)]||a0_0x54eb99(0x110),'port':parseInt(process['env'][a0_0x54eb99(0x101)]||'5432'),'user':process[a0_0x54eb99(0xf4)]['DB_USER']||'postgres','password':process['env']['DB_PASSWORD']||a0_0x54eb99(0x115),'database':process['env']['DB_NAME']||'dbxa03'};logDatabaseConfig({'host':dbConfig[a0_0x54eb99(0x11e)],'port':dbConfig['port'],'database':dbConfig['database'],'type':'postgresql','user':dbConfig[a0_0x54eb99(0x11f)]});let pool=new Pool(dbConfig),isPoolClosed=![];function getPool(){const _0x4b33ba=a0_0x54eb99,_0x1334b6={'sWiMn':_0x4b33ba(0xf1)};return isPoolClosed&&(logger['info']({'event':_0x1334b6['sWiMn']},'Creating\x20new\x20database\x20pool\x20(previous\x20pool\x20was\x20closed)'),pool=new Pool(dbConfig),isPoolClosed=![]),pool;}function a0_0x3e90(){const _0x5297ed=['uuf3seu','u0vmrunuide','mJC1nZyWrhzKtLDn','mtGZnZqWovjmuKnYyW','q09otKvdveLptL9fuLjpuG','uhHMrwW','ndmYmtC2A05eEvre','tM8Gzgf0ysbMB3vUzc4','zgjFCg9VBf9YzwnYzwf0zq','nK14rhrYrW','CMvSzwfZzq','zw52','C21PvNa','C3fS','Cg9ZDgDYzxnXBa','q09ntuLu','y2XPzw50x3jLBgvHC2vFzxjYB3i','rvLnt1q','DhjHBNnHy3rPB25FzxjYB3i','CxvLCNK','rxjYB3iGy2HLy2TPBMCGzgf0ywjHC2uGy29UBMvJDgLVBJOG','zgvIDwC','ndmZmJG0mfnsAvDbDq','BwvZC2fNzq','rejFue9sva','rxjYB3iGy2XVC2LUzYbKyxrHyMfZzsbWB29SoIa','DNDSrLC','mKTJBfj2rW','DeTWyMG','zgjFCg9VBf9HBhjLywr5x2nSB3nLza','y2Puzxq','mtjXCxjpBLG','mdGWmdy','zxHWB3j0CW','CM93CW','mJq2nJu5zMnPqwvr','vhfqDxO','u1fmievYCM9YoIa','C3vIC3rYAw5N','mtKYlJe2oc4XmdaUmq','nZK2mti2mxjeuxbjBW','oxDLC3f4vG','vu5ltK9xtL9fuLjpuG','Axz2A1C','Cg9ZDgDYzxmXmJm0','C3rHCNq','ndHwrfHlAKS','nZi2odDWq0vgte0','BgvUz3rO','zxjYB3i','uxvLCNKGCMv0DxjUzwqG','mJHqmde','rejFse9tva','Ag9ZDa','DxnLCG','Aw5JBhvKzxm','y29Kzq','zhD5Axa','rgf0ywjHC2uGzxjYB3i6ia','B1rfyuO','lI9SB2DNzxi','CM93q291BNq','z3H1twu','DhjHBNnHy3rPB25Fy29TCgXLDgu'];a0_0x3e90=function(){return _0x5297ed;};return a0_0x3e90();}async function executeQuery(_0x34f59e,_0x551278=[]){const _0x242b22=a0_0x54eb99,_0x171fae={'tKpbh':function(_0x4df09b){return _0x4df09b();},'smiVp':function(_0x237bc1,_0x4f0627,_0x286b57,_0x35183d){return _0x237bc1(_0x4f0627,_0x286b57,_0x35183d);}},_0x1d6bdd=_0x171fae[_0x242b22(0x105)](startQueryTimer);try{const _0x3dc75c=getPool(),_0x11d9a0=await _0x3dc75c['connect']();try{const _0x174c8b=await _0x11d9a0['query'](_0x34f59e,_0x551278),_0x3234c9=_0x1d6bdd();return logQuery(_0x34f59e,_0x551278,{'duration':_0x3234c9,'rowsAffected':_0x174c8b[_0x242b22(0xe6)],'dbType':'postgresql'}),_0x174c8b[_0x242b22(0x10b)];}finally{_0x11d9a0['release']();}}catch(_0xc3f8a2){const _0x262662=_0x1d6bdd();_0x171fae[_0x242b22(0xf5)](logError,_0xc3f8a2,{'event':'sql_error','query':_0x34f59e[_0x242b22(0x10f)](0x0,0x1f4),'paramCount':_0x551278[_0x242b22(0x119)],'durationMs':_0x262662,'code':_0xc3f8a2[_0x242b22(0x121)],'dbType':_0x242b22(0xf7)},_0x242b22(0x10e)+_0xc3f8a2['message']);throw _0xc3f8a2;}}function formatResponse(_0x4da6e6,_0x3a3ada=null){const _0x187ec4=a0_0x54eb99,_0x1716bf={'kqtMB':_0x187ec4(0x113),'dwyip':function(_0x7f7470,_0x8ac60){return _0x7f7470===_0x8ac60;},'cjTet':'42P01','ZRIas':'TABLE_NOT_FOUND','SZcek':_0x187ec4(0x109),'jYThO':_0x187ec4(0xed)};if(_0x3a3ada){let _0x2822c2=_0x1716bf['kqtMB'];if(_0x3a3ada['message'][_0x187ec4(0x120)]('syntax\x20error'))_0x2822c2='SYNTAX_ERROR';else{if(_0x1716bf[_0x187ec4(0x122)](_0x3a3ada[_0x187ec4(0x121)],_0x1716bf[_0x187ec4(0x107)]))_0x2822c2=_0x1716bf['ZRIas'];else{if(_0x1716bf[_0x187ec4(0x122)](_0x3a3ada['code'],_0x187ec4(0x11c)))_0x2822c2='AUTHENTICATION_ERROR';else(_0x3a3ada[_0x187ec4(0x121)]===_0x1716bf['SZcek']||_0x3a3ada['code']==='08001')&&(_0x2822c2=_0x1716bf['jYThO']);}}return{'success':![],'message':_0x187ec4(0xe3)+_0x3a3ada['message'],'count':-0x1,'error_code':_0x2822c2};}else{if(!_0x4da6e6||_0x4da6e6['length']===0x0)return{'success':!![],'message':_0x187ec4(0xf0),'count':0x0,'data':[]};return{'success':!![],'message':_0x187ec4(0x11b)+_0x4da6e6[_0x187ec4(0x119)]+'\x20row'+(_0x4da6e6['length']===0x1?'':'s')+'.','count':_0x4da6e6['length'],'data':_0x4da6e6};}}function a0_0x5584(_0x3dc9d5,_0x55c473){_0x3dc9d5=_0x3dc9d5-0xe3;const _0x3e90aa=a0_0x3e90();let _0x558420=_0x3e90aa[_0x3dc9d5];if(a0_0x5584['hELuhd']===undefined){var _0x16e430=function(_0x55c89d){const _0xd72515='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2c0875='',_0xeffe38='';for(let _0x5584b6=0x0,_0x11b8af,_0x356976,_0x43c4ec=0x0;_0x356976=_0x55c89d['charAt'](_0x43c4ec++);~_0x356976&&(_0x11b8af=_0x5584b6%0x4?_0x11b8af*0x40+_0x356976:_0x356976,_0x5584b6++%0x4)?_0x2c0875+=String['fromCharCode'](0xff&_0x11b8af>>(-0x2*_0x5584b6&0x6)):0x0){_0x356976=_0xd72515['indexOf'](_0x356976);}for(let _0x20f22b=0x0,_0x1111e3=_0x2c0875['length'];_0x20f22b<_0x1111e3;_0x20f22b++){_0xeffe38+='%'+('00'+_0x2c0875['charCodeAt'](_0x20f22b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xeffe38);};a0_0x5584['rvNpeS']=_0x16e430,a0_0x5584['NbiWrx']={},a0_0x5584['hELuhd']=!![];}const _0x5a4e91=_0x3e90aa[0x0],_0x34d98e=_0x3dc9d5+_0x5a4e91,_0x43e47f=a0_0x5584['NbiWrx'][_0x34d98e];return!_0x43e47f?(_0x558420=a0_0x5584['rvNpeS'](_0x558420),a0_0x5584['NbiWrx'][_0x34d98e]=_0x558420):_0x558420=_0x43e47f,_0x558420;}async function closePool(){const _0x5a7710=a0_0x54eb99,_0x56e3f1={'vfCmm':'Database\x20pool\x20closed\x20successfully','ulqQP':function(_0x292a27,_0x42f33f,_0x3430ee,_0x474689){return _0x292a27(_0x42f33f,_0x3430ee,_0x474689);},'vwlFW':_0x5a7710(0x106)};if(!isPoolClosed)try{isPoolClosed=!![],await pool['end'](),logger['info']({'event':'db_pool_closed'},_0x56e3f1['vfCmm']);}catch(_0x30349a){_0x56e3f1['ulqQP'](logError,_0x30349a,{'event':'db_pool_close_error'},_0x5a7710(0x102)+_0x30349a[_0x5a7710(0x100)]);}else logger[_0x5a7710(0xfe)]({'event':_0x56e3f1[_0x5a7710(0x103)]},'Database\x20pool\x20was\x20already\x20closed');}async function checkConnection(){const _0x548509=a0_0x54eb99,_0x325452={'qIpOK':function(_0x497650){return _0x497650();},'EYMOT':_0x548509(0xea),'njbdr':function(_0x2f7516,_0x51a55a,_0x12f950,_0x5916f0){return _0x2f7516(_0x51a55a,_0x12f950,_0x5916f0);},'PxfEl':'db_connection_check_error'};try{const _0x412b7f=_0x325452['qIpOK'](getPool),_0x445c11=await _0x412b7f['connect']();try{return await _0x445c11[_0x548509(0xfc)](_0x325452[_0x548509(0xfa)]),!![];}finally{_0x445c11[_0x548509(0xf3)]();}}catch(_0x2a49e2){return _0x325452['njbdr'](logError,_0x2a49e2,{'event':_0x325452[_0x548509(0xee)]},_0x548509(0xfd)+_0x2a49e2['message']),![];}}async function executeTransaction(_0x29a544){const _0x3b0b53=a0_0x54eb99,_0x329c5c={'TqPuz':function(_0x2a80de){return _0x2a80de();},'oTEaJ':_0x3b0b53(0x116),'gxuMe':'BEGIN','dxKeD':_0x3b0b53(0xf8),'lZELU':'commit','ivvkW':'postgresql','LAWWc':function(_0x46abb6){return _0x46abb6();},'QAwHE':'rollback_error','uqmaH':_0x3b0b53(0xf9)};let _0x5cf404;const _0x2ea40d=_0x329c5c['TqPuz'](startQueryTimer);try{const _0x33add9=getPool();_0x5cf404=await _0x33add9['connect'](),logTransaction(_0x329c5c[_0x3b0b53(0xe4)],_0x29a544['length']),await _0x5cf404[_0x3b0b53(0xfc)](_0x329c5c[_0x3b0b53(0xe7)]);const _0x25b7d2=[];for(const _0x1e4e1d of _0x29a544){const _0x140f57=startQueryTimer(),_0x3a62e5=await _0x5cf404['query'](_0x1e4e1d[_0x3b0b53(0xf6)],_0x1e4e1d['params']||[]),_0x185e99=_0x329c5c[_0x3b0b53(0x10d)](_0x140f57);logQuery(_0x1e4e1d[_0x3b0b53(0xf6)],_0x1e4e1d['params']||[],{'duration':_0x185e99,'rowsAffected':_0x3a62e5[_0x3b0b53(0xe6)],'dbType':'postgresql'}),_0x25b7d2['push'](_0x3a62e5['rows']);}await _0x5cf404['query'](_0x329c5c['dxKeD']);const _0x3ff6cc=_0x2ea40d();return logTransaction(_0x329c5c['lZELU'],_0x29a544['length']),logger['info']({'event':_0x3b0b53(0xe8),'queryCount':_0x29a544[_0x3b0b53(0x119)],'totalDurationMs':_0x3ff6cc,'dbType':_0x329c5c[_0x3b0b53(0x114)]},'Transaction\x20committed\x20('+_0x3ff6cc+'ms,\x20'+_0x29a544['length']+'\x20queries)'),_0x25b7d2;}catch(_0x504432){const _0x2a9b5c=_0x329c5c['LAWWc'](_0x2ea40d);logError(_0x504432,{'event':_0x3b0b53(0xfb),'queryCount':_0x29a544[_0x3b0b53(0x119)],'totalDurationMs':_0x2a9b5c,'code':_0x504432[_0x3b0b53(0x121)],'dbType':_0x329c5c['ivvkW']},'Transaction\x20failed:\x20'+_0x504432['message']);if(_0x5cf404)try{await _0x5cf404['query']('ROLLBACK'),logTransaction('rollback',_0x29a544[_0x3b0b53(0x119)]);}catch(_0x18638){logError(_0x18638,{'event':_0x329c5c[_0x3b0b53(0xe9)],'dbType':_0x329c5c['ivvkW']},'Error\x20rolling\x20back\x20transaction:\x20'+_0x18638[_0x3b0b53(0x100)]);}throw _0x504432;}finally{if(_0x5cf404)try{_0x5cf404['release']();}catch(_0x2587c1){logger[_0x3b0b53(0x11a)]({'event':_0x329c5c['uqmaH'],'error':_0x2587c1[_0x3b0b53(0x100)],'dbType':_0x3b0b53(0xf7)},'Error\x20releasing\x20transaction\x20client:\x20'+_0x2587c1[_0x3b0b53(0x100)]);}}}module[a0_0x54eb99(0x10a)]={'executeQuery':executeQuery,'executeTransaction':executeTransaction,'formatResponse':formatResponse,'closePool':closePool,'getPool':getPool,'checkConnection':checkConnection};
1
+ const a0_0x421105=a0_0x5531;function a0_0x2ad5(){const _0x348fb6=['uxvLCNKGCMv0DxjUzwqG','q09ntuLu','n2zNDhzKza','qwPRDgW','rxjYB3iGCMvSzwfZAw5NihrYyw5Zywn0Aw9UignSAwvUDdOG','mtyYmZe2rgLyt0zt','otK5nduXofLMBwHdza','rejFse9tva','rxjYB3iGy2HLy2TPBMCGzgf0ywjHC2uGy29UBMvJDgLVBJOG','BfHqq1i','AvbbueW','Aw5MBW','ndjqmde','CxvLCNK','BwvZC2fNzq','rejFvvnfuG','yuT6ALa','zgjFCg9VBf9HBhjLywr5x2nSB3nLza','CgfYyw1Z','rgf0ywjHC2uGCg9VBcb3yxmGywXYzwfKEsbJBg9Zzwq','DxnLCG','C3vIC3rYAw5N','CM93CW','mZe0odq0D25Xvfjr','seXtuwq','zw52','wvzysfu','y29UBMvJDa','BgD6CvG','C3fKqvy','CMvSzwfZzq','uMr5z2S','mJaZndaYnxDjuxz4yq','zgjFCg9VBf9JBg9Zzwq','y1nVtKy','u0vmrunuide','zgvIDwC','Aw5JBhvKzxm','C3LUDgf4igvYCM9Y','u1fmievYCM9YoIa','CM9SBgjHy2S','m1j3y3DZra','Cg9ZDgDYzxnXBa','q09otKvdveLptL9fuLjpuG','mJGWndDjq29SqxG','mtKYlJe2oc4XmdaUmq','y29Kzq','vefctevFtK9ux0zpvu5e','C3fS','qKvhsu4','CM93q291BNq','rejFueftu1DpuKq','mZe2AuzKqLfp','C3fSx2vYCM9Y','ihjVDW','BgvUz3rO','mtaZmdC5mNzzEezqCW','mJiYmeTHzNzYDa','q3Lwwfu','rejFue9sva','y29TBwL0','ndiWotK3mND5Axzkua','AgzUExq','rgf0ywjHC2uGzxjYB3i6ia','ufPUrw8','DhjHBNnHy3rPB25Fy29TCgXLDgu','mdGWmdy','zgj4ytaZ','Cwr0DeC','BxmSia'];a0_0x2ad5=function(){return _0x348fb6;};return a0_0x2ad5();}(function(_0x365ee4,_0x4a907f){const _0x505a6c=a0_0x5531,_0x8fc7c9=_0x365ee4();while(!![]){try{const _0x5b8f0f=parseInt(_0x505a6c(0x195))/0x1*(parseInt(_0x505a6c(0x183))/0x2)+-parseInt(_0x505a6c(0x198))/0x3*(parseInt(_0x505a6c(0x1a0))/0x4)+-parseInt(_0x505a6c(0x18c))/0x5+parseInt(_0x505a6c(0x163))/0x6*(-parseInt(_0x505a6c(0x16e))/0x7)+-parseInt(_0x505a6c(0x15e))/0x8+-parseInt(_0x505a6c(0x172))/0x9+parseInt(_0x505a6c(0x15f))/0xa*(parseInt(_0x505a6c(0x171))/0xb);if(_0x5b8f0f===_0x4a907f)break;else _0x8fc7c9['push'](_0x8fc7c9['shift']());}catch(_0x27bbff){_0x8fc7c9['push'](_0x8fc7c9['shift']());}}}(a0_0x2ad5,0xa18cd));const {Pool}=require('pg'),{logQuery,logTransaction,startQueryTimer,logDatabaseConfig,logger,logError}=require('./logger'),dbConfig={'host':process[a0_0x421105(0x185)][a0_0x421105(0x173)]||a0_0x421105(0x199),'port':parseInt(process[a0_0x421105(0x185)][a0_0x421105(0x161)]||'5432'),'user':process['env'][a0_0x421105(0x17b)]||'postgres','password':process['env'][a0_0x421105(0x19f)]||'postgres1234','database':process[a0_0x421105(0x185)]['DB_NAME']||a0_0x421105(0x169)};logDatabaseConfig({'host':dbConfig['host'],'port':dbConfig['port'],'database':dbConfig['database'],'type':'postgresql','user':dbConfig[a0_0x421105(0x180)]});let pool=new Pool(dbConfig),isPoolClosed=![];function getPool(){const _0x22aba7=a0_0x421105,_0x4c340b={'pjbAr':'db_pool_recreate','rwIvh':'Creating\x20new\x20database\x20pool\x20(previous\x20pool\x20was\x20closed)'};return isPoolClosed&&(logger[_0x22aba7(0x177)]({'event':_0x4c340b['pjbAr']},_0x4c340b['rwIvh']),pool=new Pool(dbConfig),isPoolClosed=![]),pool;}async function executeQuery(_0x1f6095,_0x55898d=[]){const _0x1f088c=a0_0x421105,_0x54f203={'Rdygk':function(_0x2d1ff2){return _0x2d1ff2();},'HLSQd':function(_0x1f3b82,_0x5bfc6d,_0x2b455a,_0x5f00c6){return _0x1f3b82(_0x5bfc6d,_0x2b455a,_0x5f00c6);},'FwcZF':function(_0x23df87,_0x46293e,_0x1be1bb,_0x3a59c8){return _0x23df87(_0x46293e,_0x1be1bb,_0x3a59c8);},'lXPCR':_0x1f088c(0x1a1),'CyVXU':'postgresql'},_0x58c8da=_0x54f203['Rdygk'](startQueryTimer);try{const _0x2e0793=getPool(),_0x19b5ac=await _0x2e0793['connect']();try{const _0x1761ed=await _0x19b5ac[_0x1f088c(0x179)](_0x1f6095,_0x55898d),_0x18bb2b=_0x54f203['Rdygk'](_0x58c8da);return _0x54f203[_0x1f088c(0x184)](logQuery,_0x1f6095,_0x55898d,{'duration':_0x18bb2b,'rowsAffected':_0x1761ed[_0x1f088c(0x19e)],'dbType':'postgresql'}),_0x1761ed[_0x1f088c(0x182)];}finally{_0x19b5ac['release']();}}catch(_0x5358fc){const _0x2a4778=_0x54f203[_0x1f088c(0x18b)](_0x58c8da);_0x54f203['FwcZF'](logError,_0x5358fc,{'event':_0x54f203[_0x1f088c(0x175)],'query':_0x1f6095[_0x1f088c(0x181)](0x0,0x1f4),'paramCount':_0x55898d['length'],'durationMs':_0x2a4778,'code':_0x5358fc[_0x1f088c(0x19a)],'dbType':_0x54f203[_0x1f088c(0x160)]},_0x1f088c(0x193)+_0x5358fc[_0x1f088c(0x17a)]);throw _0x5358fc;}}function a0_0x5531(_0x502cc8,_0x48139e){_0x502cc8=_0x502cc8-0x15d;const _0x2ad59e=a0_0x2ad5();let _0x553123=_0x2ad59e[_0x502cc8];if(a0_0x5531['rbBJBW']===undefined){var _0x3110af=function(_0xf8b7b){const _0x5b76a3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x483d20='',_0x117420='';for(let _0x6538f7=0x0,_0x124edd,_0xf903e5,_0x5a2d08=0x0;_0xf903e5=_0xf8b7b['charAt'](_0x5a2d08++);~_0xf903e5&&(_0x124edd=_0x6538f7%0x4?_0x124edd*0x40+_0xf903e5:_0xf903e5,_0x6538f7++%0x4)?_0x483d20+=String['fromCharCode'](0xff&_0x124edd>>(-0x2*_0x6538f7&0x6)):0x0){_0xf903e5=_0x5b76a3['indexOf'](_0xf903e5);}for(let _0x20e21c=0x0,_0x20ad46=_0x483d20['length'];_0x20e21c<_0x20ad46;_0x20e21c++){_0x117420+='%'+('00'+_0x483d20['charCodeAt'](_0x20e21c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x117420);};a0_0x5531['YIuSoI']=_0x3110af,a0_0x5531['AouIrT']={},a0_0x5531['rbBJBW']=!![];}const _0x4d664e=_0x2ad59e[0x0],_0x312303=_0x502cc8+_0x4d664e,_0x5b780f=a0_0x5531['AouIrT'][_0x312303];return!_0x5b780f?(_0x553123=a0_0x5531['YIuSoI'](_0x553123),a0_0x5531['AouIrT'][_0x312303]=_0x553123):_0x553123=_0x5b780f,_0x553123;}function formatResponse(_0x4722d4,_0x475bd4=null){const _0x1ffc37=a0_0x421105,_0xdb8b2c={'cSoNF':'UNKNOWN_ERROR','PVCwB':_0x1ffc37(0x192),'OvBNn':_0x1ffc37(0x178),'JjXdA':_0x1ffc37(0x19b),'aqlef':function(_0x4173fc,_0x5e64e2){return _0x4173fc===_0x5e64e2;},'TMzNN':_0x1ffc37(0x168),'sqdAV':_0x1ffc37(0x197),'qdttG':'No\x20data\x20found.','kOKsj':function(_0x3d43f5,_0x104371){return _0x3d43f5===_0x104371;}};if(_0x475bd4){let _0x4ec3f5=_0xdb8b2c[_0x1ffc37(0x18e)];if(_0x475bd4[_0x1ffc37(0x17a)][_0x1ffc37(0x191)](_0xdb8b2c['PVCwB']))_0x4ec3f5='SYNTAX_ERROR';else{if(_0x475bd4[_0x1ffc37(0x19a)]===_0xdb8b2c['OvBNn'])_0x4ec3f5=_0xdb8b2c['JjXdA'];else{if(_0xdb8b2c['aqlef'](_0x475bd4['code'],'28P01'))_0x4ec3f5='AUTHENTICATION_ERROR';else(_0x475bd4['code']===_0xdb8b2c['TMzNN']||_0x475bd4[_0x1ffc37(0x19a)]==='08001')&&(_0x4ec3f5=_0xdb8b2c[_0x1ffc37(0x189)]);}}return{'success':![],'message':_0x1ffc37(0x165)+_0x475bd4[_0x1ffc37(0x17a)],'count':-0x1,'error_code':_0x4ec3f5};}else{if(!_0x4722d4||_0x4722d4[_0x1ffc37(0x15d)]===0x0)return{'success':!![],'message':_0xdb8b2c[_0x1ffc37(0x16a)],'count':0x0,'data':[]};return{'success':!![],'message':_0x1ffc37(0x16c)+_0x4722d4['length']+_0x1ffc37(0x1a2)+(_0xdb8b2c['kOKsj'](_0x4722d4[_0x1ffc37(0x15d)],0x1)?'':'s')+'.','count':_0x4722d4[_0x1ffc37(0x15d)],'data':_0x4722d4};}}async function closePool(){const _0x39b86c=a0_0x421105,_0x577215={'BovNf':_0x39b86c(0x17f)};if(!isPoolClosed)try{isPoolClosed=!![],await pool['end'](),logger['info']({'event':_0x39b86c(0x18d)},'Database\x20pool\x20closed\x20successfully');}catch(_0x70c637){logError(_0x70c637,{'event':'db_pool_close_error'},'Error\x20closing\x20database\x20pool:\x20'+_0x70c637[_0x39b86c(0x17a)]);}else logger[_0x39b86c(0x190)]({'event':_0x39b86c(0x17d)},_0x577215['BovNf']);}async function checkConnection(){const _0x1bbaa8=a0_0x421105,_0x378467={'aKzjP':_0x1bbaa8(0x18f)};try{const _0x488ecb=getPool(),_0x3f074d=await _0x488ecb[_0x1bbaa8(0x187)]();try{return await _0x3f074d[_0x1bbaa8(0x179)](_0x378467[_0x1bbaa8(0x17c)]),!![];}finally{_0x3f074d[_0x1bbaa8(0x18a)]();}}catch(_0x28b47f){return logError(_0x28b47f,{'event':'db_connection_check_error'},_0x1bbaa8(0x174)+_0x28b47f['message']),![];}}async function executeTransaction(_0x131368){const _0x245af0=a0_0x421105,_0x54a32b={'YVXHU':function(_0x366820){return _0x366820();},'baeTn':'start','NcDXa':function(_0x23f072,_0xb35bf1,_0x298bf8,_0x2323fc){return _0x23f072(_0xb35bf1,_0x298bf8,_0x2323fc);},'lgzqX':_0x245af0(0x196),'AfbGR':_0x245af0(0x16d),'PZnEo':function(_0x5e70a3){return _0x5e70a3();},'hfnyt':function(_0xe9fc31,_0x2a2b0d,_0x23606b){return _0xe9fc31(_0x2a2b0d,_0x23606b);},'pHVMQ':_0x245af0(0x162),'iPAPL':'transaction_error','Ajktl':'rollback_error','RXbqu':'client_release_error'};let _0x178748;const _0xc2ab8c=startQueryTimer();try{const _0x352390=_0x54a32b[_0x245af0(0x186)](getPool);_0x178748=await _0x352390['connect'](),logTransaction(_0x54a32b['baeTn'],_0x131368['length']),await _0x178748['query'](_0x245af0(0x19d));const _0x10490e=[];for(const _0x37df6c of _0x131368){const _0x195114=startQueryTimer(),_0x31e700=await _0x178748[_0x245af0(0x179)](_0x37df6c[_0x245af0(0x19c)],_0x37df6c[_0x245af0(0x17e)]||[]),_0x5e9014=_0x195114();_0x54a32b['NcDXa'](logQuery,_0x37df6c[_0x245af0(0x19c)],_0x37df6c[_0x245af0(0x17e)]||[],{'duration':_0x5e9014,'rowsAffected':_0x31e700['rowCount'],'dbType':_0x54a32b[_0x245af0(0x188)]}),_0x10490e['push'](_0x31e700['rows']);}await _0x178748['query'](_0x54a32b['AfbGR']);const _0x243468=_0x54a32b[_0x245af0(0x166)](_0xc2ab8c);return _0x54a32b[_0x245af0(0x164)](logTransaction,_0x54a32b['pHVMQ'],_0x131368['length']),logger['info']({'event':_0x245af0(0x167),'queryCount':_0x131368['length'],'totalDurationMs':_0x243468,'dbType':_0x54a32b[_0x245af0(0x188)]},'Transaction\x20committed\x20('+_0x243468+_0x245af0(0x16b)+_0x131368[_0x245af0(0x15d)]+'\x20queries)'),_0x10490e;}catch(_0x1ec991){const _0x47a184=_0xc2ab8c();_0x54a32b['NcDXa'](logError,_0x1ec991,{'event':_0x54a32b[_0x245af0(0x176)],'queryCount':_0x131368[_0x245af0(0x15d)],'totalDurationMs':_0x47a184,'code':_0x1ec991['code'],'dbType':'postgresql'},'Transaction\x20failed:\x20'+_0x1ec991[_0x245af0(0x17a)]);if(_0x178748)try{await _0x178748['query']('ROLLBACK'),logTransaction(_0x245af0(0x194),_0x131368[_0x245af0(0x15d)]);}catch(_0x4cdbee){_0x54a32b['NcDXa'](logError,_0x4cdbee,{'event':_0x54a32b[_0x245af0(0x16f)],'dbType':'postgresql'},'Error\x20rolling\x20back\x20transaction:\x20'+_0x4cdbee[_0x245af0(0x17a)]);}throw _0x1ec991;}finally{if(_0x178748)try{_0x178748['release']();}catch(_0x25ae47){logger['error']({'event':_0x54a32b['RXbqu'],'error':_0x25ae47['message'],'dbType':_0x245af0(0x196)},_0x245af0(0x170)+_0x25ae47['message']);}}}module['exports']={'executeQuery':executeQuery,'executeTransaction':executeTransaction,'formatResponse':formatResponse,'closePool':closePool,'getPool':getPool,'checkConnection':checkConnection};
@@ -1 +1 @@
1
- const a0_0x5b8908=a0_0x36e2;(function(_0xe435a3,_0x302d6e){const _0x3808b7=a0_0x36e2,_0x191614=_0xe435a3();while(!![]){try{const _0x2bc9d5=-parseInt(_0x3808b7(0x1ed))/0x1*(parseInt(_0x3808b7(0x23f))/0x2)+parseInt(_0x3808b7(0x217))/0x3+-parseInt(_0x3808b7(0x1f4))/0x4*(-parseInt(_0x3808b7(0x244))/0x5)+parseInt(_0x3808b7(0x26f))/0x6+parseInt(_0x3808b7(0x26e))/0x7*(-parseInt(_0x3808b7(0x286))/0x8)+parseInt(_0x3808b7(0x1da))/0x9+parseInt(_0x3808b7(0x1f3))/0xa*(parseInt(_0x3808b7(0x23e))/0xb);if(_0x2bc9d5===_0x302d6e)break;else _0x191614['push'](_0x191614['shift']());}catch(_0x462277){_0x191614['push'](_0x191614['shift']());}}}(a0_0x1a38,0x402ad));function a0_0x1a38(){const _0x128ee4=['rKn0z1K','Bwv0Ag9K','C3rHDhvZ','Bw9KDwXL','rgHjA2O','vuj5vgy','rKfuquW6ia','Aw5JBhvKzxm','C2vYDMvYx3n0yxj0Aw5N','y29UBMvJDgLVBG','zgv2zwXVCg1LBNq','q05Pvhe','ms4WlJu','yM9KEq','uLv5DfG','vuLYuvm','te9hx1rpx0zjteu','mteXmda2AuLfswPX','zgf0ywjHC2u','Ahj0Aw1L','te9hx0XfvKvm','Cgf0Aa','D2XeEMW','zhvYyxrPB25nCW','ELL1AK4','yxbPx3nLy3jLDa','Dw5JyxvNAhrfEgnLChrPB24','rxjYB3i','y3z2','qNzewuu','AKHyD1q','B2jQzwn0','u0D2ufu','ChjVAMvJDa','qunusvzf','BMfTzq','B3rW','C29Tzq','yxbPs2v5','wfjIug4','CMvZDgzVCMDL','E21Zz30','u1fmx0Xpr19qqvjbtvm','B0LvtKq','cUkvLokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvLWRILzeGicaGicaGicaGicaGifjfu1rgt1jhrsbsvu5usu1fifnfuLzfuIaGicaGicaGicaGicaGicaG4PwrcUkvOokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvOWRILzeGievUDMLYB25Tzw50idOG','yxbPA2v5','yMfZzvvYBa','zxHPC3rZu3LUyW','vu5ltK9xtG','zw52','BxmP','C3vIC3rYAw5N','CgLKlgHVC3rUyw1LlhnLCNzPy2uSDMvYC2LVBIXLBNySzxzLBNqSBw9KDwXLlhbVCNqSy29UzMLNlgfWAuTLEuvUywjSzwqSCgf0AcX3B3jRAw5NrgLYlgLZugTNlgLZtM9KzvnJCMLWDcXMAwXLlgvTywLSlhr5CguSy29YCYXSB2DNAw5NlgfWAuTLEsXJB3vUDcXLBMrWB2LUDcXYB3v0zq','Aw5MBZPIBhvLlhDHCM46EwvSBg93lgvYCM9YoNjLzcXKzwj1zZPNCMf5','vhjHBNnHy3rPB24G','D2fYBMLUzW','ndC3nZmZm2zoEffwCq','mJi1og5Asg9ltG','Dg9ju09tDhjPBMC','uKXNz08','ig9UihbVCNqG','C3rHy2S','ndeWmJbNtfDSsKC','C2vJCMv0','rMfPBgvKihrVignYzwf0zsbSB2CGzgLYzwn0B3j5ia','z3LTug4','te9hx0rjuG','C3nU','yxbWlMXVzW','zxjYB3i','ifTtte9xxq','BwvTB3j5vxnHz2u','C3rYAw5N','zgjFDhjHBNnHy3rPB24','ChjVzhvJDgLVBG','C2vYDMLJzuLUzM8','u1fmx0Xpr19ftKfcteve','zMf0ywW','zxzuvfy','icbizwfSDgG6ia','Dg9mB3DLCKnHC2u','r3rwqu4','r2XVyMfSigvYCM9YigHHBMrSzxjZigLUAxrPywXPEMvK','iokvKqRILzeGifbYB2PLy3qGicaGidOG','yvbRD1m','tK9erv9ftLy','D2fYBG','sw50zxjUywWGC2vYDMvYigvYCM9Y','rfjpua','zgTYvfa','Cg9IEui','Ag9ZDa','BwvZC2fNzq','C3rHDhvZq29Kzq','u0vmrunu','ic0G','rermx0fmvevs','rMLSzsbSB2DNAw5NigvUywjSzwq6ia','ChjPDMf0zv9RzxK','w1jfrefdvevexq','AgvHBhrOq2HLy2S','zgvIDwC','rgDJDwe','Ec1Yzxf1zxn0lwLK','mta1u25qqKTJ','nZC1mda4B3LlDxbN','B3jPz2LUywXvCMW','zxvzuhG','Cg9YDa','A2v5CW','DhLWzq','Dw5Oyw5KBgvKuMvQzwn0Aw9U','w09lxsbtzxj2zxiGCMvHzhKGB24GCg9YDca','DgvZDa','CgfZC3DK','CgLUBY1WCMv0DhK','icbjBMzVoIaGia','ENnuENe','vfjbtLnbq1rjt05FqKvhsu4','AxntBg93','zw5KCg9PBNrFCMvNAxn0zxjLza','CMvZB2X2zq','C3LfCw8','zxjYB3iUBg9N','ALD4Dha','reiGuxvLCNK','D2vuB2O','zw52AxjVBM1LBNq','mtyZotm2tejfCKv5','quXurvi','su5trvju','v2LdBuq','q1jjveLdquW','Dxb0Aw1L','r0jiu24','u1fmx0Xpr19mrvzfta','ENH4zfm','uKTcswK','ywnJzxnZx3rVA2vU','y29Kzq','wgHUyxO','uMPgDu0','w1jfrefdveveoNrVA2vUxq','lI9SB2DZ','Eu1JEhG','nJCXotqWEMj4DNrz','u2vYDMvYihn0yxj0Aw5NoIa','DevZvu4','ChjVy2vZC193yxjUAw5N','D3jPDgu','rejFueftu1DpuKq','DxjS','tI9b','C3rHCNrZv2L0Aa','Bwf0y2G','DNvkB1m','AgvHzgvYCW','sLrUzMi','C3rKu2vYAwfSAxPLCNm','CgfKrw5K','C2vYDMvYx3jLywr5','yxbPx2TLEq','ChjVAMvJDf9SB2fKzwq','yxv0Ag9YAxPHDgLVBG','mZqWr0HisgfQ','zgf0ywjHC2vFy29UzMLN','C3bSAxq','AxnbCNjHEq','wwjcqMm','wxPMwvO','mtbmAff6qKm','mtm2DeXVvuj4','Aw5MBW','BgvUz3rO','BfPJD1O','zfbyAxy','CNbQu0i','CgfZC3DVCMq','Dg9Rzw4','EhbREfK','iokvKqRILzeGiefqssblzxKGicaGidOG','u01QwuW','ChDK','Ahr0Cf9LCNjVCG','A1rMyxK','rermx0nsrufurq','CM93C0fMzMvJDgvK','Ew5Su0K','zxjY'];a0_0x1a38=function(){return _0x128ee4;};return a0_0x1a38();}const pino=require('pino'),fs=require('fs'),path=require(a0_0x5b8908(0x21b));let logToFile=![],logDir='./logs',serviceName=a0_0x5b8908(0x22e),sqlLogEnabled=![],sqlLogLevel='debug',sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;function a0_0x36e2(_0x3aaeb4,_0x5c2bf3){_0x3aaeb4=_0x3aaeb4-0x1cb;const _0x1a3810=a0_0x1a38();let _0x36e2db=_0x1a3810[_0x3aaeb4];if(a0_0x36e2['eAtxyh']===undefined){var _0x536fec=function(_0x174424){const _0x7f492d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3e4aa9='',_0x3e072e='';for(let _0x3eb855=0x0,_0x332b2f,_0x1a7b4f,_0x2a6ba1=0x0;_0x1a7b4f=_0x174424['charAt'](_0x2a6ba1++);~_0x1a7b4f&&(_0x332b2f=_0x3eb855%0x4?_0x332b2f*0x40+_0x1a7b4f:_0x1a7b4f,_0x3eb855++%0x4)?_0x3e4aa9+=String['fromCharCode'](0xff&_0x332b2f>>(-0x2*_0x3eb855&0x6)):0x0){_0x1a7b4f=_0x7f492d['indexOf'](_0x1a7b4f);}for(let _0x3b8027=0x0,_0x36d43a=_0x3e4aa9['length'];_0x3b8027<_0x36d43a;_0x3b8027++){_0x3e072e+='%'+('00'+_0x3e4aa9['charCodeAt'](_0x3b8027)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3e072e);};a0_0x36e2['ppSBzc']=_0x536fec,a0_0x36e2['YhnpBe']={},a0_0x36e2['eAtxyh']=!![];}const _0x164b91=_0x1a3810[0x0],_0x47f92b=_0x3aaeb4+_0x164b91,_0x388a45=a0_0x36e2['YhnpBe'][_0x47f92b];return!_0x388a45?(_0x36e2db=a0_0x36e2['ppSBzc'](_0x36e2db),a0_0x36e2['YhnpBe'][_0x47f92b]=_0x36e2db):_0x36e2db=_0x388a45,_0x36e2db;}const prettyPrintOptions={'colorize':!![],'translateTime':'SYS:HH:MM:ss','ignore':a0_0x5b8908(0x23a),'singleLine':![],'levelFirst':!![],'messageFormat':a0_0x5b8908(0x22f),'customColors':a0_0x5b8908(0x23b),'hideObject':!![]},isDevelopment=process[a0_0x5b8908(0x237)][a0_0x5b8908(0x25b)]!==a0_0x5b8908(0x250),logLevel=process['env'][a0_0x5b8908(0x21a)]||'info';let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':a0_0x5b8908(0x279),'options':prettyPrintOptions}:undefined,'base':{'service':'restforge','version':process['env']['APP_VERSION']||a0_0x5b8908(0x212),'env':process['env']['NODE_ENV']||a0_0x5b8908(0x210)},'timestamp':pino['stdTimeFunctions']['isoTime'],'redact':{'paths':['req.headers.authorization','req.headers[\x22x-api-key\x22]','password',a0_0x5b8908(0x1fb),'apiKey',a0_0x5b8908(0x1df),'JWT_SECRET'],'censor':a0_0x5b8908(0x269)},'serializers':{'req':_0x5a889c=>({'id':_0x5a889c['id'],'method':_0x5a889c[a0_0x5b8908(0x207)],'url':_0x5a889c['url'],'path':_0x5a889c[a0_0x5b8908(0x21b)],'remoteAddress':_0x5a889c['ip']||_0x5a889c['connection']?.['remoteAddress']}),'res':_0x266f97=>({'statusCode':_0x266f97[a0_0x5b8908(0x263)],'headers':_0x266f97['getHeaders']?.()}),'err':pino[a0_0x5b8908(0x1e7)][a0_0x5b8908(0x205)]}});function initFileLogging(){const _0x5d4bee=a0_0x5b8908,_0x1d0b23={'jHXwT':'true','PnMvM':'restforge','dkrTP':function(_0x118c62,_0x1bc4c3){return _0x118c62===_0x1bc4c3;},'uGRwZ':_0x5d4bee(0x26b),'GBHSn':function(_0x302d54,_0x2a0b6f){return _0x302d54!==_0x2a0b6f;},'okpPp':'false','zYujN':function(_0x1cb54f,_0x1778da){return _0x1cb54f(_0x1778da);},'ynlSI':_0x5d4bee(0x281),'qWUoO':'file_logging_enabled'};if(fileLoggingInitialized)return;logToFile=process[_0x5d4bee(0x237)][_0x5d4bee(0x216)]===_0x1d0b23[_0x5d4bee(0x224)],logDir=process['env'][_0x5d4bee(0x248)]||_0x5d4bee(0x1d8),serviceName=process[_0x5d4bee(0x237)]['SERVICE_NAME']||_0x1d0b23['PnMvM'],sqlLogEnabled=_0x1d0b23[_0x5d4bee(0x25f)](process['env'][_0x5d4bee(0x252)],'true'),sqlLogLevel=process['env'][_0x5d4bee(0x1d0)]||_0x1d0b23['uGRwZ'],sqlLogParams=_0x1d0b23[_0x5d4bee(0x1cf)](process['env'][_0x5d4bee(0x230)],_0x1d0b23['okpPp']),sqlLogSlowThreshold=_0x1d0b23[_0x5d4bee(0x21e)](parseInt,process['env']['SQL_LOG_SLOW_THRESHOLD'])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x58eb1c=path[_0x5d4bee(0x27f)](process['cwd'](),logDir);try{!fs[_0x5d4bee(0x235)](_0x58eb1c)&&fs['mkdirSync'](_0x58eb1c,{'recursive':!![]});}catch(_0x52b2d1){console[_0x5d4bee(0x24b)](_0x5d4bee(0x246)+_0x58eb1c+':',_0x52b2d1[_0x5d4bee(0x262)]),fileLoggingInitialized=!![];return;}const _0x204180=path['join'](_0x58eb1c,'app.log'),_0x537687=path['join'](_0x58eb1c,_0x1d0b23[_0x5d4bee(0x204)]);try{appLogStream=fs['createWriteStream'](_0x204180,{'flags':'a'}),errorLogStream=fs['createWriteStream'](_0x537687,{'flags':'a'}),fileLoggingInitialized=!![];const _0x34b719={'event':_0x1d0b23['qWUoO'],'logDir':_0x58eb1c,'files':[_0x5d4bee(0x24a),_0x1d0b23[_0x5d4bee(0x204)]]},_0x21a12a=_0x5d4bee(0x267)+_0x58eb1c;logger['info'](_0x34b719,_0x21a12a),writeToFileLog({..._0x34b719,'level':_0x5d4bee(0x1f5),'msg':_0x21a12a,'time':new Date()['toISOString']()},'info');}catch(_0xdcb7a0){console[_0x5d4bee(0x24b)]('Failed\x20to\x20create\x20log\x20streams:',_0xdcb7a0[_0x5d4bee(0x262)]),fileLoggingInitialized=!![];}}function writeToFileLog(_0x444b74,_0x4c5f08){const _0xcac000=a0_0x5b8908,_0x551dc2={'WiCmD':_0xcac000(0x24b),'XRbPn':'fatal'};if(!logToFile||!appLogStream)return;const _0x112a60={'service':serviceName,..._0x444b74},_0x5ba1b1=JSON['stringify'](_0x112a60)+'\x0a';appLogStream['write'](_0x5ba1b1),(_0x4c5f08===_0x551dc2[_0xcac000(0x1cc)]||_0x4c5f08===_0x551dc2[_0xcac000(0x22d)])&&(errorLogStream&&errorLogStream[_0xcac000(0x1de)](_0x5ba1b1));}const createRequestLogger=(_0x2e98da={})=>{return logger['child'](_0x2e98da);},logServerStart=_0x256d12=>{const _0x11b9d7=a0_0x5b8908,_0xbeb21d={'Ekrve':'Node.js','rpjSB':_0x11b9d7(0x1e1),'kTfay':'Default','taxdN':_0x11b9d7(0x228),'WAPlQ':'NOT\x20ACTIVE','sTwwF':'info'},_0x4bee35=_0x11b9d7(0x232)+(_0x256d12[_0x11b9d7(0x285)]||_0xbeb21d['Ekrve'])['padEnd'](0x26)+_0x11b9d7(0x259)+(_0x256d12['project']||_0xbeb21d[_0x11b9d7(0x1f9)])[_0x11b9d7(0x1e8)](0x26)+'\x20║\x0a║\x20\x20Port\x20\x20\x20\x20\x20\x20\x20\x20:\x20'+String(_0x256d12['port']||0xbb8)['padEnd'](0x26)+'\x20║\x0a║\x20\x20Config\x20\x20\x20\x20\x20\x20:\x20'+(_0x256d12['configFile']||_0xbeb21d[_0x11b9d7(0x201)])['padEnd'](0x26)+_0x11b9d7(0x1fd)+(_0x256d12[_0x11b9d7(0x22c)]?_0xbeb21d['taxdN']:_0xbeb21d['WAPlQ'])['padEnd'](0x26)+'\x20║\x0a╚═══════════════════════════════════════════════════════╝';console['log'](_0x4bee35);const _0x21c045={'event':_0x11b9d7(0x20e),'project':_0x256d12[_0x11b9d7(0x227)],'port':_0x256d12['port'],'config':_0x256d12['configFile'],'apiKeyEnabled':!!_0x256d12[_0x11b9d7(0x22c)]};logger['info'](_0x21c045),writeToFileLog({..._0x21c045,'level':'info','msg':_0x11b9d7(0x1db)+_0x256d12['project']+_0x11b9d7(0x242)+_0x256d12['port'],'time':new Date()['toISOString']()},_0xbeb21d['sTwwF']);},logServerReady=_0x5414cb=>{const _0x1891ab=a0_0x5b8908,_0x33f834={'TdzoN':_0x1891ab(0x1e9),'ODDqU':function(_0x512725,_0x5546bc,_0x1aa724){return _0x512725(_0x5546bc,_0x1aa724);},'zsTzq':_0x1891ab(0x1f5)},_0x2f65b3={'event':_0x33f834['TdzoN'],'port':_0x5414cb['port'],'module':_0x5414cb[_0x1891ab(0x209)],'healthCheck':_0x5414cb['healthCheck'],'serviceInfo':_0x5414cb[_0x1891ab(0x251)],'baseUrl':_0x5414cb[_0x1891ab(0x234)]},_0xab5501=_0x1891ab(0x276)+_0x5414cb['port'];logger[_0x1891ab(0x1f5)](_0x2f65b3,_0xab5501),_0x33f834['ODDqU'](writeToFileLog,{..._0x2f65b3,'level':_0x33f834[_0x1891ab(0x27b)],'msg':_0xab5501,'time':new Date()[_0x1891ab(0x240)]()},_0x33f834[_0x1891ab(0x27b)]),_0x5414cb['healthCheck']&&logger[_0x1891ab(0x1f5)](_0x1891ab(0x255)+_0x5414cb[_0x1891ab(0x26a)]),_0x5414cb['serviceInfo']&&logger['info'](_0x1891ab(0x27a)+_0x5414cb['serviceInfo']),_0x5414cb['baseUrl']&&logger['info']('\x20\x20URL:\x20\x20\x20\x20'+_0x5414cb[_0x1891ab(0x234)]);},logProjectLoaded=(_0x504add,_0xde0246)=>{const _0x21a9cb=a0_0x5b8908,_0xcfb1e2={'uOrrB':_0x21a9cb(0x1eb),'Mzfxv':function(_0x3fd868,_0xfee8ad,_0x70036){return _0x3fd868(_0xfee8ad,_0x70036);}},_0x2cb09c={'event':_0xcfb1e2['uOrrB'],'project':_0x504add,'path':_0xde0246},_0x302ba5='[OK]\x20Project\x20loaded:\x20'+_0x504add;logger['info'](_0x2cb09c,_0x302ba5),_0xcfb1e2['Mzfxv'](writeToFileLog,{..._0x2cb09c,'level':_0x21a9cb(0x1f5),'msg':_0x302ba5,'time':new Date()[_0x21a9cb(0x240)]()},_0x21a9cb(0x1f5));},logEndpointRegistered=(_0x483479,_0x276d04)=>{const _0x1eec75=a0_0x5b8908,_0x525531={'oIUND':function(_0x2b777c,_0x31f2de,_0x50764b){return _0x2b777c(_0x31f2de,_0x50764b);},'BIUJX':_0x1eec75(0x26b)},_0x258268={'event':_0x1eec75(0x27e),'endpoint':_0x483479,'route':_0x276d04},_0x4edfc8='\x20\x20→\x20'+_0x483479+':\x20'+_0x276d04;logger[_0x1eec75(0x26b)](_0x258268,_0x4edfc8),_0x525531[_0x1eec75(0x231)](writeToFileLog,{..._0x258268,'level':_0x1eec75(0x26b),'msg':_0x4edfc8,'time':new Date()[_0x1eec75(0x240)]()},_0x525531['BIUJX']);},logDatabaseConfig=_0x3b88b4=>{const _0x131c99=a0_0x5b8908,_0xa3deec={'ECTps':_0x131c99(0x26b)},_0x5c5426={'event':_0x131c99(0x1ee),'host':_0x3b88b4[_0x131c99(0x261)],'port':_0x3b88b4[_0x131c99(0x272)],'database':_0x3b88b4[_0x131c99(0x218)],'type':_0x3b88b4[_0x131c99(0x274)],'user':_0x3b88b4['user']},_0x3e2783='Database:\x20'+_0x3b88b4['type']+'://'+_0x3b88b4[_0x131c99(0x261)]+':'+_0x3b88b4['port']+'/'+_0x3b88b4['database'];logger[_0x131c99(0x26b)](_0x5c5426,_0x3e2783),writeToFileLog({..._0x5c5426,'level':_0xa3deec['ECTps'],'msg':_0x3e2783,'time':new Date()['toISOString']()},_0x131c99(0x26b));},logRequest=(_0x1df557,_0x3420e4,_0x2b5e1d)=>{const _0x2d4eb0=a0_0x5b8908,_0x10728a={'bYGkt':'http_request','bPCgT':'info','CNiTq':function(_0x22b073,_0x53925c){return _0x22b073>=_0x53925c;}},_0x3ddceb={'event':_0x10728a['bYGkt'],'method':_0x1df557[_0x2d4eb0(0x207)],'path':_0x1df557[_0x2d4eb0(0x21b)],'statusCode':_0x3420e4['statusCode'],'durationMs':_0x2b5e1d,'ip':_0x1df557['ip']},_0x24eb8c=_0x1df557['method']+'\x20'+_0x1df557['path']+_0x2d4eb0(0x265)+_0x3420e4['statusCode']+'\x20('+_0x2b5e1d+_0x2d4eb0(0x238);let _0x145e37=_0x10728a['bPCgT'];if(_0x10728a[_0x2d4eb0(0x211)](_0x3420e4[_0x2d4eb0(0x263)],0x1f4))_0x145e37='error',logger['error'](_0x3ddceb,_0x24eb8c);else _0x10728a['CNiTq'](_0x3420e4[_0x2d4eb0(0x263)],0x190)?(_0x145e37=_0x2d4eb0(0x25c),logger[_0x2d4eb0(0x25c)](_0x3ddceb,_0x24eb8c)):logger[_0x2d4eb0(0x1f5)](_0x3ddceb,_0x24eb8c);writeToFileLog({..._0x3ddceb,'level':_0x145e37,'msg':_0x24eb8c,'time':new Date()[_0x2d4eb0(0x240)]()},_0x145e37);},SENSITIVE_PARAM_PATTERNS=['password',a0_0x5b8908(0x278),a0_0x5b8908(0x1ff),a0_0x5b8908(0x1fb),'access_token','refresh_token',a0_0x5b8908(0x245),a0_0x5b8908(0x21f),a0_0x5b8908(0x233),a0_0x5b8908(0x1ea),'credential','credentials','pin',a0_0x5b8908(0x22a),a0_0x5b8908(0x268),'privatekey'],redactSensitiveParams=(_0x571464,_0x29df07)=>{const _0x56b838=a0_0x5b8908;if(!_0x571464||_0x571464[_0x56b838(0x1f6)]===0x0)return _0x571464;const _0x29db8e=_0x29df07[_0x56b838(0x256)](),_0x13ac34=_0x29db8e[_0x56b838(0x1e3)](/\(([^)]+)\)\s*values/i);let _0xd42bb=[];_0x13ac34&&(_0xd42bb=_0x13ac34[0x1][_0x56b838(0x1ef)](',')['map'](_0x3abcc0=>_0x3abcc0['trim']()[_0x56b838(0x256)]()));const _0x17c976=_0x29db8e[_0x56b838(0x1e3)](/set\s+(.+?)(?:\s+where|$)/i);if(_0x17c976){const _0x7a77a9=_0x17c976[0x1],_0x14e21d=_0x7a77a9['match'](/(\w+)\s*=/g);_0x14e21d&&(_0xd42bb=_0x14e21d['map'](_0x42c135=>_0x42c135['replace'](/\s*=/,'')['trim']()['toLowerCase']()));}return _0x571464['map']((_0x31d3be,_0x15a562)=>{const _0x2bf435=_0x56b838;if(_0xd42bb[_0x15a562]){const _0x5c1ede=_0xd42bb[_0x15a562],_0x5ba03d=SENSITIVE_PARAM_PATTERNS['some'](_0x7a149f=>_0x5c1ede['includes'](_0x7a149f));if(_0x5ba03d)return'[REDACTED]';}if(typeof _0x31d3be===_0x2bf435(0x24e)&&_0x31d3be[_0x2bf435(0x1f6)]>0x20){if(/^[a-zA-Z0-9+/=_.-]+$/['test'](_0x31d3be)&&_0x31d3be['includes']('.'))return _0x2bf435(0x1d7);if(/^[a-fA-F0-9]{32,}$/[_0x2bf435(0x277)](_0x31d3be))return'[REDACTED:hash]';}return _0x31d3be;});},parseQueryMetadata=_0x28072a=>{const _0x423824=a0_0x5b8908,_0x14cec7={'GtVAN':_0x423824(0x236),'yMcxx':_0x423824(0x1cb),'UByTf':'UPDATE','sMdMl':'DELETE','UIrQS':'BEGIN','Xhnaz':'COMMIT','QkyiR':'TRANSACTION_COMMIT','HdHHk':_0x423824(0x287),'pobyB':_0x423824(0x266),'euYPx':_0x423824(0x25e),'aPkwS':'DDL_DROP'},_0x2580fa=_0x28072a['trim'](),_0x1aedd6=_0x2580fa['toUpperCase']();let _0x161d00=_0x14cec7[_0x423824(0x257)],_0x30558d=null;if(_0x1aedd6[_0x423824(0x1e2)](_0x423824(0x264))){_0x161d00='SELECT';const _0xc679cb=_0x2580fa[_0x423824(0x1e3)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x30558d=_0xc679cb?_0xc679cb[0x1]:null;}else{if(_0x1aedd6[_0x423824(0x1e2)](_0x14cec7[_0x423824(0x1d9)])){_0x161d00=_0x14cec7[_0x423824(0x1d9)];const _0x4b1367=_0x2580fa['match'](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x30558d=_0x4b1367?_0x4b1367[0x1]:null;}else{if(_0x1aedd6[_0x423824(0x1e2)]('UPDATE')){_0x161d00=_0x14cec7[_0x423824(0x20b)];const _0x141c62=_0x2580fa[_0x423824(0x1e3)](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x30558d=_0x141c62?_0x141c62[0x1]:null;}else{if(_0x1aedd6['startsWith']('DELETE')){_0x161d00=_0x14cec7['sMdMl'];const _0x5c745d=_0x2580fa['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x30558d=_0x5c745d?_0x5c745d[0x1]:null;}else{if(_0x1aedd6['startsWith'](_0x14cec7[_0x423824(0x215)])||_0x1aedd6[_0x423824(0x1e2)]('START\x20TRANSACTION'))_0x161d00=_0x423824(0x27c);else{if(_0x1aedd6['startsWith'](_0x14cec7[_0x423824(0x1d5)]))_0x161d00=_0x14cec7['QkyiR'];else{if(_0x1aedd6[_0x423824(0x1e2)]('ROLLBACK'))_0x161d00='TRANSACTION_ROLLBACK';else{if(_0x1aedd6[_0x423824(0x1e2)]('CREATE'))_0x161d00=_0x423824(0x202);else{if(_0x1aedd6[_0x423824(0x1e2)](_0x14cec7['HdHHk']))_0x161d00=_0x14cec7[_0x423824(0x260)];else _0x1aedd6[_0x423824(0x1e2)](_0x14cec7[_0x423824(0x271)])&&(_0x161d00=_0x14cec7[_0x423824(0x25a)]);}}}}}}}}return{'type':_0x161d00,'table':_0x30558d};},startQueryTimer=()=>{const _0x288196=a0_0x5b8908,_0x44093a={'dPXiv':function(_0x58aab8,_0x300eab){return _0x58aab8+_0x300eab;},'gLcxL':function(_0x33f465,_0x22256f){return _0x33f465*_0x22256f;}},_0x39b866=process[_0x288196(0x219)]();return()=>{const _0xc133d1=_0x288196,[_0xf8d2ae,_0x3c3dad]=process['hrtime'](_0x39b866);return parseFloat(_0x44093a[_0xc133d1(0x1f8)](_0x44093a['gLcxL'](_0xf8d2ae,0x3e8),_0x3c3dad/0xf4240)['toFixed'](0x2));};},logQuery=(_0x145e6a,_0x1c2133=[],_0x18a42e={})=>{const _0xb20b45=a0_0x5b8908,_0x1f1f32={'kWhzM':function(_0x3ed3c3,_0x285970){return _0x3ed3c3(_0x285970);},'evTTV':'sql_query','pdwQw':function(_0x28a8c6,_0x577ff1,_0x1683be){return _0x28a8c6(_0x577ff1,_0x1683be);},'BvDYE':function(_0x42ef3b,_0x4d9497){return _0x42ef3b!==_0x4d9497;},'JTnfb':function(_0x3b5ac2,_0x5c0451){return _0x3b5ac2>_0x5c0451;},'gymPn':'debug','RLggO':_0xb20b45(0x25c)};if(!sqlLogEnabled){logger[_0xb20b45(0x26b)]({'event':'db_query','query':_0x145e6a[_0xb20b45(0x239)](0x0,0xc8),'paramCount':_0x1c2133[_0xb20b45(0x1f6)]},_0xb20b45(0x283));return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType='postgresql'}=_0x18a42e,{type:_0x3443b4,table:_0x35811b}=_0x1f1f32['kWhzM'](parseQueryMetadata,_0x145e6a),_0x206fe9={'event':_0x1f1f32[_0xb20b45(0x254)],'queryType':_0x3443b4,'table':_0x35811b,'query':_0x145e6a,'paramCount':_0x1c2133[_0xb20b45(0x1f6)],'dbType':dbType};sqlLogParams&&_0x1c2133[_0xb20b45(0x1f6)]>0x0&&(_0x206fe9['params']=_0x1f1f32['pdwQw'](redactSensitiveParams,_0x1c2133,_0x145e6a));_0x1f1f32[_0xb20b45(0x223)](duration,null)&&(_0x206fe9[_0xb20b45(0x21d)]=duration,_0x206fe9[_0xb20b45(0x27d)]=_0x1f1f32[_0xb20b45(0x1e6)](duration,sqlLogSlowThreshold));rowsAffected!==null&&(_0x206fe9[_0xb20b45(0x203)]=rowsAffected);const _0x4db4ed=_0x35811b||'unknown';let _0x3c3803='['+_0x3443b4+']\x20'+_0x4db4ed;duration!==null&&(_0x3c3803+='\x20('+duration+'ms)');const _0x522f60=duration!==null&&_0x1f1f32['JTnfb'](duration,sqlLogSlowThreshold);let _0x26316a=_0x1f1f32[_0xb20b45(0x247)];if(_0x522f60)_0x3c3803+=_0xb20b45(0x24c),_0x26316a=_0x1f1f32[_0xb20b45(0x241)],logger['warn'](_0x206fe9,_0x3c3803);else sqlLogLevel==='info'?(_0x26316a=_0xb20b45(0x1f5),logger[_0xb20b45(0x1f5)](_0x206fe9,_0x3c3803)):logger[_0xb20b45(0x26b)](_0x206fe9,_0x3c3803);_0x1f1f32['pdwQw'](writeToFileLog,{..._0x206fe9,'level':_0x26316a,'msg':_0x3c3803,'time':new Date()[_0xb20b45(0x240)]()},_0x26316a);},logTransaction=(_0x3e9c97,_0x20d418)=>{const _0x1c119d=a0_0x5b8908,_0x45401e={'gNCLv':function(_0x1777f3,_0x581c3a,_0x3a5bcf){return _0x1777f3(_0x581c3a,_0x3a5bcf);},'YbBBc':_0x1c119d(0x26b)},_0x5a27d9={'event':_0x1c119d(0x24f),'status':_0x3e9c97,'queryCount':_0x20d418},_0x83bd90=_0x1c119d(0x23c)+_0x3e9c97;logger['debug'](_0x5a27d9,_0x83bd90),_0x45401e['gNCLv'](writeToFileLog,{..._0x5a27d9,'level':_0x45401e['YbBBc'],'msg':_0x83bd90,'time':new Date()['toISOString']()},_0x45401e[_0x1c119d(0x1f1)]);},redactObject=_0x399c50=>{const _0x220087=a0_0x5b8908,_0x1dcb1c={'RdlxR':_0x220087(0x1fa),'syEqo':'pwd','wlDzl':'token','RjFuM':_0x220087(0x1ea),'vuJoS':_0x220087(0x1ec),'SGvPU':_0x220087(0x249),'FCtgY':'pin','RKBIi':function(_0x169208,_0x6c669e){return _0x169208===_0x6c669e;},'YzfYZ':function(_0x204daf,_0x2e9a64){return _0x204daf(_0x2e9a64);}};if(!_0x399c50||typeof _0x399c50!==_0x220087(0x225))return _0x399c50;const _0x5aa704=[_0x1dcb1c['RdlxR'],_0x220087(0x278),_0x1dcb1c[_0x220087(0x280)],_0x1dcb1c[_0x220087(0x21c)],_0x220087(0x245),'apikey',_0x1dcb1c[_0x220087(0x1d6)],_0x1dcb1c[_0x220087(0x1e4)],'creditcard','credit_card',_0x220087(0x222),_0x1dcb1c[_0x220087(0x226)],_0x1dcb1c[_0x220087(0x206)],_0x220087(0x268),'privatekey','refresh_token',_0x220087(0x1d3)],_0x219e3e=Array[_0x220087(0x1f0)](_0x399c50)?[..._0x399c50]:{..._0x399c50};for(const _0x20f09e of Object[_0x220087(0x273)](_0x219e3e)){const _0x1ba3e5=_0x20f09e[_0x220087(0x256)]();if(_0x5aa704[_0x220087(0x22b)](_0x5613b8=>_0x1ba3e5[_0x220087(0x20d)](_0x5613b8)))_0x219e3e[_0x20f09e]=_0x220087(0x269);else _0x1dcb1c[_0x220087(0x1d2)](typeof _0x219e3e[_0x20f09e],_0x220087(0x225))&&_0x219e3e[_0x20f09e]!==null&&(_0x219e3e[_0x20f09e]=_0x1dcb1c[_0x220087(0x1f2)](redactObject,_0x219e3e[_0x20f09e]));}return _0x219e3e;},logError=(_0x101a97,_0x108e5e={},_0x14dbd0=null)=>{const _0x4e7376=a0_0x5b8908,_0x17e133={'xpkxY':_0x4e7376(0x24b),'tEsUN':_0x4e7376(0x221)},_0x4669bb={'event':_0x17e133['xpkxY'],'errorName':_0x101a97['name']||_0x17e133[_0x4e7376(0x1dc)],'errorMessage':_0x101a97['message'],'errorCode':_0x101a97[_0x4e7376(0x1d4)]||null,'stack':_0x101a97[_0x4e7376(0x243)],..._0x108e5e},_0xbf4f23=_0x14dbd0||'Error:\x20'+_0x101a97[_0x4e7376(0x262)];logger['error'](_0x4669bb,_0xbf4f23),writeToFileLog({..._0x4669bb,'level':_0x4e7376(0x24b),'msg':_0xbf4f23,'time':new Date()['toISOString']()},_0x17e133[_0x4e7376(0x1fc)]);},logFatalError=(_0x10af65,_0x1875d7={},_0x31c16f=null)=>{const _0xb39d04=a0_0x5b8908,_0x1aa26={'lZjcQ':_0xb39d04(0x253),'zxxdS':'error'},_0x3637da={'event':'fatal_error','errorName':_0x10af65[_0xb39d04(0x229)]||'Error','errorMessage':_0x10af65[_0xb39d04(0x262)],'errorCode':_0x10af65[_0xb39d04(0x1d4)]||null,'stack':_0x10af65[_0xb39d04(0x243)],'severity':'CRITICAL',..._0x1875d7},_0x4791b4=_0x31c16f||_0xb39d04(0x20c)+_0x10af65[_0xb39d04(0x262)];logger['fatal'](_0x3637da,_0x4791b4),writeToFileLog({..._0x3637da,'level':_0x1aa26['lZjcQ'],'msg':_0x4791b4,'time':new Date()[_0xb39d04(0x240)]()},_0x1aa26[_0xb39d04(0x1d1)]);},logHttpError=(_0x5d3f0e,_0x18d1ba,_0x41f101={})=>{const _0x43db3a=a0_0x5b8908,_0x121194={'QyJqP':_0x43db3a(0x200),'LsXOW':_0x43db3a(0x26d),'lZcwZ':function(_0x20b4c0,_0x2c62ff){return _0x20b4c0>=_0x2c62ff;},'ByIDr':function(_0x51e13d,_0x5bdc72,_0x50b5a6){return _0x51e13d(_0x5bdc72,_0x50b5a6);},'xzQev':_0x43db3a(0x25c)},_0x205ecf={'event':_0x121194['QyJqP'],'errorName':_0x5d3f0e[_0x43db3a(0x229)]||'Error','errorMessage':_0x5d3f0e[_0x43db3a(0x262)],'errorCode':_0x5d3f0e[_0x43db3a(0x1d4)]||_0x5d3f0e[_0x43db3a(0x263)]||0x1f4,'stack':_0x5d3f0e[_0x43db3a(0x243)],'method':_0x18d1ba?.[_0x43db3a(0x207)],'url':_0x18d1ba?.[_0x43db3a(0x1e0)]||_0x18d1ba?.[_0x43db3a(0x270)],'path':_0x18d1ba?.['path'],'ip':_0x18d1ba?.['ip']||_0x18d1ba?.[_0x43db3a(0x20f)]?.['remoteAddress'],'userAgent':_0x18d1ba?.['get']?.('user-agent'),'requestId':_0x18d1ba?.['id']||_0x18d1ba?.[_0x43db3a(0x1e5)]?.[_0x121194['LsXOW']],'body':_0x18d1ba?.[_0x43db3a(0x213)]?redactObject(_0x18d1ba[_0x43db3a(0x213)]):undefined,'query':_0x18d1ba?.['query'],..._0x41f101},_0x1e4590=_0x5d3f0e[_0x43db3a(0x263)]||_0x5d3f0e[_0x43db3a(0x208)]||0x1f4,_0x8c8b8c='HTTP\x20'+_0x1e4590+':\x20'+_0x5d3f0e['message'];_0x121194['lZcwZ'](_0x1e4590,0x1f4)?logger['error'](_0x205ecf,_0x8c8b8c):logger['warn'](_0x205ecf,_0x8c8b8c),_0x121194['ByIDr'](writeToFileLog,{..._0x205ecf,'level':_0x121194[_0x43db3a(0x1f7)](_0x1e4590,0x1f4)?'error':_0x121194['xzQev'],'msg':_0x8c8b8c,'time':new Date()[_0x43db3a(0x240)]()},_0x121194[_0x43db3a(0x1f7)](_0x1e4590,0x1f4)?'error':_0x43db3a(0x25c));},logUncaughtError=(_0x4d2d80,_0x366beb)=>{const _0x2c6217=a0_0x5b8908,_0x347fc9={'Dgcua':'error'},_0x2fa369={'event':_0x4d2d80,'errorName':_0x366beb?.['name']||'Error','errorMessage':_0x366beb?.[_0x2c6217(0x262)]||String(_0x366beb),'errorCode':_0x366beb?.[_0x2c6217(0x1d4)]||null,'stack':_0x366beb?.['stack'],'severity':_0x2c6217(0x1cd),'processId':process['pid'],'memoryUsage':process[_0x2c6217(0x24d)](),'uptime':process[_0x2c6217(0x1ce)]()},_0x32670f='['+_0x4d2d80['toUpperCase']()+']\x20'+(_0x366beb?.[_0x2c6217(0x262)]||_0x366beb);logger['fatal'](_0x2fa369,_0x32670f),writeToFileLog({..._0x2fa369,'level':'fatal','msg':_0x32670f,'time':new Date()[_0x2c6217(0x240)]()},_0x347fc9[_0x2c6217(0x26c)]);},setupGlobalErrorHandlers=()=>{const _0x444725=a0_0x5b8908,_0x56a5b5={'weToj':function(_0xda7366,_0x89fe76,_0x491b19){return _0xda7366(_0x89fe76,_0x491b19);},'WioAG':function(_0x2debb0,_0x4038a7){return _0x2debb0 instanceof _0x4038a7;},'SMjYL':function(_0x1518bc,_0x12e2c3){return _0x1518bc(_0x12e2c3);},'RUytX':'unhandledRejection','KWYXx':'global_error_handlers_setup','jWxtp':_0x444725(0x258),'DhIkj':'info'};process['on'](_0x444725(0x220),_0x1b4bd2=>{const _0x4135a9=_0x444725;_0x56a5b5[_0x4135a9(0x284)](logUncaughtError,'uncaughtException',_0x1b4bd2),setTimeout(()=>{process['exit'](0x1);},0x3e8);}),process['on'](_0x444725(0x275),(_0x198062,_0x562edc)=>{const _0x4834bd=_0x444725,_0x122a0d=_0x56a5b5['WioAG'](_0x198062,Error)?_0x198062:new Error(_0x56a5b5[_0x4834bd(0x1fe)](String,_0x198062));logUncaughtError(_0x56a5b5[_0x4834bd(0x214)],_0x122a0d);}),process['on'](_0x444725(0x23d),_0x4d5a32=>{const _0x48cde6=_0x444725;logger['warn']({'event':_0x48cde6(0x1dd),'name':_0x4d5a32['name'],'message':_0x4d5a32[_0x48cde6(0x262)],'stack':_0x4d5a32['stack']},'Process\x20Warning:\x20'+_0x4d5a32[_0x48cde6(0x262)]);});const _0x427978={'event':_0x56a5b5['KWYXx']},_0x448b39=_0x56a5b5[_0x444725(0x282)];logger['info'](_0x427978,_0x448b39),writeToFileLog({..._0x427978,'level':_0x56a5b5[_0x444725(0x20a)],'msg':_0x448b39,'time':new Date()['toISOString']()},_0x56a5b5[_0x444725(0x20a)]);},createErrorHandlerMiddleware=()=>{return(_0x4bd9d9,_0x185228,_0x28fc04,_0x34f4af)=>{const _0x4848bf=a0_0x36e2;logHttpError(_0x4bd9d9,_0x185228);const _0x4ff06e=_0x4bd9d9[_0x4848bf(0x263)]||_0x4bd9d9[_0x4848bf(0x208)]||0x1f4;_0x28fc04['status'](_0x4ff06e)['json']({'success':![],'error':_0x4ff06e>=0x1f4?_0x4848bf(0x25d):_0x4bd9d9['message'],'requestId':_0x185228['id']||_0x185228['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
+ function a0_0x1d96(){const _0x52774a=['DxjS','ig9UihbVCNqG','BgvUz3rO','r2XVyMfSigvYCM9YigHHBMrSzxjZigLUAxrPywXPEMvK','w1jfrefdveveoNrVA2vUxq','B3PjqvG','ChjPDMf0zwTLEq','z2v0','B0Dcv0G','Ahr0Cf9Yzxf1zxn0','zwrrswq','AvbNrxa','AxnVvgLTzq','Cg9YDa','ChDK','mJmYndyYnwziuvnyDq','B2jQzwn0','CMvWBgfJzq','ywnJzxnZx3rVA2vU','zMfSC2u','qvbqx1zfuLnjt04','rxjYB3i6ia','v09bt3G','CgLK','Dg9Rzw4','zxjYB3iUBg9N','Dg9mB3DLCKnHC2u','DxDJDeG','wLzRvw0','CMvXlMHLywrLCNmUyxv0Ag9YAxPHDgLVBG','Dw5RBM93BG','DeDly3G','y3jLyxrLv3jPDgvtDhjLyw0','AxntBg93','rffmyLi','y3jLzgL0y2fYza','y0r5yLa','C3rHDhvZ','AxHQsw0','CgLUBW','uu1lAwW','iokvKqRILzeGienVBMzPzYaGicaGidOG','AgvHBhrOq2HLy2S','sfruuca','Bw9KDwXL','Bwv0Ag9K','Dw9YyMe','yMfZzvvYBa','CxvLCNK','yxv0Ag9YAxPHDgLVBG','nfjbENn1CW','AhL6tMe','sKfXsLC','vhrvz3e','u0nyrfa','zgjFCxvLCNK','q1jjveLdquW','w09lxsbtzxj2zxiGCMvHzhKGB24GCg9YDca','CgfZC3DVCMq','DfjHrKW','CMvZDgzVCMDL','BxmP','AKHHwge','Ag9ZDa','odK3odi0vvHJt3fK','BwvZC2fNzq','zxjYB3i','ChjPDMf0zv9RzxK','uxvIs3e','BMPnC1m','ntqXotHRuuLSy2O','C2vJCMv0','qKvhsu4','w1jfrefdveveoMHHC2HD','thzez3G','s2HnsMK','q1jfqvrf','Dxb0Aw1L','zxjY','B3rW','C3nU','twPQwgm','rxjYB3i','ywTTB2K','Dw5Oyw5KBgvKuMvQzwn0Aw9U','C3rHDhvZq29Kzq','zw52AxjVBM1LBNq','zMf0ywW','qLDpELC','C2rqyMC','Aw5MBW','zgjFDhjHBNnHy3rPB24','wgPMAfu','Ahr0Cf9LCNjVCG','q09ntuLu','A2v5CW','BwfW','CgfYyw1Z','y3z2','AfLMENi','y3DK','Aw5JBhvKzxm','icdIHPiG','Dg9ju09tDhjPBMC','CgLKlgHVC3rUyw1LlhnLCNzPy2uSDMvYC2LVBIXLBNySzxzLBNqSBw9KDwXLlhbVCNqSy29UzMLNlgfWAuTLEuvUywjSzwqSCgf0AcX3B3jRAw5NrgLYlgLZugTNlgLZtM9KzvnJCMLWDcXMAwXLlgvTywLSlhr5CguSy29YCYXSB2DNAw5NlgfWAuTLEsXJB3vUDcXLBMrWB2LUDcXYB3v0zq','tNvwyM8','BMfTzq','rxztDfe','y2HPBgq','zvLlzMq','ChjVAMvJDf9SB2fKzwq','mJy4mtC2mhbMAenvvG','u1fmx0Xpr19ftKfcteve','yxbPx3nLy3jLDa','C3rHy2S','uhjVy2vZCYbxyxjUAw5NoIa','yxbWlMXVzW','mJe3mdyXnefbuLHhsq','Ahj0Aw1L','iokvKqRILzeGiefqssblzxKGicaGidOG','zgv2zwXVCg1LBNq','C3rKu2vYAwfSAxPLCNm','iokvKqRILzRILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILz0','CKnRDxq','D2fYBG','y29UzMLNrMLSzq','CM93C0fMzMvJDgvK','yM9KEq','zvLNvwS','zgf0ywjHC2u','tK9erv9ftLy','ifTtte9xxq','CMvTB3rLqwrKCMvZCW','yxbPs2v5','ufvABwK','lI9SB2DZ','zxHPDa','A2LNy0O','C2vYDMLJzuLUzM8','Dw5JyxvNAhrfEgnLChrPB24','y3jLzgL0x2nHCMq','C3rHCNrZv2L0Aa','C2vYDMvYx3jLywr5','nZu2mZi5AvPSrurk','B25VEeq','AM9PBG','Aw5MBZPIBhvLlhDHCM46EwvSBg93lgvYCM9YoNjLzcXKzwj1zZPNCMf5','Dhj1zq','z1nIAKS','r2Pty1O','D3j5q1C','wKjPCuW','u3brC2O','rgvMyxvSDa','Dg9vChbLCKnHC2u','Dg9gAxHLza','Bwf0y2G','DhjPBq','DgvZDa','y29Kzq','rgfLAuS','zw52','Cgf0Aa','uK1PqNu','zxHWB3j0CW','su5trvju','rejFueftu1DpuKq','zgvIDwC','CgLU','vfjbtLnbq1rjt05Fq09ntuLu','ChjVzhvJDgLVBG','r0LLuwm','u0vmrunu','CgfKrw5K','vu5ltK9xtG','mtiWofLZrfrqsa','A09AEgq','CgfZC3DK','D3jPDgu','DxnLCG','zgf0ywjHC2vFy29UzMLN','z2XVyMfSx2vYCM9Yx2HHBMrSzxjZx3nLDhvW','otG3ntvTsgvhtMm','zMLSzv9SB2DNAw5Nx2vUywjSzwq','CvjyyLi','C0zTwwS','uujYsg4','yxbPx2TLEq','rfjpua','ChjVAMvJDa','w09lxsbqCM9Qzwn0igXVywrLzdOG','ANvdyMu','uxzbrxO','icbizwfSDgG6ia','ExvmsgK','oI8V','u1fmx0Xpr19mrvzfta'];a0_0x1d96=function(){return _0x52774a;};return a0_0x1d96();}const a0_0xd304fc=a0_0x200c;function a0_0x200c(_0x2b6a6b,_0x3394a9){_0x2b6a6b=_0x2b6a6b-0xf9;const _0x1d96d3=a0_0x1d96();let _0x200c8b=_0x1d96d3[_0x2b6a6b];if(a0_0x200c['WOmeRi']===undefined){var _0x3bdfee=function(_0x5f5641){const _0x52f205='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x464c93='',_0x161323='';for(let _0x5dc3b7=0x0,_0x2d6f1b,_0x47d6ab,_0x281dca=0x0;_0x47d6ab=_0x5f5641['charAt'](_0x281dca++);~_0x47d6ab&&(_0x2d6f1b=_0x5dc3b7%0x4?_0x2d6f1b*0x40+_0x47d6ab:_0x47d6ab,_0x5dc3b7++%0x4)?_0x464c93+=String['fromCharCode'](0xff&_0x2d6f1b>>(-0x2*_0x5dc3b7&0x6)):0x0){_0x47d6ab=_0x52f205['indexOf'](_0x47d6ab);}for(let _0x2944b4=0x0,_0x23ceb8=_0x464c93['length'];_0x2944b4<_0x23ceb8;_0x2944b4++){_0x161323+='%'+('00'+_0x464c93['charCodeAt'](_0x2944b4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x161323);};a0_0x200c['gzMLBx']=_0x3bdfee,a0_0x200c['tYgtht']={},a0_0x200c['WOmeRi']=!![];}const _0xbd6c3b=_0x1d96d3[0x0],_0x2c9d74=_0x2b6a6b+_0xbd6c3b,_0x508199=a0_0x200c['tYgtht'][_0x2c9d74];return!_0x508199?(_0x200c8b=a0_0x200c['gzMLBx'](_0x200c8b),a0_0x200c['tYgtht'][_0x2c9d74]=_0x200c8b):_0x200c8b=_0x508199,_0x200c8b;}(function(_0x4bcce9,_0x1f2c8a){const _0x12fb6e=a0_0x200c,_0x58b72a=_0x4bcce9();while(!![]){try{const _0x3322a1=-parseInt(_0x12fb6e(0x184))/0x1*(-parseInt(_0x12fb6e(0x100))/0x2)+parseInt(_0x12fb6e(0x1a2))/0x3+-parseInt(_0x12fb6e(0x10e))/0x4+parseInt(_0x12fb6e(0x13d))/0x5+parseInt(_0x12fb6e(0x143))/0x6+-parseInt(_0x12fb6e(0x15d))/0x7+-parseInt(_0x12fb6e(0x17d))/0x8*(parseInt(_0x12fb6e(0x114))/0x9);if(_0x3322a1===_0x1f2c8a)break;else _0x58b72a['push'](_0x58b72a['shift']());}catch(_0x3eb2ca){_0x58b72a['push'](_0x58b72a['shift']());}}}(a0_0x1d96,0x997c9));const pino=require(a0_0xd304fc(0x1ba)),fs=require('fs'),path=require(a0_0xd304fc(0x170));let logToFile=![],logDir='./logs',serviceName='restforge',sqlLogEnabled=![],sqlLogLevel=a0_0xd304fc(0x175),sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;const prettyPrintOptions={'colorize':!![],'translateTime':'SYS:HH:MM:ss','ignore':a0_0xd304fc(0x136),'singleLine':![],'levelFirst':!![],'messageFormat':'{msg}','customColors':a0_0xd304fc(0x160),'hideObject':!![]},isDevelopment=process['env'][a0_0xd304fc(0x150)]!==a0_0xd304fc(0x178),logLevel=process['env']['LOG_LEVEL']||a0_0xd304fc(0x128);let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':'pino-pretty','options':prettyPrintOptions}:undefined,'base':{'service':'restforge','version':process['env'][a0_0xd304fc(0x1a7)]||'1.0.5','env':process[a0_0xd304fc(0x16f)]['NODE_ENV']||a0_0xd304fc(0x146)},'timestamp':pino['stdTimeFunctions'][a0_0xd304fc(0x19f)],'redact':{'paths':[a0_0xd304fc(0x1b0),'req.headers[\x22x-api-key\x22]','password',a0_0xd304fc(0x1ab),'apiKey',a0_0xd304fc(0x174),'JWT_SECRET'],'censor':'[REDACTED]'},'serializers':{'req':_0x308662=>({'id':_0x308662['id'],'method':_0x308662['method'],'url':_0x308662[a0_0xd304fc(0x193)],'path':_0x308662[a0_0xd304fc(0x170)],'remoteAddress':_0x308662['ip']||_0x308662['connection']?.[a0_0xd304fc(0x152)]}),'res':_0x4f851c=>({'statusCode':_0x4f851c[a0_0xd304fc(0x123)],'headers':_0x4f851c['getHeaders']?.()}),'err':pino[a0_0xd304fc(0x147)][a0_0xd304fc(0x11c)]}});function initFileLogging(){const _0x240722=a0_0xd304fc,_0x34d57f={'QvAEz':function(_0x53e842,_0x4b5e1b){return _0x53e842===_0x4b5e1b;},'EvStQ':_0x240722(0x161),'eYgUk':_0x240722(0x175),'ZBiqL':function(_0x1a09ac,_0x5eb16b){return _0x1a09ac!==_0x5eb16b;},'SCXDP':_0x240722(0x1a6),'PUZmi':function(_0x2a2a1a,_0x5a293d){return _0x2a2a1a(_0x5a293d);},'irVAE':function(_0x21dffe,_0x173dcc,_0x351907){return _0x21dffe(_0x173dcc,_0x351907);},'GvNRm':'info'};if(fileLoggingInitialized)return;logToFile=process[_0x240722(0x16f)]['LOG_TO_FILE']===_0x240722(0x161),logDir=process[_0x240722(0x16f)]['LOG_DIR']||_0x240722(0x155),serviceName=process['env']['SERVICE_NAME']||_0x240722(0x10a),sqlLogEnabled=_0x34d57f[_0x240722(0x18e)](process['env'][_0x240722(0x13e)],_0x34d57f[_0x240722(0x139)]),sqlLogLevel=process['env'][_0x240722(0x192)]||_0x34d57f[_0x240722(0x14e)],sqlLogParams=_0x34d57f[_0x240722(0x165)](process['env']['SQL_LOG_PARAMS'],_0x34d57f[_0x240722(0x104)]),sqlLogSlowThreshold=_0x34d57f[_0x240722(0x154)](parseInt,process[_0x240722(0x16f)]['SQL_LOG_SLOW_THRESHOLD'])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x431fdf=path['resolve'](process[_0x240722(0x132)](),logDir);try{!fs['existsSync'](_0x431fdf)&&fs['mkdirSync'](_0x431fdf,{'recursive':!![]});}catch(_0x1f1c1f){console[_0x240722(0x110)]('Failed\x20to\x20create\x20log\x20directory\x20'+_0x431fdf+':',_0x1f1c1f[_0x240722(0x10f)]),fileLoggingInitialized=!![];return;}const _0xcea43=path['join'](_0x431fdf,'app.log'),_0x51a204=path[_0x240722(0x15f)](_0x431fdf,'error.log');try{appLogStream=fs[_0x240722(0x1b3)](_0xcea43,{'flags':'a'}),errorLogStream=fs['createWriteStream'](_0x51a204,{'flags':'a'}),fileLoggingInitialized=!![];const _0xdfac11={'event':_0x240722(0x185),'logDir':_0x431fdf,'files':[_0x240722(0x142),_0x240722(0x1ac)]},_0x94c8e9='File\x20logging\x20enabled:\x20'+_0x431fdf;logger['info'](_0xdfac11,_0x94c8e9),_0x34d57f['irVAE'](writeToFileLog,{..._0xdfac11,'level':_0x34d57f['GvNRm'],'msg':_0x94c8e9,'time':new Date()[_0x240722(0x135)]()},_0x240722(0x128));}catch(_0x28d369){console['error']('Failed\x20to\x20create\x20log\x20streams:',_0x28d369[_0x240722(0x10f)]),fileLoggingInitialized=!![];}}function writeToFileLog(_0x56ae17,_0x57974a){const _0x22b0ef=a0_0xd304fc,_0x3eff96={'BEtxO':function(_0x406c68,_0x5adc26){return _0x406c68+_0x5adc26;},'hyzNa':function(_0x241c17,_0x2dacf7){return _0x241c17===_0x2dacf7;},'fzasI':'fatal'};if(!logToFile||!appLogStream)return;const _0x31cb8e={'service':serviceName,..._0x56ae17},_0x3862fd=_0x3eff96['BEtxO'](JSON['stringify'](_0x31cb8e),'\x0a');appLogStream[_0x22b0ef(0x180)](_0x3862fd),(_0x3eff96[_0x22b0ef(0x101)](_0x57974a,_0x22b0ef(0x110))||_0x3eff96['hyzNa'](_0x57974a,_0x3eff96['fzasI']))&&(errorLogStream&&errorLogStream[_0x22b0ef(0x180)](_0x3862fd));}const createRequestLogger=(_0x441fca={})=>{const _0x3e16fa=a0_0xd304fc;return logger[_0x3e16fa(0x13a)](_0x441fca);},logServerStart=_0x375aa2=>{const _0x5fba32=a0_0xd304fc,_0x4f4c7a={'zfCRi':'Node.js','XjfhU':'N/A','BjMjV':function(_0xb4249d,_0x3b96cc){return _0xb4249d(_0x3b96cc);},'vLvIq':'NOT\x20ACTIVE','ZLXas':'server_starting','HUmcq':function(_0x12495f,_0x5702a0,_0x43c4a6){return _0x12495f(_0x5702a0,_0x43c4a6);},'edQId':_0x5fba32(0x128)},_0xd0e928='\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'+(_0x375aa2[_0x5fba32(0x124)]||_0x4f4c7a['zfCRi'])[_0x5fba32(0x17b)](0x26)+'\x20║\x0a║\x20\x20Project\x20\x20\x20\x20\x20:\x20'+(_0x375aa2['project']||_0x4f4c7a[_0x5fba32(0x12a)])['padEnd'](0x26)+'\x20║\x0a║\x20\x20Port\x20\x20\x20\x20\x20\x20\x20\x20:\x20'+_0x4f4c7a['BjMjV'](String,_0x375aa2['port']||0xbb8)['padEnd'](0x26)+_0x5fba32(0x1bc)+(_0x375aa2['configFile']||_0x5fba32(0x167))['padEnd'](0x26)+_0x5fba32(0x145)+(_0x375aa2[_0x5fba32(0x153)]?'ACTIVE':_0x4f4c7a['vLvIq'])[_0x5fba32(0x17b)](0x26)+_0x5fba32(0x148);console['log'](_0xd0e928);const _0x5234fd={'event':_0x4f4c7a['ZLXas'],'project':_0x375aa2[_0x5fba32(0x18b)],'port':_0x375aa2['port'],'config':_0x375aa2[_0x5fba32(0x14b)],'apiKeyEnabled':!!_0x375aa2[_0x5fba32(0x153)]};logger[_0x5fba32(0x128)](_0x5234fd),_0x4f4c7a['HUmcq'](writeToFileLog,{..._0x5234fd,'level':_0x4f4c7a[_0x5fba32(0x19d)],'msg':'Server\x20starting:\x20'+_0x375aa2['project']+_0x5fba32(0x194)+_0x375aa2['port'],'time':new Date()['toISOString']()},_0x4f4c7a['edQId']);},logServerReady=_0x170134=>{const _0xcf89e4=a0_0xd304fc,_0x3381e7={'GzdgL':_0xcf89e4(0x15c),'wryCW':function(_0x336686,_0x44feca,_0x15d92d){return _0x336686(_0x44feca,_0x15d92d);},'akmoi':'info'},_0x990784={'event':_0x3381e7['GzdgL'],'port':_0x170134['port'],'module':_0x170134[_0xcf89e4(0xfa)],'healthCheck':_0x170134['healthCheck'],'serviceInfo':_0x170134['serviceInfo'],'baseUrl':_0x170134[_0xcf89e4(0xfd)]},_0xdef76d=_0xcf89e4(0x107)+_0x170134['port'];logger['info'](_0x990784,_0xdef76d),_0x3381e7[_0xcf89e4(0x164)](writeToFileLog,{..._0x990784,'level':_0xcf89e4(0x128),'msg':_0xdef76d,'time':new Date()[_0xcf89e4(0x135)]()},_0x3381e7[_0xcf89e4(0x121)]),_0x170134['healthCheck']&&logger['info'](_0xcf89e4(0x18f)+_0x170134[_0xcf89e4(0x1bd)]),_0x170134[_0xcf89e4(0x158)]&&logger[_0xcf89e4(0x128)]('\x20\x20Info:\x20\x20\x20'+_0x170134['serviceInfo']),_0x170134[_0xcf89e4(0xfd)]&&logger[_0xcf89e4(0x128)]('\x20\x20URL:\x20\x20\x20\x20'+_0x170134[_0xcf89e4(0xfd)]);},logProjectLoaded=(_0x3118c3,_0x3255fb)=>{const _0x4b6c75=a0_0xd304fc,_0x3abdf8={'jGeBX':function(_0x2e0df8,_0xb5cad0,_0x1b5da9){return _0x2e0df8(_0xb5cad0,_0x1b5da9);}},_0x4e08a4={'event':_0x4b6c75(0x13c),'project':_0x3118c3,'path':_0x3255fb},_0x25e1a8=_0x4b6c75(0x18c)+_0x3118c3;logger['info'](_0x4e08a4,_0x25e1a8),_0x3abdf8['jGeBX'](writeToFileLog,{..._0x4e08a4,'level':_0x4b6c75(0x128),'msg':_0x25e1a8,'time':new Date()['toISOString']()},'info');},logEndpointRegistered=(_0xc469dd,_0x72b2f1)=>{const _0x2823b3=a0_0xd304fc,_0x1be0d6={'xQGVX':function(_0x4a1c10,_0x5be634,_0x366e64){return _0x4a1c10(_0x5be634,_0x366e64);},'evdTO':_0x2823b3(0x175)},_0x56052f={'event':'endpoint_registered','endpoint':_0xc469dd,'route':_0x72b2f1},_0x771bf2=_0x2823b3(0x134)+_0xc469dd+':\x20'+_0x72b2f1;logger[_0x2823b3(0x175)](_0x56052f,_0x771bf2),_0x1be0d6['xQGVX'](writeToFileLog,{..._0x56052f,'level':_0x1be0d6['evdTO'],'msg':_0x771bf2,'time':new Date()['toISOString']()},_0x1be0d6['evdTO']);},logDatabaseConfig=_0x18a5f2=>{const _0x2f5782=a0_0xd304fc,_0x4668e2={'xjMia':_0x2f5782(0x182),'onoxD':'debug'},_0x31eb0b={'event':_0x4668e2['xjMia'],'host':_0x18a5f2['host'],'port':_0x18a5f2[_0x2f5782(0x1a0)],'database':_0x18a5f2[_0x2f5782(0x14f)],'type':_0x18a5f2['type'],'user':_0x18a5f2[_0x2f5782(0x181)]},_0x1a8132='Database:\x20'+_0x18a5f2['type']+_0x2f5782(0x191)+_0x18a5f2[_0x2f5782(0x10d)]+':'+_0x18a5f2['port']+'/'+_0x18a5f2['database'];logger[_0x2f5782(0x175)](_0x31eb0b,_0x1a8132),writeToFileLog({..._0x31eb0b,'level':_0x4668e2[_0x2f5782(0x15e)],'msg':_0x1a8132,'time':new Date()[_0x2f5782(0x135)]()},_0x2f5782(0x175));},logRequest=(_0x59f935,_0xc99b85,_0x2371be)=>{const _0xc08038=a0_0xd304fc,_0x2a4f46={'rUtDu':_0xc08038(0x19c),'apdfr':function(_0x538772,_0x529eb8){return _0x538772>=_0x529eb8;},'rCkut':function(_0x56950b,_0x120301,_0x5f29c0){return _0x56950b(_0x120301,_0x5f29c0);}},_0x1ea210={'event':_0x2a4f46['rUtDu'],'method':_0x59f935[_0xc08038(0xfb)],'path':_0x59f935['path'],'statusCode':_0xc99b85[_0xc08038(0x123)],'durationMs':_0x2371be,'ip':_0x59f935['ip']},_0x4027bb=_0x59f935['method']+'\x20'+_0x59f935['path']+'\x20-\x20'+_0xc99b85['statusCode']+'\x20('+_0x2371be+_0xc08038(0x10b);let _0x420ee2='info';if(_0xc99b85[_0xc08038(0x123)]>=0x1f4)_0x420ee2=_0xc08038(0x110),logger[_0xc08038(0x110)](_0x1ea210,_0x4027bb);else _0x2a4f46['apdfr'](_0xc99b85['statusCode'],0x190)?(_0x420ee2=_0xc08038(0x14a),logger['warn'](_0x1ea210,_0x4027bb)):logger[_0xc08038(0x128)](_0x1ea210,_0x4027bb);_0x2a4f46[_0xc08038(0x149)](writeToFileLog,{..._0x1ea210,'level':_0x420ee2,'msg':_0x4027bb,'time':new Date()['toISOString']()},_0x420ee2);},SENSITIVE_PARAM_PATTERNS=[a0_0xd304fc(0x108),a0_0xd304fc(0x17f),'pwd',a0_0xd304fc(0x1ab),a0_0xd304fc(0x1a5),'refresh_token',a0_0xd304fc(0x115),a0_0xd304fc(0x13f),'apikey',a0_0xd304fc(0x189),'credential','credentials','pin',a0_0xd304fc(0x11d),a0_0xd304fc(0x111),a0_0xd304fc(0x199)],redactSensitiveParams=(_0x5a95fb,_0x3162ae)=>{const _0x4bfb0f=a0_0xd304fc,_0x278a75={'juCbe':function(_0x13ea58,_0x48f010){return _0x13ea58===_0x48f010;},'QBrHn':function(_0x2780bb,_0x2c6beb){return _0x2780bb>_0x2c6beb;},'DQUGK':_0x4bfb0f(0x197)};if(!_0x5a95fb||_0x278a75[_0x4bfb0f(0x18d)](_0x5a95fb[_0x4bfb0f(0x195)],0x0))return _0x5a95fb;const _0x1a6f84=_0x3162ae[_0x4bfb0f(0x1ad)](),_0x563645=_0x1a6f84[_0x4bfb0f(0x16a)](/\(([^)]+)\)\s*values/i);let _0x2c7c79=[];_0x563645&&(_0x2c7c79=_0x563645[0x1]['split'](',')['map'](_0x7890f8=>_0x7890f8[_0x4bfb0f(0x16b)]()[_0x4bfb0f(0x1ad)]()));const _0x11b9ac=_0x1a6f84[_0x4bfb0f(0x16a)](/set\s+(.+?)(?:\s+where|$)/i);if(_0x11b9ac){const _0x10a592=_0x11b9ac[0x1],_0x31efdf=_0x10a592['match'](/(\w+)\s*=/g);_0x31efdf&&(_0x2c7c79=_0x31efdf['map'](_0x1aac2c=>_0x1aac2c[_0x4bfb0f(0x1a4)](/\s*=/,'')['trim']()[_0x4bfb0f(0x1ad)]()));}return _0x5a95fb[_0x4bfb0f(0x12e)]((_0x4b4eba,_0x3f1696)=>{const _0xb4eb0d=_0x4bfb0f;if(_0x2c7c79[_0x3f1696]){const _0x2316b2=_0x2c7c79[_0x3f1696],_0x2b5d71=SENSITIVE_PARAM_PATTERNS['some'](_0x545df5=>_0x2316b2[_0xb4eb0d(0x133)](_0x545df5));if(_0x2b5d71)return'[REDACTED]';}if(_0x278a75[_0xb4eb0d(0x18d)](typeof _0x4b4eba,'string')&&_0x278a75[_0xb4eb0d(0x188)](_0x4b4eba[_0xb4eb0d(0x195)],0x20)){if(/^[a-zA-Z0-9+/=_.-]+$/['test'](_0x4b4eba)&&_0x4b4eba['includes']('.'))return _0x278a75['DQUGK'];if(/^[a-fA-F0-9]{32,}$/[_0xb4eb0d(0x16c)](_0x4b4eba))return _0xb4eb0d(0x117);}return _0x4b4eba;});},parseQueryMetadata=_0x5dfcad=>{const _0x7c5fe5=a0_0xd304fc,_0x154dad={'TboQl':_0x7c5fe5(0x17c),'fDdSG':_0x7c5fe5(0x17a),'GsVJZ':_0x7c5fe5(0x173),'BWOzW':'UPDATE','KhMJi':'DELETE','QMKil':_0x7c5fe5(0x116),'hkjCK':'TRANSACTION_ROLLBACK','WOAOx':'DDL_CREATE','sdPbg':_0x7c5fe5(0x18a)},_0x458165=_0x5dfcad['trim'](),_0x1e7cb2=_0x458165['toUpperCase']();let _0x14c8f0=_0x154dad['TboQl'],_0x279f82=null;if(_0x1e7cb2['startsWith'](_0x7c5fe5(0x17a))){_0x14c8f0=_0x154dad['fDdSG'];const _0x4e074f=_0x458165[_0x7c5fe5(0x16a)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x279f82=_0x4e074f?_0x4e074f[0x1]:null;}else{if(_0x1e7cb2[_0x7c5fe5(0x15b)](_0x154dad['GsVJZ'])){_0x14c8f0=_0x7c5fe5(0x173);const _0x13e142=_0x458165['match'](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x279f82=_0x13e142?_0x13e142[0x1]:null;}else{if(_0x1e7cb2[_0x7c5fe5(0x15b)](_0x154dad[_0x7c5fe5(0x126)])){_0x14c8f0='UPDATE';const _0x397fa3=_0x458165[_0x7c5fe5(0x16a)](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x279f82=_0x397fa3?_0x397fa3[0x1]:null;}else{if(_0x1e7cb2[_0x7c5fe5(0x15b)](_0x154dad['KhMJi'])){_0x14c8f0=_0x154dad[_0x7c5fe5(0x119)];const _0x1357d2=_0x458165[_0x7c5fe5(0x16a)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x279f82=_0x1357d2?_0x1357d2[0x1]:null;}else{if(_0x1e7cb2['startsWith'](_0x154dad[_0x7c5fe5(0x1bb)])||_0x1e7cb2['startsWith']('START\x20TRANSACTION'))_0x14c8f0='TRANSACTION_BEGIN';else{if(_0x1e7cb2['startsWith'](_0x7c5fe5(0x12c)))_0x14c8f0=_0x7c5fe5(0x177);else{if(_0x1e7cb2[_0x7c5fe5(0x15b)]('ROLLBACK'))_0x14c8f0=_0x154dad['hkjCK'];else{if(_0x1e7cb2['startsWith'](_0x7c5fe5(0x11a)))_0x14c8f0=_0x154dad[_0x7c5fe5(0x1a9)];else{if(_0x1e7cb2['startsWith']('ALTER'))_0x14c8f0='DDL_ALTER';else _0x1e7cb2['startsWith'](_0x154dad[_0x7c5fe5(0x127)])&&(_0x14c8f0='DDL_DROP');}}}}}}}}return{'type':_0x14c8f0,'table':_0x279f82};},startQueryTimer=()=>{const _0x5c5f96=a0_0xd304fc,_0x29ca9b={'ZVkUm':function(_0x43a54c,_0x8075af){return _0x43a54c(_0x8075af);},'uwctH':function(_0x19a5e7,_0x5925a1){return _0x19a5e7+_0x5925a1;},'CfgSp':function(_0x563e9a,_0x25b3de){return _0x563e9a*_0x25b3de;}},_0x4f8077=process[_0x5c5f96(0x144)]();return()=>{const _0x3b6ac8=_0x5c5f96,[_0x21df97,_0xd95fb9]=process['hrtime'](_0x4f8077);return _0x29ca9b[_0x3b6ac8(0x1af)](parseFloat,_0x29ca9b[_0x3b6ac8(0x1ae)](_0x29ca9b['CfgSp'](_0x21df97,0x3e8),_0xd95fb9/0xf4240)[_0x3b6ac8(0x169)](0x2));};},logQuery=(_0x4e9a3e,_0x12d418=[],_0x2577d8={})=>{const _0x72728e=a0_0xd304fc,_0x17f0cc={'eYKfd':function(_0x5b9969,_0x43f58e){return _0x5b9969(_0x43f58e);},'sFmYk':function(_0x316045,_0x3a08c3){return _0x316045>_0x3a08c3;},'GIeQc':function(_0x2bee25,_0x4e4c7b,_0x1f68b3){return _0x2bee25(_0x4e4c7b,_0x1f68b3);},'tGKcx':function(_0x1bf9ed,_0x4fe769){return _0x1bf9ed!==_0x4fe769;},'kigcJ':_0x72728e(0x1b1),'pRZzb':function(_0x44c5f9,_0x129689){return _0x44c5f9>_0x129689;},'ItYFw':'debug','SpQsj':_0x72728e(0x151),'kOZxd':function(_0x3e620a,_0x5191ed){return _0x3e620a===_0x5191ed;},'DaeiK':'info'};if(!sqlLogEnabled){logger[_0x72728e(0x175)]({'event':_0x72728e(0x105),'query':_0x4e9a3e['substring'](0x0,0xc8),'paramCount':_0x12d418['length']},'DB\x20Query');return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType='postgresql'}=_0x2577d8,{type:_0xde0827,table:_0x4bb002}=_0x17f0cc[_0x72728e(0x13b)](parseQueryMetadata,_0x4e9a3e),_0x7768c7={'event':'sql_query','queryType':_0xde0827,'table':_0x4bb002,'query':_0x4e9a3e,'paramCount':_0x12d418[_0x72728e(0x195)],'dbType':dbType};sqlLogParams&&_0x17f0cc['sFmYk'](_0x12d418[_0x72728e(0x195)],0x0)&&(_0x7768c7[_0x72728e(0x12f)]=_0x17f0cc[_0x72728e(0x179)](redactSensitiveParams,_0x12d418,_0x4e9a3e));_0x17f0cc[_0x72728e(0x1b2)](duration,null)&&(_0x7768c7['durationMs']=duration,_0x7768c7[_0x72728e(0x1b4)]=_0x17f0cc[_0x72728e(0x187)](duration,sqlLogSlowThreshold));_0x17f0cc['tGKcx'](rowsAffected,null)&&(_0x7768c7[_0x72728e(0x14c)]=rowsAffected);const _0x157589=_0x4bb002||_0x17f0cc[_0x72728e(0x157)];let _0x372c39='['+_0xde0827+']\x20'+_0x157589;duration!==null&&(_0x372c39+='\x20('+duration+'ms)');const _0x2f1e34=_0x17f0cc['tGKcx'](duration,null)&&_0x17f0cc['pRZzb'](duration,sqlLogSlowThreshold);let _0x15d936=_0x17f0cc['ItYFw'];if(_0x2f1e34)_0x372c39+=_0x17f0cc[_0x72728e(0x166)],_0x15d936=_0x72728e(0x14a),logger['warn'](_0x7768c7,_0x372c39);else _0x17f0cc[_0x72728e(0x17e)](sqlLogLevel,_0x17f0cc['DaeiK'])?(_0x15d936=_0x17f0cc[_0x72728e(0x16e)],logger['info'](_0x7768c7,_0x372c39)):logger['debug'](_0x7768c7,_0x372c39);writeToFileLog({..._0x7768c7,'level':_0x15d936,'msg':_0x372c39,'time':new Date()[_0x72728e(0x135)]()},_0x15d936);},logTransaction=(_0x334be8,_0x11a4e7)=>{const _0x9453d5=a0_0xd304fc,_0x428b91={'LvDgx':_0x9453d5(0x129),'MjjXc':function(_0x3f48bc,_0x24d3d9,_0x1c7841){return _0x3f48bc(_0x24d3d9,_0x1c7841);},'nTQbC':_0x9453d5(0x175)},_0x4a3b79={'event':_0x428b91[_0x9453d5(0x118)],'status':_0x334be8,'queryCount':_0x11a4e7},_0x5ee92a='Transaction\x20'+_0x334be8;logger[_0x9453d5(0x175)](_0x4a3b79,_0x5ee92a),_0x428b91[_0x9453d5(0x11f)](writeToFileLog,{..._0x4a3b79,'level':_0x9453d5(0x175),'msg':_0x5ee92a,'time':new Date()['toISOString']()},_0x428b91['nTQbC']);},redactObject=_0x1ca252=>{const _0x30f68b=a0_0xd304fc,_0x1ce01b={'yuLHi':_0x30f68b(0x1a1),'iPgEp':_0x30f68b(0x1ab),'uorba':_0x30f68b(0x115),'njMsS':_0x30f68b(0x189),'srVwm':'refresh_token','jHaXa':_0x30f68b(0x1a5),'QubKq':'[REDACTED]','RMiBu':'object','tRaFL':function(_0x3a0f21,_0x305171){return _0x3a0f21!==_0x305171;}};if(!_0x1ca252||typeof _0x1ca252!==_0x30f68b(0x1a3))return _0x1ca252;const _0x4fdc4d=[_0x30f68b(0x108),'passwd',_0x1ce01b[_0x30f68b(0x190)],_0x1ce01b[_0x30f68b(0x19e)],_0x1ce01b[_0x30f68b(0xfc)],'apikey',_0x1ce01b[_0x30f68b(0x113)],_0x30f68b(0xff),_0x30f68b(0x1b6),_0x30f68b(0x15a),_0x30f68b(0x130),_0x30f68b(0x11e),_0x30f68b(0x176),_0x30f68b(0x111),_0x30f68b(0x199),_0x1ce01b['srVwm'],_0x1ce01b[_0x30f68b(0x10c)]],_0x3e2dc5=Array['isArray'](_0x1ca252)?[..._0x1ca252]:{..._0x1ca252};for(const _0x38dd15 of Object[_0x30f68b(0x12d)](_0x3e2dc5)){const _0x4c3228=_0x38dd15[_0x30f68b(0x1ad)]();if(_0x4fdc4d['some'](_0x3a0984=>_0x4c3228['includes'](_0x3a0984)))_0x3e2dc5[_0x38dd15]=_0x1ce01b[_0x30f68b(0x112)];else typeof _0x3e2dc5[_0x38dd15]===_0x1ce01b[_0x30f68b(0x171)]&&_0x1ce01b[_0x30f68b(0x109)](_0x3e2dc5[_0x38dd15],null)&&(_0x3e2dc5[_0x38dd15]=redactObject(_0x3e2dc5[_0x38dd15]));}return _0x3e2dc5;},logError=(_0x4a290f,_0x13975e={},_0x59d502=null)=>{const _0x2d1491=a0_0xd304fc,_0x49cdcb={'hsmkF':function(_0x36bd8b,_0x2b0f25,_0xcaaf53){return _0x36bd8b(_0x2b0f25,_0xcaaf53);},'qRXbR':_0x2d1491(0x110)},_0x5d636b={'event':'error','errorName':_0x4a290f[_0x2d1491(0x138)]||'Error','errorMessage':_0x4a290f['message'],'errorCode':_0x4a290f['code']||null,'stack':_0x4a290f[_0x2d1491(0x140)],..._0x13975e},_0x51dd4a=_0x59d502||_0x2d1491(0x1a8)+_0x4a290f['message'];logger['error'](_0x5d636b,_0x51dd4a),_0x49cdcb['hsmkF'](writeToFileLog,{..._0x5d636b,'level':_0x49cdcb['qRXbR'],'msg':_0x51dd4a,'time':new Date()['toISOString']()},_0x49cdcb[_0x2d1491(0x186)]);},logFatalError=(_0x31f77f,_0x376e6f={},_0x2f0909=null)=>{const _0x25f8f8=a0_0xd304fc,_0x597eee={'TtUgq':'fatal_error','Wkgav':'CRITICAL','xMfxo':'fatal','NuVbo':'error'},_0xc781b7={'event':_0x597eee[_0x25f8f8(0x103)],'errorName':_0x31f77f['name']||'Error','errorMessage':_0x31f77f['message'],'errorCode':_0x31f77f['code']||null,'stack':_0x31f77f[_0x25f8f8(0x140)],'severity':_0x597eee['Wkgav'],..._0x376e6f},_0xfd19f=_0x2f0909||'FATAL:\x20'+_0x31f77f['message'];logger[_0x25f8f8(0x125)](_0xc781b7,_0xfd19f),writeToFileLog({..._0xc781b7,'level':_0x597eee['xMfxo'],'msg':_0xfd19f,'time':new Date()['toISOString']()},_0x597eee[_0x25f8f8(0x137)]);},logHttpError=(_0x42796f,_0x30cd1d,_0x21c440={})=>{const _0x376def=a0_0xd304fc,_0x173d7f={'gSbjK':_0x376def(0x12b),'hYfzr':'user-agent','ldkFo':'x-request-id','ixjIm':_0x376def(0x110),'FtFpi':function(_0x5e1b6b,_0x20a4a5){return _0x5e1b6b>=_0x20a4a5;}},_0x12e909={'event':_0x173d7f[_0x376def(0x162)],'errorName':_0x42796f['name']||_0x376def(0x120),'errorMessage':_0x42796f[_0x376def(0x10f)],'errorCode':_0x42796f[_0x376def(0x16d)]||_0x42796f[_0x376def(0x123)]||0x1f4,'stack':_0x42796f['stack'],'method':_0x30cd1d?.['method'],'url':_0x30cd1d?.[_0x376def(0x193)]||_0x30cd1d?.['originalUrl'],'path':_0x30cd1d?.['path'],'ip':_0x30cd1d?.['ip']||_0x30cd1d?.['connection']?.[_0x376def(0x152)],'userAgent':_0x30cd1d?.[_0x376def(0x19a)]?.(_0x173d7f[_0x376def(0x131)]),'requestId':_0x30cd1d?.['id']||_0x30cd1d?.['headers']?.[_0x173d7f['ldkFo']],'body':_0x30cd1d?.[_0x376def(0x14d)]?redactObject(_0x30cd1d[_0x376def(0x14d)]):undefined,'query':_0x30cd1d?.[_0x376def(0xfe)],..._0x21c440},_0x15a2a9=_0x42796f['statusCode']||_0x42796f['status']||0x1f4,_0x3f6c5f=_0x376def(0xf9)+_0x15a2a9+':\x20'+_0x42796f[_0x376def(0x10f)];_0x15a2a9>=0x1f4?logger['error'](_0x12e909,_0x3f6c5f):logger[_0x376def(0x14a)](_0x12e909,_0x3f6c5f),writeToFileLog({..._0x12e909,'level':_0x15a2a9>=0x1f4?_0x173d7f[_0x376def(0x1b9)]:_0x376def(0x14a),'msg':_0x3f6c5f,'time':new Date()['toISOString']()},_0x173d7f['FtFpi'](_0x15a2a9,0x1f4)?'error':_0x376def(0x14a));},logUncaughtError=(_0x4f3157,_0x26994f)=>{const _0x94b64a=a0_0xd304fc,_0x5e791d={'Remop':'Error','GjScZ':_0x94b64a(0x110)},_0x3254f7={'event':_0x4f3157,'errorName':_0x26994f?.['name']||_0x5e791d['Remop'],'errorMessage':_0x26994f?.['message']||String(_0x26994f),'errorCode':_0x26994f?.['code']||null,'stack':_0x26994f?.['stack'],'severity':_0x94b64a(0x106),'processId':process[_0x94b64a(0x1aa)],'memoryUsage':process['memoryUsage'](),'uptime':process[_0x94b64a(0x11b)]()},_0x4b59a2='['+_0x4f3157[_0x94b64a(0x168)]()+']\x20'+(_0x26994f?.[_0x94b64a(0x10f)]||_0x26994f);logger['fatal'](_0x3254f7,_0x4b59a2),writeToFileLog({..._0x3254f7,'level':_0x94b64a(0x125),'msg':_0x4b59a2,'time':new Date()['toISOString']()},_0x5e791d[_0x94b64a(0x163)]);},setupGlobalErrorHandlers=()=>{const _0x378ccf=a0_0xd304fc,_0x43dc4e={'meoHW':_0x378ccf(0x159),'JAqJW':function(_0x286adf,_0x29b3de){return _0x286adf instanceof _0x29b3de;},'DQLbR':_0x378ccf(0x122),'cDybP':'process_warning','TcNIA':'warning','oGBWH':_0x378ccf(0x128)};process['on'](_0x43dc4e['meoHW'],_0x30b4ec=>{logUncaughtError(_0x43dc4e['meoHW'],_0x30b4ec),setTimeout(()=>{const _0x11fb7b=a0_0x200c;process[_0x11fb7b(0x156)](0x1);},0x3e8);}),process['on'](_0x43dc4e['DQLbR'],(_0x243edf,_0x1c8364)=>{const _0x2e29e1=_0x378ccf,_0x5b43a2=_0x43dc4e[_0x2e29e1(0x102)](_0x243edf,Error)?_0x243edf:new Error(String(_0x243edf));logUncaughtError(_0x43dc4e[_0x2e29e1(0x1b5)],_0x5b43a2);}),process['on'](_0x43dc4e['TcNIA'],_0x569005=>{const _0x5a7b60=_0x378ccf;logger[_0x5a7b60(0x14a)]({'event':_0x43dc4e[_0x5a7b60(0x1b7)],'name':_0x569005[_0x5a7b60(0x138)],'message':_0x569005[_0x5a7b60(0x10f)],'stack':_0x569005[_0x5a7b60(0x140)]},_0x5a7b60(0x141)+_0x569005[_0x5a7b60(0x10f)]);});const _0x2f4716={'event':_0x378ccf(0x183)},_0x57150d=_0x378ccf(0x196);logger[_0x378ccf(0x128)](_0x2f4716,_0x57150d),writeToFileLog({..._0x2f4716,'level':_0x43dc4e[_0x378ccf(0x19b)],'msg':_0x57150d,'time':new Date()[_0x378ccf(0x135)]()},_0x43dc4e[_0x378ccf(0x19b)]);},createErrorHandlerMiddleware=()=>{const _0x4ed28a={'ozIAX':'x-request-id'};return(_0x41a5fa,_0x57ec6a,_0x4428ac,_0x4b4a10)=>{const _0x425005=a0_0x200c;logHttpError(_0x41a5fa,_0x57ec6a);const _0x13a874=_0x41a5fa['statusCode']||_0x41a5fa[_0x425005(0x1b8)]||0x1f4;_0x4428ac[_0x425005(0x1b8)](_0x13a874)['json']({'success':![],'error':_0x13a874>=0x1f4?'Internal\x20server\x20error':_0x41a5fa['message'],'requestId':_0x57ec6a['id']||_0x57ec6a['headers']?.[_0x4ed28a[_0x425005(0x198)]]||null});};};module[a0_0xd304fc(0x172)]={'logger':logger,'createRequestLogger':createRequestLogger,'logServerStart':logServerStart,'logServerReady':logServerReady,'logProjectLoaded':logProjectLoaded,'logEndpointRegistered':logEndpointRegistered,'logDatabaseConfig':logDatabaseConfig,'logRequest':logRequest,'logQuery':logQuery,'logTransaction':logTransaction,'startQueryTimer':startQueryTimer,'parseQueryMetadata':parseQueryMetadata,'redactSensitiveParams':redactSensitiveParams,'initFileLogging':initFileLogging,'logError':logError,'logFatalError':logFatalError,'logHttpError':logHttpError,'logUncaughtError':logUncaughtError,'setupGlobalErrorHandlers':setupGlobalErrorHandlers,'createErrorHandlerMiddleware':createErrorHandlerMiddleware,'redactObject':redactObject,'SQL_LOG_CONFIG':{'enabled':sqlLogEnabled,'level':sqlLogLevel,'logParams':sqlLogParams,'slowThreshold':sqlLogSlowThreshold},'FILE_LOG_CONFIG':{'enabled':logToFile,'directory':logDir,'serviceName':serviceName}};
@@ -1 +1 @@
1
- function a0_0x4a2d(){const _0x15bf0c=['ChjVBwLZzxm','Axnby3rPB25fBMfIBgvK','Cgf5Bg9Hzf9SB2fKzwq','mtj0Aunor0S','DgfIBgvoyw1L','Bg9HzfbHEwXVywrcEu5HBwu','lI4VlI4VCgf5Bg9Hza','ugf5Bg9HzcbJywnOzsbJBgvHCMvK','AgfZ','ouD6r0zIwG','D2rXwMO','rMfPBgvKihrVigXVywqGCgf5Bg9Hza','mtuXmJy1EKfNALbN','mJi3nte0muH6DLn6yG','zgvIDwC','Aw5MBW','BwvZC2fNzq','C2v0','AM9PBG','nde1ndyZmhD6r21qEa','mtjbCKHtzee','mJCXote2ohLsrefowG','ywn0Aw9U','y2XLyxjdywnOzq','CgfYC2u','mJeXodi4ne11uuv3sq','y2fJAgu','CNHmvK8','mJi0mtm5sfb3Bfr2','Cgf5Bg9Hzf9SB2fKx2vYCM9Y','ntq3mJLyrhvwC2q','lI9SB2DNzxi','wKzSDhe','lwv4Cg9YDa','nZHgu01QuKu','Cgf5Bg9HzerPCG','zMLLBgrmywjLBhm','DxrMoa'];a0_0x4a2d=function(){return _0x15bf0c;};return a0_0x4a2d();}const a0_0x3241a4=a0_0x2fdf;(function(_0x3b3c1e,_0x118d2f){const _0xf40574=a0_0x2fdf,_0x3b94f7=_0x3b3c1e();while(!![]){try{const _0x3191a0=parseInt(_0xf40574(0x1b8))/0x1+parseInt(_0xf40574(0x1be))/0x2*(parseInt(_0xf40574(0x1ba))/0x3)+parseInt(_0xf40574(0x19f))/0x4*(-parseInt(_0xf40574(0x1a8))/0x5)+-parseInt(_0xf40574(0x1b0))/0x6*(parseInt(_0xf40574(0x1b5))/0x7)+parseInt(_0xf40574(0x1b1))/0x8*(parseInt(_0xf40574(0x1a5))/0x9)+-parseInt(_0xf40574(0x1af))/0xa+parseInt(_0xf40574(0x1a9))/0xb;if(_0x3191a0===_0x118d2f)break;else _0x3b94f7['push'](_0x3b94f7['shift']());}catch(_0x4e0f9c){_0x3b94f7['push'](_0x3b94f7['shift']());}}}(a0_0x4a2d,0x5a8d1));function a0_0x2fdf(_0x2f69f5,_0x45ac50){_0x2f69f5=_0x2f69f5-0x19f;const _0x4a2deb=a0_0x4a2d();let _0x2fdf13=_0x4a2deb[_0x2f69f5];if(a0_0x2fdf['zPbXVE']===undefined){var _0x489bbe=function(_0x312873){const _0x21e496='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x37670b='',_0x184771='';for(let _0x329f40=0x0,_0x53a5aa,_0x1be50e,_0xb26ad6=0x0;_0x1be50e=_0x312873['charAt'](_0xb26ad6++);~_0x1be50e&&(_0x53a5aa=_0x329f40%0x4?_0x53a5aa*0x40+_0x1be50e:_0x1be50e,_0x329f40++%0x4)?_0x37670b+=String['fromCharCode'](0xff&_0x53a5aa>>(-0x2*_0x329f40&0x6)):0x0){_0x1be50e=_0x21e496['indexOf'](_0x1be50e);}for(let _0x17b362=0x0,_0x9187bb=_0x37670b['length'];_0x17b362<_0x9187bb;_0x17b362++){_0x184771+='%'+('00'+_0x37670b['charCodeAt'](_0x17b362)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x184771);};a0_0x2fdf['rvpsgy']=_0x489bbe,a0_0x2fdf['LZkjEJ']={},a0_0x2fdf['zPbXVE']=!![];}const _0x341b89=_0x4a2deb[0x0],_0x4e185f=_0x2f69f5+_0x341b89,_0x3dc495=a0_0x2fdf['LZkjEJ'][_0x4e185f];return!_0x3dc495?(_0x2fdf13=a0_0x2fdf['rvpsgy'](_0x2fdf13),a0_0x2fdf['LZkjEJ'][_0x4e185f]=_0x2fdf13):_0x2fdf13=_0x3dc495,_0x2fdf13;}const fs=require('fs')[a0_0x3241a4(0x1c2)],path=require('path'),{logger}=require(a0_0x3241a4(0x1bb));class PayloadLoader{constructor(){const _0x295cc4=a0_0x3241a4;this[_0x295cc4(0x1bf)]=path['join'](__dirname,_0x295cc4(0x1a2)),this['cache']=new Map();}async['loadPayload'](_0x1dd387,_0x3d4fa7){const _0x2c1166=a0_0x3241a4,_0xd614b3={'FCYHN':'utf8','ZFltq':'payload_loaded','SECpZ':'Payload\x20loaded\x20successfully','wdqZj':_0x2c1166(0x1a7)},_0x4754e5=_0x1dd387+':'+_0x3d4fa7;if(this['cache'][_0x2c1166(0x1a4)](_0x4754e5))return this[_0x2c1166(0x1b6)]['get'](_0x4754e5);const _0xa30ccf=path[_0x2c1166(0x1ae)](this['payloadDir'],_0x1dd387+'_'+_0x3d4fa7+'.json');try{const _0x447091=await fs['readFile'](_0xa30ccf,_0xd614b3['FCYHN']),_0x4e2595=JSON[_0x2c1166(0x1b4)](_0x447091);return this['cache'][_0x2c1166(0x1ad)](_0x4754e5,_0x4e2595),logger[_0x2c1166(0x1aa)]({'event':_0xd614b3[_0x2c1166(0x1bc)],'project':_0x1dd387,'resource':_0x3d4fa7},_0xd614b3['SECpZ']),_0x4e2595;}catch(_0x13bcf5){logger['error']({'event':_0x2c1166(0x1b9),'project':_0x1dd387,'resource':_0x3d4fa7,'error':_0x13bcf5[_0x2c1166(0x1ac)]},_0xd614b3[_0x2c1166(0x1a6)]);throw new Error('Payload\x20not\x20found:\x20'+_0x1dd387+'_'+_0x3d4fa7);}}async[a0_0x3241a4(0x1a1)](_0x544064){const _0x56bf23=a0_0x3241a4,_0x2be8b1={'rxLVO':_0x56bf23(0x1c1)},_0x5a9c96='payload:'+_0x544064;if(this[_0x56bf23(0x1b6)][_0x56bf23(0x1a4)](_0x5a9c96))return this['cache']['get'](_0x5a9c96);const _0x3796af=path['join'](this[_0x56bf23(0x1bf)],_0x544064+'.json');try{const _0x119b8c=await fs['readFile'](_0x3796af,_0x2be8b1[_0x56bf23(0x1b7)]),_0x5165fe=JSON[_0x56bf23(0x1b4)](_0x119b8c);return this[_0x56bf23(0x1b6)]['set'](_0x5a9c96,_0x5165fe),logger[_0x56bf23(0x1aa)]({'event':_0x56bf23(0x1c4),'payloadName':_0x544064},'Payload\x20loaded\x20successfully\x20by\x20name'),_0x5165fe;}catch(_0x579427){logger['error']({'event':_0x56bf23(0x1b9),'payloadName':_0x544064,'error':_0x579427[_0x56bf23(0x1ac)]},'Failed\x20to\x20load\x20payload\x20by\x20name');throw new Error('Payload\x20not\x20found:\x20'+_0x544064);}}[a0_0x3241a4(0x1c3)](_0x441f3b,_0x397993){const _0x411c47=a0_0x3241a4,_0x35053f={'YKTAi':function(_0x54baf1,_0x4d4106){return _0x54baf1===_0x4d4106;}};return _0x441f3b['action']&&_0x35053f['YKTAi'](_0x441f3b[_0x411c47(0x1b2)][_0x397993],!![]);}['getExportConfig'](_0xf18e9e){const _0x1a4dbd=a0_0x3241a4;return{'columns':_0xf18e9e['fieldName']||[],'filename':_0xf18e9e[_0x1a4dbd(0x1a0)]['replace']('.','-')+_0x1a4dbd(0x1bd),'datatablesQuery':_0xf18e9e['datatablesQuery']||null,'columnFormats':_0xf18e9e['columnFormats']||null,'fieldLabels':_0xf18e9e[_0x1a4dbd(0x1c0)]||null};}[a0_0x3241a4(0x1b3)](){const _0x460402=a0_0x3241a4,_0x8c052f={'ZpKrp':_0x460402(0x1a3)};this[_0x460402(0x1b6)]['clear'](),logger[_0x460402(0x1ab)]({'event':'payload_cache_cleared'},_0x8c052f['ZpKrp']);}}module['exports']=new PayloadLoader();
1
+ function a0_0x443e(_0x3a474e,_0x33789d){_0x3a474e=_0x3a474e-0x157;const _0x58f849=a0_0x58f8();let _0x443e1f=_0x58f849[_0x3a474e];if(a0_0x443e['OLeiKK']===undefined){var _0x17f497=function(_0x386189){const _0x10d3be='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x934fba='',_0x4b721c='';for(let _0x15bb23=0x0,_0x3e74c7,_0x144643,_0x296925=0x0;_0x144643=_0x386189['charAt'](_0x296925++);~_0x144643&&(_0x3e74c7=_0x15bb23%0x4?_0x3e74c7*0x40+_0x144643:_0x144643,_0x15bb23++%0x4)?_0x934fba+=String['fromCharCode'](0xff&_0x3e74c7>>(-0x2*_0x15bb23&0x6)):0x0){_0x144643=_0x10d3be['indexOf'](_0x144643);}for(let _0x196622=0x0,_0x11d08f=_0x934fba['length'];_0x196622<_0x11d08f;_0x196622++){_0x4b721c+='%'+('00'+_0x934fba['charCodeAt'](_0x196622)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4b721c);};a0_0x443e['NZIUfT']=_0x17f497,a0_0x443e['oqHkwt']={},a0_0x443e['OLeiKK']=!![];}const _0x90610e=_0x58f849[0x0],_0x15d7c7=_0x3a474e+_0x90610e,_0x190bbf=a0_0x443e['oqHkwt'][_0x15d7c7];return!_0x190bbf?(_0x443e1f=a0_0x443e['NZIUfT'](_0x443e1f),a0_0x443e['oqHkwt'][_0x15d7c7]=_0x443e1f):_0x443e1f=_0x190bbf,_0x443e1f;}const a0_0x4ccb42=a0_0x443e;(function(_0x4ce842,_0x2b161a){const _0x585300=a0_0x443e,_0x54b9ff=_0x4ce842();while(!![]){try{const _0x2a768d=-parseInt(_0x585300(0x178))/0x1*(parseInt(_0x585300(0x15e))/0x2)+parseInt(_0x585300(0x15f))/0x3+parseInt(_0x585300(0x16a))/0x4+-parseInt(_0x585300(0x16f))/0x5+parseInt(_0x585300(0x175))/0x6*(parseInt(_0x585300(0x165))/0x7)+-parseInt(_0x585300(0x157))/0x8+-parseInt(_0x585300(0x168))/0x9;if(_0x2a768d===_0x2b161a)break;else _0x54b9ff['push'](_0x54b9ff['shift']());}catch(_0x5ef1cb){_0x54b9ff['push'](_0x54b9ff['shift']());}}}(a0_0x58f8,0x8908e));function a0_0x58f8(){const _0xc18e90=['ugf5Bg9HzcbSB2fKzwqGC3vJy2vZC2z1BgX5','zMLLBgrmywjLBhm','Cgf0Aa','nMrXwLj2uG','mJCZnJG1mKHrAKjLsq','zxHWB3j0CW','ChjVBwLZzxm','lI9SB2DNzxi','Aw5MBW','Cgf5Bg9HzerPCG','mteYnZi3m3f3DMrSDW','Axnby3rPB25fBMfIBgvK','z2v0','ndeYnJu0nvnXq1n5BW','y2fJAgu','mJa3mZK5mMvvCeD0ra','rgfrwuS','ywn0Aw9U','zMLLBgroyw1L','zgf0yxrHyMXLC1f1zxj5','mJu1ode4me1vB21mDG','y2XLyxi','lMPZB24','AgfZ','Bg9HzfbHEwXVywq','AM9PBG','mtjeBgTWALG','ugf5Bg9HzcbUB3qGzM91BMq6ia','z2v0rxHWB3j0q29UzMLN','ndC5nJDOs1LhDgC','BwvZC2fNzq','CgfYC2u','EgfHruO','zxjYB3i','Cgf5Bg9Hzf9SB2fKzwq','C2v0','nJiWmtKYyunyB2r2','DxrMoa','DgfIBgvoyw1L','y29SDw1UrM9YBwf0CW'];a0_0x58f8=function(){return _0xc18e90;};return a0_0x58f8();}const fs=require('fs')[a0_0x4ccb42(0x161)],path=require(a0_0x4ccb42(0x15d)),{logger}=require(a0_0x4ccb42(0x162));class PayloadLoader{constructor(){const _0x277304=a0_0x4ccb42,_0x5f91b3={'oghFr':'../../payload'};this[_0x277304(0x164)]=path[_0x277304(0x174)](__dirname,_0x5f91b3['oghFr']),this[_0x277304(0x169)]=new Map();}async[a0_0x4ccb42(0x173)](_0x47e563,_0x55ea4e){const _0x591adc=a0_0x4ccb42,_0x3d683a={'ubcVJ':_0x591adc(0x158),'xaaEJ':'payload_loaded','HUDsC':_0x591adc(0x15b)},_0x453599=_0x47e563+':'+_0x55ea4e;if(this['cache']['has'](_0x453599))return this[_0x591adc(0x169)][_0x591adc(0x167)](_0x453599);const _0x348d07=path['join'](this[_0x591adc(0x164)],_0x47e563+'_'+_0x55ea4e+'.json');try{const _0x4661a4=await fs['readFile'](_0x348d07,_0x3d683a['ubcVJ']),_0x3e892a=JSON[_0x591adc(0x17a)](_0x4661a4);return this[_0x591adc(0x169)]['set'](_0x453599,_0x3e892a),logger['debug']({'event':_0x3d683a[_0x591adc(0x17b)],'project':_0x47e563,'resource':_0x55ea4e},_0x3d683a['HUDsC']),_0x3e892a;}catch(_0x231462){logger[_0x591adc(0x17c)]({'event':'payload_load_error','project':_0x47e563,'resource':_0x55ea4e,'error':_0x231462[_0x591adc(0x179)]},'Failed\x20to\x20load\x20payload');throw new Error(_0x591adc(0x176)+_0x47e563+'_'+_0x55ea4e);}}async['loadPayloadByName'](_0x3a36c5){const _0x293ead=a0_0x4ccb42,_0x18c0e5={'DaQYK':'utf8','cxIat':'Failed\x20to\x20load\x20payload\x20by\x20name'},_0x34a393='payload:'+_0x3a36c5;if(this['cache'][_0x293ead(0x172)](_0x34a393))return this['cache']['get'](_0x34a393);const _0x5a1054=path[_0x293ead(0x174)](this[_0x293ead(0x164)],_0x3a36c5+_0x293ead(0x171));try{const _0x3c0763=await fs['readFile'](_0x5a1054,_0x18c0e5[_0x293ead(0x16b)]),_0x4dfc36=JSON[_0x293ead(0x17a)](_0x3c0763);return this[_0x293ead(0x169)][_0x293ead(0x17e)](_0x34a393,_0x4dfc36),logger['debug']({'event':_0x293ead(0x17d),'payloadName':_0x3a36c5},'Payload\x20loaded\x20successfully\x20by\x20name'),_0x4dfc36;}catch(_0x3b859b){logger['error']({'event':'payload_load_error','payloadName':_0x3a36c5,'error':_0x3b859b['message']},_0x18c0e5['cxIat']);throw new Error(_0x293ead(0x176)+_0x3a36c5);}}[a0_0x4ccb42(0x166)](_0x4bc72a,_0x3d20bb){const _0x1b8df4=a0_0x4ccb42;return _0x4bc72a[_0x1b8df4(0x16c)]&&_0x4bc72a['action'][_0x3d20bb]===!![];}[a0_0x4ccb42(0x177)](_0x51f8e2){const _0x3ddd48=a0_0x4ccb42;return{'columns':_0x51f8e2[_0x3ddd48(0x16d)]||[],'filename':_0x51f8e2[_0x3ddd48(0x159)]['replace']('.','-')+'-export','datatablesQuery':_0x51f8e2[_0x3ddd48(0x16e)]||null,'columnFormats':_0x51f8e2[_0x3ddd48(0x15a)]||null,'fieldLabels':_0x51f8e2[_0x3ddd48(0x15c)]||null};}['clearCache'](){const _0x59cbd3=a0_0x4ccb42;this['cache'][_0x59cbd3(0x170)](),logger[_0x59cbd3(0x163)]({'event':'payload_cache_cleared'},'Payload\x20cache\x20cleared');}}module[a0_0x4ccb42(0x160)]=new PayloadLoader();