@restforgejs/platform 5.1.7 → 5.1.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/bin/restforge-hwinfo-linux +0 -0
  2. package/bin/restforge-hwinfo.exe +0 -0
  3. package/build-info.json +2 -2
  4. package/cli/consumer-deploy.js +1 -1
  5. package/cli/consumer.js +1 -1
  6. package/generators/cli/payload/generate.js +10 -2
  7. package/generators/cli/schema/apply.js +6 -1
  8. package/generators/cli/schema/diff.js +6 -1
  9. package/generators/cli/schema/introspect.js +32 -11
  10. package/generators/lib/data/db-executor.js +8 -8
  11. package/generators/lib/data/envelope.js +3 -3
  12. package/generators/lib/dbschema-kit/apply-engine.js +20 -0
  13. package/generators/lib/dbschema-kit/dialect/mysql.js +2 -0
  14. package/generators/lib/dbschema-kit/dialect/oracle.js +2 -0
  15. package/generators/lib/dbschema-kit/dialect/postgres.js +4 -0
  16. package/generators/lib/dbschema-kit/dialect/sqlite.js +5 -0
  17. package/generators/lib/dbschema-kit/diff-engine.js +22 -1
  18. package/generators/lib/dbschema-kit/diff-reporter.js +293 -272
  19. package/generators/lib/dbschema-kit/emitters/create-index.js +23 -1
  20. package/generators/lib/dbschema-kit/emitters/create-table.js +48 -0
  21. package/generators/lib/dbschema-kit/introspect-mapper.js +154 -2
  22. package/generators/lib/dbschema-kit/ir-builder.js +84 -1
  23. package/generators/lib/dbschema-kit/schema-printer.js +20 -0
  24. package/generators/lib/dbschema-kit/soft-delete-constants.js +111 -0
  25. package/generators/lib/dbschema-kit/validator/schema-validator.js +231 -0
  26. package/generators/lib/generators/processor-validation-generator.js +16 -16
  27. package/generators/lib/payload/payload-runner.js +711 -1
  28. package/generators/lib/payload/schema-diff.js +7 -0
  29. package/generators/lib/templates/dashboard-catalog.js +1 -1
  30. package/generators/lib/templates/db-connection-env.js +1 -1
  31. package/generators/lib/templates/dbschema-catalog.js +1 -1
  32. package/generators/lib/templates/field-validation-catalog.js +1 -1
  33. package/generators/lib/templates/mysql-template.js +1 -1
  34. package/generators/lib/templates/oracle-template.js +1 -1
  35. package/generators/lib/templates/postgres-template.js +1 -1
  36. package/generators/lib/templates/query-declarative-catalog.js +1 -1
  37. package/generators/lib/templates/sqlite-template.js +1 -1
  38. package/generators/lib/utils/database-introspector.js +48 -0
  39. package/generators/lib/utils/env-manager.js +4 -4
  40. package/generators/lib/utils/file-utils.js +6 -6
  41. package/generators/lib/utils/payload-processor.js +18 -2
  42. package/generators/lib/validators/argument-validator.js +2 -2
  43. package/generators/lib/validators/dashboard-validator.js +35 -1
  44. package/generators/lib/validators/payload-validator.js +460 -33
  45. package/integrity-manifest.json +20 -20
  46. package/package.json +2 -1
  47. package/scripts/verify-integrity.js +1 -1
  48. package/server.js +1 -1
  49. package/src/components/handlers/adjust_handler.js +1 -1
  50. package/src/components/handlers/audit_handler.js +1 -1
  51. package/src/components/handlers/delete_handler.js +1 -1
  52. package/src/components/handlers/export_handler.js +1 -1
  53. package/src/components/handlers/import_handler.js +1 -1
  54. package/src/components/handlers/insert_handler.js +1 -1
  55. package/src/components/handlers/update_handler.js +1 -1
  56. package/src/components/handlers/upload_handler.js +1 -1
  57. package/src/components/handlers/workflow_handler.js +1 -1
  58. package/src/components/integrations/webhook.js +1 -1
  59. package/src/consumers/baseConsumer.js +1 -1
  60. package/src/consumers/declarativeMapper.js +1 -1
  61. package/src/consumers/handlers/apiHandler.js +1 -1
  62. package/src/consumers/handlers/consoleHandler.js +1 -1
  63. package/src/consumers/handlers/databaseHandler.js +1 -1
  64. package/src/consumers/handlers/index.js +1 -1
  65. package/src/consumers/handlers/kafkaHandler.js +1 -1
  66. package/src/consumers/index.js +1 -1
  67. package/src/consumers/messageTransformer.js +1 -1
  68. package/src/consumers/validator.js +1 -1
  69. package/src/core/db/dialect/base-dialect.js +1 -1
  70. package/src/core/db/dialect/index.js +1 -1
  71. package/src/core/db/dialect/mysql-dialect.js +1 -1
  72. package/src/core/db/dialect/oracle-dialect.js +1 -1
  73. package/src/core/db/dialect/postgres-dialect.js +1 -1
  74. package/src/core/db/dialect/sqlite-dialect.js +1 -1
  75. package/src/core/db/flatten-helper.js +1 -1
  76. package/src/core/db/query-builder-error.js +1 -1
  77. package/src/core/db/query-builder.js +1 -1
  78. package/src/core/db/relation-helper.js +1 -1
  79. package/src/core/handlers/delete_handler.js +1 -1
  80. package/src/core/handlers/insert_handler.js +1 -1
  81. package/src/core/handlers/update_handler.js +1 -1
  82. package/src/core/models/base-model.js +1 -1
  83. package/src/core/utils/cache-manager.js +1 -1
  84. package/src/core/utils/component-engine.js +1 -1
  85. package/src/core/utils/context-builder.js +1 -1
  86. package/src/core/utils/datetime-formatter.js +1 -1
  87. package/src/core/utils/datetime-parser.js +1 -1
  88. package/src/core/utils/db.js +1 -1
  89. package/src/core/utils/logger.js +1 -1
  90. package/src/core/utils/payload-loader.js +1 -1
  91. package/src/core/utils/security-checks.js +1 -1
  92. package/src/middleware/body-options.js +1 -1
  93. package/src/middleware/cors.js +1 -1
  94. package/src/middleware/idempotency.js +1 -1
  95. package/src/middleware/rate-limiter.js +1 -1
  96. package/src/middleware/request-logger.js +1 -1
  97. package/src/middleware/security-headers.js +1 -1
  98. package/src/models/base-model-mysql.js +1 -1
  99. package/src/models/base-model-oracle.js +1 -1
  100. package/src/models/base-model-sqlite.js +1 -1
  101. package/src/models/base-model.js +1 -1
  102. package/src/pro/caching/redis-client.js +1 -1
  103. package/src/pro/caching/redis-helper.js +1 -1
  104. package/src/pro/consumers/baseConsumer.js +1 -1
  105. package/src/pro/consumers/declarativeMapper.js +1 -1
  106. package/src/pro/consumers/handlers/apiHandler.js +1 -1
  107. package/src/pro/consumers/handlers/consoleHandler.js +1 -1
  108. package/src/pro/consumers/handlers/databaseHandler.js +1 -1
  109. package/src/pro/consumers/handlers/index.js +1 -1
  110. package/src/pro/consumers/handlers/kafkaHandler.js +1 -1
  111. package/src/pro/consumers/index.js +1 -1
  112. package/src/pro/consumers/messageTransformer.js +1 -1
  113. package/src/pro/consumers/validator.js +1 -1
  114. package/src/pro/database/base-model-mysql.js +1 -1
  115. package/src/pro/database/base-model-oracle.js +1 -1
  116. package/src/pro/database/base-model-sqlite.js +1 -1
  117. package/src/pro/database/db-mysql.js +1 -1
  118. package/src/pro/database/db-oracle.js +1 -1
  119. package/src/pro/database/db-sqlite.js +1 -1
  120. package/src/pro/excel/excel-generator.js +1 -1
  121. package/src/pro/excel/excel-parser.js +1 -1
  122. package/src/pro/excel/export-service.js +1 -1
  123. package/src/pro/excel/export_handler.js +1 -1
  124. package/src/pro/excel/import-service.js +1 -1
  125. package/src/pro/excel/import-validator.js +1 -1
  126. package/src/pro/excel/import_handler.js +1 -1
  127. package/src/pro/excel/upsert-builder.js +1 -1
  128. package/src/pro/idgen/idgen-routes.js +1 -1
  129. package/src/pro/integrations/lookup-resolver.js +1 -1
  130. package/src/pro/integrations/upload-handler-v2.js +1 -1
  131. package/src/pro/integrations/upload-handler.js +1 -1
  132. package/src/pro/integrations/webhook.js +1 -1
  133. package/src/pro/locking/lock-routes.js +1 -1
  134. package/src/pro/locking/resource-lock-manager.js +1 -1
  135. package/src/pro/messaging/kafkaConsumerService.js +1 -1
  136. package/src/pro/messaging/kafkaService.js +1 -1
  137. package/src/pro/messaging/messagehubService.js +1 -1
  138. package/src/pro/messaging/rabbitmqService.js +1 -1
  139. package/src/pro/scheduler/job-manager.js +1 -1
  140. package/src/pro/scheduler/job-routes.js +1 -1
  141. package/src/pro/scheduler/job-validator.js +1 -1
  142. package/src/pro/storage/base-storage-provider.js +1 -1
  143. package/src/pro/storage/file-metadata-helper.js +1 -1
  144. package/src/pro/storage/index.js +1 -1
  145. package/src/pro/storage/local-storage-provider.js +1 -1
  146. package/src/pro/storage/s3-storage-provider.js +1 -1
  147. package/src/pro/storage/upload-cleanup-job.js +1 -1
  148. package/src/pro/storage/upload-cleanup-scheduler.js +1 -1
  149. package/src/pro/storage/upload-pending-tracker.js +1 -1
  150. package/src/pro/websocket/broadcast-helper.js +1 -1
  151. package/src/pro/websocket/index.js +1 -1
  152. package/src/pro/websocket/livesync-server.js +1 -1
  153. package/src/pro/websocket/ws-broadcaster.js +1 -1
  154. package/src/services/export-service.js +1 -1
  155. package/src/services/import-service.js +1 -1
  156. package/src/services/kafkaConsumerService.js +1 -1
  157. package/src/services/kafkaService.js +1 -1
  158. package/src/services/messagehubService.js +1 -1
  159. package/src/services/rabbitmqService.js +1 -1
  160. package/src/utils/cache-invalidation-registry.js +1 -1
  161. package/src/utils/cache-manager.js +1 -1
  162. package/src/utils/component-engine.js +1 -1
  163. package/src/utils/config-extractor.js +1 -1
  164. package/src/utils/consumerLogger.js +1 -1
  165. package/src/utils/context-builder.js +1 -1
  166. package/src/utils/dashboard-helpers.js +1 -1
  167. package/src/utils/dateHelper.js +1 -1
  168. package/src/utils/datetime-formatter.js +1 -1
  169. package/src/utils/datetime-parser.js +1 -1
  170. package/src/utils/db-bootstrap.js +1 -1
  171. package/src/utils/db-mysql.js +1 -1
  172. package/src/utils/db-oracle.js +1 -1
  173. package/src/utils/db-sqlite.js +1 -1
  174. package/src/utils/db.js +1 -1
  175. package/src/utils/demo-generator.js +1 -1
  176. package/src/utils/excel-generator.js +1 -1
  177. package/src/utils/excel-parser.js +1 -1
  178. package/src/utils/file-watcher.js +1 -1
  179. package/src/utils/id-generator.js +1 -1
  180. package/src/utils/idempotency-manager.js +1 -1
  181. package/src/utils/import-validator.js +1 -1
  182. package/src/utils/license-client.js +1 -1
  183. package/src/utils/lock-manager.js +1 -1
  184. package/src/utils/logger.js +1 -1
  185. package/src/utils/lookup-resolver.js +1 -1
  186. package/src/utils/payload-loader.js +1 -1
  187. package/src/utils/processor-response.js +1 -1
  188. package/src/utils/rabbitmq.js +1 -1
  189. package/src/utils/redis-client.js +1 -1
  190. package/src/utils/redis-helper.js +1 -1
  191. package/src/utils/request-scope.js +1 -1
  192. package/src/utils/security-checks.js +1 -1
  193. package/src/utils/service-resolver.js +1 -1
  194. package/src/utils/shutdown-coordinator.js +1 -1
  195. package/src/utils/soft-delete-dashboard-guard.js +1 -0
  196. package/src/utils/sql-table-extractor.js +1 -0
  197. package/src/utils/trusted-keys.js +1 -1
  198. package/src/utils/upload-handler.js +1 -1
  199. package/src/utils/upsert-builder.js +1 -1
  200. package/src/utils/workflow-hook-executor.js +1 -1
  201. package/generators/lib/utils/sql-table-extractor.js +0 -83
