@restforgejs/platform 4.1.0 → 4.2.8

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 (181) hide show
  1. package/LICENSE.md +5 -1
  2. package/README.md +30 -14
  3. package/bin/sdf-tools.exe +0 -0
  4. package/build-info.json +2 -2
  5. package/cli/consumer-deploy.js +1 -1
  6. package/cli/consumer.js +1 -1
  7. package/generators/cli/endpoint/create.js +42 -3
  8. package/generators/cli/schema/apply.js +525 -0
  9. package/generators/cli/schema/diff.js +321 -0
  10. package/generators/cli/schema/generate-ddl.js +7 -10
  11. package/generators/cli/schema/init.js +95 -172
  12. package/generators/cli/schema/migrate.js +10 -16
  13. package/generators/cli/schema/models.js +8 -12
  14. package/generators/cli/schema/template.js +222 -0
  15. package/generators/cli/schema/validate.js +8 -12
  16. package/generators/cli-entry.js +17 -2
  17. package/generators/lib/dbschema-kit/apply-engine.js +582 -0
  18. package/generators/lib/dbschema-kit/diff-engine.js +703 -0
  19. package/generators/lib/dbschema-kit/diff-reporter.js +272 -0
  20. package/generators/lib/dbschema-kit/emitters/alter-table.js +275 -0
  21. package/generators/lib/payload/endpoint-schema-validator.js +171 -0
  22. package/generators/lib/payload/payload-runner.js +137 -220
  23. package/generators/lib/payload/schema-diff.js +277 -0
  24. package/generators/lib/utils/audit-columns.js +181 -0
  25. package/generators/lib/utils/cli-output.js +17 -0
  26. package/generators/lib/utils/database-introspector.js +16 -13
  27. package/integrity-manifest.json +8 -8
  28. package/package.json +4 -4
  29. package/scripts/check-install.js +45 -45
  30. package/scripts/verify-integrity.js +1 -1
  31. package/server.js +1 -1
  32. package/src/components/handlers/adjust_handler.js +1 -1
  33. package/src/components/handlers/audit_handler.js +1 -1
  34. package/src/components/handlers/delete_handler.js +1 -1
  35. package/src/components/handlers/export_handler.js +1 -1
  36. package/src/components/handlers/import_handler.js +1 -1
  37. package/src/components/handlers/insert_handler.js +1 -1
  38. package/src/components/handlers/update_handler.js +1 -1
  39. package/src/components/handlers/upload_handler.js +1 -1
  40. package/src/components/handlers/workflow_handler.js +1 -1
  41. package/src/components/integrations/webhook.js +1 -1
  42. package/src/consumers/baseConsumer.js +1 -1
  43. package/src/consumers/declarativeMapper.js +1 -1
  44. package/src/consumers/handlers/apiHandler.js +1 -1
  45. package/src/consumers/handlers/consoleHandler.js +1 -1
  46. package/src/consumers/handlers/databaseHandler.js +1 -1
  47. package/src/consumers/handlers/index.js +1 -1
  48. package/src/consumers/handlers/kafkaHandler.js +1 -1
  49. package/src/consumers/index.js +1 -1
  50. package/src/consumers/messageTransformer.js +1 -1
  51. package/src/consumers/validator.js +1 -1
  52. package/src/core/db/dialect/base-dialect.js +1 -1
  53. package/src/core/db/dialect/index.js +1 -1
  54. package/src/core/db/dialect/mysql-dialect.js +1 -1
  55. package/src/core/db/dialect/oracle-dialect.js +1 -1
  56. package/src/core/db/dialect/postgres-dialect.js +1 -1
  57. package/src/core/db/dialect/sqlite-dialect.js +1 -1
  58. package/src/core/db/flatten-helper.js +1 -1
  59. package/src/core/db/query-builder-error.js +1 -1
  60. package/src/core/db/query-builder.js +1 -1
  61. package/src/core/db/relation-helper.js +1 -1
  62. package/src/core/handlers/delete_handler.js +1 -1
  63. package/src/core/handlers/insert_handler.js +1 -1
  64. package/src/core/handlers/update_handler.js +1 -1
  65. package/src/core/models/base-model.js +1 -1
  66. package/src/core/utils/cache-manager.js +1 -1
  67. package/src/core/utils/component-engine.js +1 -1
  68. package/src/core/utils/context-builder.js +1 -1
  69. package/src/core/utils/datetime-formatter.js +1 -1
  70. package/src/core/utils/datetime-parser.js +1 -1
  71. package/src/core/utils/db.js +1 -1
  72. package/src/core/utils/logger.js +1 -1
  73. package/src/core/utils/payload-loader.js +1 -1
  74. package/src/core/utils/security-checks.js +1 -1
  75. package/src/middleware/body-options.js +1 -1
  76. package/src/middleware/cors.js +1 -1
  77. package/src/middleware/idempotency.js +1 -1
  78. package/src/middleware/rate-limiter.js +1 -1
  79. package/src/middleware/request-logger.js +1 -1
  80. package/src/middleware/security-headers.js +1 -1
  81. package/src/models/base-model-mysql.js +1 -1
  82. package/src/models/base-model-oracle.js +1 -1
  83. package/src/models/base-model-sqlite.js +1 -1
  84. package/src/models/base-model.js +1 -1
  85. package/src/pro/caching/redis-client.js +1 -1
  86. package/src/pro/caching/redis-helper.js +1 -1
  87. package/src/pro/consumers/baseConsumer.js +1 -1
  88. package/src/pro/consumers/declarativeMapper.js +1 -1
  89. package/src/pro/consumers/handlers/apiHandler.js +1 -1
  90. package/src/pro/consumers/handlers/consoleHandler.js +1 -1
  91. package/src/pro/consumers/handlers/databaseHandler.js +1 -1
  92. package/src/pro/consumers/handlers/index.js +1 -1
  93. package/src/pro/consumers/handlers/kafkaHandler.js +1 -1
  94. package/src/pro/consumers/index.js +1 -1
  95. package/src/pro/consumers/messageTransformer.js +1 -1
  96. package/src/pro/consumers/validator.js +1 -1
  97. package/src/pro/database/base-model-mysql.js +1 -1
  98. package/src/pro/database/base-model-oracle.js +1 -1
  99. package/src/pro/database/base-model-sqlite.js +1 -1
  100. package/src/pro/database/db-mysql.js +1 -1
  101. package/src/pro/database/db-oracle.js +1 -1
  102. package/src/pro/database/db-sqlite.js +1 -1
  103. package/src/pro/excel/excel-generator.js +1 -1
  104. package/src/pro/excel/excel-parser.js +1 -1
  105. package/src/pro/excel/export-service.js +1 -1
  106. package/src/pro/excel/export_handler.js +1 -1
  107. package/src/pro/excel/import-service.js +1 -1
  108. package/src/pro/excel/import-validator.js +1 -1
  109. package/src/pro/excel/import_handler.js +1 -1
  110. package/src/pro/excel/upsert-builder.js +1 -1
  111. package/src/pro/idgen/idgen-routes.js +1 -1
  112. package/src/pro/integrations/lookup-resolver.js +1 -1
  113. package/src/pro/integrations/upload-handler-v2.js +1 -1
  114. package/src/pro/integrations/upload-handler.js +1 -1
  115. package/src/pro/integrations/webhook.js +1 -1
  116. package/src/pro/locking/lock-routes.js +1 -1
  117. package/src/pro/locking/resource-lock-manager.js +1 -1
  118. package/src/pro/messaging/kafkaConsumerService.js +1 -1
  119. package/src/pro/messaging/kafkaService.js +1 -1
  120. package/src/pro/messaging/messagehubService.js +1 -1
  121. package/src/pro/messaging/rabbitmqService.js +1 -1
  122. package/src/pro/scheduler/job-manager.js +1 -1
  123. package/src/pro/scheduler/job-routes.js +1 -1
  124. package/src/pro/scheduler/job-validator.js +1 -1
  125. package/src/pro/storage/base-storage-provider.js +1 -1
  126. package/src/pro/storage/file-metadata-helper.js +1 -1
  127. package/src/pro/storage/index.js +1 -1
  128. package/src/pro/storage/local-storage-provider.js +1 -1
  129. package/src/pro/storage/s3-storage-provider.js +1 -1
  130. package/src/pro/storage/upload-cleanup-job.js +1 -1
  131. package/src/pro/storage/upload-cleanup-scheduler.js +1 -1
  132. package/src/pro/storage/upload-pending-tracker.js +1 -1
  133. package/src/pro/websocket/broadcast-helper.js +1 -1
  134. package/src/pro/websocket/index.js +1 -1
  135. package/src/pro/websocket/livesync-server.js +1 -1
  136. package/src/pro/websocket/ws-broadcaster.js +1 -1
  137. package/src/services/export-service.js +1 -1
  138. package/src/services/import-service.js +1 -1
  139. package/src/services/kafkaConsumerService.js +1 -1
  140. package/src/services/kafkaService.js +1 -1
  141. package/src/services/messagehubService.js +1 -1
  142. package/src/services/rabbitmqService.js +1 -1
  143. package/src/utils/cache-invalidation-registry.js +1 -1
  144. package/src/utils/cache-manager.js +1 -1
  145. package/src/utils/component-engine.js +1 -1
  146. package/src/utils/config-extractor.js +1 -1
  147. package/src/utils/consumerLogger.js +1 -1
  148. package/src/utils/context-builder.js +1 -1
  149. package/src/utils/dashboard-helpers.js +1 -1
  150. package/src/utils/dateHelper.js +1 -1
  151. package/src/utils/datetime-formatter.js +1 -1
  152. package/src/utils/datetime-parser.js +1 -1
  153. package/src/utils/db-bootstrap.js +1 -1
  154. package/src/utils/db-mysql.js +1 -1
  155. package/src/utils/db-oracle.js +1 -1
  156. package/src/utils/db-sqlite.js +1 -1
  157. package/src/utils/db.js +1 -1
  158. package/src/utils/demo-generator.js +1 -1
  159. package/src/utils/excel-generator.js +1 -1
  160. package/src/utils/excel-parser.js +1 -1
  161. package/src/utils/file-watcher.js +1 -1
  162. package/src/utils/id-generator.js +1 -1
  163. package/src/utils/idempotency-manager.js +1 -1
  164. package/src/utils/import-validator.js +1 -1
  165. package/src/utils/license-client.js +1 -1
  166. package/src/utils/lock-manager.js +1 -1
  167. package/src/utils/logger.js +1 -1
  168. package/src/utils/lookup-resolver.js +1 -1
  169. package/src/utils/payload-loader.js +1 -1
  170. package/src/utils/processor-response.js +1 -1
  171. package/src/utils/rabbitmq.js +1 -1
  172. package/src/utils/redis-client.js +1 -1
  173. package/src/utils/redis-helper.js +1 -1
  174. package/src/utils/request-scope.js +1 -1
  175. package/src/utils/security-checks.js +1 -1
  176. package/src/utils/service-resolver.js +1 -1
  177. package/src/utils/shutdown-coordinator.js +1 -1
  178. package/src/utils/trusted-keys.js +1 -1
  179. package/src/utils/upload-handler.js +1 -1
  180. package/src/utils/upsert-builder.js +1 -1
  181. package/src/utils/workflow-hook-executor.js +1 -1
