@restforgejs/platform 4.1.1 → 4.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (340) hide show
  1. package/SECURITY.md +83 -4
  2. package/bin/sdf-tools.exe +0 -0
  3. package/build-info.json +2 -2
  4. package/cli/consumer-deploy.js +1 -1
  5. package/cli/consumer.js +1 -1
  6. package/generators/cli/dashboard/create.js +4 -1
  7. package/generators/cli/endpoint/create.js +43 -4
  8. package/generators/cli/key/generate.js +2 -1
  9. package/generators/cli/key/revoke.js +2 -1
  10. package/generators/cli/payload/diff.js +3 -2
  11. package/generators/cli/payload/generate.js +3 -2
  12. package/generators/cli/payload/sync.js +3 -2
  13. package/generators/cli/payload/validate.js +3 -2
  14. package/generators/cli/processor/create.js +14 -3
  15. package/generators/cli/project/delete.js +2 -1
  16. package/generators/cli/query/validate.js +3 -2
  17. package/generators/cli/schema/apply.js +526 -0
  18. package/generators/cli/schema/describe.js +3 -2
  19. package/generators/cli/schema/diff.js +322 -0
  20. package/generators/cli/schema/generate-ddl.js +7 -10
  21. package/generators/cli/schema/init.js +95 -172
  22. package/generators/cli/schema/introspect.js +3 -2
  23. package/generators/cli/schema/list.js +3 -2
  24. package/generators/cli/schema/migrate.js +13 -18
  25. package/generators/cli/schema/models.js +8 -12
  26. package/generators/cli/schema/template.js +222 -0
  27. package/generators/cli/schema/validate.js +8 -12
  28. package/generators/cli-entry.js +17 -2
  29. package/generators/lib/dbschema-kit/apply-engine.js +582 -0
  30. package/generators/lib/dbschema-kit/diff-engine.js +703 -0
  31. package/generators/lib/dbschema-kit/diff-reporter.js +272 -0
  32. package/generators/lib/dbschema-kit/emitters/alter-table.js +275 -0
  33. package/generators/lib/migration/audit-table-runner.js +213 -215
  34. package/generators/lib/payload/endpoint-schema-validator.js +171 -0
  35. package/generators/lib/payload/payload-runner.js +137 -220
  36. package/generators/lib/payload/schema-diff.js +277 -0
  37. package/generators/lib/templates/dashboard-catalog.js +1 -437
  38. package/generators/lib/templates/db-connection-env.js +1 -212
  39. package/generators/lib/templates/dbschema-catalog.js +1 -489
  40. package/generators/lib/templates/field-validation-catalog.js +1 -531
  41. package/generators/lib/templates/mysql-template.js +1 -3863
  42. package/generators/lib/templates/oracle-template.js +1 -3915
  43. package/generators/lib/templates/postgres-template.js +1 -5838
  44. package/generators/lib/templates/query-declarative-catalog.js +1 -199
  45. package/generators/lib/templates/sqlite-template.js +1 -3440
  46. package/generators/lib/utils/audit-columns.js +181 -0
  47. package/generators/lib/utils/cli-output.js +17 -0
  48. package/generators/lib/utils/database-introspector.js +16 -13
  49. package/generators/lib/utils/env-manager.js +6 -0
  50. package/generators/lib/utils/path-validator.js +71 -0
  51. package/generators/lib/validators/payload-validator.js +1 -2
  52. package/integrity-manifest.json +28 -10
  53. package/package.json +11 -3
  54. package/scripts/verify-integrity.js +1 -1
  55. package/server.js +1 -1
  56. package/src/components/handlers/adjust_handler.js +1 -1
  57. package/src/components/handlers/audit_handler.js +1 -1
  58. package/src/components/handlers/delete_handler.js +1 -1
  59. package/src/components/handlers/export_handler.js +1 -1
  60. package/src/components/handlers/import_handler.js +1 -1
  61. package/src/components/handlers/insert_handler.js +1 -1
  62. package/src/components/handlers/update_handler.js +1 -1
  63. package/src/components/handlers/upload_handler.js +1 -1
  64. package/src/components/handlers/workflow_handler.js +1 -1
  65. package/src/components/integrations/webhook.js +1 -1
  66. package/src/consumers/baseConsumer.js +1 -1
  67. package/src/consumers/declarativeMapper.js +1 -1
  68. package/src/consumers/handlers/apiHandler.js +1 -1
  69. package/src/consumers/handlers/consoleHandler.js +1 -1
  70. package/src/consumers/handlers/databaseHandler.js +1 -1
  71. package/src/consumers/handlers/index.js +1 -1
  72. package/src/consumers/handlers/kafkaHandler.js +1 -1
  73. package/src/consumers/index.js +1 -1
  74. package/src/consumers/messageTransformer.js +1 -1
  75. package/src/consumers/validator.js +1 -1
  76. package/src/core/db/dialect/base-dialect.js +1 -1
  77. package/src/core/db/dialect/index.js +1 -1
  78. package/src/core/db/dialect/mysql-dialect.js +1 -1
  79. package/src/core/db/dialect/oracle-dialect.js +1 -1
  80. package/src/core/db/dialect/postgres-dialect.js +1 -1
  81. package/src/core/db/dialect/sqlite-dialect.js +1 -1
  82. package/src/core/db/flatten-helper.js +1 -1
  83. package/src/core/db/query-builder-error.js +1 -1
  84. package/src/core/db/query-builder.js +1 -1
  85. package/src/core/db/relation-helper.js +1 -1
  86. package/src/core/handlers/delete_handler.js +1 -1
  87. package/src/core/handlers/insert_handler.js +1 -1
  88. package/src/core/handlers/update_handler.js +1 -1
  89. package/src/core/models/base-model.js +1 -1
  90. package/src/core/utils/cache-manager.js +1 -1
  91. package/src/core/utils/component-engine.js +1 -1
  92. package/src/core/utils/context-builder.js +1 -1
  93. package/src/core/utils/datetime-formatter.js +1 -1
  94. package/src/core/utils/datetime-parser.js +1 -1
  95. package/src/core/utils/db.js +1 -1
  96. package/src/core/utils/logger.js +1 -1
  97. package/src/core/utils/payload-loader.js +1 -1
  98. package/src/core/utils/security-checks.js +1 -1
  99. package/src/middleware/body-options.js +1 -1
  100. package/src/middleware/cors.js +1 -1
  101. package/src/middleware/idempotency.js +1 -1
  102. package/src/middleware/rate-limiter.js +1 -1
  103. package/src/middleware/request-logger.js +1 -1
  104. package/src/middleware/security-headers.js +1 -1
  105. package/src/models/base-model-mysql.js +1 -1
  106. package/src/models/base-model-oracle.js +1 -1
  107. package/src/models/base-model-sqlite.js +1 -1
  108. package/src/models/base-model.js +1 -1
  109. package/src/pro/caching/redis-client.js +1 -1
  110. package/src/pro/caching/redis-helper.js +1 -1
  111. package/src/pro/consumers/baseConsumer.js +1 -1
  112. package/src/pro/consumers/declarativeMapper.js +1 -1
  113. package/src/pro/consumers/handlers/apiHandler.js +1 -1
  114. package/src/pro/consumers/handlers/consoleHandler.js +1 -1
  115. package/src/pro/consumers/handlers/databaseHandler.js +1 -1
  116. package/src/pro/consumers/handlers/index.js +1 -1
  117. package/src/pro/consumers/handlers/kafkaHandler.js +1 -1
  118. package/src/pro/consumers/index.js +1 -1
  119. package/src/pro/consumers/messageTransformer.js +1 -1
  120. package/src/pro/consumers/validator.js +1 -1
  121. package/src/pro/database/base-model-mysql.js +1 -1
  122. package/src/pro/database/base-model-oracle.js +1 -1
  123. package/src/pro/database/base-model-sqlite.js +1 -1
  124. package/src/pro/database/db-mysql.js +1 -1
  125. package/src/pro/database/db-oracle.js +1 -1
  126. package/src/pro/database/db-sqlite.js +1 -1
  127. package/src/pro/excel/excel-generator.js +1 -1
  128. package/src/pro/excel/excel-parser.js +1 -1
  129. package/src/pro/excel/export-service.js +1 -1
  130. package/src/pro/excel/export_handler.js +1 -1
  131. package/src/pro/excel/import-service.js +1 -1
  132. package/src/pro/excel/import-validator.js +1 -1
  133. package/src/pro/excel/import_handler.js +1 -1
  134. package/src/pro/excel/upsert-builder.js +1 -1
  135. package/src/pro/idgen/idgen-routes.js +1 -1
  136. package/src/pro/integrations/lookup-resolver.js +1 -1
  137. package/src/pro/integrations/upload-handler-v2.js +1 -1
  138. package/src/pro/integrations/upload-handler.js +1 -1
  139. package/src/pro/integrations/webhook.js +1 -1
  140. package/src/pro/locking/lock-routes.js +1 -1
  141. package/src/pro/locking/resource-lock-manager.js +1 -1
  142. package/src/pro/messaging/kafkaConsumerService.js +1 -1
  143. package/src/pro/messaging/kafkaService.js +1 -1
  144. package/src/pro/messaging/messagehubService.js +1 -1
  145. package/src/pro/messaging/rabbitmqService.js +1 -1
  146. package/src/pro/scheduler/job-manager.js +1 -1
  147. package/src/pro/scheduler/job-routes.js +1 -1
  148. package/src/pro/scheduler/job-validator.js +1 -1
  149. package/src/pro/storage/base-storage-provider.js +1 -1
  150. package/src/pro/storage/file-metadata-helper.js +1 -1
  151. package/src/pro/storage/index.js +1 -1
  152. package/src/pro/storage/local-storage-provider.js +1 -1
  153. package/src/pro/storage/s3-storage-provider.js +1 -1
  154. package/src/pro/storage/upload-cleanup-job.js +1 -1
  155. package/src/pro/storage/upload-cleanup-scheduler.js +1 -1
  156. package/src/pro/storage/upload-pending-tracker.js +1 -1
  157. package/src/pro/websocket/broadcast-helper.js +1 -1
  158. package/src/pro/websocket/index.js +1 -1
  159. package/src/pro/websocket/livesync-server.js +1 -1
  160. package/src/pro/websocket/ws-broadcaster.js +1 -1
  161. package/src/services/export-service.js +1 -1
  162. package/src/services/import-service.js +1 -1
  163. package/src/services/kafkaConsumerService.js +1 -1
  164. package/src/services/kafkaService.js +1 -1
  165. package/src/services/messagehubService.js +1 -1
  166. package/src/services/rabbitmqService.js +1 -1
  167. package/src/utils/cache-invalidation-registry.js +1 -1
  168. package/src/utils/cache-manager.js +1 -1
  169. package/src/utils/component-engine.js +1 -1
  170. package/src/utils/config-extractor.js +1 -1
  171. package/src/utils/consumerLogger.js +1 -1
  172. package/src/utils/context-builder.js +1 -1
  173. package/src/utils/dashboard-helpers.js +1 -1
  174. package/src/utils/dateHelper.js +1 -1
  175. package/src/utils/datetime-formatter.js +1 -1
  176. package/src/utils/datetime-parser.js +1 -1
  177. package/src/utils/db-bootstrap.js +1 -1
  178. package/src/utils/db-mysql.js +1 -1
  179. package/src/utils/db-oracle.js +1 -1
  180. package/src/utils/db-sqlite.js +1 -1
  181. package/src/utils/db.js +1 -1
  182. package/src/utils/demo-generator.js +1 -1
  183. package/src/utils/excel-generator.js +1 -1
  184. package/src/utils/excel-parser.js +1 -1
  185. package/src/utils/file-watcher.js +1 -1
  186. package/src/utils/id-generator.js +1 -1
  187. package/src/utils/idempotency-manager.js +1 -1
  188. package/src/utils/import-validator.js +1 -1
  189. package/src/utils/license-client.js +1 -1
  190. package/src/utils/lock-manager.js +1 -1
  191. package/src/utils/logger.js +1 -1
  192. package/src/utils/lookup-resolver.js +1 -1
  193. package/src/utils/payload-loader.js +1 -1
  194. package/src/utils/processor-response.js +1 -1
  195. package/src/utils/rabbitmq.js +1 -1
  196. package/src/utils/redis-client.js +1 -1
  197. package/src/utils/redis-helper.js +1 -1
  198. package/src/utils/request-scope.js +1 -1
  199. package/src/utils/security-checks.js +1 -1
  200. package/src/utils/service-resolver.js +1 -1
  201. package/src/utils/shutdown-coordinator.js +1 -1
  202. package/src/utils/trusted-keys.js +1 -1
  203. package/src/utils/upload-handler.js +1 -1
  204. package/src/utils/upsert-builder.js +1 -1
  205. package/src/utils/workflow-hook-executor.js +1 -1
  206. package/generators/metadata/global.json +0 -58
  207. package/generators/metadata/test-mysql-workbench.json +0 -118
  208. package/generators/metadata/test-mysql.json +0 -56
  209. package/generators/metadata/test-oracle-workbench.json +0 -118
  210. package/generators/metadata/test-oracle.json +0 -56
  211. package/generators/metadata/test-pg-workbench.json +0 -118
  212. package/generators/metadata/test-pg.json +0 -56
  213. package/generators/scripts/obfuscate-source.js +0 -356
  214. package/generators/scripts/validate-catalog.js +0 -430
  215. package/generators/scripts/validate-dbschema-catalog.js +0 -708
  216. package/generators/tests/baseline/mysql/mini_inventory_item/src/models/mini-inventory/item.js +0 -944
  217. package/generators/tests/baseline/mysql/mini_inventory_item/src/modules/mini-inventory/item.js +0 -740
  218. package/generators/tests/baseline/mysql/mini_inventory_item/src/modules/mini-inventory.js +0 -336
  219. package/generators/tests/baseline/oracle/mini_inventory_item/src/models/mini-inventory/item.js +0 -1002
  220. package/generators/tests/baseline/oracle/mini_inventory_item/src/modules/mini-inventory/item.js +0 -740
  221. package/generators/tests/baseline/oracle/mini_inventory_item/src/modules/mini-inventory.js +0 -336
  222. package/generators/tests/baseline/postgres/mini_inventory_item/src/models/mini-inventory/item.js +0 -1333
  223. package/generators/tests/baseline/postgres/mini_inventory_item/src/modules/mini-inventory/item.js +0 -1173
  224. package/generators/tests/baseline/postgres/mini_inventory_item/src/modules/mini-inventory.js +0 -496
  225. package/generators/tests/fixtures/payloads/custom-sensitive.json +0 -27
  226. package/generators/tests/fixtures/payloads/dynamic-search-optout.json +0 -23
  227. package/generators/tests/fixtures/payloads/login-with-password.json +0 -22
  228. package/generators/tests/fixtures/payloads/order-process.json +0 -52
  229. package/generators/tests/fixtures/payloads/with-inline-sql.json +0 -26
  230. package/generators/tests/integration-tahap4b/README.md +0 -145
  231. package/generators/tests/integration-tahap4b/run-concurrent.js +0 -77
  232. package/generators/tests/integration-tahap4b/seed.sql +0 -53
  233. package/generators/tests/integration-tahap4b/verify.sql +0 -110
  234. package/generators/tests/unit/cli/create-dashboard.test.js +0 -505
  235. package/generators/tests/unit/cli/create-processor.test.js +0 -319
  236. package/generators/tests/unit/cli/dispatch-dashboard.test.js +0 -149
  237. package/generators/tests/unit/lib/dashboard-generator.test.js +0 -895
  238. package/generators/tests/unit/lib/dashboard-validator.test.js +0 -354
  239. package/generators/tests/unit/lib/dbschema-kit/apply-executor.test.js +0 -437
  240. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-introspect.test.js +0 -393
  241. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-generate-ddl.test.js +0 -104
  242. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-init.test.js +0 -119
  243. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-list.test.js +0 -48
  244. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-migrate.test.js +0 -175
  245. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-validate.test.js +0 -102
  246. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-models.test.js +0 -43
  247. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/all-schemas-listing.js +0 -84
  248. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/connection-error.js +0 -13
  249. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/empty.js +0 -12
  250. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/multi-schema.js +0 -124
  251. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/single-schema-inventory.js +0 -64
  252. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/two-tables.js +0 -66
  253. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/connection-error.js +0 -9
  254. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/partial.js +0 -29
  255. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/rollback.js +0 -26
  256. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/success.js +0 -43
  257. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/multi-schema/audit/events.js +0 -18
  258. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/multi-schema/inventory/products.js +0 -9
  259. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/multi-schema/users.js +0 -8
  260. package/generators/tests/unit/lib/dbschema-kit/connection.test.js +0 -112
  261. package/generators/tests/unit/lib/dbschema-kit/ddl-generator.test.js +0 -205
  262. package/generators/tests/unit/lib/dbschema-kit/define-model.test.js +0 -56
  263. package/generators/tests/unit/lib/dbschema-kit/dialect/index.test.js +0 -46
  264. package/generators/tests/unit/lib/dbschema-kit/dialect/mysql.test.js +0 -126
  265. package/generators/tests/unit/lib/dbschema-kit/dialect/oracle.test.js +0 -126
  266. package/generators/tests/unit/lib/dbschema-kit/dialect/postgres.test.js +0 -131
  267. package/generators/tests/unit/lib/dbschema-kit/dialect/sqlite.test.js +0 -126
  268. package/generators/tests/unit/lib/dbschema-kit/driver-loader.test.js +0 -93
  269. package/generators/tests/unit/lib/dbschema-kit/emitters/create-index.test.js +0 -173
  270. package/generators/tests/unit/lib/dbschema-kit/emitters/create-table.test.js +0 -376
  271. package/generators/tests/unit/lib/dbschema-kit/emitters/drop-table.test.js +0 -78
  272. package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/invalid-dialect.env +0 -6
  273. package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/missing-dialect.env +0 -5
  274. package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/missing-host.env +0 -5
  275. package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/oracle-valid.env +0 -6
  276. package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/postgres-valid.env +0 -7
  277. package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/sqlite-valid.env +0 -2
  278. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/category.js +0 -11
  279. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/item_product.js +0 -11
  280. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/stock_inbound.js +0 -24
  281. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/stock_inbound_item.js +0 -28
  282. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/supplier.js +0 -9
  283. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/warehouse.js +0 -9
  284. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-invalid/orphan.js +0 -17
  285. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/category.js +0 -11
  286. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/item_product.js +0 -11
  287. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/supplier.js +0 -9
  288. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/warehouse.js +0 -9
  289. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/transactions/stock_inbound.js +0 -24
  290. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/transactions/stock_inbound_item.js +0 -28
  291. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/multi-schema/audit/events.js +0 -18
  292. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/multi-schema/inventory/products.js +0 -9
  293. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/multi-schema/public/users.js +0 -9
  294. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-subfolder/extra/category.js +0 -8
  295. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-subfolder/master/category.js +0 -8
  296. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-tablename/bar.js +0 -8
  297. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-tablename/foo.js +0 -8
  298. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/empty-folder/README.md +0 -1
  299. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/invalid-export/plain.js +0 -3
  300. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/invalid-schema/bad.js +0 -6
  301. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/legacy-pattern/legacy.js +0 -12
  302. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-distinct/audit/products.js +0 -9
  303. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-distinct/inventory/products.js +0 -9
  304. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-duplicate/a/products.js +0 -8
  305. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-duplicate/b/products.js +0 -8
  306. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/nested-deep/a/b/c/deep_table.js +0 -8
  307. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/.hidden/ignored.js +0 -7
  308. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/master/category.js +0 -8
  309. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/master/supplier.js +0 -8
  310. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/transactions/stock_inbound.js +0 -8
  311. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/transactions/stock_inbound_item.js +0 -8
  312. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/valid-multiple/category.js +0 -8
  313. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/valid-multiple/item_product.js +0 -9
  314. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/valid-single/category.js +0 -8
  315. package/generators/tests/unit/lib/dbschema-kit/integration.test.js +0 -217
  316. package/generators/tests/unit/lib/dbschema-kit/introspect-mapper.test.js +0 -403
  317. package/generators/tests/unit/lib/dbschema-kit/ir-builder.test.js +0 -390
  318. package/generators/tests/unit/lib/dbschema-kit/loader.test.js +0 -128
  319. package/generators/tests/unit/lib/dbschema-kit/naming.test.js +0 -170
  320. package/generators/tests/unit/lib/dbschema-kit/parser/shorthand-parser.test.js +0 -237
  321. package/generators/tests/unit/lib/dbschema-kit/schema-printer.test.js +0 -251
  322. package/generators/tests/unit/lib/dbschema-kit/statement-modifier.test.js +0 -105
  323. package/generators/tests/unit/lib/dbschema-kit/statement-splitter.test.js +0 -165
  324. package/generators/tests/unit/lib/dbschema-kit/topological-sort.test.js +0 -135
  325. package/generators/tests/unit/lib/dbschema-kit/validator/check-compatibility-validator.test.js +0 -373
  326. package/generators/tests/unit/lib/dbschema-kit/validator/circular-relation-validator.test.js +0 -454
  327. package/generators/tests/unit/lib/dbschema-kit/validator/cross-model-validator.test.js +0 -512
  328. package/generators/tests/unit/lib/dbschema-kit/validator/enhanced-validate-integration.test.js +0 -390
  329. package/generators/tests/unit/lib/dbschema-kit/validator/naming-convention-validator.test.js +0 -306
  330. package/generators/tests/unit/lib/dbschema-kit/validator/schema-validator.test.js +0 -443
  331. package/generators/tests/unit/lib/dbschema-kit/validator/type-compatibility-validator.test.js +0 -440
  332. package/generators/tests/unit/lib/dbschema-kit/validator/validator-reporter.test.js +0 -172
  333. package/generators/tests/unit/lib/metadata-manager-dashboard.test.js +0 -256
  334. package/generators/tests/unit/lib/payload-validator-fieldpolicy.test.js +0 -240
  335. package/generators/tests/unit/lib/processor-validation-generator.test.js +0 -300
  336. package/generators/tests/unit/lib/sensitive-field-masker.test.js +0 -170
  337. package/generators/tests/unit/lib/sql-table-extractor.test.js +0 -119
  338. package/scripts/generate-integrity-manifest.js +0 -124
  339. package/scripts/snapshot-cli-contracts.js +0 -194
  340. package/scripts/verify-publish.js +0 -56