@@ -1 +1 @@
1
- function a0_0x4464(){const _0x4c8799=['C3bSAxq','DgLTzq','oti3mgvNCK5IyG','ExL5Es1nts1KzcbisdPTBtPZCW','oJaW','B3jKzxi','CgfYC2vuAw1LC3rHBxa','AfbKAM8','ntaXmZy2DMDmAerP','uKjiwe0','ntuYmJK1mgfyDKHLDq','CgfYC2veyxrL','ndaXmZqXmhzzwLnQtq','DuDguKi','CgfYC2vuAw1L','zxjYB3i','rxjYB3iGCgfYC2LUzYbKyxrLDgLTztOG','mJK3odfAuMnRz3u','nhPsBurbAq','Cgf0DgvYBG','D2L2uM0','mJDzuuj0v20','BwvZC2fNzq','Bw9UDgG','sw52ywXPzcb0Aw1LC3rHBxaGzM9YBwf0oIa','EwvHCG','CgfYC2u','zM9YrwfJAa','seG6Bw06C3m','nJrzvvDtrxC','BgvUz3rO','C3DJv1C','q3f1tuq','ALvfsha','zxHWB3j0CW','mZy3ntGYnhbQDezZBa','mZe3nde4nuDLqMnJAq'];a0_0x4464=function(){return _0x4c8799;};return a0_0x4464();}const a0_0xfab8f2=a0_0x4945;(function(_0x13fa0a,_0xf3f04c){const _0x5ea1c4=a0_0x4945,_0x226bdc=_0x13fa0a();while(!![]){try{const _0x456953=parseInt(_0x5ea1c4(0xe0))/0x1*(parseInt(_0x5ea1c4(0xec))/0x2)+-parseInt(_0x5ea1c4(0xfc))/0x3+-parseInt(_0x5ea1c4(0xe1))/0x4*(-parseInt(_0x5ea1c4(0xfe))/0x5)+-parseInt(_0x5ea1c4(0xf6))/0x6+-parseInt(_0x5ea1c4(0xf3))/0x7+parseInt(_0x5ea1c4(0xf2))/0x8+parseInt(_0x5ea1c4(0xe4))/0x9*(-parseInt(_0x5ea1c4(0x100))/0xa);if(_0x456953===_0xf3f04c)break;else _0x226bdc['push'](_0x226bdc['shift']());}catch(_0x3c2660){_0x226bdc['push'](_0x226bdc['shift']());}}}(a0_0x4464,0xa8ae3));class DateTimeParser{static[a0_0xfab8f2(0xe9)](_0x58cc82,_0x335203,_0x4bfe54){const _0x4bb202=a0_0xfab8f2,_0x449287={'zSUaJ':'date','nYfYt':function(_0xdbb42f,_0x4870d3){return _0xdbb42f===_0x4870d3;},'CquMD':'timestamp','hqNuj':_0x4bb202(0xf5)};if(!_0x58cc82||_0x58cc82==='')return null;try{if(_0x4bfe54===_0x449287['zSUaJ'])return this[_0x4bb202(0xff)](_0x58cc82,_0x335203);else{if(_0x449287['nYfYt'](_0x4bfe54,_0x449287[_0x4bb202(0xef)]))return this[_0x4bb202(0xfa)](_0x58cc82,_0x335203);else{if(_0x4bfe54===_0x449287['hqNuj'])return this[_0x4bb202(0xdd)](_0x58cc82,_0x335203);}}return _0x58cc82;}catch(_0x1d8cc4){return console[_0x4bb202(0xde)](_0x4bb202(0xdf)+_0x1d8cc4[_0x4bb202(0xe5)]),null;}}static['parseDate'](_0x4ff7c1,_0x20d99c){const _0x1d13d5=a0_0xfab8f2,_0x3181c0={'EymXO':function(_0x3a1d70,_0x148055){return _0x3a1d70===_0x148055;},'eoZpQ':'yyyy-MM-dd','uGFRB':'day','wivRm':'month','hPdjo':_0x1d13d5(0xe8)};if(!_0x20d99c||_0x3181c0['EymXO'](_0x20d99c,_0x3181c0['eoZpQ']))return _0x4ff7c1;const _0x1b9c26={'dd/MM/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':[_0x3181c0[_0x1d13d5(0x101)],_0x3181c0[_0x1d13d5(0xe3)],_0x3181c0[_0x1d13d5(0xfb)]]},'dd-MM-yyyy':{'pattern':/^(\d{2})-(\d{2})-(\d{4})$/,'order':[_0x3181c0[_0x1d13d5(0x101)],_0x3181c0['wivRm'],_0x1d13d5(0xe8)]},'MM/dd/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':['month',_0x3181c0[_0x1d13d5(0x101)],'year']},'yyyy/MM/dd':{'pattern':/^(\d{4})\/(\d{2})\/(\d{2})$/,'order':[_0x3181c0[_0x1d13d5(0xfb)],_0x3181c0['wivRm'],_0x3181c0[_0x1d13d5(0x101)]]}},_0x3809d6=_0x1b9c26[_0x20d99c];if(!_0x3809d6)return console['warn']('Unknown\x20date\x20format:\x20'+_0x20d99c+',\x20returning\x20null'),null;const _0x319ea0=_0x4ff7c1['match'](_0x3809d6[_0x1d13d5(0xe2)]);if(!_0x319ea0)return console['warn']('Date\x20value\x20\x22'+_0x4ff7c1+'\x22\x20doesn\x27t\x20match\x20format\x20\x22'+_0x20d99c+'\x22'),null;const _0x293d6b={'day':null,'month':null,'year':null};return _0x3809d6[_0x1d13d5(0xf9)][_0x1d13d5(0xea)]((_0x197e01,_0x16168c)=>{_0x293d6b[_0x197e01]=_0x319ea0[_0x16168c+0x1];}),_0x293d6b[_0x1d13d5(0xe8)]+'-'+_0x293d6b[_0x1d13d5(0xe6)]+'-'+_0x293d6b['day'];}static['parseTimestamp'](_0x554de6,_0x42e271){const _0x682c4a=a0_0xfab8f2,_0x237768={'svTNl':_0x682c4a(0xf7),'jUEHp':function(_0x4aff10,_0x340d26){return _0x4aff10!==_0x340d26;}};if(!_0x42e271||_0x42e271===_0x237768['svTNl'])return _0x554de6;const _0x2c3d67=_0x554de6['split']('\x20');if(_0x237768[_0x682c4a(0xf0)](_0x2c3d67[_0x682c4a(0xed)],0x2))return console['warn'](_0x682c4a(0xe7)+_0x554de6),null;const [_0x5af4f1,_0x40d546]=_0x2c3d67,_0x2988af=_0x42e271[_0x682c4a(0xf4)]('\x20')[0x0],_0x2fca10=this[_0x682c4a(0xff)](_0x5af4f1,_0x2988af);if(!_0x2fca10)return null;const _0x1bb54a=_0x40d546[_0x682c4a(0xf4)](':')[_0x682c4a(0xed)]===0x2?_0x40d546+':00':_0x40d546;return _0x2fca10+'\x20'+_0x1bb54a;}static['parseTime'](_0x49ac15,_0x5d7f53){const _0x59cb31=a0_0xfab8f2,_0x2a5058={'RBHXM':function(_0x5001f1,_0x49ce76){return _0x5001f1===_0x49ce76;},'swcWW':_0x59cb31(0xeb),'OIOkM':'HH:mm'};if(!_0x5d7f53||_0x2a5058['RBHXM'](_0x5d7f53,_0x2a5058[_0x59cb31(0xee)]))return _0x49ac15;if(_0x2a5058[_0x59cb31(0xfd)](_0x5d7f53,_0x2a5058['OIOkM'])){if(_0x49ac15['match'](/^\d{2}:\d{2}$/))return _0x49ac15+_0x59cb31(0xf8);}return _0x49ac15;}}function a0_0x4945(_0x3f9115,_0x13d8aa){_0x3f9115=_0x3f9115-0xdd;const _0x44640e=a0_0x4464();let _0x49452d=_0x44640e[_0x3f9115];if(a0_0x4945['YlTryf']===undefined){var _0x2b3626=function(_0x47f308){const _0x5dab51='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5864b7='',_0x5eef3e='';for(let _0xe8d933=0x0,_0x981640,_0x220ca4,_0x22e3c0=0x0;_0x220ca4=_0x47f308['charAt'](_0x22e3c0++);~_0x220ca4&&(_0x981640=_0xe8d933%0x4?_0x981640*0x40+_0x220ca4:_0x220ca4,_0xe8d933++%0x4)?_0x5864b7+=String['fromCharCode'](0xff&_0x981640>>(-0x2*_0xe8d933&0x6)):0x0){_0x220ca4=_0x5dab51['indexOf'](_0x220ca4);}for(let _0x560ce3=0x0,_0x162dc7=_0x5864b7['length'];_0x560ce3<_0x162dc7;_0x560ce3++){_0x5eef3e+='%'+('00'+_0x5864b7['charCodeAt'](_0x560ce3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5eef3e);};a0_0x4945['umDREl']=_0x2b3626,a0_0x4945['vRcGxR']={},a0_0x4945['YlTryf']=!![];}const _0xb09332=_0x44640e[0x0],_0x3b67db=_0x3f9115+_0xb09332,_0x255cb8=a0_0x4945['vRcGxR'][_0x3b67db];return!_0x255cb8?(_0x49452d=a0_0x4945['umDREl'](_0x49452d),a0_0x4945['vRcGxR'][_0x3b67db]=_0x49452d):_0x49452d=_0x255cb8,_0x49452d;}module[a0_0xfab8f2(0xf1)]=DateTimeParser;
1
+ const a0_0x57c1ed=a0_0x1840;function a0_0x1840(_0x46c0b3,_0x58596c){_0x46c0b3=_0x46c0b3-0x110;const _0x52651a=a0_0x5265();let _0x18408a=_0x52651a[_0x46c0b3];if(a0_0x1840['CSBSgy']===undefined){var _0x321bb1=function(_0x2f9623){const _0x577180='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4ef4c8='',_0xdac21='';for(let _0x46805e=0x0,_0x17080e,_0x197bbb,_0x3589ed=0x0;_0x197bbb=_0x2f9623['charAt'](_0x3589ed++);~_0x197bbb&&(_0x17080e=_0x46805e%0x4?_0x17080e*0x40+_0x197bbb:_0x197bbb,_0x46805e++%0x4)?_0x4ef4c8+=String['fromCharCode'](0xff&_0x17080e>>(-0x2*_0x46805e&0x6)):0x0){_0x197bbb=_0x577180['indexOf'](_0x197bbb);}for(let _0x1f924d=0x0,_0x2c591e=_0x4ef4c8['length'];_0x1f924d<_0x2c591e;_0x1f924d++){_0xdac21+='%'+('00'+_0x4ef4c8['charCodeAt'](_0x1f924d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xdac21);};a0_0x1840['kdDZVU']=_0x321bb1,a0_0x1840['FkDEvX']={},a0_0x1840['CSBSgy']=!![];}const _0xd4495d=_0x52651a[0x0],_0x3f5be7=_0x46c0b3+_0xd4495d,_0x4ebb59=a0_0x1840['FkDEvX'][_0x3f5be7];return!_0x4ebb59?(_0x18408a=a0_0x1840['kdDZVU'](_0x18408a),a0_0x1840['FkDEvX'][_0x3f5be7]=_0x18408a):_0x18408a=_0x4ebb59,_0x18408a;}(function(_0x48bc12,_0x4c36f3){const _0x508869=a0_0x1840,_0x4e8ffc=_0x48bc12();while(!![]){try{const _0xfc07d5=parseInt(_0x508869(0x112))/0x1+parseInt(_0x508869(0x130))/0x2+parseInt(_0x508869(0x11a))/0x3*(-parseInt(_0x508869(0x131))/0x4)+-parseInt(_0x508869(0x120))/0x5+parseInt(_0x508869(0x116))/0x6*(parseInt(_0x508869(0x129))/0x7)+-parseInt(_0x508869(0x11f))/0x8*(parseInt(_0x508869(0x113))/0x9)+parseInt(_0x508869(0x117))/0xa*(parseInt(_0x508869(0x119))/0xb);if(_0xfc07d5===_0x4c36f3)break;else _0x4e8ffc['push'](_0x4e8ffc['shift']());}catch(_0x598a28){_0x4e8ffc['push'](_0x4e8ffc['shift']());}}}(a0_0x5265,0x24501));class DateTimeParser{static['parse'](_0x22fe3a,_0x50169f,_0x23980b){const _0x33ec9c=a0_0x1840,_0x72fc91={'BxqSr':function(_0x5adfcd,_0x377a97){return _0x5adfcd===_0x377a97;},'NzJSl':_0x33ec9c(0x11d),'gMdCs':'timestamp','YzAQT':function(_0x39848d,_0x198d61){return _0x39848d===_0x198d61;}};if(!_0x22fe3a||_0x22fe3a==='')return null;try{if(_0x72fc91['BxqSr'](_0x23980b,_0x72fc91[_0x33ec9c(0x12e)]))return this[_0x33ec9c(0x11b)](_0x22fe3a,_0x50169f);else{if(_0x72fc91[_0x33ec9c(0x122)](_0x23980b,_0x72fc91[_0x33ec9c(0x127)]))return this[_0x33ec9c(0x115)](_0x22fe3a,_0x50169f);else{if(_0x72fc91['YzAQT'](_0x23980b,_0x33ec9c(0x110)))return this[_0x33ec9c(0x111)](_0x22fe3a,_0x50169f);}}return _0x22fe3a;}catch(_0x11119c){return console[_0x33ec9c(0x123)](_0x33ec9c(0x125)+_0x11119c['message']),null;}}static['parseDate'](_0x37b17a,_0x35323c){const _0x251284=a0_0x1840,_0x1bc610={'LuLPM':_0x251284(0x124),'AOxaY':_0x251284(0x132),'mCHOH':'month'};if(!_0x35323c||_0x35323c===_0x251284(0x12c))return _0x37b17a;const _0x2cad0b={'dd/MM/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':[_0x1bc610[_0x251284(0x121)],_0x251284(0x12b),_0x251284(0x132)]},'dd-MM-yyyy':{'pattern':/^(\d{2})-(\d{2})-(\d{4})$/,'order':[_0x251284(0x124),_0x251284(0x12b),'year']},'MM/dd/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':['month',_0x251284(0x124),_0x251284(0x132)]},'yyyy/MM/dd':{'pattern':/^(\d{4})\/(\d{2})\/(\d{2})$/,'order':[_0x1bc610['AOxaY'],_0x1bc610['mCHOH'],_0x1bc610[_0x251284(0x121)]]}},_0x5a94bd=_0x2cad0b[_0x35323c];if(!_0x5a94bd)return console['warn'](_0x251284(0x114)+_0x35323c+',\x20returning\x20null'),null;const _0x1beaf2=_0x37b17a['match'](_0x5a94bd['pattern']);if(!_0x1beaf2)return console[_0x251284(0x133)]('Date\x20value\x20\x22'+_0x37b17a+'\x22\x20doesn\x27t\x20match\x20format\x20\x22'+_0x35323c+'\x22'),null;const _0x59a770={'day':null,'month':null,'year':null};return _0x5a94bd['order'][_0x251284(0x118)]((_0x1b9f9c,_0x52c4b9)=>{_0x59a770[_0x1b9f9c]=_0x1beaf2[_0x52c4b9+0x1];}),_0x59a770['year']+'-'+_0x59a770[_0x251284(0x12b)]+'-'+_0x59a770['day'];}static['parseTimestamp'](_0x33a893,_0x4536a0){const _0x3e59d9=a0_0x1840,_0x2bffc8={'JNUbT':function(_0x3a76bc,_0x393bee){return _0x3a76bc!==_0x393bee;},'lalKw':function(_0x96a4b8,_0x1370b1){return _0x96a4b8===_0x1370b1;}};if(!_0x4536a0||_0x4536a0===_0x3e59d9(0x11e))return _0x33a893;const _0x49c7c5=_0x33a893['split']('\x20');if(_0x2bffc8['JNUbT'](_0x49c7c5['length'],0x2))return console['warn'](_0x3e59d9(0x12d)+_0x33a893),null;const [_0x2f469d,_0x3d52f5]=_0x49c7c5,_0x457657=_0x4536a0['split']('\x20')[0x0],_0x1ad249=this[_0x3e59d9(0x11b)](_0x2f469d,_0x457657);if(!_0x1ad249)return null;const _0x3c72a0=_0x2bffc8[_0x3e59d9(0x126)](_0x3d52f5[_0x3e59d9(0x134)](':')[_0x3e59d9(0x11c)],0x2)?_0x3d52f5+':00':_0x3d52f5;return _0x1ad249+'\x20'+_0x3c72a0;}static['parseTime'](_0x1a1148,_0x98c601){const _0x2fc078=a0_0x1840,_0x266ac1={'ciUzN':_0x2fc078(0x12f)};if(!_0x98c601||_0x98c601===_0x266ac1['ciUzN'])return _0x1a1148;if(_0x98c601===_0x2fc078(0x128)){if(_0x1a1148['match'](/^\d{2}:\d{2}$/))return _0x1a1148+':00';}return _0x1a1148;}}module[a0_0x57c1ed(0x12a)]=DateTimeParser;function a0_0x5265(){const _0x229437=['ExL5Es1nts1KzcbisdPTBtPZCW','ogrQEffhAW','mteZmdm5mfbSsLrwCa','thvmue0','qNHXu3i','zxjYB3i','zgf5','rxjYB3iGCgfYC2LUzYbKyxrLDgLTztOG','BgfSs3C','z01Kq3m','seG6Bw0','mta1zg5gzhLm','zxHWB3j0CW','Bw9UDgG','ExL5Es1nts1Kza','sw52ywXPzcb0Aw1LC3rHBxaGzM9YBwf0oIa','tNPku2W','seG6Bw06C3m','mZuXnZCWqNHnwNPJ','mJHUwhDpwNG','EwvHCG','D2fYBG','C3bSAxq','DgLTzq','CgfYC2vuAw1L','nZGXntbrq29hCfG','mZy0ndm3C05Sq2fW','vw5RBM93BIbKyxrLigzVCM1HDdOG','CgfYC2vuAw1LC3rHBxa','mtaZmZG2zvvVCwL0','mZa1ndCWt1vJywrH','zM9YrwfJAa','ndrozvHHzKi','otqWmJburezbAMK','CgfYC2veyxrL','BgvUz3rO','zgf0zq'];a0_0x5265=function(){return _0x229437;};return a0_0x5265();}
@@ -1 +1 @@
1
- function a0_0x4889(_0x205b60,_0x55c4b3){_0x205b60=_0x205b60-0xb8;const _0xf9ef30=a0_0xf9ef();let _0x4889c2=_0xf9ef30[_0x205b60];if(a0_0x4889['AhRmih']===undefined){var _0x37ae05=function(_0x327d99){const _0x16f324='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4e9626='',_0x3d504a='';for(let _0x370b1a=0x0,_0x26b9ec,_0x284be4,_0x2d7b3a=0x0;_0x284be4=_0x327d99['charAt'](_0x2d7b3a++);~_0x284be4&&(_0x26b9ec=_0x370b1a%0x4?_0x26b9ec*0x40+_0x284be4:_0x284be4,_0x370b1a++%0x4)?_0x4e9626+=String['fromCharCode'](0xff&_0x26b9ec>>(-0x2*_0x370b1a&0x6)):0x0){_0x284be4=_0x16f324['indexOf'](_0x284be4);}for(let _0x23e447=0x0,_0x3a56f4=_0x4e9626['length'];_0x23e447<_0x3a56f4;_0x23e447++){_0x3d504a+='%'+('00'+_0x4e9626['charCodeAt'](_0x23e447)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3d504a);};a0_0x4889['pEutis']=_0x37ae05,a0_0x4889['kazJQX']={},a0_0x4889['AhRmih']=!![];}const _0x1762b7=_0xf9ef30[0x0],_0x72fcb1=_0x205b60+_0x1762b7,_0x5e40fa=a0_0x4889['kazJQX'][_0x72fcb1];return!_0x5e40fa?(_0x4889c2=a0_0x4889['pEutis'](_0x4889c2),a0_0x4889['kazJQX'][_0x72fcb1]=_0x4889c2):_0x4889c2=_0x5e40fa,_0x4889c2;}const a0_0x3c7d87=a0_0x4889;(function(_0x6b0505,_0x27d137){const _0x1b1098=a0_0x4889,_0x1d6053=_0x6b0505();while(!![]){try{const _0x3594e9=-parseInt(_0x1b1098(0xeb))/0x1+-parseInt(_0x1b1098(0xe5))/0x2+-parseInt(_0x1b1098(0xd5))/0x3+parseInt(_0x1b1098(0xec))/0x4*(-parseInt(_0x1b1098(0xdc))/0x5)+-parseInt(_0x1b1098(0xbf))/0x6+parseInt(_0x1b1098(0xe2))/0x7*(-parseInt(_0x1b1098(0xc0))/0x8)+parseInt(_0x1b1098(0xc9))/0x9;if(_0x3594e9===_0x27d137)break;else _0x1d6053['push'](_0x1d6053['shift']());}catch(_0x5cad68){_0x1d6053['push'](_0x1d6053['shift']());}}}(a0_0xf9ef,0x31bc2));const {Pool}=require('pg'),{logQuery,logTransaction,startQueryTimer,logDatabaseConfig,logger,logError}=require(a0_0x3c7d87(0xed)),dbConfig={'host':process['env'][a0_0x3c7d87(0xe3)]||'192.168.100.1','port':parseInt(process[a0_0x3c7d87(0xd9)]['DB_PORT']||a0_0x3c7d87(0xe4)),'user':process[a0_0x3c7d87(0xd9)][a0_0x3c7d87(0xb9)]||'postgres','password':process['env']['DB_PASSWORD']||'postgres1234','database':process[a0_0x3c7d87(0xd9)][a0_0x3c7d87(0xbd)]||a0_0x3c7d87(0xf2)};logDatabaseConfig({'host':dbConfig['host'],'port':dbConfig[a0_0x3c7d87(0xd8)],'database':dbConfig[a0_0x3c7d87(0xf1)],'type':a0_0x3c7d87(0xdb),'user':dbConfig['user']});let pool=new Pool(dbConfig),isPoolClosed=![];function getPool(){const _0x2b4d26={'dZZih':'Creating\x20new\x20database\x20pool\x20(previous\x20pool\x20was\x20closed)'};return isPoolClosed&&(logger['info']({'event':'db_pool_recreate'},_0x2b4d26['dZZih']),pool=new Pool(dbConfig),isPoolClosed=![]),pool;}async function executeQuery(_0x225eee,_0x237626=[]){const _0x3598d6=a0_0x3c7d87,_0x198b87={'fQmXF':function(_0x3b71d3){return _0x3b71d3();},'PKBer':'sql_error','LztmN':_0x3598d6(0xdb)},_0x1e2a63=_0x198b87[_0x3598d6(0xc7)](startQueryTimer);try{const _0x22b33f=getPool(),_0x46006a=await _0x22b33f[_0x3598d6(0xde)]();try{const _0x478d1b=await _0x46006a[_0x3598d6(0xdf)](_0x225eee,_0x237626),_0x54ad69=_0x1e2a63();return logQuery(_0x225eee,_0x237626,{'duration':_0x54ad69,'rowsAffected':_0x478d1b[_0x3598d6(0xc1)],'dbType':_0x3598d6(0xdb)}),_0x478d1b['rows'];}finally{_0x46006a[_0x3598d6(0xf4)]();}}catch(_0x16005a){const _0xf4b5ca=_0x198b87['fQmXF'](_0x1e2a63);logError(_0x16005a,{'event':_0x198b87['PKBer'],'query':_0x225eee[_0x3598d6(0xbc)](0x0,0x1f4),'paramCount':_0x237626['length'],'durationMs':_0xf4b5ca,'code':_0x16005a['code'],'dbType':_0x198b87[_0x3598d6(0xbe)]},_0x3598d6(0xee)+_0x16005a[_0x3598d6(0xdd)]);throw _0x16005a;}}function formatResponse(_0x28803d,_0x4766e7=null){const _0xbbf2fe=a0_0x3c7d87,_0x126d20={'NFXIj':_0xbbf2fe(0xba),'BAvLo':'SYNTAX_ERROR','FXWSb':_0xbbf2fe(0xc6),'Qmdxw':'28P01','irRto':function(_0x2300fc,_0x522b67){return _0x2300fc===_0x522b67;},'TdSHB':_0xbbf2fe(0xe6),'FERIp':'08001'};if(_0x4766e7){let _0x4a3989=_0xbbf2fe(0xbb);if(_0x4766e7['message']['includes'](_0x126d20[_0xbbf2fe(0xb8)]))_0x4a3989=_0x126d20['BAvLo'];else{if(_0x4766e7['code']===_0x126d20[_0xbbf2fe(0xc4)])_0x4a3989='TABLE_NOT_FOUND';else{if(_0x4766e7['code']===_0x126d20['Qmdxw'])_0x4a3989='AUTHENTICATION_ERROR';else(_0x126d20[_0xbbf2fe(0xf7)](_0x4766e7[_0xbbf2fe(0xd3)],_0x126d20['TdSHB'])||_0x4766e7['code']===_0x126d20['FERIp'])&&(_0x4a3989=_0xbbf2fe(0xf0));}}return{'success':![],'message':'Database\x20error:\x20'+_0x4766e7['message'],'count':-0x1,'error_code':_0x4a3989};}else{if(!_0x28803d||_0x28803d[_0xbbf2fe(0xe7)]===0x0)return{'success':!![],'message':'No\x20data\x20found.','count':0x0,'data':[]};return{'success':!![],'message':'Query\x20returned\x20'+_0x28803d['length']+'\x20row'+(_0x28803d['length']===0x1?'':'s')+'.','count':_0x28803d[_0xbbf2fe(0xe7)],'data':_0x28803d};}}async function closePool(){const _0x417e96=a0_0x3c7d87,_0x573f63={'swPUq':'Database\x20pool\x20closed\x20successfully','tazgp':function(_0x25d3f9,_0x4ae295,_0xfbcdd7,_0x493394){return _0x25d3f9(_0x4ae295,_0xfbcdd7,_0x493394);},'hKaIx':'db_pool_close_error'};if(!isPoolClosed)try{isPoolClosed=!![],await pool[_0x417e96(0xe9)](),logger['info']({'event':'db_pool_closed'},_0x573f63['swPUq']);}catch(_0x534b4d){_0x573f63[_0x417e96(0xd1)](logError,_0x534b4d,{'event':_0x573f63['hKaIx']},_0x417e96(0xd0)+_0x534b4d['message']);}else logger['debug']({'event':'db_pool_already_closed'},_0x417e96(0xef));}async function checkConnection(){const _0x1c6683=a0_0x3c7d87,_0x464de7={'DTzOq':function(_0x5b38d5){return _0x5b38d5();}};try{const _0x2ab431=_0x464de7['DTzOq'](getPool),_0x1587f7=await _0x2ab431['connect']();try{return await _0x1587f7[_0x1c6683(0xdf)](_0x1c6683(0xf3)),!![];}finally{_0x1587f7[_0x1c6683(0xf4)]();}}catch(_0x3b6370){return logError(_0x3b6370,{'event':'db_connection_check_error'},'Error\x20checking\x20database\x20connection:\x20'+_0x3b6370['message']),![];}}async function executeTransaction(_0x611119){const _0x55a33c=a0_0x3c7d87,_0x13fdd2={'bLPhd':function(_0x69d4af){return _0x69d4af();},'iviiS':function(_0x50ca38){return _0x50ca38();},'pcmyy':function(_0x5558ed,_0x5b71c2,_0x5a9d0e){return _0x5558ed(_0x5b71c2,_0x5a9d0e);},'zzMZt':_0x55a33c(0xea),'RctEg':function(_0x59dd5d){return _0x59dd5d();},'XSNdk':function(_0x1a5b77,_0x49c698,_0x3ca1f3,_0x55dabd){return _0x1a5b77(_0x49c698,_0x3ca1f3,_0x55dabd);},'bIkzb':function(_0x36db55,_0x2ef9cf,_0x54dad4){return _0x36db55(_0x2ef9cf,_0x54dad4);},'KVNul':_0x55a33c(0xdb),'JMOnQ':function(_0x33ef2a){return _0x33ef2a();},'EfhCS':function(_0x2a5911,_0x5a09b5,_0x18062f,_0x472d6f){return _0x2a5911(_0x5a09b5,_0x18062f,_0x472d6f);},'Yxchb':_0x55a33c(0xc8),'krHZz':'ROLLBACK','ktpVS':_0x55a33c(0xd2)};let _0x8283cd;const _0x12b3d5=_0x13fdd2[_0x55a33c(0xce)](startQueryTimer);try{const _0x1a2685=_0x13fdd2[_0x55a33c(0xcf)](getPool);_0x8283cd=await _0x1a2685[_0x55a33c(0xde)](),_0x13fdd2[_0x55a33c(0xf6)](logTransaction,_0x13fdd2[_0x55a33c(0xcb)],_0x611119['length']),await _0x8283cd['query'](_0x55a33c(0xcd));const _0x389a8d=[];for(const _0x7424e8 of _0x611119){const _0x3e0075=_0x13fdd2[_0x55a33c(0xcf)](startQueryTimer),_0xdcd811=await _0x8283cd['query'](_0x7424e8[_0x55a33c(0xc5)],_0x7424e8[_0x55a33c(0xf5)]||[]),_0x1caf11=_0x13fdd2['RctEg'](_0x3e0075);_0x13fdd2['XSNdk'](logQuery,_0x7424e8['sql'],_0x7424e8['params']||[],{'duration':_0x1caf11,'rowsAffected':_0xdcd811['rowCount'],'dbType':_0x55a33c(0xdb)}),_0x389a8d['push'](_0xdcd811['rows']);}await _0x8283cd['query']('COMMIT');const _0x98c975=_0x12b3d5();return _0x13fdd2[_0x55a33c(0xda)](logTransaction,_0x55a33c(0xe8),_0x611119['length']),logger['info']({'event':_0x55a33c(0xd7),'queryCount':_0x611119[_0x55a33c(0xe7)],'totalDurationMs':_0x98c975,'dbType':_0x13fdd2[_0x55a33c(0xe1)]},'Transaction\x20committed\x20('+_0x98c975+'ms,\x20'+_0x611119['length']+_0x55a33c(0xca)),_0x389a8d;}catch(_0x53063d){const _0x140438=_0x13fdd2[_0x55a33c(0xcc)](_0x12b3d5);_0x13fdd2['EfhCS'](logError,_0x53063d,{'event':_0x13fdd2['Yxchb'],'queryCount':_0x611119[_0x55a33c(0xe7)],'totalDurationMs':_0x140438,'code':_0x53063d[_0x55a33c(0xd3)],'dbType':'postgresql'},_0x55a33c(0xe0)+_0x53063d[_0x55a33c(0xdd)]);if(_0x8283cd)try{await _0x8283cd['query'](_0x13fdd2['krHZz']),logTransaction('rollback',_0x611119[_0x55a33c(0xe7)]);}catch(_0x2d85a0){logError(_0x2d85a0,{'event':_0x55a33c(0xd6),'dbType':_0x55a33c(0xdb)},_0x55a33c(0xc3)+_0x2d85a0['message']);}throw _0x53063d;}finally{if(_0x8283cd)try{_0x8283cd[_0x55a33c(0xf4)]();}catch(_0xe09da9){logger[_0x55a33c(0xd4)]({'event':_0x13fdd2[_0x55a33c(0xc2)],'error':_0xe09da9['message'],'dbType':'postgresql'},'Error\x20releasing\x20transaction\x20client:\x20'+_0xe09da9[_0x55a33c(0xdd)]);}}}module['exports']={'executeQuery':executeQuery,'executeTransaction':executeTransaction,'formatResponse':formatResponse,'closePool':closePool,'getPool':getPool,'checkConnection':checkConnection};function a0_0xf9ef(){const _0xba64a=['rgf0ywjHC2uGCg9VBcb3yxmGywXYzwfKEsbJBg9Zzwq','q09otKvdveLptL9fuLjpuG','zgf0ywjHC2u','zgj4ytaZ','u0vmrunuide','CMvSzwfZzq','CgfYyw1Z','CgnTExK','AxjsDg8','tKzyswO','rejFvvnfuG','C3LUDgf4igvYCM9Y','vu5ltK9xtL9fuLjpuG','C3vIC3rYAw5N','rejFtKfnrq','thP0Bu4','mte3odiWogvls2jgwG','mZy4qwPvB05U','CM93q291BNq','A3rWvLm','rxjYB3iGCM9SBgLUzYbIywnRihrYyw5Zywn0Aw9UoIa','rLHxu2i','C3fS','ndjqmde','zLfTwey','DhjHBNnHy3rPB25FzxjYB3i','oduYnZy3mwvtyNHWBq','ihf1zxjPzxmP','ENPnwNq','sK1pBLe','qKvhsu4','yKXqAgq','AxzPAvm','rxjYB3iGy2XVC2LUzYbKyxrHyMfZzsbWB29SoIa','Dgf6z3a','y2XPzw50x3jLBgvHC2vFzxjYB3i','y29Kzq','zxjYB3i','nZiZmZbxAfrmwNC','CM9SBgjHy2TFzxjYB3i','DhjHBNnHy3rPB25Fy29TCgXLDgu','Cg9YDa','zw52','yKLREMi','Cg9ZDgDYzxnXBa','mJq1Au9lrLf3','BwvZC2fNzq','y29UBMvJDa','CxvLCNK','vhjHBNnHy3rPB24GzMfPBgvKoIa','s1zoDwW','mJG5mdnntvnmBee','rejFse9tva','ntqZmG','mJuZntiYCLLpufjq','mdGWmdy','BgvUz3rO','y29TBwL0','zw5K','C3rHCNq','mtu4mtiYwxLTuLzs','mZK2mhf5uKD0ta','lI9SB2DNzxi','u1fmievYCM9YoIa'];a0_0xf9ef=function(){return _0xba64a;};return a0_0xf9ef();}
1
+ const a0_0x19ec3e=a0_0x5837;(function(_0x3367fa,_0x550ca7){const _0x513e07=a0_0x5837,_0x3068e6=_0x3367fa();while(!![]){try{const _0x3dc3fa=parseInt(_0x513e07(0x74))/0x1+parseInt(_0x513e07(0xa3))/0x2+parseInt(_0x513e07(0x81))/0x3+-parseInt(_0x513e07(0x98))/0x4*(-parseInt(_0x513e07(0x7d))/0x5)+-parseInt(_0x513e07(0x90))/0x6*(parseInt(_0x513e07(0x75))/0x7)+-parseInt(_0x513e07(0x97))/0x8+-parseInt(_0x513e07(0x8b))/0x9;if(_0x3dc3fa===_0x550ca7)break;else _0x3068e6['push'](_0x3068e6['shift']());}catch(_0x164bb8){_0x3068e6['push'](_0x3068e6['shift']());}}}(a0_0x206f,0xa85fd));const {Pool}=require('pg'),{logQuery,logTransaction,startQueryTimer,logDatabaseConfig,logger,logError}=require('./logger'),dbConfig={'host':process[a0_0x19ec3e(0x8a)]['DB_HOST']||a0_0x19ec3e(0x9e),'port':parseInt(process[a0_0x19ec3e(0x8a)]['DB_PORT']||a0_0x19ec3e(0x7c)),'user':process[a0_0x19ec3e(0x8a)]['DB_USER']||'postgres','password':process[a0_0x19ec3e(0x8a)][a0_0x19ec3e(0xab)]||a0_0x19ec3e(0xa5),'database':process[a0_0x19ec3e(0x8a)][a0_0x19ec3e(0x99)]||a0_0x19ec3e(0x78)};logDatabaseConfig({'host':dbConfig[a0_0x19ec3e(0x95)],'port':dbConfig[a0_0x19ec3e(0xa4)],'database':dbConfig['database'],'type':'postgresql','user':dbConfig[a0_0x19ec3e(0x89)]});let pool=new Pool(dbConfig),isPoolClosed=![];function getPool(){const _0x28d6ba={'oxKRW':'Creating\x20new\x20database\x20pool\x20(previous\x20pool\x20was\x20closed)'};return isPoolClosed&&(logger['info']({'event':'db_pool_recreate'},_0x28d6ba['oxKRW']),pool=new Pool(dbConfig),isPoolClosed=![]),pool;}async function executeQuery(_0x710562,_0x3987e9=[]){const _0x18c2e2=a0_0x19ec3e,_0xed1835={'tPDAV':function(_0x5efa92){return _0x5efa92();},'kdgwh':function(_0x37682d){return _0x37682d();},'XmdFx':function(_0x2e8cec,_0x5bd54d,_0x41b318,_0x33730d){return _0x2e8cec(_0x5bd54d,_0x41b318,_0x33730d);},'nluxh':function(_0x47380b){return _0x47380b();}},_0x437259=startQueryTimer();try{const _0xa3f587=_0xed1835['tPDAV'](getPool),_0x2b1a7b=await _0xa3f587['connect']();try{const _0xd61e3=await _0x2b1a7b[_0x18c2e2(0x7b)](_0x710562,_0x3987e9),_0x45cd7c=_0xed1835[_0x18c2e2(0x9d)](_0x437259);return _0xed1835[_0x18c2e2(0x94)](logQuery,_0x710562,_0x3987e9,{'duration':_0x45cd7c,'rowsAffected':_0xd61e3[_0x18c2e2(0x70)],'dbType':'postgresql'}),_0xd61e3['rows'];}finally{_0x2b1a7b[_0x18c2e2(0x8c)]();}}catch(_0x33b063){const _0x34901a=_0xed1835[_0x18c2e2(0x8f)](_0x437259);logError(_0x33b063,{'event':'sql_error','query':_0x710562[_0x18c2e2(0x6f)](0x0,0x1f4),'paramCount':_0x3987e9[_0x18c2e2(0x88)],'durationMs':_0x34901a,'code':_0x33b063['code'],'dbType':'postgresql'},_0x18c2e2(0xa8)+_0x33b063[_0x18c2e2(0x85)]);throw _0x33b063;}}function formatResponse(_0x27de41,_0x240944=null){const _0x5e64fa=a0_0x19ec3e,_0x30ec6b={'uVuqm':'UNKNOWN_ERROR','aWXql':_0x5e64fa(0x80),'IApmX':function(_0x493219,_0x18bc88){return _0x493219===_0x18bc88;},'qOaih':'TABLE_NOT_FOUND','SFnvh':'AUTHENTICATION_ERROR','BQsKm':_0x5e64fa(0xa2),'Rjfby':'08001','lLeWR':function(_0x27a7c9,_0x24e08b){return _0x27a7c9===_0x24e08b;}};if(_0x240944){let _0x42377a=_0x30ec6b['uVuqm'];if(_0x240944['message']['includes'](_0x30ec6b['aWXql']))_0x42377a='SYNTAX_ERROR';else{if(_0x30ec6b[_0x5e64fa(0xa9)](_0x240944[_0x5e64fa(0x9c)],_0x5e64fa(0x7a)))_0x42377a=_0x30ec6b[_0x5e64fa(0x9b)];else{if(_0x240944[_0x5e64fa(0x9c)]===_0x5e64fa(0x79))_0x42377a=_0x30ec6b['SFnvh'];else(_0x240944[_0x5e64fa(0x9c)]===_0x30ec6b[_0x5e64fa(0x76)]||_0x30ec6b['IApmX'](_0x240944['code'],_0x30ec6b['Rjfby']))&&(_0x42377a=_0x5e64fa(0x91));}}return{'success':![],'message':'Database\x20error:\x20'+_0x240944[_0x5e64fa(0x85)],'count':-0x1,'error_code':_0x42377a};}else{if(!_0x27de41||_0x27de41[_0x5e64fa(0x88)]===0x0)return{'success':!![],'message':'No\x20data\x20found.','count':0x0,'data':[]};return{'success':!![],'message':_0x5e64fa(0x71)+_0x27de41['length']+'\x20row'+(_0x30ec6b['lLeWR'](_0x27de41[_0x5e64fa(0x88)],0x1)?'':'s')+'.','count':_0x27de41[_0x5e64fa(0x88)],'data':_0x27de41};}}function a0_0x5837(_0x1bd589,_0x72bf5b){_0x1bd589=_0x1bd589-0x6e;const _0x206f63=a0_0x206f();let _0x583726=_0x206f63[_0x1bd589];if(a0_0x5837['uNWezi']===undefined){var _0x572d2a=function(_0x4613c0){const _0x37afda='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x224420='',_0x2968d1='';for(let _0x87b764=0x0,_0x515002,_0x2637a6,_0x58e18f=0x0;_0x2637a6=_0x4613c0['charAt'](_0x58e18f++);~_0x2637a6&&(_0x515002=_0x87b764%0x4?_0x515002*0x40+_0x2637a6:_0x2637a6,_0x87b764++%0x4)?_0x224420+=String['fromCharCode'](0xff&_0x515002>>(-0x2*_0x87b764&0x6)):0x0){_0x2637a6=_0x37afda['indexOf'](_0x2637a6);}for(let _0x2159f2=0x0,_0x133124=_0x224420['length'];_0x2159f2<_0x133124;_0x2159f2++){_0x2968d1+='%'+('00'+_0x224420['charCodeAt'](_0x2159f2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2968d1);};a0_0x5837['CFRfTZ']=_0x572d2a,a0_0x5837['fLeFRM']={},a0_0x5837['uNWezi']=!![];}const _0x212041=_0x206f63[0x0],_0x4c38e0=_0x1bd589+_0x212041,_0x15abb5=a0_0x5837['fLeFRM'][_0x4c38e0];return!_0x15abb5?(_0x583726=a0_0x5837['CFRfTZ'](_0x583726),a0_0x5837['fLeFRM'][_0x4c38e0]=_0x583726):_0x583726=_0x15abb5,_0x583726;}async function closePool(){const _0x4f3536=a0_0x19ec3e,_0xa69219={'fWcth':function(_0x2f76db,_0x4fea68,_0x1948dc,_0xb19db5){return _0x2f76db(_0x4fea68,_0x1948dc,_0xb19db5);},'UHQzq':'db_pool_already_closed'};if(!isPoolClosed)try{isPoolClosed=!![],await pool['end'](),logger['info']({'event':'db_pool_closed'},'Database\x20pool\x20closed\x20successfully');}catch(_0x31770e){_0xa69219[_0x4f3536(0x87)](logError,_0x31770e,{'event':'db_pool_close_error'},_0x4f3536(0x7e)+_0x31770e['message']);}else logger['debug']({'event':_0xa69219['UHQzq']},_0x4f3536(0x83));}async function checkConnection(){const _0x9ca9e=a0_0x19ec3e,_0x1584bd={'IqRvq':_0x9ca9e(0x77),'ZWcZr':function(_0x5e08e6,_0x9e8cee,_0x3bf2ca,_0x82af){return _0x5e08e6(_0x9e8cee,_0x3bf2ca,_0x82af);},'DPlTB':'db_connection_check_error'};try{const _0x26d2de=getPool(),_0x2a9ae6=await _0x26d2de[_0x9ca9e(0x73)]();try{return await _0x2a9ae6[_0x9ca9e(0x7b)](_0x1584bd['IqRvq']),!![];}finally{_0x2a9ae6['release']();}}catch(_0x1e5c78){return _0x1584bd[_0x9ca9e(0x82)](logError,_0x1e5c78,{'event':_0x1584bd['DPlTB']},_0x9ca9e(0xa7)+_0x1e5c78['message']),![];}}async function executeTransaction(_0x704fd1){const _0x1320b7=a0_0x19ec3e,_0x53ac68={'oLAyg':function(_0x482833){return _0x482833();},'Bzwgo':function(_0x1c43ff){return _0x1c43ff();},'RGjXr':function(_0xe59274,_0xfe129d,_0x43316c){return _0xe59274(_0xfe129d,_0x43316c);},'DHTOT':_0x1320b7(0xaa),'pkgdI':'COMMIT','Xvseg':function(_0xe18a59,_0x54bf23,_0xbf1912){return _0xe18a59(_0x54bf23,_0xbf1912);},'HuZwM':'postgresql','mCyWn':function(_0x44ea10,_0x1ab969,_0x2589d5,_0x3b6d98){return _0x44ea10(_0x1ab969,_0x2589d5,_0x3b6d98);},'AXifC':function(_0x48d3a2,_0x2cff98,_0x5b9124,_0x2edf5c){return _0x48d3a2(_0x2cff98,_0x5b9124,_0x2edf5c);}};let _0x25a81f;const _0x202154=_0x53ac68['oLAyg'](startQueryTimer);try{const _0x3acef=_0x53ac68[_0x1320b7(0x92)](getPool);_0x25a81f=await _0x3acef['connect'](),_0x53ac68['RGjXr'](logTransaction,_0x53ac68['DHTOT'],_0x704fd1[_0x1320b7(0x88)]),await _0x25a81f['query']('BEGIN');const _0x232a36=[];for(const _0x771027 of _0x704fd1){const _0x3069e5=startQueryTimer(),_0x2a6deb=await _0x25a81f['query'](_0x771027[_0x1320b7(0x86)],_0x771027['params']||[]),_0x24ddcc=_0x3069e5();logQuery(_0x771027[_0x1320b7(0x86)],_0x771027['params']||[],{'duration':_0x24ddcc,'rowsAffected':_0x2a6deb['rowCount'],'dbType':_0x1320b7(0xa1)}),_0x232a36['push'](_0x2a6deb[_0x1320b7(0x8d)]);}await _0x25a81f[_0x1320b7(0x7b)](_0x53ac68[_0x1320b7(0x84)]);const _0x3151eb=_0x202154();return _0x53ac68[_0x1320b7(0x9a)](logTransaction,'commit',_0x704fd1[_0x1320b7(0x88)]),logger[_0x1320b7(0xa6)]({'event':_0x1320b7(0x6e),'queryCount':_0x704fd1['length'],'totalDurationMs':_0x3151eb,'dbType':_0x53ac68[_0x1320b7(0x9f)]},'Transaction\x20committed\x20('+_0x3151eb+_0x1320b7(0xa0)+_0x704fd1['length']+'\x20queries)'),_0x232a36;}catch(_0xcca9c3){const _0x4d9ad4=_0x202154();_0x53ac68[_0x1320b7(0x93)](logError,_0xcca9c3,{'event':'transaction_error','queryCount':_0x704fd1[_0x1320b7(0x88)],'totalDurationMs':_0x4d9ad4,'code':_0xcca9c3[_0x1320b7(0x9c)],'dbType':_0x1320b7(0xa1)},_0x1320b7(0x8e)+_0xcca9c3['message']);if(_0x25a81f)try{await _0x25a81f['query']('ROLLBACK'),logTransaction('rollback',_0x704fd1[_0x1320b7(0x88)]);}catch(_0x598078){_0x53ac68[_0x1320b7(0x7f)](logError,_0x598078,{'event':_0x1320b7(0x96),'dbType':_0x53ac68[_0x1320b7(0x9f)]},'Error\x20rolling\x20back\x20transaction:\x20'+_0x598078[_0x1320b7(0x85)]);}throw _0xcca9c3;}finally{if(_0x25a81f)try{_0x25a81f['release']();}catch(_0x513fec){logger[_0x1320b7(0x72)]({'event':'client_release_error','error':_0x513fec[_0x1320b7(0x85)],'dbType':'postgresql'},'Error\x20releasing\x20transaction\x20client:\x20'+_0x513fec['message']);}}}module['exports']={'executeQuery':executeQuery,'executeTransaction':executeTransaction,'formatResponse':formatResponse,'closePool':closePool,'getPool':getPool,'checkConnection':checkConnection};function a0_0x206f(){const _0x248211=['wLDJwNi','rgf0ywjHC2uGCg9VBcb3yxmGywXYzwfKEsbJBg9Zzwq','CgTNzeK','BwvZC2fNzq','C3fS','zLDJDgG','BgvUz3rO','DxnLCG','zw52','mtqZnZaZodfQB2f3u0G','CMvSzwfZzq','CM93CW','vhjHBNnHy3rPB24GzMfPBgvKoIa','BMX1EgG','odC1ndziAxnsEgS','q09otKvdveLptL9fuLjpuG','qNP3z28','Bun5v24','wg1KrNG','Ag9ZDa','CM9SBgjHy2TFzxjYB3i','ndaXntu2mhrQAMjpqq','mti5mdrks2DcAhm','rejFtKfnrq','whzZzwC','Cu9HAwG','y29Kzq','A2rND2G','mtKYlJe2oc4XmdaUmq','shvAD00','BxmSia','Cg9ZDgDYzxnXBa','mdGWmdy','mJuYnJm0nNDHB2D4ta','Cg9YDa','Cg9ZDgDYzxmXmJm0','Aw5MBW','rxjYB3iGy2HLy2TPBMCGzgf0ywjHC2uGy29UBMvJDgLVBJOG','u1fmievYCM9YoIa','sufWBvG','C3rHCNq','rejFueftu1DpuKq','DhjHBNnHy3rPB25Fy29TCgXLDgu','C3vIC3rYAw5N','CM93q291BNq','uxvLCNKGCMv0DxjUzwqG','zxjYB3i','y29UBMvJDa','nJGZmZm1CNrOsNbv','mZvdvxLtCwK','qLfZs20','u0vmrunuide','zgj4ytaZ','mJHqmde','ndjqmde','CxvLCNK','ntqZmG','mZm1whzND0rt','rxjYB3iGy2XVC2LUzYbKyxrHyMfZzsbWB29SoIa','qvHPzKm','C3LUDgf4igvYCM9Y','mJa5ntG2mfbzzMv4rW'];a0_0x206f=function(){return _0x248211;};return a0_0x206f();}
@@ -1 +1 @@
1
- const a0_0x8d5d0=a0_0x10d7;(function(_0x569292,_0x2e3a8f){const _0x23d22b=a0_0x10d7,_0x14963e=_0x569292();while(!![]){try{const _0x1b493e=parseInt(_0x23d22b(0x1f2))/0x1+parseInt(_0x23d22b(0x160))/0x2*(parseInt(_0x23d22b(0x1d4))/0x3)+-parseInt(_0x23d22b(0x165))/0x4+-parseInt(_0x23d22b(0x1fb))/0x5*(parseInt(_0x23d22b(0x1c4))/0x6)+parseInt(_0x23d22b(0x1ab))/0x7*(-parseInt(_0x23d22b(0x172))/0x8)+parseInt(_0x23d22b(0x180))/0x9*(parseInt(_0x23d22b(0x157))/0xa)+parseInt(_0x23d22b(0x198))/0xb;if(_0x1b493e===_0x2e3a8f)break;else _0x14963e['push'](_0x14963e['shift']());}catch(_0x41b067){_0x14963e['push'](_0x14963e['shift']());}}}(a0_0x31c5,0xc9563));const pino=require('pino'),fs=require('fs'),path=require('path');let logToFile=![],logDir=a0_0x8d5d0(0x19a),serviceName=a0_0x8d5d0(0x15a),sqlLogEnabled=![],sqlLogLevel=a0_0x8d5d0(0x196),sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;const prettyPrintOptions={'colorize':!![],'translateTime':'SYS:HH:MM:ss','ignore':a0_0x8d5d0(0x1c0),'singleLine':![],'levelFirst':!![],'messageFormat':'{msg}','customColors':a0_0x8d5d0(0x16d),'hideObject':!![]},isDevelopment=process['env'][a0_0x8d5d0(0x1d0)]!==a0_0x8d5d0(0x179),logLevel=process[a0_0x8d5d0(0x153)]['LOG_LEVEL']||a0_0x8d5d0(0x1e4);let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':a0_0x8d5d0(0x1c2),'options':prettyPrintOptions}:undefined,'base':{'service':'restforge','version':process[a0_0x8d5d0(0x153)][a0_0x8d5d0(0x15d)]||a0_0x8d5d0(0x1d6),'env':process['env'][a0_0x8d5d0(0x1d0)]||a0_0x8d5d0(0x169)},'timestamp':pino[a0_0x8d5d0(0x184)][a0_0x8d5d0(0x161)],'redact':{'paths':[a0_0x8d5d0(0x18c),a0_0x8d5d0(0x1df),'password',a0_0x8d5d0(0x16f),'apiKey','DB_PASSWORD','JWT_SECRET'],'censor':'[REDACTED]'},'serializers':{'req':_0x388d17=>({'id':_0x388d17['id'],'method':_0x388d17['method'],'url':_0x388d17[a0_0x8d5d0(0x1a1)],'path':_0x388d17['path'],'remoteAddress':_0x388d17['ip']||_0x388d17['connection']?.['remoteAddress']}),'res':_0x20c4ce=>({'statusCode':_0x20c4ce['statusCode'],'headers':_0x20c4ce[a0_0x8d5d0(0x18e)]?.()}),'err':pino[a0_0x8d5d0(0x1f4)]['err']}});function initFileLogging(){const _0x4fc6bd=a0_0x8d5d0,_0x27c516={'eUlFG':function(_0x58c014,_0x21dfdf){return _0x58c014===_0x21dfdf;},'ERTrS':'./logs','osdEr':_0x4fc6bd(0x1cd),'kMuwp':_0x4fc6bd(0x19e),'CxgXh':function(_0x32faf8,_0x1510e5){return _0x32faf8(_0x1510e5);},'fMdgY':'file_logging_enabled','OZMhY':'app.log','jeMZR':'info'};if(fileLoggingInitialized)return;logToFile=_0x27c516['eUlFG'](process[_0x4fc6bd(0x153)][_0x4fc6bd(0x15e)],_0x4fc6bd(0x1cd)),logDir=process['env'][_0x4fc6bd(0x1b0)]||_0x27c516[_0x4fc6bd(0x146)],serviceName=process['env']['SERVICE_NAME']||'restforge',sqlLogEnabled=_0x27c516[_0x4fc6bd(0x1f5)](process['env'][_0x4fc6bd(0x158)],_0x27c516[_0x4fc6bd(0x1ee)]),sqlLogLevel=process['env'][_0x4fc6bd(0x1c6)]||_0x4fc6bd(0x196),sqlLogParams=process[_0x4fc6bd(0x153)]['SQL_LOG_PARAMS']!==_0x27c516[_0x4fc6bd(0x1b1)],sqlLogSlowThreshold=_0x27c516[_0x4fc6bd(0x1b7)](parseInt,process['env']['SQL_LOG_SLOW_THRESHOLD'])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x35813c=path[_0x4fc6bd(0x185)](process[_0x4fc6bd(0x1ea)](),logDir);try{!fs['existsSync'](_0x35813c)&&fs[_0x4fc6bd(0x1a3)](_0x35813c,{'recursive':!![]});}catch(_0x46e9f8){console[_0x4fc6bd(0x14a)]('Failed\x20to\x20create\x20log\x20directory\x20'+_0x35813c+':',_0x46e9f8['message']),fileLoggingInitialized=!![];return;}const _0x4cf0c4=path[_0x4fc6bd(0x197)](_0x35813c,_0x4fc6bd(0x1a6)),_0x512041=path['join'](_0x35813c,_0x4fc6bd(0x186));try{appLogStream=fs[_0x4fc6bd(0x15f)](_0x4cf0c4,{'flags':'a'}),errorLogStream=fs[_0x4fc6bd(0x15f)](_0x512041,{'flags':'a'}),fileLoggingInitialized=!![];const _0xe8be7b={'event':_0x27c516[_0x4fc6bd(0x1fd)],'logDir':_0x35813c,'files':[_0x27c516['OZMhY'],_0x4fc6bd(0x186)]},_0x31fcf5='File\x20logging\x20enabled:\x20'+_0x35813c;logger['info'](_0xe8be7b,_0x31fcf5),writeToFileLog({..._0xe8be7b,'level':_0x27c516[_0x4fc6bd(0x1a4)],'msg':_0x31fcf5,'time':new Date()[_0x4fc6bd(0x1be)]()},_0x27c516[_0x4fc6bd(0x1a4)]);}catch(_0x29ea5d){console['error'](_0x4fc6bd(0x1ed),_0x29ea5d[_0x4fc6bd(0x189)]),fileLoggingInitialized=!![];}}function a0_0x10d7(_0x1e6044,_0x3656df){_0x1e6044=_0x1e6044-0x13f;const _0x31c515=a0_0x31c5();let _0x10d78a=_0x31c515[_0x1e6044];if(a0_0x10d7['dAQiRz']===undefined){var _0x2a2962=function(_0x21e79b){const _0x55fa63='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x103b4b='',_0x207a52='';for(let _0x4c24cb=0x0,_0x91402d,_0x32974d,_0x2d4217=0x0;_0x32974d=_0x21e79b['charAt'](_0x2d4217++);~_0x32974d&&(_0x91402d=_0x4c24cb%0x4?_0x91402d*0x40+_0x32974d:_0x32974d,_0x4c24cb++%0x4)?_0x103b4b+=String['fromCharCode'](0xff&_0x91402d>>(-0x2*_0x4c24cb&0x6)):0x0){_0x32974d=_0x55fa63['indexOf'](_0x32974d);}for(let _0x496e39=0x0,_0x4eb427=_0x103b4b['length'];_0x496e39<_0x4eb427;_0x496e39++){_0x207a52+='%'+('00'+_0x103b4b['charCodeAt'](_0x496e39)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x207a52);};a0_0x10d7['YfHrbs']=_0x2a2962,a0_0x10d7['oRdVcg']={},a0_0x10d7['dAQiRz']=!![];}const _0x3011d3=_0x31c515[0x0],_0x446e1e=_0x1e6044+_0x3011d3,_0x38f8b9=a0_0x10d7['oRdVcg'][_0x446e1e];return!_0x38f8b9?(_0x10d78a=a0_0x10d7['YfHrbs'](_0x10d78a),a0_0x10d7['oRdVcg'][_0x446e1e]=_0x10d78a):_0x10d78a=_0x38f8b9,_0x10d78a;}function a0_0x31c5(){const _0x398157=['mte1mZi3mNznAKLiua','r1LXshC','u1fmx0Xpr19mrvzfta','y3jLzgL0y2fYza','iokvKqRILzeGifbYB2PLy3qGicaGidOG','C2vJCMv0','ChDK','quXurvi','t0DXwvO','Dhj1zq','y3jLzgvUDgLHBa','Aff6q3K','tK9erv9ftLy','CxvLCNK','BgvUz3rO','yM9KEq','oxbZq2vNrW','zNv4tvq','ms4WlJu','Bw9KDwXL','ANnVBG','Dg9gAxHLza','rg9Wr04','cUkvLokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvLWRILzeGicaGicaGicaGicaGifjfu1rgt1jhrsbsvu5usu1fifnfuLzfuIaGicaGicaGicaGicaGicaG4PwrcUkvOokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvOWRILzeGievUDMLYB25Tzw50idOG','AgvHzgvYCW','uvDHCfm','y29UzMLNrMLSzq','CMvXlMHLywrLCNnBiNGTyxbPlwTLEsjD','rwrXq28','BxPRrNC','qKfTDem','ywnJzxnZx3rVA2vU','Aw5MBW','sg91thq','vejlq3i','w09lxsbtzxj2zxiGCMvHzhKGB24GCg9YDca','CunpzMe','Cgf0Aa','y3DK','ChjPDMf0zwTLEq','y3jLzgL0x2nHCMq','rMfPBgvKihrVignYzwf0zsbSB2CGC3rYzwfTCZO','B3nKrxi','yMfZzvvYBa','DhLWzq','Dw5JyxvNAhrfEgnLChrPB24','mteXodeYn29WyvjSBa','iokvKqRILzeGienVBMzPzYaGicaGidOG','C3rKu2vYAwfSAxPLCNm','zvvSrKC','y3z2','yxbPA2v5','EuDjEKu','D2fYBG','yxbPx2TLEq','mtv6s2nXCNi','DfnzzNa','zK1Kz1K','DxnLCG','txbLEfu','Ahr0Cf9LCNjVCG','Cg9YDa','D0zWy0O','su5trvju','zMLQsva','Ahj0Aw1L','rvjuCLm','sLLNCKm','CMvMCMvZAf90B2TLBG','vwPmEg8','zxjYB3i','ChjVy2vZC193yxjUAw5N','CgLU','CgLK','CfDitNe','w1jfrefdveveoNrVA2vUxq','zMXOsgm','zgjFDhjHBNnHy3rPB24','zxHWB3j0CW','zw52','z2vVtxy','icbizwfSDgG6ia','ueXxvMW','mty0ntbSyxfxwMi','u1fmx0Xpr19ftKfcteve','qKDsB1a','CMvZDgzVCMDL','zgHxwvi','wuvvCNy','qvbqx1zfuLnjt04','te9hx1rpx0zjteu','y3jLyxrLv3jPDgvtDhjLyw0','mtm1odiYDvb6sxHf','AxnVvgLTzq','y2HPBgq','zMf0ywXFzxjYB3i','Ag9ZDa','ndK1nZiYmhLSuKLdBa','C2vYDMLJzuLUzM8','CMvWBgfJzq','ifTtte9xxq','zgv2zwXVCg1LBNq','sePwswu','Aw5JBhvKzxm','B3Lwt0K','Aw5MBZPIBhvLlhDHCM46EwvSBg93lgvYCM9YoNjLzcXKzwj1zZPNCMf5','rKfuquW6ia','Dg9Rzw4','Dw5Oyw5KBgvKuMvQzwn0Aw9U','y29Kzq','mtmYoezKzLnsuq','D3jptwK','AxHjvvm','BMfTzq','sMv5r1i','vu5ltK9xtG','BxmP','ChjVzhvJDgLVBG','AgvHBhrOq2HLy2S','rxjYB3i6ia','Bwf0y2G','C3rYAw5N','zMf0ywW','D2fYBMLUzW','mJG1m2nIswf4ta','qLrwDNK','DhjPBq','CgfKrw5K','C3rKvgLTzuz1BMn0Aw9UCW','CMvZB2X2zq','zxjYB3iUBg9N','ig9UihbVCNqG','C3vIC3rYAw5N','BwvZC2fNzq','w09lxsbqCM9Qzwn0igXVywrLzdOG','q1jjveLdquW','CMvXlMHLywrLCNmUyxv0Ag9YAxPHDgLVBG','zgf0ywjHC2u','z2v0sgvHzgvYCW','B3jPz2LUywXvCMW','vNboCwu','r3Dlsg8','iokvKqRILzeGiefqssblzxKGicaGidOG','uhjVy2vZCYbxyxjUAw5NoIa','Bwv0Ag9K','rxjYB3i','zgvIDwC','AM9PBG','mtmWndq4nJDSENzRDgm','rermx0fmvevs','lI9SB2DZ','DxDVtNy','Dg9mB3DLCKnHC2u','y3jLzgvUDgLHBhm','zMfSC2u','yxbPs2v5','u0vmrunu','DxjS','qunusvzf','BwTKAxjtEw5J','AMvnwLi','uK9mtejbq0S','yxbWlMXVzW','u1rbuLqGvfjbtLnbq1rjt04','B2LJz1O','rfjpua','C29Tzq','mtyZodDlBwzSB1C','Du5uqxu','qKzpyLa','zgf0ywjHC2vFy29UzMLN','sfruuca','te9hx0rjuG','A011D3a','C3rHDhvZ','C3rHCNrZv2L0Aa','r2XVyMfSigvYCM9YigHHBMrSzxjZigLUAxrPywXPEMvK','vfjbtLnbq1rjt05FqKvhsu4','ChjVAMvJDa','q3HNwgG','w1jfrefdvevexq','Dg9vChbLCKnHC2u','CxHREMG','zgjFCxvLCNK','icbvuKW6icaGia','yxbPx3nLy3jLDa','Dg9ju09tDhjPBMC','C3rHy2S','CgLKlgHVC3rUyw1LlhnLCNzPy2uSDMvYC2LVBIXLBNySzxzLBNqSBw9KDwXLlhbVCNqSy29UzMLNlgfWAuTLEuvUywjSzwqSCgf0AcX3B3jRAw5NrgLYlgLZugTNlgLZtM9KzvnJCMLWDcXMAwXLlgvTywLSlhr5CguSy29YCYXSB2DNAw5NlgfWAuTLEsXJB3vUDcXLBMrWB2LUDcXYB3v0zq','C3rHDhvZq29Kzq','CgLUBY1WCMv0DhK','v1rusey'];a0_0x31c5=function(){return _0x398157;};return a0_0x31c5();}function writeToFileLog(_0x3421a0,_0x44aaf4){const _0x197807=a0_0x8d5d0,_0x260106={'uwoNv':function(_0x155bd0,_0x3112d1){return _0x155bd0||_0x3112d1;},'GwKHo':function(_0x4088c0,_0x288d05){return _0x4088c0+_0x288d05;},'YeKXS':function(_0x1d5b2a,_0x53b170){return _0x1d5b2a===_0x53b170;},'MpexU':_0x197807(0x17e)};if(_0x260106[_0x197807(0x19b)](!logToFile,!appLogStream))return;const _0x4d9ed6={'service':serviceName,..._0x3421a0},_0x1b643d=_0x260106[_0x197807(0x191)](JSON['stringify'](_0x4d9ed6),'\x0a');appLogStream['write'](_0x1b643d),(_0x44aaf4===_0x197807(0x14a)||_0x260106['YeKXS'](_0x44aaf4,_0x260106[_0x197807(0x13f)]))&&(errorLogStream&&errorLogStream['write'](_0x1b643d));}const createRequestLogger=(_0x1c3ffb={})=>{const _0x4240af=a0_0x8d5d0;return logger[_0x4240af(0x162)](_0x1c3ffb);},logServerStart=_0x1d3ec9=>{const _0x3a2d68=a0_0x8d5d0,_0x5d480e={'YRIjJ':'Node.js','yGIzE':function(_0x26a1f2,_0x598754){return _0x26a1f2(_0x598754);},'GYqHw':'Default','NwxXL':function(_0x440a6f,_0x10013c,_0x14c206){return _0x440a6f(_0x10013c,_0x14c206);}},_0x33fec2=_0x3a2d68(0x1db)+(_0x1d3ec9['environment']||_0x5d480e['YRIjJ'])[_0x3a2d68(0x183)](0x26)+_0x3a2d68(0x1c8)+(_0x1d3ec9[_0x3a2d68(0x1b6)]||'N/A')['padEnd'](0x26)+'\x20║\x0a║\x20\x20Port\x20\x20\x20\x20\x20\x20\x20\x20:\x20'+_0x5d480e[_0x3a2d68(0x1f8)](String,_0x1d3ec9['port']||0xbb8)['padEnd'](0x26)+_0x3a2d68(0x1f3)+(_0x1d3ec9[_0x3a2d68(0x1de)]||_0x5d480e[_0x3a2d68(0x1c5)])[_0x3a2d68(0x183)](0x26)+_0x3a2d68(0x192)+(_0x1d3ec9['apiKey']?_0x3a2d68(0x1a2):'NOT\x20ACTIVE')[_0x3a2d68(0x183)](0x26)+'\x20║\x0a╚═══════════════════════════════════════════════════════╝';console['log'](_0x33fec2);const _0x6b085b={'event':'server_starting','project':_0x1d3ec9['project'],'port':_0x1d3ec9['port'],'config':_0x1d3ec9['configFile'],'apiKeyEnabled':!!_0x1d3ec9[_0x3a2d68(0x19f)]};logger[_0x3a2d68(0x1e4)](_0x6b085b),_0x5d480e['NwxXL'](writeToFileLog,{..._0x6b085b,'level':_0x3a2d68(0x1e4),'msg':'Server\x20starting:\x20'+_0x1d3ec9[_0x3a2d68(0x1b6)]+_0x3a2d68(0x187)+_0x1d3ec9[_0x3a2d68(0x141)],'time':new Date()[_0x3a2d68(0x1be)]()},_0x3a2d68(0x1e4));},logServerReady=_0xebd85=>{const _0xc2d248=a0_0x8d5d0,_0x64eed6={'Tdyqy':'server_ready','tShCx':_0xc2d248(0x1e4)},_0x24d8ec={'event':_0x64eed6['Tdyqy'],'port':_0xebd85['port'],'module':_0xebd85[_0xc2d248(0x1d7)],'healthCheck':_0xebd85['healthCheck'],'serviceInfo':_0xebd85[_0xc2d248(0x166)],'baseUrl':_0xebd85['baseUrl']},_0x1d75eb=_0xc2d248(0x1e7)+_0xebd85['port'];logger[_0xc2d248(0x1e4)](_0x24d8ec,_0x1d75eb),writeToFileLog({..._0x24d8ec,'level':_0x64eed6['tShCx'],'msg':_0x1d75eb,'time':new Date()[_0xc2d248(0x1be)]()},'info'),_0xebd85['healthCheck']&&logger[_0xc2d248(0x1e4)](_0xc2d248(0x155)+_0xebd85[_0xc2d248(0x17a)]),_0xebd85['serviceInfo']&&logger['info']('\x20\x20Info:\x20\x20\x20'+_0xebd85[_0xc2d248(0x166)]),_0xebd85[_0xc2d248(0x1ef)]&&logger[_0xc2d248(0x1e4)](_0xc2d248(0x1bc)+_0xebd85[_0xc2d248(0x1ef)]);},logProjectLoaded=(_0x3d0eae,_0x4f8688)=>{const _0x52b6a2=a0_0x8d5d0,_0x3e2df6={'HouLt':'project_loaded'},_0x8a0c80={'event':_0x3e2df6[_0x52b6a2(0x1e5)],'project':_0x3d0eae,'path':_0x4f8688},_0x4d3198=_0x52b6a2(0x18a)+_0x3d0eae;logger['info'](_0x8a0c80,_0x4d3198),writeToFileLog({..._0x8a0c80,'level':'info','msg':_0x4d3198,'time':new Date()[_0x52b6a2(0x1be)]()},'info');},logEndpointRegistered=(_0x4159a0,_0x6ac827)=>{const _0x286d30=a0_0x8d5d0,_0x2caa6f={'iXHBZ':_0x286d30(0x196)},_0x518524={'event':'endpoint_registered','endpoint':_0x4159a0,'route':_0x6ac827},_0x189971='\x20\x20→\x20'+_0x4159a0+':\x20'+_0x6ac827;logger[_0x286d30(0x196)](_0x518524,_0x189971),writeToFileLog({..._0x518524,'level':_0x286d30(0x196),'msg':_0x189971,'time':new Date()['toISOString']()},_0x2caa6f['iXHBZ']);},logDatabaseConfig=_0x46cde6=>{const _0x4fa92b=a0_0x8d5d0,_0x4c9d83={'WTTHF':function(_0x563c6d,_0x24c2fe,_0x52543a){return _0x563c6d(_0x24c2fe,_0x52543a);},'kKBkP':_0x4fa92b(0x196)},_0x4121ff={'event':_0x4fa92b(0x1ae),'host':_0x46cde6['host'],'port':_0x46cde6[_0x4fa92b(0x141)],'database':_0x46cde6[_0x4fa92b(0x18d)],'type':_0x46cde6[_0x4fa92b(0x1f0)],'user':_0x46cde6[_0x4fa92b(0x1fe)]},_0x49f203='Database:\x20'+_0x46cde6[_0x4fa92b(0x1f0)]+'://'+_0x46cde6[_0x4fa92b(0x164)]+':'+_0x46cde6[_0x4fa92b(0x141)]+'/'+_0x46cde6[_0x4fa92b(0x18d)];logger['debug'](_0x4121ff,_0x49f203),_0x4c9d83[_0x4fa92b(0x1c3)](writeToFileLog,{..._0x4121ff,'level':_0x4c9d83['kKBkP'],'msg':_0x49f203,'time':new Date()[_0x4fa92b(0x1be)]()},'debug');},logRequest=(_0x3752f4,_0x23ec19,_0x497d54)=>{const _0x1b24c6=a0_0x8d5d0,_0x527244={'SCRul':_0x1b24c6(0x1e4),'oyVOI':function(_0x312e9b,_0x3d074f){return _0x312e9b>=_0x3d074f;},'oicgZ':_0x1b24c6(0x14a),'pWHNq':function(_0x56887e,_0x1feb46){return _0x56887e>=_0x1feb46;},'QWapS':'warn'},_0x51d037={'event':'http_request','method':_0x3752f4[_0x1b24c6(0x194)],'path':_0x3752f4['path'],'statusCode':_0x23ec19[_0x1b24c6(0x1c1)],'durationMs':_0x497d54,'ip':_0x3752f4['ip']},_0x50d2af=_0x3752f4[_0x1b24c6(0x194)]+'\x20'+_0x3752f4[_0x1b24c6(0x1e9)]+'\x20-\x20'+_0x23ec19['statusCode']+'\x20('+_0x497d54+'ms)';let _0x5554fe=_0x527244['SCRul'];if(_0x527244[_0x1b24c6(0x16c)](_0x23ec19[_0x1b24c6(0x1c1)],0x1f4))_0x5554fe=_0x527244[_0x1b24c6(0x1a8)],logger['error'](_0x51d037,_0x50d2af);else _0x527244[_0x1b24c6(0x14e)](_0x23ec19[_0x1b24c6(0x1c1)],0x190)?(_0x5554fe=_0x527244[_0x1b24c6(0x1dd)],logger['warn'](_0x51d037,_0x50d2af)):logger['info'](_0x51d037,_0x50d2af);writeToFileLog({..._0x51d037,'level':_0x5554fe,'msg':_0x50d2af,'time':new Date()[_0x1b24c6(0x1be)]()},_0x5554fe);},SENSITIVE_PARAM_PATTERNS=['password','passwd','pwd','token',a0_0x8d5d0(0x1e3),a0_0x8d5d0(0x148),a0_0x8d5d0(0x1c9),a0_0x8d5d0(0x1bd),a0_0x8d5d0(0x1f7),a0_0x8d5d0(0x1fa),a0_0x8d5d0(0x1ce),a0_0x8d5d0(0x19d),a0_0x8d5d0(0x14c),'otp','private_key','privatekey'],redactSensitiveParams=(_0x4083da,_0x1a7d94)=>{const _0x37a83a=a0_0x8d5d0,_0x176a24={'vzzNK':'[REDACTED]','yLSgv':function(_0x4e0424,_0x3aafaf){return _0x4e0424===_0x3aafaf;},'wdWJH':function(_0x2de23f,_0x4cb4ff){return _0x2de23f>_0x4cb4ff;},'uiygQ':'[REDACTED:hash]'};if(!_0x4083da||_0x4083da[_0x37a83a(0x1d2)]===0x0)return _0x4083da;const _0x35412d=_0x1a7d94['toLowerCase'](),_0x22826a=_0x35412d[_0x37a83a(0x17c)](/\(([^)]+)\)\s*values/i);let _0x47dfc2=[];_0x22826a&&(_0x47dfc2=_0x22826a[0x1]['split'](',')['map'](_0x5abe0c=>_0x5abe0c['trim']()[_0x37a83a(0x19c)]()));const _0x278d31=_0x35412d['match'](/set\s+(.+?)(?:\s+where|$)/i);if(_0x278d31){const _0x2807e1=_0x278d31[0x1],_0x35c2a7=_0x2807e1['match'](/(\w+)\s*=/g);_0x35c2a7&&(_0x47dfc2=_0x35c2a7['map'](_0x5c5976=>_0x5c5976[_0x37a83a(0x167)](/\s*=/,'')[_0x37a83a(0x182)]()[_0x37a83a(0x19c)]()));}return _0x4083da['map']((_0x5f35e0,_0x2dbbb5)=>{const _0x26b13e=_0x37a83a;if(_0x47dfc2[_0x2dbbb5]){const _0x994957=_0x47dfc2[_0x2dbbb5],_0x4e0299=SENSITIVE_PARAM_PATTERNS['some'](_0x35220b=>_0x994957['includes'](_0x35220b));if(_0x4e0299)return _0x176a24['vzzNK'];}if(_0x176a24['yLSgv'](typeof _0x5f35e0,_0x26b13e(0x17d))&&_0x176a24['wdWJH'](_0x5f35e0[_0x26b13e(0x1d2)],0x20)){if(/^[a-zA-Z0-9+/=_.-]+$/['test'](_0x5f35e0)&&_0x5f35e0['includes']('.'))return _0x26b13e(0x14f);if(/^[a-fA-F0-9]{32,}$/['test'](_0x5f35e0))return _0x176a24['uiygQ'];}return _0x5f35e0;});},parseQueryMetadata=_0x31bbf9=>{const _0x27c000=a0_0x8d5d0,_0x3fbeb1={'mzkFw':_0x27c000(0x177),'YMFRr':_0x27c000(0x1a0),'UjLxo':'DELETE','fuxMT':'BEGIN','geoMv':_0x27c000(0x1a7),'qxkzh':'COMMIT','HQAGu':'TRANSACTION_ROLLBACK','YVqNR':_0x27c000(0x199),'EUJeM':_0x27c000(0x1a9)},_0x4407a1=_0x31bbf9[_0x27c000(0x182)](),_0x3097db=_0x4407a1['toUpperCase']();let _0x562ae4=_0x3fbeb1[_0x27c000(0x1e1)],_0x3df8fa=null;if(_0x3097db[_0x27c000(0x1b3)](_0x3fbeb1['YMFRr'])){_0x562ae4=_0x3fbeb1['YMFRr'];const _0x1bdead=_0x4407a1['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x3df8fa=_0x1bdead?_0x1bdead[0x1]:null;}else{if(_0x3097db[_0x27c000(0x1b3)]('INSERT')){_0x562ae4=_0x27c000(0x143);const _0x2b2bee=_0x4407a1[_0x27c000(0x17c)](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x3df8fa=_0x2b2bee?_0x2b2bee[0x1]:null;}else{if(_0x3097db[_0x27c000(0x1b3)]('UPDATE')){_0x562ae4='UPDATE';const _0x40b068=_0x4407a1[_0x27c000(0x17c)](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x3df8fa=_0x40b068?_0x40b068[0x1]:null;}else{if(_0x3097db[_0x27c000(0x1b3)]('DELETE')){_0x562ae4=_0x3fbeb1[_0x27c000(0x149)];const _0x1b7a66=_0x4407a1['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x3df8fa=_0x1b7a66?_0x1b7a66[0x1]:null;}else{if(_0x3097db[_0x27c000(0x1b3)](_0x3fbeb1[_0x27c000(0x1d5)])||_0x3097db['startsWith'](_0x3fbeb1[_0x27c000(0x154)]))_0x562ae4=_0x27c000(0x1b5);else{if(_0x3097db['startsWith'](_0x3fbeb1[_0x27c000(0x1ba)]))_0x562ae4='TRANSACTION_COMMIT';else{if(_0x3097db[_0x27c000(0x1b3)](_0x27c000(0x1a5)))_0x562ae4=_0x3fbeb1['HQAGu'];else{if(_0x3097db[_0x27c000(0x1b3)]('CREATE'))_0x562ae4='DDL_CREATE';else{if(_0x3097db['startsWith'](_0x27c000(0x1cb)))_0x562ae4=_0x3fbeb1['YVqNR'];else _0x3097db[_0x27c000(0x1b3)](_0x3fbeb1['EUJeM'])&&(_0x562ae4='DDL_DROP');}}}}}}}}return{'type':_0x562ae4,'table':_0x3df8fa};},startQueryTimer=()=>{const _0x3f69e1=a0_0x8d5d0,_0x3dc241={'vUqmJ':function(_0x19758c,_0x942240){return _0x19758c*_0x942240;},'EdqCo':function(_0x265215,_0x1d60ea){return _0x265215/_0x1d60ea;}},_0x1e7799=process[_0x3f69e1(0x145)]();return()=>{const _0x3a3519=_0x3f69e1,[_0x2575fa,_0x37c475]=process['hrtime'](_0x1e7799);return parseFloat((_0x3dc241['vUqmJ'](_0x2575fa,0x3e8)+_0x3dc241[_0x3a3519(0x1e0)](_0x37c475,0xf4240))[_0x3a3519(0x1d9)](0x2));};},logQuery=(_0x37d159,_0x3b7d9b=[],_0x4ca11a={})=>{const _0x1f4da8=a0_0x8d5d0,_0x2c43d2={'wFpcJ':_0x1f4da8(0x1bb),'pcaeD':'postgresql','AVCpC':'sql_query','BGRoP':function(_0x13b543,_0x5c02ab,_0x19f4bf){return _0x13b543(_0x5c02ab,_0x19f4bf);},'ylgGO':function(_0x13f804,_0x900059){return _0x13f804!==_0x900059;},'emIyZ':function(_0x479d21,_0x555f39){return _0x479d21||_0x555f39;},'VUyHW':function(_0xf321ec,_0xc231f9){return _0xf321ec!==_0xc231f9;},'BAmtC':_0x1f4da8(0x196),'fdAeI':function(_0x224d23,_0xed78bf){return _0x224d23===_0xed78bf;}};if(!sqlLogEnabled){logger[_0x1f4da8(0x196)]({'event':_0x2c43d2[_0x1f4da8(0x142)],'query':_0x37d159[_0x1f4da8(0x188)](0x0,0xc8),'paramCount':_0x3b7d9b['length']},'DB\x20Query');return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType=_0x2c43d2['pcaeD']}=_0x4ca11a,{type:_0x93c122,table:_0x3cc124}=parseQueryMetadata(_0x37d159),_0x2661fb={'event':_0x2c43d2['AVCpC'],'queryType':_0x93c122,'table':_0x3cc124,'query':_0x37d159,'paramCount':_0x3b7d9b['length'],'dbType':dbType};sqlLogParams&&_0x3b7d9b['length']>0x0&&(_0x2661fb['params']=_0x2c43d2['BGRoP'](redactSensitiveParams,_0x3b7d9b,_0x37d159));duration!==null&&(_0x2661fb['durationMs']=duration,_0x2661fb['isSlow']=duration>sqlLogSlowThreshold);_0x2c43d2['ylgGO'](rowsAffected,null)&&(_0x2661fb['rowsAffected']=rowsAffected);const _0x33a9ce=_0x2c43d2['emIyZ'](_0x3cc124,'unknown');let _0x10a5ef='['+_0x93c122+']\x20'+_0x33a9ce;_0x2c43d2['VUyHW'](duration,null)&&(_0x10a5ef+='\x20('+duration+_0x1f4da8(0x178));const _0x436b82=duration!==null&&duration>sqlLogSlowThreshold;let _0x2e2c47=_0x2c43d2[_0x1f4da8(0x1e2)];if(_0x436b82)_0x10a5ef+=_0x1f4da8(0x168),_0x2e2c47=_0x1f4da8(0x1f9),logger[_0x1f4da8(0x1f9)](_0x2661fb,_0x10a5ef);else _0x2c43d2['fdAeI'](sqlLogLevel,'info')?(_0x2e2c47='info',logger[_0x1f4da8(0x1e4)](_0x2661fb,_0x10a5ef)):logger[_0x1f4da8(0x196)](_0x2661fb,_0x10a5ef);_0x2c43d2[_0x1f4da8(0x159)](writeToFileLog,{..._0x2661fb,'level':_0x2e2c47,'msg':_0x10a5ef,'time':new Date()['toISOString']()},_0x2e2c47);},logTransaction=(_0x5ffa4c,_0x494449)=>{const _0x27e277=a0_0x8d5d0,_0x380471={'RmIdI':_0x27e277(0x151),'doqhL':'debug'},_0x551112={'event':_0x380471['RmIdI'],'status':_0x5ffa4c,'queryCount':_0x494449},_0x149e05='Transaction\x20'+_0x5ffa4c;logger[_0x27e277(0x196)](_0x551112,_0x149e05),writeToFileLog({..._0x551112,'level':_0x380471['doqhL'],'msg':_0x149e05,'time':new Date()['toISOString']()},_0x380471['doqhL']);},redactObject=_0x4b7b4b=>{const _0x44ab29=a0_0x8d5d0,_0x3d9489={'JYgrC':'object','KFPeM':'passwd','tSYfp':_0x44ab29(0x1ca),'vxfKq':_0x44ab29(0x16f),'YEUrv':_0x44ab29(0x1f7),'TPjUY':_0x44ab29(0x1c7),'BFObP':_0x44ab29(0x1ec),'hQzCy':_0x44ab29(0x14c),'dhWYR':'private_key','OGqYZ':_0x44ab29(0x1eb),'wTowX':function(_0x1ba43a,_0x4911ae){return _0x1ba43a!==_0x4911ae;}};if(!_0x4b7b4b||typeof _0x4b7b4b!==_0x3d9489[_0x44ab29(0x147)])return _0x4b7b4b;const _0x5eb0e6=['password',_0x3d9489['KFPeM'],_0x3d9489[_0x44ab29(0x1fc)],_0x3d9489['vxfKq'],'secret',_0x3d9489[_0x44ab29(0x15c)],_0x44ab29(0x1fa),'authorization',_0x3d9489['TPjUY'],_0x3d9489[_0x44ab29(0x1ad)],_0x44ab29(0x1f6),'ssn',_0x3d9489[_0x44ab29(0x1cf)],_0x3d9489[_0x44ab29(0x15b)],_0x3d9489[_0x44ab29(0x1cc)],'refresh_token',_0x44ab29(0x1e3)],_0x55f5c0=Array['isArray'](_0x4b7b4b)?[..._0x4b7b4b]:{..._0x4b7b4b};for(const _0x4827ef of Object['keys'](_0x55f5c0)){const _0x4609b8=_0x4827ef['toLowerCase']();if(_0x5eb0e6[_0x44ab29(0x1aa)](_0x294eea=>_0x4609b8[_0x44ab29(0x16b)](_0x294eea)))_0x55f5c0[_0x4827ef]=_0x44ab29(0x1b8);else typeof _0x55f5c0[_0x4827ef]==='object'&&_0x3d9489['wTowX'](_0x55f5c0[_0x4827ef],null)&&(_0x55f5c0[_0x4827ef]=redactObject(_0x55f5c0[_0x4827ef]));}return _0x55f5c0;},logError=(_0x36ed33,_0x3749fd={},_0x12d191=null)=>{const _0x165174=a0_0x8d5d0,_0xdaeffb={'HJVIe':'Error','ZPrEN':function(_0x4be983,_0x3bde3c,_0x7019c1){return _0x4be983(_0x3bde3c,_0x7019c1);},'TBKCr':_0x165174(0x14a)},_0x294f5b={'event':_0x165174(0x14a),'errorName':_0x36ed33['name']||_0xdaeffb[_0x165174(0x16a)],'errorMessage':_0x36ed33['message'],'errorCode':_0x36ed33[_0x165174(0x171)]||null,'stack':_0x36ed33['stack'],..._0x3749fd},_0x4ebeff=_0x12d191||_0x165174(0x17b)+_0x36ed33[_0x165174(0x189)];logger['error'](_0x294f5b,_0x4ebeff),_0xdaeffb['ZPrEN'](writeToFileLog,{..._0x294f5b,'level':_0x165174(0x14a),'msg':_0x4ebeff,'time':new Date()[_0x165174(0x1be)]()},_0xdaeffb[_0x165174(0x1e6)]);},logFatalError=(_0x461e2b,_0x199798={},_0x5b8ecc=null)=>{const _0xc49e51=a0_0x8d5d0,_0x179fe1={'YQhkU':_0xc49e51(0x163),'kgaqD':'CRITICAL','ezgei':'error'},_0x2ff0b0={'event':_0x179fe1['YQhkU'],'errorName':_0x461e2b['name']||'Error','errorMessage':_0x461e2b[_0xc49e51(0x189)],'errorCode':_0x461e2b['code']||null,'stack':_0x461e2b['stack'],'severity':_0x179fe1['kgaqD'],..._0x199798},_0x30780c=_0x5b8ecc||_0xc49e51(0x16e)+_0x461e2b['message'];logger['fatal'](_0x2ff0b0,_0x30780c),writeToFileLog({..._0x2ff0b0,'level':_0xc49e51(0x17e),'msg':_0x30780c,'time':new Date()['toISOString']()},_0x179fe1['ezgei']);},logHttpError=(_0x122452,_0x255f34,_0x2e4f8a={})=>{const _0x40b6aa=a0_0x8d5d0,_0x285611={'LblyX':_0x40b6aa(0x140),'QJhzx':_0x40b6aa(0x195),'ixIUS':function(_0x4d6658,_0x94c6e9){return _0x4d6658(_0x94c6e9);},'PLWVl':function(_0x4d8e14,_0x23baed){return _0x4d8e14>=_0x23baed;},'uNTAu':function(_0x174d1a,_0xe95848,_0x4af2ea){return _0x174d1a(_0xe95848,_0x4af2ea);},'wrOMi':_0x40b6aa(0x14a)},_0x5a2029={'event':_0x285611['LblyX'],'errorName':_0x122452['name']||_0x285611['QJhzx'],'errorMessage':_0x122452['message'],'errorCode':_0x122452['code']||_0x122452['statusCode']||0x1f4,'stack':_0x122452['stack'],'method':_0x255f34?.[_0x40b6aa(0x194)],'url':_0x255f34?.[_0x40b6aa(0x1a1)]||_0x255f34?.[_0x40b6aa(0x18f)],'path':_0x255f34?.[_0x40b6aa(0x1e9)],'ip':_0x255f34?.['ip']||_0x255f34?.['connection']?.['remoteAddress'],'userAgent':_0x255f34?.['get']?.('user-agent'),'requestId':_0x255f34?.['id']||_0x255f34?.['headers']?.['x-request-id'],'body':_0x255f34?.[_0x40b6aa(0x1d3)]?_0x285611[_0x40b6aa(0x174)](redactObject,_0x255f34['body']):undefined,'query':_0x255f34?.[_0x40b6aa(0x1d1)],..._0x2e4f8a},_0x17dcc4=_0x122452[_0x40b6aa(0x1c1)]||_0x122452['status']||0x1f4,_0x5611c2=_0x40b6aa(0x1af)+_0x17dcc4+':\x20'+_0x122452['message'];_0x285611[_0x40b6aa(0x156)](_0x17dcc4,0x1f4)?logger[_0x40b6aa(0x14a)](_0x5a2029,_0x5611c2):logger['warn'](_0x5a2029,_0x5611c2),_0x285611[_0x40b6aa(0x1ac)](writeToFileLog,{..._0x5a2029,'level':_0x17dcc4>=0x1f4?_0x285611[_0x40b6aa(0x173)]:_0x40b6aa(0x1f9),'msg':_0x5611c2,'time':new Date()['toISOString']()},_0x17dcc4>=0x1f4?_0x285611['wrOMi']:_0x40b6aa(0x1f9));},logUncaughtError=(_0x54a9ad,_0x15148f)=>{const _0xb32edd=a0_0x8d5d0,_0x1a4eec={'BTVvy':'Error','flhHc':function(_0x4675a1,_0x14f114,_0x42b949){return _0x4675a1(_0x14f114,_0x42b949);},'DopGN':_0xb32edd(0x17e),'VpNqe':'error'},_0x39ba27={'event':_0x54a9ad,'errorName':_0x15148f?.['name']||_0x1a4eec[_0xb32edd(0x181)],'errorMessage':_0x15148f?.[_0xb32edd(0x189)]||String(_0x15148f),'errorCode':_0x15148f?.[_0xb32edd(0x171)]||null,'stack':_0x15148f?.[_0xb32edd(0x1bf)],'severity':_0xb32edd(0x18b),'processId':process[_0xb32edd(0x14d)],'memoryUsage':process['memoryUsage'](),'uptime':process['uptime']()},_0x51904b='['+_0x54a9ad[_0xb32edd(0x1b9)]()+']\x20'+(_0x15148f?.['message']||_0x15148f);logger['fatal'](_0x39ba27,_0x51904b),_0x1a4eec[_0xb32edd(0x150)](writeToFileLog,{..._0x39ba27,'level':_0x1a4eec[_0xb32edd(0x1da)],'msg':_0x51904b,'time':new Date()[_0xb32edd(0x1be)]()},_0x1a4eec[_0xb32edd(0x190)]);},setupGlobalErrorHandlers=()=>{const _0x297926=a0_0x8d5d0,_0x247053={'fijIP':function(_0x2086fd,_0x2a87cf,_0x44704f){return _0x2086fd(_0x2a87cf,_0x44704f);},'qCOfa':_0x297926(0x170),'cOSiY':'global_error_handlers_setup','gmSlC':_0x297926(0x1b4),'JeyGR':_0x297926(0x1e4)};process['on'](_0x297926(0x1f1),_0x45e775=>{const _0x4faaef=_0x297926;_0x247053[_0x4faaef(0x144)](logUncaughtError,_0x4faaef(0x1f1),_0x45e775),setTimeout(()=>{process['exit'](0x1);},0x3e8);}),process['on'](_0x247053[_0x297926(0x1e8)],(_0x33556a,_0x367f74)=>{const _0x495b68=_0x297926,_0x1e6d7f=_0x33556a instanceof Error?_0x33556a:new Error(String(_0x33556a));_0x247053[_0x495b68(0x144)](logUncaughtError,_0x247053['qCOfa'],_0x1e6d7f);}),process['on'](_0x297926(0x17f),_0x4957f2=>{const _0x5a8180=_0x297926;logger['warn']({'event':_0x5a8180(0x14b),'name':_0x4957f2[_0x5a8180(0x175)],'message':_0x4957f2['message'],'stack':_0x4957f2['stack']},_0x5a8180(0x193)+_0x4957f2[_0x5a8180(0x189)]);});const _0x4e83c8={'event':_0x247053['cOSiY']},_0x264b37=_0x247053['gmSlC'];logger[_0x297926(0x1e4)](_0x4e83c8,_0x264b37),_0x247053[_0x297926(0x144)](writeToFileLog,{..._0x4e83c8,'level':_0x247053[_0x297926(0x176)],'msg':_0x264b37,'time':new Date()['toISOString']()},_0x247053['JeyGR']);},createErrorHandlerMiddleware=()=>{return(_0x352383,_0x28f82c,_0x4fb2c7,_0x3d03f6)=>{const _0x119ee8=a0_0x10d7;logHttpError(_0x352383,_0x28f82c);const _0xdf463d=_0x352383[_0x119ee8(0x1c1)]||_0x352383[_0x119ee8(0x1b2)]||0x1f4;_0x4fb2c7[_0x119ee8(0x1b2)](_0xdf463d)[_0x119ee8(0x1d8)]({'success':![],'error':_0xdf463d>=0x1f4?'Internal\x20server\x20error':_0x352383[_0x119ee8(0x189)],'requestId':_0x28f82c['id']||_0x28f82c[_0x119ee8(0x1dc)]?.['x-request-id']||null});};};module[a0_0x8d5d0(0x152)]={'logger':logger,'createRequestLogger':createRequestLogger,'logServerStart':logServerStart,'logServerReady':logServerReady,'logProjectLoaded':logProjectLoaded,'logEndpointRegistered':logEndpointRegistered,'logDatabaseConfig':logDatabaseConfig,'logRequest':logRequest,'logQuery':logQuery,'logTransaction':logTransaction,'startQueryTimer':startQueryTimer,'parseQueryMetadata':parseQueryMetadata,'redactSensitiveParams':redactSensitiveParams,'initFileLogging':initFileLogging,'logError':logError,'logFatalError':logFatalError,'logHttpError':logHttpError,'logUncaughtError':logUncaughtError,'setupGlobalErrorHandlers':setupGlobalErrorHandlers,'createErrorHandlerMiddleware':createErrorHandlerMiddleware,'redactObject':redactObject,'SQL_LOG_CONFIG':{'enabled':sqlLogEnabled,'level':sqlLogLevel,'logParams':sqlLogParams,'slowThreshold':sqlLogSlowThreshold},'FILE_LOG_CONFIG':{'enabled':logToFile,'directory':logDir,'serviceName':serviceName}};
1
+ const a0_0x1f7e7c=a0_0x3736;(function(_0x2ca2d8,_0x4dc6bf){const _0x586b6e=a0_0x3736,_0x15cb27=_0x2ca2d8();while(!![]){try{const _0x3932fa=parseInt(_0x586b6e(0xda))/0x1+-parseInt(_0x586b6e(0x13a))/0x2*(-parseInt(_0x586b6e(0xd1))/0x3)+-parseInt(_0x586b6e(0x107))/0x4+-parseInt(_0x586b6e(0x113))/0x5+-parseInt(_0x586b6e(0xdc))/0x6*(-parseInt(_0x586b6e(0x15f))/0x7)+-parseInt(_0x586b6e(0x136))/0x8*(parseInt(_0x586b6e(0xd0))/0x9)+parseInt(_0x586b6e(0x142))/0xa;if(_0x3932fa===_0x4dc6bf)break;else _0x15cb27['push'](_0x15cb27['shift']());}catch(_0x50d896){_0x15cb27['push'](_0x15cb27['shift']());}}}(a0_0x1266,0xb7177));const pino=require(a0_0x1f7e7c(0x143)),fs=require('fs'),path=require(a0_0x1f7e7c(0x174));function a0_0x3736(_0x6f716f,_0x46d07e){_0x6f716f=_0x6f716f-0xc3;const _0x12661b=a0_0x1266();let _0x37369a=_0x12661b[_0x6f716f];if(a0_0x3736['LSsYZs']===undefined){var _0x5e78ca=function(_0x25d2ea){const _0x52e235='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x237f41='',_0x278f4c='';for(let _0x4f4ae5=0x0,_0x1a8d50,_0x33faa2,_0x596261=0x0;_0x33faa2=_0x25d2ea['charAt'](_0x596261++);~_0x33faa2&&(_0x1a8d50=_0x4f4ae5%0x4?_0x1a8d50*0x40+_0x33faa2:_0x33faa2,_0x4f4ae5++%0x4)?_0x237f41+=String['fromCharCode'](0xff&_0x1a8d50>>(-0x2*_0x4f4ae5&0x6)):0x0){_0x33faa2=_0x52e235['indexOf'](_0x33faa2);}for(let _0x5967dc=0x0,_0x136508=_0x237f41['length'];_0x5967dc<_0x136508;_0x5967dc++){_0x278f4c+='%'+('00'+_0x237f41['charCodeAt'](_0x5967dc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x278f4c);};a0_0x3736['yezIDQ']=_0x5e78ca,a0_0x3736['YswFRO']={},a0_0x3736['LSsYZs']=!![];}const _0x12a728=_0x12661b[0x0],_0x2912e1=_0x6f716f+_0x12a728,_0x504912=a0_0x3736['YswFRO'][_0x2912e1];return!_0x504912?(_0x37369a=a0_0x3736['yezIDQ'](_0x37369a),a0_0x3736['YswFRO'][_0x2912e1]=_0x37369a):_0x37369a=_0x504912,_0x37369a;}let logToFile=![],logDir=a0_0x1f7e7c(0xe3),serviceName=a0_0x1f7e7c(0xf9),sqlLogEnabled=![],sqlLogLevel='debug',sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;const prettyPrintOptions={'colorize':!![],'translateTime':'SYS:HH:MM:ss','ignore':'pid,hostname,service,version,env,event,module,port,config,apiKeyEnabled,path,workingDir,isPkg,isNodeScript,file,email,type,cors,logging,apiKey,count,endpoint,route','singleLine':![],'levelFirst':!![],'messageFormat':a0_0x1f7e7c(0xea),'customColors':'info:blue,warn:yellow,error:red,debug:gray','hideObject':!![]},isDevelopment=process['env']['NODE_ENV']!==a0_0x1f7e7c(0x12c),logLevel=process['env'][a0_0x1f7e7c(0x153)]||'info';function a0_0x1266(){const _0x400d65=['B2jQzwn0','B3jPz2LUywXvCMW','BNnVq0e','zxHPC3rZu3LUyW','te9hx0XfvKvm','C3rHCNrZv2L0Aa','sLDux1nfq1jfva','CgfZC3DVCMq','CgLUBY1WCMv0DhK','ALfLDMe','w09lxsbtzxj2zxiGCMvHzhKGB24GCg9YDca','zgv2zwXVCg1LBNq','qunusvzf','r2XVyMfSigvYCM9YigHHBMrSzxjZigLUAxrPywXPEMvK','C3Lnt2C','ug14wgS','nZiXCMTICeXW','zfL6Ewu','BwvZC2fNzq','C0zlDve','q1jfqvrf','BwfW','C3rHy2S','rvLXu1K','Ec1Yzxf1zxn0lwLK','w1jfrefdveveoMHHC2HD','CMvXlMHLywrLCNmUyxv0Ag9YAxPHDgLVBG','wuLTrfq','vhjHBNnHy3rPB24G','u0vmrunu','zMf0ywW','BurNufK','vfjbtLnbq1rjt05FqKvhsu4','q1jjveLdquW','Ahj0Aw1L','rMLSzsbSB2DNAw5NigvUywjSzwq6ia','CMvXlMHLywrLCNnBiNGTyxbPlwTLEsjD','Cgf0Aa','D3jPDgu','DxnLCI1Hz2vUDa','CMvTB3rLqwrKCMvZCW','zhf6rgy','z2zABvy','rxjYB3i6ia','Bwv0Ag9K','t3HcEuO','w1jfrefdvevexq','Dg9ju09tDhjPBMC','Dg9vChbLCKnHC2u','A2jSEum','C2vYDMvYx3jLywr5','C2vJCMv0','C3rKvgLTzuz1BMn0Aw9UCW','Dxb0Aw1L','u3DtzfK','D2fYBG','C2vYDMLJzuLUzM8','CvrQEey','w09lxsbqCM9Qzwn0igXVywrLzdOG','zgvIDwC','nda0ntC3r2rprxLv','nti0mda3EMr2uKTm','wvjuEfm','y0Pwvfy','q2PYz1e','y3jLzgL0x2nHCMq','BKjhBe4','ic0G','CxzOAw4','ywnJzxnZx3rVA2vU','mJq2nJaWBgHzvKjf','zhvfrwu','ntm2odHetfnvA20','Cg9YDa','uK9mtejbq0S','qMTuwNy','wLjHufy','ChjVy2vZC193yxjUAw5N','tLDMu0m','lI9SB2DZ','ChjPDMf0zv9RzxK','wLrutLe','te9hx1rpx0zjteu','zw52','Ag9ZDa','Aw5JBhvKzxm','E21Zz30','su5trvju','BwTKAxjtEw5J','zxjY','Dw5Oyw5KBgvKuMvQzwn0Aw9U','AgvHBhrOq2HLy2S','zMfSC2u','rejFueftu1DpuKq','sg5Vve4','Bg9N','Bwf0y2G','y3DK','zgf0ywjHC2vFy29UzMLN','Ahr0Cf9Yzxf1zxn0','rermx0nsrufurq','CMvZDgzVCMDL','iokvKqRILzRILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILz0','Dg9mB3DLCKnHC2u','yxv0Ag9YAxPHDgLVBG','ChDK','wgP3Dem','Cwfnvve','y3jLzgvUDgLHBa','BMXwywi','cUkvLokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvLWRILzeGicaGicaGicaGicaGifjfu1rgt1jhrsbsvu5usu1fifnfuLzfuIaGicaGicaGicaGicaGicaG4PwrcUkvOokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvOWRILzeGievUDMLYB25Tzw50idOG','vxv5zw8','yxbWlMXVzW','tK9erv9ftLy','t3DPzfC','nteYnZyYmfr5DfPXzq','Dw5JyxvNAhrfEgnLChrPB24','C3rHDhvZ','rermx0fmvevs','yK1dy0q','BeTPsLK','zxjYB3i','yxbPs2v5','zMf0ywXFzxjYB3i','vuPhz08','CgfZC3DK','CM93C0fMzMvJDgvK','nJuXodKWnxDWAgnAtq','y3jLzgvUDgLHBhm','BMfTzq','ChjVAMvJDf9SB2fKzwq','iokvKqRILzeGifbVCNqGicaGicaGidOG','rMfPBgvKihrVignYzwf0zsbSB2CGC3rYzwfTCZO','zxHWB3j0CW','uhjVy2vZCYbxyxjUAw5NoIa','vvbeqvrf','rfjpua','vfjbtLnbq1rjt05Fq09ntuLu','DKT0zuG','t0ftsgS','iokvKqRILzeGiefqssblzxKGicaGidOG','Ahr0Cf9LCNjVCG','iokvKqRILzeGienVBMzPzYaGicaGidOG','A2v5CW','reL0q2W','y3jLyxrLv3jPDgvtDhjLyw0','yMfZzvvYBa','BgvUz3rO','CgLU','zgf0ywjHC2u','tI9b','y29UzMLNrMLSzq','ChjVzhvJDgLVBG','u1fmx0Xpr19mrvzfta','CgfKrw5K','DgvZDa','y29Kzq','DxnLCG','Dg9gAxHLza','C3nU','BxmP','Aw5MBW','ofzRwKTdBW','q21Avgm','vuPoww8','rxjYB3i','mtbTEuPrDfe','revmrvrf','uvHhDhq','C29Tzq','reiGuxvLCNK','C3rHDhvZq29Kzq','tLrpruW','CMvWBgfJzq','mtmZodK5mZbbDe5xrxG','CgLUBW','CgfYyw1Z','DhjPBq','zgjFCxvLCNK','C3rKu2vYAwfSAxPLCNm','tK9uiefdveLwrq','ifTtte9xxq','z2v0sgvHzgvYCW','ChjVAMvJDa','ChjPDMf0zwTLEq','CMvMCMvZAf90B2TLBG','icdIHPiG'];a0_0x1266=function(){return _0x400d65;};return a0_0x1266();}let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':a0_0x1f7e7c(0x157),'options':prettyPrintOptions}:undefined,'base':{'service':'restforge','version':process['env']['APP_VERSION']||'1.0.5','env':process[a0_0x1f7e7c(0xe7)][a0_0x1f7e7c(0x105)]||a0_0x1f7e7c(0x15a)},'timestamp':pino[a0_0x1f7e7c(0xc8)]['isoTime'],'redact':{'paths':[a0_0x1f7e7c(0x169),a0_0x1f7e7c(0x173),'password','token',a0_0x1f7e7c(0x10e),a0_0x1f7e7c(0xf1),a0_0x1f7e7c(0x155)],'censor':'[REDACTED]'},'serializers':{'req':_0x12779f=>({'id':_0x12779f['id'],'method':_0x12779f['method'],'url':_0x12779f['url'],'path':_0x12779f[a0_0x1f7e7c(0x174)],'remoteAddress':_0x12779f['ip']||_0x12779f['connection']?.['remoteAddress']}),'res':_0x5016d9=>({'statusCode':_0x5016d9[a0_0x1f7e7c(0x13f)],'headers':_0x5016d9[a0_0x1f7e7c(0x14a)]?.()}),'err':pino[a0_0x1f7e7c(0x147)][a0_0x1f7e7c(0xed)]}});function initFileLogging(){const _0x1cf8b6=a0_0x1f7e7c,_0x52e5d2={'YbKHP':_0x1cf8b6(0xe3),'UJNYo':'restforge','faFcR':function(_0x408868,_0x1e81b1){return _0x408868===_0x1e81b1;},'UJGgO':'debug','jQeva':'error.log','gfZmV':function(_0x54bffb,_0x4c6d69,_0x3d3bda){return _0x54bffb(_0x4c6d69,_0x3d3bda);}};if(fileLoggingInitialized)return;logToFile=process['env'][_0x1cf8b6(0xe6)]==='true',logDir=process[_0x1cf8b6(0xe7)]['LOG_DIR']||_0x52e5d2['YbKHP'],serviceName=process['env']['SERVICE_NAME']||_0x52e5d2[_0x1cf8b6(0x138)],sqlLogEnabled=_0x52e5d2['faFcR'](process['env']['SQL_LOG_ENABLED'],'true'),sqlLogLevel=process[_0x1cf8b6(0xe7)][_0x1cf8b6(0x12d)]||_0x52e5d2[_0x1cf8b6(0x110)],sqlLogParams=process[_0x1cf8b6(0xe7)]['SQL_LOG_PARAMS']!==_0x1cf8b6(0xf0),sqlLogSlowThreshold=parseInt(process['env']['SQL_LOG_SLOW_THRESHOLD'])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x3a6684=path['resolve'](process[_0x1cf8b6(0xf5)](),logDir);try{!fs[_0x1cf8b6(0x152)](_0x3a6684)&&fs[_0x1cf8b6(0xec)](_0x3a6684,{'recursive':!![]});}catch(_0x37a152){console[_0x1cf8b6(0x10d)]('Failed\x20to\x20create\x20log\x20directory\x20'+_0x3a6684+':',_0x37a152[_0x1cf8b6(0x161)]),fileLoggingInitialized=!![];return;}const _0x4cc07e=path['join'](_0x3a6684,_0x1cf8b6(0x104)),_0x1565e9=path['join'](_0x3a6684,_0x52e5d2[_0x1cf8b6(0x158)]);try{appLogStream=fs[_0x1cf8b6(0x125)](_0x4cc07e,{'flags':'a'}),errorLogStream=fs['createWriteStream'](_0x1565e9,{'flags':'a'}),fileLoggingInitialized=!![];const _0x8e2301={'event':'file_logging_enabled','logDir':_0x3a6684,'files':[_0x1cf8b6(0x104),'error.log']},_0x500d85=_0x1cf8b6(0x172)+_0x3a6684;logger['info'](_0x8e2301,_0x500d85),_0x52e5d2[_0x1cf8b6(0x179)](writeToFileLog,{..._0x8e2301,'level':'info','msg':_0x500d85,'time':new Date()[_0x1cf8b6(0xc3)]()},'info');}catch(_0x249e6c){console[_0x1cf8b6(0x10d)](_0x1cf8b6(0x118),_0x249e6c[_0x1cf8b6(0x161)]),fileLoggingInitialized=!![];}}function writeToFileLog(_0x3b698a,_0x7618ae){const _0x4ab201=a0_0x1f7e7c,_0x50c51a={'ipoeF':'error','syMOg':_0x4ab201(0x16d)};if(!logToFile||!appLogStream)return;const _0x4f6ed0={'service':serviceName,..._0x3b698a},_0x53a959=JSON['stringify'](_0x4f6ed0)+'\x0a';appLogStream[_0x4ab201(0x175)](_0x53a959),(_0x7618ae===_0x50c51a['ipoeF']||_0x7618ae===_0x50c51a[_0x4ab201(0x15d)])&&(errorLogStream&&errorLogStream['write'](_0x53a959));}const createRequestLogger=(_0x5f1b8d={})=>{return logger['child'](_0x5f1b8d);},logServerStart=_0x3d5234=>{const _0x29ffda=a0_0x1f7e7c,_0x2fd62a={'SZgIn':'Node.js','Shibd':'Default','bBLdI':_0x29ffda(0x15b),'LVDZY':_0x29ffda(0x148),'cJVTV':function(_0x44ff1f,_0x1f7251,_0x27a725){return _0x44ff1f(_0x1f7251,_0x27a725);},'NxXLD':'info'},_0x26e676=_0x29ffda(0x102)+(_0x3d5234['environment']||_0x2fd62a['SZgIn'])['padEnd'](0x26)+'\x20║\x0a║\x20\x20Project\x20\x20\x20\x20\x20:\x20'+(_0x3d5234['project']||_0x29ffda(0x12a))['padEnd'](0x26)+_0x29ffda(0x117)+String(_0x3d5234['port']||0xbb8)[_0x29ffda(0x12e)](0x26)+_0x29ffda(0x122)+(_0x3d5234[_0x29ffda(0x12b)]||_0x2fd62a['Shibd'])[_0x29ffda(0x12e)](0x26)+_0x29ffda(0x120)+(_0x3d5234['apiKey']?_0x2fd62a['bBLdI']:_0x2fd62a['LVDZY'])[_0x29ffda(0x12e)](0x26)+_0x29ffda(0xfa);console[_0x29ffda(0xf3)](_0x26e676);const _0x2f2449={'event':'server_starting','project':_0x3d5234['project'],'port':_0x3d5234[_0x29ffda(0xdd)],'config':_0x3d5234['configFile'],'apiKeyEnabled':!!_0x3d5234[_0x29ffda(0x10e)]};logger['info'](_0x2f2449),_0x2fd62a[_0x29ffda(0xd3)](writeToFileLog,{..._0x2f2449,'level':'info','msg':'Server\x20starting:\x20'+_0x3d5234[_0x29ffda(0x14b)]+'\x20on\x20port\x20'+_0x3d5234[_0x29ffda(0xdd)],'time':new Date()[_0x29ffda(0xc3)]()},_0x2fd62a['NxXLD']);},logServerReady=_0x2a1aa0=>{const _0x209d1c=a0_0x1f7e7c,_0x1284e5={'UFVEF':_0x209d1c(0xc6),'IKYjF':function(_0x449799,_0x4c4434,_0x484bdf){return _0x449799(_0x4c4434,_0x484bdf);},'CmZTc':_0x209d1c(0x135)},_0x372b05={'event':_0x1284e5['UFVEF'],'port':_0x2a1aa0['port'],'module':_0x2a1aa0['module'],'healthCheck':_0x2a1aa0['healthCheck'],'serviceInfo':_0x2a1aa0['serviceInfo'],'baseUrl':_0x2a1aa0[_0x209d1c(0x126)]},_0x1eeaaf=_0x209d1c(0x159)+_0x2a1aa0['port'];logger['info'](_0x372b05,_0x1eeaaf),_0x1284e5['IKYjF'](writeToFileLog,{..._0x372b05,'level':_0x1284e5['CmZTc'],'msg':_0x1eeaaf,'time':new Date()[_0x209d1c(0xc3)]()},_0x1284e5[_0x209d1c(0x137)]),_0x2a1aa0[_0x209d1c(0xef)]&&logger['info']('\x20\x20Health:\x20'+_0x2a1aa0[_0x209d1c(0xef)]),_0x2a1aa0[_0x209d1c(0xcc)]&&logger[_0x209d1c(0x135)]('\x20\x20Info:\x20\x20\x20'+_0x2a1aa0[_0x209d1c(0xcc)]),_0x2a1aa0[_0x209d1c(0x126)]&&logger[_0x209d1c(0x135)]('\x20\x20URL:\x20\x20\x20\x20'+_0x2a1aa0['baseUrl']);},logProjectLoaded=(_0x76b0b6,_0x4196c5)=>{const _0x23d668=a0_0x1f7e7c,_0x1e4ea8={'YImDT':function(_0x1759f1,_0x343fab,_0xb0c954){return _0x1759f1(_0x343fab,_0xb0c954);},'HnoTN':'info'},_0x339fe2={'event':_0x23d668(0x116),'project':_0x76b0b6,'path':_0x4196c5},_0x4b7c5c=_0x23d668(0xce)+_0x76b0b6;logger['info'](_0x339fe2,_0x4b7c5c),_0x1e4ea8[_0x23d668(0x16a)](writeToFileLog,{..._0x339fe2,'level':_0x1e4ea8['HnoTN'],'msg':_0x4b7c5c,'time':new Date()[_0x23d668(0xc3)]()},_0x1e4ea8[_0x23d668(0xf2)]);},logEndpointRegistered=(_0xf94904,_0x474fc6)=>{const _0x58d7d4=a0_0x1f7e7c,_0x27f077={'event':'endpoint_registered','endpoint':_0xf94904,'route':_0x474fc6},_0x581c81=_0x58d7d4(0x14e)+_0xf94904+':\x20'+_0x474fc6;logger['debug'](_0x27f077,_0x581c81),writeToFileLog({..._0x27f077,'level':_0x58d7d4(0xcf),'msg':_0x581c81,'time':new Date()[_0x58d7d4(0xc3)]()},_0x58d7d4(0xcf));},logDatabaseConfig=_0x15a342=>{const _0x361554=a0_0x1f7e7c,_0x158eb5={'qyYYQ':function(_0x1042ca,_0x1e5f4c,_0x5d3fd8){return _0x1042ca(_0x1e5f4c,_0x5d3fd8);},'ktdQs':'debug'},_0x133e25={'event':_0x361554(0xf6),'host':_0x15a342['host'],'port':_0x15a342[_0x361554(0xdd)],'database':_0x15a342[_0x361554(0x129)],'type':_0x15a342['type'],'user':_0x15a342[_0x361554(0x131)]},_0x34e136='Database:\x20'+_0x15a342['type']+'://'+_0x15a342[_0x361554(0xe8)]+':'+_0x15a342[_0x361554(0xdd)]+'/'+_0x15a342[_0x361554(0x129)];logger['debug'](_0x133e25,_0x34e136),_0x158eb5['qyYYQ'](writeToFileLog,{..._0x133e25,'level':_0x158eb5['ktdQs'],'msg':_0x34e136,'time':new Date()['toISOString']()},_0x158eb5['ktdQs']);},logRequest=(_0x324938,_0x4c6a5c,_0x514f95)=>{const _0x7c21ee=a0_0x1f7e7c,_0x3a8fe0={'rNKmz':_0x7c21ee(0xf7),'OeePu':_0x7c21ee(0x135),'NTOEL':function(_0x5d60ed,_0x1a3cbd){return _0x5d60ed>=_0x1a3cbd;},'MFqUh':function(_0xcb2792,_0x37b7b7){return _0xcb2792>=_0x37b7b7;},'OxByJ':_0x7c21ee(0xcb),'ZTTNQ':function(_0x5e9ee0,_0x36bc20,_0x253026){return _0x5e9ee0(_0x36bc20,_0x253026);}},_0x48415b={'event':_0x3a8fe0['rNKmz'],'method':_0x324938['method'],'path':_0x324938[_0x7c21ee(0x174)],'statusCode':_0x4c6a5c[_0x7c21ee(0x13f)],'durationMs':_0x514f95,'ip':_0x324938['ip']},_0x28eef5=_0x324938[_0x7c21ee(0x17b)]+'\x20'+_0x324938['path']+_0x7c21ee(0xd7)+_0x4c6a5c[_0x7c21ee(0x13f)]+'\x20('+_0x514f95+'ms)';let _0x1d8bdb=_0x3a8fe0['OeePu'];if(_0x3a8fe0[_0x7c21ee(0x140)](_0x4c6a5c['statusCode'],0x1f4))_0x1d8bdb='error',logger['error'](_0x48415b,_0x28eef5);else _0x3a8fe0['MFqUh'](_0x4c6a5c[_0x7c21ee(0x13f)],0x190)?(_0x1d8bdb=_0x3a8fe0[_0x7c21ee(0x17c)],logger[_0x7c21ee(0xcb)](_0x48415b,_0x28eef5)):logger[_0x7c21ee(0x135)](_0x48415b,_0x28eef5);_0x3a8fe0[_0x7c21ee(0xe5)](writeToFileLog,{..._0x48415b,'level':_0x1d8bdb,'msg':_0x28eef5,'time':new Date()[_0x7c21ee(0xc3)]()},_0x1d8bdb);},SENSITIVE_PARAM_PATTERNS=[a0_0x1f7e7c(0x156),a0_0x1f7e7c(0x111),a0_0x1f7e7c(0xfd),'token',a0_0x1f7e7c(0xd9),'refresh_token',a0_0x1f7e7c(0xc7),'api_secret','apikey','api_key',a0_0x1f7e7c(0x100),a0_0x1f7e7c(0x114),'pin','otp','private_key',a0_0x1f7e7c(0x14c)],redactSensitiveParams=(_0x2c0535,_0x3df95b)=>{const _0x205891=a0_0x1f7e7c,_0x4a1601={'mDgPY':_0x205891(0x17d),'ZUGCm':function(_0x1b2cfa,_0x31eb99){return _0x1b2cfa===_0x31eb99;},'DItCl':function(_0x119a6d,_0x3f039f){return _0x119a6d>_0x3f039f;},'wHgjz':'[REDACTED:token]','BkTZv':_0x205891(0x168)};if(!_0x2c0535||_0x2c0535[_0x205891(0x127)]===0x0)return _0x2c0535;const _0x4a0254=_0x3df95b['toLowerCase'](),_0x4b520b=_0x4a0254['match'](/\(([^)]+)\)\s*values/i);let _0x53b92f=[];_0x4b520b&&(_0x53b92f=_0x4b520b[0x1]['split'](',')['map'](_0x4cb9fd=>_0x4cb9fd['trim']()[_0x205891(0xfb)]()));const _0x23d4be=_0x4a0254['match'](/set\s+(.+?)(?:\s+where|$)/i);if(_0x23d4be){const _0x3e1ccb=_0x23d4be[0x1],_0x3937a9=_0x3e1ccb['match'](/(\w+)\s*=/g);_0x3937a9&&(_0x53b92f=_0x3937a9['map'](_0x323eca=>_0x323eca[_0x205891(0x141)](/\s*=/,'')[_0x205891(0x145)]()[_0x205891(0xfb)]()));}return _0x2c0535[_0x205891(0x164)]((_0x23731f,_0x2d2d06)=>{const _0x3a9e2b=_0x205891;if(_0x53b92f[_0x2d2d06]){const _0x2c294e=_0x53b92f[_0x2d2d06],_0x3ab83f=SENSITIVE_PARAM_PATTERNS['some'](_0x1c3ce7=>_0x2c294e['includes'](_0x1c3ce7));if(_0x3ab83f)return _0x4a1601[_0x3a9e2b(0x16e)];}if(_0x4a1601['ZUGCm'](typeof _0x23731f,'string')&&_0x4a1601[_0x3a9e2b(0x124)](_0x23731f[_0x3a9e2b(0x127)],0x20)){if(/^[a-zA-Z0-9+/=_.-]+$/[_0x3a9e2b(0x12f)](_0x23731f)&&_0x23731f[_0x3a9e2b(0xe9)]('.'))return _0x4a1601['wHgjz'];if(/^[a-fA-F0-9]{32,}$/[_0x3a9e2b(0x12f)](_0x23731f))return _0x4a1601[_0x3a9e2b(0xdf)];}return _0x23731f;});},parseQueryMetadata=_0xedd75e=>{const _0x2f1e88=a0_0x1f7e7c,_0x4cb1b7={'lzcDo':'UNKNOWN','YfbiK':_0x2f1e88(0x16c),'bMCcD':'UPDATE','YRTxS':_0x2f1e88(0x13b),'mzwyl':_0x2f1e88(0x16f),'CjrgQ':'COMMIT','dqzDf':_0x2f1e88(0x163),'PmxXk':'ALTER','TYgeC':_0x2f1e88(0x11c),'kblyC':'DDL_DROP'},_0x3efad7=_0xedd75e['trim'](),_0x17acb2=_0x3efad7[_0x2f1e88(0xc4)]();let _0x2defa2=_0x4cb1b7['lzcDo'],_0x1ae1cf=null;if(_0x17acb2['startsWith'](_0x4cb1b7['YfbiK'])){_0x2defa2=_0x2f1e88(0x16c);const _0x56dfaa=_0x3efad7['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x1ae1cf=_0x56dfaa?_0x56dfaa[0x1]:null;}else{if(_0x17acb2[_0x2f1e88(0x154)](_0x2f1e88(0xeb))){_0x2defa2=_0x2f1e88(0xeb);const _0x225113=_0x3efad7[_0x2f1e88(0xf4)](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x1ae1cf=_0x225113?_0x225113[0x1]:null;}else{if(_0x17acb2['startsWith'](_0x4cb1b7[_0x2f1e88(0x10b)])){_0x2defa2=_0x2f1e88(0x11b);const _0x545b83=_0x3efad7['match'](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x1ae1cf=_0x545b83?_0x545b83[0x1]:null;}else{if(_0x17acb2['startsWith'](_0x2f1e88(0x13b))){_0x2defa2=_0x4cb1b7[_0x2f1e88(0xd2)];const _0x40b015=_0x3efad7[_0x2f1e88(0xf4)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x1ae1cf=_0x40b015?_0x40b015[0x1]:null;}else{if(_0x17acb2['startsWith']('BEGIN')||_0x17acb2[_0x2f1e88(0x154)]('START\x20TRANSACTION'))_0x2defa2=_0x4cb1b7['mzwyl'];else{if(_0x17acb2[_0x2f1e88(0x154)](_0x4cb1b7[_0x2f1e88(0xd4)]))_0x2defa2=_0x2f1e88(0x11d);else{if(_0x17acb2[_0x2f1e88(0x154)](_0x2f1e88(0xde)))_0x2defa2='TRANSACTION_ROLLBACK';else{if(_0x17acb2[_0x2f1e88(0x154)](_0x4cb1b7[_0x2f1e88(0x178)]))_0x2defa2=_0x2f1e88(0xf8);else{if(_0x17acb2['startsWith'](_0x4cb1b7[_0x2f1e88(0x15e)]))_0x2defa2=_0x2f1e88(0x10a);else _0x17acb2[_0x2f1e88(0x154)](_0x4cb1b7['TYgeC'])&&(_0x2defa2=_0x4cb1b7[_0x2f1e88(0xc5)]);}}}}}}}}return{'type':_0x2defa2,'table':_0x1ae1cf};},startQueryTimer=()=>{const _0x4e5e60=a0_0x1f7e7c,_0xb98da8={'OrFoK':function(_0x325231,_0x2404a0){return _0x325231+_0x2404a0;}},_0x51db79=process[_0x4e5e60(0x171)]();return()=>{const _0x538d7d=_0x4e5e60,[_0x5bb863,_0x26de9]=process['hrtime'](_0x51db79);return parseFloat(_0xb98da8['OrFoK'](_0x5bb863*0x3e8,_0x26de9/0xf4240)[_0x538d7d(0x132)](0x2));};},logQuery=(_0x192c4c,_0x4096b2=[],_0x4575b0={})=>{const _0x2e30db=a0_0x1f7e7c,_0xe75022={'qaMUQ':_0x2e30db(0x146),'EYqSY':function(_0x14a981,_0xa814c7){return _0x14a981!==_0xa814c7;},'TdLgS':function(_0x5304fe,_0x10ebdf){return _0x5304fe||_0x10ebdf;},'NWfSC':'unknown','qTjxF':function(_0x140535,_0x557b2b){return _0x140535!==_0x557b2b;},'CtjhA':_0x2e30db(0x149),'pSzwL':_0x2e30db(0xcb)};if(!sqlLogEnabled){logger['debug']({'event':_0xe75022[_0x2e30db(0xff)],'query':_0x192c4c['substring'](0x0,0xc8),'paramCount':_0x4096b2['length']},_0x2e30db(0x13e));return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType='postgresql'}=_0x4575b0,{type:_0x24adfa,table:_0x2bad19}=parseQueryMetadata(_0x192c4c),_0x50f234={'event':'sql_query','queryType':_0x24adfa,'table':_0x2bad19,'query':_0x192c4c,'paramCount':_0x4096b2['length'],'dbType':dbType};sqlLogParams&&_0x4096b2[_0x2e30db(0x127)]>0x0&&(_0x50f234[_0x2e30db(0x144)]=redactSensitiveParams(_0x4096b2,_0x192c4c));_0xe75022[_0x2e30db(0x166)](duration,null)&&(_0x50f234['durationMs']=duration,_0x50f234['isSlow']=duration>sqlLogSlowThreshold);_0xe75022['EYqSY'](rowsAffected,null)&&(_0x50f234[_0x2e30db(0x112)]=rowsAffected);const _0x167615=_0xe75022['TdLgS'](_0x2bad19,_0xe75022[_0x2e30db(0xe2)]);let _0x260d35='['+_0x24adfa+']\x20'+_0x167615;_0xe75022['EYqSY'](duration,null)&&(_0x260d35+='\x20('+duration+_0x2e30db(0x134));const _0x25ed06=_0xe75022[_0x2e30db(0xcd)](duration,null)&&duration>sqlLogSlowThreshold;let _0x3e9c72='debug';if(_0x25ed06)_0x260d35+=_0xe75022['CtjhA'],_0x3e9c72=_0xe75022['pSzwL'],logger['warn'](_0x50f234,_0x260d35);else sqlLogLevel===_0x2e30db(0x135)?(_0x3e9c72='info',logger[_0x2e30db(0x135)](_0x50f234,_0x260d35)):logger[_0x2e30db(0xcf)](_0x50f234,_0x260d35);writeToFileLog({..._0x50f234,'level':_0x3e9c72,'msg':_0x260d35,'time':new Date()[_0x2e30db(0xc3)]()},_0x3e9c72);},logTransaction=(_0x14728e,_0x219168)=>{const _0x20ba31=a0_0x1f7e7c,_0x5516ef={'duEEe':'db_transaction','OASHk':'debug'},_0x10f2e5={'event':_0x5516ef[_0x20ba31(0xdb)],'status':_0x14728e,'queryCount':_0x219168},_0x38cf6c=_0x20ba31(0x16b)+_0x14728e;logger[_0x20ba31(0xcf)](_0x10f2e5,_0x38cf6c),writeToFileLog({..._0x10f2e5,'level':'debug','msg':_0x38cf6c,'time':new Date()[_0x20ba31(0xc3)]()},_0x5516ef[_0x20ba31(0x11f)]);},redactObject=_0x509a08=>{const _0x150ff4=a0_0x1f7e7c,_0x4b1da7={'ZRaPV':function(_0x3e5f07,_0x585ed6){return _0x3e5f07!==_0x585ed6;},'nquCu':'object','sFKuQ':'password','fspwa':_0x150ff4(0x111),'DkTMF':'apikey','vKteH':_0x150ff4(0xfc),'VThDe':_0x150ff4(0x128),'nBGlN':_0x150ff4(0xe4),'PSckb':_0x150ff4(0x14d),'nsoCA':'[REDACTED]'};if(!_0x509a08||_0x4b1da7[_0x150ff4(0xe0)](typeof _0x509a08,_0x4b1da7['nquCu']))return _0x509a08;const _0x1db41e=[_0x4b1da7[_0x150ff4(0x162)],_0x4b1da7['fspwa'],_0x150ff4(0xfd),'token','secret',_0x4b1da7['DkTMF'],'api_key',_0x4b1da7[_0x150ff4(0x11e)],'creditcard',_0x150ff4(0xd5),'cvv',_0x150ff4(0x133),_0x4b1da7['VThDe'],_0x4b1da7[_0x150ff4(0xd6)],'privatekey',_0x4b1da7['PSckb'],_0x150ff4(0xd9)],_0x1f04d1=Array['isArray'](_0x509a08)?[..._0x509a08]:{..._0x509a08};for(const _0x5318d9 of Object[_0x150ff4(0x123)](_0x1f04d1)){const _0x1e2164=_0x5318d9['toLowerCase']();if(_0x1db41e[_0x150ff4(0x13d)](_0x1036d9=>_0x1e2164['includes'](_0x1036d9)))_0x1f04d1[_0x5318d9]=_0x4b1da7[_0x150ff4(0x151)];else typeof _0x1f04d1[_0x5318d9]===_0x150ff4(0x14f)&&_0x1f04d1[_0x5318d9]!==null&&(_0x1f04d1[_0x5318d9]=redactObject(_0x1f04d1[_0x5318d9]));}return _0x1f04d1;},logError=(_0x191cc7,_0xef8d72={},_0x26ad45=null)=>{const _0x27e47e=a0_0x1f7e7c,_0x486ad9={'Uuyeo':_0x27e47e(0x10d)},_0x52ff60={'event':_0x486ad9[_0x27e47e(0x103)],'errorName':_0x191cc7[_0x27e47e(0x115)]||'Error','errorMessage':_0x191cc7['message'],'errorCode':_0x191cc7[_0x27e47e(0x130)]||null,'stack':_0x191cc7[_0x27e47e(0x165)],..._0xef8d72},_0x4a726e=_0x26ad45||_0x27e47e(0x17a)+_0x191cc7[_0x27e47e(0x161)];logger['error'](_0x52ff60,_0x4a726e),writeToFileLog({..._0x52ff60,'level':_0x27e47e(0x10d),'msg':_0x4a726e,'time':new Date()['toISOString']()},_0x27e47e(0x10d));},logFatalError=(_0x166dc4,_0x3622fe={},_0x32518b=null)=>{const _0x512878=a0_0x1f7e7c,_0x55f2a9={'KDqbX':_0x512878(0x10f),'lKiJY':'fatal'},_0x4dd32a={'event':_0x55f2a9['KDqbX'],'errorName':_0x166dc4[_0x512878(0x115)]||_0x512878(0x139),'errorMessage':_0x166dc4['message'],'errorCode':_0x166dc4['code']||null,'stack':_0x166dc4['stack'],'severity':_0x512878(0x170),..._0x3622fe},_0x49d54c=_0x32518b||'FATAL:\x20'+_0x166dc4['message'];logger[_0x512878(0x16d)](_0x4dd32a,_0x49d54c),writeToFileLog({..._0x4dd32a,'level':_0x55f2a9[_0x512878(0x10c)],'msg':_0x49d54c,'time':new Date()['toISOString']()},'error');},logHttpError=(_0x83dd53,_0x2acbc4,_0x6b926c={})=>{const _0x1181c5=a0_0x1f7e7c,_0x5bb4e9={'QXGtt':_0x1181c5(0x121),'ZkZhl':_0x1181c5(0x139),'XjwtC':_0x1181c5(0x176),'DxsMW':function(_0x58c0f3,_0x1c272d){return _0x58c0f3(_0x1c272d);},'Penaq':'error','EIQpi':'warn','dYzye':function(_0x4f7440,_0x19f48a){return _0x4f7440>=_0x19f48a;}},_0x455e0d={'event':_0x5bb4e9[_0x1181c5(0x13c)],'errorName':_0x83dd53[_0x1181c5(0x115)]||_0x5bb4e9['ZkZhl'],'errorMessage':_0x83dd53[_0x1181c5(0x161)],'errorCode':_0x83dd53['code']||_0x83dd53[_0x1181c5(0x13f)]||0x1f4,'stack':_0x83dd53[_0x1181c5(0x165)],'method':_0x2acbc4?.[_0x1181c5(0x17b)],'url':_0x2acbc4?.['url']||_0x2acbc4?.[_0x1181c5(0x150)],'path':_0x2acbc4?.['path'],'ip':_0x2acbc4?.['ip']||_0x2acbc4?.['connection']?.[_0x1181c5(0x177)],'userAgent':_0x2acbc4?.['get']?.(_0x5bb4e9[_0x1181c5(0xfe)]),'requestId':_0x2acbc4?.['id']||_0x2acbc4?.['headers']?.[_0x1181c5(0x167)],'body':_0x2acbc4?.['body']?_0x5bb4e9['DxsMW'](redactObject,_0x2acbc4['body']):undefined,'query':_0x2acbc4?.['query'],..._0x6b926c},_0x151b58=_0x83dd53[_0x1181c5(0x13f)]||_0x83dd53[_0x1181c5(0x109)]||0x1f4,_0x179a2e='HTTP\x20'+_0x151b58+':\x20'+_0x83dd53[_0x1181c5(0x161)];_0x151b58>=0x1f4?logger['error'](_0x455e0d,_0x179a2e):logger['warn'](_0x455e0d,_0x179a2e),writeToFileLog({..._0x455e0d,'level':_0x151b58>=0x1f4?_0x5bb4e9['Penaq']:_0x5bb4e9['EIQpi'],'msg':_0x179a2e,'time':new Date()[_0x1181c5(0xc3)]()},_0x5bb4e9[_0x1181c5(0x160)](_0x151b58,0x1f4)?_0x5bb4e9['Penaq']:_0x5bb4e9['EIQpi']);},logUncaughtError=(_0x75676b,_0x53ea58)=>{const _0x55c9c5=a0_0x1f7e7c,_0x4aab86={'OwidW':function(_0x27cf6f,_0x30ad32,_0x344e2f){return _0x27cf6f(_0x30ad32,_0x344e2f);},'LLnxj':'fatal','nlVab':_0x55c9c5(0x10d)},_0x4e32ea={'event':_0x75676b,'errorName':_0x53ea58?.[_0x55c9c5(0x115)]||'Error','errorMessage':_0x53ea58?.['message']||String(_0x53ea58),'errorCode':_0x53ea58?.['code']||null,'stack':_0x53ea58?.['stack'],'severity':'CRITICAL','processId':process['pid'],'memoryUsage':process['memoryUsage'](),'uptime':process[_0x55c9c5(0xc9)]()},_0xe40012='['+_0x75676b['toUpperCase']()+']\x20'+(_0x53ea58?.[_0x55c9c5(0x161)]||_0x53ea58);logger['fatal'](_0x4e32ea,_0xe40012),_0x4aab86[_0x55c9c5(0x106)](writeToFileLog,{..._0x4e32ea,'level':_0x4aab86['LLnxj'],'msg':_0xe40012,'time':new Date()[_0x55c9c5(0xc3)]()},_0x4aab86[_0x55c9c5(0x101)]);},setupGlobalErrorHandlers=()=>{const _0x294a8e=a0_0x1f7e7c,_0xc01f0d={'ksAcb':function(_0x396c1a,_0x30fd8c){return _0x396c1a(_0x30fd8c);},'SwSdY':_0x294a8e(0xee),'KKehU':_0x294a8e(0xe1),'NjeQT':_0x294a8e(0x15c),'ErTuW':_0x294a8e(0x135)};process['on'](_0x294a8e(0x108),_0x83307f=>{const _0x4e7081=_0x294a8e;logUncaughtError(_0x4e7081(0x108),_0x83307f),setTimeout(()=>{process['exit'](0x1);},0x3e8);}),process['on'](_0xc01f0d[_0x294a8e(0xca)],(_0x3ba31b,_0x2d4cbc)=>{const _0x2bd156=_0x3ba31b instanceof Error?_0x3ba31b:new Error(_0xc01f0d['ksAcb'](String,_0x3ba31b));logUncaughtError(_0xc01f0d['SwSdY'],_0x2bd156);}),process['on']('warning',_0x55ca25=>{const _0x4837f5=_0x294a8e;logger[_0x4837f5(0xcb)]({'event':_0xc01f0d['KKehU'],'name':_0x55ca25['name'],'message':_0x55ca25[_0x4837f5(0x161)],'stack':_0x55ca25[_0x4837f5(0x165)]},_0x4837f5(0x11a)+_0x55ca25[_0x4837f5(0x161)]);});const _0x17c824={'event':'global_error_handlers_setup'},_0xd01d05=_0xc01f0d['NjeQT'];logger['info'](_0x17c824,_0xd01d05),writeToFileLog({..._0x17c824,'level':_0x294a8e(0x135),'msg':_0xd01d05,'time':new Date()['toISOString']()},_0xc01f0d['ErTuW']);},createErrorHandlerMiddleware=()=>{const _0x5311f1={'qvhin':'x-request-id'};return(_0x920751,_0x192584,_0x2ee7a0,_0x21fb28)=>{const _0x45cc10=a0_0x3736;logHttpError(_0x920751,_0x192584);const _0x1a6779=_0x920751['statusCode']||_0x920751[_0x45cc10(0x109)]||0x1f4;_0x2ee7a0[_0x45cc10(0x109)](_0x1a6779)['json']({'success':![],'error':_0x1a6779>=0x1f4?'Internal\x20server\x20error':_0x920751['message'],'requestId':_0x192584['id']||_0x192584['headers']?.[_0x5311f1[_0x45cc10(0xd8)]]||null});};};module[a0_0x1f7e7c(0x119)]={'logger':logger,'createRequestLogger':createRequestLogger,'logServerStart':logServerStart,'logServerReady':logServerReady,'logProjectLoaded':logProjectLoaded,'logEndpointRegistered':logEndpointRegistered,'logDatabaseConfig':logDatabaseConfig,'logRequest':logRequest,'logQuery':logQuery,'logTransaction':logTransaction,'startQueryTimer':startQueryTimer,'parseQueryMetadata':parseQueryMetadata,'redactSensitiveParams':redactSensitiveParams,'initFileLogging':initFileLogging,'logError':logError,'logFatalError':logFatalError,'logHttpError':logHttpError,'logUncaughtError':logUncaughtError,'setupGlobalErrorHandlers':setupGlobalErrorHandlers,'createErrorHandlerMiddleware':createErrorHandlerMiddleware,'redactObject':redactObject,'SQL_LOG_CONFIG':{'enabled':sqlLogEnabled,'level':sqlLogLevel,'logParams':sqlLogParams,'slowThreshold':sqlLogSlowThreshold},'FILE_LOG_CONFIG':{'enabled':logToFile,'directory':logDir,'serviceName':serviceName}};
@@ -1 +1 @@
1
- const a0_0x54c1a8=a0_0x5940;(function(_0x1cebcb,_0x5cb41b){const _0x2a7dfc=a0_0x5940,_0x360db5=_0x1cebcb();while(!![]){try{const _0x48d749=-parseInt(_0x2a7dfc(0x1f8))/0x1+-parseInt(_0x2a7dfc(0x1dc))/0x2+parseInt(_0x2a7dfc(0x1f6))/0x3+-parseInt(_0x2a7dfc(0x201))/0x4*(-parseInt(_0x2a7dfc(0x1e0))/0x5)+parseInt(_0x2a7dfc(0x1e6))/0x6*(parseInt(_0x2a7dfc(0x1f1))/0x7)+parseInt(_0x2a7dfc(0x1ef))/0x8+parseInt(_0x2a7dfc(0x1f3))/0x9*(-parseInt(_0x2a7dfc(0x1ff))/0xa);if(_0x48d749===_0x5cb41b)break;else _0x360db5['push'](_0x360db5['shift']());}catch(_0x156680){_0x360db5['push'](_0x360db5['shift']());}}}(a0_0x474b,0x97ce0));function a0_0x474b(){const _0x476864=['mtuYndaYmKXgELzgvq','y2XLyxjdywnOzq','rMfPBgvKihrVigXVywqGCgf5Bg9HzcbIEsbUyw1L','uwz5zKq','nuTIyMzsza','Bg9HzfbHEwXVywq','ugf5Bg9HzcbJywnOzsbJBgvHCMvK','ugf5Bg9HzcbSB2fKzwqGC3vJy2vZC2z1BgX5igj5ig5HBwu','C2v0','y2XLyxi','nNDUsg54za','ChjVBwLZzxm','lwv4Cg9YDa','CMvHzezPBgu','Cgf5Bg9Hzf9SB2fKx2vYCM9Y','ugf5Bg9HzcbUB3qGzM91BMq6ia','DxrMoa','zMLLBgrmywjLBhm','lMPZB24','mZG0ntuZnLLSwePLtq','y2fJAgu','ntq5nZG5mu90B0L3zW','Cgf5Bg9HzerPCG','mtm0mtLUyNjTvuC','y29SDw1UrM9YBwf0CW','B1f0q2K','mJyWntC4ofjoC3HUAq','lI4VlI4VCgf5Bg9Hza','mZqWnty2wgjMEMLk','CgfYC2u','AgfZ','z2v0','zxjYB3i','zMLLBgroyw1L','Axnby3rPB25fBMfIBgvK','mZKYmg12uhLbyq','DgfIBgvoyw1L','nJK2ntyWC1f4D2Hm','zgvIDwC'];a0_0x474b=function(){return _0x476864;};return a0_0x474b();}const fs=require('fs')[a0_0x54c1a8(0x1e7)],path=require('path'),{logger}=require('./logger');class PayloadLoader{constructor(){const _0x5820fc=a0_0x54c1a8;this['payloadDir']=path['join'](__dirname,_0x5820fc(0x1f7)),this['cache']=new Map();}async[a0_0x54c1a8(0x1e1)](_0x4631ee,_0x2d84f4){const _0x49e4fa=a0_0x54c1a8,_0x3b18d7={'qscfF':'utf8','oQtCi':'Payload\x20loaded\x20successfully','NvnCA':'Failed\x20to\x20load\x20payload'},_0x387a27=_0x4631ee+':'+_0x2d84f4;if(this['cache'][_0x49e4fa(0x1fa)](_0x387a27))return this['cache']['get'](_0x387a27);const _0x4478a7=path['join'](this[_0x49e4fa(0x1f2)],_0x4631ee+'_'+_0x2d84f4+_0x49e4fa(0x1ee));try{const _0x5ea830=await fs['readFile'](_0x4478a7,_0x3b18d7['qscfF']),_0x40c581=JSON[_0x49e4fa(0x1f9)](_0x5ea830);return this['cache'][_0x49e4fa(0x1e4)](_0x387a27,_0x40c581),logger[_0x49e4fa(0x202)]({'event':'payload_loaded','project':_0x4631ee,'resource':_0x2d84f4},_0x3b18d7[_0x49e4fa(0x1f5)]),_0x40c581;}catch(_0x43be10){logger['error']({'event':_0x49e4fa(0x1ea),'project':_0x4631ee,'resource':_0x2d84f4,'error':_0x43be10['message']},_0x3b18d7['NvnCA']);throw new Error(_0x49e4fa(0x1eb)+_0x4631ee+'_'+_0x2d84f4);}}async['loadPayloadByName'](_0x438a2f){const _0x266917=a0_0x54c1a8,_0x4dc6d7={'WUWQk':'payload_loaded','YGkrc':'payload_load_error'},_0x44f4c7='payload:'+_0x438a2f;if(this['cache'][_0x266917(0x1fa)](_0x44f4c7))return this[_0x266917(0x1f0)][_0x266917(0x1fb)](_0x44f4c7);const _0x448a86=path['join'](this[_0x266917(0x1f2)],_0x438a2f+'.json');try{const _0x1d0ff9=await fs[_0x266917(0x1e9)](_0x448a86,_0x266917(0x1ec)),_0x5e2313=JSON[_0x266917(0x1f9)](_0x1d0ff9);return this['cache']['set'](_0x44f4c7,_0x5e2313),logger[_0x266917(0x202)]({'event':_0x4dc6d7['WUWQk'],'payloadName':_0x438a2f},_0x266917(0x1e3)),_0x5e2313;}catch(_0x37d625){logger[_0x266917(0x1fc)]({'event':_0x4dc6d7['YGkrc'],'payloadName':_0x438a2f,'error':_0x37d625['message']},_0x266917(0x1de));throw new Error(_0x266917(0x1eb)+_0x438a2f);}}[a0_0x54c1a8(0x1fe)](_0x4a5401,_0x1b431b){return _0x4a5401['action']&&_0x4a5401['action'][_0x1b431b]===!![];}['getExportConfig'](_0x45a24f){const _0x1b86e4=a0_0x54c1a8;return{'columns':_0x45a24f[_0x1b86e4(0x1fd)]||[],'filename':_0x45a24f[_0x1b86e4(0x200)]['replace']('.','-')+_0x1b86e4(0x1e8),'datatablesQuery':_0x45a24f['datatablesQuery']||null,'columnFormats':_0x45a24f[_0x1b86e4(0x1f4)]||null,'fieldLabels':_0x45a24f[_0x1b86e4(0x1ed)]||null};}[a0_0x54c1a8(0x1dd)](){const _0xecd8e3=a0_0x54c1a8,_0x3331e3={'QfyfD':'payload_cache_cleared'};this[_0xecd8e3(0x1f0)][_0xecd8e3(0x1e5)](),logger['info']({'event':_0x3331e3[_0xecd8e3(0x1df)]},_0xecd8e3(0x1e2));}}function a0_0x5940(_0x18f157,_0x4f795f){_0x18f157=_0x18f157-0x1dc;const _0x474bda=a0_0x474b();let _0x594076=_0x474bda[_0x18f157];if(a0_0x5940['gpktbP']===undefined){var _0x2a7d1f=function(_0x1208e9){const _0x2d83b6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x324585='',_0x4b330c='';for(let _0x1b9b5e=0x0,_0x2e52a2,_0x2f1dc7,_0x1439e0=0x0;_0x2f1dc7=_0x1208e9['charAt'](_0x1439e0++);~_0x2f1dc7&&(_0x2e52a2=_0x1b9b5e%0x4?_0x2e52a2*0x40+_0x2f1dc7:_0x2f1dc7,_0x1b9b5e++%0x4)?_0x324585+=String['fromCharCode'](0xff&_0x2e52a2>>(-0x2*_0x1b9b5e&0x6)):0x0){_0x2f1dc7=_0x2d83b6['indexOf'](_0x2f1dc7);}for(let _0x2e76c0=0x0,_0x970710=_0x324585['length'];_0x2e76c0<_0x970710;_0x2e76c0++){_0x4b330c+='%'+('00'+_0x324585['charCodeAt'](_0x2e76c0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4b330c);};a0_0x5940['xOkFWM']=_0x2a7d1f,a0_0x5940['HamAtL']={},a0_0x5940['gpktbP']=!![];}const _0x5ec5e2=_0x474bda[0x0],_0x2229c2=_0x18f157+_0x5ec5e2,_0x460273=a0_0x5940['HamAtL'][_0x2229c2];return!_0x460273?(_0x594076=a0_0x5940['xOkFWM'](_0x594076),a0_0x5940['HamAtL'][_0x2229c2]=_0x594076):_0x594076=_0x460273,_0x594076;}module['exports']=new PayloadLoader();
1
+ function a0_0x263e(_0x8d74d3,_0xe99cc4){_0x8d74d3=_0x8d74d3-0xfc;const _0x70160e=a0_0x7016();let _0x263e03=_0x70160e[_0x8d74d3];if(a0_0x263e['zvEUEw']===undefined){var _0x4d4b4c=function(_0x12adf2){const _0x1e3a84='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x24352e='',_0x2db3e5='';for(let _0x35a387=0x0,_0xe0e75e,_0x1e34c7,_0x1fc273=0x0;_0x1e34c7=_0x12adf2['charAt'](_0x1fc273++);~_0x1e34c7&&(_0xe0e75e=_0x35a387%0x4?_0xe0e75e*0x40+_0x1e34c7:_0x1e34c7,_0x35a387++%0x4)?_0x24352e+=String['fromCharCode'](0xff&_0xe0e75e>>(-0x2*_0x35a387&0x6)):0x0){_0x1e34c7=_0x1e3a84['indexOf'](_0x1e34c7);}for(let _0x2e2844=0x0,_0xacdb8c=_0x24352e['length'];_0x2e2844<_0xacdb8c;_0x2e2844++){_0x2db3e5+='%'+('00'+_0x24352e['charCodeAt'](_0x2e2844)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2db3e5);};a0_0x263e['SJJHPD']=_0x4d4b4c,a0_0x263e['VMvVso']={},a0_0x263e['zvEUEw']=!![];}const _0x148395=_0x70160e[0x0],_0x589945=_0x8d74d3+_0x148395,_0x5674d9=a0_0x263e['VMvVso'][_0x589945];return!_0x5674d9?(_0x263e03=a0_0x263e['SJJHPD'](_0x263e03),a0_0x263e['VMvVso'][_0x589945]=_0x263e03):_0x263e03=_0x5674d9,_0x263e03;}const a0_0x4e07f3=a0_0x263e;(function(_0x58adfc,_0x318754){const _0x8f4a9e=a0_0x263e,_0x55cc1d=_0x58adfc();while(!![]){try{const _0x526a9f=-parseInt(_0x8f4a9e(0x11f))/0x1*(-parseInt(_0x8f4a9e(0x11a))/0x2)+-parseInt(_0x8f4a9e(0x118))/0x3*(parseInt(_0x8f4a9e(0x117))/0x4)+-parseInt(_0x8f4a9e(0x107))/0x5*(parseInt(_0x8f4a9e(0x11c))/0x6)+parseInt(_0x8f4a9e(0xfe))/0x7*(parseInt(_0x8f4a9e(0x10d))/0x8)+parseInt(_0x8f4a9e(0x10a))/0x9*(parseInt(_0x8f4a9e(0x11d))/0xa)+-parseInt(_0x8f4a9e(0x121))/0xb*(parseInt(_0x8f4a9e(0x103))/0xc)+-parseInt(_0x8f4a9e(0x110))/0xd*(-parseInt(_0x8f4a9e(0x10e))/0xe);if(_0x526a9f===_0x318754)break;else _0x55cc1d['push'](_0x55cc1d['shift']());}catch(_0x44371d){_0x55cc1d['push'](_0x55cc1d['shift']());}}}(a0_0x7016,0x6f937));function a0_0x7016(){const _0x4561fc=['BwvZC2fNzq','ndq0nLjoA2TRzq','rMfPBgvKihrVigXVywqGCgf5Bg9HzcbIEsbUyw1L','zgvIDwC','Cgf5Bg9Hzf9JywnOzv9JBgvHCMvK','Cgf5Bg9HzerPCG','vKfnBLO','lI4VlI4VCgf5Bg9Hza','ohvnrvziDq','otu4odnuwM10rNK','AgfZ','mZqXnZmYzhHezhzx','AM9PBG','nK1PwM5AuG','nZmZmgr3Bg5Iuq','zMLLBgroyw1L','mvDRA2T3Aa','z2v0','mJKYnZyXn29LB1DoDG','zMLLBgrmywjLBhm','quPTvwC','ndq2mZqXn3fYDxzHza','C2v0','zgf0yxrHyMXLC1f1zxj5','zxjYB3i','Cgf5Bg9Hzf9SB2fKx2vYCM9Y','mZzhDwjNrg8','z2v0rxHWB3j0q29UzMLN','DxrMoa','CMvHzezPBgu','mtC1nJmWnwvMBfvbrW','ywn0Aw9U','lI9SB2DNzxi','mZyZnMPMyw5RAq','y2fJAgu','ugf5Bg9HzcbSB2fKzwqGC3vJy2vZC2z1BgX5igj5ig5HBwu','ohHtquHiuq','mJmXnZbst09OEeu'];a0_0x7016=function(){return _0x4561fc;};return a0_0x7016();}const fs=require('fs')['promises'],path=require('path'),{logger}=require(a0_0x4e07f3(0x109));class PayloadLoader{constructor(){const _0x84fba1=a0_0x4e07f3,_0x127e4={'AJmUg':_0x84fba1(0x116)};this['payloadDir']=path[_0x84fba1(0x11b)](__dirname,_0x127e4[_0x84fba1(0xfd)]),this[_0x84fba1(0x10b)]=new Map();}async['loadPayload'](_0x290c08,_0x33955c){const _0x456f58=a0_0x4e07f3,_0x392902={'hXDqN':'Payload\x20loaded\x20successfully'},_0x434dba=_0x290c08+':'+_0x33955c;if(this[_0x456f58(0x10b)]['has'](_0x434dba))return this[_0x456f58(0x10b)]['get'](_0x434dba);const _0x1df6f8=path[_0x456f58(0x11b)](this[_0x456f58(0x114)],_0x290c08+'_'+_0x33955c+'.json');try{const _0x1fc5a6=await fs[_0x456f58(0x106)](_0x1df6f8,'utf8'),_0x86f8a4=JSON['parse'](_0x1fc5a6);return this['cache']['set'](_0x434dba,_0x86f8a4),logger[_0x456f58(0x112)]({'event':'payload_loaded','project':_0x290c08,'resource':_0x33955c},_0x392902['hXDqN']),_0x86f8a4;}catch(_0x42c12a){logger['error']({'event':'payload_load_error','project':_0x290c08,'resource':_0x33955c,'error':_0x42c12a['message']},'Failed\x20to\x20load\x20payload');throw new Error('Payload\x20not\x20found:\x20'+_0x290c08+'_'+_0x33955c);}}async['loadPayloadByName'](_0x10cbb7){const _0x2550f2=a0_0x4e07f3,_0x419d24={'VAMnZ':'payload_loaded'},_0x2d3ead='payload:'+_0x10cbb7;if(this[_0x2550f2(0x10b)][_0x2550f2(0x119)](_0x2d3ead))return this[_0x2550f2(0x10b)][_0x2550f2(0x120)](_0x2d3ead);const _0x24f649=path[_0x2550f2(0x11b)](this[_0x2550f2(0x114)],_0x10cbb7+'.json');try{const _0x53e7cf=await fs[_0x2550f2(0x106)](_0x24f649,_0x2550f2(0x105)),_0x1b8016=JSON['parse'](_0x53e7cf);return this['cache'][_0x2550f2(0xff)](_0x2d3ead,_0x1b8016),logger['debug']({'event':_0x419d24[_0x2550f2(0x115)],'payloadName':_0x10cbb7},_0x2550f2(0x10c)),_0x1b8016;}catch(_0x2966d8){logger[_0x2550f2(0x101)]({'event':_0x2550f2(0x102),'payloadName':_0x10cbb7,'error':_0x2966d8[_0x2550f2(0x10f)]},_0x2550f2(0x111));throw new Error('Payload\x20not\x20found:\x20'+_0x10cbb7);}}['isActionEnabled'](_0x3fdd0a,_0x29f121){const _0x51b5e5=a0_0x4e07f3;return _0x3fdd0a[_0x51b5e5(0x108)]&&_0x3fdd0a['action'][_0x29f121]===!![];}[a0_0x4e07f3(0x104)](_0x191525){const _0x4db9b2=a0_0x4e07f3;return{'columns':_0x191525[_0x4db9b2(0x11e)]||[],'filename':_0x191525['tableName']['replace']('.','-')+'-export','datatablesQuery':_0x191525[_0x4db9b2(0x100)]||null,'columnFormats':_0x191525['columnFormats']||null,'fieldLabels':_0x191525[_0x4db9b2(0xfc)]||null};}['clearCache'](){const _0x450045=a0_0x4e07f3;this['cache']['clear'](),logger['info']({'event':_0x450045(0x113)},'Payload\x20cache\x20cleared');}}module['exports']=new PayloadLoader();