@@ -1 +1 @@
1
- const a0_0x52bbcc=a0_0xb864;function a0_0x301d(){const _0x1edb2b=['BwvZC2fNzq','mZe0nJy5vxjIzujI','zM9YBwf0vgLTzxn0yw1W','CLrdD0e','sw52ywXPzcbKyxrLihzHBhvLoIa','CgfKu3rHCNq','z2v0tw9UDgG','DgLTzq','mJi5nJy2nvnTzhrHDW','zxjYB3i','BgvUz3rO','z2v0rNvSBfLLyxi','z2v0vgLTzq','z2v0rgf0zq','vursr04','sw52ywXPzcb0Aw1LC3rHBxaGDMfSDwu6ia','D2fYBG','nZuXntjVyxnQsNC','zNDjrxu','zM9YBwf0vgLTzq','qxzOuMy','mJHYy2nLvKG','nde0nJnHwK9pqKy','vvPOtwS','mJC2mdfwtxDTAwm','C3bSAxq','mJe3mLbRALbIBW','mJq2nujYCNvLvq','ntm2rvjNuejk','z2v0u2vJB25KCW','z2v0sg91CNm','nZeYodm3mgfMtuvhAq'];a0_0x301d=function(){return _0x1edb2b;};return a0_0x301d();}(function(_0x3f06a2,_0x3bac5e){const _0xd2476b=a0_0xb864,_0x30a4d=_0x3f06a2();while(!![]){try{const _0x3ecd07=-parseInt(_0xd2476b(0x138))/0x1+parseInt(_0xd2476b(0x128))/0x2+-parseInt(_0xd2476b(0x12d))/0x3*(parseInt(_0xd2476b(0x12c))/0x4)+-parseInt(_0xd2476b(0x132))/0x5*(parseInt(_0xd2476b(0x131))/0x6)+parseInt(_0xd2476b(0x12f))/0x7*(parseInt(_0xd2476b(0x133))/0x8)+-parseInt(_0xd2476b(0x11f))/0x9+parseInt(_0xd2476b(0x136))/0xa;if(_0x3ecd07===_0x3bac5e)break;else _0x30a4d['push'](_0x30a4d['shift']());}catch(_0xdc18fb){_0x30a4d['push'](_0x30a4d['shift']());}}}(a0_0x301d,0x29637));class DateTimeFormatter{static['format'](_0x5ef2a3,_0x47b510,_0x1f4771){const _0x3ed1a0=a0_0xb864,_0x53a402={'QilGa':function(_0x354635,_0x1072fc){return _0x354635===_0x1072fc;},'UZhMk':'date'};if(!_0x5ef2a3)return null;try{if(_0x53a402['QilGa'](_0x1f4771,_0x53a402[_0x3ed1a0(0x12e)]))return this['formatDate'](_0x5ef2a3,_0x47b510);else{if(_0x1f4771==='timestamp')return this['formatTimestamp'](_0x5ef2a3,_0x47b510);else{if(_0x1f4771===_0x3ed1a0(0x11e))return this[_0x3ed1a0(0x12a)](_0x5ef2a3,_0x47b510);}}return _0x5ef2a3;}catch(_0x1c2393){return console[_0x3ed1a0(0x120)]('Error\x20formatting\x20datetime:\x20'+_0x1c2393[_0x3ed1a0(0x137)]),_0x5ef2a3;}}static['formatDate'](_0x3cc9c2,_0x26ce61){const _0x38605d=a0_0xb864,_0x60b735={'fwIEu':function(_0x122f07,_0x4b157a){return _0x122f07(_0x4b157a);}},_0x24cb16=new Date(_0x3cc9c2);if(isNaN(_0x24cb16[_0x38605d(0x123)]()))return console[_0x38605d(0x127)](_0x38605d(0x13b)+_0x3cc9c2),_0x3cc9c2;const _0x171c76=String(_0x24cb16[_0x38605d(0x124)]())[_0x38605d(0x13c)](0x2,'0'),_0x35169a=_0x60b735[_0x38605d(0x129)](String,_0x24cb16['getMonth']()+0x1)[_0x38605d(0x13c)](0x2,'0'),_0x566940=_0x24cb16[_0x38605d(0x122)](),_0x1f4383={'dd/MM/yyyy':_0x171c76+'/'+_0x35169a+'/'+_0x566940,'dd-MM-yyyy':_0x171c76+'-'+_0x35169a+'-'+_0x566940,'MM/dd/yyyy':_0x35169a+'/'+_0x171c76+'/'+_0x566940,'yyyy/MM/dd':_0x566940+'/'+_0x35169a+'/'+_0x171c76,'yyyy-MM-dd':_0x566940+'-'+_0x35169a+'-'+_0x171c76};return _0x1f4383[_0x26ce61]||_0x566940+'-'+_0x35169a+'-'+_0x171c76;}static[a0_0x52bbcc(0x139)](_0x4a030e,_0x37a6e7){const _0x1392c3=a0_0x52bbcc,_0x56cfaf={'cSPkd':function(_0x2b821b,_0x50a85c){return _0x2b821b(_0x50a85c);},'rTCwA':function(_0xd61846,_0x30bdb9){return _0xd61846+_0x30bdb9;},'AvhRf':function(_0x3fc6ac,_0x830a04){return _0x3fc6ac(_0x830a04);},'UDRGN':function(_0x56375d,_0x43a68d){return _0x56375d!==_0x43a68d;}},_0x4547d3=new Date(_0x4a030e);if(isNaN(_0x4547d3['getTime']()))return console['warn'](_0x1392c3(0x126)+_0x4a030e),_0x4a030e;const _0x39c2a2=String(_0x4547d3['getDate']())[_0x1392c3(0x13c)](0x2,'0'),_0x5b2db2=_0x56cfaf['cSPkd'](String,_0x56cfaf[_0x1392c3(0x13a)](_0x4547d3[_0x1392c3(0x13d)](),0x1))['padStart'](0x2,'0'),_0x3e99c2=_0x4547d3[_0x1392c3(0x122)](),_0x520eab=_0x56cfaf[_0x1392c3(0x12b)](String,_0x4547d3[_0x1392c3(0x135)]())['padStart'](0x2,'0'),_0x52b9e9=String(_0x4547d3['getMinutes']())[_0x1392c3(0x13c)](0x2,'0'),_0x3cd698=String(_0x4547d3[_0x1392c3(0x134)]())['padStart'](0x2,'0'),_0x55e62d=_0x37a6e7['split']('\x20');if(_0x56cfaf[_0x1392c3(0x125)](_0x55e62d[_0x1392c3(0x121)],0x2))return _0x3e99c2+'-'+_0x5b2db2+'-'+_0x39c2a2+'\x20'+_0x520eab+':'+_0x52b9e9+':'+_0x3cd698;const _0x46a417=_0x55e62d[0x0],_0x10ab6e=_0x55e62d[0x1],_0x44282d={'dd/MM/yyyy':_0x39c2a2+'/'+_0x5b2db2+'/'+_0x3e99c2,'dd-MM-yyyy':_0x39c2a2+'-'+_0x5b2db2+'-'+_0x3e99c2,'MM/dd/yyyy':_0x5b2db2+'/'+_0x39c2a2+'/'+_0x3e99c2,'yyyy/MM/dd':_0x3e99c2+'/'+_0x5b2db2+'/'+_0x39c2a2,'yyyy-MM-dd':_0x3e99c2+'-'+_0x5b2db2+'-'+_0x39c2a2},_0x152240={'HH:mm':_0x520eab+':'+_0x52b9e9,'HH:mm:ss':_0x520eab+':'+_0x52b9e9+':'+_0x3cd698,'hh:mm':_0x520eab+':'+_0x52b9e9},_0x4ab4ad=_0x44282d[_0x46a417]||_0x3e99c2+'-'+_0x5b2db2+'-'+_0x39c2a2,_0x3559c4=_0x152240[_0x10ab6e]||_0x520eab+':'+_0x52b9e9+':'+_0x3cd698;return _0x4ab4ad+'\x20'+_0x3559c4;}static['formatTime'](_0x22a83e,_0x1635b1){const _0x167436=a0_0x52bbcc,_0x169640={'xuhLu':function(_0x41e835,_0x5a789d){return _0x41e835<_0x5a789d;}};if(typeof _0x22a83e!=='string')return _0x22a83e;const _0x59367b=_0x22a83e[_0x167436(0x130)](':');if(_0x169640['xuhLu'](_0x59367b['length'],0x2))return console['warn']('Invalid\x20time\x20value:\x20'+_0x22a83e),_0x22a83e;const _0xb88975=_0x59367b[0x0][_0x167436(0x13c)](0x2,'0'),_0x51307b=_0x59367b[0x1][_0x167436(0x13c)](0x2,'0'),_0xcd870e=_0x59367b[0x2]?_0x59367b[0x2][_0x167436(0x130)]('.')[0x0][_0x167436(0x13c)](0x2,'0'):'00',_0x4db28e={'HH:mm':_0xb88975+':'+_0x51307b,'HH:mm:ss':_0xb88975+':'+_0x51307b+':'+_0xcd870e,'hh:mm':_0xb88975+':'+_0x51307b};return _0x4db28e[_0x1635b1]||_0xb88975+':'+_0x51307b+':'+_0xcd870e;}}function a0_0xb864(_0x895e81,_0xbbc8a){_0x895e81=_0x895e81-0x11e;const _0x301d93=a0_0x301d();let _0xb864d1=_0x301d93[_0x895e81];if(a0_0xb864['HDmEZw']===undefined){var _0x3718ad=function(_0x10e6e9){const _0x2a39a5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4770f5='',_0x1f6524='';for(let _0x13af9b=0x0,_0x175caa,_0x5554de,_0x600c56=0x0;_0x5554de=_0x10e6e9['charAt'](_0x600c56++);~_0x5554de&&(_0x175caa=_0x13af9b%0x4?_0x175caa*0x40+_0x5554de:_0x5554de,_0x13af9b++%0x4)?_0x4770f5+=String['fromCharCode'](0xff&_0x175caa>>(-0x2*_0x13af9b&0x6)):0x0){_0x5554de=_0x2a39a5['indexOf'](_0x5554de);}for(let _0x42193f=0x0,_0x33e618=_0x4770f5['length'];_0x42193f<_0x33e618;_0x42193f++){_0x1f6524+='%'+('00'+_0x4770f5['charCodeAt'](_0x42193f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1f6524);};a0_0xb864['vzvKwt']=_0x3718ad,a0_0xb864['OqVZgw']={},a0_0xb864['HDmEZw']=!![];}const _0x474b1f=_0x301d93[0x0],_0x296077=_0x895e81+_0x474b1f,_0x310e9b=a0_0xb864['OqVZgw'][_0x296077];return!_0x310e9b?(_0xb864d1=a0_0xb864['vzvKwt'](_0xb864d1),a0_0xb864['OqVZgw'][_0x296077]=_0xb864d1):_0xb864d1=_0x310e9b,_0xb864d1;}module['exports']=DateTimeFormatter;
1
+ const a0_0x25c54e=a0_0x3513;(function(_0x597abd,_0x5f0b85){const _0x31b5ef=a0_0x3513,_0x21bd9d=_0x597abd();while(!![]){try{const _0x5c50ca=-parseInt(_0x31b5ef(0xd8))/0x1*(-parseInt(_0x31b5ef(0xb9))/0x2)+-parseInt(_0x31b5ef(0xd6))/0x3+parseInt(_0x31b5ef(0xbb))/0x4+-parseInt(_0x31b5ef(0xd2))/0x5+-parseInt(_0x31b5ef(0xbe))/0x6*(parseInt(_0x31b5ef(0xba))/0x7)+parseInt(_0x31b5ef(0xc3))/0x8*(parseInt(_0x31b5ef(0xcc))/0x9)+parseInt(_0x31b5ef(0xd4))/0xa*(-parseInt(_0x31b5ef(0xd3))/0xb);if(_0x5c50ca===_0x5f0b85)break;else _0x21bd9d['push'](_0x21bd9d['shift']());}catch(_0x3806fc){_0x21bd9d['push'](_0x21bd9d['shift']());}}}(a0_0x3e9a,0x79d5d));class DateTimeFormatter{static[a0_0x25c54e(0xdb)](_0x422803,_0x9a740d,_0x2c8fd6){const _0x209ccd=a0_0x25c54e;if(!_0x422803)return null;try{if(_0x2c8fd6===_0x209ccd(0xc5))return this['formatDate'](_0x422803,_0x9a740d);else{if(_0x2c8fd6===_0x209ccd(0xd0))return this[_0x209ccd(0xce)](_0x422803,_0x9a740d);else{if(_0x2c8fd6===_0x209ccd(0xcf))return this[_0x209ccd(0xcd)](_0x422803,_0x9a740d);}}return _0x422803;}catch(_0x291177){return console['error']('Error\x20formatting\x20datetime:\x20'+_0x291177[_0x209ccd(0xc9)]),_0x422803;}}static[a0_0x25c54e(0xc8)](_0x483eab,_0x4d420d){const _0x2ac55a=a0_0x25c54e,_0x5ab144={'YvYJK':function(_0xe9f4e1,_0x52d02a){return _0xe9f4e1(_0x52d02a);},'NRqFq':function(_0x2fe7c1,_0x29c7bc){return _0x2fe7c1+_0x29c7bc;}},_0x301428=new Date(_0x483eab);if(isNaN(_0x301428[_0x2ac55a(0xd7)]()))return console[_0x2ac55a(0xc0)](_0x2ac55a(0xcb)+_0x483eab),_0x483eab;const _0x775346=_0x5ab144[_0x2ac55a(0xda)](String,_0x301428['getDate']())['padStart'](0x2,'0'),_0x29541d=_0x5ab144['YvYJK'](String,_0x5ab144[_0x2ac55a(0xbf)](_0x301428['getMonth'](),0x1))['padStart'](0x2,'0'),_0x7f5707=_0x301428['getFullYear'](),_0x3d74cd={'dd/MM/yyyy':_0x775346+'/'+_0x29541d+'/'+_0x7f5707,'dd-MM-yyyy':_0x775346+'-'+_0x29541d+'-'+_0x7f5707,'MM/dd/yyyy':_0x29541d+'/'+_0x775346+'/'+_0x7f5707,'yyyy/MM/dd':_0x7f5707+'/'+_0x29541d+'/'+_0x775346,'yyyy-MM-dd':_0x7f5707+'-'+_0x29541d+'-'+_0x775346};return _0x3d74cd[_0x4d420d]||_0x7f5707+'-'+_0x29541d+'-'+_0x775346;}static['formatTimestamp'](_0x4bbd70,_0x3db55b){const _0x4df68a=a0_0x25c54e,_0x4c11ad={'NRdMY':function(_0x5ef4e7,_0x44dc1e){return _0x5ef4e7(_0x44dc1e);},'dnYJb':function(_0x17afc1,_0x137305){return _0x17afc1(_0x137305);},'WcpRc':function(_0xf8cf6a,_0x580124){return _0xf8cf6a!==_0x580124;}},_0x51d9fe=new Date(_0x4bbd70);if(isNaN(_0x51d9fe['getTime']()))return console[_0x4df68a(0xc0)]('Invalid\x20timestamp\x20value:\x20'+_0x4bbd70),_0x4bbd70;const _0x50e4cd=String(_0x51d9fe[_0x4df68a(0xb8)]())[_0x4df68a(0xd9)](0x2,'0'),_0x489be4=_0x4c11ad[_0x4df68a(0xc4)](String,_0x51d9fe[_0x4df68a(0xc6)]()+0x1)[_0x4df68a(0xd9)](0x2,'0'),_0x206be8=_0x51d9fe[_0x4df68a(0xc2)](),_0x34a866=_0x4c11ad[_0x4df68a(0xc4)](String,_0x51d9fe['getHours']())['padStart'](0x2,'0'),_0x38eb5c=_0x4c11ad[_0x4df68a(0xc7)](String,_0x51d9fe[_0x4df68a(0xc1)]())['padStart'](0x2,'0'),_0x147bb2=_0x4c11ad[_0x4df68a(0xc7)](String,_0x51d9fe['getSeconds']())['padStart'](0x2,'0'),_0x1f0623=_0x3db55b['split']('\x20');if(_0x4c11ad['WcpRc'](_0x1f0623[_0x4df68a(0xca)],0x2))return _0x206be8+'-'+_0x489be4+'-'+_0x50e4cd+'\x20'+_0x34a866+':'+_0x38eb5c+':'+_0x147bb2;const _0x18d157=_0x1f0623[0x0],_0x202049=_0x1f0623[0x1],_0x3eee73={'dd/MM/yyyy':_0x50e4cd+'/'+_0x489be4+'/'+_0x206be8,'dd-MM-yyyy':_0x50e4cd+'-'+_0x489be4+'-'+_0x206be8,'MM/dd/yyyy':_0x489be4+'/'+_0x50e4cd+'/'+_0x206be8,'yyyy/MM/dd':_0x206be8+'/'+_0x489be4+'/'+_0x50e4cd,'yyyy-MM-dd':_0x206be8+'-'+_0x489be4+'-'+_0x50e4cd},_0x43d16d={'HH:mm':_0x34a866+':'+_0x38eb5c,'HH:mm:ss':_0x34a866+':'+_0x38eb5c+':'+_0x147bb2,'hh:mm':_0x34a866+':'+_0x38eb5c},_0x38bd75=_0x3eee73[_0x18d157]||_0x206be8+'-'+_0x489be4+'-'+_0x50e4cd,_0x38e71b=_0x43d16d[_0x202049]||_0x34a866+':'+_0x38eb5c+':'+_0x147bb2;return _0x38bd75+'\x20'+_0x38e71b;}static[a0_0x25c54e(0xcd)](_0x522498,_0x31c82e){const _0x5b643f=a0_0x25c54e,_0x15907c={'eEnyI':function(_0x18ca19,_0x1438dd){return _0x18ca19!==_0x1438dd;},'fkbOV':_0x5b643f(0xd5),'gyhjz':function(_0x474521,_0x5a0ccb){return _0x474521<_0x5a0ccb;}};if(_0x15907c['eEnyI'](typeof _0x522498,_0x15907c['fkbOV']))return _0x522498;const _0x5e3e70=_0x522498['split'](':');if(_0x15907c[_0x5b643f(0xbd)](_0x5e3e70[_0x5b643f(0xca)],0x2))return console['warn'](_0x5b643f(0xbc)+_0x522498),_0x522498;const _0x2af46f=_0x5e3e70[0x0][_0x5b643f(0xd9)](0x2,'0'),_0x4d2a77=_0x5e3e70[0x1]['padStart'](0x2,'0'),_0x6c778=_0x5e3e70[0x2]?_0x5e3e70[0x2][_0x5b643f(0xd1)]('.')[0x0]['padStart'](0x2,'0'):'00',_0x1908fd={'HH:mm':_0x2af46f+':'+_0x4d2a77,'HH:mm:ss':_0x2af46f+':'+_0x4d2a77+':'+_0x6c778,'hh:mm':_0x2af46f+':'+_0x4d2a77};return _0x1908fd[_0x31c82e]||_0x2af46f+':'+_0x4d2a77+':'+_0x6c778;}}module['exports']=DateTimeFormatter;function a0_0x3513(_0x116798,_0x505143){_0x116798=_0x116798-0xb8;const _0x3e9af2=a0_0x3e9a();let _0x3513a1=_0x3e9af2[_0x116798];if(a0_0x3513['bMbgTV']===undefined){var _0x574b5a=function(_0x3f7de5){const _0x5270f9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x6e850d='',_0x519c6b='';for(let _0xe410d6=0x0,_0x219491,_0x1c0e38,_0x2d5179=0x0;_0x1c0e38=_0x3f7de5['charAt'](_0x2d5179++);~_0x1c0e38&&(_0x219491=_0xe410d6%0x4?_0x219491*0x40+_0x1c0e38:_0x1c0e38,_0xe410d6++%0x4)?_0x6e850d+=String['fromCharCode'](0xff&_0x219491>>(-0x2*_0xe410d6&0x6)):0x0){_0x1c0e38=_0x5270f9['indexOf'](_0x1c0e38);}for(let _0x214126=0x0,_0x1f016c=_0x6e850d['length'];_0x214126<_0x1f016c;_0x214126++){_0x519c6b+='%'+('00'+_0x6e850d['charCodeAt'](_0x214126)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x519c6b);};a0_0x3513['JvgAfh']=_0x574b5a,a0_0x3513['NcIZqi']={},a0_0x3513['bMbgTV']=!![];}const _0x1ef504=_0x3e9af2[0x0],_0x1413b4=_0x116798+_0x1ef504,_0x2f52d5=a0_0x3513['NcIZqi'][_0x1413b4];return!_0x2f52d5?(_0x3513a1=a0_0x3513['JvgAfh'](_0x3513a1),a0_0x3513['NcIZqi'][_0x1413b4]=_0x3513a1):_0x3513a1=_0x2f52d5,_0x3513a1;}function a0_0x3e9a(){const _0x171f3c=['D2fYBG','z2v0twLUDxrLCW','z2v0rNvSBfLLyxi','mtqZnJi1nMDsz1r3sq','tLjKtvK','zgf0zq','z2v0tw9UDgG','zg5zsMi','zM9YBwf0rgf0zq','BwvZC2fNzq','BgvUz3rO','sw52ywXPzcbKyxrLihzHBhvLoIa','ndvVC0Twy0C','zM9YBwf0vgLTzq','zM9YBwf0vgLTzxn0yw1W','DgLTzq','DgLTzxn0yw1W','C3bSAxq','ndK1nZu1renRshrA','nZG0m2PPD0XnCq','oteWufnqChPN','C3rYAw5N','mJC2otq1m0zbCezRuq','z2v0vgLTzq','mvv2CvjrsG','CgfKu3rHCNq','wxzzsKS','zM9YBwf0','z2v0rgf0zq','mtmZotK3ohrlB0HbEa','otq1ndjvyKzjCuS','nZiYntGWu0D2zfD5','sw52ywXPzcb0Aw1LihzHBhvLoIa','z3LOANO','nZjVvvfAB0u','tLjXrNe'];a0_0x3e9a=function(){return _0x171f3c;};return a0_0x3e9a();}
@@ -1 +1 @@
1
- const a0_0x37db80=a0_0x5c9b;(function(_0x47872a,_0x3a693f){const _0x2e3f10=a0_0x5c9b,_0xa903d2=_0x47872a();while(!![]){try{const _0x3ced80=-parseInt(_0x2e3f10(0x17e))/0x1*(-parseInt(_0x2e3f10(0x185))/0x2)+parseInt(_0x2e3f10(0x176))/0x3+parseInt(_0x2e3f10(0x16e))/0x4*(parseInt(_0x2e3f10(0x169))/0x5)+parseInt(_0x2e3f10(0x168))/0x6+parseInt(_0x2e3f10(0x17b))/0x7+parseInt(_0x2e3f10(0x16c))/0x8*(parseInt(_0x2e3f10(0x182))/0x9)+-parseInt(_0x2e3f10(0x17c))/0xa*(parseInt(_0x2e3f10(0x172))/0xb);if(_0x3ced80===_0x3a693f)break;else _0xa903d2['push'](_0xa903d2['shift']());}catch(_0x17d2d9){_0xa903d2['push'](_0xa903d2['shift']());}}}(a0_0x359f,0x36538));class DateTimeParser{static['parse'](_0x10cfc6,_0x4641e7,_0x48b6d9){const _0x181139=a0_0x5c9b,_0x5992a3={'Werqx':function(_0x26c8c2,_0x166cab){return _0x26c8c2===_0x166cab;}};if(!_0x10cfc6||_0x10cfc6==='')return null;try{if(_0x5992a3['Werqx'](_0x48b6d9,_0x181139(0x181)))return this['parseDate'](_0x10cfc6,_0x4641e7);else{if(_0x48b6d9==='timestamp')return this[_0x181139(0x174)](_0x10cfc6,_0x4641e7);else{if(_0x48b6d9==='time')return this[_0x181139(0x17f)](_0x10cfc6,_0x4641e7);}}return _0x10cfc6;}catch(_0xc97cdc){return console['error'](_0x181139(0x171)+_0xc97cdc[_0x181139(0x163)]),null;}}static[a0_0x37db80(0x17d)](_0x2a5e39,_0x2bffee){const _0x5b53b6=a0_0x37db80,_0x55e4db={'qTqVS':_0x5b53b6(0x16b),'lojvv':'month','eDoEu':_0x5b53b6(0x173),'lIHle':_0x5b53b6(0x16f)};if(!_0x2bffee||_0x2bffee===_0x55e4db['qTqVS'])return _0x2a5e39;const _0x230c15={'dd/MM/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':[_0x5b53b6(0x16f),_0x55e4db[_0x5b53b6(0x177)],_0x55e4db[_0x5b53b6(0x16a)]]},'dd-MM-yyyy':{'pattern':/^(\d{2})-(\d{2})-(\d{4})$/,'order':['day',_0x55e4db[_0x5b53b6(0x177)],'year']},'MM/dd/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':['month',_0x55e4db['lIHle'],_0x5b53b6(0x173)]},'yyyy/MM/dd':{'pattern':/^(\d{4})\/(\d{2})\/(\d{2})$/,'order':['year',_0x5b53b6(0x178),_0x5b53b6(0x16f)]}},_0x21ed8f=_0x230c15[_0x2bffee];if(!_0x21ed8f)return console['warn'](_0x5b53b6(0x186)+_0x2bffee+',\x20returning\x20null'),null;const _0xc36c31=_0x2a5e39[_0x5b53b6(0x183)](_0x21ed8f[_0x5b53b6(0x167)]);if(!_0xc36c31)return console[_0x5b53b6(0x170)]('Date\x20value\x20\x22'+_0x2a5e39+_0x5b53b6(0x179)+_0x2bffee+'\x22'),null;const _0x2bee2={'day':null,'month':null,'year':null};return _0x21ed8f[_0x5b53b6(0x17a)]['forEach']((_0x282d3a,_0x2ce609)=>{_0x2bee2[_0x282d3a]=_0xc36c31[_0x2ce609+0x1];}),_0x2bee2[_0x5b53b6(0x173)]+'-'+_0x2bee2[_0x5b53b6(0x178)]+'-'+_0x2bee2['day'];}static['parseTimestamp'](_0x5f6e6d,_0x5c4a4e){const _0x524c94=a0_0x37db80,_0x1088c2={'oROsE':function(_0x249b7d,_0x1eec28){return _0x249b7d===_0x1eec28;},'qqhcO':function(_0x1f2ea1,_0x4fe43e){return _0x1f2ea1===_0x4fe43e;}};if(!_0x5c4a4e||_0x1088c2['oROsE'](_0x5c4a4e,'yyyy-MM-dd\x20HH:mm:ss'))return _0x5f6e6d;const _0x25a3cf=_0x5f6e6d[_0x524c94(0x184)]('\x20');if(_0x25a3cf[_0x524c94(0x16d)]!==0x2)return console[_0x524c94(0x170)]('Invalid\x20timestamp\x20format:\x20'+_0x5f6e6d),null;const [_0xff1866,_0x7c1e36]=_0x25a3cf,_0x26ce71=_0x5c4a4e[_0x524c94(0x184)]('\x20')[0x0],_0x48420f=this['parseDate'](_0xff1866,_0x26ce71);if(!_0x48420f)return null;const _0x1a4b11=_0x1088c2[_0x524c94(0x165)](_0x7c1e36[_0x524c94(0x184)](':')[_0x524c94(0x16d)],0x2)?_0x7c1e36+_0x524c94(0x166):_0x7c1e36;return _0x48420f+'\x20'+_0x1a4b11;}static['parseTime'](_0x37acfd,_0x3eeb9d){const _0x68cdae=a0_0x37db80,_0x58dd52={'PdQFz':'HH:mm:ss','eluTX':function(_0x9ebae,_0x1809da){return _0x9ebae===_0x1809da;}};if(!_0x3eeb9d||_0x3eeb9d===_0x58dd52[_0x68cdae(0x175)])return _0x37acfd;if(_0x58dd52[_0x68cdae(0x164)](_0x3eeb9d,_0x68cdae(0x180))){if(_0x37acfd['match'](/^\d{2}:\d{2}$/))return _0x37acfd+':00';}return _0x37acfd;}}function a0_0x5c9b(_0x117ad9,_0x49613c){_0x117ad9=_0x117ad9-0x163;const _0x359f28=a0_0x359f();let _0x5c9b91=_0x359f28[_0x117ad9];if(a0_0x5c9b['znZJUx']===undefined){var _0x571130=function(_0x1a9c31){const _0x4e2c8b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x56013f='',_0x509811='';for(let _0x305e2c=0x0,_0x48320,_0x22e6f2,_0xeb33b0=0x0;_0x22e6f2=_0x1a9c31['charAt'](_0xeb33b0++);~_0x22e6f2&&(_0x48320=_0x305e2c%0x4?_0x48320*0x40+_0x22e6f2:_0x22e6f2,_0x305e2c++%0x4)?_0x56013f+=String['fromCharCode'](0xff&_0x48320>>(-0x2*_0x305e2c&0x6)):0x0){_0x22e6f2=_0x4e2c8b['indexOf'](_0x22e6f2);}for(let _0x4d3ef6=0x0,_0x37ea26=_0x56013f['length'];_0x4d3ef6<_0x37ea26;_0x4d3ef6++){_0x509811+='%'+('00'+_0x56013f['charCodeAt'](_0x4d3ef6)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x509811);};a0_0x5c9b['cSqMdt']=_0x571130,a0_0x5c9b['VVZHZQ']={},a0_0x5c9b['znZJUx']=!![];}const _0x32c691=_0x359f28[0x0],_0x1b6fa8=_0x117ad9+_0x32c691,_0x373188=a0_0x5c9b['VVZHZQ'][_0x1b6fa8];return!_0x373188?(_0x5c9b91=a0_0x5c9b['cSqMdt'](_0x5c9b91),a0_0x5c9b['VVZHZQ'][_0x1b6fa8]=_0x5c9b91):_0x5c9b91=_0x373188,_0x5c9b91;}module['exports']=DateTimeParser;function a0_0x359f(){const _0x510151=['Cgf0DgvYBG','mtK3mtmZmhPKu2HsyG','nwzMC2DAvW','zurVrxu','ExL5Es1nts1Kza','mte0nhzABLb2rq','BgvUz3rO','mtq5ntzOrNDOsgm','zgf5','D2fYBG','rxjYB3iGCgfYC2LUzYbKyxrLDgLTztOG','mtfZsKHjzKm','EwvHCG','CgfYC2vuAw1LC3rHBxa','ugrrrNO','nZi2nJCYrMjNsfzW','Bg9QDNy','Bw9UDgG','iIbKB2vZBID0ig1HDgnOigzVCM1HDcaI','B3jKzxi','mtGYnZu4ohDnCNPdwq','mte2mtm3mJbnBxvrCxK','CgfYC2veyxrL','mZzHDxHUCeO','CgfYC2vuAw1L','seG6Bw0','zgf0zq','mtmXotrOs2vUsNO','Bwf0y2G','C3bSAxq','mtG4mtrJAKPXvwO','vw5RBM93BIbKyxrLigzVCM1HDdOG','BwvZC2fNzq','zwX1vfG','CxfOy08','oJaW'];a0_0x359f=function(){return _0x510151;};return a0_0x359f();}
1
+ function a0_0x3986(){const _0x299b77=['vw5RBM93BIbKyxrLigzVCM1HDdOG','zgf0zq','zxHWB3j0CW','BgvUz3rO','mta4mJG3muvbEff0Dq','vgDyu3O','C3bSAxq','se1nEMO','mtK0ntq0nNzSzfbtqW','D2fYBG','zgf5','mZe3nJe4mfDJtKf0yq','zvzXDMS','BwvZC2fNzq','EwvHCG','B3jKzxi','vxPPqKW','CgfYC2veyxrL','ExL5Es1nts1KzcbisdPTBtPZCW','rwvKBK8','CgfYC2vuAw1L','Bw9UDgG','nNnhq2vHBG','rgf0zsb2ywX1zsaI','Bwf0y2G','wNzJqu8','iIbKB2vZBID0ig1HDgnOigzVCM1HDcaI','nJy3nty4meHNu3Drta','mJGWmteXmKDvCNLXuW','ExL5Es1nts1Kza','ntmXota5wwjNv2nX','seG6Bw06C3m','DgLTzq','CgfYC2vuAw1LC3rHBxa','DunfvLa','zM9YrwfJAa','zxjYB3i','zvHqr3e','nJeYmdyXnvnYu2HsvG'];a0_0x3986=function(){return _0x299b77;};return a0_0x3986();}function a0_0x3655(_0x1ed2cf,_0x5428ac){_0x1ed2cf=_0x1ed2cf-0x1a0;const _0x39860d=a0_0x3986();let _0x36552e=_0x39860d[_0x1ed2cf];if(a0_0x3655['TYkcme']===undefined){var _0x24c635=function(_0xf6fd06){const _0x5ac9d2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x302e8d='',_0x4620c6='';for(let _0x4f0567=0x0,_0x1156ca,_0x3e6106,_0x57d911=0x0;_0x3e6106=_0xf6fd06['charAt'](_0x57d911++);~_0x3e6106&&(_0x1156ca=_0x4f0567%0x4?_0x1156ca*0x40+_0x3e6106:_0x3e6106,_0x4f0567++%0x4)?_0x302e8d+=String['fromCharCode'](0xff&_0x1156ca>>(-0x2*_0x4f0567&0x6)):0x0){_0x3e6106=_0x5ac9d2['indexOf'](_0x3e6106);}for(let _0x315d06=0x0,_0x25cd33=_0x302e8d['length'];_0x315d06<_0x25cd33;_0x315d06++){_0x4620c6+='%'+('00'+_0x302e8d['charCodeAt'](_0x315d06)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4620c6);};a0_0x3655['RKoggO']=_0x24c635,a0_0x3655['JnsKam']={},a0_0x3655['TYkcme']=!![];}const _0x3a5a06=_0x39860d[0x0],_0x3d3674=_0x1ed2cf+_0x3a5a06,_0x316824=a0_0x3655['JnsKam'][_0x3d3674];return!_0x316824?(_0x36552e=a0_0x3655['RKoggO'](_0x36552e),a0_0x3655['JnsKam'][_0x3d3674]=_0x36552e):_0x36552e=_0x316824,_0x36552e;}const a0_0x50b10e=a0_0x3655;(function(_0x446d3f,_0x5b813c){const _0x4733e8=a0_0x3655,_0x5865d7=_0x446d3f();while(!![]){try{const _0x2a3efd=-parseInt(_0x4733e8(0x1a5))/0x1+parseInt(_0x4733e8(0x1a9))/0x2+-parseInt(_0x4733e8(0x1bf))/0x3+-parseInt(_0x4733e8(0x1bd))/0x4+parseInt(_0x4733e8(0x1a0))/0x5*(parseInt(_0x4733e8(0x1b7))/0x6)+-parseInt(_0x4733e8(0x1ac))/0x7+parseInt(_0x4733e8(0x1bc))/0x8;if(_0x2a3efd===_0x5b813c)break;else _0x5865d7['push'](_0x5865d7['shift']());}catch(_0x257497){_0x5865d7['push'](_0x5865d7['shift']());}}}(a0_0x3986,0x96a9a));class DateTimeParser{static['parse'](_0x34e480,_0xd9c96c,_0x42b8dc){const _0x3e5f4f=a0_0x3655,_0x4fafdb={'uCEVP':function(_0x5c9b1c,_0x4f6192){return _0x5c9b1c===_0x4f6192;},'UziBL':'timestamp','aCAAs':function(_0xcbc965,_0x261665){return _0xcbc965===_0x261665;}};if(!_0x34e480||_0x34e480==='')return null;try{if(_0x4fafdb[_0x3e5f4f(0x1c3)](_0x42b8dc,_0x3e5f4f(0x1a2)))return this[_0x3e5f4f(0x1b2)](_0x34e480,_0xd9c96c);else{if(_0x42b8dc===_0x4fafdb[_0x3e5f4f(0x1b1)])return this[_0x3e5f4f(0x1c2)](_0x34e480,_0xd9c96c);else{if(_0x4fafdb['aCAAs'](_0x42b8dc,_0x3e5f4f(0x1c1)))return this['parseTime'](_0x34e480,_0xd9c96c);}}return _0x34e480;}catch(_0x217538){return console[_0x3e5f4f(0x1c5)]('Error\x20parsing\x20datetime:\x20'+_0x217538[_0x3e5f4f(0x1ae)]),null;}}static[a0_0x50b10e(0x1b2)](_0x20357f,_0xe8ba35){const _0x4a3696=a0_0x50b10e,_0x1bc6bd={'eXPGq':function(_0x7d1af8,_0x111691){return _0x7d1af8+_0x111691;},'HMMzj':_0x4a3696(0x1be),'ZvcAO':_0x4a3696(0x1ab),'eVqvk':'year','TgXSz':'month'};if(!_0xe8ba35||_0xe8ba35===_0x1bc6bd[_0x4a3696(0x1a8)])return _0x20357f;const _0x55b4cb={'dd/MM/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':[_0x1bc6bd['ZvcAO'],'month',_0x1bc6bd[_0x4a3696(0x1ad)]]},'dd-MM-yyyy':{'pattern':/^(\d{2})-(\d{2})-(\d{4})$/,'order':[_0x4a3696(0x1ab),_0x1bc6bd[_0x4a3696(0x1a6)],_0x1bc6bd['eVqvk']]},'MM/dd/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':[_0x1bc6bd[_0x4a3696(0x1a6)],_0x1bc6bd[_0x4a3696(0x1ba)],_0x1bc6bd['eVqvk']]},'yyyy/MM/dd':{'pattern':/^(\d{4})\/(\d{2})\/(\d{2})$/,'order':[_0x1bc6bd[_0x4a3696(0x1ad)],_0x4a3696(0x1b6),_0x4a3696(0x1ab)]}},_0x12a68c=_0x55b4cb[_0xe8ba35];if(!_0x12a68c)return console['warn'](_0x4a3696(0x1a1)+_0xe8ba35+',\x20returning\x20null'),null;const _0x19e351=_0x20357f[_0x4a3696(0x1b9)](_0x12a68c['pattern']);if(!_0x19e351)return console['warn'](_0x4a3696(0x1b8)+_0x20357f+_0x4a3696(0x1bb)+_0xe8ba35+'\x22'),null;const _0x417339={'day':null,'month':null,'year':null};return _0x12a68c[_0x4a3696(0x1b0)][_0x4a3696(0x1c4)]((_0x5c407f,_0x130b2a)=>{const _0x29d0f3=_0x4a3696;_0x417339[_0x5c407f]=_0x19e351[_0x1bc6bd[_0x29d0f3(0x1c6)](_0x130b2a,0x1)];}),_0x417339[_0x4a3696(0x1af)]+'-'+_0x417339[_0x4a3696(0x1b6)]+'-'+_0x417339['day'];}static['parseTimestamp'](_0x31c473,_0x194db9){const _0x1baff0=a0_0x50b10e,_0x4ecbae={'JTjnd':function(_0x48a52c,_0x568d44){return _0x48a52c===_0x568d44;}};if(!_0x194db9||_0x194db9===_0x1baff0(0x1b3))return _0x31c473;const _0xb847ea=_0x31c473[_0x1baff0(0x1a7)]('\x20');if(_0xb847ea[_0x1baff0(0x1a4)]!==0x2)return console[_0x1baff0(0x1aa)]('Invalid\x20timestamp\x20format:\x20'+_0x31c473),null;const [_0x1648bc,_0x40dee8]=_0xb847ea,_0x1b3497=_0x194db9[_0x1baff0(0x1a7)]('\x20')[0x0],_0x523c48=this[_0x1baff0(0x1b2)](_0x1648bc,_0x1b3497);if(!_0x523c48)return null;const _0x11e38a=_0x4ecbae['JTjnd'](_0x40dee8['split'](':')[_0x1baff0(0x1a4)],0x2)?_0x40dee8+':00':_0x40dee8;return _0x523c48+'\x20'+_0x11e38a;}static[a0_0x50b10e(0x1b5)](_0x57f163,_0xeac96b){const _0x38a7be=a0_0x50b10e,_0x225724={'EednO':function(_0x102031,_0x387749){return _0x102031===_0x387749;},'zWYwE':'HH:mm'};if(!_0xeac96b||_0x225724['EednO'](_0xeac96b,_0x38a7be(0x1c0)))return _0x57f163;if(_0x225724[_0x38a7be(0x1b4)](_0xeac96b,_0x225724['zWYwE'])){if(_0x57f163[_0x38a7be(0x1b9)](/^\d{2}:\d{2}$/))return _0x57f163+':00';}return _0x57f163;}}module[a0_0x50b10e(0x1a3)]=DateTimeParser;
@@ -1 +1 @@
1
- const a0_0x5ea648=a0_0x1153;(function(_0x5ea6dc,_0x46cbd8){const _0x16c12e=a0_0x1153,_0x910b5b=_0x5ea6dc();while(!![]){try{const _0x3ee7fc=-parseInt(_0x16c12e(0xa4))/0x1+-parseInt(_0x16c12e(0xcc))/0x2*(parseInt(_0x16c12e(0xc7))/0x3)+-parseInt(_0x16c12e(0xe7))/0x4*(parseInt(_0x16c12e(0xac))/0x5)+parseInt(_0x16c12e(0xb6))/0x6+parseInt(_0x16c12e(0xe4))/0x7*(parseInt(_0x16c12e(0xb4))/0x8)+parseInt(_0x16c12e(0xad))/0x9*(-parseInt(_0x16c12e(0xd3))/0xa)+-parseInt(_0x16c12e(0xd2))/0xb*(-parseInt(_0x16c12e(0xd5))/0xc);if(_0x3ee7fc===_0x46cbd8)break;else _0x910b5b['push'](_0x910b5b['shift']());}catch(_0x1530e5){_0x910b5b['push'](_0x910b5b['shift']());}}}(a0_0x5831,0xcaa9b));function a0_0x5831(){const _0x4c23cc=['qwPlvNy','qKvhsu4','D25yvfq','rxjYB3iGCMvSzwfZAw5NihrYyw5Zywn0Aw9UignSAwvUDdOG','zxHWB3j0CW','D1rxCe8','mte1ndbWChPttgC','mJqWm0DcD0rwrW','q09otKvdveLptL9fuLjpuG','C3vIC3rYAw5N','q3jLyxrPBMCGBMv3igrHDgfIyxnLihbVB2WGkhbYzxzPB3vZihbVB2WGD2fZignSB3nLzcK','CMvSzwfZzq','zgjFCg9VBf9JBg9Zzwq','rxjYB3iGy2HLy2TPBMCGzgf0ywjHC2uGy29UBMvJDgLVBJOG','otGXnM9iuM5uvW','zgjFCg9VBf9JBg9Zzv9LCNjVCG','nZm5mdGYngTcDvjMqG','v2nxvNy','zgj4ytaZ','Cg9ZDgDYzxnXBa','y29TBwL0','suTcy2G','zw52','Cw9gvK0','rejFue9sva','mtKYlJe2oc4XmdaUmq','u1fmievYCM9YoIa','A01tsgu','zgjFCg9VBf9YzwnYzwf0zq','ChvZAa','BxmSia','y29UBMvJDa','vu5ltK9xtL9fuLjpuG','mZq4vgfmr0vR','CM93q291BNq','s2Dotwu','AKjhEu4','BNLhB2m','mJeWnhr2sM5HyW','Aw5MBW','yMHpugS','rejFse9tva','sNj0EgC','zgf0ywjHC2u','oty5ntyYwwTzrwLJ','mJqZntbvyu5lt3C','mdGWmde','mtmYwvfvquTc','rgf0ywjHC2uGCg9VBcb3yxmGywXYzwfKEsbJBg9Zzwq','EufiDuy','zw5K','ndjqmde','zxjYB3i','ntqZmG','C3rHCNq','BgvUz3rO','CM9SBgjHy2TFzxjYB3i','y2XPzw50x3jLBgvHC2vFzxjYB3i','zLnAv1K','u0vmrunuide','Cg9YDa','y29Kzq','mJCZwuTfy1vn','vefctevFtK9ux0zpvu5e','qvvusevoveLdqvrjt05Frvjst1i','mtaYme1Rt2Lwza','C3fS','BwvZC2fNzq','CM93CW','tM8Gzgf0ysbMB3vUzc4','rejFueftu1DpuKq','Cg9ZDgDYzxm','CxvLCNK','Bg5nr20','u1Lovefyx0vsuK9s','ntGZotvTC1vtENO','sLnYvK0'];a0_0x5831=function(){return _0x4c23cc;};return a0_0x5831();}const {Pool}=require('pg'),{logQuery,logTransaction,startQueryTimer,logDatabaseConfig,logger,logError}=require('./logger'),dbConfig={'host':process['env'][a0_0x5ea648(0xcf)]||a0_0x5ea648(0xbf),'port':parseInt(process['env'][a0_0x5ea648(0xbe)]||a0_0x5ea648(0xdb)),'user':process[a0_0x5ea648(0xbc)]['DB_USER']||a0_0x5ea648(0xed),'password':process['env'][a0_0x5ea648(0xec)]||'postgres1234','database':process['env']['DB_NAME']||a0_0x5ea648(0xb8)};logDatabaseConfig({'host':dbConfig['host'],'port':dbConfig[a0_0x5ea648(0xe2)],'database':dbConfig[a0_0x5ea648(0xd1)],'type':a0_0x5ea648(0xb9),'user':dbConfig['user']});let pool=new Pool(dbConfig),isPoolClosed=![];function getPool(){const _0x4ef710=a0_0x5ea648;return isPoolClosed&&(logger['info']({'event':_0x4ef710(0xc2)},_0x4ef710(0xb0)),pool=new Pool(dbConfig),isPoolClosed=![]),pool;}async function executeQuery(_0x357485,_0x55f08=[]){const _0x4149ef=a0_0x5ea648,_0x460c37={'wnXTT':function(_0x1d7172){return _0x1d7172();},'vEVfS':_0x4149ef(0xb9),'dMlZf':function(_0x144578,_0x425f4d,_0x4b9a4a,_0x3b1633){return _0x144578(_0x425f4d,_0x4b9a4a,_0x3b1633);},'KgNMe':'sql_error'},_0x23c232=startQueryTimer();try{const _0xcac89c=_0x460c37['wnXTT'](getPool),_0x23e5c6=await _0xcac89c[_0x4149ef(0xc5)]();try{const _0x32ebd8=await _0x23e5c6['query'](_0x357485,_0x55f08),_0x37856d=_0x460c37[_0x4149ef(0xa8)](_0x23c232);return logQuery(_0x357485,_0x55f08,{'duration':_0x37856d,'rowsAffected':_0x32ebd8['rowCount'],'dbType':_0x460c37['vEVfS']}),_0x32ebd8[_0x4149ef(0xea)];}finally{_0x23e5c6[_0x4149ef(0xb1)]();}}catch(_0x11515f){const _0xec1b48=_0x23c232();_0x460c37['dMlZf'](logError,_0x11515f,{'event':_0x460c37[_0x4149ef(0xc9)],'query':_0x357485[_0x4149ef(0xaf)](0x0,0x1f4),'paramCount':_0x55f08['length'],'durationMs':_0xec1b48,'code':_0x11515f['code'],'dbType':_0x460c37['vEVfS']},_0x4149ef(0xc0)+_0x11515f[_0x4149ef(0xe9)]);throw _0x11515f;}}function formatResponse(_0x531ef5,_0x57cf3e=null){const _0x12263d=a0_0x5ea648,_0x1d7f0d={'lnMGm':_0x12263d(0xc6),'ubbmD':_0x12263d(0xa3),'jBGyN':'28P01','wTWpO':function(_0x1c9944,_0x5eced2){return _0x1c9944===_0x5eced2;},'PUVan':_0x12263d(0xae),'WcWVv':_0x12263d(0xeb),'qoFVM':function(_0xa54abb,_0x20baa3){return _0xa54abb===_0x20baa3;}};if(_0x57cf3e){let _0x1cf332=_0x1d7f0d[_0x12263d(0xef)];if(_0x57cf3e['message']['includes']('syntax\x20error'))_0x1cf332=_0x1d7f0d['ubbmD'];else{if(_0x57cf3e[_0x12263d(0xe3)]===_0x12263d(0xd9))_0x1cf332=_0x12263d(0xe5);else{if(_0x57cf3e[_0x12263d(0xe3)]===_0x1d7f0d[_0x12263d(0xca)])_0x1cf332=_0x12263d(0xe6);else(_0x57cf3e[_0x12263d(0xe3)]==='08006'||_0x1d7f0d[_0x12263d(0xab)](_0x57cf3e['code'],_0x12263d(0xd4)))&&(_0x1cf332=_0x1d7f0d['PUVan']);}}return{'success':![],'message':'Database\x20error:\x20'+_0x57cf3e[_0x12263d(0xe9)],'count':-0x1,'error_code':_0x1cf332};}else{if(!_0x531ef5||_0x1d7f0d[_0x12263d(0xab)](_0x531ef5['length'],0x0))return{'success':!![],'message':_0x1d7f0d[_0x12263d(0xb7)],'count':0x0,'data':[]};return{'success':!![],'message':'Query\x20returned\x20'+_0x531ef5[_0x12263d(0xdd)]+'\x20row'+(_0x1d7f0d[_0x12263d(0xbd)](_0x531ef5['length'],0x1)?'':'s')+'.','count':_0x531ef5[_0x12263d(0xdd)],'data':_0x531ef5};}}function a0_0x1153(_0x587c09,_0x3bc842){_0x587c09=_0x587c09-0xa3;const _0x583100=a0_0x5831();let _0x11532c=_0x583100[_0x587c09];if(a0_0x1153['nucuLR']===undefined){var _0x2e8436=function(_0x581364){const _0x4db9e5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3cdd8a='',_0x16651e='';for(let _0xc9c283=0x0,_0x26fb2b,_0x14a0f0,_0x528dc7=0x0;_0x14a0f0=_0x581364['charAt'](_0x528dc7++);~_0x14a0f0&&(_0x26fb2b=_0xc9c283%0x4?_0x26fb2b*0x40+_0x14a0f0:_0x14a0f0,_0xc9c283++%0x4)?_0x3cdd8a+=String['fromCharCode'](0xff&_0x26fb2b>>(-0x2*_0xc9c283&0x6)):0x0){_0x14a0f0=_0x4db9e5['indexOf'](_0x14a0f0);}for(let _0x3151f8=0x0,_0x5b4383=_0x3cdd8a['length'];_0x3151f8<_0x5b4383;_0x3151f8++){_0x16651e+='%'+('00'+_0x3cdd8a['charCodeAt'](_0x3151f8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x16651e);};a0_0x1153['QlFKSC']=_0x2e8436,a0_0x1153['zxRoDB']={},a0_0x1153['nucuLR']=!![];}const _0x4e98ba=_0x583100[0x0],_0x83610f=_0x587c09+_0x4e98ba,_0x1f4450=a0_0x1153['zxRoDB'][_0x83610f];return!_0x1f4450?(_0x11532c=a0_0x1153['QlFKSC'](_0x11532c),a0_0x1153['zxRoDB'][_0x83610f]=_0x11532c):_0x11532c=_0x1f4450,_0x11532c;}async function closePool(){const _0x594243=a0_0x5ea648,_0x83ec8f={'yAHuF':'Database\x20pool\x20closed\x20successfully','ZqfjK':function(_0x3a3848,_0x15ecfe,_0x4489d5,_0x57e124){return _0x3a3848(_0x15ecfe,_0x4489d5,_0x57e124);},'WiBji':_0x594243(0xb5),'nqulq':'db_pool_already_closed'};if(!isPoolClosed)try{isPoolClosed=!![],await pool[_0x594243(0xd8)](),logger['info']({'event':_0x594243(0xb2)},_0x83ec8f[_0x594243(0xd7)]);}catch(_0xa95d90){_0x83ec8f['ZqfjK'](logError,_0xa95d90,{'event':_0x83ec8f['WiBji']},'Error\x20closing\x20database\x20pool:\x20'+_0xa95d90['message']);}else logger['debug']({'event':_0x83ec8f['nqulq']},_0x594243(0xd6));}async function checkConnection(){const _0x3b8117=a0_0x5ea648,_0x543a75={'bhOPk':function(_0x78ba){return _0x78ba();},'rpBIc':function(_0x4761c1,_0x4091c9,_0x586320,_0x5714e4){return _0x4761c1(_0x4091c9,_0x586320,_0x5714e4);},'KwqDS':'db_connection_check_error'};try{const _0x4a51dd=_0x543a75[_0x3b8117(0xce)](getPool),_0x2f13f3=await _0x4a51dd['connect']();try{return await _0x2f13f3[_0x3b8117(0xee)](_0x3b8117(0xe1)),!![];}finally{_0x2f13f3[_0x3b8117(0xb1)]();}}catch(_0x259abf){return _0x543a75['rpBIc'](logError,_0x259abf,{'event':_0x543a75['KwqDS']},_0x3b8117(0xb3)+_0x259abf['message']),![];}}async function executeTransaction(_0x335353){const _0x5f25e6=a0_0x5ea648,_0xa0ccef={'Jrtxg':function(_0x359bd3){return _0x359bd3();},'nyGoc':function(_0x27230f,_0x41b8d8,_0x2c988a){return _0x27230f(_0x41b8d8,_0x2c988a);},'IKBch':_0x5f25e6(0xdc),'AjKVv':_0x5f25e6(0xa7),'xHvAj':function(_0x1434b0){return _0x1434b0();},'kMSHe':'postgresql','hOEFd':'COMMIT','fSZWY':function(_0x2be309,_0x1c1173,_0x23b10b){return _0x2be309(_0x1c1173,_0x23b10b);},'tffSn':_0x5f25e6(0xba),'JSrVM':'transaction_complete','ltKyw':function(_0x194dc2,_0x3cf92b,_0x504307,_0x56d878){return _0x194dc2(_0x3cf92b,_0x504307,_0x56d878);},'zpEif':_0x5f25e6(0xde)};let _0x48effa;const _0x3f54b2=_0xa0ccef['Jrtxg'](startQueryTimer);try{const _0x21dee7=getPool();_0x48effa=await _0x21dee7[_0x5f25e6(0xc5)](),_0xa0ccef[_0x5f25e6(0xcb)](logTransaction,_0xa0ccef[_0x5f25e6(0xbb)],_0x335353[_0x5f25e6(0xdd)]),await _0x48effa[_0x5f25e6(0xee)](_0xa0ccef[_0x5f25e6(0xa6)]);const _0x4b6a19=[];for(const _0x34df9c of _0x335353){const _0x3d72c7=startQueryTimer(),_0x3df926=await _0x48effa['query'](_0x34df9c[_0x5f25e6(0xe8)],_0x34df9c['params']||[]),_0x45d11b=_0xa0ccef['xHvAj'](_0x3d72c7);logQuery(_0x34df9c[_0x5f25e6(0xe8)],_0x34df9c['params']||[],{'duration':_0x45d11b,'rowsAffected':_0x3df926[_0x5f25e6(0xc8)],'dbType':_0xa0ccef[_0x5f25e6(0xc1)]}),_0x4b6a19[_0x5f25e6(0xc3)](_0x3df926['rows']);}await _0x48effa[_0x5f25e6(0xee)](_0xa0ccef['hOEFd']);const _0x2cd2fa=_0xa0ccef[_0x5f25e6(0xd0)](_0x3f54b2);return _0xa0ccef[_0x5f25e6(0xe0)](logTransaction,_0xa0ccef['tffSn'],_0x335353[_0x5f25e6(0xdd)]),logger[_0x5f25e6(0xcd)]({'event':_0xa0ccef[_0x5f25e6(0xa5)],'queryCount':_0x335353['length'],'totalDurationMs':_0x2cd2fa,'dbType':_0xa0ccef[_0x5f25e6(0xc1)]},'Transaction\x20committed\x20('+_0x2cd2fa+_0x5f25e6(0xc4)+_0x335353[_0x5f25e6(0xdd)]+'\x20queries)'),_0x4b6a19;}catch(_0x1e2db1){const _0x5c8b5c=_0x3f54b2();_0xa0ccef['ltKyw'](logError,_0x1e2db1,{'event':'transaction_error','queryCount':_0x335353[_0x5f25e6(0xdd)],'totalDurationMs':_0x5c8b5c,'code':_0x1e2db1['code'],'dbType':_0x5f25e6(0xb9)},'Transaction\x20failed:\x20'+_0x1e2db1['message']);if(_0x48effa)try{await _0x48effa[_0x5f25e6(0xee)]('ROLLBACK'),logTransaction('rollback',_0x335353['length']);}catch(_0x22c556){_0xa0ccef['ltKyw'](logError,_0x22c556,{'event':_0xa0ccef['zpEif'],'dbType':_0xa0ccef[_0x5f25e6(0xc1)]},'Error\x20rolling\x20back\x20transaction:\x20'+_0x22c556['message']);}throw _0x1e2db1;}finally{if(_0x48effa)try{_0x48effa['release']();}catch(_0x4be032){logger[_0x5f25e6(0xda)]({'event':_0x5f25e6(0xdf),'error':_0x4be032[_0x5f25e6(0xe9)],'dbType':'postgresql'},_0x5f25e6(0xa9)+_0x4be032[_0x5f25e6(0xe9)]);}}}module[a0_0x5ea648(0xaa)]={'executeQuery':executeQuery,'executeTransaction':executeTransaction,'formatResponse':formatResponse,'closePool':closePool,'getPool':getPool,'checkConnection':checkConnection};
1
+ function a0_0x4690(){const _0x42b48a=['Cg9ZDgDYzxm','mta0odK5oxzwwNPeyG','CMvSzwfZzq','mJq2nZK0mKHfufbxqG','zvnkBuO','mteZota0mZzlCeTtEwi','C3vIC3rYAw5N','Bgjxse8','zgjFy29UBMvJDgLVBL9JAgvJA19LCNjVCG','nti0ndq0tM5hqNDj','CxvLCNK','y29UBMvJDa','DxnLCG','EM9kvw8','BwvZC2fNzq','odeYmJyZnwDxve1Tyq','zgj4ytaZ','twTtCNi','C3rHCNq','Aw5MBW','v3HfDxq','zw52','Cg9ZDgDYzxnXBa','wvztsLu','CM93CW','lI9SB2DNzxi','y29Kzq','u1Lovefyx0vsuK9s','Exbtsuq','CM9SBgjHy2S','r0foz2C','uxv1A2y','ywL2t0i','zgvIDwC','mdGWmdy','Cg9YDa','vu5ltK9xtL9fuLjpuG','uxvLCNKGCMv0DxjUzwqG','rxf2zgK','rejFvvnfuG','uK9mtejbq0S','BMXiv2q','C3fS','n2PnzMHhBG','mJi3otuZmKXQwwT1va','mtKYlJe2oc4XmdaUmq','rxjYB3iGCM9SBgLUzYbIywnRihrYyw5Zywn0Aw9UoIa','ChvZAa','CM9SBgjHy2TFzxjYB3i','Aw5JBhvKzxm','rxjYB3iGy2XVC2LUzYbKyxrHyMfZzsbWB29SoIa','mdGWmde','DhjHBNnHy3rPB25Fy29TCgXLDgu','CgfYyw1Z','rxjYB3iGy2HLy2TPBMCGzgf0ywjHC2uGy29UBMvJDgLVBJOG','wxLcDKe','rgf0ywjHC2uGzxjYB3i6ia','DLPst3i','C3LUDgf4igvYCM9Y','zgjFCg9VBf9JBg9Zzv9LCNjVCG','zgf0ywjHC2u','ALvWs2O','rxjYB3iGCMvSzwfZAw5NihrYyw5Zywn0Aw9UignSAwvUDdOG','vefctevFtK9ux0zpvu5e','ndq2otK5nJbcswPOuLm','rejFueftu1DpuKq','u1fmievYCM9YoIa','BgvUz3rO','u2Lxzvu','CM93q291BNq','Ag9ZDa','DhjHBNnHy3rPB25FzxjYB3i'];a0_0x4690=function(){return _0x42b48a;};return a0_0x4690();}const a0_0x8f9c1=a0_0x4829;(function(_0x2bb946,_0x36cb6d){const _0x571e45=a0_0x4829,_0x1fc458=_0x2bb946();while(!![]){try{const _0x1ef3ab=parseInt(_0x571e45(0x95))/0x1+-parseInt(_0x571e45(0x97))/0x2+-parseInt(_0x571e45(0xc0))/0x3+-parseInt(_0x571e45(0x9d))/0x4+-parseInt(_0x571e45(0xa3))/0x5+parseInt(_0x571e45(0x99))/0x6*(-parseInt(_0x571e45(0xbf))/0x7)+parseInt(_0x571e45(0x8c))/0x8;if(_0x1ef3ab===_0x36cb6d)break;else _0x1fc458['push'](_0x1fc458['shift']());}catch(_0x28ac2f){_0x1fc458['push'](_0x1fc458['shift']());}}}(a0_0x4690,0xf15db));const {Pool}=require('pg'),{logQuery,logTransaction,startQueryTimer,logDatabaseConfig,logger,logError}=require(a0_0x8f9c1(0xad)),dbConfig={'host':process[a0_0x8f9c1(0xa9)]['DB_HOST']||a0_0x8f9c1(0xc1),'port':parseInt(process['env']['DB_PORT']||'5432'),'user':process[a0_0x8f9c1(0xa9)][a0_0x8f9c1(0xbb)]||a0_0x8f9c1(0x94),'password':process['env'][a0_0x8f9c1(0x8d)]||'postgres1234','database':process['env']['DB_NAME']||a0_0x8f9c1(0xa4)};logDatabaseConfig({'host':dbConfig[a0_0x8f9c1(0x92)],'port':dbConfig[a0_0x8f9c1(0xb7)],'database':dbConfig[a0_0x8f9c1(0x88)],'type':'postgresql','user':dbConfig[a0_0x8f9c1(0xa0)]});let pool=new Pool(dbConfig),isPoolClosed=![];function getPool(){const _0x3b6703=a0_0x8f9c1,_0x567dad={'Eqvdi':'db_pool_recreate'};return isPoolClosed&&(logger[_0x3b6703(0xa7)]({'event':_0x567dad[_0x3b6703(0xba)]},'Creating\x20new\x20database\x20pool\x20(previous\x20pool\x20was\x20closed)'),pool=new Pool(dbConfig),isPoolClosed=![]),pool;}async function executeQuery(_0x39dded,_0x5cacad=[]){const _0x338d06=a0_0x8f9c1,_0x591366={'wLskl':function(_0x1723a2){return _0x1723a2();},'VfvXB':function(_0x826959,_0x58c570,_0x3bbe39,_0x50108a){return _0x826959(_0x58c570,_0x3bbe39,_0x50108a);},'eSJmJ':'sql_error'},_0x1ec1c3=startQueryTimer();try{const _0x50b7b8=getPool(),_0x79bff4=await _0x50b7b8[_0x338d06(0x9f)]();try{const _0x428f39=await _0x79bff4[_0x338d06(0x9e)](_0x39dded,_0x5cacad),_0x313b21=_0x591366['wLskl'](_0x1ec1c3);return _0x591366['VfvXB'](logQuery,_0x39dded,_0x5cacad,{'duration':_0x313b21,'rowsAffected':_0x428f39[_0x338d06(0x91)],'dbType':_0x338d06(0xaa)}),_0x428f39[_0x338d06(0xac)];}finally{_0x79bff4['release']();}}catch(_0x438b20){const _0x3d478e=_0x1ec1c3();logError(_0x438b20,{'event':_0x591366[_0x338d06(0x98)],'query':_0x39dded[_0x338d06(0x9a)](0x0,0x1f4),'paramCount':_0x5cacad['length'],'durationMs':_0x3d478e,'code':_0x438b20[_0x338d06(0xae)],'dbType':'postgresql'},_0x338d06(0x8e)+_0x438b20['message']);throw _0x438b20;}}function formatResponse(_0x166d44,_0x1adb4c=null){const _0x41b448=a0_0x8f9c1,_0x4d7ea9={'nlHWd':_0x41b448(0xce),'vZROr':function(_0xf0b622,_0x9511a0){return _0xf0b622===_0x9511a0;},'vwnyy':'28P01','YyBvA':'No\x20data\x20found.'};if(_0x1adb4c){let _0xfc2131=_0x41b448(0xb8);if(_0x1adb4c[_0x41b448(0xa2)][_0x41b448(0xc5)](_0x4d7ea9[_0x41b448(0xbd)]))_0xfc2131=_0x41b448(0xaf);else{if(_0x4d7ea9[_0x41b448(0xcd)](_0x1adb4c['code'],'42P01'))_0xfc2131=_0x41b448(0x8b);else{if(_0x1adb4c['code']===_0x4d7ea9['vwnyy'])_0xfc2131='AUTHENTICATION_ERROR';else(_0x4d7ea9['vZROr'](_0x1adb4c[_0x41b448(0xae)],_0x41b448(0xb6))||_0x4d7ea9['vZROr'](_0x1adb4c['code'],_0x41b448(0xc7)))&&(_0xfc2131='CONNECTION_ERROR');}}return{'success':![],'message':_0x41b448(0xcc)+_0x1adb4c['message'],'count':-0x1,'error_code':_0xfc2131};}else{if(!_0x166d44||_0x4d7ea9[_0x41b448(0xcd)](_0x166d44[_0x41b448(0x8f)],0x0))return{'success':!![],'message':_0x4d7ea9[_0x41b448(0xcb)],'count':0x0,'data':[]};return{'success':!![],'message':_0x41b448(0xb9)+_0x166d44['length']+'\x20row'+(_0x166d44[_0x41b448(0x8f)]===0x1?'':'s')+'.','count':_0x166d44[_0x41b448(0x8f)],'data':_0x166d44};}}async function closePool(){const _0x1de82a=a0_0x8f9c1,_0x2f325d={'ypSID':'db_pool_closed','MkSrr':'Database\x20pool\x20closed\x20successfully','lbWHO':function(_0xe1a10e,_0x227130,_0x4cab5d,_0x471d34){return _0xe1a10e(_0x227130,_0x4cab5d,_0x471d34);},'GVrax':_0x1de82a(0xcf),'ymkKJ':'db_pool_already_closed','aivOB':'Database\x20pool\x20was\x20already\x20closed'};if(!isPoolClosed)try{isPoolClosed=!![],await pool['end'](),logger['info']({'event':_0x2f325d[_0x1de82a(0xb0)]},_0x2f325d[_0x1de82a(0xa5)]);}catch(_0x1ad9f6){_0x2f325d[_0x1de82a(0x9b)](logError,_0x1ad9f6,{'event':_0x2f325d['GVrax']},_0x1de82a(0xc6)+_0x1ad9f6['message']);}else logger[_0x1de82a(0xb5)]({'event':_0x2f325d['ymkKJ']},_0x2f325d[_0x1de82a(0xb4)]);}function a0_0x4829(_0x527f9a,_0x4caec6){_0x527f9a=_0x527f9a-0x88;const _0x46906a=a0_0x4690();let _0x482962=_0x46906a[_0x527f9a];if(a0_0x4829['hcBQbs']===undefined){var _0x1b8781=function(_0x53adcd){const _0x3cfafa='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x133638='',_0x4a018e='';for(let _0x288311=0x0,_0x312f3f,_0x567f5b,_0x44a4ca=0x0;_0x567f5b=_0x53adcd['charAt'](_0x44a4ca++);~_0x567f5b&&(_0x312f3f=_0x288311%0x4?_0x312f3f*0x40+_0x567f5b:_0x567f5b,_0x288311++%0x4)?_0x133638+=String['fromCharCode'](0xff&_0x312f3f>>(-0x2*_0x288311&0x6)):0x0){_0x567f5b=_0x3cfafa['indexOf'](_0x567f5b);}for(let _0x1f4fb0=0x0,_0x1fd10d=_0x133638['length'];_0x1f4fb0<_0x1fd10d;_0x1f4fb0++){_0x4a018e+='%'+('00'+_0x133638['charCodeAt'](_0x1f4fb0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4a018e);};a0_0x4829['DjNrTi']=_0x1b8781,a0_0x4829['GoUENV']={},a0_0x4829['hcBQbs']=!![];}const _0x1eaf2b=_0x46906a[0x0],_0x2f4641=_0x527f9a+_0x1eaf2b,_0x2eac16=a0_0x4829['GoUENV'][_0x2f4641];return!_0x2eac16?(_0x482962=a0_0x4829['DjNrTi'](_0x482962),a0_0x4829['GoUENV'][_0x2f4641]=_0x482962):_0x482962=_0x2eac16,_0x482962;}async function checkConnection(){const _0x1e6fb4=a0_0x8f9c1;try{const _0x22831d=getPool(),_0x4cc4cd=await _0x22831d[_0x1e6fb4(0x9f)]();try{return await _0x4cc4cd[_0x1e6fb4(0x9e)]('SELECT\x201'),!![];}finally{_0x4cc4cd[_0x1e6fb4(0x96)]();}}catch(_0x4ada87){return logError(_0x4ada87,{'event':_0x1e6fb4(0x9c)},_0x1e6fb4(0xca)+_0x4ada87[_0x1e6fb4(0xa2)]),![];}}async function executeTransaction(_0x413b70){const _0xb91682=a0_0x8f9c1,_0x5a1d06={'YVSJU':function(_0x24d8fd){return _0x24d8fd();},'IYTKv':function(_0x278d3e,_0x49f9bd,_0x2a68ca){return _0x278d3e(_0x49f9bd,_0x2a68ca);},'zIlVq':_0xb91682(0xa6),'ubqRO':function(_0x20c7a8){return _0x20c7a8();},'Quukf':'postgresql','GANgg':'COMMIT','JEZjH':'commit','Oaixt':function(_0x54340d){return _0x54340d();},'SiWeU':function(_0x3ed494,_0x2bdeb1,_0x2c5113,_0x4f7a0e){return _0x3ed494(_0x2bdeb1,_0x2c5113,_0x4f7a0e);},'jUpKj':_0xb91682(0x93),'zoJUo':_0xb91682(0xbc),'WxEut':_0xb91682(0xc4)};let _0x19f191;const _0x13030b=_0x5a1d06[_0xb91682(0xab)](startQueryTimer);try{const _0xbb9eec=getPool();_0x19f191=await _0xbb9eec[_0xb91682(0x9f)](),_0x5a1d06['IYTKv'](logTransaction,_0x5a1d06['zIlVq'],_0x413b70[_0xb91682(0x8f)]),await _0x19f191['query']('BEGIN');const _0xa8e7e7=[];for(const _0x568fee of _0x413b70){const _0x38da73=startQueryTimer(),_0x3f1ccd=await _0x19f191[_0xb91682(0x9e)](_0x568fee[_0xb91682(0xbe)],_0x568fee['params']||[]),_0x246ddd=_0x5a1d06['ubqRO'](_0x38da73);logQuery(_0x568fee['sql'],_0x568fee[_0xb91682(0xc9)]||[],{'duration':_0x246ddd,'rowsAffected':_0x3f1ccd[_0xb91682(0x91)],'dbType':_0x5a1d06[_0xb91682(0xb3)]}),_0xa8e7e7[_0xb91682(0xc3)](_0x3f1ccd['rows']);}await _0x19f191['query'](_0x5a1d06[_0xb91682(0xb2)]);const _0x2e5406=_0x13030b();return logTransaction(_0x5a1d06['JEZjH'],_0x413b70['length']),logger['info']({'event':_0xb91682(0xc8),'queryCount':_0x413b70['length'],'totalDurationMs':_0x2e5406,'dbType':'postgresql'},'Transaction\x20committed\x20('+_0x2e5406+'ms,\x20'+_0x413b70['length']+'\x20queries)'),_0xa8e7e7;}catch(_0x3a6075){const _0x1c12f0=_0x5a1d06['Oaixt'](_0x13030b);_0x5a1d06[_0xb91682(0x90)](logError,_0x3a6075,{'event':_0x5a1d06[_0xb91682(0x89)],'queryCount':_0x413b70['length'],'totalDurationMs':_0x1c12f0,'code':_0x3a6075[_0xb91682(0xae)],'dbType':'postgresql'},'Transaction\x20failed:\x20'+_0x3a6075['message']);if(_0x19f191)try{await _0x19f191[_0xb91682(0x9e)](_0x5a1d06[_0xb91682(0xa1)]),logTransaction(_0xb91682(0xb1),_0x413b70[_0xb91682(0x8f)]);}catch(_0xd63663){logError(_0xd63663,{'event':_0x5a1d06[_0xb91682(0xa8)],'dbType':_0x5a1d06[_0xb91682(0xb3)]},_0xb91682(0xc2)+_0xd63663[_0xb91682(0xa2)]);}throw _0x3a6075;}finally{if(_0x19f191)try{_0x19f191[_0xb91682(0x96)]();}catch(_0x40d119){logger['error']({'event':'client_release_error','error':_0x40d119['message'],'dbType':'postgresql'},_0xb91682(0x8a)+_0x40d119[_0xb91682(0xa2)]);}}}module['exports']={'executeQuery':executeQuery,'executeTransaction':executeTransaction,'formatResponse':formatResponse,'closePool':closePool,'getPool':getPool,'checkConnection':checkConnection};
@@ -1 +1 @@
1
- const a0_0xb3c40d=a0_0x1e59;(function(_0x566a11,_0x59bf2f){const _0x2ec20b=a0_0x1e59,_0x339858=_0x566a11();while(!![]){try{const _0x4243f1=parseInt(_0x2ec20b(0x1d1))/0x1*(-parseInt(_0x2ec20b(0x1de))/0x2)+parseInt(_0x2ec20b(0x202))/0x3+-parseInt(_0x2ec20b(0x201))/0x4+parseInt(_0x2ec20b(0x1e1))/0x5+-parseInt(_0x2ec20b(0x1be))/0x6*(-parseInt(_0x2ec20b(0x1d5))/0x7)+parseInt(_0x2ec20b(0x1bb))/0x8*(parseInt(_0x2ec20b(0x258))/0x9)+parseInt(_0x2ec20b(0x234))/0xa;if(_0x4243f1===_0x59bf2f)break;else _0x339858['push'](_0x339858['shift']());}catch(_0xd546c0){_0x339858['push'](_0x339858['shift']());}}}(a0_0x2c1a,0xa9de2));const pino=require(a0_0xb3c40d(0x24e)),fs=require('fs'),path=require(a0_0xb3c40d(0x1f7));let logToFile=![],logDir='./logs',serviceName='restforge',sqlLogEnabled=![],sqlLogLevel=a0_0xb3c40d(0x1c8),sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;const prettyPrintOptions={'colorize':!![],'translateTime':a0_0xb3c40d(0x21d),'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_0xb3c40d(0x1bf),'customColors':'info:blue,warn:yellow,error:red,debug:gray','hideObject':!![]},isDevelopment=process[a0_0xb3c40d(0x208)]['NODE_ENV']!=='production',logLevel=process['env']['LOG_LEVEL']||'info';let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':a0_0xb3c40d(0x24d),'options':prettyPrintOptions}:undefined,'base':{'service':'restforge','version':process[a0_0xb3c40d(0x208)]['APP_VERSION']||a0_0xb3c40d(0x233),'env':process[a0_0xb3c40d(0x208)][a0_0xb3c40d(0x21b)]||'development'},'timestamp':pino['stdTimeFunctions']['isoTime'],'redact':{'paths':[a0_0xb3c40d(0x23b),'req.headers[\x22x-api-key\x22]','password','token',a0_0xb3c40d(0x20d),'DB_PASSWORD',a0_0xb3c40d(0x1c1)],'censor':'[REDACTED]'},'serializers':{'req':_0x3ad3e8=>({'id':_0x3ad3e8['id'],'method':_0x3ad3e8[a0_0xb3c40d(0x23d)],'url':_0x3ad3e8[a0_0xb3c40d(0x1ee)],'path':_0x3ad3e8['path'],'remoteAddress':_0x3ad3e8['ip']||_0x3ad3e8[a0_0xb3c40d(0x214)]?.['remoteAddress']}),'res':_0x9eb18e=>({'statusCode':_0x9eb18e['statusCode'],'headers':_0x9eb18e['getHeaders']?.()}),'err':pino['stdSerializers'][a0_0xb3c40d(0x1c3)]}});function initFileLogging(){const _0x5d93c2=a0_0xb3c40d,_0x54e4a9={'tXUKR':_0x5d93c2(0x1f2),'HpJLp':function(_0x2484f8,_0x47d80e){return _0x2484f8===_0x47d80e;},'cpGeR':function(_0x1ea0b5,_0x5e0296){return _0x1ea0b5(_0x5e0296);},'CfuPq':'file_logging_enabled','Kmiol':_0x5d93c2(0x1c0),'GlllF':'info'};if(fileLoggingInitialized)return;logToFile=process[_0x5d93c2(0x208)][_0x5d93c2(0x1f1)]===_0x54e4a9['tXUKR'],logDir=process['env'][_0x5d93c2(0x1eb)]||_0x5d93c2(0x213),serviceName=process['env']['SERVICE_NAME']||_0x5d93c2(0x249),sqlLogEnabled=_0x54e4a9['HpJLp'](process['env'][_0x5d93c2(0x1cc)],_0x54e4a9[_0x5d93c2(0x212)]),sqlLogLevel=process[_0x5d93c2(0x208)][_0x5d93c2(0x1ed)]||_0x5d93c2(0x1c8),sqlLogParams=process[_0x5d93c2(0x208)]['SQL_LOG_PARAMS']!=='false',sqlLogSlowThreshold=_0x54e4a9[_0x5d93c2(0x216)](parseInt,process['env']['SQL_LOG_SLOW_THRESHOLD'])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x3e0b82=path[_0x5d93c2(0x247)](process[_0x5d93c2(0x24f)](),logDir);try{!fs['existsSync'](_0x3e0b82)&&fs[_0x5d93c2(0x1f5)](_0x3e0b82,{'recursive':!![]});}catch(_0x182849){console[_0x5d93c2(0x1d4)]('Failed\x20to\x20create\x20log\x20directory\x20'+_0x3e0b82+':',_0x182849['message']),fileLoggingInitialized=!![];return;}const _0x578550=path['join'](_0x3e0b82,_0x5d93c2(0x1c0)),_0x4bf42a=path[_0x5d93c2(0x1ea)](_0x3e0b82,_0x5d93c2(0x20f));try{appLogStream=fs['createWriteStream'](_0x578550,{'flags':'a'}),errorLogStream=fs['createWriteStream'](_0x4bf42a,{'flags':'a'}),fileLoggingInitialized=!![];const _0x23860e={'event':_0x54e4a9['CfuPq'],'logDir':_0x3e0b82,'files':[_0x54e4a9['Kmiol'],'error.log']},_0x1ca4f3=_0x5d93c2(0x21f)+_0x3e0b82;logger[_0x5d93c2(0x24b)](_0x23860e,_0x1ca4f3),writeToFileLog({..._0x23860e,'level':_0x5d93c2(0x24b),'msg':_0x1ca4f3,'time':new Date()['toISOString']()},_0x54e4a9[_0x5d93c2(0x25e)]);}catch(_0x42a0a9){console['error']('Failed\x20to\x20create\x20log\x20streams:',_0x42a0a9['message']),fileLoggingInitialized=!![];}}function a0_0x2c1a(){const _0x3494b3=['zw52AxjVBM1LBNq','r2XSBey','v0nntw8','tM9Kzs5QCW','nJu2oePqq3rjyW','AgvHBhrOq2HLy2S','revmrvrf','mtjMB1rLCMe','E21Zz30','yxbWlMXVzW','sLDux1nfq1jfva','ufjoruK','zxjY','zgf0ywjHC2u','rvHvq1K','vg95uKm','u0rwrw4','zgvIDwC','Dg9Rzw4','su5trvju','yxbPx2TLEq','u1fmx0Xpr19ftKfcteve','zeDUBLG','ChjVAMvJDa','BMvcz1O','Ahj0Aw1L','nZC5sxzXtK1j','yNv6v0u','D2fYBMLUzW','zxjYB3i','mtyZmJeWnNHMsMniva','Bw9KDwXL','rxjYB3i','zeLWqvG','BNDSENa','ChjVAMvJDf9SB2fKzwq','u250ENy','zuTevfe','Dg9mB3DLCKnHC2u','mtq4nfj1qNnwqW','iokvKqRILzeGienVBMzPzYaGicaGidOG','ifTtte9xxq','mZyYmdeWCxLIz2jh','y0zevKu','ywnJzxnZx3rVA2vU','AejcC1O','BMfTzq','yNzWy28','vvbeqvrf','CgfKrw5K','u3fgDwO','AM9PBG','te9hx0rjuG','vfjbtLnbq1rjt05Fq09ntuLu','u1fmx0Xpr19mrvzfta','DxjS','ChjPDMf0zwTLEq','tw9mCLm','te9hx1rpx0zjteu','Dhj1zq','rgvMyxvSDa','zMf0ywW','BwTKAxjtEw5J','Ag9ZDa','Cgf0Aa','yxv0Ag9YAxPHDgLVBG','w09lxsbtzxj2zxiGCMvHzhKGB24GCg9YDca','C3rHDhvZ','BNnTvw4','C29Tzq','BwfW','q2PkENu','BxmP','tgfYt1y','nda0mZG1mMXuDeHZzW','mtKYntCYn0HPr3nbCG','y3jLzgvUDgLHBhm','Bwf0y2G','u2P4r3a','vfjbtLnbq1rjt05FuK9mtejbq0S','y29UzMLNrMLSzq','zw52','DxnLCG','C3rHy2S','CMPmu3G','sgjrtNG','yxbPs2v5','ChjPDMf0zv9RzxK','zxjYB3iUBg9N','zw5KCg9PBNrFCMvNAxn0zxjLza','w1jfrefdvevexq','DfHvs1i','lI9SB2DZ','y29UBMvJDgLVBG','D2fYBG','y3bhzvi','C3rHCNrZv2L0Aa','CgfZC3DK','AMHXy0G','Dg9ju09tDhjPBMC','tK9erv9ftLy','y29Kzq','u1LtoKHioK1noNnZ','AKf3t2m','rMLSzsbSB2DNAw5NigvUywjSzwq6ia','Dw5JyxvNAhrfEgnLChrPB24','BwvZC2fNzq','yxbPA2v5','Dw5RBM93BG','B2jQzwn0','ANnVBG','Dg9gAxHLza','CMrpzhO','A0rXDwi','CMvTB3rLqwrKCMvZCW','DhjPBq','y3jLzgL0y2fYza','z2XVyMfSx2vYCM9Yx2HHBMrSzxjZx3nLDhvW','y3jLzgvUDgLHBa','A3v1vK0','zgz0y1G','CxvLCNK','zgHhsvq','q1jfqvrf','ms4WlJu','otCYnZCYmgrOww5UrW','A1ncBvC','Bg9N','Cg9YDa','DhLWzq','Aw5JBhvKzxm','Bxntvge','CMvXlMHLywrLCNmUyxv0Ag9YAxPHDgLVBG','AxnbCNjHEq','Bwv0Ag9K','Dg9vChbLCKnHC2u','C3rHDhvZq29Kzq','zNL0B2O','iokvKqRILzeGifbYB2PLy3qGicaGidOG','C2vYDMLJzuLUzM8','DwfMu2q','Ec1Yzxf1zxn0lwLK','BgvUz3rO','zxHWB3j0CW','CMvZB2X2zq','AgPlwKK','CMvZDgzVCMDL','D3jPDgu','Aw5MBW','y3jLzgL0x2nHCMq','CgLUBY1WCMv0DhK','CgLUBW','y3DK','wgDjwMC','y2HPBgq','CgfYyw1Z','r2XVyMfSigvYCM9YigHHBMrSzxjZigLUAxrPywXPEMvK','D0XnthK','CxbdDwC','thnzD0i','yMfZzvvYBa','mtq0mfvTtfPVra','vLf6ywq','zgLTDem','ChDK','Buvnzhq'];a0_0x2c1a=function(){return _0x3494b3;};return a0_0x2c1a();}function a0_0x1e59(_0x5b4dc3,_0xdea4ae){_0x5b4dc3=_0x5b4dc3-0x1ba;const _0x2c1ac3=a0_0x2c1a();let _0x1e5987=_0x2c1ac3[_0x5b4dc3];if(a0_0x1e59['yaSnbI']===undefined){var _0xec708e=function(_0x19f6e9){const _0x311f6c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x32344b='',_0x185404='';for(let _0x420b84=0x0,_0x132f76,_0x5251f3,_0x9a7f10=0x0;_0x5251f3=_0x19f6e9['charAt'](_0x9a7f10++);~_0x5251f3&&(_0x132f76=_0x420b84%0x4?_0x132f76*0x40+_0x5251f3:_0x5251f3,_0x420b84++%0x4)?_0x32344b+=String['fromCharCode'](0xff&_0x132f76>>(-0x2*_0x420b84&0x6)):0x0){_0x5251f3=_0x311f6c['indexOf'](_0x5251f3);}for(let _0x3f62f2=0x0,_0x9f5e61=_0x32344b['length'];_0x3f62f2<_0x9f5e61;_0x3f62f2++){_0x185404+='%'+('00'+_0x32344b['charCodeAt'](_0x3f62f2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x185404);};a0_0x1e59['dUpFeB']=_0xec708e,a0_0x1e59['wGaNjA']={},a0_0x1e59['yaSnbI']=!![];}const _0x116038=_0x2c1ac3[0x0],_0x3a99fa=_0x5b4dc3+_0x116038,_0x45fbc8=a0_0x1e59['wGaNjA'][_0x3a99fa];return!_0x45fbc8?(_0x1e5987=a0_0x1e59['dUpFeB'](_0x1e5987),a0_0x1e59['wGaNjA'][_0x3a99fa]=_0x1e5987):_0x1e5987=_0x45fbc8,_0x1e5987;}function writeToFileLog(_0x448973,_0x8e685f){const _0xeffc81=a0_0xb3c40d,_0x20e848={'EXUCY':function(_0x2e6f19,_0x40988d){return _0x2e6f19===_0x40988d;},'ubynz':_0xeffc81(0x1d4),'dGnnX':_0xeffc81(0x1f4)};if(!logToFile||!appLogStream)return;const _0x39b4aa={'service':serviceName,..._0x448973},_0x1a461e=JSON['stringify'](_0x39b4aa)+'\x0a';appLogStream[_0xeffc81(0x24a)](_0x1a461e),(_0x20e848[_0xeffc81(0x1c5)](_0x8e685f,_0x20e848['ubynz'])||_0x20e848['EXUCY'](_0x8e685f,_0x20e848[_0xeffc81(0x1cd)]))&&(errorLogStream&&errorLogStream[_0xeffc81(0x24a)](_0x1a461e));}const createRequestLogger=(_0x7072c7={})=>{const _0x54ca81=a0_0xb3c40d;return logger[_0x54ca81(0x251)](_0x7072c7);},logServerStart=_0x523e7b=>{const _0x26186a=a0_0xb3c40d,_0x50fec9={'XgIZg':_0x26186a(0x1ba),'neBgZ':'N/A','HYbxK':_0x26186a(0x1f3),'WCMMo':'server_starting','CjJzu':'info'},_0x5e3f37='\x0a╔═══════════════════════════════════════════════════════╗\x0a║\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20RESTFORGE\x20RUNTIME\x20SERVER\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20║\x0a╠═══════════════════════════════════════════════════════╣\x0a║\x20\x20Environment\x20:\x20'+(_0x523e7b[_0x26186a(0x25d)]||_0x50fec9[_0x26186a(0x250)])['padEnd'](0x26)+_0x26186a(0x241)+(_0x523e7b[_0x26186a(0x1ce)]||_0x50fec9[_0x26186a(0x1cf)])['padEnd'](0x26)+'\x20║\x0a║\x20\x20Port\x20\x20\x20\x20\x20\x20\x20\x20:\x20'+String(_0x523e7b[_0x26186a(0x237)]||0xbb8)[_0x26186a(0x1e8)](0x26)+_0x26186a(0x1df)+(_0x523e7b[_0x26186a(0x207)]||_0x50fec9['HYbxK'])['padEnd'](0x26)+'\x20║\x0a║\x20\x20API\x20Key\x20\x20\x20\x20\x20:\x20'+(_0x523e7b['apiKey']?'ACTIVE':'NOT\x20ACTIVE')[_0x26186a(0x1e8)](0x26)+'\x20║\x0a╚═══════════════════════════════════════════════════════╝';console[_0x26186a(0x236)](_0x5e3f37);const _0x456b62={'event':_0x50fec9[_0x26186a(0x25f)],'project':_0x523e7b[_0x26186a(0x1ce)],'port':_0x523e7b['port'],'config':_0x523e7b[_0x26186a(0x207)],'apiKeyEnabled':!!_0x523e7b['apiKey']};logger[_0x26186a(0x24b)](_0x456b62),writeToFileLog({..._0x456b62,'level':_0x50fec9[_0x26186a(0x1fe)],'msg':'Server\x20starting:\x20'+_0x523e7b[_0x26186a(0x1ce)]+'\x20on\x20port\x20'+_0x523e7b['port'],'time':new Date()[_0x26186a(0x21a)]()},_0x26186a(0x24b));},logServerReady=_0x5466b4=>{const _0x311685=a0_0xb3c40d,_0x286bf7={'msSTa':'server_ready','MoLrS':function(_0x321f51,_0x378eba,_0x3df27a){return _0x321f51(_0x378eba,_0x3df27a);}},_0x2891c6={'event':_0x286bf7[_0x311685(0x23a)],'port':_0x5466b4[_0x311685(0x237)],'module':_0x5466b4[_0x311685(0x1d6)],'healthCheck':_0x5466b4[_0x311685(0x1bc)],'serviceInfo':_0x5466b4[_0x311685(0x242)],'baseUrl':_0x5466b4[_0x311685(0x257)]},_0x527b26=_0x311685(0x1f9)+_0x5466b4['port'];logger[_0x311685(0x24b)](_0x2891c6,_0x527b26),_0x286bf7[_0x311685(0x1f0)](writeToFileLog,{..._0x2891c6,'level':_0x311685(0x24b),'msg':_0x527b26,'time':new Date()['toISOString']()},_0x311685(0x24b)),_0x5466b4['healthCheck']&&logger[_0x311685(0x24b)]('\x20\x20Health:\x20'+_0x5466b4['healthCheck']),_0x5466b4[_0x311685(0x242)]&&logger['info']('\x20\x20Info:\x20\x20\x20'+_0x5466b4[_0x311685(0x242)]),_0x5466b4['baseUrl']&&logger[_0x311685(0x24b)]('\x20\x20URL:\x20\x20\x20\x20'+_0x5466b4['baseUrl']);},logProjectLoaded=(_0x2fce1f,_0x2b34d6)=>{const _0x4e24a4=a0_0xb3c40d,_0x33cc95={'VQzad':_0x4e24a4(0x1da),'kkHqf':_0x4e24a4(0x24b)},_0x1945fb={'event':_0x33cc95[_0x4e24a4(0x259)],'project':_0x2fce1f,'path':_0x2b34d6},_0x13587b='[OK]\x20Project\x20loaded:\x20'+_0x2fce1f;logger[_0x4e24a4(0x24b)](_0x1945fb,_0x13587b),writeToFileLog({..._0x1945fb,'level':_0x33cc95['kkHqf'],'msg':_0x13587b,'time':new Date()['toISOString']()},'info');},logEndpointRegistered=(_0x3ab54a,_0xdeb896)=>{const _0x46c79c=a0_0xb3c40d,_0x4675fe={'fytoj':_0x46c79c(0x210)},_0x4ec04d={'event':_0x4675fe[_0x46c79c(0x240)],'endpoint':_0x3ab54a,'route':_0xdeb896},_0x3de1c7='\x20\x20→\x20'+_0x3ab54a+':\x20'+_0xdeb896;logger['debug'](_0x4ec04d,_0x3de1c7),writeToFileLog({..._0x4ec04d,'level':_0x46c79c(0x1c8),'msg':_0x3de1c7,'time':new Date()['toISOString']()},_0x46c79c(0x1c8));},logDatabaseConfig=_0x3769c5=>{const _0x14e362=a0_0xb3c40d,_0x730621={'SDVEn':'database_config'},_0x255df5={'event':_0x730621[_0x14e362(0x1c7)],'host':_0x3769c5[_0x14e362(0x1f6)],'port':_0x3769c5['port'],'database':_0x3769c5['database'],'type':_0x3769c5[_0x14e362(0x238)],'user':_0x3769c5[_0x14e362(0x209)]},_0x1e78f5='Database:\x20'+_0x3769c5['type']+'://'+_0x3769c5['host']+':'+_0x3769c5['port']+'/'+_0x3769c5[_0x14e362(0x1c4)];logger[_0x14e362(0x1c8)](_0x255df5,_0x1e78f5),writeToFileLog({..._0x255df5,'level':_0x14e362(0x1c8),'msg':_0x1e78f5,'time':new Date()[_0x14e362(0x21a)]()},'debug');},logRequest=(_0x663bc4,_0x5851c1,_0x1b0440)=>{const _0x1708c7=a0_0xb3c40d,_0x3bc1b0={'kuuVM':'http_request','HbQNx':_0x1708c7(0x24b),'PRNEI':function(_0x2ac7b5,_0x568183){return _0x2ac7b5>=_0x568183;},'wfLmy':function(_0x2707ca,_0x2d02b6){return _0x2707ca>=_0x2d02b6;},'uafSd':'warn','rdOdz':function(_0x411b83,_0x30862a,_0x31cd42){return _0x411b83(_0x30862a,_0x31cd42);}},_0x2ecea6={'event':_0x3bc1b0[_0x1708c7(0x22e)],'method':_0x663bc4['method'],'path':_0x663bc4[_0x1708c7(0x1f7)],'statusCode':_0x5851c1['statusCode'],'durationMs':_0x1b0440,'ip':_0x663bc4['ip']},_0x40bdc6=_0x663bc4[_0x1708c7(0x23d)]+'\x20'+_0x663bc4[_0x1708c7(0x1f7)]+'\x20-\x20'+_0x5851c1['statusCode']+'\x20('+_0x1b0440+'ms)';let _0x5c0e4c=_0x3bc1b0[_0x1708c7(0x20c)];if(_0x3bc1b0[_0x1708c7(0x1c2)](_0x5851c1[_0x1708c7(0x23f)],0x1f4))_0x5c0e4c='error',logger[_0x1708c7(0x1d4)](_0x2ecea6,_0x40bdc6);else _0x3bc1b0['wfLmy'](_0x5851c1[_0x1708c7(0x23f)],0x190)?(_0x5c0e4c=_0x3bc1b0[_0x1708c7(0x243)],logger[_0x1708c7(0x215)](_0x2ecea6,_0x40bdc6)):logger['info'](_0x2ecea6,_0x40bdc6);_0x3bc1b0[_0x1708c7(0x227)](writeToFileLog,{..._0x2ecea6,'level':_0x5c0e4c,'msg':_0x40bdc6,'time':new Date()[_0x1708c7(0x21a)]()},_0x5c0e4c);},SENSITIVE_PARAM_PATTERNS=['password','passwd','pwd','token',a0_0xb3c40d(0x1e3),'refresh_token','secret','api_secret',a0_0xb3c40d(0x222),a0_0xb3c40d(0x1cb),a0_0xb3c40d(0x22d),a0_0xb3c40d(0x203),'pin','otp',a0_0xb3c40d(0x20e),a0_0xb3c40d(0x1ef)],redactSensitiveParams=(_0x51b8c1,_0x1b61aa)=>{const _0x10486a=a0_0xb3c40d,_0x39e0e6={'amGWm':'[REDACTED]','YJcOR':'string','RGnam':'[REDACTED:token]','uRrzB':function(_0x37e74b,_0x2d091b){return _0x37e74b===_0x2d091b;}};if(!_0x51b8c1||_0x39e0e6['uRrzB'](_0x51b8c1[_0x10486a(0x245)],0x0))return _0x51b8c1;const _0x4535a9=_0x1b61aa[_0x10486a(0x1dd)](),_0x24af1c=_0x4535a9[_0x10486a(0x204)](/\(([^)]+)\)\s*values/i);let _0x2b02f4=[];_0x24af1c&&(_0x2b02f4=_0x24af1c[0x1]['split'](',')['map'](_0x32c07f=>_0x32c07f[_0x10486a(0x22a)]()[_0x10486a(0x1dd)]()));const _0x18da64=_0x4535a9[_0x10486a(0x204)](/set\s+(.+?)(?:\s+where|$)/i);if(_0x18da64){const _0x41ab33=_0x18da64[0x1],_0x92f4ba=_0x41ab33[_0x10486a(0x204)](/(\w+)\s*=/g);_0x92f4ba&&(_0x2b02f4=_0x92f4ba[_0x10486a(0x1fd)](_0x557d83=>_0x557d83['replace'](/\s*=/,'')[_0x10486a(0x22a)]()[_0x10486a(0x1dd)]()));}return _0x51b8c1['map']((_0x5947e1,_0x3ba427)=>{const _0x97d2ff=_0x10486a;if(_0x2b02f4[_0x3ba427]){const _0x476b96=_0x2b02f4[_0x3ba427],_0x42d613=SENSITIVE_PARAM_PATTERNS[_0x97d2ff(0x1fc)](_0x3fa47a=>_0x476b96['includes'](_0x3fa47a));if(_0x42d613)return _0x39e0e6['amGWm'];}if(typeof _0x5947e1===_0x39e0e6['YJcOR']&&_0x5947e1['length']>0x20){if(/^[a-zA-Z0-9+/=_.-]+$/['test'](_0x5947e1)&&_0x5947e1[_0x97d2ff(0x239)]('.'))return _0x39e0e6['RGnam'];if(/^[a-fA-F0-9]{32,}$/['test'](_0x5947e1))return'[REDACTED:hash]';}return _0x5947e1;});},parseQueryMetadata=_0x4a082a=>{const _0x1ecb48=a0_0xb3c40d,_0x3a9f3b={'Caxde':'UNKNOWN','rKeom':'SELECT','dIpAX':_0x1ecb48(0x1ca),'buzWE':_0x1ecb48(0x1e7),'ghzbu':_0x1ecb48(0x1bd),'wLMLy':'START\x20TRANSACTION','AqVAv':'ROLLBACK','tOHtP':_0x1ecb48(0x206),'IwzUi':'DROP'},_0x88656b=_0x4a082a[_0x1ecb48(0x22a)](),_0x53282c=_0x88656b[_0x1ecb48(0x23e)]();let _0x3dd6c3=_0x3a9f3b['Caxde'],_0x176571=null;if(_0x53282c['startsWith']('SELECT')){_0x3dd6c3=_0x3a9f3b['rKeom'];const _0x36e9f8=_0x88656b['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x176571=_0x36e9f8?_0x36e9f8[0x1]:null;}else{if(_0x53282c['startsWith'](_0x3a9f3b['dIpAX'])){_0x3dd6c3=_0x3a9f3b[_0x1ecb48(0x1d8)];const _0x454604=_0x88656b[_0x1ecb48(0x204)](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x176571=_0x454604?_0x454604[0x1]:null;}else{if(_0x53282c[_0x1ecb48(0x217)]('UPDATE')){_0x3dd6c3=_0x3a9f3b[_0x1ecb48(0x1d2)];const _0x4ffc06=_0x88656b['match'](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x176571=_0x4ffc06?_0x4ffc06[0x1]:null;}else{if(_0x53282c['startsWith']('DELETE')){_0x3dd6c3=_0x3a9f3b['ghzbu'];const _0x4deded=_0x88656b[_0x1ecb48(0x204)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x176571=_0x4deded?_0x4deded[0x1]:null;}else{if(_0x53282c['startsWith']('BEGIN')||_0x53282c['startsWith'](_0x3a9f3b[_0x1ecb48(0x254)]))_0x3dd6c3='TRANSACTION_BEGIN';else{if(_0x53282c['startsWith']('COMMIT'))_0x3dd6c3=_0x1ecb48(0x1ec);else{if(_0x53282c[_0x1ecb48(0x217)](_0x3a9f3b['AqVAv']))_0x3dd6c3=_0x3a9f3b['tOHtP'];else{if(_0x53282c[_0x1ecb48(0x217)](_0x1ecb48(0x232)))_0x3dd6c3='DDL_CREATE';else{if(_0x53282c[_0x1ecb48(0x217)]('ALTER'))_0x3dd6c3='DDL_ALTER';else _0x53282c['startsWith'](_0x3a9f3b['IwzUi'])&&(_0x3dd6c3='DDL_DROP');}}}}}}}}return{'type':_0x3dd6c3,'table':_0x176571};},startQueryTimer=()=>{const _0x1207f7={'bfCBc':function(_0xc638d2,_0xb07ba0){return _0xc638d2(_0xb07ba0);},'mAfoH':function(_0x405fdf,_0x6810d0){return _0x405fdf/_0x6810d0;}},_0x306429=process['hrtime']();return()=>{const _0x94578b=a0_0x1e59,[_0x22205b,_0x59fd85]=process[_0x94578b(0x1d0)](_0x306429);return _0x1207f7['bfCBc'](parseFloat,(_0x22205b*0x3e8+_0x1207f7['mAfoH'](_0x59fd85,0xf4240))[_0x94578b(0x226)](0x2));};},logQuery=(_0x45c4d7,_0x52e04a=[],_0x5a938d={})=>{const _0x197660=a0_0xb3c40d,_0x1dc20d={'eKDTQ':'db_query','SjxGp':function(_0x13020e,_0x48a153){return _0x13020e>_0x48a153;},'dimtC':function(_0x254dbf,_0x125765,_0x298e5b){return _0x254dbf(_0x125765,_0x298e5b);},'rjLSx':function(_0x4f4285,_0x21c9d1){return _0x4f4285!==_0x21c9d1;},'Sntzv':function(_0x59eccc,_0x395c38){return _0x59eccc||_0x395c38;},'qpCug':_0x197660(0x223),'dhGIT':function(_0x21864f,_0x1e4f1f){return _0x21864f!==_0x1e4f1f;},'fnZuo':_0x197660(0x1e0),'hzkpJ':_0x197660(0x215),'JfimB':'info'};if(!sqlLogEnabled){logger[_0x197660(0x1c8)]({'event':_0x1dc20d[_0x197660(0x1dc)],'query':_0x45c4d7['substring'](0x0,0xc8),'paramCount':_0x52e04a[_0x197660(0x245)]},'DB\x20Query');return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType='postgresql'}=_0x5a938d,{type:_0x5ce89a,table:_0x72dc75}=parseQueryMetadata(_0x45c4d7),_0x199ea4={'event':'sql_query','queryType':_0x5ce89a,'table':_0x72dc75,'query':_0x45c4d7,'paramCount':_0x52e04a['length'],'dbType':dbType};sqlLogParams&&_0x1dc20d['SjxGp'](_0x52e04a['length'],0x0)&&(_0x199ea4[_0x197660(0x252)]=_0x1dc20d[_0x197660(0x25a)](redactSensitiveParams,_0x52e04a,_0x45c4d7));duration!==null&&(_0x199ea4['durationMs']=duration,_0x199ea4['isSlow']=duration>sqlLogSlowThreshold);_0x1dc20d[_0x197660(0x20b)](rowsAffected,null)&&(_0x199ea4['rowsAffected']=rowsAffected);const _0x3da5a5=_0x1dc20d[_0x197660(0x1db)](_0x72dc75,_0x1dc20d[_0x197660(0x255)]);let _0x21d740='['+_0x5ce89a+']\x20'+_0x3da5a5;duration!==null&&(_0x21d740+='\x20('+duration+_0x197660(0x1ff));const _0x9dcc9=_0x1dc20d[_0x197660(0x231)](duration,null)&&_0x1dc20d[_0x197660(0x205)](duration,sqlLogSlowThreshold);let _0x25a971='debug';if(_0x9dcc9)_0x21d740+=_0x1dc20d['fnZuo'],_0x25a971=_0x1dc20d['hzkpJ'],logger['warn'](_0x199ea4,_0x21d740);else sqlLogLevel===_0x1dc20d['JfimB']?(_0x25a971=_0x197660(0x24b),logger[_0x197660(0x24b)](_0x199ea4,_0x21d740)):logger['debug'](_0x199ea4,_0x21d740);_0x1dc20d[_0x197660(0x25a)](writeToFileLog,{..._0x199ea4,'level':_0x25a971,'msg':_0x21d740,'time':new Date()['toISOString']()},_0x25a971);},logTransaction=(_0x4c304d,_0x2b8bfc)=>{const _0x18c3a7=a0_0xb3c40d,_0x1666a2={'zgwUK':'db_transaction','NOMat':function(_0x583c44,_0x2d2f4e,_0xf46e7c){return _0x583c44(_0x2d2f4e,_0xf46e7c);},'hFKKE':_0x18c3a7(0x1c8)},_0x8bea39={'event':_0x1666a2['zgwUK'],'status':_0x4c304d,'queryCount':_0x2b8bfc},_0x1385b6='Transaction\x20'+_0x4c304d;logger['debug'](_0x8bea39,_0x1385b6),_0x1666a2['NOMat'](writeToFileLog,{..._0x8bea39,'level':'debug','msg':_0x1385b6,'time':new Date()[_0x18c3a7(0x21a)]()},_0x1666a2['hFKKE']);},redactObject=_0x2ab17b=>{const _0x46bb2d=a0_0xb3c40d,_0x357fe0={'CKljU':function(_0x5461b0,_0x435ed1){return _0x5461b0!==_0x435ed1;},'dftcX':_0x46bb2d(0x224),'ysmrY':'password','jAwOc':_0x46bb2d(0x1c9),'rAgMI':'cvv','SqFuj':'private_key','ToyRC':_0x46bb2d(0x1ef),'LsYwB':'refresh_token','hjKZI':'access_token','bvpco':function(_0x2c7127,_0x26cfd8){return _0x2c7127(_0x26cfd8);}};if(!_0x2ab17b||_0x357fe0['CKljU'](typeof _0x2ab17b,_0x357fe0[_0x46bb2d(0x22f)]))return _0x2ab17b;const _0x5bae6f=[_0x357fe0['ysmrY'],_0x46bb2d(0x218),_0x46bb2d(0x25b),_0x357fe0[_0x46bb2d(0x21e)],'secret','apikey','api_key',_0x46bb2d(0x1f8),_0x46bb2d(0x22b),_0x46bb2d(0x24c),_0x357fe0['rAgMI'],'ssn','pin',_0x357fe0[_0x46bb2d(0x1e9)],_0x357fe0[_0x46bb2d(0x1c6)],_0x357fe0[_0x46bb2d(0x256)],_0x357fe0[_0x46bb2d(0x248)]],_0x440058=Array[_0x46bb2d(0x23c)](_0x2ab17b)?[..._0x2ab17b]:{..._0x2ab17b};for(const _0x10ea34 of Object['keys'](_0x440058)){const _0x118301=_0x10ea34[_0x46bb2d(0x1dd)]();if(_0x5bae6f['some'](_0x49ce34=>_0x118301[_0x46bb2d(0x239)](_0x49ce34)))_0x440058[_0x10ea34]=_0x46bb2d(0x211);else typeof _0x440058[_0x10ea34]===_0x46bb2d(0x224)&&_0x440058[_0x10ea34]!==null&&(_0x440058[_0x10ea34]=_0x357fe0[_0x46bb2d(0x1e6)](redactObject,_0x440058[_0x10ea34]));}return _0x440058;},logError=(_0x4fc519,_0x5ad40b={},_0x2a4077=null)=>{const _0x3b5cf0=a0_0xb3c40d,_0x4c3bc3={'mbvEv':_0x3b5cf0(0x1d7),'LarOV':function(_0x2d4bd1,_0x5a645e,_0x269581){return _0x2d4bd1(_0x5a645e,_0x269581);},'nwlzp':'error'},_0x181d84={'event':_0x3b5cf0(0x1d4),'errorName':_0x4fc519[_0x3b5cf0(0x1e5)]||_0x4c3bc3['mbvEv'],'errorMessage':_0x4fc519[_0x3b5cf0(0x221)],'errorCode':_0x4fc519['code']||null,'stack':_0x4fc519['stack'],..._0x5ad40b},_0x4c4d93=_0x2a4077||'Error:\x20'+_0x4fc519['message'];logger['error'](_0x181d84,_0x4c4d93),_0x4c3bc3[_0x3b5cf0(0x200)](writeToFileLog,{..._0x181d84,'level':_0x4c3bc3[_0x3b5cf0(0x1d9)],'msg':_0x4c4d93,'time':new Date()['toISOString']()},_0x4c3bc3[_0x3b5cf0(0x1d9)]);},logFatalError=(_0x183d3f,_0x337675={},_0x194af6=null)=>{const _0x1f5b03=a0_0xb3c40d,_0x128b22={'OWTTp':'fatal_error','kSBmW':'Error','nsmUn':function(_0x84bfeb,_0x1b9e77,_0xea1035){return _0x84bfeb(_0x1b9e77,_0xea1035);},'SAjAc':_0x1f5b03(0x1f4)},_0x275334={'event':_0x128b22['OWTTp'],'errorName':_0x183d3f['name']||_0x128b22[_0x1f5b03(0x235)],'errorMessage':_0x183d3f['message'],'errorCode':_0x183d3f['code']||null,'stack':_0x183d3f[_0x1f5b03(0x20a)],'severity':'CRITICAL',..._0x337675},_0x127d49=_0x194af6||'FATAL:\x20'+_0x183d3f[_0x1f5b03(0x221)];logger['fatal'](_0x275334,_0x127d49),_0x128b22[_0x1f5b03(0x1fb)](writeToFileLog,{..._0x275334,'level':_0x128b22['SAjAc'],'msg':_0x127d49,'time':new Date()[_0x1f5b03(0x21a)]()},_0x1f5b03(0x1d4));},logHttpError=(_0x15dc18,_0x3df7cb,_0x13adab={})=>{const _0x1af40f=a0_0xb3c40d,_0x540b1a={'jnooT':'http_error','hBBsZ':'Error','wzYax':'x-request-id','WOonN':function(_0x14cbf8,_0x31998a){return _0x14cbf8>=_0x31998a;}},_0xf64a95={'event':_0x540b1a['jnooT'],'errorName':_0x15dc18['name']||_0x540b1a[_0x1af40f(0x1e4)],'errorMessage':_0x15dc18['message'],'errorCode':_0x15dc18['code']||_0x15dc18['statusCode']||0x1f4,'stack':_0x15dc18['stack'],'method':_0x3df7cb?.['method'],'url':_0x3df7cb?.[_0x1af40f(0x1ee)]||_0x3df7cb?.['originalUrl'],'path':_0x3df7cb?.['path'],'ip':_0x3df7cb?.['ip']||_0x3df7cb?.[_0x1af40f(0x214)]?.[_0x1af40f(0x229)],'userAgent':_0x3df7cb?.['get']?.('user-agent'),'requestId':_0x3df7cb?.['id']||_0x3df7cb?.['headers']?.[_0x540b1a['wzYax']],'body':_0x3df7cb?.['body']?redactObject(_0x3df7cb['body']):undefined,'query':_0x3df7cb?.[_0x1af40f(0x230)],..._0x13adab},_0x3d0b8d=_0x15dc18[_0x1af40f(0x23f)]||_0x15dc18[_0x1af40f(0x1fa)]||0x1f4,_0x58d79e='HTTP\x20'+_0x3d0b8d+':\x20'+_0x15dc18[_0x1af40f(0x221)];_0x3d0b8d>=0x1f4?logger['error'](_0xf64a95,_0x58d79e):logger['warn'](_0xf64a95,_0x58d79e),writeToFileLog({..._0xf64a95,'level':_0x540b1a['WOonN'](_0x3d0b8d,0x1f4)?_0x1af40f(0x1d4):_0x1af40f(0x215),'msg':_0x58d79e,'time':new Date()[_0x1af40f(0x21a)]()},_0x3d0b8d>=0x1f4?'error':_0x1af40f(0x215));},logUncaughtError=(_0x46769d,_0x595c11)=>{const _0x3c91a8=a0_0xb3c40d,_0x13848d={'mEMdt':_0x3c91a8(0x1d7),'hAqsk':function(_0x2b85f7,_0x4d3a1d,_0xce6150){return _0x2b85f7(_0x4d3a1d,_0xce6150);},'jhqcH':'error'},_0x2a9ce8={'event':_0x46769d,'errorName':_0x595c11?.['name']||_0x13848d[_0x3c91a8(0x25c)],'errorMessage':_0x595c11?.[_0x3c91a8(0x221)]||String(_0x595c11),'errorCode':_0x595c11?.[_0x3c91a8(0x21c)]||null,'stack':_0x595c11?.['stack'],'severity':'CRITICAL','processId':process['pid'],'memoryUsage':process['memoryUsage'](),'uptime':process['uptime']()},_0x948067='['+_0x46769d[_0x3c91a8(0x23e)]()+']\x20'+(_0x595c11?.[_0x3c91a8(0x221)]||_0x595c11);logger[_0x3c91a8(0x1f4)](_0x2a9ce8,_0x948067),_0x13848d['hAqsk'](writeToFileLog,{..._0x2a9ce8,'level':'fatal','msg':_0x948067,'time':new Date()[_0x3c91a8(0x21a)]()},_0x13848d[_0x3c91a8(0x219)]);},setupGlobalErrorHandlers=()=>{const _0x21e566=a0_0xb3c40d,_0x1b773b={'pttZh':function(_0x11a21b,_0x30066b,_0x2f19d0){return _0x11a21b(_0x30066b,_0x2f19d0);},'kDqub':function(_0x2b5a90,_0x5818bd){return _0x2b5a90 instanceof _0x5818bd;},'cFDVE':function(_0x122491,_0x1b426a){return _0x122491(_0x1b426a);},'mnGZT':'unhandledRejection','dQjrl':_0x21e566(0x253)};process['on'](_0x21e566(0x220),_0x5189b9=>{const _0x223409=_0x21e566;_0x1b773b['pttZh'](logUncaughtError,_0x223409(0x220),_0x5189b9),_0x1b773b['pttZh'](setTimeout,()=>{process['exit'](0x1);},0x3e8);}),process['on'](_0x1b773b['mnGZT'],(_0x2e6bbb,_0x3ddec1)=>{const _0x3cfcd7=_0x21e566,_0x5cfd28=_0x1b773b[_0x3cfcd7(0x228)](_0x2e6bbb,Error)?_0x2e6bbb:new Error(_0x1b773b[_0x3cfcd7(0x1e2)](String,_0x2e6bbb));_0x1b773b['pttZh'](logUncaughtError,'unhandledRejection',_0x5cfd28);}),process['on'](_0x21e566(0x1d3),_0x4e7084=>{const _0x21e8c2=_0x21e566;logger[_0x21e8c2(0x215)]({'event':'process_warning','name':_0x4e7084[_0x21e8c2(0x1e5)],'message':_0x4e7084[_0x21e8c2(0x221)],'stack':_0x4e7084[_0x21e8c2(0x20a)]},'Process\x20Warning:\x20'+_0x4e7084['message']);});const _0x33ae55={'event':_0x21e566(0x22c)},_0x220ede=_0x1b773b['dQjrl'];logger['info'](_0x33ae55,_0x220ede),_0x1b773b['pttZh'](writeToFileLog,{..._0x33ae55,'level':'info','msg':_0x220ede,'time':new Date()['toISOString']()},_0x21e566(0x24b));},createErrorHandlerMiddleware=()=>{const _0x5a10e5={'iFrKk':'Internal\x20server\x20error'};return(_0x1fa4e2,_0x2ec7e9,_0x20873c,_0x4b4985)=>{const _0x40bd0e=a0_0x1e59;logHttpError(_0x1fa4e2,_0x2ec7e9);const _0x6203f6=_0x1fa4e2['statusCode']||_0x1fa4e2['status']||0x1f4;_0x20873c[_0x40bd0e(0x1fa)](_0x6203f6)[_0x40bd0e(0x225)]({'success':![],'error':_0x6203f6>=0x1f4?_0x5a10e5['iFrKk']:_0x1fa4e2[_0x40bd0e(0x221)],'requestId':_0x2ec7e9['id']||_0x2ec7e9['headers']?.[_0x40bd0e(0x244)]||null});};};module[a0_0xb3c40d(0x246)]={'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_0x20e266=a0_0x3a8d;(function(_0x2956bd,_0x589455){const _0x4e8ee5=a0_0x3a8d,_0x1627d5=_0x2956bd();while(!![]){try{const _0x536a79=parseInt(_0x4e8ee5(0x17a))/0x1+-parseInt(_0x4e8ee5(0x11a))/0x2*(parseInt(_0x4e8ee5(0x171))/0x3)+parseInt(_0x4e8ee5(0x132))/0x4+parseInt(_0x4e8ee5(0x16b))/0x5+-parseInt(_0x4e8ee5(0x125))/0x6+parseInt(_0x4e8ee5(0x173))/0x7+-parseInt(_0x4e8ee5(0x13b))/0x8*(parseInt(_0x4e8ee5(0x182))/0x9);if(_0x536a79===_0x589455)break;else _0x1627d5['push'](_0x1627d5['shift']());}catch(_0x13481d){_0x1627d5['push'](_0x1627d5['shift']());}}}(a0_0x3ee3,0x6eb3f));const pino=require('pino'),fs=require('fs'),path=require('path');let logToFile=![],logDir='./logs',serviceName=a0_0x20e266(0x181),sqlLogEnabled=![],sqlLogLevel='debug',sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;const prettyPrintOptions={'colorize':!![],'translateTime':a0_0x20e266(0x10a),'ignore':'pid,hostname,service,version,env,event,module,port,config,apiKeyEnabled,path,workingDir,isPkg,isNodeScript,file,email,type,cors,logging,apiKey,count,endpoint,route','singleLine':![],'levelFirst':!![],'messageFormat':'{msg}','customColors':'info:blue,warn:yellow,error:red,debug:gray','hideObject':!![]},isDevelopment=process['env']['NODE_ENV']!=='production',logLevel=process[a0_0x20e266(0x156)][a0_0x20e266(0x130)]||a0_0x20e266(0x164);let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':'pino-pretty','options':prettyPrintOptions}:undefined,'base':{'service':'restforge','version':process['env']['APP_VERSION']||'1.0.5','env':process[a0_0x20e266(0x156)]['NODE_ENV']||'development'},'timestamp':pino[a0_0x20e266(0x13f)]['isoTime'],'redact':{'paths':[a0_0x20e266(0x122),'req.headers[\x22x-api-key\x22]',a0_0x20e266(0x155),a0_0x20e266(0x11c),'apiKey',a0_0x20e266(0x19d),'JWT_SECRET'],'censor':a0_0x20e266(0x161)},'serializers':{'req':_0x5880d2=>({'id':_0x5880d2['id'],'method':_0x5880d2[a0_0x20e266(0x18d)],'url':_0x5880d2['url'],'path':_0x5880d2[a0_0x20e266(0x19e)],'remoteAddress':_0x5880d2['ip']||_0x5880d2['connection']?.['remoteAddress']}),'res':_0x29b384=>({'statusCode':_0x29b384['statusCode'],'headers':_0x29b384[a0_0x20e266(0x1aa)]?.()}),'err':pino['stdSerializers'][a0_0x20e266(0x102)]}});function initFileLogging(){const _0x2fb9cc=a0_0x20e266,_0x91a56={'nPQzW':'true','yyGbq':function(_0x46cbc2,_0x3c0b93){return _0x46cbc2===_0x3c0b93;},'KyHbS':'debug','AITCV':function(_0x5257a9,_0x5b3e71){return _0x5257a9!==_0x5b3e71;},'VyLuS':_0x2fb9cc(0x15c),'VLtbx':'error.log','bQIhi':function(_0x52d2c1,_0x686507,_0xa102c0){return _0x52d2c1(_0x686507,_0xa102c0);},'IYxya':_0x2fb9cc(0x164)};if(fileLoggingInitialized)return;logToFile=process['env']['LOG_TO_FILE']===_0x91a56[_0x2fb9cc(0x14e)],logDir=process[_0x2fb9cc(0x156)][_0x2fb9cc(0x119)]||'./logs',serviceName=process['env'][_0x2fb9cc(0x17c)]||_0x2fb9cc(0x181),sqlLogEnabled=_0x91a56['yyGbq'](process[_0x2fb9cc(0x156)][_0x2fb9cc(0x1a2)],_0x91a56['nPQzW']),sqlLogLevel=process['env']['SQL_LOG_LEVEL']||_0x91a56[_0x2fb9cc(0x126)],sqlLogParams=_0x91a56[_0x2fb9cc(0x1ab)](process['env'][_0x2fb9cc(0x1a5)],'false'),sqlLogSlowThreshold=parseInt(process[_0x2fb9cc(0x156)]['SQL_LOG_SLOW_THRESHOLD'])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x16e955=path[_0x2fb9cc(0x10c)](process[_0x2fb9cc(0x1a3)](),logDir);try{!fs[_0x2fb9cc(0x1a9)](_0x16e955)&&fs[_0x2fb9cc(0x177)](_0x16e955,{'recursive':!![]});}catch(_0x45fe6c){console['error']('Failed\x20to\x20create\x20log\x20directory\x20'+_0x16e955+':',_0x45fe6c[_0x2fb9cc(0x14d)]),fileLoggingInitialized=!![];return;}const _0x478977=path['join'](_0x16e955,_0x91a56['VyLuS']),_0x56bb91=path[_0x2fb9cc(0x123)](_0x16e955,_0x2fb9cc(0x17d));try{appLogStream=fs['createWriteStream'](_0x478977,{'flags':'a'}),errorLogStream=fs['createWriteStream'](_0x56bb91,{'flags':'a'}),fileLoggingInitialized=!![];const _0x23cb9f={'event':'file_logging_enabled','logDir':_0x16e955,'files':[_0x2fb9cc(0x15c),_0x91a56['VLtbx']]},_0x5497ba=_0x2fb9cc(0x147)+_0x16e955;logger[_0x2fb9cc(0x164)](_0x23cb9f,_0x5497ba),_0x91a56['bQIhi'](writeToFileLog,{..._0x23cb9f,'level':_0x91a56[_0x2fb9cc(0x142)],'msg':_0x5497ba,'time':new Date()['toISOString']()},_0x2fb9cc(0x164));}catch(_0x2098aa){console['error']('Failed\x20to\x20create\x20log\x20streams:',_0x2098aa[_0x2fb9cc(0x14d)]),fileLoggingInitialized=!![];}}function writeToFileLog(_0xde3f52,_0x276b4f){const _0x5d69f2=a0_0x20e266,_0x439b19={'VMhxS':function(_0x3eea64,_0x42d094){return _0x3eea64===_0x42d094;},'wcKhe':_0x5d69f2(0x168)};if(!logToFile||!appLogStream)return;const _0x969aed={'service':serviceName,..._0xde3f52},_0x505661=JSON['stringify'](_0x969aed)+'\x0a';appLogStream[_0x5d69f2(0x176)](_0x505661),(_0x439b19[_0x5d69f2(0x116)](_0x276b4f,_0x5d69f2(0x12f))||_0x276b4f===_0x439b19['wcKhe'])&&(errorLogStream&&errorLogStream['write'](_0x505661));}const createRequestLogger=(_0x40f234={})=>{const _0x54fc92=a0_0x20e266;return logger[_0x54fc92(0x113)](_0x40f234);},logServerStart=_0x134961=>{const _0x57b8e0=a0_0x20e266,_0x2a8d89={'hLlpH':_0x57b8e0(0x138),'vAoGd':'ACTIVE','cGtOr':_0x57b8e0(0x105),'rbqcn':function(_0x411b67,_0x3ca91b,_0x4958a5){return _0x411b67(_0x3ca91b,_0x4958a5);},'NdJSm':_0x57b8e0(0x164)},_0x4a9c86=_0x57b8e0(0x188)+(_0x134961['environment']||_0x57b8e0(0x111))[_0x57b8e0(0x180)](0x26)+_0x57b8e0(0x185)+(_0x134961[_0x57b8e0(0x15a)]||'N/A')['padEnd'](0x26)+'\x20║\x0a║\x20\x20Port\x20\x20\x20\x20\x20\x20\x20\x20:\x20'+String(_0x134961['port']||0xbb8)['padEnd'](0x26)+'\x20║\x0a║\x20\x20Config\x20\x20\x20\x20\x20\x20:\x20'+(_0x134961['configFile']||_0x2a8d89[_0x57b8e0(0x134)])['padEnd'](0x26)+_0x57b8e0(0x170)+(_0x134961[_0x57b8e0(0x1ac)]?_0x2a8d89['vAoGd']:_0x2a8d89['cGtOr'])[_0x57b8e0(0x180)](0x26)+_0x57b8e0(0x18b);console['log'](_0x4a9c86);const _0x7d6718={'event':'server_starting','project':_0x134961[_0x57b8e0(0x15a)],'port':_0x134961[_0x57b8e0(0x196)],'config':_0x134961[_0x57b8e0(0x10f)],'apiKeyEnabled':!!_0x134961[_0x57b8e0(0x1ac)]};logger['info'](_0x7d6718),_0x2a8d89[_0x57b8e0(0x14b)](writeToFileLog,{..._0x7d6718,'level':_0x2a8d89['NdJSm'],'msg':'Server\x20starting:\x20'+_0x134961[_0x57b8e0(0x15a)]+_0x57b8e0(0x112)+_0x134961['port'],'time':new Date()[_0x57b8e0(0x15b)]()},_0x2a8d89['NdJSm']);},logServerReady=_0x188a5b=>{const _0x2208f0=a0_0x20e266,_0x32f6b3={'yTxVv':_0x2208f0(0x164)},_0x573440={'event':_0x2208f0(0x141),'port':_0x188a5b[_0x2208f0(0x196)],'module':_0x188a5b[_0x2208f0(0x179)],'healthCheck':_0x188a5b['healthCheck'],'serviceInfo':_0x188a5b[_0x2208f0(0x124)],'baseUrl':_0x188a5b['baseUrl']},_0x135221='[OK]\x20Server\x20ready\x20on\x20port\x20'+_0x188a5b['port'];logger['info'](_0x573440,_0x135221),writeToFileLog({..._0x573440,'level':_0x32f6b3[_0x2208f0(0x121)],'msg':_0x135221,'time':new Date()[_0x2208f0(0x15b)]()},_0x2208f0(0x164)),_0x188a5b[_0x2208f0(0x101)]&&logger[_0x2208f0(0x164)]('\x20\x20Health:\x20'+_0x188a5b['healthCheck']),_0x188a5b[_0x2208f0(0x124)]&&logger['info']('\x20\x20Info:\x20\x20\x20'+_0x188a5b[_0x2208f0(0x124)]),_0x188a5b['baseUrl']&&logger[_0x2208f0(0x164)]('\x20\x20URL:\x20\x20\x20\x20'+_0x188a5b['baseUrl']);},logProjectLoaded=(_0x1a1f42,_0x28e7a4)=>{const _0x348a81=a0_0x20e266,_0x1cb97d={'event':_0x348a81(0x110),'project':_0x1a1f42,'path':_0x28e7a4},_0x193d5e='[OK]\x20Project\x20loaded:\x20'+_0x1a1f42;logger['info'](_0x1cb97d,_0x193d5e),writeToFileLog({..._0x1cb97d,'level':'info','msg':_0x193d5e,'time':new Date()['toISOString']()},_0x348a81(0x164));},logEndpointRegistered=(_0x42d960,_0x4e01aa)=>{const _0x4df1d7=a0_0x20e266,_0xd2bf55={'VRxAa':function(_0x465bc8,_0x43eec5,_0x3d7bab){return _0x465bc8(_0x43eec5,_0x3d7bab);},'jVUvq':'debug'},_0x3d98f0={'event':_0x4df1d7(0x16e),'endpoint':_0x42d960,'route':_0x4e01aa},_0x3a2069=_0x4df1d7(0x12d)+_0x42d960+':\x20'+_0x4e01aa;logger[_0x4df1d7(0x1a1)](_0x3d98f0,_0x3a2069),_0xd2bf55['VRxAa'](writeToFileLog,{..._0x3d98f0,'level':_0xd2bf55['jVUvq'],'msg':_0x3a2069,'time':new Date()[_0x4df1d7(0x15b)]()},_0xd2bf55['jVUvq']);},logDatabaseConfig=_0x56e57f=>{const _0x3dcfa4=a0_0x20e266,_0x5c5a74={'srOGh':_0x3dcfa4(0x1a1)},_0x5f6ad9={'event':_0x3dcfa4(0x193),'host':_0x56e57f[_0x3dcfa4(0x17e)],'port':_0x56e57f['port'],'database':_0x56e57f['database'],'type':_0x56e57f['type'],'user':_0x56e57f['user']},_0x19d839=_0x3dcfa4(0x13c)+_0x56e57f['type']+_0x3dcfa4(0x12e)+_0x56e57f[_0x3dcfa4(0x17e)]+':'+_0x56e57f[_0x3dcfa4(0x196)]+'/'+_0x56e57f['database'];logger['debug'](_0x5f6ad9,_0x19d839),writeToFileLog({..._0x5f6ad9,'level':_0x5c5a74['srOGh'],'msg':_0x19d839,'time':new Date()['toISOString']()},_0x3dcfa4(0x1a1));},logRequest=(_0x19862b,_0x1cab4d,_0x10e18a)=>{const _0x1611a0=a0_0x20e266,_0x56763b={'RuoOf':_0x1611a0(0x131),'vqKDO':'info','htnvc':function(_0x5be778,_0x1e0bd7){return _0x5be778>=_0x1e0bd7;},'dcnre':_0x1611a0(0x12f),'INaMI':_0x1611a0(0x107),'oKIcs':function(_0x486b67,_0x55603d,_0x55ee41){return _0x486b67(_0x55603d,_0x55ee41);}},_0x500929={'event':_0x56763b['RuoOf'],'method':_0x19862b[_0x1611a0(0x18d)],'path':_0x19862b['path'],'statusCode':_0x1cab4d[_0x1611a0(0x175)],'durationMs':_0x10e18a,'ip':_0x19862b['ip']},_0x916c96=_0x19862b[_0x1611a0(0x18d)]+'\x20'+_0x19862b['path']+'\x20-\x20'+_0x1cab4d[_0x1611a0(0x175)]+'\x20('+_0x10e18a+'ms)';let _0x3ee255=_0x56763b['vqKDO'];if(_0x56763b[_0x1611a0(0x114)](_0x1cab4d['statusCode'],0x1f4))_0x3ee255=_0x56763b[_0x1611a0(0x1ae)],logger['error'](_0x500929,_0x916c96);else _0x56763b['htnvc'](_0x1cab4d[_0x1611a0(0x175)],0x190)?(_0x3ee255=_0x56763b['INaMI'],logger['warn'](_0x500929,_0x916c96)):logger[_0x1611a0(0x164)](_0x500929,_0x916c96);_0x56763b[_0x1611a0(0x172)](writeToFileLog,{..._0x500929,'level':_0x3ee255,'msg':_0x916c96,'time':new Date()[_0x1611a0(0x15b)]()},_0x3ee255);},SENSITIVE_PARAM_PATTERNS=['password',a0_0x20e266(0x183),a0_0x20e266(0x144),'token','access_token',a0_0x20e266(0x12b),'secret',a0_0x20e266(0x1a8),a0_0x20e266(0x135),'api_key',a0_0x20e266(0x118),'credentials','pin',a0_0x20e266(0x17f),a0_0x20e266(0x198),a0_0x20e266(0x186)],redactSensitiveParams=(_0xeae933,_0x55d6ad)=>{const _0x463054=a0_0x20e266,_0x59b755={'xYgzI':'[REDACTED]','MfLwp':'string','TycaR':'[REDACTED:token]'};if(!_0xeae933||_0xeae933[_0x463054(0x157)]===0x0)return _0xeae933;const _0x3c22e4=_0x55d6ad['toLowerCase'](),_0xa3b3c6=_0x3c22e4[_0x463054(0x1a0)](/\(([^)]+)\)\s*values/i);let _0x500088=[];_0xa3b3c6&&(_0x500088=_0xa3b3c6[0x1][_0x463054(0x108)](',')[_0x463054(0x151)](_0x56fa2e=>_0x56fa2e['trim']()[_0x463054(0x18e)]()));const _0x249341=_0x3c22e4[_0x463054(0x1a0)](/set\s+(.+?)(?:\s+where|$)/i);if(_0x249341){const _0x2031b2=_0x249341[0x1],_0xb3650=_0x2031b2['match'](/(\w+)\s*=/g);_0xb3650&&(_0x500088=_0xb3650[_0x463054(0x151)](_0x3048d3=>_0x3048d3[_0x463054(0x149)](/\s*=/,'')[_0x463054(0x199)]()[_0x463054(0x18e)]()));}return _0xeae933[_0x463054(0x151)]((_0x5066fe,_0x15e284)=>{const _0x17903b=_0x463054;if(_0x500088[_0x15e284]){const _0x2e8f1a=_0x500088[_0x15e284],_0x385ba9=SENSITIVE_PARAM_PATTERNS[_0x17903b(0x104)](_0x424672=>_0x2e8f1a['includes'](_0x424672));if(_0x385ba9)return _0x59b755['xYgzI'];}if(typeof _0x5066fe===_0x59b755[_0x17903b(0x128)]&&_0x5066fe[_0x17903b(0x157)]>0x20){if(/^[a-zA-Z0-9+/=_.-]+$/['test'](_0x5066fe)&&_0x5066fe[_0x17903b(0x139)]('.'))return _0x59b755[_0x17903b(0x167)];if(/^[a-fA-F0-9]{32,}$/['test'](_0x5066fe))return'[REDACTED:hash]';}return _0x5066fe;});},parseQueryMetadata=_0x3f8225=>{const _0x19c3dc=a0_0x20e266,_0x55222d={'IFYDW':'SELECT','wHLOe':_0x19c3dc(0x152),'QaShM':'UPDATE','YLwVR':'DELETE','apXUp':_0x19c3dc(0x117),'kMMRJ':_0x19c3dc(0x169),'vZJBK':_0x19c3dc(0x13a),'bhAoZ':'TRANSACTION_COMMIT','gtgNF':_0x19c3dc(0x154),'PEjvI':_0x19c3dc(0x19b),'ZlQBK':'DDL_ALTER','nturU':'DROP'},_0x23311c=_0x3f8225['trim'](),_0xf53c38=_0x23311c[_0x19c3dc(0x197)]();let _0x5b05d8=_0x19c3dc(0x145),_0xdc1e14=null;if(_0xf53c38[_0x19c3dc(0x10d)](_0x55222d['IFYDW'])){_0x5b05d8=_0x19c3dc(0x11f);const _0x22036f=_0x23311c[_0x19c3dc(0x1a0)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0xdc1e14=_0x22036f?_0x22036f[0x1]:null;}else{if(_0xf53c38['startsWith'](_0x55222d['wHLOe'])){_0x5b05d8=_0x55222d['wHLOe'];const _0x34a221=_0x23311c[_0x19c3dc(0x1a0)](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0xdc1e14=_0x34a221?_0x34a221[0x1]:null;}else{if(_0xf53c38[_0x19c3dc(0x10d)]('UPDATE')){_0x5b05d8=_0x55222d[_0x19c3dc(0x1ad)];const _0x31d3de=_0x23311c[_0x19c3dc(0x1a0)](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0xdc1e14=_0x31d3de?_0x31d3de[0x1]:null;}else{if(_0xf53c38['startsWith']('DELETE')){_0x5b05d8=_0x55222d['YLwVR'];const _0x330a07=_0x23311c[_0x19c3dc(0x1a0)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0xdc1e14=_0x330a07?_0x330a07[0x1]:null;}else{if(_0xf53c38['startsWith']('BEGIN')||_0xf53c38[_0x19c3dc(0x10d)](_0x55222d[_0x19c3dc(0x133)]))_0x5b05d8=_0x55222d['kMMRJ'];else{if(_0xf53c38[_0x19c3dc(0x10d)](_0x55222d['vZJBK']))_0x5b05d8=_0x55222d['bhAoZ'];else{if(_0xf53c38[_0x19c3dc(0x10d)]('ROLLBACK'))_0x5b05d8=_0x55222d[_0x19c3dc(0x143)];else{if(_0xf53c38[_0x19c3dc(0x10d)](_0x55222d['PEjvI']))_0x5b05d8=_0x19c3dc(0x100);else{if(_0xf53c38[_0x19c3dc(0x10d)]('ALTER'))_0x5b05d8=_0x55222d[_0x19c3dc(0x163)];else _0xf53c38['startsWith'](_0x55222d['nturU'])&&(_0x5b05d8='DDL_DROP');}}}}}}}}return{'type':_0x5b05d8,'table':_0xdc1e14};},startQueryTimer=()=>{const _0x18298c=a0_0x20e266,_0x5ba4f0={'zBxSl':function(_0x9d451a,_0x38fc1b){return _0x9d451a*_0x38fc1b;},'ISrxl':function(_0x5ea8cc,_0xd80864){return _0x5ea8cc/_0xd80864;}},_0x56636c=process[_0x18298c(0x10e)]();return()=>{const _0x5e2265=_0x18298c,[_0x2c618f,_0x492413]=process[_0x5e2265(0x10e)](_0x56636c);return parseFloat((_0x5ba4f0['zBxSl'](_0x2c618f,0x3e8)+_0x5ba4f0[_0x5e2265(0x166)](_0x492413,0xf4240))['toFixed'](0x2));};},logQuery=(_0x46e9b6,_0x251aed=[],_0x4af9d0={})=>{const _0x49eefe=a0_0x20e266,_0x5edfdf={'qJjzW':_0x49eefe(0x146),'RbeUs':function(_0x15e58a,_0x483c06){return _0x15e58a(_0x483c06);},'qDhav':function(_0x443dde,_0x52232f){return _0x443dde>_0x52232f;},'BScwm':function(_0x4d787b,_0x138049){return _0x4d787b!==_0x138049;},'HVtLP':function(_0x285092,_0x2d1e64){return _0x285092>_0x2d1e64;},'WjPje':_0x49eefe(0x162),'qINXh':'warn'};if(!sqlLogEnabled){logger[_0x49eefe(0x1a1)]({'event':_0x5edfdf['qJjzW'],'query':_0x46e9b6[_0x49eefe(0x106)](0x0,0xc8),'paramCount':_0x251aed[_0x49eefe(0x157)]},_0x49eefe(0x11d));return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType='postgresql'}=_0x4af9d0,{type:_0x2fbf25,table:_0x1a3cf5}=_0x5edfdf[_0x49eefe(0x129)](parseQueryMetadata,_0x46e9b6),_0x55514f={'event':_0x49eefe(0x192),'queryType':_0x2fbf25,'table':_0x1a3cf5,'query':_0x46e9b6,'paramCount':_0x251aed['length'],'dbType':dbType};sqlLogParams&&_0x251aed['length']>0x0&&(_0x55514f[_0x49eefe(0x103)]=redactSensitiveParams(_0x251aed,_0x46e9b6));duration!==null&&(_0x55514f['durationMs']=duration,_0x55514f[_0x49eefe(0x14f)]=_0x5edfdf['qDhav'](duration,sqlLogSlowThreshold));rowsAffected!==null&&(_0x55514f['rowsAffected']=rowsAffected);const _0x3e2268=_0x1a3cf5||'unknown';let _0x5640d6='['+_0x2fbf25+']\x20'+_0x3e2268;_0x5edfdf['BScwm'](duration,null)&&(_0x5640d6+='\x20('+duration+_0x49eefe(0x194));const _0xc34e5f=_0x5edfdf[_0x49eefe(0x12c)](duration,null)&&_0x5edfdf['HVtLP'](duration,sqlLogSlowThreshold);let _0x5ca032='debug';if(_0xc34e5f)_0x5640d6+=_0x5edfdf['WjPje'],_0x5ca032=_0x5edfdf[_0x49eefe(0x19f)],logger[_0x49eefe(0x107)](_0x55514f,_0x5640d6);else sqlLogLevel===_0x49eefe(0x164)?(_0x5ca032='info',logger[_0x49eefe(0x164)](_0x55514f,_0x5640d6)):logger[_0x49eefe(0x1a1)](_0x55514f,_0x5640d6);writeToFileLog({..._0x55514f,'level':_0x5ca032,'msg':_0x5640d6,'time':new Date()['toISOString']()},_0x5ca032);},logTransaction=(_0x4f7e3a,_0x11c8b7)=>{const _0x4b41a7=a0_0x20e266,_0x1fb315={'KEXZI':'db_transaction','dcSNo':function(_0x2a65ac,_0x1e2f6b,_0x3df9b7){return _0x2a65ac(_0x1e2f6b,_0x3df9b7);}},_0x138df6={'event':_0x1fb315[_0x4b41a7(0x13e)],'status':_0x4f7e3a,'queryCount':_0x11c8b7},_0x40b244=_0x4b41a7(0x1a6)+_0x4f7e3a;logger[_0x4b41a7(0x1a1)](_0x138df6,_0x40b244),_0x1fb315['dcSNo'](writeToFileLog,{..._0x138df6,'level':_0x4b41a7(0x1a1),'msg':_0x40b244,'time':new Date()['toISOString']()},_0x4b41a7(0x1a1));},redactObject=_0x1d9edd=>{const _0x5592c5=a0_0x20e266,_0x5766e6={'WqhBO':'password','oJiqc':_0x5592c5(0x144),'Uzcgq':_0x5592c5(0x14c),'oOJXu':_0x5592c5(0x16d),'hCgvZ':'creditcard','tzwbm':_0x5592c5(0x191),'aikfP':'pin','DMhAE':_0x5592c5(0x198),'WsHBX':_0x5592c5(0x12b),'gUSTQ':_0x5592c5(0x13d),'wwoYO':function(_0x371710,_0x564aa6){return _0x371710(_0x564aa6);}};if(!_0x1d9edd||typeof _0x1d9edd!==_0x5592c5(0x17b))return _0x1d9edd;const _0x5955cd=[_0x5766e6['WqhBO'],_0x5592c5(0x183),_0x5766e6['oJiqc'],_0x5592c5(0x11c),_0x5766e6['Uzcgq'],'apikey',_0x5592c5(0x11e),_0x5766e6['oOJXu'],_0x5766e6[_0x5592c5(0x148)],'credit_card',_0x5592c5(0x150),_0x5766e6[_0x5592c5(0x127)],_0x5766e6['aikfP'],_0x5766e6[_0x5592c5(0x18a)],'privatekey',_0x5766e6[_0x5592c5(0x19a)],_0x5766e6['gUSTQ']],_0x5bb440=Array[_0x5592c5(0x109)](_0x1d9edd)?[..._0x1d9edd]:{..._0x1d9edd};for(const _0x4eaec1 of Object['keys'](_0x5bb440)){const _0x43b5e7=_0x4eaec1[_0x5592c5(0x18e)]();if(_0x5955cd['some'](_0x34cb28=>_0x43b5e7[_0x5592c5(0x139)](_0x34cb28)))_0x5bb440[_0x4eaec1]=_0x5592c5(0x161);else typeof _0x5bb440[_0x4eaec1]===_0x5592c5(0x17b)&&_0x5bb440[_0x4eaec1]!==null&&(_0x5bb440[_0x4eaec1]=_0x5766e6['wwoYO'](redactObject,_0x5bb440[_0x4eaec1]));}return _0x5bb440;},logError=(_0x2db6ff,_0x238722={},_0x5448c9=null)=>{const _0x4c6b4a=a0_0x20e266,_0x594c51={'uajih':_0x4c6b4a(0x120),'oelPd':function(_0x33d2d7,_0x2b9303,_0x463921){return _0x33d2d7(_0x2b9303,_0x463921);}},_0x25cd03={'event':_0x4c6b4a(0x12f),'errorName':_0x2db6ff['name']||_0x594c51[_0x4c6b4a(0x153)],'errorMessage':_0x2db6ff[_0x4c6b4a(0x14d)],'errorCode':_0x2db6ff['code']||null,'stack':_0x2db6ff[_0x4c6b4a(0x189)],..._0x238722},_0x1ffea3=_0x5448c9||'Error:\x20'+_0x2db6ff['message'];logger['error'](_0x25cd03,_0x1ffea3),_0x594c51['oelPd'](writeToFileLog,{..._0x25cd03,'level':'error','msg':_0x1ffea3,'time':new Date()['toISOString']()},'error');},logFatalError=(_0x26ef51,_0x5caa7e={},_0x5a7e4a=null)=>{const _0x1630e2=a0_0x20e266,_0x4b0971={'qYAHe':'fatal_error','ouXUy':'Error','IadxP':function(_0xcaf232,_0x360da6,_0x33b559){return _0xcaf232(_0x360da6,_0x33b559);}},_0x571b3f={'event':_0x4b0971[_0x1630e2(0x16c)],'errorName':_0x26ef51[_0x1630e2(0x178)]||_0x4b0971['ouXUy'],'errorMessage':_0x26ef51[_0x1630e2(0x14d)],'errorCode':_0x26ef51['code']||null,'stack':_0x26ef51[_0x1630e2(0x189)],'severity':'CRITICAL',..._0x5caa7e},_0x33198f=_0x5a7e4a||_0x1630e2(0x1a7)+_0x26ef51[_0x1630e2(0x14d)];logger['fatal'](_0x571b3f,_0x33198f),_0x4b0971[_0x1630e2(0x158)](writeToFileLog,{..._0x571b3f,'level':'fatal','msg':_0x33198f,'time':new Date()[_0x1630e2(0x15b)]()},'error');},logHttpError=(_0x5c4399,_0x1a8947,_0xb668c0={})=>{const _0x368cdb=a0_0x20e266,_0x410a41={'xMFyf':_0x368cdb(0x120),'qyiuV':'x-request-id','iDIss':function(_0x3f3902,_0x5daff1){return _0x3f3902>=_0x5daff1;},'Onvqe':function(_0x347ec0,_0x39a0f2){return _0x347ec0>=_0x39a0f2;},'iBIcp':'error'},_0x501b2a={'event':'http_error','errorName':_0x5c4399[_0x368cdb(0x178)]||_0x410a41['xMFyf'],'errorMessage':_0x5c4399['message'],'errorCode':_0x5c4399[_0x368cdb(0x190)]||_0x5c4399[_0x368cdb(0x175)]||0x1f4,'stack':_0x5c4399[_0x368cdb(0x189)],'method':_0x1a8947?.['method'],'url':_0x1a8947?.['url']||_0x1a8947?.[_0x368cdb(0x15d)],'path':_0x1a8947?.[_0x368cdb(0x19e)],'ip':_0x1a8947?.['ip']||_0x1a8947?.[_0x368cdb(0x18f)]?.[_0x368cdb(0x159)],'userAgent':_0x1a8947?.[_0x368cdb(0xff)]?.('user-agent'),'requestId':_0x1a8947?.['id']||_0x1a8947?.['headers']?.[_0x410a41['qyiuV']],'body':_0x1a8947?.[_0x368cdb(0x10b)]?redactObject(_0x1a8947[_0x368cdb(0x10b)]):undefined,'query':_0x1a8947?.[_0x368cdb(0x18c)],..._0xb668c0},_0x3484e5=_0x5c4399[_0x368cdb(0x175)]||_0x5c4399[_0x368cdb(0x165)]||0x1f4,_0x315fd4='HTTP\x20'+_0x3484e5+':\x20'+_0x5c4399[_0x368cdb(0x14d)];_0x410a41[_0x368cdb(0x187)](_0x3484e5,0x1f4)?logger['error'](_0x501b2a,_0x315fd4):logger['warn'](_0x501b2a,_0x315fd4),writeToFileLog({..._0x501b2a,'level':_0x410a41[_0x368cdb(0x1a4)](_0x3484e5,0x1f4)?_0x410a41['iBIcp']:'warn','msg':_0x315fd4,'time':new Date()['toISOString']()},_0x3484e5>=0x1f4?'error':'warn');},logUncaughtError=(_0x5ef675,_0x2b70d8)=>{const _0xda1b3e=a0_0x20e266,_0x25818a={'aLnEh':'Error','ozfbr':_0xda1b3e(0x195)},_0x3adebc={'event':_0x5ef675,'errorName':_0x2b70d8?.[_0xda1b3e(0x178)]||_0x25818a['aLnEh'],'errorMessage':_0x2b70d8?.[_0xda1b3e(0x14d)]||String(_0x2b70d8),'errorCode':_0x2b70d8?.[_0xda1b3e(0x190)]||null,'stack':_0x2b70d8?.['stack'],'severity':_0x25818a['ozfbr'],'processId':process['pid'],'memoryUsage':process['memoryUsage'](),'uptime':process[_0xda1b3e(0x160)]()},_0x332d16='['+_0x5ef675['toUpperCase']()+']\x20'+(_0x2b70d8?.['message']||_0x2b70d8);logger[_0xda1b3e(0x168)](_0x3adebc,_0x332d16),writeToFileLog({..._0x3adebc,'level':'fatal','msg':_0x332d16,'time':new Date()[_0xda1b3e(0x15b)]()},'error');},setupGlobalErrorHandlers=()=>{const _0x26234a=a0_0x20e266,_0x2b2f7a={'uODJM':function(_0x10c670,_0x4e8354,_0x4df859){return _0x10c670(_0x4e8354,_0x4df859);},'FVoUk':_0x26234a(0x136),'ClqMy':function(_0x4c81ef,_0x718a45){return _0x4c81ef instanceof _0x718a45;},'XArAV':function(_0x15850e,_0x47e517){return _0x15850e(_0x47e517);},'nleYR':_0x26234a(0x184),'OTFwH':'global_error_handlers_setup','Rauuc':_0x26234a(0x164)};process['on']('uncaughtException',_0x234a69=>{const _0x4586bc=_0x26234a;_0x2b2f7a[_0x4586bc(0x140)](logUncaughtError,_0x2b2f7a['FVoUk'],_0x234a69),setTimeout(()=>{const _0x218ba1=_0x4586bc;process[_0x218ba1(0x14a)](0x1);},0x3e8);}),process['on'](_0x26234a(0x12a),(_0x5a3b4f,_0x50f212)=>{const _0x4e0a24=_0x26234a,_0x52046=_0x2b2f7a[_0x4e0a24(0x15e)](_0x5a3b4f,Error)?_0x5a3b4f:new Error(_0x2b2f7a['XArAV'](String,_0x5a3b4f));logUncaughtError(_0x4e0a24(0x12a),_0x52046);}),process['on'](_0x2b2f7a['nleYR'],_0x50e29b=>{const _0x21177b=_0x26234a;logger[_0x21177b(0x107)]({'event':_0x21177b(0x16a),'name':_0x50e29b[_0x21177b(0x178)],'message':_0x50e29b[_0x21177b(0x14d)],'stack':_0x50e29b[_0x21177b(0x189)]},_0x21177b(0x16f)+_0x50e29b[_0x21177b(0x14d)]);});const _0x516935={'event':_0x2b2f7a[_0x26234a(0x19c)]},_0x3b7cc9=_0x26234a(0x115);logger[_0x26234a(0x164)](_0x516935,_0x3b7cc9),writeToFileLog({..._0x516935,'level':_0x2b2f7a['Rauuc'],'msg':_0x3b7cc9,'time':new Date()[_0x26234a(0x15b)]()},_0x2b2f7a['Rauuc']);},createErrorHandlerMiddleware=()=>{const _0x37ef46=a0_0x20e266,_0x43a525={'UcqAD':function(_0x20cd10,_0x2b9340,_0x4f74db){return _0x20cd10(_0x2b9340,_0x4f74db);},'erdoj':function(_0x21e868,_0x1c8b7a){return _0x21e868>=_0x1c8b7a;},'WqVVz':_0x37ef46(0x11b),'sNSeA':_0x37ef46(0x174)};return(_0x532762,_0x3f5811,_0x3a3e6a,_0x1d5ef1)=>{const _0x5b97b8=_0x37ef46;_0x43a525['UcqAD'](logHttpError,_0x532762,_0x3f5811);const _0x48c063=_0x532762['statusCode']||_0x532762['status']||0x1f4;_0x3a3e6a[_0x5b97b8(0x165)](_0x48c063)[_0x5b97b8(0x137)]({'success':![],'error':_0x43a525['erdoj'](_0x48c063,0x1f4)?_0x43a525['WqVVz']:_0x532762[_0x5b97b8(0x14d)],'requestId':_0x3f5811['id']||_0x3f5811['headers']?.[_0x43a525[_0x5b97b8(0x15f)]]||null});};};function a0_0x3ee3(){const _0x24b2e0=['zw5KCg9PBNrFCMvNAxn0zxjLza','uhjVy2vZCYbxyxjUAw5NoIa','iokvKqRILzeGiefqssblzxKGicaGidOG','mJruBej1rhe','B0Tjy3m','ndaXode3nunUrKnzvG','Ec1Yzxf1zxn0lwLK','C3rHDhvZq29Kzq','D3jPDgu','BwTKAxjtEw5J','BMfTzq','Bw9KDwXL','mJy1mZm5Ae9mD0fK','B2jQzwn0','u0vsvKLdrv9oqu1f','zxjYB3iUBg9N','Ag9ZDa','B3rW','CgfKrw5K','CMvZDgzVCMDL','mta4wgHwuKXI','CgfZC3DK','D2fYBMLUzW','iokvKqRILzeGifbYB2PLy3qGicaGidOG','ChjPDMf0zwTLEq','AurjC3m','cUkvLokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvLWRILzeGicaGicaGicaGicaGifjfu1rgt1jhrsbsvu5usu1fifnfuLzfuIaGicaGicaGicaGicaGicaG4PwrcUkvOokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvOWRILzeGievUDMLYB25Tzw50idOG','C3rHy2S','re1Oquu','iokvKqRILzRILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILz0','CxvLCNK','Bwv0Ag9K','Dg9mB3DLCKnHC2u','y29UBMvJDgLVBG','y29Kzq','C3nU','C3fSx3f1zxj5','zgf0ywjHC2vFy29UzMLN','BxmP','q1jjveLdquW','Cg9YDa','Dg9vChbLCKnHC2u','ChjPDMf0zv9RzxK','DhjPBq','v3niqLG','q1jfqvrf','t1rgD0G','rejFueftu1DpuKq','Cgf0Aa','CuLowgG','Bwf0y2G','zgvIDwC','u1fmx0Xpr19ftKfcteve','y3DK','t252Cwu','u1fmx0Xpr19qqvjbtvm','vhjHBNnHy3rPB24G','rKfuquW6ia','yxbPx3nLy3jLDa','zxHPC3rZu3LUyW','z2v0sgvHzgvYCW','quLuq1y','yxbPs2v5','uwftAe0','zgnUCMu','z2v0','rermx0nsrufurq','AgvHBhrOq2HLy2S','zxjY','CgfYyw1Z','C29Tzq','tK9uiefdveLwrq','C3vIC3rYAw5N','D2fYBG','C3bSAxq','AxnbCNjHEq','u1LtoKHioK1noNnZ','yM9KEq','CMvZB2X2zq','C3rHCNrZv2L0Aa','Ahj0Aw1L','y29UzMLNrMLSzq','ChjVAMvJDf9SB2fKzwq','tM9Kzs5QCW','ig9UihbVCNqG','y2HPBgq','AhrUDMm','r2XVyMfSigvYCM9YigHHBMrSzxjZigLUAxrPywXPEMvK','vK1OEfm','u1rbuLqGvfjbtLnbq1rjt04','y3jLzgvUDgLHBa','te9hx0rjuG','nte0otb4DeL2AeG','sw50zxjUywWGC2vYDMvYigvYCM9Y','Dg9Rzw4','reiGuxvLCNK','yxbPx2TLEq','u0vmrunu','rxjYB3i','Evr4vNy','CMvXlMHLywrLCNmUyxv0Ag9YAxPHDgLVBG','AM9PBG','C2vYDMLJzuLUzM8','mZKXmJa3ogHws1Liva','s3LiyLm','DhP3yM0','twzmD3a','uMjLvxm','Dw5Oyw5KBgvKuMvQzwn0Aw9U','CMvMCMvZAf90B2TLBG','qLnJD20','icdIHPiG','oI8V','zxjYB3i','te9hx0XfvKvm','Ahr0Cf9Yzxf1zxn0','mZiZmZi0ohrkvhHksa','yxbyvxa','AeXSCeG','yxbPA2v5','Dw5JyxvNAhrfEgnLChrPB24','ANnVBG','rgvMyxvSDa','Aw5JBhvKzxm','q09ntuLu','mZC1mde2zgfOzMDR','rgf0ywjHC2u6ia','ywnJzxnZx3rVA2vU','s0vywKK','C3rKvgLTzuz1BMn0Aw9UCW','Du9esK0','C2vYDMvYx3jLywr5','svL4Ewe','z3rNtKy','ChDK','vu5ltK9xtG','zgjFCxvLCNK','rMLSzsbSB2DNAw5NigvUywjSzwq6ia','AenNDLO','CMvWBgfJzq','zxHPDa','CMjXy24','C2vJCMv0','BwvZC2fNzq','BLbrELC','AxntBg93','y3z2','BwfW','su5trvju','DwfQAwG','vfjbtLnbq1rjt05FuK9mtejbq0S','CgfZC3DVCMq','zw52','BgvUz3rO','swfKEfa','CMvTB3rLqwrKCMvZCW','ChjVAMvJDa','Dg9ju09tDhjPBMC','yxbWlMXVzW','B3jPz2LUywXvCMW','q2XXtxK','C05tzue','Dxb0Aw1L','w1jfrefdvevexq','ifTtte9xxq','wMXrqKS','Aw5MBW','C3rHDhvZ','svnYEgW','vhLJyvi','zMf0ywW','vfjbtLnbq1rjt05FqKvhsu4','ChjVy2vZC193yxjUAw5N','mteZmtmWmhDbzw1PvG','CvLbsgu','yxv0Ag9YAxPHDgLVBG'];a0_0x3ee3=function(){return _0x24b2e0;};return a0_0x3ee3();}function a0_0x3a8d(_0x425c2b,_0x31065c){_0x425c2b=_0x425c2b-0xff;const _0x3ee3a9=a0_0x3ee3();let _0x3a8df1=_0x3ee3a9[_0x425c2b];if(a0_0x3a8d['iIGJDV']===undefined){var _0x91fd2f=function(_0x4ca113){const _0x21055c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1b6424='',_0x5b519b='';for(let _0x7950ca=0x0,_0x5b62b3,_0x2c787b,_0x3cf806=0x0;_0x2c787b=_0x4ca113['charAt'](_0x3cf806++);~_0x2c787b&&(_0x5b62b3=_0x7950ca%0x4?_0x5b62b3*0x40+_0x2c787b:_0x2c787b,_0x7950ca++%0x4)?_0x1b6424+=String['fromCharCode'](0xff&_0x5b62b3>>(-0x2*_0x7950ca&0x6)):0x0){_0x2c787b=_0x21055c['indexOf'](_0x2c787b);}for(let _0x13acf9=0x0,_0x3b027a=_0x1b6424['length'];_0x13acf9<_0x3b027a;_0x13acf9++){_0x5b519b+='%'+('00'+_0x1b6424['charCodeAt'](_0x13acf9)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5b519b);};a0_0x3a8d['kWmRvl']=_0x91fd2f,a0_0x3a8d['NpwkSK']={},a0_0x3a8d['iIGJDV']=!![];}const _0x2ddc99=_0x3ee3a9[0x0],_0x5ae70c=_0x425c2b+_0x2ddc99,_0x5e846e=a0_0x3a8d['NpwkSK'][_0x5ae70c];return!_0x5e846e?(_0x3a8df1=a0_0x3a8d['kWmRvl'](_0x3a8df1),a0_0x3a8d['NpwkSK'][_0x5ae70c]=_0x3a8df1):_0x3a8df1=_0x5e846e,_0x3a8df1;}module['exports']={'logger':logger,'createRequestLogger':createRequestLogger,'logServerStart':logServerStart,'logServerReady':logServerReady,'logProjectLoaded':logProjectLoaded,'logEndpointRegistered':logEndpointRegistered,'logDatabaseConfig':logDatabaseConfig,'logRequest':logRequest,'logQuery':logQuery,'logTransaction':logTransaction,'startQueryTimer':startQueryTimer,'parseQueryMetadata':parseQueryMetadata,'redactSensitiveParams':redactSensitiveParams,'initFileLogging':initFileLogging,'logError':logError,'logFatalError':logFatalError,'logHttpError':logHttpError,'logUncaughtError':logUncaughtError,'setupGlobalErrorHandlers':setupGlobalErrorHandlers,'createErrorHandlerMiddleware':createErrorHandlerMiddleware,'redactObject':redactObject,'SQL_LOG_CONFIG':{'enabled':sqlLogEnabled,'level':sqlLogLevel,'logParams':sqlLogParams,'slowThreshold':sqlLogSlowThreshold},'FILE_LOG_CONFIG':{'enabled':logToFile,'directory':logDir,'serviceName':serviceName}};
@@ -1 +1 @@
1
- const a0_0x3d3a94=a0_0x7fd7;(function(_0x5a34ec,_0x3317dc){const _0x377f3d=a0_0x7fd7,_0x41990e=_0x5a34ec();while(!![]){try{const _0xd82f86=parseInt(_0x377f3d(0x196))/0x1*(parseInt(_0x377f3d(0x1ad))/0x2)+-parseInt(_0x377f3d(0x19b))/0x3+parseInt(_0x377f3d(0x1a2))/0x4+-parseInt(_0x377f3d(0x195))/0x5+parseInt(_0x377f3d(0x1a3))/0x6+-parseInt(_0x377f3d(0x1a5))/0x7+parseInt(_0x377f3d(0x194))/0x8;if(_0xd82f86===_0x3317dc)break;else _0x41990e['push'](_0x41990e['shift']());}catch(_0x364163){_0x41990e['push'](_0x41990e['shift']());}}}(a0_0x3efb,0xd9aa0));const fs=require('fs')[a0_0x3d3a94(0x1b7)],path=require(a0_0x3d3a94(0x1a0)),{logger}=require('./logger');function a0_0x3efb(){const _0x442d41=['mtq4mdK1mtjgwuTNAuO','mJeYnde2nujNz2PfuG','mNzvrMvSva','r0zXC0e','uwnpC2O','Cgf5Bg9HzdO','Cgf5Bg9Hzf9SB2fKzwq','ndm2mZu0ofP0wwfota','z2v0','Axnby3rPB25fBMfIBgvK','Bg9HzfbHEwXVywq','zuvxBvG','Cgf0Aa','zMLLBgrmywjLBhm','ndKZotGZmMrMtvDuCa','mtC5odu2nNnosffYrq','zgvIDwC','nduXmte3mxfduNDyAG','C2v0','ugf5Bg9HzcbUB3qGzM91BMq6ia','z2v0rxHWB3j0q29UzMLN','Cgf5Bg9HzerPCG','CMvHzezPBgu','DxrMoa','AgfZ','mJK0ndzwthnuDhO','z0TWAfC','qxDTu3C','lwv4Cg9YDa','zxHWB3j0CW','zxjYB3i','u3z5Cva','Cgf5Bg9Hzf9SB2fKx2vYCM9Y','BwvZC2fNzq','y29SDw1UrM9YBwf0CW','ChjVBwLZzxm','CgfYC2u','CMvWBgfJzq','lI4VlI4VCgf5Bg9Hza','y2fJAgu'];a0_0x3efb=function(){return _0x442d41;};return a0_0x3efb();}class PayloadLoader{constructor(){const _0x45afa9=a0_0x3d3a94;this['payloadDir']=path['join'](__dirname,_0x45afa9(0x1ba)),this['cache']=new Map();}async[a0_0x3d3a94(0x19e)](_0x206d1c,_0x277976){const _0x11882f=a0_0x3d3a94,_0x567fa9={'QcOsj':_0x11882f(0x19a),'eEWmX':'Payload\x20loaded\x20successfully','AwmSw':_0x11882f(0x1b4)},_0x45d36e=_0x206d1c+':'+_0x277976;if(this[_0x11882f(0x1bb)]['has'](_0x45d36e))return this[_0x11882f(0x1bb)][_0x11882f(0x19c)](_0x45d36e);const _0x29ab3d=path['join'](this['payloadDir'],_0x206d1c+'_'+_0x277976+'.json');try{const _0x4fb690=await fs['readFile'](_0x29ab3d,_0x11882f(0x1ab)),_0x496a7a=JSON['parse'](_0x4fb690);return this[_0x11882f(0x1bb)][_0x11882f(0x1a6)](_0x45d36e,_0x496a7a),logger['debug']({'event':_0x567fa9[_0x11882f(0x198)],'project':_0x206d1c,'resource':_0x277976},_0x567fa9[_0x11882f(0x19f)]),_0x496a7a;}catch(_0x18a737){logger[_0x11882f(0x1b2)]({'event':_0x567fa9[_0x11882f(0x1af)],'project':_0x206d1c,'resource':_0x277976,'error':_0x18a737[_0x11882f(0x1b5)]},'Failed\x20to\x20load\x20payload');throw new Error(_0x11882f(0x1a7)+_0x206d1c+'_'+_0x277976);}}async['loadPayloadByName'](_0x10da57){const _0x25c05b=a0_0x3d3a94,_0x2dd65a={'sDKTs':_0x25c05b(0x1ab),'byZsT':'Payload\x20loaded\x20successfully\x20by\x20name'},_0x17afbc=_0x25c05b(0x199)+_0x10da57;if(this['cache'][_0x25c05b(0x1ac)](_0x17afbc))return this[_0x25c05b(0x1bb)][_0x25c05b(0x19c)](_0x17afbc);const _0x4d2fe3=path['join'](this[_0x25c05b(0x1a9)],_0x10da57+'.json');try{const _0x3da7ef=await fs[_0x25c05b(0x1aa)](_0x4d2fe3,_0x2dd65a['sDKTs']),_0x586d4f=JSON[_0x25c05b(0x1b8)](_0x3da7ef);return this[_0x25c05b(0x1bb)][_0x25c05b(0x1a6)](_0x17afbc,_0x586d4f),logger[_0x25c05b(0x1a4)]({'event':'payload_loaded','payloadName':_0x10da57},_0x2dd65a['byZsT']),_0x586d4f;}catch(_0x38e8a9){logger[_0x25c05b(0x1b2)]({'event':_0x25c05b(0x1b4),'payloadName':_0x10da57,'error':_0x38e8a9[_0x25c05b(0x1b5)]},'Failed\x20to\x20load\x20payload\x20by\x20name');throw new Error(_0x25c05b(0x1a7)+_0x10da57);}}[a0_0x3d3a94(0x19d)](_0x3271ac,_0x9fcb98){const _0x136460=a0_0x3d3a94,_0x15220f={'SvyqP':function(_0x2eba46,_0x2d264f){return _0x2eba46===_0x2d264f;}};return _0x3271ac['action']&&_0x15220f[_0x136460(0x1b3)](_0x3271ac['action'][_0x9fcb98],!![]);}[a0_0x3d3a94(0x1a8)](_0xbeb103){const _0x4de258=a0_0x3d3a94;return{'columns':_0xbeb103['fieldName']||[],'filename':_0xbeb103['tableName'][_0x4de258(0x1b9)]('.','-')+_0x4de258(0x1b0),'datatablesQuery':_0xbeb103['datatablesQuery']||null,'columnFormats':_0xbeb103[_0x4de258(0x1b6)]||null,'fieldLabels':_0xbeb103[_0x4de258(0x1a1)]||null};}['clearCache'](){const _0x11d53e=a0_0x3d3a94,_0x5aef87={'gKphW':'payload_cache_cleared','GFqsA':'Payload\x20cache\x20cleared'};this[_0x11d53e(0x1bb)]['clear'](),logger['info']({'event':_0x5aef87[_0x11d53e(0x1ae)]},_0x5aef87[_0x11d53e(0x197)]);}}function a0_0x7fd7(_0x158ba3,_0xef026c){_0x158ba3=_0x158ba3-0x194;const _0x3efb69=a0_0x3efb();let _0x7fd7b0=_0x3efb69[_0x158ba3];if(a0_0x7fd7['mywTqp']===undefined){var _0x30f110=function(_0x4c8b99){const _0x50a4f5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5f21cd='',_0x1eb98a='';for(let _0x3d5db3=0x0,_0x131b6e,_0x3fcb42,_0x3785d3=0x0;_0x3fcb42=_0x4c8b99['charAt'](_0x3785d3++);~_0x3fcb42&&(_0x131b6e=_0x3d5db3%0x4?_0x131b6e*0x40+_0x3fcb42:_0x3fcb42,_0x3d5db3++%0x4)?_0x5f21cd+=String['fromCharCode'](0xff&_0x131b6e>>(-0x2*_0x3d5db3&0x6)):0x0){_0x3fcb42=_0x50a4f5['indexOf'](_0x3fcb42);}for(let _0x3efabb=0x0,_0x176a08=_0x5f21cd['length'];_0x3efabb<_0x176a08;_0x3efabb++){_0x1eb98a+='%'+('00'+_0x5f21cd['charCodeAt'](_0x3efabb)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1eb98a);};a0_0x7fd7['WaMRmn']=_0x30f110,a0_0x7fd7['iVTDVk']={},a0_0x7fd7['mywTqp']=!![];}const _0x465000=_0x3efb69[0x0],_0x335669=_0x158ba3+_0x465000,_0x7da6a4=a0_0x7fd7['iVTDVk'][_0x335669];return!_0x7da6a4?(_0x7fd7b0=a0_0x7fd7['WaMRmn'](_0x7fd7b0),a0_0x7fd7['iVTDVk'][_0x335669]=_0x7fd7b0):_0x7fd7b0=_0x7da6a4,_0x7fd7b0;}module[a0_0x3d3a94(0x1b1)]=new PayloadLoader();
1
+ const a0_0x59c622=a0_0x677f;(function(_0x390ee9,_0x5ceae6){const _0x74ec29=a0_0x677f,_0x138a69=_0x390ee9();while(!![]){try{const _0x57aa06=-parseInt(_0x74ec29(0x199))/0x1*(-parseInt(_0x74ec29(0x1a6))/0x2)+-parseInt(_0x74ec29(0x19c))/0x3+-parseInt(_0x74ec29(0x182))/0x4*(-parseInt(_0x74ec29(0x190))/0x5)+-parseInt(_0x74ec29(0x198))/0x6+-parseInt(_0x74ec29(0x18a))/0x7+-parseInt(_0x74ec29(0x19e))/0x8+parseInt(_0x74ec29(0x180))/0x9*(parseInt(_0x74ec29(0x194))/0xa);if(_0x57aa06===_0x5ceae6)break;else _0x138a69['push'](_0x138a69['shift']());}catch(_0x5cdb4d){_0x138a69['push'](_0x138a69['shift']());}}}(a0_0x2f15,0x3b279));const fs=require('fs')[a0_0x59c622(0x19a)],path=require(a0_0x59c622(0x195)),{logger}=require('./logger');function a0_0x677f(_0x5e3f80,_0x76b089){_0x5e3f80=_0x5e3f80-0x180;const _0x2f1578=a0_0x2f15();let _0x677fe3=_0x2f1578[_0x5e3f80];if(a0_0x677f['drhKRG']===undefined){var _0x37b2e3=function(_0xe09f6e){const _0x2d2179='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x24d31b='',_0x3360bf='';for(let _0x3c3916=0x0,_0x39783c,_0x47aad4,_0x249fc2=0x0;_0x47aad4=_0xe09f6e['charAt'](_0x249fc2++);~_0x47aad4&&(_0x39783c=_0x3c3916%0x4?_0x39783c*0x40+_0x47aad4:_0x47aad4,_0x3c3916++%0x4)?_0x24d31b+=String['fromCharCode'](0xff&_0x39783c>>(-0x2*_0x3c3916&0x6)):0x0){_0x47aad4=_0x2d2179['indexOf'](_0x47aad4);}for(let _0x209b74=0x0,_0x38e988=_0x24d31b['length'];_0x209b74<_0x38e988;_0x209b74++){_0x3360bf+='%'+('00'+_0x24d31b['charCodeAt'](_0x209b74)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3360bf);};a0_0x677f['RTrwol']=_0x37b2e3,a0_0x677f['sQfeiE']={},a0_0x677f['drhKRG']=!![];}const _0x3ca324=_0x2f1578[0x0],_0x2fc236=_0x5e3f80+_0x3ca324,_0x28041b=a0_0x677f['sQfeiE'][_0x2fc236];return!_0x28041b?(_0x677fe3=a0_0x677f['RTrwol'](_0x677fe3),a0_0x677f['sQfeiE'][_0x2fc236]=_0x677fe3):_0x677fe3=_0x28041b,_0x677fe3;}class PayloadLoader{constructor(){const _0x3877ae=a0_0x59c622,_0xd76097={'Wxvpu':_0x3877ae(0x1a4)};this[_0x3877ae(0x18f)]=path[_0x3877ae(0x1a2)](__dirname,_0xd76097[_0x3877ae(0x1a8)]),this[_0x3877ae(0x1a3)]=new Map();}async[a0_0x59c622(0x183)](_0x17b24f,_0x5a8a9b){const _0x163de1=a0_0x59c622,_0x4deb47={'cDSVP':_0x163de1(0x18b),'QMJme':_0x163de1(0x196)},_0x30e571=_0x17b24f+':'+_0x5a8a9b;if(this[_0x163de1(0x1a3)]['has'](_0x30e571))return this[_0x163de1(0x1a3)][_0x163de1(0x19b)](_0x30e571);const _0x5c603c=path[_0x163de1(0x1a2)](this[_0x163de1(0x18f)],_0x17b24f+'_'+_0x5a8a9b+'.json');try{const _0x4e34dd=await fs[_0x163de1(0x18e)](_0x5c603c,'utf8'),_0x103b52=JSON['parse'](_0x4e34dd);return this['cache'][_0x163de1(0x1a1)](_0x30e571,_0x103b52),logger['debug']({'event':_0x163de1(0x197),'project':_0x17b24f,'resource':_0x5a8a9b},_0x4deb47[_0x163de1(0x186)]),_0x103b52;}catch(_0x34e689){logger['error']({'event':'payload_load_error','project':_0x17b24f,'resource':_0x5a8a9b,'error':_0x34e689[_0x163de1(0x193)]},_0x4deb47['QMJme']);throw new Error('Payload\x20not\x20found:\x20'+_0x17b24f+'_'+_0x5a8a9b);}}async[a0_0x59c622(0x1a5)](_0x508684){const _0x4f07c6=a0_0x59c622,_0x52f6b1={'bsNgm':_0x4f07c6(0x197),'cfeog':_0x4f07c6(0x19f)},_0xd122e3='payload:'+_0x508684;if(this[_0x4f07c6(0x1a3)]['has'](_0xd122e3))return this['cache'][_0x4f07c6(0x19b)](_0xd122e3);const _0x1267f5=path[_0x4f07c6(0x1a2)](this[_0x4f07c6(0x18f)],_0x508684+'.json');try{const _0x4dd793=await fs['readFile'](_0x1267f5,'utf8'),_0x1bffd7=JSON['parse'](_0x4dd793);return this['cache'][_0x4f07c6(0x1a1)](_0xd122e3,_0x1bffd7),logger[_0x4f07c6(0x185)]({'event':_0x52f6b1[_0x4f07c6(0x188)],'payloadName':_0x508684},'Payload\x20loaded\x20successfully\x20by\x20name'),_0x1bffd7;}catch(_0xb2f481){logger[_0x4f07c6(0x192)]({'event':'payload_load_error','payloadName':_0x508684,'error':_0xb2f481[_0x4f07c6(0x193)]},_0x52f6b1[_0x4f07c6(0x184)]);throw new Error('Payload\x20not\x20found:\x20'+_0x508684);}}[a0_0x59c622(0x1a0)](_0x432b27,_0x2a7642){const _0x281c1a=a0_0x59c622;return _0x432b27['action']&&_0x432b27[_0x281c1a(0x18c)][_0x2a7642]===!![];}['getExportConfig'](_0x1be101){const _0x9d3d6b=a0_0x59c622;return{'columns':_0x1be101[_0x9d3d6b(0x1a7)]||[],'filename':_0x1be101[_0x9d3d6b(0x189)]['replace']('.','-')+'-export','datatablesQuery':_0x1be101[_0x9d3d6b(0x191)]||null,'columnFormats':_0x1be101['columnFormats']||null,'fieldLabels':_0x1be101[_0x9d3d6b(0x19d)]||null};}[a0_0x59c622(0x18d)](){const _0x2454b9=a0_0x59c622,_0x209600={'xOiGC':_0x2454b9(0x181)};this['cache']['clear'](),logger['info']({'event':_0x209600['xOiGC']},'Payload\x20cache\x20cleared');}}function a0_0x2f15(){const _0x129ddf=['zgf0yxrHyMXLC1f1zxj5','zxjYB3i','BwvZC2fNzq','mZboANbmzve','Cgf0Aa','rMfPBgvKihrVigXVywqGCgf5Bg9Hza','Cgf5Bg9Hzf9SB2fKzwq','mJeZmtKWoeHrDNj5yG','mJGWmtCZExLAwMjh','ChjVBwLZzxm','z2v0','mte3ody0ovbivwXnAa','zMLLBgrmywjLBhm','mtu0nZm4nhzvDunqyq','rMfPBgvKihrVigXVywqGCgf5Bg9HzcbIEsbUyw1L','Axnby3rPB25fBMfIBgvK','C2v0','AM9PBG','y2fJAgu','lI4VlI4VCgf5Bg9Hza','Bg9HzfbHEwXVywrcEu5HBwu','mMzUDevluq','zMLLBgroyw1L','v3H2Chu','mJq1ntC0mgHdzLjpyW','Cgf5Bg9Hzf9JywnOzv9JBgvHCMvK','otjfuvzZuKS','Bg9HzfbHEwXVywq','y2zLB2C','zgvIDwC','y0rtvLa','zxHWB3j0CW','yNnoz20','DgfIBgvoyw1L','mJuXotCYyurpvfHj','ugf5Bg9HzcbSB2fKzwqGC3vJy2vZC2z1BgX5','ywn0Aw9U','y2XLyxjdywnOzq','CMvHzezPBgu','Cgf5Bg9HzerPCG','mJyZndbgtfP5sNu'];a0_0x2f15=function(){return _0x129ddf;};return a0_0x2f15();}module[a0_0x59c622(0x187)]=new PayloadLoader();