@@ -1 +1 @@
1
- const a0_0xf05623=a0_0x4a44;function a0_0x4a44(_0xc0823d,_0x1cd95f){_0xc0823d=_0xc0823d-0xe7;const _0x1b68ea=a0_0x1b68();let _0x4a4490=_0x1b68ea[_0xc0823d];if(a0_0x4a44['SqlFpB']===undefined){var _0x43e76e=function(_0xcbf24f){const _0x3790c4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x232118='',_0x41786c='';for(let _0x5c7f7a=0x0,_0x4cb669,_0x283058,_0x3d8ac9=0x0;_0x283058=_0xcbf24f['charAt'](_0x3d8ac9++);~_0x283058&&(_0x4cb669=_0x5c7f7a%0x4?_0x4cb669*0x40+_0x283058:_0x283058,_0x5c7f7a++%0x4)?_0x232118+=String['fromCharCode'](0xff&_0x4cb669>>(-0x2*_0x5c7f7a&0x6)):0x0){_0x283058=_0x3790c4['indexOf'](_0x283058);}for(let _0x3d9433=0x0,_0xa5015d=_0x232118['length'];_0x3d9433<_0xa5015d;_0x3d9433++){_0x41786c+='%'+('00'+_0x232118['charCodeAt'](_0x3d9433)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x41786c);};a0_0x4a44['lHjZNh']=_0x43e76e,a0_0x4a44['wYqglK']={},a0_0x4a44['SqlFpB']=!![];}const _0x394d0a=_0x1b68ea[0x0],_0x422c9a=_0xc0823d+_0x394d0a,_0x26236a=a0_0x4a44['wYqglK'][_0x422c9a];return!_0x26236a?(_0x4a4490=a0_0x4a44['lHjZNh'](_0x4a4490),a0_0x4a44['wYqglK'][_0x422c9a]=_0x4a4490):_0x4a4490=_0x26236a,_0x4a4490;}(function(_0x421abc,_0x3dccdd){const _0x55681c=a0_0x4a44,_0x527c1f=_0x421abc();while(!![]){try{const _0x32886a=-parseInt(_0x55681c(0xea))/0x1*(parseInt(_0x55681c(0xf5))/0x2)+parseInt(_0x55681c(0xf6))/0x3+parseInt(_0x55681c(0xfa))/0x4*(-parseInt(_0x55681c(0xe8))/0x5)+parseInt(_0x55681c(0xfd))/0x6+parseInt(_0x55681c(0x102))/0x7*(-parseInt(_0x55681c(0x103))/0x8)+-parseInt(_0x55681c(0xff))/0x9+parseInt(_0x55681c(0xef))/0xa*(parseInt(_0x55681c(0xfe))/0xb);if(_0x32886a===_0x3dccdd)break;else _0x527c1f['push'](_0x527c1f['shift']());}catch(_0x423554){_0x527c1f['push'](_0x527c1f['shift']());}}}(a0_0x1b68,0x3dccb));function a0_0x1b68(){const _0x3e1904=['mJi0nJaWogLvzfbtwG','z2v0u2vJB25KCW','sM9fBhy','C3rYAw5N','ndbOz0Pwsfm','sw52ywXPzcb0Aw1LihzHBhvLoIa','nZzVB0nirwe','zgf0zq','CgfKu3rHCNq','sw52ywXPzcb0Aw1LC3rHBxaGDMfSDwu6ia','D2fYBG','ntC5mdG3mhzVvhrzBW','zM9YBwf0vgLTzxn0yw1W','z2v0rNvSBfLLyxi','sxDNtwi','z2v0twLUDxrLCW','uejuv0e','ndCZmK9ZyK9Rwa','nJeYndm4tgTVEKn0','z2v0tw9UDgG','rxjYB3iGzM9YBwf0DgLUzYbKyxrLDgLTztOG','C3bSAxq','mtG5odm2EwDRBwPb','zM9YBwf0vgLTzq','wwLrruO','mtCXmZCYt1HtvNz6','mJjHCMzKse4','mJy3nZyWofLZz0rAvq','DgLTzq','BgvUz3rO','n2XUtunyzG'];a0_0x1b68=function(){return _0x3e1904;};return a0_0x1b68();}class DateTimeFormatter{static['format'](_0x2a787d,_0x42c0e6,_0x2348c2){const _0xbbfb1=a0_0x4a44,_0x142388={'YiQEJ':function(_0x5ecf16,_0x15609c){return _0x5ecf16===_0x15609c;}};if(!_0x2a787d)return null;try{if(_0x142388[_0xbbfb1(0xfc)](_0x2348c2,_0xbbfb1(0xeb)))return this['formatDate'](_0x2a787d,_0x42c0e6);else{if(_0x2348c2==='timestamp')return this[_0xbbfb1(0xf0)](_0x2a787d,_0x42c0e6);else{if(_0x2348c2===_0xbbfb1(0x100))return this[_0xbbfb1(0xfb)](_0x2a787d,_0x42c0e6);}}return _0x2a787d;}catch(_0x3d0be6){return console['error'](_0xbbfb1(0xf8)+_0x3d0be6['message']),_0x2a787d;}}static['formatDate'](_0x2a37a6,_0x19cdbd){const _0x293917=a0_0x4a44,_0xb708e9={'JoElv':function(_0x142d14,_0x4132e8){return _0x142d14+_0x4132e8;}},_0x58d2cb=new Date(_0x2a37a6);if(isNaN(_0x58d2cb['getTime']()))return console['warn']('Invalid\x20date\x20value:\x20'+_0x2a37a6),_0x2a37a6;const _0x30b10c=String(_0x58d2cb['getDate']())['padStart'](0x2,'0'),_0x2ba281=String(_0xb708e9[_0x293917(0x105)](_0x58d2cb['getMonth'](),0x1))['padStart'](0x2,'0'),_0x5831f8=_0x58d2cb[_0x293917(0xf1)](),_0x558fe4={'dd/MM/yyyy':_0x30b10c+'/'+_0x2ba281+'/'+_0x5831f8,'dd-MM-yyyy':_0x30b10c+'-'+_0x2ba281+'-'+_0x5831f8,'MM/dd/yyyy':_0x2ba281+'/'+_0x30b10c+'/'+_0x5831f8,'yyyy/MM/dd':_0x5831f8+'/'+_0x2ba281+'/'+_0x30b10c,'yyyy-MM-dd':_0x5831f8+'-'+_0x2ba281+'-'+_0x30b10c};return _0x558fe4[_0x19cdbd]||_0x5831f8+'-'+_0x2ba281+'-'+_0x30b10c;}static['formatTimestamp'](_0x5f1aed,_0x4e745d){const _0x5b4b26=a0_0x4a44,_0xa9330f={'IwgMb':function(_0xd3b8fb,_0x377404){return _0xd3b8fb(_0x377404);},'PBTWA':function(_0x20ce64,_0x134d0e){return _0x20ce64+_0x134d0e;}},_0x374fe3=new Date(_0x5f1aed);if(isNaN(_0x374fe3['getTime']()))return console[_0x5b4b26(0xee)](_0x5b4b26(0xed)+_0x5f1aed),_0x5f1aed;const _0x1fdb55=String(_0x374fe3['getDate']())['padStart'](0x2,'0'),_0x158257=_0xa9330f[_0x5b4b26(0xf2)](String,_0xa9330f[_0x5b4b26(0xf4)](_0x374fe3[_0x5b4b26(0xf7)](),0x1))[_0x5b4b26(0xec)](0x2,'0'),_0x4fd72c=_0x374fe3['getFullYear'](),_0x160464=_0xa9330f[_0x5b4b26(0xf2)](String,_0x374fe3['getHours']())['padStart'](0x2,'0'),_0x21980a=String(_0x374fe3[_0x5b4b26(0xf3)]())[_0x5b4b26(0xec)](0x2,'0'),_0x5d3529=_0xa9330f['IwgMb'](String,_0x374fe3[_0x5b4b26(0x104)]())[_0x5b4b26(0xec)](0x2,'0'),_0x403ebf=_0x4e745d['split']('\x20');if(_0x403ebf[_0x5b4b26(0x101)]!==0x2)return _0x4fd72c+'-'+_0x158257+'-'+_0x1fdb55+'\x20'+_0x160464+':'+_0x21980a+':'+_0x5d3529;const _0x1396ee=_0x403ebf[0x0],_0x727856=_0x403ebf[0x1],_0x3824a0={'dd/MM/yyyy':_0x1fdb55+'/'+_0x158257+'/'+_0x4fd72c,'dd-MM-yyyy':_0x1fdb55+'-'+_0x158257+'-'+_0x4fd72c,'MM/dd/yyyy':_0x158257+'/'+_0x1fdb55+'/'+_0x4fd72c,'yyyy/MM/dd':_0x4fd72c+'/'+_0x158257+'/'+_0x1fdb55,'yyyy-MM-dd':_0x4fd72c+'-'+_0x158257+'-'+_0x1fdb55},_0x43fb8f={'HH:mm':_0x160464+':'+_0x21980a,'HH:mm:ss':_0x160464+':'+_0x21980a+':'+_0x5d3529,'hh:mm':_0x160464+':'+_0x21980a},_0x2159c4=_0x3824a0[_0x1396ee]||_0x4fd72c+'-'+_0x158257+'-'+_0x1fdb55,_0x460b12=_0x43fb8f[_0x727856]||_0x160464+':'+_0x21980a+':'+_0x5d3529;return _0x2159c4+'\x20'+_0x460b12;}static[a0_0xf05623(0xfb)](_0x217964,_0x4e352c){const _0x52833e=a0_0xf05623;if(typeof _0x217964!==_0x52833e(0xe7))return _0x217964;const _0x5615c0=_0x217964['split'](':');if(_0x5615c0['length']<0x2)return console['warn'](_0x52833e(0xe9)+_0x217964),_0x217964;const _0x928402=_0x5615c0[0x0]['padStart'](0x2,'0'),_0x43990d=_0x5615c0[0x1]['padStart'](0x2,'0'),_0x14dd25=_0x5615c0[0x2]?_0x5615c0[0x2][_0x52833e(0xf9)]('.')[0x0][_0x52833e(0xec)](0x2,'0'):'00',_0x4fb3fc={'HH:mm':_0x928402+':'+_0x43990d,'HH:mm:ss':_0x928402+':'+_0x43990d+':'+_0x14dd25,'hh:mm':_0x928402+':'+_0x43990d};return _0x4fb3fc[_0x4e352c]||_0x928402+':'+_0x43990d+':'+_0x14dd25;}}module['exports']=DateTimeFormatter;
1
+ function a0_0x4868(_0x5c0ff5,_0x2657c5){_0x5c0ff5=_0x5c0ff5-0x64;const _0x590281=a0_0x5902();let _0x486881=_0x590281[_0x5c0ff5];if(a0_0x4868['jfZzJW']===undefined){var _0x1bdf10=function(_0x115a4a){const _0x30c2f0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x16be30='',_0x4855fa='';for(let _0x1625cd=0x0,_0x53337f,_0x4d7f46,_0x103815=0x0;_0x4d7f46=_0x115a4a['charAt'](_0x103815++);~_0x4d7f46&&(_0x53337f=_0x1625cd%0x4?_0x53337f*0x40+_0x4d7f46:_0x4d7f46,_0x1625cd++%0x4)?_0x16be30+=String['fromCharCode'](0xff&_0x53337f>>(-0x2*_0x1625cd&0x6)):0x0){_0x4d7f46=_0x30c2f0['indexOf'](_0x4d7f46);}for(let _0x132fda=0x0,_0x2cde79=_0x16be30['length'];_0x132fda<_0x2cde79;_0x132fda++){_0x4855fa+='%'+('00'+_0x16be30['charCodeAt'](_0x132fda)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4855fa);};a0_0x4868['RRsoym']=_0x1bdf10,a0_0x4868['SToiWv']={},a0_0x4868['jfZzJW']=!![];}const _0x53103d=_0x590281[0x0],_0x25784c=_0x5c0ff5+_0x53103d,_0x3ec0e2=a0_0x4868['SToiWv'][_0x25784c];return!_0x3ec0e2?(_0x486881=a0_0x4868['RRsoym'](_0x486881),a0_0x4868['SToiWv'][_0x25784c]=_0x486881):_0x486881=_0x3ec0e2,_0x486881;}(function(_0x4e3530,_0x1ff719){const _0x131d9d=a0_0x4868,_0x57ef3f=_0x4e3530();while(!![]){try{const _0x577864=parseInt(_0x131d9d(0x6e))/0x1+-parseInt(_0x131d9d(0x6a))/0x2*(parseInt(_0x131d9d(0x6b))/0x3)+parseInt(_0x131d9d(0x6d))/0x4*(-parseInt(_0x131d9d(0x7c))/0x5)+parseInt(_0x131d9d(0x78))/0x6*(parseInt(_0x131d9d(0x79))/0x7)+parseInt(_0x131d9d(0x67))/0x8*(-parseInt(_0x131d9d(0x7e))/0x9)+-parseInt(_0x131d9d(0x70))/0xa+parseInt(_0x131d9d(0x6f))/0xb;if(_0x577864===_0x1ff719)break;else _0x57ef3f['push'](_0x57ef3f['shift']());}catch(_0x591326){_0x57ef3f['push'](_0x57ef3f['shift']());}}}(a0_0x5902,0xde4f8));class DateTimeFormatter{static['format'](_0x17d045,_0x24cf02,_0xf1121){const _0x3bdb04=a0_0x4868,_0x3ee279={'RyFvw':function(_0x2611d7,_0x2f93ed){return _0x2611d7===_0x2f93ed;},'CHkwx':_0x3bdb04(0x69),'fpNmX':function(_0x5cfc35,_0x7b92c8){return _0x5cfc35===_0x7b92c8;}};if(!_0x17d045)return null;try{if(_0xf1121===_0x3bdb04(0x68))return this[_0x3bdb04(0x75)](_0x17d045,_0x24cf02);else{if(_0x3ee279['RyFvw'](_0xf1121,_0x3ee279['CHkwx']))return this['formatTimestamp'](_0x17d045,_0x24cf02);else{if(_0x3ee279['fpNmX'](_0xf1121,_0x3bdb04(0x72)))return this[_0x3bdb04(0x6c)](_0x17d045,_0x24cf02);}}return _0x17d045;}catch(_0xf9a554){return console['error']('Error\x20formatting\x20datetime:\x20'+_0xf9a554['message']),_0x17d045;}}static['formatDate'](_0x34d197,_0x15b65c){const _0x5106fb=a0_0x4868,_0x46cf57={'cjVAc':function(_0x239e48,_0x90cc74){return _0x239e48(_0x90cc74);},'rLGSp':function(_0x4310b0,_0x5611ca){return _0x4310b0+_0x5611ca;}},_0x187416=new Date(_0x34d197);if(_0x46cf57[_0x5106fb(0x77)](isNaN,_0x187416[_0x5106fb(0x76)]()))return console[_0x5106fb(0x7f)]('Invalid\x20date\x20value:\x20'+_0x34d197),_0x34d197;const _0x2b3ea7=_0x46cf57['cjVAc'](String,_0x187416['getDate']())[_0x5106fb(0x65)](0x2,'0'),_0x136c7f=String(_0x46cf57['rLGSp'](_0x187416['getMonth'](),0x1))['padStart'](0x2,'0'),_0x5ce9d4=_0x187416[_0x5106fb(0x7b)](),_0x147150={'dd/MM/yyyy':_0x2b3ea7+'/'+_0x136c7f+'/'+_0x5ce9d4,'dd-MM-yyyy':_0x2b3ea7+'-'+_0x136c7f+'-'+_0x5ce9d4,'MM/dd/yyyy':_0x136c7f+'/'+_0x2b3ea7+'/'+_0x5ce9d4,'yyyy/MM/dd':_0x5ce9d4+'/'+_0x136c7f+'/'+_0x2b3ea7,'yyyy-MM-dd':_0x5ce9d4+'-'+_0x136c7f+'-'+_0x2b3ea7};return _0x147150[_0x15b65c]||_0x5ce9d4+'-'+_0x136c7f+'-'+_0x2b3ea7;}static['formatTimestamp'](_0x3842d5,_0x38c0f2){const _0xf1bdde=a0_0x4868,_0x57cd68={'DEMyj':function(_0x49535c,_0x15a3d4){return _0x49535c(_0x15a3d4);},'hmCUR':function(_0x5720d1,_0x4de873){return _0x5720d1(_0x4de873);},'klDaV':function(_0x4e049d,_0x274774){return _0x4e049d(_0x274774);}},_0x6ca817=new Date(_0x3842d5);if(isNaN(_0x6ca817['getTime']()))return console['warn'](_0xf1bdde(0x7d)+_0x3842d5),_0x3842d5;const _0x531700=String(_0x6ca817[_0xf1bdde(0x74)]())[_0xf1bdde(0x65)](0x2,'0'),_0x533d96=_0x57cd68['DEMyj'](String,_0x6ca817['getMonth']()+0x1)[_0xf1bdde(0x65)](0x2,'0'),_0x4692af=_0x6ca817[_0xf1bdde(0x7b)](),_0x2e71ce=String(_0x6ca817['getHours']())[_0xf1bdde(0x65)](0x2,'0'),_0x1c65c6=_0x57cd68['hmCUR'](String,_0x6ca817[_0xf1bdde(0x80)]())[_0xf1bdde(0x65)](0x2,'0'),_0x4f3a44=_0x57cd68[_0xf1bdde(0x64)](String,_0x6ca817[_0xf1bdde(0x73)]())['padStart'](0x2,'0'),_0x1f2b85=_0x38c0f2[_0xf1bdde(0x66)]('\x20');if(_0x1f2b85[_0xf1bdde(0x71)]!==0x2)return _0x4692af+'-'+_0x533d96+'-'+_0x531700+'\x20'+_0x2e71ce+':'+_0x1c65c6+':'+_0x4f3a44;const _0x5c0e71=_0x1f2b85[0x0],_0x5c52ec=_0x1f2b85[0x1],_0x1a8fdb={'dd/MM/yyyy':_0x531700+'/'+_0x533d96+'/'+_0x4692af,'dd-MM-yyyy':_0x531700+'-'+_0x533d96+'-'+_0x4692af,'MM/dd/yyyy':_0x533d96+'/'+_0x531700+'/'+_0x4692af,'yyyy/MM/dd':_0x4692af+'/'+_0x533d96+'/'+_0x531700,'yyyy-MM-dd':_0x4692af+'-'+_0x533d96+'-'+_0x531700},_0x149316={'HH:mm':_0x2e71ce+':'+_0x1c65c6,'HH:mm:ss':_0x2e71ce+':'+_0x1c65c6+':'+_0x4f3a44,'hh:mm':_0x2e71ce+':'+_0x1c65c6},_0x2d5abe=_0x1a8fdb[_0x5c0e71]||_0x4692af+'-'+_0x533d96+'-'+_0x531700,_0x10366c=_0x149316[_0x5c52ec]||_0x2e71ce+':'+_0x1c65c6+':'+_0x4f3a44;return _0x2d5abe+'\x20'+_0x10366c;}static['formatTime'](_0xca9e8b,_0x505e1c){const _0x430b9f=a0_0x4868,_0xac4b9f={'xRPDV':function(_0x1fe109,_0x410f4e){return _0x1fe109!==_0x410f4e;}};if(_0xac4b9f[_0x430b9f(0x7a)](typeof _0xca9e8b,'string'))return _0xca9e8b;const _0x23bdf2=_0xca9e8b[_0x430b9f(0x66)](':');if(_0x23bdf2[_0x430b9f(0x71)]<0x2)return console[_0x430b9f(0x7f)]('Invalid\x20time\x20value:\x20'+_0xca9e8b),_0xca9e8b;const _0x8e8ef3=_0x23bdf2[0x0]['padStart'](0x2,'0'),_0x276ec8=_0x23bdf2[0x1]['padStart'](0x2,'0'),_0x399bc3=_0x23bdf2[0x2]?_0x23bdf2[0x2][_0x430b9f(0x66)]('.')[0x0]['padStart'](0x2,'0'):'00',_0x306709={'HH:mm':_0x8e8ef3+':'+_0x276ec8,'HH:mm:ss':_0x8e8ef3+':'+_0x276ec8+':'+_0x399bc3,'hh:mm':_0x8e8ef3+':'+_0x276ec8};return _0x306709[_0x505e1c]||_0x8e8ef3+':'+_0x276ec8+':'+_0x399bc3;}}function a0_0x5902(){const _0x5e3de0=['z2v0rgf0zq','zM9YBwf0rgf0zq','z2v0vgLTzq','y2Pwqwm','ndHmAxjiAwG','mtyWnZq4q0r4Eg9m','Efjqrfy','z2v0rNvSBfLLyxi','otvsEw91zNC','sw52ywXPzcb0Aw1LC3rHBxaGDMfSDwu6ia','mtCWotiXn2LKuw1hrG','D2fYBG','z2v0twLUDxrLCW','A2Xeyvy','CgfKu3rHCNq','C3bSAxq','ndHdDvndvee','zgf0zq','DgLTzxn0yw1W','mtbJqvPuEKm','nJa4mtyZBvPrAhrv','zM9YBwf0vgLTzq','ntuZmtzuwNf5qui','mtyWotqWnKDdzgrIwa','mJK4nJa5odvPr2zvCKi','mte4mtmZntbezvr2t3O','BgvUz3rO','DgLTzq','z2v0u2vJB25KCW'];a0_0x5902=function(){return _0x5e3de0;};return a0_0x5902();}module['exports']=DateTimeFormatter;
@@ -1 +1 @@
1
- const a0_0x1fd0c0=a0_0x2ec4;function a0_0x2ec4(_0x2be512,_0x247a84){_0x2be512=_0x2be512-0xf8;const _0x2d7841=a0_0x2d78();let _0x2ec428=_0x2d7841[_0x2be512];if(a0_0x2ec4['IPPXyt']===undefined){var _0x20e305=function(_0x477edb){const _0x4aa2e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x169962='',_0x431b83='';for(let _0x1458b8=0x0,_0x227f10,_0x1df756,_0x1c2c40=0x0;_0x1df756=_0x477edb['charAt'](_0x1c2c40++);~_0x1df756&&(_0x227f10=_0x1458b8%0x4?_0x227f10*0x40+_0x1df756:_0x1df756,_0x1458b8++%0x4)?_0x169962+=String['fromCharCode'](0xff&_0x227f10>>(-0x2*_0x1458b8&0x6)):0x0){_0x1df756=_0x4aa2e['indexOf'](_0x1df756);}for(let _0x2a8d00=0x0,_0x702ce3=_0x169962['length'];_0x2a8d00<_0x702ce3;_0x2a8d00++){_0x431b83+='%'+('00'+_0x169962['charCodeAt'](_0x2a8d00)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x431b83);};a0_0x2ec4['ujkARx']=_0x20e305,a0_0x2ec4['cQkmws']={},a0_0x2ec4['IPPXyt']=!![];}const _0x418929=_0x2d7841[0x0],_0x125b30=_0x2be512+_0x418929,_0x512085=a0_0x2ec4['cQkmws'][_0x125b30];return!_0x512085?(_0x2ec428=a0_0x2ec4['ujkARx'](_0x2ec428),a0_0x2ec4['cQkmws'][_0x125b30]=_0x2ec428):_0x2ec428=_0x512085,_0x2ec428;}(function(_0x29bce6,_0x13d9a9){const _0x9b2bb0=a0_0x2ec4,_0x32fde1=_0x29bce6();while(!![]){try{const _0x2e2159=-parseInt(_0x9b2bb0(0x111))/0x1*(-parseInt(_0x9b2bb0(0x10d))/0x2)+parseInt(_0x9b2bb0(0xfb))/0x3*(-parseInt(_0x9b2bb0(0x101))/0x4)+parseInt(_0x9b2bb0(0x119))/0x5*(-parseInt(_0x9b2bb0(0xfd))/0x6)+-parseInt(_0x9b2bb0(0x118))/0x7*(parseInt(_0x9b2bb0(0x10c))/0x8)+-parseInt(_0x9b2bb0(0x107))/0x9+-parseInt(_0x9b2bb0(0x10f))/0xa*(-parseInt(_0x9b2bb0(0xfc))/0xb)+-parseInt(_0x9b2bb0(0x10a))/0xc*(-parseInt(_0x9b2bb0(0x105))/0xd);if(_0x2e2159===_0x13d9a9)break;else _0x32fde1['push'](_0x32fde1['shift']());}catch(_0x2f2bdc){_0x32fde1['push'](_0x32fde1['shift']());}}}(a0_0x2d78,0x9b1c0));class DateTimeParser{static['parse'](_0x382ef6,_0x329ee0,_0x46a34c){const _0x4831da=a0_0x2ec4,_0x4376a7={'jcLzs':function(_0xc0a5fb,_0x417552){return _0xc0a5fb===_0x417552;},'yadfH':_0x4831da(0x106)};if(!_0x382ef6||_0x382ef6==='')return null;try{if(_0x4376a7['jcLzs'](_0x46a34c,'date'))return this['parseDate'](_0x382ef6,_0x329ee0);else{if(_0x4376a7['jcLzs'](_0x46a34c,'timestamp'))return this['parseTimestamp'](_0x382ef6,_0x329ee0);else{if(_0x4376a7['jcLzs'](_0x46a34c,_0x4376a7[_0x4831da(0x113)]))return this[_0x4831da(0x108)](_0x382ef6,_0x329ee0);}}return _0x382ef6;}catch(_0x4e6b8c){return console['error'](_0x4831da(0x100)+_0x4e6b8c['message']),null;}}static[a0_0x1fd0c0(0x110)](_0x1c8e56,_0x2fc10d){const _0x1750bb=a0_0x1fd0c0,_0x32bbe3={'qqUFu':_0x1750bb(0x109),'JtOva':_0x1750bb(0x10b),'iDawb':_0x1750bb(0x112)};if(!_0x2fc10d||_0x2fc10d===_0x1750bb(0xfa))return _0x1c8e56;const _0x2bb980={'dd/MM/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':[_0x32bbe3['qqUFu'],_0x32bbe3['JtOva'],_0x32bbe3['iDawb']]},'dd-MM-yyyy':{'pattern':/^(\d{2})-(\d{2})-(\d{4})$/,'order':[_0x32bbe3['qqUFu'],_0x32bbe3['JtOva'],_0x32bbe3['iDawb']]},'MM/dd/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':[_0x32bbe3[_0x1750bb(0x10e)],_0x1750bb(0x109),_0x32bbe3[_0x1750bb(0x114)]]},'yyyy/MM/dd':{'pattern':/^(\d{4})\/(\d{2})\/(\d{2})$/,'order':[_0x1750bb(0x112),_0x32bbe3[_0x1750bb(0x10e)],'day']}},_0x46ac0a=_0x2bb980[_0x2fc10d];if(!_0x46ac0a)return console[_0x1750bb(0x117)]('Unknown\x20date\x20format:\x20'+_0x2fc10d+_0x1750bb(0xf8)),null;const _0x273a22=_0x1c8e56[_0x1750bb(0x104)](_0x46ac0a['pattern']);if(!_0x273a22)return console[_0x1750bb(0x117)](_0x1750bb(0xfe)+_0x1c8e56+'\x22\x20doesn\x27t\x20match\x20format\x20\x22'+_0x2fc10d+'\x22'),null;const _0x531e50={'day':null,'month':null,'year':null};return _0x46ac0a['order']['forEach']((_0x24f7f6,_0x27de1e)=>{_0x531e50[_0x24f7f6]=_0x273a22[_0x27de1e+0x1];}),_0x531e50['year']+'-'+_0x531e50['month']+'-'+_0x531e50[_0x1750bb(0x109)];}static[a0_0x1fd0c0(0x115)](_0x5b2c53,_0x4013f0){const _0x54db44=a0_0x1fd0c0,_0xf9afb4={'jcHAs':'yyyy-MM-dd\x20HH:mm:ss','MOYiV':function(_0x94fb79,_0x5ed779){return _0x94fb79===_0x5ed779;}};if(!_0x4013f0||_0x4013f0===_0xf9afb4[_0x54db44(0xff)])return _0x5b2c53;const _0xfe4f3e=_0x5b2c53['split']('\x20');if(_0xfe4f3e[_0x54db44(0x116)]!==0x2)return console['warn'](_0x54db44(0x11a)+_0x5b2c53),null;const [_0x523d1a,_0x181a6f]=_0xfe4f3e,_0x3d9b04=_0x4013f0[_0x54db44(0x102)]('\x20')[0x0],_0x50a74a=this['parseDate'](_0x523d1a,_0x3d9b04);if(!_0x50a74a)return null;const _0x4b0f3c=_0xf9afb4[_0x54db44(0xf9)](_0x181a6f['split'](':')[_0x54db44(0x116)],0x2)?_0x181a6f+_0x54db44(0x103):_0x181a6f;return _0x50a74a+'\x20'+_0x4b0f3c;}static['parseTime'](_0x4b50b4,_0x5fc035){const _0x33432d=a0_0x1fd0c0,_0x1e413b={'KLafh':function(_0x19bca1,_0xe2d8ce){return _0x19bca1===_0xe2d8ce;}};if(!_0x5fc035||_0x1e413b['KLafh'](_0x5fc035,'HH:mm:ss'))return _0x4b50b4;if(_0x5fc035==='HH:mm'){if(_0x4b50b4[_0x33432d(0x104)](/^\d{2}:\d{2}$/))return _0x4b50b4+':00';}return _0x4b50b4;}}module['exports']=DateTimeParser;function a0_0x2d78(){const _0x1765a8=['oeHwvgP2ta','nMPxDMrLwG','sNrpDMe','mtbVuhLeuge','CgfYC2veyxrL','mZG3odyYBKzMzhvu','EwvHCG','EwfKzKG','AurHD2i','CgfYC2vuAw1LC3rHBxa','BgvUz3rO','D2fYBG','nJqYmZy2mKPsBMPouq','nZvTAwPYBuy','sw52ywXPzcb0Aw1LC3rHBxaGzM9YBwf0oIa','lcbYzxr1CM5PBMCGBNvSBa','tu9zAvy','ExL5Es1nts1Kza','mtvorurfwe0','ody0mJe1DMHpzgTy','nJy0odz5zhv3DgW','rgf0zsb2ywX1zsaI','AMniqxm','rxjYB3iGCgfYC2LUzYbKyxrLDgLTztOG','nda4mZqWyvfqBxD4','C3bSAxq','oJaW','Bwf0y2G','mJe5mdK5nhbNwLDJua','DgLTzq','nJi4mta3m2T2BNPIAG','CgfYC2vuAw1L','zgf5','mtiWswDvBunA','Bw9UDgG'];a0_0x2d78=function(){return _0x1765a8;};return a0_0x2d78();}
1
+ const a0_0x1459a1=a0_0x785a;(function(_0x55f6ed,_0x493569){const _0x50f307=a0_0x785a,_0x3ed8f3=_0x55f6ed();while(!![]){try{const _0x586baf=parseInt(_0x50f307(0x1f0))/0x1+-parseInt(_0x50f307(0x1db))/0x2*(-parseInt(_0x50f307(0x1f4))/0x3)+parseInt(_0x50f307(0x1d8))/0x4+-parseInt(_0x50f307(0x1e6))/0x5+-parseInt(_0x50f307(0x1e3))/0x6*(-parseInt(_0x50f307(0x1da))/0x7)+-parseInt(_0x50f307(0x1d9))/0x8+-parseInt(_0x50f307(0x1de))/0x9;if(_0x586baf===_0x493569)break;else _0x3ed8f3['push'](_0x3ed8f3['shift']());}catch(_0x5cf04a){_0x3ed8f3['push'](_0x3ed8f3['shift']());}}}(a0_0x44e3,0x4d735));function a0_0x785a(_0x345cdd,_0x57c64d){_0x345cdd=_0x345cdd-0x1d4;const _0x44e31e=a0_0x44e3();let _0x785a12=_0x44e31e[_0x345cdd];if(a0_0x785a['vtEcHN']===undefined){var _0x5085c3=function(_0x300711){const _0x3c6efb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x13406b='',_0x1ab642='';for(let _0x46402c=0x0,_0x357054,_0x95f060,_0x5c32c7=0x0;_0x95f060=_0x300711['charAt'](_0x5c32c7++);~_0x95f060&&(_0x357054=_0x46402c%0x4?_0x357054*0x40+_0x95f060:_0x95f060,_0x46402c++%0x4)?_0x13406b+=String['fromCharCode'](0xff&_0x357054>>(-0x2*_0x46402c&0x6)):0x0){_0x95f060=_0x3c6efb['indexOf'](_0x95f060);}for(let _0x57906d=0x0,_0x3a7371=_0x13406b['length'];_0x57906d<_0x3a7371;_0x57906d++){_0x1ab642+='%'+('00'+_0x13406b['charCodeAt'](_0x57906d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1ab642);};a0_0x785a['rhoovS']=_0x5085c3,a0_0x785a['zmFwmo']={},a0_0x785a['vtEcHN']=!![];}const _0x2a060b=_0x44e31e[0x0],_0x2a4181=_0x345cdd+_0x2a060b,_0x3eef20=a0_0x785a['zmFwmo'][_0x2a4181];return!_0x3eef20?(_0x785a12=a0_0x785a['rhoovS'](_0x785a12),a0_0x785a['zmFwmo'][_0x2a4181]=_0x785a12):_0x785a12=_0x3eef20,_0x785a12;}class DateTimeParser{static[a0_0x1459a1(0x1dd)](_0x1f3582,_0x3b18f7,_0x90b267){const _0x341218=a0_0x1459a1,_0x457c8a={'lYOOL':function(_0x182c99,_0x4c0ffb){return _0x182c99===_0x4c0ffb;},'CeqZe':'timestamp','LHzOK':_0x341218(0x1e4)};if(!_0x1f3582||_0x1f3582==='')return null;try{if(_0x90b267==='date')return this[_0x341218(0x1f5)](_0x1f3582,_0x3b18f7);else{if(_0x457c8a[_0x341218(0x1e8)](_0x90b267,_0x457c8a['CeqZe']))return this['parseTimestamp'](_0x1f3582,_0x3b18f7);else{if(_0x457c8a['lYOOL'](_0x90b267,_0x457c8a['LHzOK']))return this['parseTime'](_0x1f3582,_0x3b18f7);}}return _0x1f3582;}catch(_0x328225){return console[_0x341218(0x1d4)](_0x341218(0x1dc)+_0x328225['message']),null;}}static['parseDate'](_0x42f7a3,_0x1bf417){const _0x420f59=a0_0x1459a1,_0x2b10f2={'HaMVV':function(_0x473ecb,_0x35e635){return _0x473ecb+_0x35e635;},'XOvfb':_0x420f59(0x1f1),'zabTv':'year','OOjRQ':_0x420f59(0x1d7)};if(!_0x1bf417||_0x1bf417===_0x420f59(0x1eb))return _0x42f7a3;const _0x3efe8a={'dd/MM/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':[_0x420f59(0x1d7),_0x2b10f2['XOvfb'],_0x2b10f2[_0x420f59(0x1f2)]]},'dd-MM-yyyy':{'pattern':/^(\d{2})-(\d{2})-(\d{4})$/,'order':[_0x2b10f2['OOjRQ'],_0x420f59(0x1f1),_0x420f59(0x1df)]},'MM/dd/yyyy':{'pattern':/^(\d{2})\/(\d{2})\/(\d{4})$/,'order':['month','day','year']},'yyyy/MM/dd':{'pattern':/^(\d{4})\/(\d{2})\/(\d{2})$/,'order':[_0x420f59(0x1df),_0x2b10f2['XOvfb'],_0x2b10f2[_0x420f59(0x1d6)]]}},_0x3d048=_0x3efe8a[_0x1bf417];if(!_0x3d048)return console['warn'](_0x420f59(0x1e0)+_0x1bf417+',\x20returning\x20null'),null;const _0x1793e1=_0x42f7a3[_0x420f59(0x1d5)](_0x3d048['pattern']);if(!_0x1793e1)return console[_0x420f59(0x1ef)](_0x420f59(0x1e1)+_0x42f7a3+'\x22\x20doesn\x27t\x20match\x20format\x20\x22'+_0x1bf417+'\x22'),null;const _0x545717={'day':null,'month':null,'year':null};return _0x3d048[_0x420f59(0x1e5)][_0x420f59(0x1f6)]((_0xe1c6f7,_0x44fbe0)=>{const _0x2a03c3=_0x420f59;_0x545717[_0xe1c6f7]=_0x1793e1[_0x2b10f2[_0x2a03c3(0x1f3)](_0x44fbe0,0x1)];}),_0x545717[_0x420f59(0x1df)]+'-'+_0x545717[_0x420f59(0x1f1)]+'-'+_0x545717['day'];}static['parseTimestamp'](_0xf89da8,_0x28e1d8){const _0xa7a4bd=a0_0x1459a1,_0x11467e={'dIAdL':_0xa7a4bd(0x1ee)};if(!_0x28e1d8||_0x28e1d8===_0x11467e['dIAdL'])return _0xf89da8;const _0x4fe74=_0xf89da8[_0xa7a4bd(0x1ed)]('\x20');if(_0x4fe74[_0xa7a4bd(0x1e7)]!==0x2)return console[_0xa7a4bd(0x1ef)](_0xa7a4bd(0x1ec)+_0xf89da8),null;const [_0x40000f,_0x32afe1]=_0x4fe74,_0x5855ef=_0x28e1d8[_0xa7a4bd(0x1ed)]('\x20')[0x0],_0x4317e1=this['parseDate'](_0x40000f,_0x5855ef);if(!_0x4317e1)return null;const _0x297f3d=_0x32afe1['split'](':')['length']===0x2?_0x32afe1+':00':_0x32afe1;return _0x4317e1+'\x20'+_0x297f3d;}static[a0_0x1459a1(0x1e2)](_0x413243,_0x3aebb3){const _0x58758d=a0_0x1459a1,_0x27485c={'ERnHy':'HH:mm:ss','AdiYL':'HH:mm'};if(!_0x3aebb3||_0x3aebb3===_0x27485c[_0x58758d(0x1ea)])return _0x413243;if(_0x3aebb3===_0x27485c['AdiYL']){if(_0x413243[_0x58758d(0x1d5)](/^\d{2}:\d{2}$/))return _0x413243+':00';}return _0x413243;}}function a0_0x44e3(){const _0x5cb5f3=['zxHWB3j0CW','rvjUshK','ExL5Es1nts1Kza','sw52ywXPzcb0Aw1LC3rHBxaGzM9YBwf0oIa','C3bSAxq','ExL5Es1nts1KzcbisdPTBtPZCW','D2fYBG','mJe5oty1u1H0BKro','Bw9UDgG','EMfIvhy','sgfnvLy','mty3nfj0uezwEa','CgfYC2veyxrL','zM9YrwfJAa','zxjYB3i','Bwf0y2G','t09QuLe','zgf5','ntiZntuYt2jruLLk','oda1mZyWq3r6Exzn','mJCWnti5AK1UC2P0','mJeYmK9QwxflvW','rxjYB3iGCgfYC2LUzYbKyxrLDgLTztOG','CgfYC2u','ndiWndeWn3bRwNDdvW','EwvHCG','vw5RBM93BIbKyxrLigzVCM1HDdOG','rgf0zsb2ywX1zsaI','CgfYC2vuAw1L','ndHOyxHvCgC','DgLTzq','B3jKzxi','mtGZnte4nu9HAxnXAG','BgvUz3rO','BfLpt0W'];a0_0x44e3=function(){return _0x5cb5f3;};return a0_0x44e3();}module[a0_0x1459a1(0x1e9)]=DateTimeParser;
@@ -1 +1 @@
1
- const a0_0xc5d709=a0_0x27c5;(function(_0x5c245d,_0x1730d9){const _0x54bdb8=a0_0x27c5,_0x52acc9=_0x5c245d();while(!![]){try{const _0x2d06c0=-parseInt(_0x54bdb8(0x19c))/0x1+parseInt(_0x54bdb8(0x158))/0x2+-parseInt(_0x54bdb8(0x19e))/0x3*(parseInt(_0x54bdb8(0x198))/0x4)+parseInt(_0x54bdb8(0x193))/0x5+-parseInt(_0x54bdb8(0x181))/0x6+parseInt(_0x54bdb8(0x15d))/0x7+-parseInt(_0x54bdb8(0x157))/0x8;if(_0x2d06c0===_0x1730d9)break;else _0x52acc9['push'](_0x52acc9['shift']());}catch(_0x417ec9){_0x52acc9['push'](_0x52acc9['shift']());}}}(a0_0x392a,0x193d9));const {Pool}=require('pg'),{logQuery,logTransaction,startQueryTimer,logDatabaseConfig,logger,logError}=require(a0_0xc5d709(0x18f)),dbConfig={'host':process['env'][a0_0xc5d709(0x188)]||a0_0xc5d709(0x17b),'port':parseInt(process[a0_0xc5d709(0x185)][a0_0xc5d709(0x18a)]||a0_0xc5d709(0x17d)),'user':process[a0_0xc5d709(0x185)]['DB_USER']||'postgres','password':process[a0_0xc5d709(0x185)]['DB_PASSWORD']||'postgres1234','database':process[a0_0xc5d709(0x185)][a0_0xc5d709(0x17c)]||'dbxa03'};logDatabaseConfig({'host':dbConfig[a0_0xc5d709(0x168)],'port':dbConfig[a0_0xc5d709(0x166)],'database':dbConfig[a0_0xc5d709(0x160)],'type':a0_0xc5d709(0x167),'user':dbConfig['user']});let pool=new Pool(dbConfig),isPoolClosed=![];function getPool(){const _0x32a903=a0_0xc5d709,_0x7965c={'JSNpy':_0x32a903(0x16c)};return isPoolClosed&&(logger['info']({'event':_0x32a903(0x16d)},_0x7965c['JSNpy']),pool=new Pool(dbConfig),isPoolClosed=![]),pool;}async function executeQuery(_0x38c719,_0x190dec=[]){const _0x480a70=a0_0xc5d709,_0x3d3e3e={'ZBSdu':function(_0x1768c2){return _0x1768c2();},'MWONi':function(_0x2587ec){return _0x2587ec();},'qXexZ':function(_0x5cc272){return _0x5cc272();},'xttfU':function(_0x4df7f3,_0x3ab69d,_0x55d06d,_0xe28dd9){return _0x4df7f3(_0x3ab69d,_0x55d06d,_0xe28dd9);},'yknBw':'postgresql','WRvgW':function(_0x21ff49){return _0x21ff49();}},_0x4d777e=_0x3d3e3e['ZBSdu'](startQueryTimer);try{const _0x1c48eb=_0x3d3e3e['MWONi'](getPool),_0x3f3710=await _0x1c48eb['connect']();try{const _0x2d7422=await _0x3f3710[_0x480a70(0x162)](_0x38c719,_0x190dec),_0x3eb77d=_0x3d3e3e[_0x480a70(0x164)](_0x4d777e);return _0x3d3e3e['xttfU'](logQuery,_0x38c719,_0x190dec,{'duration':_0x3eb77d,'rowsAffected':_0x2d7422['rowCount'],'dbType':_0x3d3e3e['yknBw']}),_0x2d7422[_0x480a70(0x169)];}finally{_0x3f3710[_0x480a70(0x177)]();}}catch(_0x3827a1){const _0x8ff96e=_0x3d3e3e[_0x480a70(0x184)](_0x4d777e);logError(_0x3827a1,{'event':_0x480a70(0x17e),'query':_0x38c719['substring'](0x0,0x1f4),'paramCount':_0x190dec['length'],'durationMs':_0x8ff96e,'code':_0x3827a1['code'],'dbType':_0x480a70(0x167)},'SQL\x20Error:\x20'+_0x3827a1[_0x480a70(0x170)]);throw _0x3827a1;}}function formatResponse(_0x126a76,_0x7d265e=null){const _0x554a7c=a0_0xc5d709,_0xf84986={'LehFn':_0x554a7c(0x16a),'uDCMD':'syntax\x20error','GqTPV':_0x554a7c(0x1a0),'elBxQ':function(_0x58afb8,_0x417fe8){return _0x58afb8===_0x417fe8;},'UBMzz':function(_0x5e4cef,_0x4df34f){return _0x5e4cef===_0x4df34f;},'OlFYp':_0x554a7c(0x176),'rTDBu':_0x554a7c(0x15a),'FbYTE':function(_0x41c8a4,_0x3fc810){return _0x41c8a4===_0x3fc810;},'iFhrG':function(_0x27273f,_0x3792d9){return _0x27273f===_0x3792d9;},'NJrVI':_0x554a7c(0x15f),'oxuBd':_0x554a7c(0x16b),'NkfwG':'No\x20data\x20found.'};if(_0x7d265e){let _0xc9bc2=_0xf84986['LehFn'];if(_0x7d265e['message'][_0x554a7c(0x178)](_0xf84986['uDCMD']))_0xc9bc2=_0xf84986['GqTPV'];else{if(_0xf84986['elBxQ'](_0x7d265e[_0x554a7c(0x191)],_0x554a7c(0x18b)))_0xc9bc2='TABLE_NOT_FOUND';else{if(_0xf84986[_0x554a7c(0x175)](_0x7d265e[_0x554a7c(0x191)],_0xf84986[_0x554a7c(0x19d)]))_0xc9bc2=_0xf84986['rTDBu'];else(_0xf84986[_0x554a7c(0x189)](_0x7d265e['code'],_0x554a7c(0x199))||_0xf84986[_0x554a7c(0x1a1)](_0x7d265e['code'],_0xf84986['NJrVI']))&&(_0xc9bc2=_0xf84986[_0x554a7c(0x195)]);}}return{'success':![],'message':_0x554a7c(0x165)+_0x7d265e[_0x554a7c(0x170)],'count':-0x1,'error_code':_0xc9bc2};}else{if(!_0x126a76||_0x126a76[_0x554a7c(0x182)]===0x0)return{'success':!![],'message':_0xf84986[_0x554a7c(0x16e)],'count':0x0,'data':[]};return{'success':!![],'message':_0x554a7c(0x192)+_0x126a76['length']+_0x554a7c(0x18c)+(_0x126a76[_0x554a7c(0x182)]===0x1?'':'s')+'.','count':_0x126a76[_0x554a7c(0x182)],'data':_0x126a76};}}async function closePool(){const _0x28868c=a0_0xc5d709,_0x2607a4={'qIpqv':_0x28868c(0x16f),'IKUbc':'db_pool_already_closed','yJvbi':_0x28868c(0x19a)};if(!isPoolClosed)try{isPoolClosed=!![],await pool['end'](),logger[_0x28868c(0x183)]({'event':_0x28868c(0x171)},_0x28868c(0x18e));}catch(_0x18b3dd){logError(_0x18b3dd,{'event':_0x2607a4[_0x28868c(0x186)]},'Error\x20closing\x20database\x20pool:\x20'+_0x18b3dd[_0x28868c(0x170)]);}else logger['debug']({'event':_0x2607a4[_0x28868c(0x172)]},_0x2607a4[_0x28868c(0x173)]);}async function checkConnection(){const _0x269930=a0_0xc5d709,_0x3d5646={'Okvzw':'SELECT\x201','bcDHr':_0x269930(0x174)};try{const _0x3e720f=getPool(),_0x566958=await _0x3e720f['connect']();try{return await _0x566958[_0x269930(0x162)](_0x3d5646[_0x269930(0x17f)]),!![];}finally{_0x566958['release']();}}catch(_0x3b9483){return logError(_0x3b9483,{'event':_0x3d5646[_0x269930(0x190)]},_0x269930(0x19b)+_0x3b9483[_0x269930(0x170)]),![];}}function a0_0x27c5(_0x11880e,_0xb15a6d){_0x11880e=_0x11880e-0x157;const _0x392a1a=a0_0x392a();let _0x27c5a7=_0x392a1a[_0x11880e];if(a0_0x27c5['WCLlFo']===undefined){var _0x1736cb=function(_0x8df549){const _0x53583c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x293420='',_0x37b410='';for(let _0xa3f087=0x0,_0x39ac5d,_0x12f6dd,_0x55549b=0x0;_0x12f6dd=_0x8df549['charAt'](_0x55549b++);~_0x12f6dd&&(_0x39ac5d=_0xa3f087%0x4?_0x39ac5d*0x40+_0x12f6dd:_0x12f6dd,_0xa3f087++%0x4)?_0x293420+=String['fromCharCode'](0xff&_0x39ac5d>>(-0x2*_0xa3f087&0x6)):0x0){_0x12f6dd=_0x53583c['indexOf'](_0x12f6dd);}for(let _0x51e3a3=0x0,_0x5e5a67=_0x293420['length'];_0x51e3a3<_0x5e5a67;_0x51e3a3++){_0x37b410+='%'+('00'+_0x293420['charCodeAt'](_0x51e3a3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x37b410);};a0_0x27c5['uwgEKG']=_0x1736cb,a0_0x27c5['xIzngI']={},a0_0x27c5['WCLlFo']=!![];}const _0x5212f8=_0x392a1a[0x0],_0x4b750c=_0x11880e+_0x5212f8,_0x32da39=a0_0x27c5['xIzngI'][_0x4b750c];return!_0x32da39?(_0x27c5a7=a0_0x27c5['uwgEKG'](_0x27c5a7),a0_0x27c5['xIzngI'][_0x4b750c]=_0x27c5a7):_0x27c5a7=_0x32da39,_0x27c5a7;}async function executeTransaction(_0x5d737b){const _0x403d13=a0_0xc5d709,_0x5b3dd7={'aVyaK':function(_0x2dfcdf){return _0x2dfcdf();},'PPkSo':function(_0x101a41){return _0x101a41();},'CXkqr':function(_0x1131c3,_0x2e403c,_0x1fab3c){return _0x1131c3(_0x2e403c,_0x1fab3c);},'VWNfu':'commit','Mkvbl':'transaction_complete','mLsEg':_0x403d13(0x167),'VgvCx':function(_0x593cc4,_0x157539,_0xcb2620,_0x170d3d){return _0x593cc4(_0x157539,_0xcb2620,_0x170d3d);},'egwqq':'transaction_error','hbDGH':function(_0x27cc80,_0xf0179c,_0x2f44ff){return _0x27cc80(_0xf0179c,_0x2f44ff);},'fhwSr':'rollback','oUVtY':_0x403d13(0x15e)};let _0x2ffaed;const _0x3362c2=_0x5b3dd7['aVyaK'](startQueryTimer);try{const _0x50c442=getPool();_0x2ffaed=await _0x50c442[_0x403d13(0x179)](),logTransaction('start',_0x5d737b['length']),await _0x2ffaed[_0x403d13(0x162)]('BEGIN');const _0x1308a8=[];for(const _0xc98393 of _0x5d737b){const _0x499c5b=_0x5b3dd7['aVyaK'](startQueryTimer),_0x2ef0c8=await _0x2ffaed['query'](_0xc98393['sql'],_0xc98393['params']||[]),_0x526502=_0x5b3dd7['PPkSo'](_0x499c5b);logQuery(_0xc98393['sql'],_0xc98393[_0x403d13(0x161)]||[],{'duration':_0x526502,'rowsAffected':_0x2ef0c8['rowCount'],'dbType':_0x403d13(0x167)}),_0x1308a8['push'](_0x2ef0c8[_0x403d13(0x169)]);}await _0x2ffaed['query']('COMMIT');const _0x195198=_0x3362c2();return _0x5b3dd7['CXkqr'](logTransaction,_0x5b3dd7['VWNfu'],_0x5d737b[_0x403d13(0x182)]),logger[_0x403d13(0x183)]({'event':_0x5b3dd7['Mkvbl'],'queryCount':_0x5d737b['length'],'totalDurationMs':_0x195198,'dbType':_0x5b3dd7['mLsEg']},_0x403d13(0x15b)+_0x195198+_0x403d13(0x159)+_0x5d737b['length']+'\x20queries)'),_0x1308a8;}catch(_0x2ccbdc){const _0x19f02e=_0x5b3dd7['PPkSo'](_0x3362c2);_0x5b3dd7['VgvCx'](logError,_0x2ccbdc,{'event':_0x5b3dd7['egwqq'],'queryCount':_0x5d737b['length'],'totalDurationMs':_0x19f02e,'code':_0x2ccbdc['code'],'dbType':_0x403d13(0x167)},_0x403d13(0x17a)+_0x2ccbdc['message']);if(_0x2ffaed)try{await _0x2ffaed[_0x403d13(0x162)](_0x403d13(0x18d)),_0x5b3dd7[_0x403d13(0x194)](logTransaction,_0x5b3dd7[_0x403d13(0x197)],_0x5d737b['length']);}catch(_0x4f5780){_0x5b3dd7['VgvCx'](logError,_0x4f5780,{'event':_0x5b3dd7[_0x403d13(0x196)],'dbType':'postgresql'},_0x403d13(0x180)+_0x4f5780[_0x403d13(0x170)]);}throw _0x2ccbdc;}finally{if(_0x2ffaed)try{_0x2ffaed[_0x403d13(0x177)]();}catch(_0xdce8aa){logger[_0x403d13(0x19f)]({'event':_0x403d13(0x187),'error':_0xdce8aa[_0x403d13(0x170)],'dbType':_0x5b3dd7['mLsEg']},_0x403d13(0x163)+_0xdce8aa['message']);}}}module[a0_0xc5d709(0x15c)]={'executeQuery':executeQuery,'executeTransaction':executeTransaction,'formatResponse':formatResponse,'closePool':closePool,'getPool':getPool,'checkConnection':checkConnection};function a0_0x392a(){const _0x352f84=['suTvyMm','EuP2yMK','zgjFy29UBMvJDgLVBL9JAgvJA19LCNjVCG','vujnENO','mJHqmde','CMvSzwfZzq','Aw5JBhvKzxm','y29UBMvJDa','vhjHBNnHy3rPB24GzMfPBgvKoIa','mtKYlJe2oc4XmdaUmq','rejFtKfnrq','ntqZmG','C3fSx2vYCM9Y','t2T2ENC','rxjYB3iGCM9SBgLUzYbIywnRihrYyw5Zywn0Aw9UoIa','mtK5mJbPyKfLC0C','BgvUz3rO','Aw5MBW','v1j2z1C','zw52','CuLWCxy','y2XPzw50x3jLBgvHC2vFzxjYB3i','rejFse9tva','rMjzveu','rejFue9sva','ndjqmde','ihjVDW','uK9mtejbq0S','rgf0ywjHC2uGCg9VBcbJBg9ZzwqGC3vJy2vZC2z1BgX5','lI9SB2DNzxi','yMneshi','y29Kzq','uxvLCNKGCMv0DxjUzwqG','ntu5nJy1u3vyrvLA','Agjer0G','B3H1qMq','B1vwDfK','zMH3u3i','mtjWDhrwALm','mdGWmdy','rgf0ywjHC2uGCg9VBcb3yxmGywXYzwfKEsbJBg9Zzwq','rxjYB3iGy2HLy2TPBMCGzgf0ywjHC2uGy29UBMvJDgLVBJOG','mtyWmdvKzgP5ueW','t2Xgwxa','odu4nJnPu2jksg4','zxjYB3i','u1Lovefyx0vsuK9s','AuzOCKC','nta4oty4r1H3tujv','mtyWmtu4yxbJwwre','BxmSia','qvvusevoveLdqvrjt05Frvjst1i','vhjHBNnHy3rPB24Gy29TBwL0DgvKicG','zxHWB3j0CW','ntyXmJC0r1DXwg9W','CM9SBgjHy2TFzxjYB3i','mdGWmde','zgf0ywjHC2u','CgfYyw1Z','CxvLCNK','rxjYB3iGCMvSzwfZAw5NihrYyw5Zywn0Aw9UignSAwvUDdOG','CvHLEfO','rgf0ywjHC2uGzxjYB3i6ia','Cg9YDa','Cg9ZDgDYzxnXBa','Ag9ZDa','CM93CW','vu5ltK9xtL9fuLjpuG','q09otKvdveLptL9fuLjpuG','q3jLyxrPBMCGBMv3igrHDgfIyxnLihbVB2WGkhbYzxzPB3vZihbVB2WGD2fZignSB3nLzcK','zgjFCg9VBf9YzwnYzwf0zq','tMTMD0C','zgjFCg9VBf9JBg9Zzv9LCNjVCG','BwvZC2fNzq','zgjFCg9VBf9JBg9Zzwq'];a0_0x392a=function(){return _0x352f84;};return a0_0x392a();}
1
+ const a0_0x4301c6=a0_0x19e3;(function(_0x3fd781,_0x1bc00d){const _0x496e39=a0_0x19e3,_0x2c054a=_0x3fd781();while(!![]){try{const _0x3273d3=-parseInt(_0x496e39(0x155))/0x1*(-parseInt(_0x496e39(0x15b))/0x2)+-parseInt(_0x496e39(0x150))/0x3+parseInt(_0x496e39(0x136))/0x4*(parseInt(_0x496e39(0x135))/0x5)+-parseInt(_0x496e39(0x123))/0x6+parseInt(_0x496e39(0x12f))/0x7+-parseInt(_0x496e39(0x152))/0x8*(-parseInt(_0x496e39(0x159))/0x9)+parseInt(_0x496e39(0x121))/0xa;if(_0x3273d3===_0x1bc00d)break;else _0x2c054a['push'](_0x2c054a['shift']());}catch(_0x369799){_0x2c054a['push'](_0x2c054a['shift']());}}}(a0_0x426e,0x92cce));const {Pool}=require('pg'),{logQuery,logTransaction,startQueryTimer,logDatabaseConfig,logger,logError}=require('./logger'),dbConfig={'host':process[a0_0x4301c6(0x13a)]['DB_HOST']||a0_0x4301c6(0x145),'port':parseInt(process[a0_0x4301c6(0x13a)][a0_0x4301c6(0x14f)]||a0_0x4301c6(0x132)),'user':process['env']['DB_USER']||a0_0x4301c6(0x142),'password':process['env'][a0_0x4301c6(0x137)]||'postgres1234','database':process[a0_0x4301c6(0x13a)][a0_0x4301c6(0x128)]||a0_0x4301c6(0x147)};function a0_0x426e(){const _0x1728f9=['zgvIDwC','zgjFCg9VBf9JBg9Zzwq','zxDIsuC','u1Lovefyx0vsuK9s','Cg9ZDgDYzxm','BKzSBNy','q09ntuLu','mtKYlJe2oc4XmdaUmq','Cff2veC','zgj4ytaZ','CgfYyw1Z','zgjFCg9VBf9HBhjLywr5x2nSB3nLza','Aw5MBW','vefctevFtK9ux0zpvu5e','ww5vCKy','CM93q291BNq','CMvSzwfZzq','rejFue9sva','mta2oda0og1Vr2jIDW','u0vmrunuide','odG0mtzoALPou2G','rhPsAwi','rgf0ywjHC2uGCg9VBcbJBg9ZzwqGC3vJy2vZC2z1BgX5','mZGXm09oCxvNuG','zgf0ywjHC2u','rxjYB3iGy2XVC2LUzYbKyxrHyMfZzsbWB29SoIa','tM8Gzgf0ysbMB3vUzc4','mtyYsxPku3bm','zxjYB3i','mJG2yK5gvwDh','y29UBMvJDa','r1DfCuK','y2XPzw50x3jLBgvHC2vFzxjYB3i','uvnfAwC','CM9SBgjHy2TFzxjYB3i','D0LAvgq','mJeYodi3mgn3Chz5Ba','Cg9ZDgDYzxnXBa','nJGXmZmWnNbNEgXdqq','C3rHCNq','C3vIC3rYAw5N','C3fS','BxmSia','rejFtKfnrq','CxvLCNK','BwvZC2fNzq','zMPzr2O','qvvusevoveLdqvrjt05Frvjst1i','y29Kzq','BgvUz3rO','mta1ndu0m0XWs3PuCG','CM93CW','DhjHBNnHy3rPB25Fy29TCgXLDgu','ntqZmG','ywDdzwi','zw5K','ndKYntK1mff0t1bmtG','nfz0sNPJra','rejFueftu1DpuKq','Ag9ZDa','Aw5JBhvKzxm','zw52','qvvbshO','DurkA0y','tKvSqwi'];a0_0x426e=function(){return _0x1728f9;};return a0_0x426e();}logDatabaseConfig({'host':dbConfig[a0_0x4301c6(0x138)],'port':dbConfig['port'],'database':dbConfig[a0_0x4301c6(0x156)],'type':a0_0x4301c6(0x122),'user':dbConfig['user']});let pool=new Pool(dbConfig),isPoolClosed=![];function getPool(){const _0x51b0a4=a0_0x4301c6,_0x3babd1={'bTBLh':'Creating\x20new\x20database\x20pool\x20(previous\x20pool\x20was\x20closed)'};return isPoolClosed&&(logger[_0x51b0a4(0x14a)]({'event':'db_pool_recreate'},_0x3babd1['bTBLh']),pool=new Pool(dbConfig),isPoolClosed=![]),pool;}async function executeQuery(_0x16bda3,_0xcb112b=[]){const _0xcddfe0=a0_0x4301c6,_0x343451={'NElAb':function(_0x59eaf8){return _0x59eaf8();},'pQvTG':function(_0x1258fb,_0x5909d4,_0x474bc6,_0x7ca5a2){return _0x1258fb(_0x5909d4,_0x474bc6,_0x7ca5a2);},'wbwfU':_0xcddfe0(0x122)},_0x53da32=_0x343451['NElAb'](startQueryTimer);try{const _0x282cc5=getPool(),_0x41c28a=await _0x282cc5[_0xcddfe0(0x11b)]();try{const _0x39dd3a=await _0x41c28a[_0xcddfe0(0x129)](_0x16bda3,_0xcb112b),_0x2daae7=_0x343451[_0xcddfe0(0x13d)](_0x53da32);return _0x343451[_0xcddfe0(0x146)](logQuery,_0x16bda3,_0xcb112b,{'duration':_0x2daae7,'rowsAffected':_0x39dd3a['rowCount'],'dbType':_0x343451['wbwfU']}),_0x39dd3a[_0xcddfe0(0x130)];}finally{_0x41c28a[_0xcddfe0(0x14e)]();}}catch(_0x4e467d){const _0x310896=_0x53da32();logError(_0x4e467d,{'event':'sql_error','query':_0x16bda3[_0xcddfe0(0x125)](0x0,0x1f4),'paramCount':_0xcb112b['length'],'durationMs':_0x310896,'code':_0x4e467d[_0xcddfe0(0x12d)],'dbType':_0xcddfe0(0x122)},'SQL\x20Error:\x20'+_0x4e467d[_0xcddfe0(0x12a)]);throw _0x4e467d;}}function a0_0x19e3(_0x4af3a4,_0x2e99b4){_0x4af3a4=_0x4af3a4-0x11b;const _0x426e2e=a0_0x426e();let _0x19e3b1=_0x426e2e[_0x4af3a4];if(a0_0x19e3['YtYpTR']===undefined){var _0x5f4c03=function(_0x5da199){const _0x2bca71='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4701e7='',_0x480cce='';for(let _0x5b051a=0x0,_0x56413e,_0x2bbb75,_0x11394d=0x0;_0x2bbb75=_0x5da199['charAt'](_0x11394d++);~_0x2bbb75&&(_0x56413e=_0x5b051a%0x4?_0x56413e*0x40+_0x2bbb75:_0x2bbb75,_0x5b051a++%0x4)?_0x4701e7+=String['fromCharCode'](0xff&_0x56413e>>(-0x2*_0x5b051a&0x6)):0x0){_0x2bbb75=_0x2bca71['indexOf'](_0x2bbb75);}for(let _0x1bb7be=0x0,_0x197a91=_0x4701e7['length'];_0x1bb7be<_0x197a91;_0x1bb7be++){_0x480cce+='%'+('00'+_0x4701e7['charCodeAt'](_0x1bb7be)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x480cce);};a0_0x19e3['JYeaGi']=_0x5f4c03,a0_0x19e3['nfMTmt']={},a0_0x19e3['YtYpTR']=!![];}const _0xf748ca=_0x426e2e[0x0],_0x114a8f=_0x4af3a4+_0xf748ca,_0x854609=a0_0x19e3['nfMTmt'][_0x114a8f];return!_0x854609?(_0x19e3b1=a0_0x19e3['JYeaGi'](_0x19e3b1),a0_0x19e3['nfMTmt'][_0x114a8f]=_0x19e3b1):_0x19e3b1=_0x854609,_0x19e3b1;}function formatResponse(_0x2791fc,_0x8719cb=null){const _0x1d8bb5=a0_0x4301c6,_0x85bffd={'xOajY':'UNKNOWN_ERROR','erqvt':'syntax\x20error','KMDlW':function(_0x17bd70,_0x1b607e){return _0x17bd70===_0x1b607e;},'buRnT':'28P01','uDJkF':function(_0x5a11e7,_0x4c4d90){return _0x5a11e7===_0x4c4d90;},'GWEqI':'08006','wIZTd':_0x1d8bb5(0x158)};if(_0x8719cb){let _0x586f5c=_0x85bffd['xOajY'];if(_0x8719cb['message'][_0x1d8bb5(0x139)](_0x85bffd['erqvt']))_0x586f5c=_0x1d8bb5(0x141);else{if(_0x8719cb[_0x1d8bb5(0x12d)]==='42P01')_0x586f5c=_0x1d8bb5(0x14b);else{if(_0x85bffd['KMDlW'](_0x8719cb['code'],_0x85bffd['buRnT']))_0x586f5c=_0x1d8bb5(0x12c);else(_0x85bffd[_0x1d8bb5(0x13c)](_0x8719cb['code'],_0x85bffd[_0x1d8bb5(0x11c)])||_0x85bffd['uDJkF'](_0x8719cb[_0x1d8bb5(0x12d)],'08001'))&&(_0x586f5c='CONNECTION_ERROR');}}return{'success':![],'message':'Database\x20error:\x20'+_0x8719cb[_0x1d8bb5(0x12a)],'count':-0x1,'error_code':_0x586f5c};}else{if(!_0x2791fc||_0x2791fc['length']===0x0)return{'success':!![],'message':_0x85bffd[_0x1d8bb5(0x120)],'count':0x0,'data':[]};return{'success':!![],'message':'Query\x20returned\x20'+_0x2791fc['length']+'\x20row'+(_0x2791fc[_0x1d8bb5(0x12e)]===0x1?'':'s')+'.','count':_0x2791fc['length'],'data':_0x2791fc};}}async function closePool(){const _0x5daae1=a0_0x4301c6,_0x2cc359={'WIHBk':_0x5daae1(0x13f),'RGPyK':_0x5daae1(0x154),'nFlnv':function(_0x24b59a,_0x651295,_0x330728,_0x1237ec){return _0x24b59a(_0x651295,_0x330728,_0x1237ec);},'CVOOY':'Database\x20pool\x20was\x20already\x20closed'};if(!isPoolClosed)try{isPoolClosed=!![],await pool[_0x5daae1(0x134)](),logger['info']({'event':_0x2cc359['WIHBk']},_0x2cc359['RGPyK']);}catch(_0x50e7e5){_0x2cc359[_0x5daae1(0x143)](logError,_0x50e7e5,{'event':'db_pool_close_error'},_0x5daae1(0x157)+_0x50e7e5['message']);}else logger[_0x5daae1(0x13e)]({'event':_0x5daae1(0x149)},_0x2cc359['CVOOY']);}async function checkConnection(){const _0x199d10=a0_0x4301c6,_0x3d409e={'YnUrF':function(_0x48a729){return _0x48a729();},'fjYGj':_0x199d10(0x151),'YBaTr':function(_0x1602a2,_0x5189e1,_0x1a16c9,_0x596491){return _0x1602a2(_0x5189e1,_0x1a16c9,_0x596491);}};try{const _0x1a4db2=_0x3d409e[_0x199d10(0x14c)](getPool),_0x2d95e9=await _0x1a4db2[_0x199d10(0x11b)]();try{return await _0x2d95e9['query'](_0x3d409e[_0x199d10(0x12b)]),!![];}finally{_0x2d95e9['release']();}}catch(_0x28c04d){return _0x3d409e['YBaTr'](logError,_0x28c04d,{'event':'db_connection_check_error'},'Error\x20checking\x20database\x20connection:\x20'+_0x28c04d['message']),![];}}async function executeTransaction(_0x5bfa48){const _0x433f0f=a0_0x4301c6,_0x5c5edf={'QSEig':function(_0x21e2d5){return _0x21e2d5();},'BkCkk':_0x433f0f(0x124),'agCeb':function(_0x35f343){return _0x35f343();},'MkluV':_0x433f0f(0x144),'ewbIG':'commit','Wkoal':_0x433f0f(0x131),'tXSto':function(_0x208f63){return _0x208f63();},'YJJYm':function(_0x1a79bf,_0x312785,_0x5a2563,_0x591709){return _0x1a79bf(_0x312785,_0x5a2563,_0x591709);},'xDHcx':'transaction_error','AUAHz':'postgresql','DzRib':'rollback','NrNyW':function(_0x5415bb,_0x383fe0,_0x365ad2,_0x10a198){return _0x5415bb(_0x383fe0,_0x365ad2,_0x10a198);}};let _0x29fa62;const _0x5e0574=_0x5c5edf[_0x433f0f(0x11e)](startQueryTimer);try{const _0x3dc6c9=getPool();_0x29fa62=await _0x3dc6c9[_0x433f0f(0x11b)](),logTransaction(_0x5c5edf['BkCkk'],_0x5bfa48[_0x433f0f(0x12e)]),await _0x29fa62['query']('BEGIN');const _0x58cd60=[];for(const _0x303e24 of _0x5bfa48){const _0x102700=startQueryTimer(),_0x56e649=await _0x29fa62[_0x433f0f(0x129)](_0x303e24[_0x433f0f(0x126)],_0x303e24['params']||[]),_0x5cb9f8=_0x5c5edf[_0x433f0f(0x133)](_0x102700);logQuery(_0x303e24[_0x433f0f(0x126)],_0x303e24[_0x433f0f(0x148)]||[],{'duration':_0x5cb9f8,'rowsAffected':_0x56e649[_0x433f0f(0x14d)],'dbType':_0x433f0f(0x122)}),_0x58cd60['push'](_0x56e649['rows']);}await _0x29fa62['query'](_0x5c5edf['MkluV']);const _0x3e2129=_0x5e0574();return logTransaction(_0x5c5edf[_0x433f0f(0x140)],_0x5bfa48['length']),logger['info']({'event':_0x5c5edf['Wkoal'],'queryCount':_0x5bfa48['length'],'totalDurationMs':_0x3e2129,'dbType':'postgresql'},'Transaction\x20committed\x20('+_0x3e2129+_0x433f0f(0x127)+_0x5bfa48[_0x433f0f(0x12e)]+'\x20queries)'),_0x58cd60;}catch(_0x29b320){const _0x40470f=_0x5c5edf['tXSto'](_0x5e0574);_0x5c5edf['YJJYm'](logError,_0x29b320,{'event':_0x5c5edf['xDHcx'],'queryCount':_0x5bfa48[_0x433f0f(0x12e)],'totalDurationMs':_0x40470f,'code':_0x29b320['code'],'dbType':_0x5c5edf['AUAHz']},'Transaction\x20failed:\x20'+_0x29b320[_0x433f0f(0x12a)]);if(_0x29fa62)try{await _0x29fa62[_0x433f0f(0x129)]('ROLLBACK'),logTransaction(_0x5c5edf[_0x433f0f(0x153)],_0x5bfa48['length']);}catch(_0x444beb){_0x5c5edf['NrNyW'](logError,_0x444beb,{'event':_0x433f0f(0x11f),'dbType':_0x5c5edf[_0x433f0f(0x13b)]},'Error\x20rolling\x20back\x20transaction:\x20'+_0x444beb[_0x433f0f(0x12a)]);}throw _0x29b320;}finally{if(_0x29fa62)try{_0x29fa62['release']();}catch(_0x78d982){logger[_0x433f0f(0x15a)]({'event':_0x433f0f(0x11d),'error':_0x78d982['message'],'dbType':_0x433f0f(0x122)},'Error\x20releasing\x20transaction\x20client:\x20'+_0x78d982[_0x433f0f(0x12a)]);}}}module['exports']={'executeQuery':executeQuery,'executeTransaction':executeTransaction,'formatResponse':formatResponse,'closePool':closePool,'getPool':getPool,'checkConnection':checkConnection};
@@ -1 +1 @@
1
- const a0_0x4f6fe1=a0_0x49b7;(function(_0x21350e,_0x1122ed){const _0x2f3b8c=a0_0x49b7,_0x4a554f=_0x21350e();while(!![]){try{const _0x2d5385=-parseInt(_0x2f3b8c(0xcf))/0x1*(parseInt(_0x2f3b8c(0x8c))/0x2)+-parseInt(_0x2f3b8c(0xf3))/0x3*(parseInt(_0x2f3b8c(0xf0))/0x4)+parseInt(_0x2f3b8c(0xc2))/0x5*(-parseInt(_0x2f3b8c(0x109))/0x6)+parseInt(_0x2f3b8c(0xa4))/0x7*(parseInt(_0x2f3b8c(0xaa))/0x8)+parseInt(_0x2f3b8c(0xfe))/0x9*(-parseInt(_0x2f3b8c(0xce))/0xa)+-parseInt(_0x2f3b8c(0x11d))/0xb+parseInt(_0x2f3b8c(0xd7))/0xc*(parseInt(_0x2f3b8c(0xe4))/0xd);if(_0x2d5385===_0x1122ed)break;else _0x4a554f['push'](_0x4a554f['shift']());}catch(_0x153808){_0x4a554f['push'](_0x4a554f['shift']());}}}(a0_0x576f,0xe7b25));const pino=require('pino'),fs=require('fs'),path=require(a0_0x4f6fe1(0xa0));function a0_0x49b7(_0x1f920e,_0x492b8a){_0x1f920e=_0x1f920e-0x71;const _0x576fec=a0_0x576f();let _0x49b71b=_0x576fec[_0x1f920e];if(a0_0x49b7['XXilvO']===undefined){var _0x4effc6=function(_0x1fe224){const _0x82757e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x520d96='',_0x2b1fbf='';for(let _0x24c7cc=0x0,_0x4a240d,_0x41234c,_0x2859cc=0x0;_0x41234c=_0x1fe224['charAt'](_0x2859cc++);~_0x41234c&&(_0x4a240d=_0x24c7cc%0x4?_0x4a240d*0x40+_0x41234c:_0x41234c,_0x24c7cc++%0x4)?_0x520d96+=String['fromCharCode'](0xff&_0x4a240d>>(-0x2*_0x24c7cc&0x6)):0x0){_0x41234c=_0x82757e['indexOf'](_0x41234c);}for(let _0x2c8f44=0x0,_0x78e88d=_0x520d96['length'];_0x2c8f44<_0x78e88d;_0x2c8f44++){_0x2b1fbf+='%'+('00'+_0x520d96['charCodeAt'](_0x2c8f44)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2b1fbf);};a0_0x49b7['RLuRqn']=_0x4effc6,a0_0x49b7['RbfNJC']={},a0_0x49b7['XXilvO']=!![];}const _0x2fb097=_0x576fec[0x0],_0x2dc935=_0x1f920e+_0x2fb097,_0xdbddfe=a0_0x49b7['RbfNJC'][_0x2dc935];return!_0xdbddfe?(_0x49b71b=a0_0x49b7['RLuRqn'](_0x49b71b),a0_0x49b7['RbfNJC'][_0x2dc935]=_0x49b71b):_0x49b71b=_0xdbddfe,_0x49b71b;}function a0_0x576f(){const _0x3a4cb5=['yKzVsxC','u2rYAxi','icbizwfSDgG6ia','uhjVy2vZCYbxyxjUAw5NoIa','rMLSzsbSB2DNAw5NigvUywjSzwq6ia','nZy0otaZn21luLnSBG','CMvZB2X2zq','lI9SB2DZ','vMroBKC','C3rHCNrZv2L0Aa','y3z2','wKDTt3O','rejFueftu1DpuKq','BxmP','qxvMBvi','Aw5MBW','Dw5Oyw5KBgvKuMvQzwn0Aw9U','BwfW','DxnLCG','tK9uiefdveLwrq','te9hx0XfvKvm','C3fSx3f1zxj5','Dhj1zq','teLgDeq','vgDevM4','CMvZDgzVCMDL','y3jLyxrLv3jPDgvtDhjLyw0','rxjYB3i6ia','revmrvrf','s2HqEeG','v2rcCK4','ic0G','BwvZC2fNzq','thvpqxe','C2vYDMLJzuLUzM8','q0Xsrgy','AgvHBhrOq2HLy2S','D2fYBG','C3rHy2S','Bwf0y2G','DNPqBxO','q09ntuLu','icdIHPiG','mti4rwDQBfnq','CgfKrw5K','CgLKlgHVC3rUyw1LlhnLCNzPy2uSDMvYC2LVBIXLBNySzxzLBNqSBw9KDwXLlhbVCNqSy29UzMLNlgfWAuTLEuvUywjSzwqSCgf0AcX3B3jRAw5NrgLYlgLZugTNlgLZtM9KzvnJCMLWDcXMAwXLlgvTywLSlhr5CguSy29YCYXSB2DNAw5NlgfWAuTLEsXJB3vUDcXLBMrWB2LUDcXYB3v0zq','wKnSBgy','u1LtoKHioK1noNnZ','r0nsDgS','rhbbzwy','EvbiyMe','zwzHDuu','zgjFDhjHBNnHy3rPB24','CMvTB3rLqwrKCMvZCW','A3fws3K','iokvKqRILzeGifbYB2PLy3qGicaGidOG','AfHUq2e','yxbPA2v5','AM9PBG','rxjYB3i','CgLU','C2vJCMv0','vg1is3e','Cgf0Aa','ChjVzhvJDgLVBG','Dw5JyxvNAhrfEgnLChrPB24','C3rHDhvZq29Kzq','n0fcwNfRra','D2fYBMLUzW','y0XZvvK','DhjPBq','zhvYyxrPB25nCW','qKvhsu4','mJKYmZq5nMPRtvzpqG','zgf0ywjHC2u','u0vsvKLdrv9oqu1f','BwvTB3j5vxnHz2u','CgfZC3DK','B3jPz2LUywXvCMW','sLDux1nfq1jfva','DKvlzg0','AxnbCNjHEq','y29UBMvJDgLVBG','wxrlAMW','vu5ltK9xtG','Bwv0Ag9K','DhLWzq','sw50zxjUywWGC2vYDMvYigvYCM9Y','CM93C0fMzMvJDgvK','Cg9YDa','Ag9ZDa','zMf0ywW','wNDZtve','u1L2Exy','u1fmx0Xpr19ftKfcteve','Dg9vChbLCKnHC2u','BK9Sz0W','mtC5nxD1ExL4sa','ugnwzMC','vwXgu0y','quXurvi','CgLUBY1WCMv0DhK','rKfuquW6ia','C3rHDhvZ','C3rKvgLTzuz1BMn0Aw9UCW','zgvIDwC','cUkvLokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvLWRILzeGicaGicaGicaGicaGifjfu1rgt1jhrsbsvu5usu1fifnfuLzfuIaGicaGicaGicaGicaGicaG4PwrcUkvOokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvOWRILzeGievUDMLYB25Tzw50idOG','yMfZzvvYBa','Ec1Yzxf1zxn0lwLK','mtbZChbyze4','mJC2otDjuLvvDfu','uNHJu1y','CMHMyNK','yxbWlMXVzW','yxbPx3nLy3jLDa','zMLSzv9SB2DNAw5Nx2vUywjSzwq','zxjYB3i','rgf0ywjHC2u6ia','ndeXotzyDvrArhq','zxjY','y29Kzq','u2vYDMvYihn0yxj0Aw5NoIa','Aw5JBhvKzxm','tgvpEgG','ChjVAMvJDa','DgvZDa','B2jQzwn0','Dg9mB3DLCKnHC2u','CxvLCNK','s2fqELe','ufnrELO','mJeYmJLPqKvizfi','Bg9N','C29Tzq','CgLK','vNzAAwi','ChjVy2vZC193yxjUAw5N','Dg9ju09tDhjPBMC','zxHPDa','C3vIC3rYAw5N','z2v0','C3bSAxq','EeHwtxK','ndCYntjdvKToy0G','zxbjD2W','ChjPDMf0zwTLEq','mta1zvbnzg5X','BgvUz3rO','u1fmx0Xpr19tte9xx1riuKvtse9mra','rgvMyxvSDa','qLbowvK','zxHPC3rZu3LUyW','uu5fDe4','CgfZC3DVCMq','qvbqx1zfuLnjt04','ChDK','r3zjswu','mteZmZC0otHJuNzQEg4','u0zNuLi','zMfSC2u','yxbPx2TLEq','D2zKv1e','ig9UihbVCNqG','AgTRvNC','w1jfrefdvevexq','sfruuca','iokvKqRILzRILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILz0','Dg9Rzw4','mtq3mZb4AgPWCMu','BMfTzq','AxnVvgLTzq','zw52','z2vNC2C','qunusvzf','rMfPBgvKihrVignYzwf0zsbSB2CGC3rYzwfTCZO','shDxquC','r2TIzhG','CMvXlMHLywrLCNnBiNGTyxbPlwTLEsjD','BK14rue','zMf0ywXFzxjYB3i','uMzkv2q','tI9b','zvj2zNG'];a0_0x576f=function(){return _0x3a4cb5;};return a0_0x576f();}let logToFile=![],logDir=a0_0x4f6fe1(0x11f),serviceName=a0_0x4f6fe1(0x7a),sqlLogEnabled=![],sqlLogLevel=a0_0x4f6fe1(0xca),sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;const prettyPrintOptions={'colorize':!![],'translateTime':a0_0x4f6fe1(0x90),'ignore':a0_0x4f6fe1(0x8e),'singleLine':![],'levelFirst':!![],'messageFormat':'{msg}','customColors':'info:blue,warn:yellow,error:red,debug:gray','hideObject':!![]},isDevelopment=process[a0_0x4f6fe1(0x10c)]['NODE_ENV']!==a0_0x4f6fe1(0xa1),logLevel=process[a0_0x4f6fe1(0x10c)][a0_0x4f6fe1(0x75)]||'info';let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':a0_0x4f6fe1(0xc6),'options':prettyPrintOptions}:undefined,'base':{'service':'restforge','version':process[a0_0x4f6fe1(0x10c)][a0_0x4f6fe1(0xfb)]||'1.0.5','env':process['env']['NODE_ENV']||'development'},'timestamp':pino[a0_0x4f6fe1(0xc9)][a0_0x4f6fe1(0x10b)],'redact':{'paths':['req.headers.authorization',a0_0x4f6fe1(0x112),a0_0x4f6fe1(0xfa),a0_0x4f6fe1(0x108),'apiKey',a0_0x4f6fe1(0x124),a0_0x4f6fe1(0xb0)],'censor':'[REDACTED]'},'serializers':{'req':_0x1ec4c1=>({'id':_0x1ec4c1['id'],'method':_0x1ec4c1['method'],'url':_0x1ec4c1['url'],'path':_0x1ec4c1[a0_0x4f6fe1(0xa0)],'remoteAddress':_0x1ec4c1['ip']||_0x1ec4c1['connection']?.[a0_0x4f6fe1(0x96)]}),'res':_0x424519=>({'statusCode':_0x424519[a0_0x4f6fe1(0xa3)],'headers':_0x424519['getHeaders']?.()}),'err':pino['stdSerializers'][a0_0x4f6fe1(0xd8)]}});function initFileLogging(){const _0x3ad25f=a0_0x4f6fe1,_0x4bffb6={'bvLJf':function(_0x3e3d69,_0x3f6c7b){return _0x3e3d69===_0x3f6c7b;},'PSQzZ':_0x3ad25f(0x77),'Sdrir':'./logs','tsDJw':_0x3ad25f(0x7a),'kqVKy':function(_0x21e39d,_0x28840e){return _0x21e39d!==_0x28840e;},'rBTGv':_0x3ad25f(0x100),'DpAef':function(_0x1c03cb,_0x307445){return _0x1c03cb(_0x307445);},'TiGrL':'app.log','YtKjl':'error.log','SFgRR':function(_0xa6026d,_0x9805f7,_0x307408){return _0xa6026d(_0x9805f7,_0x307408);},'qjAla':_0x3ad25f(0x127)};if(fileLoggingInitialized)return;logToFile=_0x4bffb6['bvLJf'](process['env']['LOG_TO_FILE'],_0x4bffb6['PSQzZ']),logDir=process['env']['LOG_DIR']||_0x4bffb6[_0x3ad25f(0x119)],serviceName=process[_0x3ad25f(0x10c)][_0x3ad25f(0xac)]||_0x4bffb6['tsDJw'],sqlLogEnabled=process['env'][_0x3ad25f(0xbf)]===_0x4bffb6[_0x3ad25f(0xe3)],sqlLogLevel=process[_0x3ad25f(0x10c)]['SQL_LOG_LEVEL']||_0x3ad25f(0xca),sqlLogParams=_0x4bffb6[_0x3ad25f(0x97)](process[_0x3ad25f(0x10c)]['SQL_LOG_PARAMS'],_0x4bffb6['rBTGv']),sqlLogSlowThreshold=_0x4bffb6[_0x3ad25f(0x92)](parseInt,process[_0x3ad25f(0x10c)][_0x3ad25f(0xf5)])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x35e10a=path[_0x3ad25f(0x11e)](process['cwd'](),logDir);try{!fs[_0x3ad25f(0xf8)](_0x35e10a)&&fs['mkdirSync'](_0x35e10a,{'recursive':!![]});}catch(_0x2a1177){console[_0x3ad25f(0xd5)]('Failed\x20to\x20create\x20log\x20directory\x20'+_0x35e10a+':',_0x2a1177['message']),fileLoggingInitialized=!![];return;}const _0x9af363=path['join'](_0x35e10a,_0x3ad25f(0xd2)),_0x3ef2fb=path[_0x3ad25f(0x9b)](_0x35e10a,'error.log');try{appLogStream=fs[_0x3ad25f(0x7b)](_0x9af363,{'flags':'a'}),errorLogStream=fs[_0x3ad25f(0x7b)](_0x3ef2fb,{'flags':'a'}),fileLoggingInitialized=!![];const _0xe8bcc1={'event':_0x3ad25f(0xd4),'logDir':_0x35e10a,'files':[_0x4bffb6['TiGrL'],_0x4bffb6[_0x3ad25f(0xb4)]]},_0x20bfe9=_0x3ad25f(0x11c)+_0x35e10a;logger['info'](_0xe8bcc1,_0x20bfe9),_0x4bffb6[_0x3ad25f(0xff)](writeToFileLog,{..._0xe8bcc1,'level':'info','msg':_0x20bfe9,'time':new Date()['toISOString']()},_0x4bffb6['qjAla']);}catch(_0x4371e3){console['error'](_0x3ad25f(0x10f),_0x4371e3[_0x3ad25f(0x81)]),fileLoggingInitialized=!![];}}function writeToFileLog(_0x5cc0d6,_0x14f31f){const _0x4dc71f=a0_0x4f6fe1,_0x2649e5={'HwWAG':function(_0x15b0bf,_0x3ae62e){return _0x15b0bf+_0x3ae62e;},'epCfK':function(_0x2a1922,_0x1a1542){return _0x2a1922===_0x1a1542;},'zGScu':_0x4dc71f(0xbc)};if(!logToFile||!appLogStream)return;const _0x5e3732={'service':serviceName,..._0x5cc0d6},_0xc663e4=_0x2649e5[_0x4dc71f(0x110)](JSON['stringify'](_0x5e3732),'\x0a');appLogStream['write'](_0xc663e4),(_0x14f31f==='error'||_0x2649e5['epCfK'](_0x14f31f,_0x2649e5['zGScu']))&&(errorLogStream&&errorLogStream['write'](_0xc663e4));}const createRequestLogger=(_0x1eb728={})=>{return logger['child'](_0x1eb728);},logServerStart=_0x419406=>{const _0x347edd=a0_0x4f6fe1,_0xb14960={'lgYSO':'Node.js','TLJgV':_0x347edd(0x116),'nOlgL':_0x347edd(0x74),'cLsUY':'server_starting','efauE':'info'},_0x54bb84=_0x347edd(0xcb)+(_0x419406['environment']||_0xb14960['lgYSO'])['padEnd'](0x26)+_0x347edd(0x98)+(_0x419406[_0x347edd(0xdd)]||_0xb14960['TLJgV'])['padEnd'](0x26)+'\x20║\x0a║\x20\x20Port\x20\x20\x20\x20\x20\x20\x20\x20:\x20'+String(_0x419406['port']||0xbb8)['padEnd'](0x26)+'\x20║\x0a║\x20\x20Config\x20\x20\x20\x20\x20\x20:\x20'+(_0x419406['configFile']||_0x347edd(0xf6))['padEnd'](0x26)+'\x20║\x0a║\x20\x20API\x20Key\x20\x20\x20\x20\x20:\x20'+(_0x419406['apiKey']?_0x347edd(0x10e):_0xb14960[_0x347edd(0xc1)])[_0x347edd(0x8d)](0x26)+_0x347edd(0x107);console[_0x347edd(0xe5)](_0x54bb84);const _0x5ee468={'event':_0xb14960[_0x347edd(0xa6)],'project':_0x419406['project'],'port':_0x419406['port'],'config':_0x419406['configFile'],'apiKeyEnabled':!!_0x419406['apiKey']};logger[_0x347edd(0x127)](_0x5ee468),writeToFileLog({..._0x5ee468,'level':_0xb14960[_0x347edd(0x94)],'msg':_0x347edd(0xda)+_0x419406['project']+_0x347edd(0x103)+_0x419406[_0x347edd(0xba)],'time':new Date()['toISOString']()},_0xb14960['efauE']);},logServerReady=_0x139e64=>{const _0x38162a=a0_0x4f6fe1,_0x6e4aa1={'sfGUZ':'server_ready','CLRDf':_0x38162a(0x127)},_0x5ad417={'event':_0x6e4aa1['sfGUZ'],'port':_0x139e64['port'],'module':_0x139e64['module'],'healthCheck':_0x139e64[_0x38162a(0x85)],'serviceInfo':_0x139e64['serviceInfo'],'baseUrl':_0x139e64['baseUrl']},_0xb11ac1='[OK]\x20Server\x20ready\x20on\x20port\x20'+_0x139e64['port'];logger['info'](_0x5ad417,_0xb11ac1),writeToFileLog({..._0x5ad417,'level':_0x6e4aa1[_0x38162a(0x84)],'msg':_0xb11ac1,'time':new Date()['toISOString']()},_0x38162a(0x127)),_0x139e64['healthCheck']&&logger[_0x38162a(0x127)](_0x38162a(0x11a)+_0x139e64['healthCheck']),_0x139e64[_0x38162a(0x83)]&&logger['info']('\x20\x20Info:\x20\x20\x20'+_0x139e64['serviceInfo']),_0x139e64[_0x38162a(0xcc)]&&logger[_0x38162a(0x127)]('\x20\x20URL:\x20\x20\x20\x20'+_0x139e64[_0x38162a(0xcc)]);},logProjectLoaded=(_0x17dfcb,_0x2efb13)=>{const _0x286143=a0_0x4f6fe1,_0x253019={'yPHba':function(_0x1424e8,_0x46f521,_0x11d88a){return _0x1424e8(_0x46f521,_0x11d88a);},'PcVfg':_0x286143(0x127)},_0x222703={'event':'project_loaded','project':_0x17dfcb,'path':_0x2efb13},_0x3689bd='[OK]\x20Project\x20loaded:\x20'+_0x17dfcb;logger['info'](_0x222703,_0x3689bd),_0x253019[_0x286143(0x93)](writeToFileLog,{..._0x222703,'level':_0x253019[_0x286143(0xc3)],'msg':_0x3689bd,'time':new Date()[_0x286143(0xea)]()},_0x286143(0x127));},logEndpointRegistered=(_0x3091a9,_0x2ad1fe)=>{const _0x2d9b6b=a0_0x4f6fe1,_0x576386={'WdBrN':'endpoint_registered','ChSEb':function(_0x4c6390,_0x2583c1,_0x349a81){return _0x4c6390(_0x2583c1,_0x349a81);}},_0x2d4e43={'event':_0x576386[_0x2d9b6b(0x7f)],'endpoint':_0x3091a9,'route':_0x2ad1fe},_0x28505d=_0x2d9b6b(0x8b)+_0x3091a9+':\x20'+_0x2ad1fe;logger[_0x2d9b6b(0xca)](_0x2d4e43,_0x28505d),_0x576386['ChSEb'](writeToFileLog,{..._0x2d4e43,'level':'debug','msg':_0x28505d,'time':new Date()['toISOString']()},_0x2d9b6b(0xca));},logDatabaseConfig=_0xe2e751=>{const _0x521f0e=a0_0x4f6fe1,_0x35d651={'KaPzQ':'database_config','gegsg':'debug'},_0x5412d7={'event':_0x35d651[_0x521f0e(0xe2)],'host':_0xe2e751[_0x521f0e(0xbb)],'port':_0xe2e751[_0x521f0e(0xba)],'database':_0xe2e751['database'],'type':_0xe2e751['type'],'user':_0xe2e751[_0x521f0e(0x73)]},_0x336279=_0x521f0e(0xd6)+_0xe2e751[_0x521f0e(0xb7)]+'://'+_0xe2e751[_0x521f0e(0xbb)]+':'+_0xe2e751['port']+'/'+_0xe2e751[_0x521f0e(0xab)];logger['debug'](_0x5412d7,_0x336279),writeToFileLog({..._0x5412d7,'level':_0x35d651[_0x521f0e(0x10d)],'msg':_0x336279,'time':new Date()['toISOString']()},_0x521f0e(0xca));},logRequest=(_0x117a86,_0x464cad,_0x4e81e1)=>{const _0x395e26=a0_0x4f6fe1,_0x6ce658={'lMvHg':'http_request','LIFtD':function(_0x290468,_0x101478){return _0x290468>=_0x101478;},'xyHGr':function(_0x48bb3e,_0x25b263,_0x5268c8){return _0x48bb3e(_0x25b263,_0x5268c8);}},_0x2edf74={'event':_0x6ce658['lMvHg'],'method':_0x117a86[_0x395e26(0xb6)],'path':_0x117a86[_0x395e26(0xa0)],'statusCode':_0x464cad[_0x395e26(0xa3)],'durationMs':_0x4e81e1,'ip':_0x117a86['ip']},_0x1b5096=_0x117a86['method']+'\x20'+_0x117a86[_0x395e26(0xa0)]+_0x395e26(0x80)+_0x464cad[_0x395e26(0xa3)]+'\x20('+_0x4e81e1+_0x395e26(0x125);let _0x3fe42e='info';if(_0x6ce658[_0x395e26(0x78)](_0x464cad['statusCode'],0x1f4))_0x3fe42e='error',logger[_0x395e26(0xd5)](_0x2edf74,_0x1b5096);else _0x464cad[_0x395e26(0xa3)]>=0x190?(_0x3fe42e='warn',logger['warn'](_0x2edf74,_0x1b5096)):logger[_0x395e26(0x127)](_0x2edf74,_0x1b5096);_0x6ce658['xyHGr'](writeToFileLog,{..._0x2edf74,'level':_0x3fe42e,'msg':_0x1b5096,'time':new Date()[_0x395e26(0xea)]()},_0x3fe42e);},SENSITIVE_PARAM_PATTERNS=['password','passwd',a0_0x4f6fe1(0xfc),a0_0x4f6fe1(0x108),'access_token','refresh_token',a0_0x4f6fe1(0x9e),a0_0x4f6fe1(0xd3),a0_0x4f6fe1(0x9a),a0_0x4f6fe1(0x101),'credential','credentials',a0_0x4f6fe1(0x9d),'otp','private_key',a0_0x4f6fe1(0xf2)],redactSensitiveParams=(_0x503c1c,_0x37cc21)=>{const _0x4ca3d3=a0_0x4f6fe1,_0x334b81={'hkkVw':'[REDACTED]','GvIIe':function(_0x143f52,_0xcaea4d){return _0x143f52===_0xcaea4d;},'SLQuP':'[REDACTED:token]','bomcc':function(_0x92c732,_0xabba4b){return _0x92c732===_0xabba4b;}};if(!_0x503c1c||_0x334b81['bomcc'](_0x503c1c[_0x4ca3d3(0xf4)],0x0))return _0x503c1c;const _0x1867cd=_0x37cc21['toLowerCase'](),_0x4d8b82=_0x1867cd['match'](/\(([^)]+)\)\s*values/i);let _0x50764c=[];_0x4d8b82&&(_0x50764c=_0x4d8b82[0x1][_0x4ca3d3(0xee)](',')['map'](_0x296338=>_0x296338[_0x4ca3d3(0xa7)]()[_0x4ca3d3(0xe0)]()));const _0x41b3c9=_0x1867cd['match'](/set\s+(.+?)(?:\s+where|$)/i);if(_0x41b3c9){const _0x2a6a22=_0x41b3c9[0x1],_0x579890=_0x2a6a22['match'](/(\w+)\s*=/g);_0x579890&&(_0x50764c=_0x579890[_0x4ca3d3(0x72)](_0x3c851c=>_0x3c851c['replace'](/\s*=/,'')['trim']()['toLowerCase']()));}return _0x503c1c['map']((_0x5740f6,_0x5d77fd)=>{const _0x55635=_0x4ca3d3;if(_0x50764c[_0x5d77fd]){const _0x2a4983=_0x50764c[_0x5d77fd],_0x32cfd9=SENSITIVE_PARAM_PATTERNS['some'](_0x3b95aa=>_0x2a4983[_0x55635(0xdb)](_0x3b95aa));if(_0x32cfd9)return _0x334b81[_0x55635(0x104)];}if(_0x334b81[_0x55635(0xfd)](typeof _0x5740f6,'string')&&_0x5740f6['length']>0x20){if(/^[a-zA-Z0-9+/=_.-]+$/[_0x55635(0xde)](_0x5740f6)&&_0x5740f6['includes']('.'))return _0x334b81['SLQuP'];if(/^[a-fA-F0-9]{32,}$/['test'](_0x5740f6))return'[REDACTED:hash]';}return _0x5740f6;});},parseQueryMetadata=_0x32e20a=>{const _0x33ac1a=a0_0x4f6fe1,_0x10f92a={'CIsaw':_0x33ac1a(0xb5),'eRvfx':'SELECT','nMxEA':'UPDATE','KhPxH':_0x33ac1a(0x7d),'hXnCa':_0x33ac1a(0xa9),'QmrPx':'START\x20TRANSACTION','GYvlV':'ROLLBACK','RxcSV':'TRANSACTION_ROLLBACK'},_0x2dc49c=_0x32e20a['trim'](),_0x3fc8e9=_0x2dc49c[_0x33ac1a(0xc0)]();let _0x5c6f09=_0x10f92a['CIsaw'],_0x1c6604=null;if(_0x3fc8e9['startsWith'](_0x10f92a[_0x33ac1a(0x117)])){_0x5c6f09=_0x10f92a[_0x33ac1a(0x117)];const _0x59ccd7=_0x2dc49c['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x1c6604=_0x59ccd7?_0x59ccd7[0x1]:null;}else{if(_0x3fc8e9[_0x33ac1a(0x121)]('INSERT')){_0x5c6f09='INSERT';const _0x17aca1=_0x2dc49c[_0x33ac1a(0x88)](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x1c6604=_0x17aca1?_0x17aca1[0x1]:null;}else{if(_0x3fc8e9[_0x33ac1a(0x121)]('UPDATE')){_0x5c6f09=_0x10f92a[_0x33ac1a(0x113)];const _0x2af00d=_0x2dc49c[_0x33ac1a(0x88)](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x1c6604=_0x2af00d?_0x2af00d[0x1]:null;}else{if(_0x3fc8e9['startsWith'](_0x10f92a[_0x33ac1a(0x7e)])){_0x5c6f09=_0x33ac1a(0x7d);const _0x230021=_0x2dc49c['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x1c6604=_0x230021?_0x230021[0x1]:null;}else{if(_0x3fc8e9[_0x33ac1a(0x121)](_0x10f92a[_0x33ac1a(0x99)])||_0x3fc8e9['startsWith'](_0x10f92a['QmrPx']))_0x5c6f09='TRANSACTION_BEGIN';else{if(_0x3fc8e9['startsWith'](_0x33ac1a(0x8a)))_0x5c6f09='TRANSACTION_COMMIT';else{if(_0x3fc8e9['startsWith'](_0x10f92a['GYvlV']))_0x5c6f09=_0x10f92a[_0x33ac1a(0xd0)];else{if(_0x3fc8e9[_0x33ac1a(0x121)]('CREATE'))_0x5c6f09='DDL_CREATE';else{if(_0x3fc8e9['startsWith'](_0x33ac1a(0xc5)))_0x5c6f09='DDL_ALTER';else _0x3fc8e9[_0x33ac1a(0x121)]('DROP')&&(_0x5c6f09='DDL_DROP');}}}}}}}}return{'type':_0x5c6f09,'table':_0x1c6604};},startQueryTimer=()=>{const _0x22d3dc={'RYUbK':function(_0x58674a,_0x315976){return _0x58674a/_0x315976;}},_0x2725b0=process['hrtime']();return()=>{const [_0x157191,_0x5c598f]=process['hrtime'](_0x2725b0);return parseFloat((_0x157191*0x3e8+_0x22d3dc['RYUbK'](_0x5c598f,0xf4240))['toFixed'](0x2));};},logQuery=(_0x5df14f,_0x347b3b=[],_0xf73ec0={})=>{const _0x589bcb=a0_0x4f6fe1,_0x81366e={'GCRtk':'db_query','epIwl':'postgresql','BPNYY':function(_0x53fbca,_0x4fe4a6){return _0x53fbca>_0x4fe4a6;},'NIoXN':function(_0x24dd68,_0xd3207e){return _0x24dd68!==_0xd3207e;},'TmHKq':function(_0x1a9f24,_0x137a32){return _0x1a9f24>_0x137a32;},'UlFSF':function(_0x1df141,_0x3d79d0){return _0x1df141!==_0x3d79d0;},'YWDwR':'unknown','tCWWW':'debug','haDwZ':'\x20[SLOW]','tJZQx':_0x589bcb(0x127)};if(!sqlLogEnabled){logger[_0x589bcb(0xca)]({'event':_0x81366e[_0x589bcb(0x91)],'query':_0x5df14f[_0x589bcb(0xec)](0x0,0xc8),'paramCount':_0x347b3b[_0x589bcb(0xf4)]},'DB\x20Query');return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType=_0x81366e[_0x589bcb(0xf1)]}=_0xf73ec0,{type:_0x5f4e23,table:_0x47ed3a}=parseQueryMetadata(_0x5df14f),_0x14b547={'event':_0x589bcb(0x76),'queryType':_0x5f4e23,'table':_0x47ed3a,'query':_0x5df14f,'paramCount':_0x347b3b[_0x589bcb(0xf4)],'dbType':dbType};sqlLogParams&&_0x81366e[_0x589bcb(0xf7)](_0x347b3b['length'],0x0)&&(_0x14b547['params']=redactSensitiveParams(_0x347b3b,_0x5df14f));_0x81366e['NIoXN'](duration,null)&&(_0x14b547[_0x589bcb(0xa8)]=duration,_0x14b547['isSlow']=_0x81366e[_0x589bcb(0x9f)](duration,sqlLogSlowThreshold));_0x81366e['UlFSF'](rowsAffected,null)&&(_0x14b547[_0x589bcb(0xb9)]=rowsAffected);const _0x11bb17=_0x47ed3a||_0x81366e['YWDwR'];let _0x462520='['+_0x5f4e23+']\x20'+_0x11bb17;_0x81366e[_0x589bcb(0xc4)](duration,null)&&(_0x462520+='\x20('+duration+'ms)');const _0x2faa95=_0x81366e[_0x589bcb(0xc4)](duration,null)&&_0x81366e[_0x589bcb(0x9f)](duration,sqlLogSlowThreshold);let _0x5b084f=_0x81366e['tCWWW'];if(_0x2faa95)_0x462520+=_0x81366e['haDwZ'],_0x5b084f='warn',logger['warn'](_0x14b547,_0x462520);else sqlLogLevel===_0x81366e['tJZQx']?(_0x5b084f=_0x81366e['tJZQx'],logger[_0x589bcb(0x127)](_0x14b547,_0x462520)):logger['debug'](_0x14b547,_0x462520);writeToFileLog({..._0x14b547,'level':_0x5b084f,'msg':_0x462520,'time':new Date()[_0x589bcb(0xea)]()},_0x5b084f);},logTransaction=(_0x419862,_0x3ae060)=>{const _0x2cd52b=a0_0x4f6fe1,_0x385df3={'QXrgq':_0x2cd52b(0x95),'uHrCS':function(_0x18bf86,_0x421625,_0x2a3a28){return _0x18bf86(_0x421625,_0x2a3a28);}},_0x165b19={'event':_0x385df3['QXrgq'],'status':_0x419862,'queryCount':_0x3ae060},_0x14bd83='Transaction\x20'+_0x419862;logger['debug'](_0x165b19,_0x14bd83),_0x385df3['uHrCS'](writeToFileLog,{..._0x165b19,'level':'debug','msg':_0x14bd83,'time':new Date()['toISOString']()},_0x2cd52b(0xca));},redactObject=_0x132487=>{const _0x37e0fd=a0_0x4f6fe1,_0x30dd9b={'bFoIw':_0x37e0fd(0xdf),'vEKdm':'pwd','ciOTT':_0x37e0fd(0x9a),'Tjnbj':_0x37e0fd(0x101),'VdNnG':'authorization','Gkbdx':'creditcard','OywfR':_0x37e0fd(0x122),'RfJWd':'refresh_token','QNEtN':'access_token','IKiLX':function(_0x310c58,_0x4a9603){return _0x310c58!==_0x4a9603;},'VvZib':function(_0x187ed4,_0x2e31c5){return _0x187ed4(_0x2e31c5);}};if(!_0x132487||typeof _0x132487!==_0x30dd9b[_0x37e0fd(0x118)])return _0x132487;const _0x2cff5a=[_0x37e0fd(0xfa),_0x37e0fd(0xae),_0x30dd9b[_0x37e0fd(0xb1)],_0x37e0fd(0x108),'secret',_0x30dd9b['ciOTT'],_0x30dd9b['Tjnbj'],_0x30dd9b[_0x37e0fd(0x120)],_0x30dd9b[_0x37e0fd(0x111)],'credit_card',_0x30dd9b['OywfR'],'ssn',_0x37e0fd(0x9d),'private_key','privatekey',_0x30dd9b[_0x37e0fd(0x115)],_0x30dd9b[_0x37e0fd(0xf9)]],_0x369ad3=Array[_0x37e0fd(0xb2)](_0x132487)?[..._0x132487]:{..._0x132487};for(const _0x46aac8 of Object['keys'](_0x369ad3)){const _0x5a8aea=_0x46aac8['toLowerCase']();if(_0x2cff5a[_0x37e0fd(0xe6)](_0x4f7673=>_0x5a8aea['includes'](_0x4f7673)))_0x369ad3[_0x46aac8]=_0x37e0fd(0x105);else typeof _0x369ad3[_0x46aac8]===_0x37e0fd(0xdf)&&_0x30dd9b['IKiLX'](_0x369ad3[_0x46aac8],null)&&(_0x369ad3[_0x46aac8]=_0x30dd9b[_0x37e0fd(0xe8)](redactObject,_0x369ad3[_0x46aac8]));}return _0x369ad3;},logError=(_0xb41f2d,_0x392fcf={},_0x2100eb=null)=>{const _0x1aaa42=a0_0x4f6fe1,_0x1788de={'IkPtD':_0x1aaa42(0xd5)},_0x47a2d9={'event':_0x1aaa42(0xd5),'errorName':_0xb41f2d['name']||'Error','errorMessage':_0xb41f2d[_0x1aaa42(0x81)],'errorCode':_0xb41f2d['code']||null,'stack':_0xb41f2d[_0x1aaa42(0x87)],..._0x392fcf},_0xf13a4c=_0x2100eb||_0x1aaa42(0x7c)+_0xb41f2d['message'];logger[_0x1aaa42(0xd5)](_0x47a2d9,_0xf13a4c),writeToFileLog({..._0x47a2d9,'level':_0x1788de['IkPtD'],'msg':_0xf13a4c,'time':new Date()['toISOString']()},_0x1aaa42(0xd5));},logFatalError=(_0x148cb2,_0x2c5cb1={},_0x57a408=null)=>{const _0x1b1d5b=a0_0x4f6fe1,_0x2fc2ab={'Kcvwo':'CRITICAL','ZwsMQ':function(_0x4cb09b,_0xd03cab,_0x2e17d3){return _0x4cb09b(_0xd03cab,_0x2e17d3);},'TjHyN':'fatal','vzPmz':_0x1b1d5b(0xd5)},_0x16b461={'event':_0x1b1d5b(0x114),'errorName':_0x148cb2[_0x1b1d5b(0x10a)]||_0x1b1d5b(0x9c),'errorMessage':_0x148cb2[_0x1b1d5b(0x81)],'errorCode':_0x148cb2['code']||null,'stack':_0x148cb2[_0x1b1d5b(0x87)],'severity':_0x2fc2ab['Kcvwo'],..._0x2c5cb1},_0x21bb07=_0x57a408||_0x1b1d5b(0xc7)+_0x148cb2['message'];logger['fatal'](_0x16b461,_0x21bb07),_0x2fc2ab[_0x1b1d5b(0xbd)](writeToFileLog,{..._0x16b461,'level':_0x2fc2ab['TjHyN'],'msg':_0x21bb07,'time':new Date()[_0x1b1d5b(0xea)]()},_0x2fc2ab[_0x1b1d5b(0x89)]);},logHttpError=(_0x330d01,_0x3e93f5,_0x245cf3={})=>{const _0x54a775=a0_0x4f6fe1,_0x21d394={'LeOxh':'http_error','LuOAq':_0x54a775(0xcd),'rhfby':function(_0x285eb4,_0x373955){return _0x285eb4(_0x373955);},'ghdoz':function(_0x3bf533,_0x508eaa,_0x3b2e0e){return _0x3bf533(_0x508eaa,_0x3b2e0e);},'SYvyv':function(_0x22a0ad,_0x5993ca){return _0x22a0ad>=_0x5993ca;},'AufmR':'warn'},_0x1d3f54={'event':_0x21d394[_0x54a775(0xdc)],'errorName':_0x330d01['name']||'Error','errorMessage':_0x330d01[_0x54a775(0x81)],'errorCode':_0x330d01[_0x54a775(0xd9)]||_0x330d01['statusCode']||0x1f4,'stack':_0x330d01['stack'],'method':_0x3e93f5?.['method'],'url':_0x3e93f5?.['url']||_0x3e93f5?.[_0x54a775(0xaf)],'path':_0x3e93f5?.[_0x54a775(0xa0)],'ip':_0x3e93f5?.['ip']||_0x3e93f5?.[_0x54a775(0xb3)]?.[_0x54a775(0x96)],'userAgent':_0x3e93f5?.[_0x54a775(0xed)]?.('user-agent'),'requestId':_0x3e93f5?.['id']||_0x3e93f5?.['headers']?.[_0x21d394[_0x54a775(0x82)]],'body':_0x3e93f5?.['body']?_0x21d394[_0x54a775(0xd1)](redactObject,_0x3e93f5['body']):undefined,'query':_0x3e93f5?.[_0x54a775(0xe1)],..._0x245cf3},_0x4d0db2=_0x330d01[_0x54a775(0xa3)]||_0x330d01[_0x54a775(0xc8)]||0x1f4,_0x3637f9=_0x54a775(0x106)+_0x4d0db2+':\x20'+_0x330d01['message'];_0x4d0db2>=0x1f4?logger['error'](_0x1d3f54,_0x3637f9):logger['warn'](_0x1d3f54,_0x3637f9),_0x21d394['ghdoz'](writeToFileLog,{..._0x1d3f54,'level':_0x4d0db2>=0x1f4?'error':_0x54a775(0x86),'msg':_0x3637f9,'time':new Date()[_0x54a775(0xea)]()},_0x21d394[_0x54a775(0xbe)](_0x4d0db2,0x1f4)?_0x54a775(0xd5):_0x21d394[_0x54a775(0x126)]);},logUncaughtError=(_0x9ab942,_0xd3e9d2)=>{const _0x2de371=a0_0x4f6fe1,_0x40bace={'xHVMy':_0x2de371(0x9c),'JKDIB':function(_0x11a821,_0x4a864d){return _0x11a821(_0x4a864d);},'xOKXA':function(_0x5bdc46,_0x3f4044,_0x4d0188){return _0x5bdc46(_0x3f4044,_0x4d0188);}},_0x5edbd6={'event':_0x9ab942,'errorName':_0xd3e9d2?.[_0x2de371(0x10a)]||_0x40bace[_0x2de371(0xef)],'errorMessage':_0xd3e9d2?.[_0x2de371(0x81)]||_0x40bace['JKDIB'](String,_0xd3e9d2),'errorCode':_0xd3e9d2?.['code']||null,'stack':_0xd3e9d2?.['stack'],'severity':'CRITICAL','processId':process[_0x2de371(0xe7)],'memoryUsage':process[_0x2de371(0xad)](),'uptime':process['uptime']()},_0x1be250='['+_0x9ab942[_0x2de371(0xc0)]()+']\x20'+(_0xd3e9d2?.['message']||_0xd3e9d2);logger[_0x2de371(0xbc)](_0x5edbd6,_0x1be250),_0x40bace['xOKXA'](writeToFileLog,{..._0x5edbd6,'level':'fatal','msg':_0x1be250,'time':new Date()[_0x2de371(0xea)]()},'error');},setupGlobalErrorHandlers=()=>{const _0x3c4a9e=a0_0x4f6fe1,_0x560b13={'ZGmOz':function(_0x357a8b,_0x2f259e,_0xb2cab0){return _0x357a8b(_0x2f259e,_0xb2cab0);},'XLwFb':_0x3c4a9e(0xa2),'IXkOs':function(_0x1c224a,_0x1902cb){return _0x1c224a(_0x1902cb);},'gTEmb':_0x3c4a9e(0x127)};process['on']('uncaughtException',_0x1c5218=>{const _0x4c5b4b=_0x3c4a9e;_0x560b13[_0x4c5b4b(0x123)](logUncaughtError,_0x560b13['XLwFb'],_0x1c5218),setTimeout(()=>{const _0x14714d=_0x4c5b4b;process[_0x14714d(0xeb)](0x1);},0x3e8);}),process['on']('unhandledRejection',(_0x574d01,_0x3cee39)=>{const _0x2a08dd=_0x3c4a9e,_0x299d3e=_0x574d01 instanceof Error?_0x574d01:new Error(_0x560b13['IXkOs'](String,_0x574d01));_0x560b13[_0x2a08dd(0x123)](logUncaughtError,_0x2a08dd(0x71),_0x299d3e);}),process['on'](_0x3c4a9e(0xa5),_0x2e8020=>{const _0x1a6024=_0x3c4a9e;logger['warn']({'event':_0x1a6024(0xe9),'name':_0x2e8020['name'],'message':_0x2e8020['message'],'stack':_0x2e8020['stack']},_0x1a6024(0x11b)+_0x2e8020[_0x1a6024(0x81)]);});const _0x2bf556={'event':'global_error_handlers_setup'},_0xc42b24='Global\x20error\x20handlers\x20initialized';logger[_0x3c4a9e(0x127)](_0x2bf556,_0xc42b24),_0x560b13['ZGmOz'](writeToFileLog,{..._0x2bf556,'level':_0x560b13['gTEmb'],'msg':_0xc42b24,'time':new Date()[_0x3c4a9e(0xea)]()},_0x560b13['gTEmb']);},createErrorHandlerMiddleware=()=>{const _0x5232ad=a0_0x4f6fe1,_0x1b7bac={'ZCllf':function(_0x2fe529,_0x210ba1,_0x4e2e5a){return _0x2fe529(_0x210ba1,_0x4e2e5a);},'gMtwh':function(_0x506549,_0xd2589f){return _0x506549>=_0xd2589f;},'wfdWQ':_0x5232ad(0xb8),'TgDVn':'x-request-id'};return(_0x285ef8,_0x425c9f,_0x2401a6,_0xa99df2)=>{const _0x4617a3=_0x5232ad;_0x1b7bac[_0x4617a3(0x8f)](logHttpError,_0x285ef8,_0x425c9f);const _0x5c65fc=_0x285ef8['statusCode']||_0x285ef8[_0x4617a3(0xc8)]||0x1f4;_0x2401a6[_0x4617a3(0xc8)](_0x5c65fc)['json']({'success':![],'error':_0x1b7bac['gMtwh'](_0x5c65fc,0x1f4)?_0x1b7bac[_0x4617a3(0x102)]:_0x285ef8[_0x4617a3(0x81)],'requestId':_0x425c9f['id']||_0x425c9f['headers']?.[_0x1b7bac[_0x4617a3(0x79)]]||null});};};module['exports']={'logger':logger,'createRequestLogger':createRequestLogger,'logServerStart':logServerStart,'logServerReady':logServerReady,'logProjectLoaded':logProjectLoaded,'logEndpointRegistered':logEndpointRegistered,'logDatabaseConfig':logDatabaseConfig,'logRequest':logRequest,'logQuery':logQuery,'logTransaction':logTransaction,'startQueryTimer':startQueryTimer,'parseQueryMetadata':parseQueryMetadata,'redactSensitiveParams':redactSensitiveParams,'initFileLogging':initFileLogging,'logError':logError,'logFatalError':logFatalError,'logHttpError':logHttpError,'logUncaughtError':logUncaughtError,'setupGlobalErrorHandlers':setupGlobalErrorHandlers,'createErrorHandlerMiddleware':createErrorHandlerMiddleware,'redactObject':redactObject,'SQL_LOG_CONFIG':{'enabled':sqlLogEnabled,'level':sqlLogLevel,'logParams':sqlLogParams,'slowThreshold':sqlLogSlowThreshold},'FILE_LOG_CONFIG':{'enabled':logToFile,'directory':logDir,'serviceName':serviceName}};
1
+ const a0_0x19b1d1=a0_0x51d1;(function(_0x1865a8,_0x1866c6){const _0x34d0de=a0_0x51d1,_0x41db5f=_0x1865a8();while(!![]){try{const _0x1b37dd=-parseInt(_0x34d0de(0x130))/0x1*(parseInt(_0x34d0de(0x132))/0x2)+-parseInt(_0x34d0de(0x90))/0x3+-parseInt(_0x34d0de(0xc4))/0x4+-parseInt(_0x34d0de(0xb7))/0x5+-parseInt(_0x34d0de(0x9b))/0x6+-parseInt(_0x34d0de(0x116))/0x7+parseInt(_0x34d0de(0x86))/0x8;if(_0x1b37dd===_0x1866c6)break;else _0x41db5f['push'](_0x41db5f['shift']());}catch(_0x268521){_0x41db5f['push'](_0x41db5f['shift']());}}}(a0_0x4eb2,0xd9449));const pino=require(a0_0x19b1d1(0xae)),fs=require('fs'),path=require('path');function a0_0x4eb2(){const _0x414407=['sw50zxjUywWGC2vYDMvYigvYCM9Y','y3jLzgvUDgLHBa','r05ICem','D3fVqMq','Dg9ju09tDhjPBMC','De5uv3i','ntvrEMzeEMi','zfH0uLC','mtmWodjHyKrit1u','C3rKvgLTzuz1BMn0Aw9UCW','AgvHBhrOq2HLy2S','BwfW','y3jLzgL0y2fYza','C3fSx3f1zxj5','zw52AxjVBM1LBNq','D0voruC','yKjOzMG','z2XVyMfSx2vYCM9Yx2HHBMrSzxjZx3nLDhvW','ChjVzhvJDgLVBG','DLfct20','sePLvNO','zxjY','Dg9mB3DLCKnHC2u','ChzXvhq','q09ntuLu','ndm2mJm3ndrIA0f4Cuq','sMXRBuS','y3jLyxrLv3jPDgvtDhjLyw0','sfruuca','r2XVyMfSigvYCM9YigHHBMrSzxjZigLUAxrPywXPEMvK','C3rYAw5N','Bwv0Ag9K','zxjYB3i','ENH4qKG','BwvTB3j5vxnHz2u','mJu3ode0rgjPzgLZ','zMf0ywW','y3jLzgvUDgLHBhm','zgjFDhjHBNnHy3rPB24','DfrrtwK','CxvLCNK','lI9SB2DZ','rKPtB1i','Aw5MBZPIBhvLlhDHCM46EwvSBg93lgvYCM9YoNjLzcXKzwj1zZPNCMf5','CMvZDgzVCMDL','zgv2zwXVCg1LBNq','nJy5ntm2ngnVDuH2tq','qunusvzf','w1jfrefdvevexq','AurvsuO','ywvLrw4','Dg9vChbLCKnHC2u','Aw5MBW','vfjbtLnbq1rjt05FuK9mtejbq0S','quHmsgy','yxbPs2v5','D3jPDgu','vfjbtLnbq1rjt05FqKvhsu4','CgfKrw5K','ENP0yxe','te5lvNm','ANnVBG','tfDRse0','D2fYBG','CgLKlgHVC3rUyw1LlhnLCNzPy2uSDMvYC2LVBIXLBNySzxzLBNqSBw9KDwXLlhbVCNqSy29UzMLNlgfWAuTLEuvUywjSzwqSCgf0AcX3B3jRAw5NrgLYlgLZugTNlgLZtM9KzvnJCMLWDcXMAwXLlgvTywLSlhr5CguSy29YCYXSB2DNAw5NlgfWAuTLEsXJB3vUDcXLBMrWB2LUDcXYB3v0zq','CgLUBW','wvLtyMS','uwPcqMS','u1rbuLqGvfjbtLnbq1rjt04','ig9UihbVCNqG','yxbPx2TLEq','rejFueftu1DpuKq','Cg9YDa','C3rHCNrZv2L0Aa','nZu1otC1nuXpyxvqDq','zu5RCfy','zurPtLi','rermx0rst1a','C3nU','Dg9Rzw4','y2HPBgq','zxjYB3iUBg9N','rMfPBgvKihrVignYzwf0zsbSB2CGC3rYzwfTCZO','AM9PBG','zMfSC2u','CM9wzfO','CgLK','mZy4mtK0nfHHuNL6tq','y29UBMvJDgLVBG','Ahr0Cf9LCNjVCG','u1fmx0Xpr19ftKfcteve','qKHiwfi','C3rKu2vYAwfSAxPLCNm','Ec1Yzxf1zxn0lwLK','Ahj0Aw1L','q1jfqvrf','yxbPA2v5','BwvZC2fNzq','DNnTu2C','CgLU','B1DVwMK','C1HTv3i','ifTtte9xxq','D2LfBNO','zgvIDwC','tK9erv9ftLy','B3vLBxq','zw52','te9hx0rjuG','yMfZzvvYBa','C3rYAw5NAwz5','Bwf0y2G','t2DbD1G','AM1js3K','CgfZC3DK','BgvUz3rO','rxjYB3i','u1fmx0Xpr19tte9xx1riuKvtse9mra','CMvTB3rLqwrKCMvZCW','C2vYDMLJzuLUzM8','rgf0ywjHC2u6ia','B2jQzwn0','ww9xDhy','zgf0ywjHC2vFy29UzMLN','q1jjveLdquW','icbizwfSDgG6ia','u1LtoKHioK1noNnZ','BMXzEg4','C3bSAxq','uK9mtejbq0S','Aw5JBhvKzxm','DhLWzq','vfjbtLnbq1rjt05Fq09ntuLu','C3rHDhvZ','DMj0Dxm','z2v0sgvHzgvYCW','qKvhsu4','CgjzzNK','CersCvG','AhnTrgi','C3rHDhvZq29Kzq','yxv0Ag9YAxPHDgLVBG','iokvKqRILzRILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILz0','CgfZC3DVCMq','rgvMyxvSDa','wxz1rMe','iokvKqRILzeGifbYB2PLy3qGicaGidOG','DgvZDa','Ag9ZDa','sfrYuuO','r1Dgshy','t1bLB1i','Dw5JyxvNAhrfEgnLChrPB24','ExvVq2G','E21Zz30','rwTgu0G','y29Kzq','iokvKqRILzeGienVBMzPzYaGicaGidOG','C3rHy2S','y3jLzgL0x2nHCMq','tfPTuMK','ChDK','tLDYA1e','C29Tzq','iokvKqRILzeGifbVCNqGicaGicaGidOG','D2fYBMLUzW','wgrzquq','CMvMCMvZAf90B2TLBG','ywnJzxnZx3rVA2vU','mZK4mZeWnwXwrMXOwa','CM93C0fMzMvJDgvK','C2vJCMv0','wfPjrNC','icbjBMzVoIaGia','zMf0ywXFzxjYB3i','AxntBg93','yM9KEq','q0PSBLK','Dxb0Aw1L','Dw5Oyw5KBgvKuMvQzwn0Aw9U','BLPjB3m','y29UzMLNrMLSzq','Cgf0Aa','tI9b','C3vIC3rYAw5N','qKXIvgq','DxnLCG','z2v0','B3rW'];a0_0x4eb2=function(){return _0x414407;};return a0_0x4eb2();}let logToFile=![],logDir='./logs',serviceName='restforge',sqlLogEnabled=![],sqlLogLevel=a0_0x19b1d1(0xd5),sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;function a0_0x51d1(_0x1a17cf,_0x311d12){_0x1a17cf=_0x1a17cf-0x79;const _0x4eb2d0=a0_0x4eb2();let _0x51d112=_0x4eb2d0[_0x1a17cf];if(a0_0x51d1['Wesjmx']===undefined){var _0x55334c=function(_0x55ef19){const _0x355f64='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3d0e0b='',_0x577043='';for(let _0x41c355=0x0,_0x5348a1,_0x51b80f,_0x2a9346=0x0;_0x51b80f=_0x55ef19['charAt'](_0x2a9346++);~_0x51b80f&&(_0x5348a1=_0x41c355%0x4?_0x5348a1*0x40+_0x51b80f:_0x51b80f,_0x41c355++%0x4)?_0x3d0e0b+=String['fromCharCode'](0xff&_0x5348a1>>(-0x2*_0x41c355&0x6)):0x0){_0x51b80f=_0x355f64['indexOf'](_0x51b80f);}for(let _0x323749=0x0,_0x1ce412=_0x3d0e0b['length'];_0x323749<_0x1ce412;_0x323749++){_0x577043+='%'+('00'+_0x3d0e0b['charCodeAt'](_0x323749)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x577043);};a0_0x51d1['aVzIiq']=_0x55334c,a0_0x51d1['yABEdm']={},a0_0x51d1['Wesjmx']=!![];}const _0x246ee4=_0x4eb2d0[0x0],_0x58cf36=_0x1a17cf+_0x246ee4,_0x35827a=a0_0x51d1['yABEdm'][_0x58cf36];return!_0x35827a?(_0x51d112=a0_0x51d1['aVzIiq'](_0x51d112),a0_0x51d1['yABEdm'][_0x58cf36]=_0x51d112):_0x51d112=_0x35827a,_0x51d112;}const prettyPrintOptions={'colorize':!![],'translateTime':a0_0x19b1d1(0xeb),'ignore':a0_0x19b1d1(0xad),'singleLine':![],'levelFirst':!![],'messageFormat':a0_0x19b1d1(0x107),'customColors':a0_0x19b1d1(0x98),'hideObject':!![]},isDevelopment=process['env']['NODE_ENV']!==a0_0x19b1d1(0x7f),logLevel=process['env']['LOG_LEVEL']||a0_0x19b1d1(0xa1);let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':'pino-pretty','options':prettyPrintOptions}:undefined,'base':{'service':'restforge','version':process[a0_0x19b1d1(0xd8)]['APP_VERSION']||'1.0.5','env':process['env'][a0_0x19b1d1(0xd6)]||a0_0x19b1d1(0x9a)},'timestamp':pino[a0_0x19b1d1(0x133)]['isoTime'],'redact':{'paths':['req.headers.authorization','req.headers[\x22x-api-key\x22]',a0_0x19b1d1(0xfc),a0_0x19b1d1(0xbc),'apiKey',a0_0x19b1d1(0xb4),'JWT_SECRET'],'censor':'[REDACTED]'},'serializers':{'req':_0x2d2111=>({'id':_0x2d2111['id'],'method':_0x2d2111[a0_0x19b1d1(0x8c)],'url':_0x2d2111['url'],'path':_0x2d2111['path'],'remoteAddress':_0x2d2111['ip']||_0x2d2111[a0_0x19b1d1(0xc5)]?.['remoteAddress']}),'res':_0x474625=>({'statusCode':_0x474625['statusCode'],'headers':_0x474625[a0_0x19b1d1(0xf4)]?.()}),'err':pino[a0_0x19b1d1(0xc9)][a0_0x19b1d1(0x82)]}});function initFileLogging(){const _0x42c9ee=a0_0x19b1d1,_0x5e5865={'JlkmK':function(_0x5a32e1,_0x498e8e){return _0x5a32e1===_0x498e8e;},'dXtRW':_0x42c9ee(0x96),'HTrQJ':_0x42c9ee(0x99),'ZKJlS':_0x42c9ee(0xd5),'pDRqX':function(_0xbc9962,_0x4ea7f2){return _0xbc9962!==_0x4ea7f2;},'XdYAD':_0x42c9ee(0xc1),'BxrBI':function(_0x25c57a,_0xcc4afb){return _0x25c57a(_0xcc4afb);},'jdjLB':'app.log','nmiGp':_0x42c9ee(0xbe),'dZHrt':'info'};if(fileLoggingInitialized)return;logToFile=_0x5e5865[_0x42c9ee(0x87)](process[_0x42c9ee(0xd8)]['LOG_TO_FILE'],'true'),logDir=process['env'][_0x42c9ee(0xd9)]||_0x5e5865[_0x42c9ee(0x131)],serviceName=process[_0x42c9ee(0xd8)]['SERVICE_NAME']||_0x5e5865[_0x42c9ee(0x102)],sqlLogEnabled=process[_0x42c9ee(0xd8)][_0x42c9ee(0xc7)]==='true',sqlLogLevel=process[_0x42c9ee(0xd8)]['SQL_LOG_LEVEL']||_0x5e5865['ZKJlS'],sqlLogParams=_0x5e5865[_0x42c9ee(0xf7)](process[_0x42c9ee(0xd8)]['SQL_LOG_PARAMS'],_0x5e5865[_0x42c9ee(0x113)]),sqlLogSlowThreshold=_0x5e5865['BxrBI'](parseInt,process['env'][_0x42c9ee(0xe2)])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x53c9ef=path['resolve'](process['cwd'](),logDir);try{!fs['existsSync'](_0x53c9ef)&&fs['mkdirSync'](_0x53c9ef,{'recursive':!![]});}catch(_0x51b71c){console['error']('Failed\x20to\x20create\x20log\x20directory\x20'+_0x53c9ef+':',_0x51b71c[_0x42c9ee(0xce)]),fileLoggingInitialized=!![];return;}const _0x4ad95e=path['join'](_0x53c9ef,_0x5e5865['jdjLB']),_0x4378a8=path[_0x42c9ee(0xc0)](_0x53c9ef,_0x5e5865['nmiGp']);try{appLogStream=fs[_0x42c9ee(0x88)](_0x4ad95e,{'flags':'a'}),errorLogStream=fs[_0x42c9ee(0x88)](_0x4378a8,{'flags':'a'}),fileLoggingInitialized=!![];const _0x20f603={'event':'file_logging_enabled','logDir':_0x53c9ef,'files':['app.log','error.log']},_0x290a3d='File\x20logging\x20enabled:\x20'+_0x53c9ef;logger[_0x42c9ee(0xa1)](_0x20f603,_0x290a3d),writeToFileLog({..._0x20f603,'level':_0x5e5865['dZHrt'],'msg':_0x290a3d,'time':new Date()[_0x42c9ee(0x12e)]()},_0x5e5865['dZHrt']);}catch(_0x35a68a){console[_0x42c9ee(0x8d)](_0x42c9ee(0xbf),_0x35a68a['message']),fileLoggingInitialized=!![];}}function writeToFileLog(_0x5b8ee3,_0x57975e){const _0x4ac825=a0_0x19b1d1,_0x3e9dfe={'xolds':function(_0x12d774,_0x426891){return _0x12d774||_0x426891;},'LNKVs':function(_0x212d28,_0x162808){return _0x212d28+_0x162808;},'SIFyp':function(_0x24095f,_0x26ba89){return _0x24095f===_0x26ba89;},'cOObv':_0x4ac825(0x91)};if(_0x3e9dfe['xolds'](!logToFile,!appLogStream))return;const _0x21959f={'service':serviceName,..._0x5b8ee3},_0x13d8ea=_0x3e9dfe[_0x4ac825(0xa9)](JSON[_0x4ac825(0xdb)](_0x21959f),'\x0a');appLogStream[_0x4ac825(0xa5)](_0x13d8ea),(_0x57975e==='error'||_0x3e9dfe['SIFyp'](_0x57975e,_0x3e9dfe['cOObv']))&&(errorLogStream&&errorLogStream[_0x4ac825(0xa5)](_0x13d8ea));}const createRequestLogger=(_0x51e582={})=>{const _0x27561c=a0_0x19b1d1;return logger[_0x27561c(0xbd)](_0x51e582);},logServerStart=_0x375a38=>{const _0x40c0ea=a0_0x19b1d1,_0x37fdaf={'FJSoR':'Node.js','LWkHM':function(_0x3bb45f,_0x1d7871){return _0x3bb45f(_0x1d7871);},'ZXDKZ':_0x40c0ea(0x9c),'qfiWy':'NOT\x20ACTIVE'},_0x5463c5='\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'+(_0x375a38[_0x40c0ea(0x7b)]||_0x37fdaf[_0x40c0ea(0x97)])[_0x40c0ea(0xa7)](0x26)+_0x40c0ea(0xff)+(_0x375a38['project']||_0x40c0ea(0x124))['padEnd'](0x26)+_0x40c0ea(0x111)+_0x37fdaf[_0x40c0ea(0xab)](String,_0x375a38[_0x40c0ea(0xb5)]||0xbb8)['padEnd'](0x26)+_0x40c0ea(0x10a)+(_0x375a38[_0x40c0ea(0x122)]||_0x40c0ea(0xfd))['padEnd'](0x26)+'\x20║\x0a║\x20\x20API\x20Key\x20\x20\x20\x20\x20:\x20'+(_0x375a38[_0x40c0ea(0xa4)]?_0x37fdaf['ZXDKZ']:_0x37fdaf['qfiWy'])[_0x40c0ea(0xa7)](0x26)+_0x40c0ea(0xfb);console['log'](_0x5463c5);const _0x427bc9={'event':'server_starting','project':_0x375a38['project'],'port':_0x375a38['port'],'config':_0x375a38[_0x40c0ea(0x122)],'apiKeyEnabled':!!_0x375a38['apiKey']};logger[_0x40c0ea(0xa1)](_0x427bc9),writeToFileLog({..._0x427bc9,'level':'info','msg':'Server\x20starting:\x20'+_0x375a38['project']+_0x40c0ea(0xb2)+_0x375a38['port'],'time':new Date()['toISOString']()},'info');},logServerReady=_0x261f8b=>{const _0x174be8=a0_0x19b1d1,_0x3eb27c={'sXmWr':'info'},_0x30b62d={'event':'server_ready','port':_0x261f8b['port'],'module':_0x261f8b['module'],'healthCheck':_0x261f8b[_0x174be8(0x134)],'serviceInfo':_0x261f8b[_0x174be8(0xe4)],'baseUrl':_0x261f8b['baseUrl']},_0x1a5ab8='[OK]\x20Server\x20ready\x20on\x20port\x20'+_0x261f8b['port'];logger['info'](_0x30b62d,_0x1a5ab8),writeToFileLog({..._0x30b62d,'level':'info','msg':_0x1a5ab8,'time':new Date()[_0x174be8(0x12e)]()},_0x3eb27c[_0x174be8(0xd2)]),_0x261f8b[_0x174be8(0x134)]&&logger['info'](_0x174be8(0xea)+_0x261f8b[_0x174be8(0x134)]),_0x261f8b[_0x174be8(0xe4)]&&logger['info'](_0x174be8(0x11a)+_0x261f8b['serviceInfo']),_0x261f8b[_0x174be8(0xda)]&&logger['info']('\x20\x20URL:\x20\x20\x20\x20'+_0x261f8b['baseUrl']);},logProjectLoaded=(_0x44d4ea,_0x51cee9)=>{const _0x2c9912=a0_0x19b1d1,_0x4c4712={'DEFIM':function(_0x38fa3a,_0xd4e6d7,_0xa98a37){return _0x38fa3a(_0xd4e6d7,_0xa98a37);},'hsmDb':'info'},_0x3ecce6={'event':'project_loaded','project':_0x44d4ea,'path':_0x51cee9},_0x2a49b7='[OK]\x20Project\x20loaded:\x20'+_0x44d4ea;logger[_0x2c9912(0xa1)](_0x3ecce6,_0x2a49b7),_0x4c4712['DEFIM'](writeToFileLog,{..._0x3ecce6,'level':_0x2c9912(0xa1),'msg':_0x2a49b7,'time':new Date()['toISOString']()},_0x4c4712[_0x2c9912(0xf8)]);},logEndpointRegistered=(_0x2de4c2,_0x9c4fac)=>{const _0x44cc48=a0_0x19b1d1,_0x511721={'nlYxn':'endpoint_registered','BLbTd':function(_0x394cc7,_0x2bb64a,_0x43645){return _0x394cc7(_0x2bb64a,_0x43645);}},_0x4b9b93={'event':_0x511721[_0x44cc48(0xec)],'endpoint':_0x2de4c2,'route':_0x9c4fac},_0x229ad9='\x20\x20→\x20'+_0x2de4c2+':\x20'+_0x9c4fac;logger['debug'](_0x4b9b93,_0x229ad9),_0x511721[_0x44cc48(0x126)](writeToFileLog,{..._0x4b9b93,'level':'debug','msg':_0x229ad9,'time':new Date()[_0x44cc48(0x12e)]()},'debug');},logDatabaseConfig=_0x124b1b=>{const _0x2f4ce3=a0_0x19b1d1,_0x548d38={'ZUVik':_0x2f4ce3(0xd5)},_0x494505={'event':_0x2f4ce3(0xe8),'host':_0x124b1b['host'],'port':_0x124b1b[_0x2f4ce3(0xb5)],'database':_0x124b1b['database'],'type':_0x124b1b['type'],'user':_0x124b1b[_0x2f4ce3(0x127)]},_0x598e3b=_0x2f4ce3(0xe5)+_0x124b1b[_0x2f4ce3(0xf0)]+'://'+_0x124b1b[_0x2f4ce3(0x101)]+':'+_0x124b1b[_0x2f4ce3(0xb5)]+'/'+_0x124b1b['database'];logger[_0x2f4ce3(0xd5)](_0x494505,_0x598e3b),writeToFileLog({..._0x494505,'level':'debug','msg':_0x598e3b,'time':new Date()[_0x2f4ce3(0x12e)]()},_0x548d38['ZUVik']);},logRequest=(_0x40da87,_0x25383c,_0x292966)=>{const _0x330dcc=a0_0x19b1d1,_0x3c58b4={'OgAwX':'http_request','iDUIJ':function(_0x39273d,_0x23b711){return _0x39273d>=_0x23b711;},'CJlnY':function(_0x474398,_0x388cad){return _0x474398>=_0x388cad;},'qqyNo':'warn','qEcEX':function(_0x5b4e06,_0x169737,_0x4f90fe){return _0x5b4e06(_0x169737,_0x4f90fe);}},_0x3d4ae0={'event':_0x3c58b4[_0x330dcc(0xdd)],'method':_0x40da87['method'],'path':_0x40da87[_0x330dcc(0x123)],'statusCode':_0x25383c[_0x330dcc(0xf9)],'durationMs':_0x292966,'ip':_0x40da87['ip']},_0x27adcc=_0x40da87[_0x330dcc(0x8c)]+'\x20'+_0x40da87['path']+'\x20-\x20'+_0x25383c[_0x330dcc(0xf9)]+'\x20('+_0x292966+'ms)';let _0x1816b1=_0x330dcc(0xa1);if(_0x3c58b4[_0x330dcc(0x9e)](_0x25383c['statusCode'],0x1f4))_0x1816b1='error',logger[_0x330dcc(0x8d)](_0x3d4ae0,_0x27adcc);else _0x3c58b4[_0x330dcc(0x11e)](_0x25383c[_0x330dcc(0xf9)],0x190)?(_0x1816b1=_0x3c58b4['qqyNo'],logger['warn'](_0x3d4ae0,_0x27adcc)):logger['info'](_0x3d4ae0,_0x27adcc);_0x3c58b4['qEcEX'](writeToFileLog,{..._0x3d4ae0,'level':_0x1816b1,'msg':_0x27adcc,'time':new Date()['toISOString']()},_0x1816b1);},SENSITIVE_PARAM_PATTERNS=['password',a0_0x19b1d1(0xdf),'pwd','token','access_token',a0_0x19b1d1(0x114),'secret','api_secret',a0_0x19b1d1(0xcd),a0_0x19b1d1(0xb3),a0_0x19b1d1(0x12b),a0_0x19b1d1(0x92),a0_0x19b1d1(0xd0),a0_0x19b1d1(0x129),'private_key','privatekey'],redactSensitiveParams=(_0x26e1ce,_0x23a5db)=>{const _0x10fe8f=a0_0x19b1d1,_0x286ea7={'qWjrs':_0x10fe8f(0x9d),'LZmRi':function(_0xb9a70d,_0x87538d){return _0xb9a70d===_0x87538d;}};if(!_0x26e1ce||_0x286ea7[_0x10fe8f(0x10d)](_0x26e1ce['length'],0x0))return _0x26e1ce;const _0x236540=_0x23a5db[_0x10fe8f(0x83)](),_0x20ebee=_0x236540[_0x10fe8f(0xdc)](/\(([^)]+)\)\s*values/i);let _0x1aa066=[];_0x20ebee&&(_0x1aa066=_0x20ebee[0x1][_0x10fe8f(0xed)](',')[_0x10fe8f(0x135)](_0x1286c2=>_0x1286c2['trim']()[_0x10fe8f(0x83)]()));const _0x446f93=_0x236540['match'](/set\s+(.+?)(?:\s+where|$)/i);if(_0x446f93){const _0x494316=_0x446f93[0x1],_0x32e5c6=_0x494316['match'](/(\w+)\s*=/g);_0x32e5c6&&(_0x1aa066=_0x32e5c6['map'](_0x20e96f=>_0x20e96f['replace'](/\s*=/,'')['trim']()[_0x10fe8f(0x83)]()));}return _0x26e1ce['map']((_0x3da8ba,_0x3058e7)=>{const _0x3e66ef=_0x10fe8f;if(_0x1aa066[_0x3058e7]){const _0xffc3b1=_0x1aa066[_0x3058e7],_0x3a6d2c=SENSITIVE_PARAM_PATTERNS[_0x3e66ef(0x110)](_0x4ed38a=>_0xffc3b1[_0x3e66ef(0xef)](_0x4ed38a));if(_0x3a6d2c)return _0x286ea7['qWjrs'];}if(_0x286ea7['LZmRi'](typeof _0x3da8ba,_0x3e66ef(0x8b))&&_0x3da8ba[_0x3e66ef(0xe0)]>0x20){if(/^[a-zA-Z0-9+/=_.-]+$/['test'](_0x3da8ba)&&_0x3da8ba[_0x3e66ef(0xef)]('.'))return'[REDACTED:token]';if(/^[a-fA-F0-9]{32,}$/[_0x3e66ef(0x100)](_0x3da8ba))return'[REDACTED:hash]';}return _0x3da8ba;});},parseQueryMetadata=_0x50cf4a=>{const _0x195f78=a0_0x19b1d1,_0x5cd624={'wqoBd':'SELECT','LoXVk':'INSERT','ouemt':'UPDATE','ScfLW':'DELETE','wiEnz':_0x195f78(0x85),'bBhfh':_0x195f78(0xf1),'klTHh':_0x195f78(0xee),'YvuFa':_0x195f78(0xa2),'tTQMi':_0x195f78(0xcc),'zxxBH':'DDL_CREATE','eNkpV':'DDL_ALTER','OqjiT':_0x195f78(0xba)},_0x2554d9=_0x50cf4a['trim'](),_0x575aa0=_0x2554d9[_0x195f78(0xa0)]();let _0x261f54='UNKNOWN',_0x50ed61=null;if(_0x575aa0[_0x195f78(0xb6)]('SELECT')){_0x261f54=_0x5cd624[_0x195f78(0x12d)];const _0x55722b=_0x2554d9['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x50ed61=_0x55722b?_0x55722b[0x1]:null;}else{if(_0x575aa0[_0x195f78(0xb6)](_0x5cd624['LoXVk'])){_0x261f54='INSERT';const _0x39defc=_0x2554d9[_0x195f78(0xdc)](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x50ed61=_0x39defc?_0x39defc[0x1]:null;}else{if(_0x575aa0['startsWith'](_0x5cd624[_0x195f78(0xd7)])){_0x261f54='UPDATE';const _0x19e48f=_0x2554d9['match'](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x50ed61=_0x19e48f?_0x19e48f[0x1]:null;}else{if(_0x575aa0['startsWith'](_0x5cd624['ScfLW'])){_0x261f54='DELETE';const _0x324a7a=_0x2554d9['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x50ed61=_0x324a7a?_0x324a7a[0x1]:null;}else{if(_0x575aa0['startsWith'](_0x195f78(0xf5))||_0x575aa0['startsWith'](_0x195f78(0xb1)))_0x261f54=_0x195f78(0xa6);else{if(_0x575aa0['startsWith'](_0x5cd624[_0x195f78(0xd4)]))_0x261f54=_0x5cd624[_0x195f78(0x7d)];else{if(_0x575aa0[_0x195f78(0xb6)](_0x5cd624['klTHh']))_0x261f54=_0x5cd624[_0x195f78(0xfe)];else{if(_0x575aa0[_0x195f78(0xb6)](_0x5cd624[_0x195f78(0x94)]))_0x261f54=_0x5cd624[_0x195f78(0x8e)];else{if(_0x575aa0['startsWith']('ALTER'))_0x261f54=_0x5cd624[_0x195f78(0xb8)];else _0x575aa0['startsWith']('DROP')&&(_0x261f54=_0x5cd624['OqjiT']);}}}}}}}}return{'type':_0x261f54,'table':_0x50ed61};},startQueryTimer=()=>{const _0xb8013f=a0_0x19b1d1,_0x5cf008={'YoWtv':function(_0x5317a4,_0x142ea7){return _0x5317a4(_0x142ea7);},'boJEg':function(_0x51e38a,_0x493a86){return _0x51e38a/_0x493a86;}},_0x13d2f2=process[_0xb8013f(0xcb)]();return()=>{const _0x4ef5a6=_0xb8013f,[_0x4cf90e,_0x2310e0]=process[_0x4ef5a6(0xcb)](_0x13d2f2);return _0x5cf008[_0x4ef5a6(0xe7)](parseFloat,(_0x4cf90e*0x3e8+_0x5cf008['boJEg'](_0x2310e0,0xf4240))['toFixed'](0x2));};},logQuery=(_0x3ec1ff,_0x15ff1d=[],_0x3047f7={})=>{const _0x2eb3ce=a0_0x19b1d1,_0x5ba701={'XqhHU':'DB\x20Query','eDiNR':'postgresql','zztaq':function(_0x38a3d4,_0x2c2ca5){return _0x38a3d4(_0x2c2ca5);},'GWFHv':_0x2eb3ce(0x7a),'OCROA':function(_0xce6f2a,_0x1ecd43){return _0xce6f2a||_0x1ecd43;},'OPeoR':function(_0x5e2c61,_0x1966c5){return _0x5e2c61!==_0x1966c5;},'axImX':function(_0xd18db2,_0x8b83f6){return _0xd18db2>_0x8b83f6;},'tNTWr':_0x2eb3ce(0xd5),'EkFSH':_0x2eb3ce(0xd3),'QjBBk':'warn'};if(!sqlLogEnabled){logger['debug']({'event':'db_query','query':_0x3ec1ff[_0x2eb3ce(0x125)](0x0,0xc8),'paramCount':_0x15ff1d['length']},_0x5ba701['XqhHU']);return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType=_0x5ba701[_0x2eb3ce(0xb9)]}=_0x3047f7,{type:_0x113037,table:_0x24c97d}=_0x5ba701[_0x2eb3ce(0xa8)](parseQueryMetadata,_0x3ec1ff),_0x2eeda2={'event':_0x5ba701[_0x2eb3ce(0x103)],'queryType':_0x113037,'table':_0x24c97d,'query':_0x3ec1ff,'paramCount':_0x15ff1d['length'],'dbType':dbType};sqlLogParams&&_0x15ff1d[_0x2eb3ce(0xe0)]>0x0&&(_0x2eeda2['params']=redactSensitiveParams(_0x15ff1d,_0x3ec1ff));duration!==null&&(_0x2eeda2['durationMs']=duration,_0x2eeda2[_0x2eb3ce(0x11c)]=duration>sqlLogSlowThreshold);rowsAffected!==null&&(_0x2eeda2[_0x2eb3ce(0x117)]=rowsAffected);const _0x18f739=_0x5ba701['OCROA'](_0x24c97d,'unknown');let _0x2ce559='['+_0x113037+']\x20'+_0x18f739;_0x5ba701[_0x2eb3ce(0x104)](duration,null)&&(_0x2ce559+='\x20('+duration+'ms)');const _0x451cf1=duration!==null&&_0x5ba701['axImX'](duration,sqlLogSlowThreshold);let _0x9d7291=_0x5ba701[_0x2eb3ce(0x12f)];if(_0x451cf1)_0x2ce559+=_0x5ba701[_0x2eb3ce(0x108)],_0x9d7291=_0x5ba701[_0x2eb3ce(0xb0)],logger['warn'](_0x2eeda2,_0x2ce559);else sqlLogLevel===_0x2eb3ce(0xa1)?(_0x9d7291='info',logger[_0x2eb3ce(0xa1)](_0x2eeda2,_0x2ce559)):logger[_0x2eb3ce(0xd5)](_0x2eeda2,_0x2ce559);writeToFileLog({..._0x2eeda2,'level':_0x9d7291,'msg':_0x2ce559,'time':new Date()[_0x2eb3ce(0x12e)]()},_0x9d7291);},logTransaction=(_0xac80cc,_0x94a4d9)=>{const _0x3f18ed=a0_0x19b1d1,_0x5db9e0={'HJeVz':function(_0x477789,_0x239c13,_0xbbf36b){return _0x477789(_0x239c13,_0xbbf36b);}},_0x3b2931={'event':_0x3f18ed(0x93),'status':_0xac80cc,'queryCount':_0x94a4d9},_0x35afff='Transaction\x20'+_0xac80cc;logger['debug'](_0x3b2931,_0x35afff),_0x5db9e0[_0x3f18ed(0x81)](writeToFileLog,{..._0x3b2931,'level':'debug','msg':_0x35afff,'time':new Date()['toISOString']()},_0x3f18ed(0xd5));},redactObject=_0x283751=>{const _0x444ffa=a0_0x19b1d1,_0x292f10={'AHLHf':'password','FIgGK':_0x444ffa(0xdf),'gYhhk':_0x444ffa(0x10e),'vsmSg':'token','NWrkQ':_0x444ffa(0xb3),'qQGZv':_0x444ffa(0xfa),'YBaYw':_0x444ffa(0x10c),'vbtus':'cvv','kHxhz':'pin','IiuQz':'private_key','pvqTt':'privatekey','xEgZr':'[REDACTED]','ULxQC':function(_0x901a01,_0x5b9a18){return _0x901a01===_0x5b9a18;},'KEWPk':function(_0x143141,_0x5c85a4){return _0x143141!==_0x5c85a4;},'GNbpC':function(_0x20610c,_0x3f7b85){return _0x20610c(_0x3f7b85);}};if(!_0x283751||typeof _0x283751!=='object')return _0x283751;const _0x14ab64=[_0x292f10[_0x444ffa(0xa3)],_0x292f10['FIgGK'],_0x292f10['gYhhk'],_0x292f10[_0x444ffa(0xcf)],_0x444ffa(0x118),'apikey',_0x292f10[_0x444ffa(0x10f)],_0x292f10['qQGZv'],_0x444ffa(0x79),_0x292f10['YBaYw'],_0x292f10[_0x444ffa(0xf3)],_0x444ffa(0xbb),_0x292f10['kHxhz'],_0x292f10['IiuQz'],_0x292f10[_0x444ffa(0x84)],'refresh_token',_0x444ffa(0x115)],_0x22450e=Array['isArray'](_0x283751)?[..._0x283751]:{..._0x283751};for(const _0x1bf4b2 of Object['keys'](_0x22450e)){const _0x4a5458=_0x1bf4b2[_0x444ffa(0x83)]();if(_0x14ab64['some'](_0x238454=>_0x4a5458[_0x444ffa(0xef)](_0x238454)))_0x22450e[_0x1bf4b2]=_0x292f10['xEgZr'];else _0x292f10['ULxQC'](typeof _0x22450e[_0x1bf4b2],_0x444ffa(0xe6))&&_0x292f10['KEWPk'](_0x22450e[_0x1bf4b2],null)&&(_0x22450e[_0x1bf4b2]=_0x292f10[_0x444ffa(0x12c)](redactObject,_0x22450e[_0x1bf4b2]));}return _0x22450e;},logError=(_0x16e0eb,_0xe2a7a0={},_0x9c641a=null)=>{const _0x524eac=a0_0x19b1d1,_0x5c2db8={'ndnWX':'Error','pbYfy':function(_0x5ea5e7,_0x342916,_0x10cdb7){return _0x5ea5e7(_0x342916,_0x10cdb7);},'roVdZ':_0x524eac(0x8d)},_0x32eb70={'event':'error','errorName':_0x16e0eb['name']||_0x5c2db8['ndnWX'],'errorMessage':_0x16e0eb['message'],'errorCode':_0x16e0eb[_0x524eac(0x109)]||null,'stack':_0x16e0eb['stack'],..._0xe2a7a0},_0x315d74=_0x9c641a||'Error:\x20'+_0x16e0eb['message'];logger[_0x524eac(0x8d)](_0x32eb70,_0x315d74),_0x5c2db8[_0x524eac(0xf6)](writeToFileLog,{..._0x32eb70,'level':_0x5c2db8[_0x524eac(0xc2)],'msg':_0x315d74,'time':new Date()['toISOString']()},_0x5c2db8[_0x524eac(0xc2)]);},logFatalError=(_0x411a55,_0x15e6da={},_0x5c776f=null)=>{const _0x2a2c69=a0_0x19b1d1,_0x999628={'QeQLx':_0x2a2c69(0x11b),'oxzRj':_0x2a2c69(0xe9)},_0x43800d={'event':_0x999628['QeQLx'],'errorName':_0x411a55['name']||'Error','errorMessage':_0x411a55['message'],'errorCode':_0x411a55[_0x2a2c69(0x109)]||null,'stack':_0x411a55['stack'],'severity':_0x999628['oxzRj'],..._0x15e6da},_0x57efd9=_0x5c776f||'FATAL:\x20'+_0x411a55['message'];logger['fatal'](_0x43800d,_0x57efd9),writeToFileLog({..._0x43800d,'level':'fatal','msg':_0x57efd9,'time':new Date()[_0x2a2c69(0x12e)]()},'error');},logHttpError=(_0x1bbf2f,_0x3613aa,_0x193956={})=>{const _0x31fc90=a0_0x19b1d1,_0x2b8dce={'jmIKy':_0x31fc90(0xc6),'yuoCh':_0x31fc90(0xe1),'idawg':'user-agent','XZIFw':'x-request-id','wENEG':function(_0xa5b968,_0x33bff4){return _0xa5b968>=_0x33bff4;},'nZIos':function(_0x20f71c,_0x5eaa8f){return _0x20f71c>=_0x5eaa8f;},'oWoZi':_0x31fc90(0xac)},_0x1336e5={'event':_0x2b8dce[_0x31fc90(0xde)],'errorName':_0x1bbf2f['name']||_0x2b8dce[_0x31fc90(0x106)],'errorMessage':_0x1bbf2f['message'],'errorCode':_0x1bbf2f['code']||_0x1bbf2f[_0x31fc90(0xf9)]||0x1f4,'stack':_0x1bbf2f['stack'],'method':_0x3613aa?.['method'],'url':_0x3613aa?.['url']||_0x3613aa?.['originalUrl'],'path':_0x3613aa?.['path'],'ip':_0x3613aa?.['ip']||_0x3613aa?.['connection']?.[_0x31fc90(0xe3)],'userAgent':_0x3613aa?.[_0x31fc90(0x128)]?.(_0x2b8dce['idawg']),'requestId':_0x3613aa?.['id']||_0x3613aa?.['headers']?.[_0x2b8dce[_0x31fc90(0x119)]],'body':_0x3613aa?.['body']?redactObject(_0x3613aa[_0x31fc90(0x11d)]):undefined,'query':_0x3613aa?.[_0x31fc90(0x95)],..._0x193956},_0x562a19=_0x1bbf2f[_0x31fc90(0xf9)]||_0x1bbf2f[_0x31fc90(0xf2)]||0x1f4,_0x4cbc71=_0x31fc90(0x89)+_0x562a19+':\x20'+_0x1bbf2f['message'];_0x2b8dce[_0x31fc90(0x7c)](_0x562a19,0x1f4)?logger[_0x31fc90(0x8d)](_0x1336e5,_0x4cbc71):logger[_0x31fc90(0xac)](_0x1336e5,_0x4cbc71),writeToFileLog({..._0x1336e5,'level':_0x562a19>=0x1f4?_0x31fc90(0x8d):'warn','msg':_0x4cbc71,'time':new Date()['toISOString']()},_0x2b8dce[_0x31fc90(0x121)](_0x562a19,0x1f4)?_0x31fc90(0x8d):_0x2b8dce[_0x31fc90(0xd1)]);},logUncaughtError=(_0x2b2e8f,_0x42ca03)=>{const _0x18775b=a0_0x19b1d1,_0x3c87eb={'iGSRS':'Error','Pzwac':function(_0x3c4fab,_0x3723ca,_0x4608cd){return _0x3c4fab(_0x3723ca,_0x4608cd);},'eNTxO':'fatal'},_0x293b44={'event':_0x2b2e8f,'errorName':_0x42ca03?.['name']||_0x3c87eb['iGSRS'],'errorMessage':_0x42ca03?.[_0x18775b(0xce)]||String(_0x42ca03),'errorCode':_0x42ca03?.['code']||null,'stack':_0x42ca03?.[_0x18775b(0x10b)],'severity':_0x18775b(0xe9),'processId':process[_0x18775b(0xc3)],'memoryUsage':process[_0x18775b(0x8f)](),'uptime':process[_0x18775b(0x11f)]()},_0x525064='['+_0x2b2e8f[_0x18775b(0xa0)]()+']\x20'+(_0x42ca03?.[_0x18775b(0xce)]||_0x42ca03);logger['fatal'](_0x293b44,_0x525064),_0x3c87eb['Pzwac'](writeToFileLog,{..._0x293b44,'level':_0x3c87eb['eNTxO'],'msg':_0x525064,'time':new Date()['toISOString']()},'error');},setupGlobalErrorHandlers=()=>{const _0x132630=a0_0x19b1d1,_0x4bc960={'BHHXR':function(_0x334d06,_0x1ca987,_0x29e5f4){return _0x334d06(_0x1ca987,_0x29e5f4);},'fnmzL':function(_0x9dae01,_0x330164){return _0x9dae01 instanceof _0x330164;},'vQBOm':'unhandledRejection','HXtTq':'process_warning','VAywp':_0x132630(0x105),'aeeEn':_0x132630(0x7e),'YYSbk':function(_0x57d021,_0x49e0c1,_0x48a0e3){return _0x57d021(_0x49e0c1,_0x48a0e3);}};process['on'](_0x4bc960['VAywp'],_0x5cf3db=>{const _0x431633=_0x132630;_0x4bc960[_0x431633(0xc8)](logUncaughtError,_0x431633(0x105),_0x5cf3db),setTimeout(()=>{process['exit'](0x1);},0x3e8);}),process['on'](_0x132630(0x120),(_0x5f43f1,_0x121266)=>{const _0x460ae7=_0x132630,_0x561563=_0x4bc960['fnmzL'](_0x5f43f1,Error)?_0x5f43f1:new Error(String(_0x5f43f1));logUncaughtError(_0x4bc960[_0x460ae7(0x80)],_0x561563);}),process['on'](_0x132630(0x112),_0x1e8004=>{const _0x598e1f=_0x132630;logger[_0x598e1f(0xac)]({'event':_0x4bc960['HXtTq'],'name':_0x1e8004['name'],'message':_0x1e8004['message'],'stack':_0x1e8004[_0x598e1f(0x10b)]},'Process\x20Warning:\x20'+_0x1e8004[_0x598e1f(0xce)]);});const _0xce80a4={'event':_0x4bc960[_0x132630(0x9f)]},_0x4cdf09=_0x132630(0x8a);logger['info'](_0xce80a4,_0x4cdf09),_0x4bc960[_0x132630(0xaf)](writeToFileLog,{..._0xce80a4,'level':_0x132630(0xa1),'msg':_0x4cdf09,'time':new Date()['toISOString']()},'info');},createErrorHandlerMiddleware=()=>{return(_0x8a59a7,_0x58bc54,_0x208597,_0x3919ad)=>{const _0x328d96=a0_0x51d1;logHttpError(_0x8a59a7,_0x58bc54);const _0x2733=_0x8a59a7['statusCode']||_0x8a59a7[_0x328d96(0xf2)]||0x1f4;_0x208597[_0x328d96(0xf2)](_0x2733)[_0x328d96(0xaa)]({'success':![],'error':_0x2733>=0x1f4?_0x328d96(0x12a):_0x8a59a7[_0x328d96(0xce)],'requestId':_0x58bc54['id']||_0x58bc54['headers']?.[_0x328d96(0xca)]||null});};};module['exports']={'logger':logger,'createRequestLogger':createRequestLogger,'logServerStart':logServerStart,'logServerReady':logServerReady,'logProjectLoaded':logProjectLoaded,'logEndpointRegistered':logEndpointRegistered,'logDatabaseConfig':logDatabaseConfig,'logRequest':logRequest,'logQuery':logQuery,'logTransaction':logTransaction,'startQueryTimer':startQueryTimer,'parseQueryMetadata':parseQueryMetadata,'redactSensitiveParams':redactSensitiveParams,'initFileLogging':initFileLogging,'logError':logError,'logFatalError':logFatalError,'logHttpError':logHttpError,'logUncaughtError':logUncaughtError,'setupGlobalErrorHandlers':setupGlobalErrorHandlers,'createErrorHandlerMiddleware':createErrorHandlerMiddleware,'redactObject':redactObject,'SQL_LOG_CONFIG':{'enabled':sqlLogEnabled,'level':sqlLogLevel,'logParams':sqlLogParams,'slowThreshold':sqlLogSlowThreshold},'FILE_LOG_CONFIG':{'enabled':logToFile,'directory':logDir,'serviceName':serviceName}};
@@ -1 +1 @@
1
- const a0_0x3f940d=a0_0x4507;function a0_0x455a(){const _0x16673f=['y2XLyxjdywnOzq','lI4VlI4VCgf5Bg9Hza','uKLHt2y','ugf5Bg9HzcbUB3qGzM91BMq6ia','AgfZ','mti5mZG1ogjHsvzstG','mtGWnJy1nJbiy3rSrhm','CgfYC2u','ugf5Bg9HzcbSB2fKzwqGC3vJy2vZC2z1BgX5igj5ig5HBwu','zxjYB3i','Ahbhquq','r2TjEMq','rMfPBgvKihrVigXVywqGCgf5Bg9Hza','Cgf5Bg9HzdO','nde2otCYmfLirMrKDG','ndKWmtmYnxLUAeHwCW','DxrMoa','ywn0Aw9U','Aw5MBW','z2v0','zgvIDwC','Cgf5Bg9HzerPCG','zgf0yxrHyMXLC1f1zxj5','ndK3mJe0mhD4DwTbAG','zMLLBgroyw1L','tgncr3i','y2fJAgu','DgfIBgvoyw1L','vKjRuhm','vhv4BNq','Axnby3rPB25fBMfIBgvK','rhbzDMS','C2v0','CMvHzezPBgu','Cgf5Bg9Hzf9SB2fKzwq','nJmWmZq1oeLNCNPOzq','otaYmdKXqLb3rffT','Cgf5Bg9Hzf9SB2fKx2vYCM9Y','y29SDw1UrM9YBwf0CW','mwLhsNb3Ba','ugf5Bg9HzcbSB2fKzwqGC3vJy2vZC2z1BgX5'];a0_0x455a=function(){return _0x16673f;};return a0_0x455a();}(function(_0x31d2e2,_0x2fd0bd){const _0x435f48=a0_0x4507,_0x4e8264=_0x31d2e2();while(!![]){try{const _0x294f87=-parseInt(_0x435f48(0x18f))/0x1*(-parseInt(_0x435f48(0x196))/0x2)+parseInt(_0x435f48(0x18c))/0x3+parseInt(_0x435f48(0x19f))/0x4+parseInt(_0x435f48(0x1a0))/0x5+-parseInt(_0x435f48(0x17f))/0x6+parseInt(_0x435f48(0x18b))/0x7+-parseInt(_0x435f48(0x197))/0x8;if(_0x294f87===_0x2fd0bd)break;else _0x4e8264['push'](_0x4e8264['shift']());}catch(_0x5d3d47){_0x4e8264['push'](_0x4e8264['shift']());}}}(a0_0x455a,0xbf5bd));const fs=require('fs')['promises'],path=require('path'),{logger}=require('./logger');class PayloadLoader{constructor(){const _0x55b1ee=a0_0x4507;this['payloadDir']=path['join'](__dirname,_0x55b1ee(0x192)),this['cache']=new Map();}async['loadPayload'](_0xd2bd70,_0x181e8c){const _0x5b8b33=a0_0x4507,_0x8ff09e={'RIaOf':_0x5b8b33(0x18a),'GkIzd':_0x5b8b33(0x190),'yGybQ':_0x5b8b33(0x18d)},_0x349447=_0xd2bd70+':'+_0x181e8c;if(this['cache']['has'](_0x349447))return this[_0x5b8b33(0x182)][_0x5b8b33(0x1a4)](_0x349447);const _0x3e9cee=path['join'](this[_0x5b8b33(0x17d)],_0xd2bd70+'_'+_0x181e8c+'.json');try{const _0x5e3f6b=await fs[_0x5b8b33(0x189)](_0x3e9cee,_0x5b8b33(0x1a1)),_0x3aea18=JSON['parse'](_0x5e3f6b);return this['cache'][_0x5b8b33(0x188)](_0x349447,_0x3aea18),logger['debug']({'event':_0x8ff09e[_0x5b8b33(0x193)],'project':_0xd2bd70,'resource':_0x181e8c},_0x8ff09e[_0x5b8b33(0x19c)]),_0x3aea18;}catch(_0x2cc86e){logger[_0x5b8b33(0x19a)]({'event':_0x8ff09e['yGybQ'],'project':_0xd2bd70,'resource':_0x181e8c,'error':_0x2cc86e['message']},_0x5b8b33(0x19d));throw new Error(_0x5b8b33(0x194)+_0xd2bd70+'_'+_0x181e8c);}}async['loadPayloadByName'](_0x89a76b){const _0x5690ac=a0_0x4507,_0x31edb4={'LcBGr':_0x5690ac(0x18a),'DpYvk':_0x5690ac(0x199),'LuLQK':_0x5690ac(0x18d)},_0x36c353=_0x5690ac(0x19e)+_0x89a76b;if(this[_0x5690ac(0x182)][_0x5690ac(0x195)](_0x36c353))return this[_0x5690ac(0x182)][_0x5690ac(0x1a4)](_0x36c353);const _0x20e9c5=path['join'](this['payloadDir'],_0x89a76b+'.json');try{const _0x4b03cb=await fs['readFile'](_0x20e9c5,_0x5690ac(0x1a1)),_0xdc0255=JSON[_0x5690ac(0x198)](_0x4b03cb);return this[_0x5690ac(0x182)]['set'](_0x36c353,_0xdc0255),logger[_0x5690ac(0x1a5)]({'event':_0x31edb4[_0x5690ac(0x181)],'payloadName':_0x89a76b},_0x31edb4[_0x5690ac(0x187)]),_0xdc0255;}catch(_0x3e6c37){logger[_0x5690ac(0x19a)]({'event':_0x31edb4['LuLQK'],'payloadName':_0x89a76b,'error':_0x3e6c37['message']},'Failed\x20to\x20load\x20payload\x20by\x20name');throw new Error('Payload\x20not\x20found:\x20'+_0x89a76b);}}[a0_0x3f940d(0x186)](_0x5831e0,_0xe56389){const _0x2fa86e=a0_0x3f940d,_0x4a7ef5={'VBkPs':function(_0x22ef18,_0x18e2cf){return _0x22ef18===_0x18e2cf;}};return _0x5831e0['action']&&_0x4a7ef5[_0x2fa86e(0x184)](_0x5831e0[_0x2fa86e(0x1a2)][_0xe56389],!![]);}['getExportConfig'](_0x1aabcd){const _0x30b9d9=a0_0x3f940d;return{'columns':_0x1aabcd[_0x30b9d9(0x180)]||[],'filename':_0x1aabcd[_0x30b9d9(0x183)]['replace']('.','-')+'-export','datatablesQuery':_0x1aabcd[_0x30b9d9(0x17e)]||null,'columnFormats':_0x1aabcd[_0x30b9d9(0x18e)]||null,'fieldLabels':_0x1aabcd['fieldLabels']||null};}[a0_0x3f940d(0x191)](){const _0x4cdec6=a0_0x3f940d,_0x9d2830={'Tuxnt':'payload_cache_cleared','hpGAD':'Payload\x20cache\x20cleared'};this[_0x4cdec6(0x182)]['clear'](),logger[_0x4cdec6(0x1a3)]({'event':_0x9d2830[_0x4cdec6(0x185)]},_0x9d2830[_0x4cdec6(0x19b)]);}}function a0_0x4507(_0x5057c0,_0x37ce65){_0x5057c0=_0x5057c0-0x17d;const _0x455ac2=a0_0x455a();let _0x450721=_0x455ac2[_0x5057c0];if(a0_0x4507['EOzDup']===undefined){var _0x2e14a4=function(_0x45d34a){const _0x2aab6b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4031e7='',_0x4cd2f6='';for(let _0xfc9e9=0x0,_0x7a1847,_0x492c5c,_0x505cb1=0x0;_0x492c5c=_0x45d34a['charAt'](_0x505cb1++);~_0x492c5c&&(_0x7a1847=_0xfc9e9%0x4?_0x7a1847*0x40+_0x492c5c:_0x492c5c,_0xfc9e9++%0x4)?_0x4031e7+=String['fromCharCode'](0xff&_0x7a1847>>(-0x2*_0xfc9e9&0x6)):0x0){_0x492c5c=_0x2aab6b['indexOf'](_0x492c5c);}for(let _0xbfd3f4=0x0,_0x26dbe6=_0x4031e7['length'];_0xbfd3f4<_0x26dbe6;_0xbfd3f4++){_0x4cd2f6+='%'+('00'+_0x4031e7['charCodeAt'](_0xbfd3f4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4cd2f6);};a0_0x4507['hyWIWD']=_0x2e14a4,a0_0x4507['JGbeRE']={},a0_0x4507['EOzDup']=!![];}const _0x52e23a=_0x455ac2[0x0],_0x3f08ea=_0x5057c0+_0x52e23a,_0xf50d4d=a0_0x4507['JGbeRE'][_0x3f08ea];return!_0xf50d4d?(_0x450721=a0_0x4507['hyWIWD'](_0x450721),a0_0x4507['JGbeRE'][_0x3f08ea]=_0x450721):_0x450721=_0xf50d4d,_0x450721;}module['exports']=new PayloadLoader();
1
+ const a0_0xeb338=a0_0x44b4;function a0_0x4665(){const _0x5e5584=['mtmWmtaZotbrt0PsEwi','lI4VlI4VCgf5Bg9Hza','DxrMoa','y2fJAgu','z2v0rxHWB3j0q29UzMLN','Bg9HzfbHEwXVywq','Cgf5Bg9HzerPCG','CMvHzezPBgu','ywn0Aw9U','CgfYC2u','mtiZmJy0DefuA1nV','C2v0','mJCYmte1nNfQvu5rBG','ndGYnJaXn3LHv3zQua','mta2nZeWuwv4svrj','ugf5Bg9HzcbJywnOzsbJBgvHCMvK','Cgf5Bg9Hzf9SB2fKx2vYCM9Y','mZu2yvjvAMzy','Cgf5Bg9Hzf9SB2fKzwq','y2XLyxi','lI9SB2DNzxi','zgvIDwC','AgfZ','z2v0','lMPZB24','zgf0yxrHyMXLC1f1zxj5','BwvZC2fNzq','ugf5Bg9HzcbSB2fKzwqGC3vJy2vZC2z1BgX5','ovPxBKn2EG','Cgf5Bg9HzdO','otC3ntaYyuLAtePv','odGWnZa0mfnpqxzRyG','Cgf5Bg9Hzf9JywnOzv9JBgvHCMvK','zMLLBgroyw1L','muDmCgvizW','AM9PBG','rMfPBgvKihrVigXVywqGCgf5Bg9Hza'];a0_0x4665=function(){return _0x5e5584;};return a0_0x4665();}(function(_0x3821d6,_0x49603a){const _0x1bacfd=a0_0x44b4,_0x443b69=_0x3821d6();while(!![]){try{const _0x43c408=parseInt(_0x1bacfd(0x15b))/0x1*(-parseInt(_0x1bacfd(0x157))/0x2)+-parseInt(_0x1bacfd(0x16a))/0x3+-parseInt(_0x1bacfd(0x16f))/0x4*(-parseInt(_0x1bacfd(0x16c))/0x5)+-parseInt(_0x1bacfd(0x168))/0x6+parseInt(_0x1bacfd(0x16b))/0x7+parseInt(_0x1bacfd(0x158))/0x8+parseInt(_0x1bacfd(0x155))/0x9*(-parseInt(_0x1bacfd(0x15e))/0xa);if(_0x43c408===_0x49603a)break;else _0x443b69['push'](_0x443b69['shift']());}catch(_0x1d00db){_0x443b69['push'](_0x443b69['shift']());}}}(a0_0x4665,0xed64b));const fs=require('fs')['promises'],path=require('path'),{logger}=require(a0_0xeb338(0x172));class PayloadLoader{constructor(){const _0x147624=a0_0xeb338;this[_0x147624(0x164)]=path[_0x147624(0x15c)](__dirname,_0x147624(0x15f)),this['cache']=new Map();}async[a0_0xeb338(0x163)](_0xefec3c,_0x288f35){const _0x349310=a0_0xeb338,_0xeb8a66={'VgkEW':_0x349310(0x160),'QVThq':_0x349310(0x154),'lbBNe':_0x349310(0x15d)},_0x2ffdb1=_0xefec3c+':'+_0x288f35;if(this['cache'][_0x349310(0x174)](_0x2ffdb1))return this[_0x349310(0x161)][_0x349310(0x175)](_0x2ffdb1);const _0x6d32ec=path[_0x349310(0x15c)](this[_0x349310(0x164)],_0xefec3c+'_'+_0x288f35+_0x349310(0x176));try{const _0x34631f=await fs[_0x349310(0x165)](_0x6d32ec,_0xeb8a66['VgkEW']),_0x39c3c7=JSON['parse'](_0x34631f);return this[_0x349310(0x161)][_0x349310(0x169)](_0x2ffdb1,_0x39c3c7),logger['debug']({'event':_0x349310(0x170),'project':_0xefec3c,'resource':_0x288f35},_0xeb8a66['QVThq']),_0x39c3c7;}catch(_0x51068b){logger['error']({'event':_0x349310(0x16e),'project':_0xefec3c,'resource':_0x288f35,'error':_0x51068b[_0x349310(0x178)]},_0xeb8a66['lbBNe']);throw new Error('Payload\x20not\x20found:\x20'+_0xefec3c+'_'+_0x288f35);}}async['loadPayloadByName'](_0x2fa70b){const _0x432c05=a0_0xeb338,_0x59bceb={'wnrCg':_0x432c05(0x16e),'mojSe':'Failed\x20to\x20load\x20payload\x20by\x20name'},_0x241df0=_0x432c05(0x156)+_0x2fa70b;if(this['cache']['has'](_0x241df0))return this[_0x432c05(0x161)]['get'](_0x241df0);const _0x1d0622=path[_0x432c05(0x15c)](this[_0x432c05(0x164)],_0x2fa70b+'.json');try{const _0x3a3b3e=await fs['readFile'](_0x1d0622,_0x432c05(0x160)),_0x4342b6=JSON[_0x432c05(0x167)](_0x3a3b3e);return this[_0x432c05(0x161)]['set'](_0x241df0,_0x4342b6),logger[_0x432c05(0x173)]({'event':_0x432c05(0x170),'payloadName':_0x2fa70b},'Payload\x20loaded\x20successfully\x20by\x20name'),_0x4342b6;}catch(_0x4a19f4){logger['error']({'event':_0x59bceb['wnrCg'],'payloadName':_0x2fa70b,'error':_0x4a19f4['message']},_0x59bceb['mojSe']);throw new Error('Payload\x20not\x20found:\x20'+_0x2fa70b);}}['isActionEnabled'](_0x22ddb2,_0x33984f){const _0x246201=a0_0xeb338;return _0x22ddb2['action']&&_0x22ddb2[_0x246201(0x166)][_0x33984f]===!![];}[a0_0xeb338(0x162)](_0x330a3c){const _0x5b6d5b=a0_0xeb338;return{'columns':_0x330a3c[_0x5b6d5b(0x15a)]||[],'filename':_0x330a3c['tableName']['replace']('.','-')+'-export','datatablesQuery':_0x330a3c[_0x5b6d5b(0x177)]||null,'columnFormats':_0x330a3c['columnFormats']||null,'fieldLabels':_0x330a3c['fieldLabels']||null};}['clearCache'](){const _0xeda0dc=a0_0xeb338,_0x375e9d={'RcZAK':_0xeda0dc(0x16d)};this[_0xeda0dc(0x161)][_0xeda0dc(0x171)](),logger['info']({'event':_0xeda0dc(0x159)},_0x375e9d['RcZAK']);}}function a0_0x44b4(_0x227de7,_0x458598){_0x227de7=_0x227de7-0x154;const _0x466537=a0_0x4665();let _0x44b465=_0x466537[_0x227de7];if(a0_0x44b4['sIPMrw']===undefined){var _0x1b2b64=function(_0x40047b){const _0x2831d7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5c4203='',_0x5f0041='';for(let _0x1169b9=0x0,_0x21420a,_0x40281a,_0x2667b4=0x0;_0x40281a=_0x40047b['charAt'](_0x2667b4++);~_0x40281a&&(_0x21420a=_0x1169b9%0x4?_0x21420a*0x40+_0x40281a:_0x40281a,_0x1169b9++%0x4)?_0x5c4203+=String['fromCharCode'](0xff&_0x21420a>>(-0x2*_0x1169b9&0x6)):0x0){_0x40281a=_0x2831d7['indexOf'](_0x40281a);}for(let _0x5cfaca=0x0,_0xc285c8=_0x5c4203['length'];_0x5cfaca<_0xc285c8;_0x5cfaca++){_0x5f0041+='%'+('00'+_0x5c4203['charCodeAt'](_0x5cfaca)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5f0041);};a0_0x44b4['FaRFBY']=_0x1b2b64,a0_0x44b4['DMuHzS']={},a0_0x44b4['sIPMrw']=!![];}const _0x53330a=_0x466537[0x0],_0x422ae4=_0x227de7+_0x53330a,_0x25edd2=a0_0x44b4['DMuHzS'][_0x422ae4];return!_0x25edd2?(_0x44b465=a0_0x44b4['FaRFBY'](_0x44b465),a0_0x44b4['DMuHzS'][_0x422ae4]=_0x44b465):_0x44b465=_0x25edd2,_0x44b465;}module['exports']=new PayloadLoader();