@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_0x3e0bc5=a0_0x168c;(function(_0x5a8c8b,_0x49ae86){const _0x5eebfd=a0_0x168c,_0x5cd56d=_0x5a8c8b();while(!![]){try{const _0x77152d=parseInt(_0x5eebfd(0x112))/0x1+parseInt(_0x5eebfd(0xed))/0x2*(parseInt(_0x5eebfd(0xec))/0x3)+-parseInt(_0x5eebfd(0xe7))/0x4+-parseInt(_0x5eebfd(0xb8))/0x5*(-parseInt(_0x5eebfd(0xf2))/0x6)+-parseInt(_0x5eebfd(0xf9))/0x7*(-parseInt(_0x5eebfd(0xca))/0x8)+parseInt(_0x5eebfd(0xfb))/0x9+parseInt(_0x5eebfd(0xbb))/0xa*(-parseInt(_0x5eebfd(0x113))/0xb);if(_0x77152d===_0x49ae86)break;else _0x5cd56d['push'](_0x5cd56d['shift']());}catch(_0x27b5df){_0x5cd56d['push'](_0x5cd56d['shift']());}}}(a0_0x5da8,0x6f0a1));const redisClient=require('./redis-client'),{logger}=require(a0_0x3e0bc5(0xd5)),{v4:uuidv4}=require(a0_0x3e0bc5(0x100));function a0_0x5da8(){const _0xfba436=['zw52','zw5HyMXLza','Bg9JA19LEhrLBMrLza','CgLK','x3jLDhj5rgvSyxK','BM93','D3jPDgu','x2vUywjSzwq','mZu5mtC5rMXsrw9g','mtfMvM1pz3O','v1jjveuGBg9JAYbYzwPLy3rLzcaTihjLy29YzcbIDxn5','v1jjveuGBg9JAYbHy3f1AxjLzcaOCMvQzwn0ig1VzguP','ndbZy2HTuLa','rxb6vKe','tg9JAYbYzwXLyxnLigvYCM9Y','mtG4mtK1ndbRuwDPrKq','x3n0CMf0zwD5','C2v0','Bg9JA19YzwXLyxnLx25VDf9VD25LCG','x3DVCMTLCKLK','B2T5s1O','D3jPDgvFBg9JA190Aw1LB3v0','Cg93','te9ds19esvnuuKLcvvrfrf9ftKfcteve','C2XLzxa','rwj2DLi','AxnfBMfIBgvK','v1jjveuGBg9JAYbLCNjVCG','D3jPDgvFBg9JA19YzwPLy3rLza','cIaGicaGicaGAwyGCMvKAxmUy2fSBcGIz2v0iIWGs0vzu1SXxsKGpt0GqvjhvLSXxsb0AgvUcIaGicaGicaGicbYzxr1CM4GCMvKAxmUy2fSBcGIzxHWAxjLiIWGs0vzu1SXxsWGqvjhvLSYxsKkicaGicaGicbLBhnLcIaGicaGicaGicbYzxr1CM4GmaOGicaGicaGigvUzaOGicaGica','og91CwDKrW','CgrytLK','zxjYB3i','D2fYBG','D3jPDgvFBg9JA193ywL0Aw5N','x2vUC3vYzuLUAxrPywXPEMvK','CMv0CNLdB3vUDa','Bg9JA19YzwXLyxnLx2vYCM9Y','Aw5JBhvKzxm','x2LUAxrPywXPEMvK','zgvMyxvSDfruta','lI9SB2DNzxi','BwHntuq','CMvHza','x3jLDhj5q291BNq','zxzHBa','zgvIDwC','z2v0tg9JA0LUzM8','CMv0CNK','cIaGicaGicaGAwyGCMvKAxmUy2fSBcGIz2v0iIWGs0vzu1SXxsKGpt0GqvjhvLSXxsb0AgvUcIaGicaGicaGicbYzxr1CM4GCMvKAxmUy2fSBcGIzgvSiIWGs0vzu1SXxsKkicaGicaGicbLBhnLcIaGicaGicaGicbYzxr1CM4GmaOGicaGicaGigvUzaOGicaGica','Dhj1zq','rhvUvNK','AMrUENm','zxHWAxjL','zxv3rMK','CMvHzf9SB2nRx2vYCM9Y','C2v0zxG','n3W1Fdr8mhWZFdz8mxW4Fdi','CvrlqwW','nte3nZG0wwrtruv1','D3jPDgvFBg9JA19Hy3f1AxjLza','re55BLO','Aw5MBW','CMvHzf9SB2nRx3jLBgvHC2vK','mtu5zgvJqMnL','mtmWodjKt0LcwNG','D29YA2vYlq','CMv0CNLezwXHEq','BxHKwK0','tg9JAYbJB25MAwD1CMf0Aw9UigLUAxrPywXPEMvKic0Gzw5HyMXLzdOG','ndC5nda2uxfABLPY','BwvZC2fNzq','tg9JAYbLEhrLBMqGzxjYB3i','zgvJCG','v1jjveuGBg9JAYbYzwXLyxnLza','zxHWB3j0CW','z2vUzxjHDgvmB2nRvMfSDwu','ntiZody2n1rZBMvsuG','CMvHzf9SB2nRx3DHAxrPBMC','mZm1ndK4nhPVDgHYtG','D3jPDgvFBg9JA19LCNjVCG','yNvPBgrmB2nRs2v5','ChjLzML4','z2v0q2XPzw50','DxvPza','v2fPDgLUzYbMB3iGBg9JA3mGDg8GCMvSzwfZzq','CMvHzf9SB2nRx3rPBwvVDxq','CMvQzwn0','C3bSAxq','z2v0','C3vIC3rYAw5N','v1jjveuGBg9JAYbHy3f1AxjLzcaOCMv0CNKGBw9KzsK','uKvbrcbSB2nRigfJCxvPCMvK','Aw5JCG'];a0_0x5da8=function(){return _0xfba436;};return a0_0x5da8();}class LockManager{constructor(){const _0x118f54=a0_0x3e0bc5;this['_prefix']=null,this[_0x118f54(0x111)]=null,this['_defaultTTL']=null,this['_retryCount']=null,this[_0x118f54(0x10e)]=null,this[_0x118f54(0xbc)]=null,this['_workerId']=null,this['_initialized']=![];}['_initConfig'](){const _0x4efbad=a0_0x3e0bc5,_0x4be8ec={'FPiYw':_0x4efbad(0xe5),'ybxvz':function(_0x3c88f5,_0xb47b50,_0x131e4d){return _0x3c88f5(_0xb47b50,_0x131e4d);},'EbvvR':'lock_config_init','qTKAl':function(_0x5d3939,_0x2e296f){return _0x5d3939===_0x2e296f;},'HqLSW':_0x4efbad(0xde),'mxdZM':_0x4efbad(0xdc),'EbIlW':'rf:lock:'},_0x1e2f65=_0x4be8ec['FPiYw'][_0x4efbad(0x104)]('|');let _0x2b7a74=0x0;while(!![]){switch(_0x1e2f65[_0x2b7a74++]){case'0':this['_retryCount']=_0x4be8ec['ybxvz'](parseInt,process['env']['LOCK_DISTRIBUTED_RETRY'],0xa)||0x3;continue;case'1':this['_workerId']=_0x4efbad(0xee)+process[_0x4efbad(0x10d)];continue;case'2':logger[_0x4efbad(0xea)]({'event':_0x4be8ec[_0x4efbad(0xc5)],'enabled':this[_0x4efbad(0x111)],'strategy':this['_strategy'],'ttl':this['_defaultTTL'],'retryCount':this[_0x4efbad(0xd8)],'retryDelay':this[_0x4efbad(0x10e)],'workerId':this[_0x4efbad(0xbf)]},_0x4efbad(0xf1)+this['_enabled']+',\x20strategy:\x20'+this['_strategy']);continue;case'3':this['_retryDelay']=parseInt(process['env']['LOCK_DISTRIBUTED_RETRY_DELAY'],0xa)||0x64;continue;case'4':this['_defaultTTL']=parseInt(process[_0x4efbad(0x10a)]['LOCK_DISTRIBUTED_TTL'],0xa)||0xa;continue;case'5':this['_enabled']=_0x4be8ec[_0x4efbad(0xe6)](process[_0x4efbad(0x10a)][_0x4efbad(0xc3)],_0x4be8ec['HqLSW']);continue;case'6':this[_0x4efbad(0xbc)]=process[_0x4efbad(0x10a)]['LOCK_DISTRIBUTED_STRATEGY']||_0x4be8ec[_0x4efbad(0xf0)];continue;case'7':this['_prefix']=_0x4be8ec['EbIlW'];continue;case'8':this['_initialized']=!![];continue;}break;}}[a0_0x3e0bc5(0xcf)](){const _0x3c0411=a0_0x3e0bc5;!this[_0x3c0411(0xd3)]&&this['_initConfig']();}get[a0_0x3e0bc5(0xfe)](){return this['_ensureInitialized'](),this['_prefix'];}get[a0_0x3e0bc5(0x10b)](){const _0xd0959b=a0_0x3e0bc5;return this[_0xd0959b(0xcf)](),this[_0xd0959b(0x111)];}get['defaultTTL'](){const _0x3767d5=a0_0x3e0bc5;return this[_0x3767d5(0xcf)](),this['_defaultTTL'];}get['retryCount'](){const _0xd0ccfe=a0_0x3e0bc5;return this[_0xd0ccfe(0xcf)](),this[_0xd0ccfe(0xd8)];}get[a0_0x3e0bc5(0xef)](){const _0x5f11eb=a0_0x3e0bc5;return this['_ensureInitialized'](),this[_0x5f11eb(0x10e)];}get['strategy'](){return this['_ensureInitialized'](),this['_strategy'];}get['workerId'](){return this['_ensureInitialized'](),this['_workerId'];}['buildLockKey'](_0x527bd7){const _0x50d7b3=a0_0x3e0bc5,{module:_0xe4822c,endpoint:_0xd6bad4,lockType:_0x49e03e,recordId:_0x481a28}=_0x527bd7;if(_0x481a28)return''+this['prefix']+_0xe4822c+':'+_0xd6bad4+':'+_0x481a28+':'+_0x49e03e;return''+this[_0x50d7b3(0xfe)]+_0xe4822c+':'+_0xd6bad4+':'+_0x49e03e;}['generateLockValue'](){const _0x59bdcb=a0_0x3e0bc5;return this['workerId']+':'+uuidv4()+':'+Date[_0x59bdcb(0x10f)]();}async['acquireReadLock'](_0x40a6cb){const _0x325a15=a0_0x3e0bc5,_0xe437dc={'okyKZ':_0x325a15(0x110),'leYvi':'read_lock_acquired','bfGiT':_0x325a15(0x108),'MGbmY':_0x325a15(0xfa),'VpkQY':'Waiting\x20for\x20WRITE\x20lock\x20to\x20release','jdnzs':_0x325a15(0x102),'SQhyV':'READ\x20lock\x20acquire\x20timeout'};if(!this[_0x325a15(0x10b)])return{'success':!![],'lockValue':null,'lockKey':null};const _0x41d48e=this['buildLockKey']({..._0x40a6cb,'lockType':_0xe437dc[_0x325a15(0xc0)]}),_0x1de3fa=this['buildLockKey']({..._0x40a6cb,'lockType':'read'}),_0x2bd98c=this['generateLockValue']();try{const _0x53f984=redisClient[_0x325a15(0xff)]();for(let _0x5abdb8=0x0;_0x5abdb8<this['retryCount'];_0x5abdb8++){const _0x100642=await _0x53f984['get'](_0x41d48e);if(!_0x100642){await _0x53f984[_0x325a15(0x109)](_0x1de3fa),await _0x53f984[_0x325a15(0xe1)](_0x1de3fa,this[_0x325a15(0xd4)]);const _0x409c4c=_0x1de3fa+':'+_0x2bd98c;return await _0x53f984[_0x325a15(0xe4)](_0x409c4c,this[_0x325a15(0xd4)],_0x2bd98c),logger['debug']({'event':_0xe437dc['leYvi'],'key':_0x1de3fa,'value':_0x2bd98c},_0xe437dc['bfGiT']),{'success':!![],'lockValue':_0x2bd98c,'lockKey':_0x409c4c};}logger[_0x325a15(0xda)]({'event':_0xe437dc['MGbmY'],'writeKey':_0x41d48e,'attempt':_0x5abdb8},_0xe437dc['VpkQY']),await this[_0x325a15(0xc4)](this['retryDelay']*Math['pow'](0x2,_0x5abdb8));}return logger['warn']({'event':_0xe437dc[_0x325a15(0xe0)],'key':_0x1de3fa},_0xe437dc['SQhyV']),{'success':![],'lockValue':null,'lockKey':null};}catch(_0xcc6834){return logger['error']({'event':_0x325a15(0xe3),'error':_0xcc6834[_0x325a15(0xf3)]},'READ\x20lock\x20error'),{'success':![],'lockValue':null,'lockKey':null};}}async['acquireWriteLock'](_0x178b92){const _0x22e4fc=a0_0x3e0bc5,_0x288cdb={'fUGjc':_0x22e4fc(0x110),'euwFi':function(_0x4024d0,_0x523fb7){return _0x4024d0===_0x523fb7;},'pdXNY':'reject','vfcwA':_0x22e4fc(0xe8),'DQbIh':_0x22e4fc(0xb7),'AiFGw':function(_0x500a4f,_0xeab23){return _0x500a4f<_0xeab23;},'DNynZ':'retry','DunVy':_0x22e4fc(0x107),'kBgTS':_0x22e4fc(0xce),'QOznw':_0x22e4fc(0xfc),'VJXYa':_0x22e4fc(0xc7)};if(!this[_0x22e4fc(0x10b)])return{'success':!![],'lockValue':null,'lockKey':null};const _0x48f1a8=this['buildLockKey']({..._0x178b92,'lockType':_0x288cdb['fUGjc']}),_0x236102=this[_0x22e4fc(0xfd)]({..._0x178b92,'lockType':_0x22e4fc(0xd7)}),_0x2ad82f=this[_0x22e4fc(0xf8)]();try{const _0x1913ea=redisClient['getClient']();if(_0x288cdb[_0x22e4fc(0xe2)](this['strategy'],_0x288cdb[_0x22e4fc(0xcb)])){const _0x1b6ea1=await _0x1913ea['set'](_0x48f1a8,_0x2ad82f,'EX',this['defaultTTL'],'NX');if(_0x1b6ea1==='OK')return logger['debug']({'event':_0x288cdb['vfcwA'],'key':_0x48f1a8,'value':_0x2ad82f,'strategy':_0x22e4fc(0x103)},_0x288cdb['DQbIh']),{'success':!![],'lockValue':_0x2ad82f,'lockKey':_0x48f1a8};return logger['debug']({'event':_0x22e4fc(0xc8),'key':_0x48f1a8},_0x22e4fc(0x114)),{'success':![],'lockValue':null,'lockKey':null};}for(let _0x3f84bf=0x0;_0x288cdb['AiFGw'](_0x3f84bf,this[_0x22e4fc(0xd0)]);_0x3f84bf++){const [_0x3897ed,_0x4e1c72]=await Promise['all']([_0x1913ea[_0x22e4fc(0x105)](_0x236102),_0x1913ea['get'](_0x48f1a8)]);if(!_0x4e1c72&&(!_0x3897ed||_0x288cdb['euwFi'](parseInt(_0x3897ed),0x0))){const _0xc47e39=await _0x1913ea[_0x22e4fc(0xbd)](_0x48f1a8,_0x2ad82f,'EX',this[_0x22e4fc(0xd4)],'NX');if(_0xc47e39==='OK')return logger[_0x22e4fc(0xda)]({'event':_0x288cdb['vfcwA'],'key':_0x48f1a8,'value':_0x2ad82f,'strategy':_0x288cdb[_0x22e4fc(0xe9)]},_0x288cdb[_0x22e4fc(0xdf)]),{'success':!![],'lockValue':_0x2ad82f,'lockKey':_0x48f1a8};}logger[_0x22e4fc(0xda)]({'event':_0x288cdb['kBgTS'],'writeKey':_0x48f1a8,'readCount':_0x3897ed,'attempt':_0x3f84bf},_0x22e4fc(0x101)),await this[_0x22e4fc(0xc4)](this['retryDelay']*Math[_0x22e4fc(0xc2)](0x2,_0x3f84bf));}return logger[_0x22e4fc(0xcd)]({'event':_0x22e4fc(0xc1),'key':_0x48f1a8},'WRITE\x20lock\x20acquire\x20timeout'),{'success':![],'lockValue':null,'lockKey':null};}catch(_0x324cc6){return logger[_0x22e4fc(0xcc)]({'event':_0x288cdb['QOznw'],'error':_0x324cc6['message']},_0x288cdb['VJXYa']),{'success':![],'lockValue':null,'lockKey':null};}}async['releaseLock'](_0x2427ad,_0x46acb1){const _0x328654=a0_0x3e0bc5,_0x5e9589={'vHshX':function(_0x15eb75,_0x476023){return _0x15eb75>_0x476023;},'NKVhA':function(_0x127749,_0x1a9cf5){return _0x127749(_0x1a9cf5);},'SaGEO':_0x328654(0xeb),'Jrxmm':'READ\x20lock\x20released','EpzVA':_0x328654(0xf6),'qbdkq':_0x328654(0xd1),'mhMMD':_0x328654(0xba)};if(!this[_0x328654(0x10b)]||!_0x2427ad)return!![];try{const _0x4edc81=redisClient['getClient']();if(_0x2427ad[_0x328654(0xd2)](':read:')){await _0x4edc81['del'](_0x2427ad);const _0x521174=_0x2427ad[_0x328654(0x106)](0x0,_0x2427ad['lastIndexOf'](':')),_0x3a5b58=await _0x4edc81[_0x328654(0x105)](_0x521174);return _0x3a5b58&&_0x5e9589['vHshX'](_0x5e9589['NKVhA'](parseInt,_0x3a5b58),0x0)&&await _0x4edc81[_0x328654(0xf5)](_0x521174),logger[_0x328654(0xda)]({'event':_0x5e9589['SaGEO'],'key':_0x2427ad},_0x5e9589['Jrxmm']),!![];}const _0x4ca86d=_0x328654(0xdd),_0x342a73=await _0x4edc81['eval'](_0x4ca86d,0x1,_0x2427ad,_0x46acb1);if(_0x342a73===0x1)return logger[_0x328654(0xda)]({'event':'write_lock_released','key':_0x2427ad},_0x5e9589[_0x328654(0xb9)]),!![];return logger['warn']({'event':_0x328654(0xbe),'key':_0x2427ad},'Cannot\x20release\x20lock\x20-\x20not\x20owner'),![];}catch(_0x2c46f4){return logger['error']({'event':_0x5e9589['qbdkq'],'key':_0x2427ad,'error':_0x2c46f4['message']},_0x5e9589[_0x328654(0xd6)]),![];}}async['extendLock'](_0x942eda,_0x449ec0,_0x294b42=null){const _0x56fa56=a0_0x3e0bc5,_0x5e9253={'DXUqj':'lock_extend_error','cbnyh':_0x56fa56(0xf4)};if(!this['enabled']||!_0x942eda)return!![];try{const _0x58bf8a=redisClient[_0x56fa56(0xff)](),_0xfcabb6=_0x56fa56(0xc9),_0x18e62d=await _0x58bf8a[_0x56fa56(0xd9)](_0xfcabb6,0x1,_0x942eda,_0x449ec0,_0x294b42||this['defaultTTL']);if(_0x18e62d===0x1)return logger[_0x56fa56(0xda)]({'event':_0x56fa56(0x10c),'key':_0x942eda,'ttl':_0x294b42||this[_0x56fa56(0xd4)]},'Lock\x20TTL\x20extended'),!![];return![];}catch(_0x1560ed){return logger['error']({'event':_0x5e9253['DXUqj'],'key':_0x942eda,'error':_0x1560ed['message']},_0x5e9253['cbnyh']),![];}}[a0_0x3e0bc5(0xc6)](){const _0x3cf042=a0_0x3e0bc5;return this[_0x3cf042(0x10b)];}[a0_0x3e0bc5(0xc4)](_0x10f6d6){return new Promise(_0x445ede=>setTimeout(_0x445ede,_0x10f6d6));}async[a0_0x3e0bc5(0xdb)](_0x2491e6){const _0x4cd72f=a0_0x3e0bc5,_0x2fa988={'GYLkX':'write'};if(!this[_0x4cd72f(0x10b)])return{'enabled':![]};try{const _0x143cca=redisClient['getClient'](),_0x58e68f=this[_0x4cd72f(0xfd)]({..._0x2491e6,'lockType':_0x2fa988['GYLkX']}),_0x231e57=this['buildLockKey']({..._0x2491e6,'lockType':'read'}),[_0x22192c,_0x44b735]=await Promise['all']([_0x143cca['get'](_0x58e68f),_0x143cca[_0x4cd72f(0x105)](_0x231e57)]);return{'enabled':!![],'writeLock':_0x22192c||null,'readCount':parseInt(_0x44b735)||0x0,'writeKey':_0x58e68f,'readKey':_0x231e57};}catch(_0x4e8adb){return{'enabled':!![],'error':_0x4e8adb['message']};}}}function a0_0x168c(_0x27aa61,_0x4cd42e){_0x27aa61=_0x27aa61-0xb7;const _0x5da81b=a0_0x5da8();let _0x168c28=_0x5da81b[_0x27aa61];if(a0_0x168c['TKGqKx']===undefined){var _0xdc1eca=function(_0x4e478e){const _0x188f96='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4f40ce='',_0x202f93='';for(let _0x3a5a07=0x0,_0x371c5e,_0x22ce67,_0x1b25fd=0x0;_0x22ce67=_0x4e478e['charAt'](_0x1b25fd++);~_0x22ce67&&(_0x371c5e=_0x3a5a07%0x4?_0x371c5e*0x40+_0x22ce67:_0x22ce67,_0x3a5a07++%0x4)?_0x4f40ce+=String['fromCharCode'](0xff&_0x371c5e>>(-0x2*_0x3a5a07&0x6)):0x0){_0x22ce67=_0x188f96['indexOf'](_0x22ce67);}for(let _0x3d2a8d=0x0,_0x5e55f2=_0x4f40ce['length'];_0x3d2a8d<_0x5e55f2;_0x3d2a8d++){_0x202f93+='%'+('00'+_0x4f40ce['charCodeAt'](_0x3d2a8d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x202f93);};a0_0x168c['ZTzKAw']=_0xdc1eca,a0_0x168c['KEYVDr']={},a0_0x168c['TKGqKx']=!![];}const _0x4d4237=_0x5da81b[0x0],_0x434b55=_0x27aa61+_0x4d4237,_0xd1502d=a0_0x168c['KEYVDr'][_0x434b55];return!_0xd1502d?(_0x168c28=a0_0x168c['ZTzKAw'](_0x168c28),a0_0x168c['KEYVDr'][_0x434b55]=_0x168c28):_0x168c28=_0xd1502d,_0x168c28;}module[a0_0x3e0bc5(0xf7)]=new LockManager();
1
+ function a0_0x1fae(){const _0x56ee86=['nLP4zMLOuW','Dhj1zq','x3DVCMTLCKLK','v1jjveuGBg9JAYbHy3f1AxjLihrPBwvVDxq','Bg9JA19LEhrLBMrLza','Bg9JA19LEhrLBMrFzxjYB3i','mtC1ndi0mLffELvgDW','Bg9JA19YzwXLyxnLx2vYCM9Y','veTuvxu','C3rYyxrLz3K','zgvMyxvSDfruta','nZG5mdmWshDTz2Lc','lcbZDhjHDgvNEtOG','tfb4uum','v1jjveuGBg9JAYbLCNjVCG','zxHWAxjL','zw52','s1vky2y','uKvbrcbSB2nRigvYCM9Y','x2vUC3vYzuLUAxrPywXPEMvK','CMv0CNLdB3vUDa','v1jjveuGBg9JAYbHy3f1AxjLzcaOCMvQzwn0ig1VzguP','lI9YzwrPCY1JBgLLBNq','Cg93','z2v0','ChjLzML4','CMvHzf9SB2nRx3jLBgvHC2vK','mJDJCgnTtuS','zxzet0e','tg9JAYbuveWGzxH0zw5Kzwq','x2rLzMf1BhruveW','v1jjveuGBg9JAYbYzwXLyxnLza','CNDuvNm','zgvS','zxHWB3j0CW','D25VvMS','D3jPDgvFBg9JA19YzwXLyxnLza','z2v0tg9JA0LUzM8','zw5HyMXLza','D3jPDgvFBg9JA19YzwPLy3rLza','te9ds19esvnuuKLcvvrfrf9uveW','mu1Wz3nMDG','zufMq0G','x2LUAxrPywXPEMvK','mJa2mZu0nezTBufcua','mZi3nJbyzLnnv2y','ywnXDwLYzvDYAxrLtg9JAW','CMvHzf9SB2nRx2fJCxvPCMvK','D3jPDgvFBg9JA19Hy3f1AxjLza','Aw5JBhvKzxm','BgfZDeLUzgv4t2y','D2fYBG','ndaYotaXmfnOAxjqqq','mJKXnte2ounlwhbwyW','x3bYzwzPEa','v1jjveuGBg9JAYbHy3f1AxjLzcaOCMv0CNKGBw9KzsK','C3vIC3rYAw5N','x3jLDhj5q291BNq','x3n0CMf0zwD5','CMvHzf9SB2nRx2vYCM9Y','DxvPza','CMv0CNLezwXHEq','uwvUB3q','CgLK','Bg9JA19JB25MAwDFAw5PDa','uKvbrcbSB2nRigfJCxvPCMuGDgLTzw91Da','CMv0CNK','D29YA2vYswq','zxjYB3i','z2v0q2XPzw50','ywnXDwLYzvjLywrmB2nR','zxH0zw5Ktg9JAW','yNvPBgrmB2nRs2v5','DvbbAhi','x2vUywjSzwq','EfjTqwK','C3bSAxq','AxnfBMfIBgvK','D3jPDgu','oNjLywq6','zxzHBa','C2XLzxa','te9ds19esvnuuKLcvvrfrf9tvfjbvevhwq','mZiWotmZovfVsNjOBG','nfjyCxfNzq','CMvHza','zgvIDwC','CMvQzwn0','x3jLDhj5rgvSyxK','tg9JAYbLEhrLBMqGzxjYB3i'];a0_0x1fae=function(){return _0x56ee86;};return a0_0x1fae();}const a0_0x21291f=a0_0x1a47;(function(_0x148177,_0x190c31){const _0x5a58b0=a0_0x1a47,_0x12ddad=_0x148177();while(!![]){try{const _0x1a5582=parseInt(_0x5a58b0(0x156))/0x1*(-parseInt(_0x5a58b0(0x133))/0x2)+-parseInt(_0x5a58b0(0x162))/0x3*(-parseInt(_0x5a58b0(0x181))/0x4)+-parseInt(_0x5a58b0(0x161))/0x5+parseInt(_0x5a58b0(0x12d))/0x6*(parseInt(_0x5a58b0(0x180))/0x7)+-parseInt(_0x5a58b0(0x159))/0x8*(-parseInt(_0x5a58b0(0x148))/0x9)+-parseInt(_0x5a58b0(0x15a))/0xa+parseInt(_0x5a58b0(0x138))/0xb;if(_0x1a5582===_0x190c31)break;else _0x12ddad['push'](_0x12ddad['shift']());}catch(_0x54b859){_0x12ddad['push'](_0x12ddad['shift']());}}}(a0_0x1fae,0x8fef8));function a0_0x1a47(_0x5a14de,_0x5a4f46){_0x5a14de=_0x5a14de-0x12c;const _0x1fae66=a0_0x1fae();let _0x1a47f3=_0x1fae66[_0x5a14de];if(a0_0x1a47['VUcOXa']===undefined){var _0x41e3aa=function(_0x52cad3){const _0x1a1473='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1575db='',_0x43c10f='';for(let _0x40ab79=0x0,_0x5e9d4f,_0x3ce062,_0x527b3a=0x0;_0x3ce062=_0x52cad3['charAt'](_0x527b3a++);~_0x3ce062&&(_0x5e9d4f=_0x40ab79%0x4?_0x5e9d4f*0x40+_0x3ce062:_0x3ce062,_0x40ab79++%0x4)?_0x1575db+=String['fromCharCode'](0xff&_0x5e9d4f>>(-0x2*_0x40ab79&0x6)):0x0){_0x3ce062=_0x1a1473['indexOf'](_0x3ce062);}for(let _0x34d06a=0x0,_0x59b026=_0x1575db['length'];_0x34d06a<_0x59b026;_0x34d06a++){_0x43c10f+='%'+('00'+_0x1575db['charCodeAt'](_0x34d06a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x43c10f);};a0_0x1a47['YSojXr']=_0x41e3aa,a0_0x1a47['gVmkap']={},a0_0x1a47['VUcOXa']=!![];}const _0x4b3552=_0x1fae66[0x0],_0x4510eb=_0x5a14de+_0x4b3552,_0x2afb0f=a0_0x1a47['gVmkap'][_0x4510eb];return!_0x2afb0f?(_0x1a47f3=a0_0x1a47['YSojXr'](_0x1a47f3),a0_0x1a47['gVmkap'][_0x4510eb]=_0x1a47f3):_0x1a47f3=_0x2afb0f,_0x1a47f3;}const redisClient=require(a0_0x21291f(0x143)),{logger}=require('./logger'),{v4:uuidv4}=require(a0_0x21291f(0x169));class LockManager{constructor(){const _0x52160b=a0_0x21291f,_0x1a9cef={'rwTVs':'0|2|1|4|6|7|3|5'},_0x4a4aef=_0x1a9cef[_0x52160b(0x14d)][_0x52160b(0x179)]('|');let _0x400629=0x0;while(!![]){switch(_0x4a4aef[_0x400629++]){case'0':this[_0x52160b(0x163)]=null;continue;case'1':this[_0x52160b(0x14b)]=null;continue;case'2':this['_enabled']=null;continue;case'3':this['_workerId']=null;continue;case'4':this[_0x52160b(0x166)]=null;continue;case'5':this[_0x52160b(0x158)]=![];continue;case'6':this['_retryDelay']=null;continue;case'7':this[_0x52160b(0x167)]=null;continue;}break;}}['_initConfig'](){const _0x170f43=a0_0x21291f,_0x12c195={'hDoUS':'rf:lock:','DtOrk':_0x170f43(0x12e),'LSASG':function(_0x3824ee,_0x4cf402,_0x538ae4){return _0x3824ee(_0x4cf402,_0x538ae4);}};this[_0x170f43(0x163)]=_0x12c195['hDoUS'],this[_0x170f43(0x177)]=process[_0x170f43(0x13d)]['LOCK_DISTRIBUTED_ENABLED']===_0x12c195['DtOrk'],this[_0x170f43(0x14b)]=_0x12c195['LSASG'](parseInt,process['env'][_0x170f43(0x155)],0xa)||0xa,this[_0x170f43(0x166)]=parseInt(process[_0x170f43(0x13d)]['LOCK_DISTRIBUTED_RETRY'],0xa)||0x3,this[_0x170f43(0x185)]=_0x12c195['LSASG'](parseInt,process[_0x170f43(0x13d)]['LOCK_DISTRIBUTED_RETRY_DELAY'],0xa)||0x64,this['_strategy']=process['env'][_0x170f43(0x17f)]||_0x170f43(0x16f),this[_0x170f43(0x12f)]='worker-'+process[_0x170f43(0x16c)],this['_initialized']=!![],logger['info']({'event':_0x170f43(0x16d),'enabled':this[_0x170f43(0x177)],'strategy':this['_strategy'],'ttl':this['_defaultTTL'],'retryCount':this[_0x170f43(0x166)],'retryDelay':this[_0x170f43(0x185)],'workerId':this['_workerId']},'Lock\x20configuration\x20initialized\x20-\x20enabled:\x20'+this[_0x170f43(0x177)]+_0x170f43(0x139)+this[_0x170f43(0x167)]);}[a0_0x21291f(0x140)](){const _0x28e21e=a0_0x21291f;!this[_0x28e21e(0x158)]&&this['_initConfig']();}get['prefix'](){const _0x369b43=a0_0x21291f;return this['_ensureInitialized'](),this[_0x369b43(0x163)];}get['enabled'](){const _0xcc13f7=a0_0x21291f;return this[_0xcc13f7(0x140)](),this['_enabled'];}get['defaultTTL'](){const _0x23e080=a0_0x21291f;return this[_0x23e080(0x140)](),this['_defaultTTL'];}get['retryCount'](){const _0x5d1282=a0_0x21291f;return this['_ensureInitialized'](),this[_0x5d1282(0x166)];}get[a0_0x21291f(0x16a)](){const _0x111aa1=a0_0x21291f;return this[_0x111aa1(0x140)](),this[_0x111aa1(0x185)];}get[a0_0x21291f(0x136)](){return this['_ensureInitialized'](),this['_strategy'];}get['workerId'](){return this['_ensureInitialized'](),this['_workerId'];}['buildLockKey'](_0x4743aa){const _0x1dac01=a0_0x21291f,{module:_0x48b053,endpoint:_0x20f0e0,lockType:_0x2e8215,recordId:_0x4b8d10}=_0x4743aa;if(_0x4b8d10)return''+this['prefix']+_0x48b053+':'+_0x20f0e0+':'+_0x4b8d10+':'+_0x2e8215;return''+this[_0x1dac01(0x146)]+_0x48b053+':'+_0x20f0e0+':'+_0x2e8215;}['generateLockValue'](){const _0x43239b=a0_0x21291f,_0x2fb4ae={'IhUmq':function(_0x468b35){return _0x468b35();}};return this[_0x43239b(0x170)]+':'+_0x2fb4ae['IhUmq'](uuidv4)+':'+Date['now']();}async[a0_0x21291f(0x173)](_0x18becf){const _0x5a5e05=a0_0x21291f,_0x214328={'wnoVk':function(_0x40f488,_0x434f56){return _0x40f488<_0x434f56;},'CKxDR':_0x5a5e05(0x15c),'iTILA':'READ\x20lock\x20acquired','Qenot':'Waiting\x20for\x20WRITE\x20lock\x20to\x20release','dYSdz':'read_lock_timeout','fulAF':_0x5a5e05(0x13f)};if(!this['enabled'])return{'success':!![],'lockValue':null,'lockKey':null};const _0x27bb52=this['buildLockKey']({..._0x18becf,'lockType':'write'}),_0x53fd05=this['buildLockKey']({..._0x18becf,'lockType':_0x5a5e05(0x182)}),_0x2821ef=this['generateLockValue']();try{const _0x2d37f9=redisClient[_0x5a5e05(0x172)]();for(let _0x366ecb=0x0;_0x214328[_0x5a5e05(0x150)](_0x366ecb,this[_0x5a5e05(0x141)]);_0x366ecb++){const _0x1ebcc7=await _0x2d37f9['get'](_0x27bb52);if(!_0x1ebcc7){await _0x2d37f9['incr'](_0x53fd05),await _0x2d37f9[_0x5a5e05(0x13c)](_0x53fd05,this['defaultTTL']);const _0x5712cb=_0x53fd05+':'+_0x2821ef;return await _0x2d37f9['setex'](_0x5712cb,this[_0x5a5e05(0x137)],_0x2821ef),logger['debug']({'event':_0x214328['CKxDR'],'key':_0x53fd05,'value':_0x2821ef},_0x214328['iTILA']),{'success':!![],'lockValue':_0x2821ef,'lockKey':_0x5712cb};}logger['debug']({'event':'read_lock_waiting','writeKey':_0x27bb52,'attempt':_0x366ecb},_0x214328[_0x5a5e05(0x16b)]),await this['sleep'](this['retryDelay']*Math[_0x5a5e05(0x144)](0x2,_0x366ecb));}return logger['warn']({'event':_0x214328['dYSdz'],'key':_0x53fd05},_0x5a5e05(0x16e)),{'success':![],'lockValue':null,'lockKey':null};}catch(_0x3120ff){return logger['error']({'event':_0x5a5e05(0x168),'error':_0x3120ff['message']},_0x214328['fulAF']),{'success':![],'lockValue':null,'lockKey':null};}}async[a0_0x21291f(0x15b)](_0x4e6a10){const _0x118f3c=a0_0x21291f,_0x3c3e9d={'nRrBn':'write_lock_acquired','KUJcf':_0x118f3c(0x142),'evDOA':_0x118f3c(0x154),'JYOpD':function(_0x3dbf26,_0x1e9fec){return _0x3dbf26===_0x1e9fec;},'LPxQC':_0x118f3c(0x164),'CwuvP':'write_lock_error','xRmAi':_0x118f3c(0x13b)};if(!this['enabled'])return{'success':!![],'lockValue':null,'lockKey':null};const _0xe86f39=this['buildLockKey']({..._0x4e6a10,'lockType':_0x118f3c(0x17b)}),_0x336a15=this[_0x118f3c(0x175)]({..._0x4e6a10,'lockType':'read'}),_0x4320f8=this['generateLockValue']();try{const _0x4571a7=redisClient[_0x118f3c(0x172)]();if(this['strategy']===_0x118f3c(0x184)){const _0x55a268=await _0x4571a7['set'](_0xe86f39,_0x4320f8,'EX',this[_0x118f3c(0x137)],'NX');if(_0x55a268==='OK')return logger['debug']({'event':_0x3c3e9d['nRrBn'],'key':_0xe86f39,'value':_0x4320f8,'strategy':_0x118f3c(0x184)},_0x3c3e9d[_0x118f3c(0x13e)]),{'success':!![],'lockValue':_0x4320f8,'lockKey':_0xe86f39};return logger[_0x118f3c(0x183)]({'event':_0x3c3e9d[_0x118f3c(0x149)],'key':_0xe86f39},'WRITE\x20lock\x20rejected\x20-\x20record\x20busy'),{'success':![],'lockValue':null,'lockKey':null};}for(let _0x53a89d=0x0;_0x53a89d<this[_0x118f3c(0x141)];_0x53a89d++){const [_0x91da0a,_0x2854fa]=await Promise['all']([_0x4571a7[_0x118f3c(0x145)](_0x336a15),_0x4571a7[_0x118f3c(0x145)](_0xe86f39)]);if(!_0x2854fa&&(!_0x91da0a||parseInt(_0x91da0a)===0x0)){const _0x6735c6=await _0x4571a7['set'](_0xe86f39,_0x4320f8,'EX',this[_0x118f3c(0x137)],'NX');if(_0x3c3e9d['JYOpD'](_0x6735c6,'OK'))return logger['debug']({'event':_0x118f3c(0x15d),'key':_0xe86f39,'value':_0x4320f8,'strategy':'retry'},_0x3c3e9d[_0x118f3c(0x13a)]),{'success':!![],'lockValue':_0x4320f8,'lockKey':_0xe86f39};}logger['debug']({'event':'write_lock_waiting','writeKey':_0xe86f39,'readCount':_0x91da0a,'attempt':_0x53a89d},'Waiting\x20for\x20locks\x20to\x20release'),await this[_0x118f3c(0x17e)](this[_0x118f3c(0x16a)]*Math['pow'](0x2,_0x53a89d));}return logger[_0x118f3c(0x160)]({'event':'write_lock_timeout','key':_0xe86f39},_0x118f3c(0x130)),{'success':![],'lockValue':null,'lockKey':null};}catch(_0xc081d9){return logger['error']({'event':_0x3c3e9d['CwuvP'],'error':_0xc081d9['message']},_0x3c3e9d[_0x118f3c(0x178)]),{'success':![],'lockValue':null,'lockKey':null};}}async['releaseLock'](_0x54182c,_0x5bdac5){const _0xe8863c=a0_0x21291f,_0x54d6b4={'mANPA':function(_0x58e957,_0x458701){return _0x58e957(_0x458701);},'WIijH':_0xe8863c(0x147),'uPAhr':function(_0x371b88,_0x1a9fbb){return _0x371b88===_0x1a9fbb;},'ZNuNx':_0xe8863c(0x14c),'pfldc':'lock_release_not_owner','CxwjZ':'Lock\x20release\x20error'};if(!this['enabled']||!_0x54182c)return!![];try{const _0x53a614=redisClient['getClient']();if(_0x54182c[_0xe8863c(0x15e)](_0xe8863c(0x17c))){await _0x53a614[_0xe8863c(0x14e)](_0x54182c);const _0x5f0ef3=_0x54182c[_0xe8863c(0x165)](0x0,_0x54182c[_0xe8863c(0x15f)](':')),_0x504042=await _0x53a614['get'](_0x5f0ef3);return _0x504042&&_0x54d6b4['mANPA'](parseInt,_0x504042)>0x0&&await _0x53a614['decr'](_0x5f0ef3),logger['debug']({'event':_0x54d6b4['WIijH'],'key':_0x54182c},'READ\x20lock\x20released'),!![];}const _0xefb15='\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20redis.call(\x22get\x22,\x20KEYS[1])\x20==\x20ARGV[1]\x20then\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20redis.call(\x22del\x22,\x20KEYS[1])\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x200\x0a\x20\x20\x20\x20\x20\x20\x20\x20end\x0a\x20\x20\x20\x20\x20\x20',_0x3d6657=await _0x53a614['eval'](_0xefb15,0x1,_0x54182c,_0x5bdac5);if(_0x54d6b4[_0xe8863c(0x176)](_0x3d6657,0x1))return logger['debug']({'event':_0xe8863c(0x151),'key':_0x54182c},_0x54d6b4['ZNuNx']),!![];return logger['warn']({'event':_0x54d6b4['pfldc'],'key':_0x54182c},'Cannot\x20release\x20lock\x20-\x20not\x20owner'),![];}catch(_0x310872){return logger[_0xe8863c(0x171)]({'event':_0xe8863c(0x134),'key':_0x54182c,'error':_0x310872['message']},_0x54d6b4['CxwjZ']),![];}}async[a0_0x21291f(0x174)](_0x2e5580,_0x2f11dc,_0x114ee4=null){const _0x5924ab=a0_0x21291f,_0x6fe960={'TKTUu':function(_0x2f884e,_0x9287d6){return _0x2f884e===_0x9287d6;},'YBkJT':_0x5924ab(0x14a),'uowFN':_0x5924ab(0x132),'BVlVX':_0x5924ab(0x12c)};if(!this[_0x5924ab(0x153)]||!_0x2e5580)return!![];try{const _0x36ddfa=redisClient['getClient'](),_0x30d8b4='\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20redis.call(\x22get\x22,\x20KEYS[1])\x20==\x20ARGV[1]\x20then\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20redis.call(\x22expire\x22,\x20KEYS[1],\x20ARGV[2])\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x200\x0a\x20\x20\x20\x20\x20\x20\x20\x20end\x0a\x20\x20\x20\x20\x20\x20',_0x46dea3=await _0x36ddfa[_0x5924ab(0x17d)](_0x30d8b4,0x1,_0x2e5580,_0x2f11dc,_0x114ee4||this[_0x5924ab(0x137)]);if(_0x6fe960[_0x5924ab(0x135)](_0x46dea3,0x1))return logger[_0x5924ab(0x183)]({'event':_0x5924ab(0x131),'key':_0x2e5580,'ttl':_0x114ee4||this[_0x5924ab(0x137)]},_0x6fe960['YBkJT']),!![];return![];}catch(_0x43d516){return logger['error']({'event':_0x6fe960['uowFN'],'key':_0x2e5580,'error':_0x43d516['message']},_0x6fe960['BVlVX']),![];}}[a0_0x21291f(0x17a)](){const _0xbce554=a0_0x21291f;return this[_0xbce554(0x153)];}[a0_0x21291f(0x17e)](_0x4ec993){return new Promise(_0x256e3f=>setTimeout(_0x256e3f,_0x4ec993));}async[a0_0x21291f(0x152)](_0x571b05){const _0x1f2abf=a0_0x21291f,_0x5d2fc6={'eAfCH':function(_0x29fc2c,_0x3235a2){return _0x29fc2c(_0x3235a2);}};if(!this[_0x1f2abf(0x153)])return{'enabled':![]};try{const _0x411e03=redisClient['getClient'](),_0x44c658=this[_0x1f2abf(0x175)]({..._0x571b05,'lockType':_0x1f2abf(0x17b)}),_0x404004=this[_0x1f2abf(0x175)]({..._0x571b05,'lockType':_0x1f2abf(0x182)}),[_0xa0f49,_0x3e8d7b]=await Promise['all']([_0x411e03['get'](_0x44c658),_0x411e03['get'](_0x404004)]);return{'enabled':!![],'writeLock':_0xa0f49||null,'readCount':_0x5d2fc6[_0x1f2abf(0x157)](parseInt,_0x3e8d7b)||0x0,'writeKey':_0x44c658,'readKey':_0x404004};}catch(_0x5abc3e){return{'enabled':!![],'error':_0x5abc3e['message']};}}}module[a0_0x21291f(0x14f)]=new LockManager();
@@ -1 +1 @@
1
- function a0_0x21a4(){const _0x4529b6=['CgLUBW','CgfKrw5K','CuPqtLO','r2XVyMfSigvYCM9YigHHBMrSzxjZigLUAxrPywXPEMvK','tvbeDKS','tuj4DMK','yMfZzvvYBa','yxbWlMXVzW','CM93C0fMzMvJDgvK','Bwf0y2G','r3bcuhC','Dwf0BKi','C3vIC3rYAw5N','Bwf4','zMXVB3i','wvnNC2e','y3jLzgvUDgLHBhm','vu5ltK9xtG','vvbeqvrf','vhPvB2y','uwfftNO','zxHPC3rZu3LUyW','y2HPBgq','Cg9YDa','whDut0u','zgf0ywjHC2u','C3rHCNrZv2L0Aa','thHhA1K','BgvUz3rO','zxHWB3j0CW','reLNqM4','C29Tzq','u1jeuNm','C2vJCMv0','mJuWndyYnxPfwuLpuq','CMvXlMHLywrLCNnBiNGTyxbPlwTLEsjD','ChjPDMf0zv9RzxK','AgvHzgvYCW','vLrqBuW','zw5KCg9PBNrFCMvNAxn0zxjLza','DgvZDa','iokvKqRILzeGiefqssblzxKGicaGidOG','u0vsvKLdrv9oqu1f','C3rHDhvZ','zw52','C3rYAw5NAwz5','u1rbuLqGvfjbtLnbq1rjt04','C3rHDhvZq29Kzq','ChjVy2vZC193yxjUAw5N','zMf0ywXFzxjYB3i','ANftr2G','C3nU','CMvWzwf0','Cfvrs2O','y3jLyxrLv3jPDgvtDhjLyw0','Aw5MBW','nJe2nw91ywDOCW','Cxb3Efy','DxrZBw8','mte0mZq1n3ftsfnVzG','mJK4otq0BLHJDxDI','CMvZDgzVCMDL','quXurvi','te9hx1rpx0zjteu','Dg9ju09tDhjPBMC','rermx0fmvevs','lI9SB2DZlW','C29Qq3e','BxmP','u1fmx0Xpr19ftKfcteve','A2v5CW','revmrvrf','u2vYDMvYihn0yxj0Aw5NoIa','zgf0ywjHC2vFy29UzMLN','D3jPDgu','AM9PBG','Bwv0Ag9K','ChjVzhvJDgLVBG','zgv2zwXVCg1LBNq','Dw5RBM93BG','vurvueO','rKfuquW6ia','zwT6r2K','rermx0rst1a','mZaYmJG2DgnwBLD6','Ec1Yzxf1zxn0lwLK','Ag9ZDa','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','C3rYAw5N','DhjPBq','ic0G','rMLSzsbSB2DNAw5NigvUywjSzwq6ia','zMH3zvC','yxbPx2TLEq','yxbPx3nLy3jLDa','Dg9Rzw4','Dg9mB3DLCKnHC2u','w09lxsbqCM9Qzwn0igXVywrLzdOG','qM5htLK','mtuYmJKYmgzWrxLUqG','tM9TseK','uLDdCeK','ChjVAMvJDa','DwjAALG','uKvtvezpuKDfifjvtLrjtuuGu0vsvKvs','ChjPDMf0zwTLEq','Aw5JBhvKzxm','zfHtDu8','CMvTB3rLqwrKCMvZCW','rhPVChy','Ahr0Cf9LCNjVCG','zgvND0i','ote2mti0Bg92uNnK','ugDSD1u','sLDux1nfq1jfva','y3jLzgL0y2fYza','AMntqxa','svnjuw4','B05eEuy','mtC1mtjyDwD5BNy','te9hx0rjuG','w1jfrefdvevexq','ms4WlJu','zhvYyxrPB25nCW','DxnLCG','BwvZC2fNzq','CeXKwhK','vhjHBNnHy3rPB24G','tK9erv9ftLy','y3jLzgL0x2nHCMq','Cfbnvui','u1fmx0Xpr19mrvzfta','sKnms1y','yxbPA2v5','B2jQzwn0','C3rHy2S','icbjBMzVoIaGia','BwfW','yxbPs2v5','qvbqx1zfuLnjt04','y29UzMLNrMLSzq','ChDK','z2XVyMfSx2vYCM9Yx2HHBMrSzxjZx3nLDhvW','w1jfrefdveveoMHHC2HD','sw50zxjUywWGC2vYDMvYigvYCM9Y','reiGuxvLCNK','wejwDxm','DhLWzq','mtv5CeXwtfO','y29UBMvJDgLVBG','q1jjveLdquW','D2fYBG','BMfTzq','C3rKu2vYAwfSAxPLCNm','CgfZC3DVCMq','ANLIwuK','su5trvju','z2v0','Ahj0Aw1L','y29Kzq','BNvpwwO','CgLU','zMf0ywW','q09ntuLu','rxjYB3i','zxjYB3i','z2v0sgvHzgvYCW','CMvMCMvZAf90B2TLBG','Cgf0Aa','qvPevuW','qLjJqxC','zgjFDhjHBNnHy3rPB24','zgvIDwC','rfjpua','tgXZs0m','C2vYDMvYx3n0yxj0Aw5N','C2vYDMLJzuLUzM8','rMfPBgvKihrVignYzwf0zsbSB2CGzgLYzwn0B3j5ia','rgf0ywjHC2u6ia','zMLSzv9SB2DNAw5Nx2vUywjSzwq','AgvHBhrOq2HLy2S','Dg9vChbLCKnHC2u','CMvWBgfJzq','ALDUt2e','vvLiB0W','yM9KEq'];a0_0x21a4=function(){return _0x4529b6;};return a0_0x21a4();}const a0_0x34f8c3=a0_0x1fb1;(function(_0x2c2239,_0x513fb6){const _0x3c1e99=a0_0x1fb1,_0x3aba2a=_0x2c2239();while(!![]){try{const _0x31dd43=parseInt(_0x3c1e99(0x268))/0x1+parseInt(_0x3c1e99(0x280))/0x2+-parseInt(_0x3c1e99(0x24e))/0x3+parseInt(_0x3c1e99(0x1e2))/0x4*(-parseInt(_0x3c1e99(0x206))/0x5)+parseInt(_0x3c1e99(0x28f))/0x6+-parseInt(_0x3c1e99(0x267))/0x7+-parseInt(_0x3c1e99(0x1e9))/0x8*(-parseInt(_0x3c1e99(0x264))/0x9);if(_0x31dd43===_0x513fb6)break;else _0x3aba2a['push'](_0x3aba2a['shift']());}catch(_0x299f48){_0x3aba2a['push'](_0x3aba2a['shift']());}}}(a0_0x21a4,0x7e7a5));const pino=require(a0_0x34f8c3(0x22c)),fs=require('fs'),path=require(a0_0x34f8c3(0x21a));let logToFile=![],logDir='./logs',serviceName=a0_0x34f8c3(0x269),sqlLogEnabled=![],sqlLogLevel=a0_0x34f8c3(0x21e),sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;const prettyPrintOptions={'colorize':!![],'translateTime':'SYS:HH:MM:ss','ignore':'pid,hostname,service,version,env,event,module,port,config,apiKeyEnabled,path,workingDir,isPkg,isNodeScript,file,email,type,cors,logging,apiKey,count,endpoint,route','singleLine':![],'levelFirst':!![],'messageFormat':'{msg}','customColors':'info:blue,warn:yellow,error:red,debug:gray','hideObject':!![]},isDevelopment=process['env'][a0_0x34f8c3(0x1f2)]!==a0_0x34f8c3(0x279),logLevel=process['env']['LOG_LEVEL']||a0_0x34f8c3(0x263);let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':'pino-pretty','options':prettyPrintOptions}:undefined,'base':{'service':a0_0x34f8c3(0x269),'version':process['env'][a0_0x34f8c3(0x1fd)]||a0_0x34f8c3(0x1ec),'env':process[a0_0x34f8c3(0x258)]['NODE_ENV']||a0_0x34f8c3(0x27a)},'timestamp':pino['stdTimeFunctions']['isoTime'],'redact':{'paths':['req.headers.authorization',a0_0x34f8c3(0x24f),'password',a0_0x34f8c3(0x28b),a0_0x34f8c3(0x1fc),'DB_PASSWORD',a0_0x34f8c3(0x1e4)],'censor':a0_0x34f8c3(0x1eb)},'serializers':{'req':_0x139073=>({'id':_0x139073['id'],'method':_0x139073[a0_0x34f8c3(0x278)],'url':_0x139073['url'],'path':_0x139073['path'],'remoteAddress':_0x139073['ip']||_0x139073[a0_0x34f8c3(0x207)]?.[a0_0x34f8c3(0x298)]}),'res':_0x4a9e41=>({'statusCode':_0x4a9e41['statusCode'],'headers':_0x4a9e41[a0_0x34f8c3(0x218)]?.()}),'err':pino[a0_0x34f8c3(0x20b)]['err']}});function initFileLogging(){const _0x3c1c2c=a0_0x34f8c3,_0x570677={'PRELu':_0x3c1c2c(0x269),'fhweW':function(_0x43d483,_0x769f67){return _0x43d483===_0x769f67;},'YMFwN':'true','qJPNZ':function(_0x3afff0,_0x1fdb4e){return _0x3afff0!==_0x1fdb4e;},'UDUPJ':_0x3c1c2c(0x233),'LkffW':_0x3c1c2c(0x225),'lmXlI':function(_0x1f3467,_0x5e11f8,_0xbfe694){return _0x1f3467(_0x5e11f8,_0xbfe694);},'sojCq':'info'};if(fileLoggingInitialized)return;logToFile=process['env'][_0x3c1c2c(0x26b)]==='true';const _0x37f3ff=process['env'][_0x3c1c2c(0x283)]||'default';logDir=process['env'][_0x3c1c2c(0x1ea)]||_0x3c1c2c(0x26e)+_0x37f3ff,serviceName=process[_0x3c1c2c(0x258)][_0x3c1c2c(0x256)]||_0x570677['PRELu'],sqlLogEnabled=_0x570677[_0x3c1c2c(0x288)](process['env'][_0x3c1c2c(0x271)],_0x570677['YMFwN']),sqlLogLevel=process['env'][_0x3c1c2c(0x1f5)]||_0x3c1c2c(0x21e),sqlLogParams=_0x570677[_0x3c1c2c(0x22e)](process[_0x3c1c2c(0x258)]['SQL_LOG_PARAMS'],'false'),sqlLogSlowThreshold=parseInt(process['env']['SQL_LOG_SLOW_THRESHOLD'])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x481e02=path['resolve'](process['cwd'](),logDir);try{!fs[_0x3c1c2c(0x241)](_0x481e02)&&fs['mkdirSync'](_0x481e02,{'recursive':!![]});}catch(_0x21c5af){console[_0x3c1c2c(0x217)](_0x3c1c2c(0x223)+_0x481e02+':',_0x21c5af['message']),fileLoggingInitialized=!![];return;}const _0x58844c=path[_0x3c1c2c(0x277)](_0x481e02,_0x570677[_0x3c1c2c(0x27c)]),_0x41b55e=path['join'](_0x481e02,'error.log');try{appLogStream=fs[_0x3c1c2c(0x262)](_0x58844c,{'flags':'a'}),errorLogStream=fs[_0x3c1c2c(0x262)](_0x41b55e,{'flags':'a'}),fileLoggingInitialized=!![];const _0x494b5c={'event':_0x570677['LkffW'],'logDir':_0x481e02,'files':[_0x570677[_0x3c1c2c(0x27c)],'error.log']},_0x2fa4eb=_0x3c1c2c(0x287)+_0x481e02;logger['info'](_0x494b5c,_0x2fa4eb),_0x570677['lmXlI'](writeToFileLog,{..._0x494b5c,'level':_0x570677[_0x3c1c2c(0x26f)],'msg':_0x2fa4eb,'time':new Date()['toISOString']()},'info');}catch(_0x22977f){console[_0x3c1c2c(0x217)]('Failed\x20to\x20create\x20log\x20streams:',_0x22977f['message']),fileLoggingInitialized=!![];}}function a0_0x1fb1(_0xad57a0,_0x356703){_0xad57a0=_0xad57a0-0x1df;const _0x21a4cc=a0_0x21a4();let _0x1fb15a=_0x21a4cc[_0xad57a0];if(a0_0x1fb1['dlQrqo']===undefined){var _0x2efcce=function(_0x4f00ac){const _0x3ed77a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x340a0a='',_0x6a5528='';for(let _0xdc4219=0x0,_0x27e342,_0x4c78f2,_0x86cb3a=0x0;_0x4c78f2=_0x4f00ac['charAt'](_0x86cb3a++);~_0x4c78f2&&(_0x27e342=_0xdc4219%0x4?_0x27e342*0x40+_0x4c78f2:_0x4c78f2,_0xdc4219++%0x4)?_0x340a0a+=String['fromCharCode'](0xff&_0x27e342>>(-0x2*_0xdc4219&0x6)):0x0){_0x4c78f2=_0x3ed77a['indexOf'](_0x4c78f2);}for(let _0x1901cd=0x0,_0x1d6b2a=_0x340a0a['length'];_0x1901cd<_0x1d6b2a;_0x1901cd++){_0x6a5528+='%'+('00'+_0x340a0a['charCodeAt'](_0x1901cd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x6a5528);};a0_0x1fb1['ZEmsqW']=_0x2efcce,a0_0x1fb1['eCSnUq']={},a0_0x1fb1['dlQrqo']=!![];}const _0x5b2ce2=_0x21a4cc[0x0],_0x3c6bbc=_0xad57a0+_0x5b2ce2,_0x3601c2=a0_0x1fb1['eCSnUq'][_0x3c6bbc];return!_0x3601c2?(_0x1fb15a=a0_0x1fb1['ZEmsqW'](_0x1fb15a),a0_0x1fb1['eCSnUq'][_0x3c6bbc]=_0x1fb15a):_0x1fb15a=_0x3601c2,_0x1fb15a;}function writeToFileLog(_0x21a7ae,_0x2fec91){const _0x52ab3c=a0_0x34f8c3,_0x18c046={'QzqMz':function(_0xe2a749,_0x2ebe69){return _0xe2a749||_0x2ebe69;},'LxGkY':function(_0x1c2bfc,_0x18fb07){return _0x1c2bfc===_0x18fb07;},'loiGN':_0x52ab3c(0x214)};if(_0x18c046['QzqMz'](!logToFile,!appLogStream))return;const _0x5843e0={'service':serviceName,..._0x21a7ae},_0x3cb87c=JSON[_0x52ab3c(0x259)](_0x5843e0)+'\x0a';appLogStream[_0x52ab3c(0x276)](_0x3cb87c),(_0x18c046['LxGkY'](_0x2fec91,'error')||_0x18c046[_0x52ab3c(0x247)](_0x2fec91,_0x18c046['loiGN']))&&(errorLogStream&&errorLogStream[_0x52ab3c(0x276)](_0x3cb87c));}const createRequestLogger=(_0x3403cc={})=>{const _0x45da32=a0_0x34f8c3;return logger[_0x45da32(0x242)](_0x3403cc);},logServerStart=_0x410cd3=>{const _0x141f3e=a0_0x34f8c3,_0x51bc17={'HsgZs':'Node.js','hPcaa':function(_0x28dbf4,_0x5cbc86){return _0x28dbf4(_0x5cbc86);},'DEZtI':'Default'},_0x19a610=_0x141f3e(0x294),_0xba5f0f=Math[_0x141f3e(0x239)](0x0,0x37-_0x19a610['length']),_0x2a276b=Math[_0x141f3e(0x23a)](_0xba5f0f/0x2),_0x54b5c7=_0xba5f0f-_0x2a276b,_0x545e13='║'+'\x20'[_0x141f3e(0x260)](_0x2a276b)+_0x19a610+'\x20'['repeat'](_0x54b5c7)+'║',_0x12790f='\x0a╔═══════════════════════════════════════════════════════╗\x0a'+_0x545e13+'\x0a╠═══════════════════════════════════════════════════════╣\x0a║\x20\x20Environment\x20:\x20'+(_0x410cd3['environment']||_0x51bc17['HsgZs'])['padEnd'](0x26)+'\x20║\x0a║\x20\x20Project\x20\x20\x20\x20\x20:\x20'+(_0x410cd3[_0x141f3e(0x292)]||'N/A')[_0x141f3e(0x22d)](0x26)+'\x20║\x0a║\x20\x20Port\x20\x20\x20\x20\x20\x20\x20\x20:\x20'+_0x51bc17['hPcaa'](String,_0x410cd3['port']||0xbb8)[_0x141f3e(0x22d)](0x26)+'\x20║\x0a║\x20\x20Config\x20\x20\x20\x20\x20\x20:\x20'+(_0x410cd3['configFile']||_0x51bc17['DEZtI'])[_0x141f3e(0x22d)](0x26)+_0x141f3e(0x255)+(_0x410cd3[_0x141f3e(0x1fc)]?'ACTIVE':'NOT\x20ACTIVE')['padEnd'](0x26)+'\x20║\x0a╚═══════════════════════════════════════════════════════╝';console['log'](_0x12790f);const _0x48f7d3={'event':_0x141f3e(0x221),'project':_0x410cd3['project'],'port':_0x410cd3['port'],'config':_0x410cd3[_0x141f3e(0x1fe)],'apiKeyEnabled':!!_0x410cd3[_0x141f3e(0x1fc)]};logger['info'](_0x48f7d3),writeToFileLog({..._0x48f7d3,'level':_0x141f3e(0x263),'msg':_0x141f3e(0x274)+_0x410cd3['project']+'\x20on\x20port\x20'+_0x410cd3[_0x141f3e(0x243)],'time':new Date()['toISOString']()},_0x141f3e(0x263));},logServerReady=_0x2fd809=>{const _0xa4e9f0=a0_0x34f8c3,_0x3b1f32={'DIgBn':'server_ready','JCLKV':_0xa4e9f0(0x263)},_0x4dcd95={'event':_0x3b1f32[_0xa4e9f0(0x24a)],'port':_0x2fd809[_0xa4e9f0(0x243)],'module':_0x2fd809['module'],'healthCheck':_0x2fd809['healthCheck'],'serviceInfo':_0x2fd809[_0xa4e9f0(0x222)],'baseUrl':_0x2fd809[_0xa4e9f0(0x232)]},_0x44493f='[OK]\x20Server\x20ready\x20on\x20port\x20'+_0x2fd809[_0xa4e9f0(0x243)];logger['info'](_0x4dcd95,_0x44493f),writeToFileLog({..._0x4dcd95,'level':_0x3b1f32[_0xa4e9f0(0x1f6)],'msg':_0x44493f,'time':new Date()[_0xa4e9f0(0x26c)]()},_0x3b1f32['JCLKV']),_0x2fd809[_0xa4e9f0(0x226)]&&logger[_0xa4e9f0(0x263)]('\x20\x20Health:\x20'+_0x2fd809[_0xa4e9f0(0x226)]),_0x2fd809[_0xa4e9f0(0x222)]&&logger[_0xa4e9f0(0x263)](_0xa4e9f0(0x1fa)+_0x2fd809[_0xa4e9f0(0x222)]),_0x2fd809[_0xa4e9f0(0x232)]&&logger['info']('\x20\x20URL:\x20\x20\x20\x20'+_0x2fd809['baseUrl']);},logProjectLoaded=(_0x338eba,_0x9249f0)=>{const _0x22137c=a0_0x34f8c3,_0x5d153c={'degwB':function(_0x9aac94,_0x2268ed,_0x1d31f7){return _0x9aac94(_0x2268ed,_0x1d31f7);},'tdtxS':'info'},_0x8fa06e={'event':'project_loaded','project':_0x338eba,'path':_0x9249f0},_0x2707aa=_0x22137c(0x28d)+_0x338eba;logger['info'](_0x8fa06e,_0x2707aa),_0x5d153c[_0x22137c(0x1e1)](writeToFileLog,{..._0x8fa06e,'level':_0x5d153c['tdtxS'],'msg':_0x2707aa,'time':new Date()[_0x22137c(0x26c)]()},_0x22137c(0x263));},logEndpointRegistered=(_0x30a619,_0x3e43e3)=>{const _0xd769e7=a0_0x34f8c3,_0x49d1f2={'ZUXlC':_0xd769e7(0x253),'CbpGj':function(_0x259984,_0x1cf706,_0xa97a24){return _0x259984(_0x1cf706,_0xa97a24);},'XwTOE':'debug'},_0x2ed990={'event':_0x49d1f2['ZUXlC'],'endpoint':_0x30a619,'route':_0x3e43e3},_0x4a7c8e='\x20\x20→\x20'+_0x30a619+':\x20'+_0x3e43e3;logger[_0xd769e7(0x21e)](_0x2ed990,_0x4a7c8e),_0x49d1f2['CbpGj'](writeToFileLog,{..._0x2ed990,'level':_0x49d1f2[_0xd769e7(0x244)],'msg':_0x4a7c8e,'time':new Date()[_0xd769e7(0x26c)]()},_0x49d1f2[_0xd769e7(0x244)]);},logDatabaseConfig=_0x5bf781=>{const _0x55f8db=a0_0x34f8c3,_0x283785={'BnGNY':_0x55f8db(0x275),'ytaxo':function(_0x408567,_0x5d0782,_0xa83fdd){return _0x408567(_0x5d0782,_0xa83fdd);}},_0x450a6c={'event':_0x283785[_0x55f8db(0x28e)],'host':_0x5bf781[_0x55f8db(0x282)],'port':_0x5bf781['port'],'database':_0x5bf781[_0x55f8db(0x245)],'type':_0x5bf781['type'],'user':_0x5bf781[_0x55f8db(0x1ee)]},_0x43df80=_0x55f8db(0x224)+_0x5bf781[_0x55f8db(0x205)]+'://'+_0x5bf781['host']+':'+_0x5bf781[_0x55f8db(0x243)]+'/'+_0x5bf781['database'];logger[_0x55f8db(0x21e)](_0x450a6c,_0x43df80),_0x283785['ytaxo'](writeToFileLog,{..._0x450a6c,'level':_0x55f8db(0x21e),'msg':_0x43df80,'time':new Date()['toISOString']()},_0x55f8db(0x21e));},logRequest=(_0x356983,_0x427417,_0x4165fa)=>{const _0x1eb1d2=a0_0x34f8c3,_0x48f187={'jyYiF':'info','ekzGi':function(_0x3158ad,_0x1bfe11){return _0x3158ad>=_0x1bfe11;},'MBxvi':_0x1eb1d2(0x209)},_0x52a5d4={'event':'http_request','method':_0x356983[_0x1eb1d2(0x278)],'path':_0x356983[_0x1eb1d2(0x21a)],'statusCode':_0x427417['statusCode'],'durationMs':_0x4165fa,'ip':_0x356983['ip']},_0x47f163=_0x356983['method']+'\x20'+_0x356983['path']+_0x1eb1d2(0x286)+_0x427417['statusCode']+'\x20('+_0x4165fa+_0x1eb1d2(0x270);let _0x2612ea=_0x48f187['jyYiF'];if(_0x48f187['ekzGi'](_0x427417['statusCode'],0x1f4))_0x2612ea='error',logger[_0x1eb1d2(0x217)](_0x52a5d4,_0x47f163);else _0x48f187[_0x1eb1d2(0x27e)](_0x427417[_0x1eb1d2(0x25b)],0x190)?(_0x2612ea=_0x48f187[_0x1eb1d2(0x231)],logger['warn'](_0x52a5d4,_0x47f163)):logger['info'](_0x52a5d4,_0x47f163);writeToFileLog({..._0x52a5d4,'level':_0x2612ea,'msg':_0x47f163,'time':new Date()[_0x1eb1d2(0x26c)]()},_0x2612ea);},SENSITIVE_PARAM_PATTERNS=[a0_0x34f8c3(0x20c),'passwd',a0_0x34f8c3(0x1ff),a0_0x34f8c3(0x28b),'access_token',a0_0x34f8c3(0x219),a0_0x34f8c3(0x24d),a0_0x34f8c3(0x28a),a0_0x34f8c3(0x1f7),a0_0x34f8c3(0x289),'credential',a0_0x34f8c3(0x23c),'pin','otp','private_key','privatekey'],redactSensitiveParams=(_0x3156f1,_0x1a822f)=>{const _0x5c1418=a0_0x34f8c3,_0x45f6a5={'orHXf':_0x5c1418(0x284),'COFDi':_0x5c1418(0x201)};if(!_0x3156f1||_0x3156f1[_0x5c1418(0x248)]===0x0)return _0x3156f1;const _0x4c7a92=_0x1a822f['toLowerCase'](),_0xa6465d=_0x4c7a92['match'](/\(([^)]+)\)\s*values/i);let _0x3cad43=[];_0xa6465d&&(_0x3cad43=_0xa6465d[0x1]['split'](',')[_0x5c1418(0x1fb)](_0x2f738f=>_0x2f738f[_0x5c1418(0x285)]()[_0x5c1418(0x28c)]()));const _0x1ce2a4=_0x4c7a92['match'](/set\s+(.+?)(?:\s+where|$)/i);if(_0x1ce2a4){const _0x573201=_0x1ce2a4[0x1],_0x339747=_0x573201['match'](/(\w+)\s*=/g);_0x339747&&(_0x3cad43=_0x339747[_0x5c1418(0x1fb)](_0x371a51=>_0x371a51[_0x5c1418(0x228)](/\s*=/,'')[_0x5c1418(0x285)]()[_0x5c1418(0x28c)]()));}return _0x3156f1['map']((_0x3ac284,_0x559057)=>{const _0x2fc117=_0x5c1418;if(_0x3cad43[_0x559057]){const _0x3c0a1c=_0x3cad43[_0x559057],_0x5b321d=SENSITIVE_PARAM_PATTERNS[_0x2fc117(0x24b)](_0x134114=>_0x3c0a1c['includes'](_0x134114));if(_0x5b321d)return _0x2fc117(0x1eb);}if(typeof _0x3ac284===_0x45f6a5['orHXf']&&_0x3ac284[_0x2fc117(0x248)]>0x20){if(/^[a-zA-Z0-9+/=_.-]+$/['test'](_0x3ac284)&&_0x3ac284[_0x2fc117(0x296)]('.'))return'[REDACTED:token]';if(/^[a-fA-F0-9]{32,}$/[_0x2fc117(0x254)](_0x3ac284))return _0x45f6a5['COFDi'];}return _0x3ac284;});},parseQueryMetadata=_0x90cf3b=>{const _0x410419=a0_0x34f8c3,_0xefd1a3={'uatnB':_0x410419(0x23d),'UYHoL':_0x410419(0x20e),'oNDyF':'BEGIN','RWCpI':_0x410419(0x25a),'zOhAz':'TRANSACTION_BEGIN','UAhpi':_0x410419(0x215),'XBVus':'TRANSACTION_COMMIT','pLdXy':'ROLLBACK','TMazJ':'DDL_CREATE','YSgsa':_0x410419(0x26a),'fbpXV':_0x410419(0x26d),'MkCfn':_0x410419(0x27f)},_0x3183a0=_0x90cf3b['trim'](),_0x491145=_0x3183a0['toUpperCase']();let _0x457a32=_0xefd1a3[_0x410419(0x237)],_0x398833=null;if(_0x491145[_0x410419(0x246)]('SELECT')){_0x457a32='SELECT';const _0x5287aa=_0x3183a0[_0x410419(0x235)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x398833=_0x5287aa?_0x5287aa[0x1]:null;}else{if(_0x491145['startsWith'](_0xefd1a3[_0x410419(0x22a)])){_0x457a32=_0xefd1a3['UYHoL'];const _0x17da23=_0x3183a0['match'](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x398833=_0x17da23?_0x17da23[0x1]:null;}else{if(_0x491145['startsWith']('UPDATE')){_0x457a32=_0x410419(0x23e);const _0x45ca34=_0x3183a0[_0x410419(0x235)](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x398833=_0x45ca34?_0x45ca34[0x1]:null;}else{if(_0x491145['startsWith'](_0x410419(0x273))){_0x457a32='DELETE';const _0x49e3f3=_0x3183a0['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x398833=_0x49e3f3?_0x49e3f3[0x1]:null;}else{if(_0x491145['startsWith'](_0xefd1a3[_0x410419(0x1e8)])||_0x491145['startsWith'](_0xefd1a3[_0x410419(0x291)]))_0x457a32=_0xefd1a3['zOhAz'];else{if(_0x491145['startsWith'](_0xefd1a3['UAhpi']))_0x457a32=_0xefd1a3[_0x410419(0x204)];else{if(_0x491145[_0x410419(0x246)](_0xefd1a3[_0x410419(0x1f0)]))_0x457a32='TRANSACTION_ROLLBACK';else{if(_0x491145['startsWith']('CREATE'))_0x457a32=_0xefd1a3['TMazJ'];else{if(_0x491145['startsWith'](_0xefd1a3[_0x410419(0x23b)]))_0x457a32=_0xefd1a3['fbpXV'];else _0x491145[_0x410419(0x246)](_0x410419(0x21f))&&(_0x457a32=_0xefd1a3['MkCfn']);}}}}}}}}return{'type':_0x457a32,'table':_0x398833};},startQueryTimer=()=>{const _0x29be2e=a0_0x34f8c3,_0x4ca390={'VTPmL':function(_0x402abc,_0x56919c){return _0x402abc(_0x56919c);},'ubZjX':function(_0xee6f37,_0x321476){return _0xee6f37+_0x321476;},'iEgZC':function(_0x171e40,_0x5ce4ef){return _0x171e40/_0x5ce4ef;}},_0x2f6e43=process[_0x29be2e(0x210)]();return()=>{const _0x62897c=_0x29be2e,[_0x1815fc,_0x5b3055]=process['hrtime'](_0x2f6e43);return _0x4ca390[_0x62897c(0x252)](parseFloat,_0x4ca390[_0x62897c(0x293)](_0x1815fc*0x3e8,_0x4ca390['iEgZC'](_0x5b3055,0xf4240))['toFixed'](0x2));};},logQuery=(_0x3d577f,_0x292494=[],_0x9108e5={})=>{const _0x2b50b7=a0_0x34f8c3,_0x296223={'QaENz':_0x2b50b7(0x203),'MPDvK':'postgresql','keVci':function(_0x5daefa,_0x48dd75){return _0x5daefa(_0x48dd75);},'qpwxV':function(_0x43dbf4,_0xc34c28,_0x47e39c){return _0x43dbf4(_0xc34c28,_0x47e39c);},'bCcuM':function(_0x38b22a,_0x5221c4){return _0x38b22a!==_0x5221c4;},'TzUof':function(_0x2589e3,_0x30271e){return _0x2589e3>_0x30271e;},'RPpte':_0x2b50b7(0x21e),'TqNUU':'\x20[SLOW]','dXSuO':_0x2b50b7(0x209),'jWnOa':'info'};if(!sqlLogEnabled){logger['debug']({'event':'db_query','query':_0x3d577f[_0x2b50b7(0x238)](0x0,0xc8),'paramCount':_0x292494['length']},_0x296223[_0x2b50b7(0x240)]);return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType=_0x296223[_0x2b50b7(0x230)]}=_0x9108e5,{type:_0x5144ef,table:_0x46ded4}=_0x296223['keVci'](parseQueryMetadata,_0x3d577f),_0x25026a={'event':'sql_query','queryType':_0x5144ef,'table':_0x46ded4,'query':_0x3d577f,'paramCount':_0x292494['length'],'dbType':dbType};sqlLogParams&&_0x292494['length']>0x0&&(_0x25026a['params']=_0x296223['qpwxV'](redactSensitiveParams,_0x292494,_0x3d577f));duration!==null&&(_0x25026a[_0x2b50b7(0x1ed)]=duration,_0x25026a['isSlow']=duration>sqlLogSlowThreshold);_0x296223['bCcuM'](rowsAffected,null)&&(_0x25026a[_0x2b50b7(0x234)]=rowsAffected);const _0x384e80=_0x46ded4||_0x2b50b7(0x27b);let _0x3a0a57='['+_0x5144ef+']\x20'+_0x384e80;_0x296223['bCcuM'](duration,null)&&(_0x3a0a57+='\x20('+duration+_0x2b50b7(0x270));const _0x56f0db=duration!==null&&_0x296223[_0x2b50b7(0x23f)](duration,sqlLogSlowThreshold);let _0x1f94d5=_0x296223['RPpte'];if(_0x56f0db)_0x3a0a57+=_0x296223['TqNUU'],_0x1f94d5=_0x296223[_0x2b50b7(0x297)],logger['warn'](_0x25026a,_0x3a0a57);else sqlLogLevel==='info'?(_0x1f94d5=_0x296223[_0x2b50b7(0x229)],logger['info'](_0x25026a,_0x3a0a57)):logger[_0x2b50b7(0x21e)](_0x25026a,_0x3a0a57);_0x296223[_0x2b50b7(0x265)](writeToFileLog,{..._0x25026a,'level':_0x1f94d5,'msg':_0x3a0a57,'time':new Date()['toISOString']()},_0x1f94d5);},logTransaction=(_0x2012db,_0x2be225)=>{const _0x4b79a5=a0_0x34f8c3,_0x2aa2de={'awrbN':function(_0x5338f3,_0xdb2261,_0x2d51b8){return _0x5338f3(_0xdb2261,_0x2d51b8);},'Dzopv':'debug'},_0x18b657={'event':_0x4b79a5(0x21d),'status':_0x2012db,'queryCount':_0x2be225},_0xd2899d=_0x4b79a5(0x1f1)+_0x2012db;logger[_0x4b79a5(0x21e)](_0x18b657,_0xd2899d),_0x2aa2de['awrbN'](writeToFileLog,{..._0x18b657,'level':_0x2aa2de[_0x4b79a5(0x1df)],'msg':_0xd2899d,'time':new Date()[_0x4b79a5(0x26c)]()},_0x4b79a5(0x21e));},redactObject=_0x2a508e=>{const _0x430fea=a0_0x34f8c3,_0x39f9e9={'NomHI':'object','YOgVm':'password','ISIQn':_0x430fea(0x24d),'VhqmK':'authorization','cOBLx':_0x430fea(0x1e5),'QLlhR':_0x430fea(0x1f3),'arFOa':'cvv','OSkbK':_0x430fea(0x25f),'GoEcM':_0x430fea(0x250),'ybCWn':_0x430fea(0x295),'jybYI':_0x430fea(0x219),'TrMKv':'access_token','pUQKj':function(_0x2b7642,_0x55e7ab){return _0x2b7642===_0x55e7ab;},'PglwU':function(_0x430ade,_0xc52271){return _0x430ade(_0xc52271);}};if(!_0x2a508e||typeof _0x2a508e!==_0x39f9e9[_0x430fea(0x290)])return _0x2a508e;const _0x1d86db=[_0x39f9e9['YOgVm'],'passwd',_0x430fea(0x1ff),'token',_0x39f9e9[_0x430fea(0x1e7)],'apikey','api_key',_0x39f9e9['VhqmK'],_0x39f9e9['cOBLx'],_0x39f9e9['QLlhR'],_0x39f9e9['arFOa'],_0x39f9e9['OSkbK'],_0x430fea(0x213),_0x39f9e9['GoEcM'],_0x39f9e9['ybCWn'],_0x39f9e9[_0x430fea(0x20d)],_0x39f9e9['TrMKv']],_0x1cd53c=Array['isArray'](_0x2a508e)?[..._0x2a508e]:{..._0x2a508e};for(const _0x3f72ed of Object[_0x430fea(0x272)](_0x1cd53c)){const _0x272b29=_0x3f72ed['toLowerCase']();if(_0x1d86db['some'](_0x16a08b=>_0x272b29[_0x430fea(0x296)](_0x16a08b)))_0x1cd53c[_0x3f72ed]='[REDACTED]';else _0x39f9e9[_0x430fea(0x261)](typeof _0x1cd53c[_0x3f72ed],_0x430fea(0x1f8))&&_0x1cd53c[_0x3f72ed]!==null&&(_0x1cd53c[_0x3f72ed]=_0x39f9e9[_0x430fea(0x1e3)](redactObject,_0x1cd53c[_0x3f72ed]));}return _0x1cd53c;},logError=(_0x4c1107,_0x5aa6db={},_0x52b346=null)=>{const _0x44a4d9=a0_0x34f8c3,_0x122e1d={'AZDUL':'error','jcSAp':function(_0x2dee59,_0x2d860a,_0x71707d){return _0x2dee59(_0x2d860a,_0x71707d);}},_0x5c6dc2={'event':_0x122e1d[_0x44a4d9(0x21b)],'errorName':_0x4c1107[_0x44a4d9(0x20a)]||'Error','errorMessage':_0x4c1107['message'],'errorCode':_0x4c1107['code']||null,'stack':_0x4c1107[_0x44a4d9(0x1f9)],..._0x5aa6db},_0x80cf30=_0x52b346||'Error:\x20'+_0x4c1107[_0x44a4d9(0x1ef)];logger['error'](_0x5c6dc2,_0x80cf30),_0x122e1d[_0x44a4d9(0x1e6)](writeToFileLog,{..._0x5c6dc2,'level':_0x122e1d[_0x44a4d9(0x21b)],'msg':_0x80cf30,'time':new Date()['toISOString']()},'error');},logFatalError=(_0x4628ed,_0x8fb05a={},_0x68b26e=null)=>{const _0x24d7bb=a0_0x34f8c3,_0x4d9fc9={'event':_0x24d7bb(0x25d),'errorName':_0x4628ed[_0x24d7bb(0x20a)]||'Error','errorMessage':_0x4628ed['message'],'errorCode':_0x4628ed[_0x24d7bb(0x211)]||null,'stack':_0x4628ed[_0x24d7bb(0x1f9)],'severity':'CRITICAL',..._0x8fb05a},_0xfc404a=_0x68b26e||_0x24d7bb(0x27d)+_0x4628ed[_0x24d7bb(0x1ef)];logger['fatal'](_0x4d9fc9,_0xfc404a),writeToFileLog({..._0x4d9fc9,'level':'fatal','msg':_0xfc404a,'time':new Date()[_0x24d7bb(0x26c)]()},'error');},logHttpError=(_0x2f0dd9,_0x1b7fec,_0x407f6e={})=>{const _0x4a7916=a0_0x34f8c3,_0x336842={'Ydkic':_0x4a7916(0x216),'utsmo':'user-agent','LlsKC':function(_0x5ad9d5,_0x262206){return _0x5ad9d5>=_0x262206;},'cSEhH':function(_0x210576,_0x10dd10,_0x4a0cc7){return _0x210576(_0x10dd10,_0x4a0cc7);},'GpBPw':_0x4a7916(0x209),'JVqON':function(_0x226d2e,_0x943a14){return _0x226d2e>=_0x943a14;},'BRcAw':'error'},_0x1a07d1={'event':_0x4a7916(0x1e0),'errorName':_0x2f0dd9[_0x4a7916(0x20a)]||_0x336842['Ydkic'],'errorMessage':_0x2f0dd9[_0x4a7916(0x1ef)],'errorCode':_0x2f0dd9[_0x4a7916(0x211)]||_0x2f0dd9['statusCode']||0x1f4,'stack':_0x2f0dd9['stack'],'method':_0x1b7fec?.[_0x4a7916(0x278)],'url':_0x1b7fec?.['url']||_0x1b7fec?.['originalUrl'],'path':_0x1b7fec?.['path'],'ip':_0x1b7fec?.['ip']||_0x1b7fec?.[_0x4a7916(0x207)]?.['remoteAddress'],'userAgent':_0x1b7fec?.[_0x4a7916(0x20f)]?.(_0x336842[_0x4a7916(0x266)]),'requestId':_0x1b7fec?.['id']||_0x1b7fec?.[_0x4a7916(0x251)]?.[_0x4a7916(0x281)],'body':_0x1b7fec?.[_0x4a7916(0x22b)]?redactObject(_0x1b7fec[_0x4a7916(0x22b)]):undefined,'query':_0x1b7fec?.['query'],..._0x407f6e},_0x364eda=_0x2f0dd9[_0x4a7916(0x25b)]||_0x2f0dd9[_0x4a7916(0x257)]||0x1f4,_0x490a18='HTTP\x20'+_0x364eda+':\x20'+_0x2f0dd9[_0x4a7916(0x1ef)];_0x336842[_0x4a7916(0x220)](_0x364eda,0x1f4)?logger['error'](_0x1a07d1,_0x490a18):logger[_0x4a7916(0x209)](_0x1a07d1,_0x490a18),_0x336842['cSEhH'](writeToFileLog,{..._0x1a07d1,'level':_0x336842['LlsKC'](_0x364eda,0x1f4)?'error':_0x336842['GpBPw'],'msg':_0x490a18,'time':new Date()['toISOString']()},_0x336842['JVqON'](_0x364eda,0x1f4)?_0x336842[_0x4a7916(0x21c)]:_0x336842[_0x4a7916(0x236)]);},logUncaughtError=(_0x3b03e0,_0x1ea006)=>{const _0x39112e=a0_0x34f8c3,_0xe8c59c={'event':_0x3b03e0,'errorName':_0x1ea006?.['name']||'Error','errorMessage':_0x1ea006?.[_0x39112e(0x1ef)]||String(_0x1ea006),'errorCode':_0x1ea006?.['code']||null,'stack':_0x1ea006?.['stack'],'severity':_0x39112e(0x208),'processId':process['pid'],'memoryUsage':process['memoryUsage'](),'uptime':process['uptime']()},_0x4b34d2='['+_0x3b03e0[_0x39112e(0x227)]()+']\x20'+(_0x1ea006?.['message']||_0x1ea006);logger[_0x39112e(0x214)](_0xe8c59c,_0x4b34d2),writeToFileLog({..._0xe8c59c,'level':'fatal','msg':_0x4b34d2,'time':new Date()[_0x39112e(0x26c)]()},_0x39112e(0x217));},setupGlobalErrorHandlers=()=>{const _0x24854b=a0_0x34f8c3,_0x3ce4c4={'leSkF':function(_0x4cd6ff,_0x370dc8,_0x4ada9f){return _0x4cd6ff(_0x370dc8,_0x4ada9f);},'nuOYj':function(_0x1f682d,_0x167edf){return _0x1f682d(_0x167edf);},'jqSGh':'unhandledRejection','dvqre':_0x24854b(0x25c),'SRDRs':'warning','NStiG':_0x24854b(0x22f),'HXrQZ':_0x24854b(0x263)};process['on']('uncaughtException',_0x4ef97a=>{_0x3ce4c4['leSkF'](logUncaughtError,'uncaughtException',_0x4ef97a),setTimeout(()=>{process['exit'](0x1);},0x3e8);}),process['on'](_0x3ce4c4[_0x24854b(0x25e)],(_0x188272,_0xcc39d7)=>{const _0x50bd41=_0x24854b,_0xf2b378=_0x188272 instanceof Error?_0x188272:new Error(_0x3ce4c4[_0x50bd41(0x212)](String,_0x188272));_0x3ce4c4['leSkF'](logUncaughtError,_0x3ce4c4['jqSGh'],_0xf2b378);}),process['on'](_0x3ce4c4[_0x24854b(0x24c)],_0x1f8171=>{const _0x3347d8=_0x24854b;logger[_0x3347d8(0x209)]({'event':_0x3ce4c4['dvqre'],'name':_0x1f8171[_0x3347d8(0x20a)],'message':_0x1f8171['message'],'stack':_0x1f8171[_0x3347d8(0x1f9)]},'Process\x20Warning:\x20'+_0x1f8171[_0x3347d8(0x1ef)]);});const _0x3dbc97={'event':_0x24854b(0x200)},_0x1efc66=_0x3ce4c4['NStiG'];logger['info'](_0x3dbc97,_0x1efc66),writeToFileLog({..._0x3dbc97,'level':_0x3ce4c4['HXrQZ'],'msg':_0x1efc66,'time':new Date()['toISOString']()},_0x3ce4c4['HXrQZ']);},createErrorHandlerMiddleware=()=>{const _0x2f5039=a0_0x34f8c3,_0x112784={'pPMUB':function(_0x32fd69,_0x738a74){return _0x32fd69>=_0x738a74;},'uhoGV':_0x2f5039(0x202)};return(_0xfdc738,_0x2ca59b,_0x142faf,_0x1c00dd)=>{const _0x1e6c74=_0x2f5039;logHttpError(_0xfdc738,_0x2ca59b);const _0x31a11b=_0xfdc738['statusCode']||_0xfdc738['status']||0x1f4;_0x142faf[_0x1e6c74(0x257)](_0x31a11b)['json']({'success':![],'error':_0x112784[_0x1e6c74(0x1f4)](_0x31a11b,0x1f4)?_0x112784['uhoGV']:_0xfdc738['message'],'requestId':_0x2ca59b['id']||_0x2ca59b[_0x1e6c74(0x251)]?.[_0x1e6c74(0x281)]||null});};};module[a0_0x34f8c3(0x249)]={'logger':logger,'createRequestLogger':createRequestLogger,'logServerStart':logServerStart,'logServerReady':logServerReady,'logProjectLoaded':logProjectLoaded,'logEndpointRegistered':logEndpointRegistered,'logDatabaseConfig':logDatabaseConfig,'logRequest':logRequest,'logQuery':logQuery,'logTransaction':logTransaction,'startQueryTimer':startQueryTimer,'parseQueryMetadata':parseQueryMetadata,'redactSensitiveParams':redactSensitiveParams,'initFileLogging':initFileLogging,'logError':logError,'logFatalError':logFatalError,'logHttpError':logHttpError,'logUncaughtError':logUncaughtError,'setupGlobalErrorHandlers':setupGlobalErrorHandlers,'createErrorHandlerMiddleware':createErrorHandlerMiddleware,'redactObject':redactObject,'SQL_LOG_CONFIG':{'enabled':sqlLogEnabled,'level':sqlLogLevel,'logParams':sqlLogParams,'slowThreshold':sqlLogSlowThreshold},'FILE_LOG_CONFIG':{'enabled':logToFile,'directory':logDir,'serviceName':serviceName}};
1
+ function a0_0x4e16(_0x39a212,_0xebe7dc){_0x39a212=_0x39a212-0x11c;const _0x533c9a=a0_0x533c();let _0x4e1621=_0x533c9a[_0x39a212];if(a0_0x4e16['vROGcf']===undefined){var _0x14a564=function(_0x5c043f){const _0x11ac67='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x82c3fb='',_0x36a6cf='';for(let _0x251818=0x0,_0x3c9966,_0x5cc994,_0x59c39b=0x0;_0x5cc994=_0x5c043f['charAt'](_0x59c39b++);~_0x5cc994&&(_0x3c9966=_0x251818%0x4?_0x3c9966*0x40+_0x5cc994:_0x5cc994,_0x251818++%0x4)?_0x82c3fb+=String['fromCharCode'](0xff&_0x3c9966>>(-0x2*_0x251818&0x6)):0x0){_0x5cc994=_0x11ac67['indexOf'](_0x5cc994);}for(let _0x471346=0x0,_0x3c0416=_0x82c3fb['length'];_0x471346<_0x3c0416;_0x471346++){_0x36a6cf+='%'+('00'+_0x82c3fb['charCodeAt'](_0x471346)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x36a6cf);};a0_0x4e16['DTABVN']=_0x14a564,a0_0x4e16['xIIHcK']={},a0_0x4e16['vROGcf']=!![];}const _0x419c06=_0x533c9a[0x0],_0x598a51=_0x39a212+_0x419c06,_0x47240b=a0_0x4e16['xIIHcK'][_0x598a51];return!_0x47240b?(_0x4e1621=a0_0x4e16['DTABVN'](_0x4e1621),a0_0x4e16['xIIHcK'][_0x598a51]=_0x4e1621):_0x4e1621=_0x47240b,_0x4e1621;}const a0_0x129db8=a0_0x4e16;(function(_0x419c5d,_0x4ba978){const _0x1668f8=a0_0x4e16,_0x1bdcab=_0x419c5d();while(!![]){try{const _0x1a23d1=parseInt(_0x1668f8(0x17f))/0x1+-parseInt(_0x1668f8(0x166))/0x2*(parseInt(_0x1668f8(0x1e0))/0x3)+-parseInt(_0x1668f8(0x162))/0x4+-parseInt(_0x1668f8(0x19c))/0x5+parseInt(_0x1668f8(0x1c9))/0x6+-parseInt(_0x1668f8(0x128))/0x7+-parseInt(_0x1668f8(0x1bd))/0x8*(-parseInt(_0x1668f8(0x1ab))/0x9);if(_0x1a23d1===_0x4ba978)break;else _0x1bdcab['push'](_0x1bdcab['shift']());}catch(_0x4ccb57){_0x1bdcab['push'](_0x1bdcab['shift']());}}}(a0_0x533c,0xd4bcc));function a0_0x533c(){const _0x3b31d3=['C3rYAw5NAwz5','s3HWtve','ifTtte9xxq','wvnSC2m','rfjpua','iokvKqRILzeGifbVCNqGicaGicaGidOG','yxbPx3nLy3jLDa','mtjwC2PysfG','A0PKv1q','iokvKqRILzeGienVBMzPzYaGicaGidOG','qwv6txa','u0vmrunu','CgfKrw5K','y3z2','DhjPBq','C29Tzq','z2v0sgvHzgvYCW','uNPWvNu','C3rHDhvZ','CMvMCMvZAf90B2TLBG','mta1ndGZn0rTtwf4Dq','tK9erv9ftLy','CMvZB2X2zq','BwvZC2fNzq','ve9gy08','cUkvOokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvOWRILzeGievUDMLYB25Tzw50idOG','rgvMyxvSDa','ChHLteC','y3jLzgvUDgLHBhm','vu5ltK9xtG','y3jLzgvUDgLHBa','zgv2zwXVCg1LBNq','CMvTB3rLqwrKCMvZCW','ChjVy2vZC193yxjUAw5N','C3rHCNrZv2L0Aa','Aw5MBW','revPv0W','BMfTzq','vfrvrvm','Aw5JBhvKzxm','AuzrqLi','zMfSC2u','vfjbtLnbq1rjt05FqKvhsu4','r09QrNu','ruTfvvu','zMXVB3i','A2v5CW','Cgf0Aa','Ec1Yzxf1zxn0lwLK','Dhj1zq','vfjbtLnbq1rjt05Fq09ntuLu','w1jfrefdveveoMHHC2HD','te9hx0rjuG','ChjPDMf0zv9RzxK','ANnVBG','z1juAg8','zMXVB2u','zw52','CMvWzwf0','rxjYB3i','DwHvwxu','wvDSAwi','iokvKqRILzeGiefqssblzxKGicaGidOG','Bwf0y2G','reiGuxvLCNK','u1fmx0Xpr19qqvjbtvm','Dg9Rzw4','D3jPDgu','C3rKu2vYAwfSAxPLCNm','zgjFDhjHBNnHy3rPB24','ChjVAMvJDa','rhbhuLi','u1fmx0Xpr19tte9xx1riuKvtse9mra','tKvIyKG','icdIHPiG','uK9mtejbq0S','y3jLzgL0x2nHCMq','shLbAuS','nJyXnZK5mKDfwu1rEG','icbizwfSDgG6ia','wgzoBMS','tK9uiefdveLwrq','ntG1ntGYCfHlA3jR','r2XVyMfSigvYCM9YigHHBMrSzxjZigLUAxrPywXPEMvK','BwvTB3j5vxnHz2u','CePmsw8','Bwv0Ag9K','zgf0ywjHC2u','qvvszMC','Dxb0Aw1L','Bg9N','y29Kzq','w09lxsbtzxj2zxiGCMvHzhKGB24GCg9YDca','y29UBMvJDgLVBG','cUkvLokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvLWO','vvbeqvrf','DgvZDa','DxjS','Bw9KDwXL','vvPbyxy','uw9ituG','CxvLCNK','yxPYA3K','ywnJzxnZx3rVA2vU','C2vYDMLJzuLUzM8','CMvZDgzVCMDL','yNbMAfu','mti1mdGYmuHqrenurG','D2fYBG','u1DRu2m','vhjHBNnHy3rPB24G','BwfW','ufbXCue','ChjPDMf0zwTLEq','zw52AxjVBM1LBNq','v01PwLK','uwreweO','A3rZyvm','yxbPx2TLEq','qKvhsu4','te9hx1rpx0zjteu','AM9PBG','quXurvi','y1nJCNO','Bfnyyuy','rgf0ywjHC2u6ia','BgvUz3rO','Dg9vChbLCKnHC2u','tM9Kzs5QCW','AgvHBhrOq2HLy2S','CMvWBgfJzq','qvbqx1zfuLnjt04','sfruuca','rermx0rst1a','DxLeB0q','revmrvrf','nta4odK1nxHrEK1SCq','qwzmBge','zgvMyxvSDa','thfqy2m','EhDQu1C','zxjYB3iUBg9N','Bwf4','yxbPA2v5','ChDK','y3jLyxrLv3jPDgvtDhjLyw0','Ag9ZDa','yxbWlMXVzW','Dg9mB3DLCKnHC2u','y29UzMLNrMLSzq','qu9Nwuy','mtaXmta5ntf0zNLQyMe','yxbPs2v5','zgvIDwC','D2fYBMLUzW','ALbyDvy','C3fSx3f1zxj5','t05RsK4','yKLSDK4','BfzPv2K','iokvKqRILzeGifbYB2PLy3qGicaGidOG','thLRtMq','lI9SB2DZlW','Dg9ju09tDhjPBMC','w1jfrefdvevexq','uhjVy2vZCYbxyxjUAw5NoIa','CgLUBY1WCMv0DhK','zfzHt3q','DhLWzq','mJr1AenirfO','su5trvju','Dw5JyxvNAhrfEgnLChrPB24','rKfuquW6ia','icbvuKW6icaGia','zxjYB3i','t2vJqLq','zgf0ywjHC2vFy29UzMLN','AxntBg93','t0rws04','C3rHDhvZq29Kzq','B2jQzwn0','mtq2nJi2ofreAurTva','Cg9YDa','CgfZC3DVCMq','zMf0ywW','rMfPBgvKihrVignYzwf0zsbSB2CGC3rYzwfTCZO','CgLKlgHVC3rUyw1LlhnLCNzPy2uSDMvYC2LVBIXLBNySzxzLBNqSBw9KDwXLlhbVCNqSy29UzMLNlgfWAuTLEuvUywjSzwqSCgf0AcX3B3jRAw5NrgLYlgLZugTNlgLZtM9KzvnJCMLWDcXMAwXLlgvTywLSlhr5CguSy29YCYXSB2DNAw5NlgfWAuTLEsXJB3vUDcXLBMrWB2LUDcXYB3v0zq','rMLSzsbSB2DNAw5NigvUywjSzwq6ia','C3rHy2S','rMfPBgvKihrVignYzwf0zsbSB2CGzgLYzwn0B3j5ia','C2vJCMv0','Ahj0Aw1L','icbjBMzVoIaGia','qunusvzf','s1HIrfe','yMfZzvvYBa','CM93C0fMzMvJDgvK'];a0_0x533c=function(){return _0x3b31d3;};return a0_0x533c();}const pino=require('pino'),fs=require('fs'),path=require('path');let logToFile=![],logDir='./logs',serviceName=a0_0x129db8(0x17d),sqlLogEnabled=![],sqlLogLevel='debug',sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;const prettyPrintOptions={'colorize':!![],'translateTime':'SYS:HH:MM:ss','ignore':a0_0x129db8(0x1ce),'singleLine':![],'levelFirst':!![],'messageFormat':'{msg}','customColors':'info:blue,warn:yellow,error:red,debug:gray','hideObject':!![]},isDevelopment=process['env']['NODE_ENV']!=='production',logLevel=process[a0_0x129db8(0x14d)]['LOG_LEVEL']||a0_0x129db8(0x137);let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':a0_0x129db8(0x1ba),'options':prettyPrintOptions}:undefined,'base':{'service':'restforge','version':process['env'][a0_0x129db8(0x197)]||'1.0.5','env':process['env'][a0_0x129db8(0x129)]||a0_0x129db8(0x133)},'timestamp':pino['stdTimeFunctions']['isoTime'],'redact':{'paths':['req.headers.authorization','req.headers[\x22x-api-key\x22]',a0_0x129db8(0x1cb),a0_0x129db8(0x156),a0_0x129db8(0x1ac),'DB_PASSWORD','JWT_SECRET'],'censor':a0_0x129db8(0x1b8)},'serializers':{'req':_0x293fee=>({'id':_0x293fee['id'],'method':_0x293fee[a0_0x129db8(0x16a)],'url':_0x293fee['url'],'path':_0x293fee[a0_0x129db8(0x143)],'remoteAddress':_0x293fee['ip']||_0x293fee[a0_0x129db8(0x171)]?.[a0_0x129db8(0x134)]}),'res':_0x23971d=>({'statusCode':_0x23971d['statusCode'],'headers':_0x23971d[a0_0x129db8(0x124)]?.()}),'err':pino[a0_0x129db8(0x158)]['err']}});function initFileLogging(){const _0x5e7cac=a0_0x129db8,_0x29cef3={'GOjFu':_0x5e7cac(0x145),'kfTxH':_0x5e7cac(0x1ad),'pqNmW':function(_0x46d443,_0x488606){return _0x46d443!==_0x488606;},'OecBT':function(_0x2942fe,_0x17b2db){return _0x2942fe(_0x17b2db);},'xwjSW':_0x5e7cac(0x1a1)};if(fileLoggingInitialized)return;logToFile=process[_0x5e7cac(0x14d)][_0x5e7cac(0x18c)]==='true';const _0x5cd93f=process['env']['RESTFORGE_PROJECT_NAME']||_0x5e7cac(0x19e);logDir=process['env'][_0x5e7cac(0x148)]||_0x5e7cac(0x1b6)+_0x5cd93f,serviceName=process['env']['SERVICE_NAME']||'restforge',sqlLogEnabled=process[_0x5e7cac(0x14d)]['SQL_LOG_ENABLED']===_0x29cef3[_0x5e7cac(0x13f)],sqlLogLevel=process[_0x5e7cac(0x14d)]['SQL_LOG_LEVEL']||_0x29cef3['kfTxH'],sqlLogParams=_0x29cef3['pqNmW'](process['env'][_0x5e7cac(0x155)],_0x5e7cac(0x13d)),sqlLogSlowThreshold=_0x29cef3[_0x5e7cac(0x1c3)](parseInt,process[_0x5e7cac(0x14d)][_0x5e7cac(0x15c)])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x1c3409=path[_0x5e7cac(0x12a)](process['cwd'](),logDir);try{!fs['existsSync'](_0x1c3409)&&fs['mkdirSync'](_0x1c3409,{'recursive':!![]});}catch(_0x1c875d){console['error'](_0x5e7cac(0x1d1)+_0x1c3409+':',_0x1c875d[_0x5e7cac(0x12b)]),fileLoggingInitialized=!![];return;}const _0x4f6d10=path[_0x5e7cac(0x18d)](_0x1c3409,_0x5e7cac(0x1a7)),_0x5ade40=path['join'](_0x1c3409,_0x5e7cac(0x1a1));try{appLogStream=fs['createWriteStream'](_0x4f6d10,{'flags':'a'}),errorLogStream=fs[_0x5e7cac(0x1a5)](_0x5ade40,{'flags':'a'}),fileLoggingInitialized=!![];const _0x3b6b79={'event':'file_logging_enabled','logDir':_0x1c3409,'files':[_0x5e7cac(0x1a7),_0x29cef3[_0x5e7cac(0x1a0)]]},_0x2e1994=_0x5e7cac(0x1cf)+_0x1c3409;logger[_0x5e7cac(0x137)](_0x3b6b79,_0x2e1994),writeToFileLog({..._0x3b6b79,'level':_0x5e7cac(0x137),'msg':_0x2e1994,'time':new Date()[_0x5e7cac(0x1b7)]()},_0x5e7cac(0x137));}catch(_0x368ab0){console[_0x5e7cac(0x1c2)](_0x5e7cac(0x1cd),_0x368ab0[_0x5e7cac(0x12b)]),fileLoggingInitialized=!![];}}function writeToFileLog(_0x1ca062,_0x5147cf){const _0x51b5b9=a0_0x129db8,_0x1fbba1={'azrky':function(_0x407090,_0x50cfa9){return _0x407090||_0x50cfa9;},'KXbDQ':function(_0x269600,_0xc41ff6){return _0x269600+_0xc41ff6;}};if(_0x1fbba1[_0x51b5b9(0x17a)](!logToFile,!appLogStream))return;const _0x11cb7b={'service':serviceName,..._0x1ca062},_0x4e6733=_0x1fbba1[_0x51b5b9(0x1d6)](JSON[_0x51b5b9(0x1d9)](_0x11cb7b),'\x0a');appLogStream[_0x51b5b9(0x157)](_0x4e6733),(_0x5147cf==='error'||_0x5147cf==='fatal')&&(errorLogStream&&errorLogStream['write'](_0x4e6733));}const createRequestLogger=(_0x1564c0={})=>{return logger['child'](_0x1564c0);},logServerStart=_0x1218e2=>{const _0x17e6d6=a0_0x129db8,_0x239c8a={'ScSxn':function(_0x19ef0,_0x48c272){return _0x19ef0/_0x48c272;},'CnXJS':function(_0xbf7d30,_0x3f5f05){return _0xbf7d30-_0x3f5f05;},'OPoPO':'N/A','NOgjF':function(_0x29c15f,_0x41689b){return _0x29c15f(_0x41689b);},'uhUYu':_0x17e6d6(0x12e),'fdwJZ':_0x17e6d6(0x1d5),'UKgBE':'server_starting','OYTty':_0x17e6d6(0x137)},_0x223c78='RESTFORGE\x20RUNTIME\x20SERVER',_0x18e28d=Math[_0x17e6d6(0x1a2)](0x0,0x37-_0x223c78[_0x17e6d6(0x192)]),_0x2c053c=Math[_0x17e6d6(0x141)](_0x239c8a['ScSxn'](_0x18e28d,0x2)),_0x2c9601=_0x239c8a['CnXJS'](_0x18e28d,_0x2c053c),_0x25335f='║'+'\x20'['repeat'](_0x2c053c)+_0x223c78+'\x20'[_0x17e6d6(0x14e)](_0x2c9601)+'║',_0x11a2ca=_0x17e6d6(0x172)+_0x25335f+_0x17e6d6(0x12d)+(_0x1218e2[_0x17e6d6(0x186)]||_0x17e6d6(0x194))[_0x17e6d6(0x120)](0x26)+_0x17e6d6(0x1b4)+(_0x1218e2[_0x17e6d6(0x15a)]||_0x239c8a['OPoPO'])[_0x17e6d6(0x120)](0x26)+_0x17e6d6(0x1de)+_0x239c8a['NOgjF'](String,_0x1218e2['port']||0xbb8)['padEnd'](0x26)+_0x17e6d6(0x11d)+(_0x1218e2[_0x17e6d6(0x1a9)]||_0x239c8a[_0x17e6d6(0x150)])['padEnd'](0x26)+_0x17e6d6(0x152)+(_0x1218e2['apiKey']?_0x239c8a['fdwJZ']:_0x17e6d6(0x165))['padEnd'](0x26)+'\x20║\x0a╚═══════════════════════════════════════════════════════╝';console[_0x17e6d6(0x16e)](_0x11a2ca);const _0xca368e={'event':_0x239c8a['UKgBE'],'project':_0x1218e2['project'],'port':_0x1218e2['port'],'config':_0x1218e2[_0x17e6d6(0x1a9)],'apiKeyEnabled':!!_0x1218e2['apiKey']};logger[_0x17e6d6(0x137)](_0xca368e),writeToFileLog({..._0xca368e,'level':_0x239c8a['OYTty'],'msg':'Server\x20starting:\x20'+_0x1218e2['project']+'\x20on\x20port\x20'+_0x1218e2['port'],'time':new Date()[_0x17e6d6(0x1b7)]()},_0x17e6d6(0x137));},logServerReady=_0x3c568d=>{const _0x6b698d=a0_0x129db8,_0x58247f={'LqPcc':'server_ready','ktsaS':'info'},_0x156eef={'event':_0x58247f[_0x6b698d(0x19f)],'port':_0x3c568d[_0x6b698d(0x1ca)],'module':_0x3c568d[_0x6b698d(0x176)],'healthCheck':_0x3c568d[_0x6b698d(0x195)],'serviceInfo':_0x3c568d[_0x6b698d(0x17c)],'baseUrl':_0x3c568d['baseUrl']},_0x2138d8=_0x6b698d(0x170)+_0x3c568d[_0x6b698d(0x1ca)];logger[_0x6b698d(0x137)](_0x156eef,_0x2138d8),writeToFileLog({..._0x156eef,'level':_0x58247f['ktsaS'],'msg':_0x2138d8,'time':new Date()['toISOString']()},_0x58247f[_0x6b698d(0x189)]),_0x3c568d['healthCheck']&&logger['info'](_0x6b698d(0x163)+_0x3c568d['healthCheck']),_0x3c568d[_0x6b698d(0x17c)]&&logger[_0x6b698d(0x137)](_0x6b698d(0x1d4)+_0x3c568d[_0x6b698d(0x17c)]),_0x3c568d[_0x6b698d(0x1d7)]&&logger['info'](_0x6b698d(0x1c1)+_0x3c568d[_0x6b698d(0x1d7)]);},logProjectLoaded=(_0x47a2ed,_0x1117c0)=>{const _0x1e1b0f=a0_0x129db8,_0x49420a={'oHVNw':'project_loaded','kJdWT':'info'},_0x5c24d3={'event':_0x49420a['oHVNw'],'project':_0x47a2ed,'path':_0x1117c0},_0x1fc4f9='[OK]\x20Project\x20loaded:\x20'+_0x47a2ed;logger['info'](_0x5c24d3,_0x1fc4f9),writeToFileLog({..._0x5c24d3,'level':_0x49420a[_0x1e1b0f(0x11c)],'msg':_0x1fc4f9,'time':new Date()['toISOString']()},'info');},logEndpointRegistered=(_0xca971d,_0x13bff7)=>{const _0x3b05d6=a0_0x129db8,_0x26c8c0={'pxeLG':'endpoint_registered','bIlvN':_0x3b05d6(0x1ad)},_0x1f134c={'event':_0x26c8c0[_0x3b05d6(0x12f)],'endpoint':_0xca971d,'route':_0x13bff7},_0x5b5442=_0x3b05d6(0x15e)+_0xca971d+':\x20'+_0x13bff7;logger[_0x3b05d6(0x1ad)](_0x1f134c,_0x5b5442),writeToFileLog({..._0x1f134c,'level':_0x26c8c0['bIlvN'],'msg':_0x5b5442,'time':new Date()['toISOString']()},_0x26c8c0[_0x3b05d6(0x1b2)]);},logDatabaseConfig=_0x19f4df=>{const _0x8f4da2=a0_0x129db8,_0x4ae363={'SHPzI':_0x8f4da2(0x1c4),'jPXuV':function(_0x160e43,_0x47a296,_0x1333c7){return _0x160e43(_0x47a296,_0x1333c7);}},_0x188b83={'event':_0x4ae363['SHPzI'],'host':_0x19f4df[_0x8f4da2(0x1a6)],'port':_0x19f4df['port'],'database':_0x19f4df[_0x8f4da2(0x16b)],'type':_0x19f4df[_0x8f4da2(0x1bc)],'user':_0x19f4df['user']},_0x2f6667=_0x8f4da2(0x191)+_0x19f4df['type']+'://'+_0x19f4df['host']+':'+_0x19f4df['port']+'/'+_0x19f4df[_0x8f4da2(0x16b)];logger['debug'](_0x188b83,_0x2f6667),_0x4ae363[_0x8f4da2(0x1af)](writeToFileLog,{..._0x188b83,'level':'debug','msg':_0x2f6667,'time':new Date()['toISOString']()},'debug');},logRequest=(_0x16399a,_0x203dd9,_0x3a779c)=>{const _0x19e8ad=a0_0x129db8,_0x8ef59a={'UwZLZ':function(_0x5ac5e9,_0x426be3){return _0x5ac5e9>=_0x426be3;},'baznj':function(_0x90e023,_0x345e30,_0x238480){return _0x90e023(_0x345e30,_0x238480);}},_0x154b98={'event':'http_request','method':_0x16399a[_0x19e8ad(0x16a)],'path':_0x16399a[_0x19e8ad(0x143)],'statusCode':_0x203dd9[_0x19e8ad(0x1c7)],'durationMs':_0x3a779c,'ip':_0x16399a['ip']},_0x5978c8=_0x16399a['method']+'\x20'+_0x16399a[_0x19e8ad(0x143)]+'\x20-\x20'+_0x203dd9[_0x19e8ad(0x1c7)]+'\x20('+_0x3a779c+'ms)';let _0x530681=_0x19e8ad(0x137);if(_0x8ef59a['UwZLZ'](_0x203dd9['statusCode'],0x1f4))_0x530681='error',logger[_0x19e8ad(0x1c2)](_0x154b98,_0x5978c8);else _0x203dd9[_0x19e8ad(0x1c7)]>=0x190?(_0x530681=_0x19e8ad(0x180),logger[_0x19e8ad(0x180)](_0x154b98,_0x5978c8)):logger['info'](_0x154b98,_0x5978c8);_0x8ef59a['baznj'](writeToFileLog,{..._0x154b98,'level':_0x530681,'msg':_0x5978c8,'time':new Date()['toISOString']()},_0x530681);},SENSITIVE_PARAM_PATTERNS=['password','passwd',a0_0x129db8(0x1a4),'token',a0_0x129db8(0x17b),a0_0x129db8(0x127),a0_0x129db8(0x1d2),a0_0x129db8(0x1df),a0_0x129db8(0x1a3),'api_key',a0_0x129db8(0x132),a0_0x129db8(0x130),'pin','otp','private_key',a0_0x129db8(0x185)],redactSensitiveParams=(_0x570cef,_0xd932f6)=>{const _0x198d82=a0_0x129db8,_0xe818e0={'lViWi':'string'};if(!_0x570cef||_0x570cef[_0x198d82(0x192)]===0x0)return _0x570cef;const _0x3439b6=_0xd932f6[_0x198d82(0x1a8)](),_0x53901d=_0x3439b6[_0x198d82(0x153)](/\(([^)]+)\)\s*values/i);let _0x11afa2=[];_0x53901d&&(_0x11afa2=_0x53901d[0x1]['split'](',')[_0x198d82(0x183)](_0x5cb032=>_0x5cb032['trim']()['toLowerCase']()));const _0x3d7b1d=_0x3439b6[_0x198d82(0x153)](/set\s+(.+?)(?:\s+where|$)/i);if(_0x3d7b1d){const _0x26a993=_0x3d7b1d[0x1],_0x10e13d=_0x26a993[_0x198d82(0x153)](/(\w+)\s*=/g);_0x10e13d&&(_0x11afa2=_0x10e13d[_0x198d82(0x183)](_0x459d5c=>_0x459d5c[_0x198d82(0x196)](/\s*=/,'')['trim']()['toLowerCase']()));}return _0x570cef[_0x198d82(0x183)]((_0x3c46ae,_0x2c012d)=>{const _0x4df266=_0x198d82;if(_0x11afa2[_0x2c012d]){const _0x3c3d06=_0x11afa2[_0x2c012d],_0x4054f7=SENSITIVE_PARAM_PATTERNS['some'](_0x55cea6=>_0x3c3d06[_0x4df266(0x13b)](_0x55cea6));if(_0x4054f7)return _0x4df266(0x1b8);}if(typeof _0x3c46ae===_0xe818e0[_0x4df266(0x1b3)]&&_0x3c46ae['length']>0x20){if(/^[a-zA-Z0-9+/=_.-]+$/[_0x4df266(0x174)](_0x3c46ae)&&_0x3c46ae[_0x4df266(0x13b)]('.'))return'[REDACTED:token]';if(/^[a-fA-F0-9]{32,}$/['test'](_0x3c46ae))return _0x4df266(0x147);}return _0x3c46ae;});},parseQueryMetadata=_0x25b35f=>{const _0x304c6b=a0_0x129db8,_0x32d08e={'ODVKN':_0x304c6b(0x131),'AfLla':_0x304c6b(0x11f),'EMAmR':'INSERT','qphim':'UPDATE','AezMp':_0x304c6b(0x19b),'lpCFm':_0x304c6b(0x18b),'QAQNa':'START\x20TRANSACTION','SftgK':'COMMIT','dVaOt':_0x304c6b(0x15f),'QoHMH':'CREATE','ocIKH':_0x304c6b(0x1dd)},_0x13a883=_0x25b35f[_0x304c6b(0x122)](),_0xab4993=_0x13a883['toUpperCase']();let _0x40b747=_0x32d08e[_0x304c6b(0x1c6)],_0x2a7c7b=null;if(_0xab4993[_0x304c6b(0x136)](_0x32d08e[_0x304c6b(0x19d)])){_0x40b747=_0x304c6b(0x11f);const _0x13ee14=_0x13a883['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x2a7c7b=_0x13ee14?_0x13ee14[0x1]:null;}else{if(_0xab4993[_0x304c6b(0x136)](_0x32d08e['EMAmR'])){_0x40b747=_0x304c6b(0x1be);const _0x4abcbf=_0x13a883['match'](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x2a7c7b=_0x4abcbf?_0x4abcbf[0x1]:null;}else{if(_0xab4993[_0x304c6b(0x136)](_0x304c6b(0x173))){_0x40b747=_0x32d08e['qphim'];const _0x23b004=_0x13a883['match'](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x2a7c7b=_0x23b004?_0x23b004[0x1]:null;}else{if(_0xab4993['startsWith'](_0x32d08e[_0x304c6b(0x11e)])){_0x40b747=_0x32d08e['AezMp'];const _0x228b87=_0x13a883['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x2a7c7b=_0x228b87?_0x228b87[0x1]:null;}else{if(_0xab4993['startsWith'](_0x32d08e['lpCFm'])||_0xab4993['startsWith'](_0x32d08e['QAQNa']))_0x40b747=_0x304c6b(0x13e);else{if(_0xab4993[_0x304c6b(0x136)](_0x32d08e['SftgK']))_0x40b747=_0x304c6b(0x146);else{if(_0xab4993[_0x304c6b(0x136)](_0x32d08e[_0x304c6b(0x1bb)]))_0x40b747='TRANSACTION_ROLLBACK';else{if(_0xab4993['startsWith'](_0x32d08e[_0x304c6b(0x178)]))_0x40b747='DDL_CREATE';else{if(_0xab4993['startsWith'](_0x304c6b(0x18e)))_0x40b747='DDL_ALTER';else _0xab4993['startsWith'](_0x32d08e['ocIKH'])&&(_0x40b747=_0x304c6b(0x199));}}}}}}}}return{'type':_0x40b747,'table':_0x2a7c7b};},startQueryTimer=()=>{const _0x519d87=process['hrtime']();return()=>{const _0x5d4225=a0_0x4e16,[_0x3517c3,_0x4ac95c]=process[_0x5d4225(0x1d3)](_0x519d87);return parseFloat((_0x3517c3*0x3e8+_0x4ac95c/0xf4240)['toFixed'](0x2));};},logQuery=(_0x3edf9a,_0x2859d5=[],_0x260256={})=>{const _0x314e11=a0_0x129db8,_0x2de000={'FTEGj':'db_query','VsIdy':function(_0x1f0831,_0x56a0f8){return _0x1f0831(_0x56a0f8);},'HGPIZ':_0x314e11(0x1b0),'WMiZY':function(_0x53110a,_0x727776){return _0x53110a!==_0x727776;},'LykNd':function(_0x963323,_0x3eff35){return _0x963323>_0x3eff35;},'DEiWL':'debug','DpGRR':'warn','NRenZ':function(_0x28c346,_0x16cbef){return _0x28c346===_0x16cbef;},'gplRY':function(_0x2772ca,_0x3e05b5,_0x5d8256){return _0x2772ca(_0x3e05b5,_0x5d8256);}};if(!sqlLogEnabled){logger['debug']({'event':_0x2de000['FTEGj'],'query':_0x3edf9a['substring'](0x0,0xc8),'paramCount':_0x2859d5[_0x314e11(0x192)]},_0x314e11(0x154));return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType='postgresql'}=_0x260256,{type:_0x257249,table:_0x42f13d}=_0x2de000['VsIdy'](parseQueryMetadata,_0x3edf9a),_0x375b8d={'event':_0x2de000['HGPIZ'],'queryType':_0x257249,'table':_0x42f13d,'query':_0x3edf9a,'paramCount':_0x2859d5[_0x314e11(0x192)],'dbType':dbType};sqlLogParams&&_0x2859d5['length']>0x0&&(_0x375b8d['params']=redactSensitiveParams(_0x2859d5,_0x3edf9a));duration!==null&&(_0x375b8d['durationMs']=duration,_0x375b8d[_0x314e11(0x1c5)]=duration>sqlLogSlowThreshold);_0x2de000[_0x314e11(0x187)](rowsAffected,null)&&(_0x375b8d[_0x314e11(0x1d8)]=rowsAffected);const _0x402941=_0x42f13d||'unknown';let _0x3216bf='['+_0x257249+']\x20'+_0x402941;duration!==null&&(_0x3216bf+='\x20('+duration+'ms)');const _0x933496=duration!==null&&_0x2de000[_0x314e11(0x1b5)](duration,sqlLogSlowThreshold);let _0x4c43c9=_0x2de000[_0x314e11(0x138)];if(_0x933496)_0x3216bf+=_0x314e11(0x1db),_0x4c43c9=_0x2de000[_0x314e11(0x15b)],logger['warn'](_0x375b8d,_0x3216bf);else _0x2de000['NRenZ'](sqlLogLevel,'info')?(_0x4c43c9='info',logger[_0x314e11(0x137)](_0x375b8d,_0x3216bf)):logger[_0x314e11(0x1ad)](_0x375b8d,_0x3216bf);_0x2de000['gplRY'](writeToFileLog,{..._0x375b8d,'level':_0x4c43c9,'msg':_0x3216bf,'time':new Date()['toISOString']()},_0x4c43c9);},logTransaction=(_0x447c50,_0x480ec3)=>{const _0x953e4f=a0_0x129db8,_0x3837fd={'event':_0x953e4f(0x159),'status':_0x447c50,'queryCount':_0x480ec3},_0x1037b2=_0x953e4f(0x182)+_0x447c50;logger['debug'](_0x3837fd,_0x1037b2),writeToFileLog({..._0x3837fd,'level':_0x953e4f(0x1ad),'msg':_0x1037b2,'time':new Date()['toISOString']()},_0x953e4f(0x1ad));},redactObject=_0x45865f=>{const _0x5b03f6=a0_0x129db8,_0x17da73={'QtlxO':'object','oywpz':_0x5b03f6(0x1cb),'AURfg':'passwd','VWVrA':_0x5b03f6(0x1a4),'sQOUt':'token','IOark':_0x5b03f6(0x18a),'NEbbH':'authorization','cScrz':'creditcard','flooe':_0x5b03f6(0x160),'QdDXJ':_0x5b03f6(0x149),'gRTho':_0x5b03f6(0x185),'Ahplf':'refresh_token','iFQBR':'access_token','QPKnq':'[REDACTED]','uyDoD':function(_0x5bce93,_0x401790){return _0x5bce93!==_0x401790;}};if(!_0x45865f||typeof _0x45865f!==_0x17da73['QtlxO'])return _0x45865f;const _0x411a35=[_0x17da73['oywpz'],_0x17da73[_0x5b03f6(0x16c)],_0x17da73['VWVrA'],_0x17da73['sQOUt'],'secret','apikey',_0x17da73['IOark'],_0x17da73[_0x5b03f6(0x15d)],_0x17da73[_0x5b03f6(0x18f)],_0x17da73[_0x5b03f6(0x14c)],_0x5b03f6(0x121),'ssn','pin',_0x17da73[_0x5b03f6(0x188)],_0x17da73[_0x5b03f6(0x14b)],_0x17da73['Ahplf'],_0x17da73[_0x5b03f6(0x13c)]],_0x57f046=Array['isArray'](_0x45865f)?[..._0x45865f]:{..._0x45865f};for(const _0x637e7e of Object[_0x5b03f6(0x142)](_0x57f046)){const _0x16f490=_0x637e7e[_0x5b03f6(0x1a8)]();if(_0x411a35[_0x5b03f6(0x123)](_0x154afa=>_0x16f490[_0x5b03f6(0x13b)](_0x154afa)))_0x57f046[_0x637e7e]=_0x17da73['QPKnq'];else typeof _0x57f046[_0x637e7e]===_0x5b03f6(0x1c8)&&_0x17da73[_0x5b03f6(0x19a)](_0x57f046[_0x637e7e],null)&&(_0x57f046[_0x637e7e]=redactObject(_0x57f046[_0x637e7e]));}return _0x57f046;},logError=(_0x31576d,_0x3f16f3={},_0xf2573d=null)=>{const _0x3466e7=a0_0x129db8,_0x379975={'YWlib':_0x3466e7(0x1c2)},_0x226b66={'event':_0x379975[_0x3466e7(0x151)],'errorName':_0x31576d['name']||_0x3466e7(0x14f),'errorMessage':_0x31576d['message'],'errorCode':_0x31576d['code']||null,'stack':_0x31576d[_0x3466e7(0x1d0)],..._0x3f16f3},_0x1b0a6f=_0xf2573d||'Error:\x20'+_0x31576d['message'];logger['error'](_0x226b66,_0x1b0a6f),writeToFileLog({..._0x226b66,'level':_0x379975['YWlib'],'msg':_0x1b0a6f,'time':new Date()[_0x3466e7(0x1b7)]()},_0x379975[_0x3466e7(0x151)]);},logFatalError=(_0x193390,_0x24449a={},_0x7dfe71=null)=>{const _0x36a7fd=a0_0x129db8,_0x3fdb79={'TOFcO':'fatal_error','ABQBm':_0x36a7fd(0x14f),'lSXaF':'CRITICAL','hLNcD':'error'},_0x24237f={'event':_0x3fdb79[_0x36a7fd(0x12c)],'errorName':_0x193390[_0x36a7fd(0x139)]||_0x3fdb79['ABQBm'],'errorMessage':_0x193390['message'],'errorCode':_0x193390['code']||null,'stack':_0x193390[_0x36a7fd(0x1d0)],'severity':_0x3fdb79[_0x36a7fd(0x190)],..._0x24449a},_0x14868b=_0x7dfe71||_0x36a7fd(0x1c0)+_0x193390[_0x36a7fd(0x12b)];logger['fatal'](_0x24237f,_0x14868b),writeToFileLog({..._0x24237f,'level':'fatal','msg':_0x14868b,'time':new Date()[_0x36a7fd(0x1b7)]()},_0x3fdb79['hLNcD']);},logHttpError=(_0x579194,_0x5d726f,_0x5d2614={})=>{const _0x3974df=a0_0x129db8,_0x53a63a={'nzsSB':_0x3974df(0x14f),'VkOeE':'user-agent','rpiwB':_0x3974df(0x144),'zHHLF':function(_0x1f3aae,_0x107ba9){return _0x1f3aae>=_0x107ba9;},'BPZGL':function(_0x4e88bd,_0x3e1488,_0x49e46b){return _0x4e88bd(_0x3e1488,_0x49e46b);},'ONkJN':'warn','PPqqA':function(_0x4a755a,_0x247593){return _0x4a755a>=_0x247593;},'pJLIo':'error'},_0x45b225={'event':'http_error','errorName':_0x579194['name']||_0x53a63a['nzsSB'],'errorMessage':_0x579194[_0x3974df(0x12b)],'errorCode':_0x579194[_0x3974df(0x16f)]||_0x579194[_0x3974df(0x1c7)]||0x1f4,'stack':_0x579194[_0x3974df(0x1d0)],'method':_0x5d726f?.['method'],'url':_0x5d726f?.[_0x3974df(0x175)]||_0x5d726f?.['originalUrl'],'path':_0x5d726f?.['path'],'ip':_0x5d726f?.['ip']||_0x5d726f?.[_0x3974df(0x171)]?.['remoteAddress'],'userAgent':_0x5d726f?.['get']?.(_0x53a63a['VkOeE']),'requestId':_0x5d726f?.['id']||_0x5d726f?.['headers']?.[_0x53a63a['rpiwB']],'body':_0x5d726f?.['body']?redactObject(_0x5d726f['body']):undefined,'query':_0x5d726f?.[_0x3974df(0x179)],..._0x5d2614},_0x3e9f08=_0x579194[_0x3974df(0x1c7)]||_0x579194[_0x3974df(0x126)]||0x1f4,_0x3ebbfa=_0x3974df(0x198)+_0x3e9f08+':\x20'+_0x579194['message'];_0x53a63a['zHHLF'](_0x3e9f08,0x1f4)?logger[_0x3974df(0x1c2)](_0x45b225,_0x3ebbfa):logger[_0x3974df(0x180)](_0x45b225,_0x3ebbfa),_0x53a63a['BPZGL'](writeToFileLog,{..._0x45b225,'level':_0x3e9f08>=0x1f4?'error':_0x53a63a[_0x3974df(0x1b1)],'msg':_0x3ebbfa,'time':new Date()['toISOString']()},_0x53a63a[_0x3974df(0x184)](_0x3e9f08,0x1f4)?_0x53a63a[_0x3974df(0x169)]:_0x3974df(0x180));},logUncaughtError=(_0x588fa7,_0x1b22ee)=>{const _0x436033=a0_0x129db8,_0x22c5d8={'CsloU':'Error','UZAav':function(_0x47bd6c,_0x3b9c8f){return _0x47bd6c(_0x3b9c8f);},'DQJPJ':function(_0x33299b,_0x37b4ba,_0x8f45ef){return _0x33299b(_0x37b4ba,_0x8f45ef);},'XfNnk':_0x436033(0x1c2)},_0x47c98b={'event':_0x588fa7,'errorName':_0x1b22ee?.[_0x436033(0x139)]||_0x22c5d8['CsloU'],'errorMessage':_0x1b22ee?.[_0x436033(0x12b)]||_0x22c5d8[_0x436033(0x177)](String,_0x1b22ee),'errorCode':_0x1b22ee?.[_0x436033(0x16f)]||null,'stack':_0x1b22ee?.[_0x436033(0x1d0)],'severity':'CRITICAL','processId':process['pid'],'memoryUsage':process[_0x436033(0x168)](),'uptime':process[_0x436033(0x16d)]()},_0x58bed1='['+_0x588fa7[_0x436033(0x193)]()+']\x20'+(_0x1b22ee?.['message']||_0x1b22ee);logger['fatal'](_0x47c98b,_0x58bed1),_0x22c5d8['DQJPJ'](writeToFileLog,{..._0x47c98b,'level':_0x436033(0x1cc),'msg':_0x58bed1,'time':new Date()[_0x436033(0x1b7)]()},_0x22c5d8[_0x436033(0x164)]);},setupGlobalErrorHandlers=()=>{const _0x95a281=a0_0x129db8,_0x5cd650={'KxpMQ':function(_0x36ad4a,_0x5e5145,_0x3506ca){return _0x36ad4a(_0x5e5145,_0x3506ca);},'LFmKF':_0x95a281(0x1bf),'EKEUU':function(_0x4a9d84,_0x53c499){return _0x4a9d84 instanceof _0x53c499;},'YSlsc':function(_0xd70c84,_0xcaecf3){return _0xd70c84(_0xcaecf3);},'SWkSc':function(_0x5a9a18,_0x5ee4dd,_0x5c0898){return _0x5a9a18(_0x5ee4dd,_0x5c0898);},'HyAiK':_0x95a281(0x135),'bpfhU':'unhandledRejection','RzpVu':'global_error_handlers_setup','AOgYF':_0x95a281(0x167)};process['on'](_0x5cd650['LFmKF'],_0x42ccac=>{const _0x193f0b=_0x95a281;_0x5cd650[_0x193f0b(0x1da)](logUncaughtError,_0x5cd650['LFmKF'],_0x42ccac),setTimeout(()=>{process['exit'](0x1);},0x3e8);}),process['on'](_0x5cd650[_0x95a281(0x17e)],(_0x5d219d,_0x518779)=>{const _0x57da8c=_0x95a281,_0x18c413=_0x5cd650[_0x57da8c(0x140)](_0x5d219d,Error)?_0x5d219d:new Error(_0x5cd650[_0x57da8c(0x1dc)](String,_0x5d219d));_0x5cd650[_0x57da8c(0x181)](logUncaughtError,'unhandledRejection',_0x18c413);}),process['on'](_0x95a281(0x1ae),_0x291706=>{const _0x31d7c2=_0x95a281;logger['warn']({'event':_0x5cd650[_0x31d7c2(0x161)],'name':_0x291706[_0x31d7c2(0x139)],'message':_0x291706[_0x31d7c2(0x12b)],'stack':_0x291706['stack']},_0x31d7c2(0x1b9)+_0x291706[_0x31d7c2(0x12b)]);});const _0x6c83f={'event':_0x5cd650[_0x95a281(0x125)]},_0xddbfde=_0x5cd650[_0x95a281(0x1aa)];logger['info'](_0x6c83f,_0xddbfde),_0x5cd650[_0x95a281(0x1da)](writeToFileLog,{..._0x6c83f,'level':'info','msg':_0xddbfde,'time':new Date()[_0x95a281(0x1b7)]()},_0x95a281(0x137));},createErrorHandlerMiddleware=()=>{const _0x5e1ec2=a0_0x129db8,_0x325e11={'EnpmJ':'Internal\x20server\x20error','TTUES':_0x5e1ec2(0x144)};return(_0x43b4c3,_0x55897d,_0x2bb3ee,_0x5d8637)=>{const _0x595882=_0x5e1ec2;logHttpError(_0x43b4c3,_0x55897d);const _0x2a9905=_0x43b4c3[_0x595882(0x1c7)]||_0x43b4c3[_0x595882(0x126)]||0x1f4;_0x2bb3ee[_0x595882(0x126)](_0x2a9905)[_0x595882(0x14a)]({'success':![],'error':_0x2a9905>=0x1f4?_0x325e11['EnpmJ']:_0x43b4c3['message'],'requestId':_0x55897d['id']||_0x55897d['headers']?.[_0x325e11[_0x595882(0x13a)]]||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_0x3f5f56=a0_0x2639;function a0_0x2639(_0x1a545e,_0x48f212){_0x1a545e=_0x1a545e-0x107;const _0x286664=a0_0x2866();let _0x263918=_0x286664[_0x1a545e];if(a0_0x2639['tKoKbm']===undefined){var _0x13ce40=function(_0x3e8a4f){const _0xb919d9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2f8c9f='',_0x2b9c89='';for(let _0x5df0db=0x0,_0x3f1b21,_0x3d8d5e,_0x306a91=0x0;_0x3d8d5e=_0x3e8a4f['charAt'](_0x306a91++);~_0x3d8d5e&&(_0x3f1b21=_0x5df0db%0x4?_0x3f1b21*0x40+_0x3d8d5e:_0x3d8d5e,_0x5df0db++%0x4)?_0x2f8c9f+=String['fromCharCode'](0xff&_0x3f1b21>>(-0x2*_0x5df0db&0x6)):0x0){_0x3d8d5e=_0xb919d9['indexOf'](_0x3d8d5e);}for(let _0x1492d0=0x0,_0x284ccc=_0x2f8c9f['length'];_0x1492d0<_0x284ccc;_0x1492d0++){_0x2b9c89+='%'+('00'+_0x2f8c9f['charCodeAt'](_0x1492d0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2b9c89);};a0_0x2639['cGQxeT']=_0x13ce40,a0_0x2639['dinglG']={},a0_0x2639['tKoKbm']=!![];}const _0x5c8c81=_0x286664[0x0],_0x1d8061=_0x1a545e+_0x5c8c81,_0x57a777=a0_0x2639['dinglG'][_0x1d8061];return!_0x57a777?(_0x263918=a0_0x2639['cGQxeT'](_0x263918),a0_0x2639['dinglG'][_0x1d8061]=_0x263918):_0x263918=_0x57a777,_0x263918;}(function(_0x2d755e,_0x2d321d){const _0x5efce4=a0_0x2639,_0x22a3f6=_0x2d755e();while(!![]){try{const _0x57ed7f=parseInt(_0x5efce4(0x109))/0x1+-parseInt(_0x5efce4(0x133))/0x2+-parseInt(_0x5efce4(0x117))/0x3+-parseInt(_0x5efce4(0x110))/0x4*(-parseInt(_0x5efce4(0x118))/0x5)+parseInt(_0x5efce4(0x123))/0x6+parseInt(_0x5efce4(0x119))/0x7+-parseInt(_0x5efce4(0x12d))/0x8*(parseInt(_0x5efce4(0x131))/0x9);if(_0x57ed7f===_0x2d321d)break;else _0x22a3f6['push'](_0x22a3f6['shift']());}catch(_0x35210f){_0x22a3f6['push'](_0x22a3f6['shift']());}}}(a0_0x2866,0xc0bbc));const dbType=(process['env']['DB_TYPE']||a0_0x3f5f56(0x10c))['toLowerCase']();let executeQuery;if(dbType===a0_0x3f5f56(0x138)){const oracleDb=require('./db-oracle');executeQuery=(_0xbda1ff,_0x5537b7)=>oracleDb[a0_0x3f5f56(0x107)](_0xbda1ff,_0x5537b7);}else{if(dbType===a0_0x3f5f56(0x12f)){const mysqlDb=require(a0_0x3f5f56(0x11a));executeQuery=(_0x14e88c,_0x23a267)=>mysqlDb[a0_0x3f5f56(0x107)](_0x14e88c,_0x23a267);}else executeQuery=require('./db')['executeQuery'];}const {logger}=require('./logger');class LookupResolver{constructor(){const _0x54f0d0=a0_0x3f5f56;this[_0x54f0d0(0x124)]=new Map();}[a0_0x3f5f56(0x10a)](){const _0x4f42c0=a0_0x3f5f56,_0x175b9f={'FUCeT':'lookup_cache_cleared','pnEzz':'Lookup\x20cache\x20cleared'};this[_0x4f42c0(0x124)]['clear'](),logger['debug']({'event':_0x175b9f[_0x4f42c0(0x12a)]},_0x175b9f[_0x4f42c0(0x112)]);}async[a0_0x3f5f56(0x11f)](_0x4c369a,_0x398f6a,_0x413f32){const _0x514bb5=a0_0x3f5f56,_0x21f6c0={'bSfkr':function(_0x27ee3d,_0x1034d9){return _0x27ee3d!==_0x1034d9;},'PRHpj':function(_0x3e405c,_0x55bf40){return _0x3e405c(_0x55bf40);},'WLYdG':function(_0x2e07b9,_0x1a2362){return _0x2e07b9(_0x1a2362);},'baxxM':_0x514bb5(0x129)},_0x4680bf=_0x4c369a+':'+_0x398f6a+':'+_0x413f32;if(this['lookupCache'][_0x514bb5(0x116)](_0x4680bf))return this[_0x514bb5(0x124)][_0x514bb5(0x11e)](_0x4680bf);try{const _0x512881=_0x514bb5(0x11b)+_0x413f32+',\x20'+_0x398f6a+'\x20FROM\x20'+_0x4c369a,_0x508f25=await _0x21f6c0[_0x514bb5(0x113)](executeQuery,_0x512881),_0x53f8a7=new Map();return _0x508f25['forEach'](_0x1b7378=>{const _0x5ebaad=_0x514bb5,_0x17c164=_0x1b7378[_0x398f6a]!==undefined?_0x1b7378[_0x398f6a]:_0x1b7378[_0x398f6a[_0x5ebaad(0x125)]()],_0x36c916=_0x1b7378[_0x413f32]!==undefined?_0x1b7378[_0x413f32]:_0x1b7378[_0x413f32['toUpperCase']()];_0x17c164!==null&&_0x21f6c0['bSfkr'](_0x17c164,undefined)&&(_0x53f8a7[_0x5ebaad(0x136)](_0x21f6c0[_0x5ebaad(0x111)](String,_0x17c164)[_0x5ebaad(0x10d)]()['trim'](),_0x36c916),_0x53f8a7[_0x5ebaad(0x136)](_0x21f6c0['PRHpj'](String,_0x17c164)[_0x5ebaad(0x114)](),_0x36c916));}),this['lookupCache']['set'](_0x4680bf,_0x53f8a7),logger['info']({'event':_0x21f6c0[_0x514bb5(0x130)],'table':_0x4c369a,'column':_0x398f6a,'count':_0x508f25[_0x514bb5(0x10f)]},'Lookup\x20table\x20loaded:\x20'+_0x4c369a),_0x53f8a7;}catch(_0x13732b){logger['error']({'event':'lookup_table_load_error','table':_0x4c369a,'error':_0x13732b[_0x514bb5(0x115)]},_0x514bb5(0x10e)+_0x4c369a);throw _0x13732b;}}['resolveLookupValue'](_0x10e780,_0x5b3106){const _0x2f7ea9=a0_0x3f5f56,_0x39f892={'Tokxp':function(_0x4d6b25,_0x2b5329){return _0x4d6b25===_0x2b5329;},'optqJ':function(_0x295164,_0x502773){return _0x295164(_0x502773);}};if(_0x39f892[_0x2f7ea9(0x121)](_0x10e780,null)||_0x10e780===undefined||_0x10e780==='')return null;const _0x164da2=_0x39f892['optqJ'](String,_0x10e780)['trim']();if(_0x5b3106['has'](_0x164da2))return _0x5b3106[_0x2f7ea9(0x11e)](_0x164da2);const _0x39d0af=_0x164da2[_0x2f7ea9(0x10d)]();if(_0x5b3106['has'](_0x39d0af))return _0x5b3106['get'](_0x39d0af);return null;}async[a0_0x3f5f56(0x12c)](_0x4d7f34,_0x5b1bf4){const _0x24b736=a0_0x3f5f56,_0x48183d={'uQPpH':function(_0x5c2654,_0x23b870){return _0x5c2654===_0x23b870;},'HHZBc':function(_0x5907d5,_0x34f64d){return _0x5907d5!==_0x34f64d;}};if(!_0x5b1bf4||Object[_0x24b736(0x135)](_0x5b1bf4)[_0x24b736(0x10f)]===0x0)return{'processedRows':_0x4d7f34,'errors':[]};const _0xc17f00=[],_0x34da5a=new Map();for(const [_0x177105,_0x242bc9]of Object[_0x24b736(0x132)](_0x5b1bf4)){const {lookupTable:_0x201b3c,lookupColumn:_0x3a3336,lookupIdColumn:_0x446a72}=_0x242bc9,_0x156499=_0x201b3c+':'+_0x3a3336+':'+_0x446a72;if(!_0x34da5a[_0x24b736(0x116)](_0x156499)){const _0x405f93=await this[_0x24b736(0x11f)](_0x201b3c,_0x3a3336,_0x446a72);_0x34da5a['set'](_0x156499,_0x405f93);}}const _0xeb02d5=_0x4d7f34[_0x24b736(0x134)]((_0x2111f9,_0x48512d)=>{const _0x5c2c32=_0x24b736,_0x1c58fc={..._0x2111f9};for(const [_0x55feca,_0xe7e0d8]of Object[_0x5c2c32(0x132)](_0x5b1bf4)){const {lookupTable:_0x3c0455,lookupColumn:_0x29ea35,lookupIdColumn:_0x1c6572,targetField:_0x5469c1,required:_0x3c6381}=_0xe7e0d8,_0x3522c6=_0x3c0455+':'+_0x29ea35+':'+_0x1c6572,_0x19eaee=_0x34da5a[_0x5c2c32(0x11e)](_0x3522c6),_0x375560=_0x2111f9[_0x55feca];if((_0x48183d[_0x5c2c32(0x10b)](_0x375560,null)||_0x375560===undefined||_0x375560==='')&&!_0x3c6381){_0x1c58fc[_0x5469c1]=null;continue;}const _0x3d20c0=this[_0x5c2c32(0x12e)](_0x375560,_0x19eaee);_0x48183d['HHZBc'](_0x3d20c0,null)?_0x1c58fc[_0x5469c1]=_0x3d20c0:(_0x3c6381&&_0xc17f00[_0x5c2c32(0x126)]({'rowIndex':_0x48512d,'field':_0x55feca,'value':_0x375560,'targetField':_0x5469c1,'lookupTable':_0x3c0455,'message':'Value\x20\x22'+_0x375560+'\x22\x20not\x20found\x20in\x20'+_0x3c0455}),_0x1c58fc[_0x5469c1]=null);}return _0x1c58fc;});return logger[_0x24b736(0x122)]({'event':'lookup_fields_processed','totalRows':_0x4d7f34[_0x24b736(0x10f)],'errorCount':_0xc17f00['length'],'lookupFieldCount':Object['keys'](_0x5b1bf4)[_0x24b736(0x10f)]},_0x24b736(0x11d)),{'processedRows':_0xeb02d5,'errors':_0xc17f00};}[a0_0x3f5f56(0x128)](_0x818310,_0x1adae5){const _0x39eacb=a0_0x3f5f56,_0x595dd3={'EpgxA':function(_0x498997,_0x346b7d){return _0x498997!==_0x346b7d;},'oPmsm':function(_0x5dd35c,_0xb22c0d){return _0x5dd35c!==_0xb22c0d;}},_0x3a36ae=new Set();return _0x818310[_0x39eacb(0x12b)](_0x3a610=>{const _0x4ba739=_0x39eacb,_0x5d939e=_0x3a610[_0x1adae5];_0x595dd3['EpgxA'](_0x5d939e,null)&&_0x595dd3['oPmsm'](_0x5d939e,undefined)&&_0x595dd3[_0x4ba739(0x137)](_0x5d939e,'')&&_0x3a36ae[_0x4ba739(0x108)](String(_0x5d939e)[_0x4ba739(0x114)]());}),Array[_0x39eacb(0x120)](_0x3a36ae);}async[a0_0x3f5f56(0x11c)](_0x4b3786,_0x10a8dc){const _0x28f5f7=a0_0x3f5f56,_0x5ed125={'xngac':function(_0x30cbf1,_0x5cedf0){return _0x30cbf1===_0x5cedf0;},'hHmQZ':function(_0x143708,_0x4f2bda){return _0x143708>_0x4f2bda;}};if(!_0x10a8dc||_0x5ed125['xngac'](Object['keys'](_0x10a8dc)[_0x28f5f7(0x10f)],0x0))return{'valid':!![],'errors':[],'suggestions':{}};const _0x3b516f=[],_0x5db465={};for(const [_0x38bfeb,_0x46e709]of Object[_0x28f5f7(0x132)](_0x10a8dc)){const {lookupTable:_0x1e9e7f,lookupColumn:_0x415ea1,lookupIdColumn:_0x3623da,required:_0xfce604}=_0x46e709,_0x286ba1=this[_0x28f5f7(0x128)](_0x4b3786,_0x38bfeb),_0x3ff6f1=await this[_0x28f5f7(0x11f)](_0x1e9e7f,_0x415ea1,_0x3623da),_0x43df80=[],_0x3f3dc0=[];_0x286ba1[_0x28f5f7(0x12b)](_0x55f694=>{const _0x4f4bab=this['resolveLookupValue'](_0x55f694,_0x3ff6f1);_0x4f4bab!==null?_0x3f3dc0['push'](_0x55f694):_0x43df80['push'](_0x55f694);});if(_0x5ed125[_0x28f5f7(0x127)](_0x43df80['length'],0x0)&&_0xfce604){_0x3b516f['push']({'field':_0x38bfeb,'lookupTable':_0x1e9e7f,'invalidValues':_0x43df80,'message':_0x43df80[_0x28f5f7(0x10f)]+'\x20value(s)\x20not\x20found\x20in\x20'+_0x1e9e7f});const _0x4f6a5a=[];_0x3ff6f1[_0x28f5f7(0x12b)]((_0x3f738,_0x412307)=>{const _0x468e09=_0x28f5f7;if(_0x412307===_0x412307['toLowerCase']())return;_0x4f6a5a[_0x468e09(0x126)](_0x412307);}),_0x5db465[_0x38bfeb]={'invalidValues':_0x43df80,'availableValues':_0x4f6a5a['slice'](0x0,0x32)};}}return{'valid':_0x3b516f[_0x28f5f7(0x10f)]===0x0,'errors':_0x3b516f,'suggestions':_0x5db465};}}function a0_0x2866(){const _0x39b19c=['ChjVy2vZC0XVB2T1CezPzwXKCW','mte2ogTyEfnzEG','CMvZB2X2zuXVB2T1CfzHBhvL','BxLZCwW','yMf4Ee0','mtC3nJi0u29uvfPQ','zw50CMLLCW','mti1ntm4mg5UtxvhBa','BwfW','A2v5CW','C2v0','rxbNEee','B3jHy2XL','zxHLy3v0zvf1zxj5','ywrK','mtiWnJu0mvjfz3jZtq','y2XLyxjdywnOzq','DvfqCeG','Cg9ZDgDYzxnXBa','Dg9mB3DLCKnHC2u','rMfPBgvKihrVigXVywqGBg9VA3vWihrHyMXLoIa','BgvUz3rO','oti0ndC2veTXBwPJ','ufjiCgO','Cg5fENO','v0XzzeC','DhjPBq','BwvZC2fNzq','AgfZ','nJm2nJuXqM96zNDL','mJbZDwDYu3q','odC2nZu2m1j2weLPBG','lI9KyI1TExnXBa','u0vmrunuia','DMfSAwrHDgvmB29RDxbwywX1zxm','tg9VA3vWigzPzwXKCYbWCM9JzxnZzwq','z2v0','Bg9HzeXVB2T1CfrHyMXL','zNjVBq','vg9REha','Aw5MBW','nJC2mZyZoePZq0LNta','Bg9VA3vWq2fJAgu','Dg9vChbLCKnHC2u','ChvZAa','AeHTuvO','z2v0rgLZDgLUy3rwywX1zxm','Bg9VA3vWx3rHyMXLx2XVywrLza','rLvdzvq','zM9YrwfJAa'];a0_0x2866=function(){return _0x39b19c;};return a0_0x2866();}module['exports']=new LookupResolver();
1
+ const a0_0x569339=a0_0x5bc8;function a0_0x3f0c(){const _0x4a1d7c=['CNLgCfm','og9hzvPoEG','Bg9VA3vWx2nHy2HLx2nSzwfYzwq','zM9YrwfJAa','v29wyLG','Dg9mB3DLCKnHC2u','BgvUz3rO','nezHCgznDa','Bg9HzeXVB2T1CfrHyMXL','BxLZCwW','ChvZAa','mKDIEK9grW','DhjPBq','vMfSDwuGiG','C2v0','BwfW','wND2rvG','zw52','ntmWtw1KuMjt','zw50CMLLCW','DeDzqLq','mtuWmJuXnuv2vhfdrG','AuvfCNu','mtqYndD3wfzvsuO','iIbUB3qGzM91BMqGAw4G','rMfPBgvKihrVigXVywqGBg9VA3vWihrHyMXLoIa','ntu0nZaZvLLSDg5M','qxbYDwm','otbprMDsuve','AgfZ','tg9VA3vWignHy2HLignSzwfYzwq','uvfMDxu','nJa2mtK2nxDxshPxCG','mtjvB2LIEhG','Aw5MBW','A2v5CW','zxHLy3v0zvf1zxj5','lI9SB2DNzxi','ota0mZjwqu5nt0K','BwvZC2fNzq','ndCWmdnXvvLes1a','CMvZB2X2zuXVB2T1CfzHBhvL','y2XLyxjdywnOzq','z2v0rgLZDgLUy3rwywX1zxm','y2XLyxi','Cg9ZDgDYzxnXBa','CNbTwKK','iezst00G','nty5nZzeugHWz2K'];a0_0x3f0c=function(){return _0x4a1d7c;};return a0_0x3f0c();}(function(_0x467543,_0x125647){const _0xc56b51=a0_0x5bc8,_0x5b0711=_0x467543();while(!![]){try{const _0x136f18=parseInt(_0xc56b51(0x1b0))/0x1*(-parseInt(_0xc56b51(0x19a))/0x2)+-parseInt(_0xc56b51(0x1bf))/0x3*(-parseInt(_0xc56b51(0x1ac))/0x4)+parseInt(_0xc56b51(0x1c1))/0x5*(-parseInt(_0xc56b51(0x1a4))/0x6)+-parseInt(_0xc56b51(0x1ba))/0x7*(parseInt(_0xc56b51(0x1a6))/0x8)+parseInt(_0xc56b51(0x1bc))/0x9*(parseInt(_0xc56b51(0x1b7))/0xa)+parseInt(_0xc56b51(0x19c))/0xb*(-parseInt(_0xc56b51(0x1c6))/0xc)+parseInt(_0xc56b51(0x1c5))/0xd;if(_0x136f18===_0x125647)break;else _0x5b0711['push'](_0x5b0711['shift']());}catch(_0xddba89){_0x5b0711['push'](_0x5b0711['shift']());}}}(a0_0x3f0c,0x3e36b));function a0_0x5bc8(_0xb98bf8,_0x2cd981){_0xb98bf8=_0xb98bf8-0x199;const _0x3f0ca7=a0_0x3f0c();let _0x5bc87f=_0x3f0ca7[_0xb98bf8];if(a0_0x5bc8['HhFsWr']===undefined){var _0x53cfbc=function(_0x550fee){const _0x1e838e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4d1144='',_0x500f41='';for(let _0x36f7f8=0x0,_0x5b70b2,_0xa4abb2,_0x10ad59=0x0;_0xa4abb2=_0x550fee['charAt'](_0x10ad59++);~_0xa4abb2&&(_0x5b70b2=_0x36f7f8%0x4?_0x5b70b2*0x40+_0xa4abb2:_0xa4abb2,_0x36f7f8++%0x4)?_0x4d1144+=String['fromCharCode'](0xff&_0x5b70b2>>(-0x2*_0x36f7f8&0x6)):0x0){_0xa4abb2=_0x1e838e['indexOf'](_0xa4abb2);}for(let _0x2e7eb8=0x0,_0x26a20d=_0x4d1144['length'];_0x2e7eb8<_0x26a20d;_0x2e7eb8++){_0x500f41+='%'+('00'+_0x4d1144['charCodeAt'](_0x2e7eb8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x500f41);};a0_0x5bc8['sOrPyf']=_0x53cfbc,a0_0x5bc8['qEOnqY']={},a0_0x5bc8['HhFsWr']=!![];}const _0x1344bb=_0x3f0ca7[0x0],_0x6d146b=_0xb98bf8+_0x1344bb,_0x5661e0=a0_0x5bc8['qEOnqY'][_0x6d146b];return!_0x5661e0?(_0x5bc87f=a0_0x5bc8['sOrPyf'](_0x5bc87f),a0_0x5bc8['qEOnqY'][_0x6d146b]=_0x5bc87f):_0x5bc87f=_0x5661e0,_0x5bc87f;}const dbType=(process[a0_0x569339(0x1b6)]['DB_TYPE']||a0_0x569339(0x1a1))['toLowerCase']();let executeQuery;if(dbType==='oracle'){const oracleDb=require('./db-oracle');executeQuery=(_0x320fd2,_0x15d162)=>oracleDb[a0_0x569339(0x1c9)](_0x320fd2,_0x15d162);}else{if(dbType===a0_0x569339(0x1ae)){const mysqlDb=require('./db-mysql');executeQuery=(_0x489987,_0x442805)=>mysqlDb['executeQuery'](_0x489987,_0x442805);}else executeQuery=require('./db')['executeQuery'];}const {logger}=require(a0_0x569339(0x199));class LookupResolver{constructor(){this['lookupCache']=new Map();}[a0_0x569339(0x19e)](){const _0x27a9bb=a0_0x569339,_0x2e3c75={'iEEru':_0x27a9bb(0x1a7),'hCxcu':_0x27a9bb(0x1c3)};this['lookupCache'][_0x27a9bb(0x1a0)](),logger['debug']({'event':_0x2e3c75[_0x27a9bb(0x1bb)]},_0x2e3c75['hCxcu']);}async[a0_0x569339(0x1ad)](_0x2a85dc,_0x200f39,_0x5b649d){const _0x2289ee=a0_0x569339,_0x46e377={'ygMWR':function(_0x53c0b3,_0x220345){return _0x53c0b3!==_0x220345;},'Apruc':function(_0x53fb68,_0x4b4e58){return _0x53fb68!==_0x4b4e58;},'NkxKU':function(_0x2a3735,_0x3d0068){return _0x2a3735(_0x3d0068);}},_0x558ea6=_0x2a85dc+':'+_0x200f39+':'+_0x5b649d;if(this['lookupCache']['has'](_0x558ea6))return this['lookupCache']['get'](_0x558ea6);try{const _0x2dd720='SELECT\x20'+_0x5b649d+',\x20'+_0x200f39+_0x2289ee(0x1a3)+_0x2a85dc,_0x2f1640=await executeQuery(_0x2dd720),_0x14306b=new Map();return _0x2f1640['forEach'](_0x47d387=>{const _0x1e639b=_0x2289ee,_0xa6d5f=_0x47d387[_0x200f39]!==undefined?_0x47d387[_0x200f39]:_0x47d387[_0x200f39['toUpperCase']()],_0x5c4902=_0x47d387[_0x5b649d]!==undefined?_0x47d387[_0x5b649d]:_0x47d387[_0x5b649d['toUpperCase']()];_0x46e377['ygMWR'](_0xa6d5f,null)&&_0x46e377[_0x1e639b(0x1c0)](_0xa6d5f,undefined)&&(_0x14306b['set'](_0x46e377['NkxKU'](String,_0xa6d5f)['toLowerCase']()['trim'](),_0x5c4902),_0x14306b[_0x1e639b(0x1b3)](String(_0xa6d5f)[_0x1e639b(0x1b1)](),_0x5c4902));}),this['lookupCache'][_0x2289ee(0x1b3)](_0x558ea6,_0x14306b),logger[_0x2289ee(0x1c7)]({'event':'lookup_table_loaded','table':_0x2a85dc,'column':_0x200f39,'count':_0x2f1640[_0x2289ee(0x1ab)]},'Lookup\x20table\x20loaded:\x20'+_0x2a85dc),_0x14306b;}catch(_0x5942b8){logger['error']({'event':'lookup_table_load_error','table':_0x2a85dc,'error':_0x5942b8[_0x2289ee(0x19b)]},_0x2289ee(0x1be)+_0x2a85dc);throw _0x5942b8;}}['resolveLookupValue'](_0x40be3b,_0x4c794a){const _0x39d0be=a0_0x569339,_0x162ada={'GgbBI':function(_0x51692b,_0xccfe32){return _0x51692b===_0xccfe32;},'rpmZI':function(_0x5c96af,_0x47c365){return _0x5c96af(_0x47c365);}};if(_0x162ada['GgbBI'](_0x40be3b,null)||_0x40be3b===undefined||_0x40be3b==='')return null;const _0x1a4898=_0x162ada[_0x39d0be(0x1a2)](String,_0x40be3b)[_0x39d0be(0x1b1)]();if(_0x4c794a['has'](_0x1a4898))return _0x4c794a['get'](_0x1a4898);const _0x1f88c8=_0x1a4898[_0x39d0be(0x1aa)]();if(_0x4c794a[_0x39d0be(0x1c2)](_0x1f88c8))return _0x4c794a['get'](_0x1f88c8);return null;}async['processLookupFields'](_0x3c5283,_0x5e4486){const _0x3198d6=a0_0x569339,_0x57ea05={'ryFpS':function(_0xa9ae65,_0x5368e1){return _0xa9ae65===_0x5368e1;},'QQfuu':'Lookup\x20fields\x20processed'};if(!_0x5e4486||Object[_0x3198d6(0x1c8)](_0x5e4486)['length']===0x0)return{'processedRows':_0x3c5283,'errors':[]};const _0x398ade=[],_0x1edc2f=new Map();for(const [_0x494c84,_0x5c408b]of Object['entries'](_0x5e4486)){const {lookupTable:_0x14c1dc,lookupColumn:_0x22ca95,lookupIdColumn:_0xd842f7}=_0x5c408b,_0x1c6b20=_0x14c1dc+':'+_0x22ca95+':'+_0xd842f7;if(!_0x1edc2f['has'](_0x1c6b20)){const _0x1e716e=await this[_0x3198d6(0x1ad)](_0x14c1dc,_0x22ca95,_0xd842f7);_0x1edc2f[_0x3198d6(0x1b3)](_0x1c6b20,_0x1e716e);}}const _0x93c9ab=_0x3c5283[_0x3198d6(0x1b4)]((_0xd19bfc,_0x3c55e6)=>{const _0x513456=_0x3198d6,_0x436ad9={..._0xd19bfc};for(const [_0x122cae,_0x152ae3]of Object[_0x513456(0x1b8)](_0x5e4486)){const {lookupTable:_0x7b4ef4,lookupColumn:_0x1e7c7c,lookupIdColumn:_0x505ad9,targetField:_0x407712,required:_0xcf3a81}=_0x152ae3,_0xa4f33b=_0x7b4ef4+':'+_0x1e7c7c+':'+_0x505ad9,_0x3f7b46=_0x1edc2f['get'](_0xa4f33b),_0x33c6a7=_0xd19bfc[_0x122cae];if((_0x57ea05[_0x513456(0x1a5)](_0x33c6a7,null)||_0x33c6a7===undefined||_0x57ea05[_0x513456(0x1a5)](_0x33c6a7,''))&&!_0xcf3a81){_0x436ad9[_0x407712]=null;continue;}const _0xed063a=this['resolveLookupValue'](_0x33c6a7,_0x3f7b46);_0xed063a!==null?_0x436ad9[_0x407712]=_0xed063a:(_0xcf3a81&&_0x398ade[_0x513456(0x1af)]({'rowIndex':_0x3c55e6,'field':_0x122cae,'value':_0x33c6a7,'targetField':_0x407712,'lookupTable':_0x7b4ef4,'message':_0x513456(0x1b2)+_0x33c6a7+_0x513456(0x1bd)+_0x7b4ef4}),_0x436ad9[_0x407712]=null);}return _0x436ad9;});return logger[_0x3198d6(0x1c7)]({'event':'lookup_fields_processed','totalRows':_0x3c5283['length'],'errorCount':_0x398ade['length'],'lookupFieldCount':Object['keys'](_0x5e4486)[_0x3198d6(0x1ab)]},_0x57ea05[_0x3198d6(0x1c4)]),{'processedRows':_0x93c9ab,'errors':_0x398ade};}[a0_0x569339(0x19f)](_0x124c73,_0x334e8d){const _0x5d3b5f=a0_0x569339,_0x4aa691={'ZwvEX':function(_0x253a34,_0x5af9a2){return _0x253a34!==_0x5af9a2;},'WoVbX':function(_0x19f59c,_0x3ae8e1){return _0x19f59c(_0x3ae8e1);}},_0x252df7=new Set();return _0x124c73[_0x5d3b5f(0x1a8)](_0x116ca8=>{const _0x3a690f=_0x5d3b5f,_0x199afd=_0x116ca8[_0x334e8d];_0x199afd!==null&&_0x4aa691[_0x3a690f(0x1b5)](_0x199afd,undefined)&&_0x199afd!==''&&_0x252df7['add'](_0x4aa691[_0x3a690f(0x1a9)](String,_0x199afd)[_0x3a690f(0x1b1)]());}),Array['from'](_0x252df7);}async['validateLookupValues'](_0x3c56c9,_0x4a035b){const _0x4963f3=a0_0x569339,_0x304def={'tGYBT':function(_0x1387bb,_0x204765){return _0x1387bb===_0x204765;}};if(!_0x4a035b||Object['keys'](_0x4a035b)[_0x4963f3(0x1ab)]===0x0)return{'valid':!![],'errors':[],'suggestions':{}};const _0x5069bf=[],_0x1d6490={};for(const [_0x54b50d,_0x50a58c]of Object[_0x4963f3(0x1b8)](_0x4a035b)){const {lookupTable:_0x9701cd,lookupColumn:_0x416519,lookupIdColumn:_0x56b2dc,required:_0x19f763}=_0x50a58c,_0x5791ca=this['getDistinctValues'](_0x3c56c9,_0x54b50d),_0x5476a7=await this[_0x4963f3(0x1ad)](_0x9701cd,_0x416519,_0x56b2dc),_0x41a3c1=[],_0x3b3d40=[];_0x5791ca[_0x4963f3(0x1a8)](_0x1d1136=>{const _0xd5483d=_0x4963f3,_0x1b0030=this[_0xd5483d(0x19d)](_0x1d1136,_0x5476a7);_0x1b0030!==null?_0x3b3d40['push'](_0x1d1136):_0x41a3c1['push'](_0x1d1136);});if(_0x41a3c1[_0x4963f3(0x1ab)]>0x0&&_0x19f763){_0x5069bf['push']({'field':_0x54b50d,'lookupTable':_0x9701cd,'invalidValues':_0x41a3c1,'message':_0x41a3c1[_0x4963f3(0x1ab)]+'\x20value(s)\x20not\x20found\x20in\x20'+_0x9701cd});const _0x1d3042=[];_0x5476a7['forEach']((_0x4d754e,_0x1414a7)=>{const _0x17bb11=_0x4963f3;if(_0x1414a7===_0x1414a7[_0x17bb11(0x1aa)]())return;_0x1d3042['push'](_0x1414a7);}),_0x1d6490[_0x54b50d]={'invalidValues':_0x41a3c1,'availableValues':_0x1d3042['slice'](0x0,0x32)};}}return{'valid':_0x304def[_0x4963f3(0x1b9)](_0x5069bf[_0x4963f3(0x1ab)],0x0),'errors':_0x5069bf,'suggestions':_0x1d6490};}}module['exports']=new LookupResolver();
@@ -1 +1 @@
1
- const a0_0x3dd83a=a0_0x3919;function a0_0x5102(){const _0x2fda21=['quv1y0W','zfjIC0m','mtGYmtv2vfvJv1q','zxjYB3i','mty1nJa0mNzTANjyyq','mtqWmZa2nMXeBxvNtG','z2v0rxHWB3j0q29UzMLN','ugf5Bg9HzcbJywnOzsbJBgvHCMvK','Axnby3rPB25fBMfIBgvK','rMfPBgvKihrVigXVywqGCgf5Bg9HzcbIEsbUyw1L','mJK5ndGWoevOtLbXwq','C2v0','Cgf5Bg9HzerPCG','mZbmvhfmBNu','zMLLBgrmywjLBhm','CMvWBgfJzq','ChjVBwLZzxm','CMvHzezPBgu','nZu0mZa0wwPnu0TM','lMPZB24','zLP1zxi','ufLyCwC','y2fJAgu','ugf5Bg9HzcbSB2fKzwqGC3vJy2vZC2z1BgX5igj5ig5HBwu','DKHMreu','nJjWtgvVC3a','zgvIDwC','lI9SB2DNzxi','y29SDw1UrM9YBwf0CW','Cgf5Bg9Hzf9SB2fKzwq','AM9PBG','ywn0Aw9U','ugf5Bg9HzcbSB2fKzwqGC3vJy2vZC2z1BgX5','mJu2mtq1meDAwe94uG','CgfYC2u','lI4VlI4VCgf5Bg9Hza','DxrMoa','Cgf5Bg9HzdO','nde4ndy1DeTZAg9L','Cgf5Bg9Hzf9SB2fKx2vYCM9Y','mJDRDePbu00','y2XLyxi','zgf0yxrHyMXLC1f1zxj5'];a0_0x5102=function(){return _0x2fda21;};return a0_0x5102();}(function(_0x55e043,_0x119cec){const _0x4290fa=a0_0x3919,_0x61ab80=_0x55e043();while(!![]){try{const _0x7a49ea=-parseInt(_0x4290fa(0x201))/0x1*(-parseInt(_0x4290fa(0x1ed))/0x2)+parseInt(_0x4290fa(0x203))/0x3+parseInt(_0x4290fa(0x1e6))/0x4+-parseInt(_0x4290fa(0x1fa))/0x5*(parseInt(_0x4290fa(0x20c))/0x6)+-parseInt(_0x4290fa(0x204))/0x7+parseInt(_0x4290fa(0x209))/0x8+parseInt(_0x4290fa(0x1fc))/0x9*(-parseInt(_0x4290fa(0x1f5))/0xa);if(_0x7a49ea===_0x119cec)break;else _0x61ab80['push'](_0x61ab80['shift']());}catch(_0x3c83a6){_0x61ab80['push'](_0x61ab80['shift']());}}}(a0_0x5102,0x475ac));const fs=require('fs')[a0_0x3dd83a(0x1e4)],path=require('path'),{logger}=require(a0_0x3dd83a(0x1ef));class PayloadLoader{constructor(){const _0xeb61c4=a0_0x3dd83a,_0x26cc05={'dRbsC':_0xeb61c4(0x1f7)};this[_0xeb61c4(0x20b)]=path['join'](__dirname,_0x26cc05[_0xeb61c4(0x200)]),this[_0xeb61c4(0x1ea)]=new Map();}async['loadPayload'](_0x1807d5,_0x44ecb4){const _0x337a1a=a0_0x3dd83a,_0x30cfea={'LKUtY':_0x337a1a(0x1f8),'vHfDE':_0x337a1a(0x1f1)},_0x4a00a5=_0x1807d5+':'+_0x44ecb4;if(this[_0x337a1a(0x1ea)]['has'](_0x4a00a5))return this['cache']['get'](_0x4a00a5);const _0x29e694=path[_0x337a1a(0x1f2)](this['payloadDir'],_0x1807d5+'_'+_0x44ecb4+_0x337a1a(0x1e7));try{const _0x166119=await fs['readFile'](_0x29e694,_0x30cfea['LKUtY']),_0x7bcd8=JSON[_0x337a1a(0x1f6)](_0x166119);return this['cache'][_0x337a1a(0x20a)](_0x4a00a5,_0x7bcd8),logger['debug']({'event':_0x30cfea[_0x337a1a(0x1ec)],'project':_0x1807d5,'resource':_0x44ecb4},_0x337a1a(0x1f4)),_0x7bcd8;}catch(_0x3b5f13){logger[_0x337a1a(0x202)]({'event':_0x337a1a(0x1fb),'project':_0x1807d5,'resource':_0x44ecb4,'error':_0x3b5f13['message']},'Failed\x20to\x20load\x20payload');throw new Error('Payload\x20not\x20found:\x20'+_0x1807d5+'_'+_0x44ecb4);}}async['loadPayloadByName'](_0x536aeb){const _0xc83bd=a0_0x3dd83a,_0x7b863b={'fZuer':_0xc83bd(0x1f8),'MwuUS':'payload_loaded','AEucL':_0xc83bd(0x1eb),'dNmLo':_0xc83bd(0x208)},_0x11146e=_0xc83bd(0x1f9)+_0x536aeb;if(this['cache']['has'](_0x11146e))return this['cache']['get'](_0x11146e);const _0x9d567d=path['join'](this['payloadDir'],_0x536aeb+_0xc83bd(0x1e7));try{const _0x4176c6=await fs[_0xc83bd(0x1e5)](_0x9d567d,_0x7b863b[_0xc83bd(0x1e8)]),_0x19c765=JSON['parse'](_0x4176c6);return this[_0xc83bd(0x1ea)]['set'](_0x11146e,_0x19c765),logger[_0xc83bd(0x1ee)]({'event':_0x7b863b['MwuUS'],'payloadName':_0x536aeb},_0x7b863b[_0xc83bd(0x1ff)]),_0x19c765;}catch(_0x29bb98){logger[_0xc83bd(0x202)]({'event':_0xc83bd(0x1fb),'payloadName':_0x536aeb,'error':_0x29bb98['message']},_0x7b863b['dNmLo']);throw new Error('Payload\x20not\x20found:\x20'+_0x536aeb);}}[a0_0x3dd83a(0x207)](_0xebcc3f,_0x1c4695){const _0x130269=a0_0x3dd83a,_0x453eda={'PYXqg':function(_0x25f5be,_0x4b05e6){return _0x25f5be===_0x4b05e6;}};return _0xebcc3f['action']&&_0x453eda[_0x130269(0x1e9)](_0xebcc3f[_0x130269(0x1f3)][_0x1c4695],!![]);}[a0_0x3dd83a(0x205)](_0x349c04){const _0x432ebe=a0_0x3dd83a;return{'columns':_0x349c04['fieldName']||[],'filename':_0x349c04['tableName'][_0x432ebe(0x1e3)]('.','-')+'-export','datatablesQuery':_0x349c04[_0x432ebe(0x1fe)]||null,'columnFormats':_0x349c04[_0x432ebe(0x1f0)]||null,'fieldLabels':_0x349c04[_0x432ebe(0x1e2)]||null};}['clearCache'](){const _0x320339=a0_0x3dd83a,_0x1819dd={'kayKo':'payload_cache_cleared'};this['cache'][_0x320339(0x1fd)](),logger['info']({'event':_0x1819dd['kayKo']},_0x320339(0x206));}}function a0_0x3919(_0x2c57d2,_0x3e4982){_0x2c57d2=_0x2c57d2-0x1e2;const _0x510230=a0_0x5102();let _0x3919c2=_0x510230[_0x2c57d2];if(a0_0x3919['DDHpAP']===undefined){var _0x5f5337=function(_0x26e990){const _0x224296='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x27429f='',_0x6c14a4='';for(let _0x315f21=0x0,_0x185269,_0x1f3c74,_0xb5533a=0x0;_0x1f3c74=_0x26e990['charAt'](_0xb5533a++);~_0x1f3c74&&(_0x185269=_0x315f21%0x4?_0x185269*0x40+_0x1f3c74:_0x1f3c74,_0x315f21++%0x4)?_0x27429f+=String['fromCharCode'](0xff&_0x185269>>(-0x2*_0x315f21&0x6)):0x0){_0x1f3c74=_0x224296['indexOf'](_0x1f3c74);}for(let _0x32ccce=0x0,_0x2e8daa=_0x27429f['length'];_0x32ccce<_0x2e8daa;_0x32ccce++){_0x6c14a4+='%'+('00'+_0x27429f['charCodeAt'](_0x32ccce)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x6c14a4);};a0_0x3919['Ujbmuj']=_0x5f5337,a0_0x3919['zEwQJV']={},a0_0x3919['DDHpAP']=!![];}const _0x2a657f=_0x510230[0x0],_0x473d83=_0x2c57d2+_0x2a657f,_0x2ae19e=a0_0x3919['zEwQJV'][_0x473d83];return!_0x2ae19e?(_0x3919c2=a0_0x3919['Ujbmuj'](_0x3919c2),a0_0x3919['zEwQJV'][_0x473d83]=_0x3919c2):_0x3919c2=_0x2ae19e,_0x3919c2;}module['exports']=new PayloadLoader();
1
+ const a0_0x5ca5e8=a0_0x24c1;function a0_0x5833(){const _0x1d8762=['m0nOrwn1rW','Cgf5Bg9Hzf9SB2fKzwq','nty3nJu5nxPxCwXquG','lI4VlI4VCgf5Bg9Hza','DxrMoa','mtm2odCYsKvAExbm','y29SDw1UrM9YBwf0CW','lMPZB24','BwvZC2fNzq','A0nLvNG','ogDHDKrVvW','Cgf5Bg9HzerPCG','C2v0','mZbbv0jLDgi','zxjYB3i','Cgf0Aa','Cgf5Bg9Hzf9SB2fKx2vYCM9Y','AM9PBG','ugf5Bg9HzcbUB3qGzM91BMq6ia','zxHWB3j0CW','CgfYC2u','mJK5mtyYohHVvxzvyG','mJGYodm1vvfJsvzo','mtm1nZq5mdDWv3DYreK','nZG0ndrzrwzOr20','y2fJAgu','DgHyvhy','mtLHBK1KAMq','zgvIDwC','mtu0nJaZmJbbwxfAEhC','ChjVBwLZzxm','CMvHzezPBgu','Aw5MBW','CMvWBgfJzq','mtq0mwPWtevKuW','ugf5Bg9HzcbSB2fKzwqGC3vJy2vZC2z1BgX5igj5ig5HBwu','lI9SB2DNzxi'];a0_0x5833=function(){return _0x1d8762;};return a0_0x5833();}(function(_0x5ae1ef,_0x4d2c78){const _0x43d3e2=a0_0x24c1,_0x1f4565=_0x5ae1ef();while(!![]){try{const _0xa63072=-parseInt(_0x43d3e2(0xfe))/0x1*(parseInt(_0x43d3e2(0xfb))/0x2)+-parseInt(_0x43d3e2(0x108))/0x3*(parseInt(_0x43d3e2(0xf8))/0x4)+parseInt(_0x43d3e2(0x10a))/0x5+-parseInt(_0x43d3e2(0xf0))/0x6*(parseInt(_0x43d3e2(0xf9))/0x7)+-parseInt(_0x43d3e2(0x112))/0x8*(parseInt(_0x43d3e2(0xfa))/0x9)+parseInt(_0x43d3e2(0x100))/0xa+-parseInt(_0x43d3e2(0x105))/0xb*(-parseInt(_0x43d3e2(0x10d))/0xc);if(_0xa63072===_0x4d2c78)break;else _0x1f4565['push'](_0x1f4565['shift']());}catch(_0x4dd355){_0x1f4565['push'](_0x1f4565['shift']());}}}(a0_0x5833,0xed520));const fs=require('fs')[a0_0x5ca5e8(0x101)],path=require(a0_0x5ca5e8(0xf2)),{logger}=require(a0_0x5ca5e8(0x107));class PayloadLoader{constructor(){const _0x3b3cd6=a0_0x5ca5e8,_0x1b8375={'ZGJMn':_0x3b3cd6(0x10b)};this['payloadDir']=path[_0x3b3cd6(0xf4)](__dirname,_0x1b8375['ZGJMn']),this['cache']=new Map();}async['loadPayload'](_0x245194,_0x5d5644){const _0x4e6194=a0_0x5ca5e8,_0x540f0f={'kCeVx':'Failed\x20to\x20load\x20payload'},_0x471c53=_0x245194+':'+_0x5d5644;if(this[_0x4e6194(0xfc)]['has'](_0x471c53))return this[_0x4e6194(0xfc)]['get'](_0x471c53);const _0x5557ce=path[_0x4e6194(0xf4)](this[_0x4e6194(0x113)],_0x245194+'_'+_0x5d5644+_0x4e6194(0x10f));try{const _0x214bda=await fs['readFile'](_0x5557ce,'utf8'),_0x194e03=JSON['parse'](_0x214bda);return this['cache'][_0x4e6194(0xef)](_0x471c53,_0x194e03),logger[_0x4e6194(0xff)]({'event':_0x4e6194(0x109),'project':_0x245194,'resource':_0x5d5644},'Payload\x20loaded\x20successfully'),_0x194e03;}catch(_0x398e89){logger[_0x4e6194(0xf1)]({'event':_0x4e6194(0xf3),'project':_0x245194,'resource':_0x5d5644,'error':_0x398e89['message']},_0x540f0f[_0x4e6194(0x111)]);throw new Error(_0x4e6194(0xf5)+_0x245194+'_'+_0x5d5644);}}async['loadPayloadByName'](_0x3f56f9){const _0x582af4=a0_0x5ca5e8,_0x59ab39={'thXTv':_0x582af4(0x106),'mepzo':'Failed\x20to\x20load\x20payload\x20by\x20name'},_0x49d41b='payload:'+_0x3f56f9;if(this[_0x582af4(0xfc)]['has'](_0x49d41b))return this[_0x582af4(0xfc)]['get'](_0x49d41b);const _0x52821e=path['join'](this['payloadDir'],_0x3f56f9+'.json');try{const _0xc0cd34=await fs[_0x582af4(0x102)](_0x52821e,_0x582af4(0x10c)),_0x4a8017=JSON[_0x582af4(0xf7)](_0xc0cd34);return this[_0x582af4(0xfc)][_0x582af4(0xef)](_0x49d41b,_0x4a8017),logger[_0x582af4(0xff)]({'event':_0x582af4(0x109),'payloadName':_0x3f56f9},_0x59ab39[_0x582af4(0xfd)]),_0x4a8017;}catch(_0x33f237){logger['error']({'event':'payload_load_error','payloadName':_0x3f56f9,'error':_0x33f237[_0x582af4(0x110)]},_0x59ab39['mepzo']);throw new Error('Payload\x20not\x20found:\x20'+_0x3f56f9);}}['isActionEnabled'](_0x4c9eaf,_0x25b958){return _0x4c9eaf['action']&&_0x4c9eaf['action'][_0x25b958]===!![];}['getExportConfig'](_0x54b809){const _0x4a7aa1=a0_0x5ca5e8;return{'columns':_0x54b809['fieldName']||[],'filename':_0x54b809['tableName'][_0x4a7aa1(0x104)]('.','-')+'-export','datatablesQuery':_0x54b809['datatablesQuery']||null,'columnFormats':_0x54b809[_0x4a7aa1(0x10e)]||null,'fieldLabels':_0x54b809['fieldLabels']||null};}['clearCache'](){const _0xef8c92=a0_0x5ca5e8;this['cache']['clear'](),logger[_0xef8c92(0x103)]({'event':'payload_cache_cleared'},'Payload\x20cache\x20cleared');}}function a0_0x24c1(_0x577c5c,_0x80ac39){_0x577c5c=_0x577c5c-0xef;const _0x5833e5=a0_0x5833();let _0x24c1aa=_0x5833e5[_0x577c5c];if(a0_0x24c1['TCdnVW']===undefined){var _0x113173=function(_0xf18805){const _0x43d6c2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4680a5='',_0x54f9d7='';for(let _0x12d1dc=0x0,_0x90bed,_0x446c1d,_0x384621=0x0;_0x446c1d=_0xf18805['charAt'](_0x384621++);~_0x446c1d&&(_0x90bed=_0x12d1dc%0x4?_0x90bed*0x40+_0x446c1d:_0x446c1d,_0x12d1dc++%0x4)?_0x4680a5+=String['fromCharCode'](0xff&_0x90bed>>(-0x2*_0x12d1dc&0x6)):0x0){_0x446c1d=_0x43d6c2['indexOf'](_0x446c1d);}for(let _0x4ca9bd=0x0,_0x53b766=_0x4680a5['length'];_0x4ca9bd<_0x53b766;_0x4ca9bd++){_0x54f9d7+='%'+('00'+_0x4680a5['charCodeAt'](_0x4ca9bd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x54f9d7);};a0_0x24c1['jXIvCA']=_0x113173,a0_0x24c1['yORieN']={},a0_0x24c1['TCdnVW']=!![];}const _0x260dd2=_0x5833e5[0x0],_0x6fc158=_0x577c5c+_0x260dd2,_0x3a36b2=a0_0x24c1['yORieN'][_0x6fc158];return!_0x3a36b2?(_0x24c1aa=a0_0x24c1['jXIvCA'](_0x24c1aa),a0_0x24c1['yORieN'][_0x6fc158]=_0x24c1aa):_0x24c1aa=_0x3a36b2,_0x24c1aa;}module[a0_0x5ca5e8(0xf6)]=new PayloadLoader();
@@ -1 +1 @@
1
- 'use strict';(function(_0x534912,_0x50e393){var _0x35159a=a0_0x1379,_0x27579f=_0x534912();while(!![]){try{var _0x957fe0=parseInt(_0x35159a(0xde))/0x1+parseInt(_0x35159a(0xdd))/0x2+parseInt(_0x35159a(0xe1))/0x3+parseInt(_0x35159a(0xe5))/0x4+parseInt(_0x35159a(0xdb))/0x5*(-parseInt(_0x35159a(0xe4))/0x6)+parseInt(_0x35159a(0xdc))/0x7*(-parseInt(_0x35159a(0xdf))/0x8)+-parseInt(_0x35159a(0xe2))/0x9*(parseInt(_0x35159a(0xe3))/0xa);if(_0x957fe0===_0x50e393)break;else _0x27579f['push'](_0x27579f['shift']());}catch(_0x1f6025){_0x27579f['push'](_0x27579f['shift']());}}}(a0_0x240a,0x42704));function createResponse(_0x128b84,_0x5adaf5,_0x3ba37c=null){return{'success':!![],'statusCode':_0x128b84,'message':_0x5adaf5,'data':_0x3ba37c,'timestamp':new Date()['toISOString']()};}function createError(_0x1c18da,_0x3229e1,_0x4f1ddc=null){var _0x34f381=a0_0x1379;return{'success':![],'statusCode':_0x1c18da,'message':_0x3229e1,'data':_0x4f1ddc,'timestamp':new Date()[_0x34f381(0xe0)]()};}function a0_0x1379(_0x4fb049,_0x1ce687){_0x4fb049=_0x4fb049-0xdb;var _0x240a9d=a0_0x240a();var _0x1379e4=_0x240a9d[_0x4fb049];if(a0_0x1379['siikFE']===undefined){var _0x1b0e78=function(_0x59b2bf){var _0x2881ee='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x918621='',_0x422a16='';for(var _0x45f9a2=0x0,_0x3dfa60,_0x49673a,_0x1e57e5=0x0;_0x49673a=_0x59b2bf['charAt'](_0x1e57e5++);~_0x49673a&&(_0x3dfa60=_0x45f9a2%0x4?_0x3dfa60*0x40+_0x49673a:_0x49673a,_0x45f9a2++%0x4)?_0x918621+=String['fromCharCode'](0xff&_0x3dfa60>>(-0x2*_0x45f9a2&0x6)):0x0){_0x49673a=_0x2881ee['indexOf'](_0x49673a);}for(var _0x201b76=0x0,_0x515c0c=_0x918621['length'];_0x201b76<_0x515c0c;_0x201b76++){_0x422a16+='%'+('00'+_0x918621['charCodeAt'](_0x201b76)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x422a16);};a0_0x1379['mOhkVI']=_0x1b0e78,a0_0x1379['fpXwxD']={},a0_0x1379['siikFE']=!![];}var _0x1a045e=_0x240a9d[0x0],_0x125b59=_0x4fb049+_0x1a045e,_0x82000e=a0_0x1379['fpXwxD'][_0x125b59];return!_0x82000e?(_0x1379e4=a0_0x1379['mOhkVI'](_0x1379e4),a0_0x1379['fpXwxD'][_0x125b59]=_0x1379e4):_0x1379e4=_0x82000e,_0x1379e4;}function a0_0x240a(){var _0xe279bc=['mJmWmdy4m2Lbzef5zq','ota4odyWzwTIz0PL','ndK1nZG3ze5Nwxbz','ofrSA3rRDW','Dg9ju09tDhjPBMC','ntKZmJvMqMzNswm','mtq1mtDvsNrfy3m','nZeWwwTPD25A','mtmWmdu2DhzPAwX2','ndu1mJK2tvzQu2vS','odvwsgXZqwW'];a0_0x240a=function(){return _0xe279bc;};return a0_0x240a();}function createValidationError(_0x5ed9b4,_0x1e4860){return{'success':![],'statusCode':0x190,'message':_0x5ed9b4,'data':{'errors':_0x1e4860},'timestamp':new Date()['toISOString']()};}module['exports']={'createResponse':createResponse,'createError':createError,'createValidationError':createValidationError};
1
+ 'use strict';(function(_0xdd90a3,_0xc2cc2b){var _0x32831b=a0_0x3c4e,_0x3b8d8e=_0xdd90a3();while(!![]){try{var _0x57d646=-parseInt(_0x32831b(0x120))/0x1*(parseInt(_0x32831b(0x127))/0x2)+parseInt(_0x32831b(0x11f))/0x3*(parseInt(_0x32831b(0x126))/0x4)+-parseInt(_0x32831b(0x128))/0x5+-parseInt(_0x32831b(0x121))/0x6+parseInt(_0x32831b(0x125))/0x7+parseInt(_0x32831b(0x123))/0x8+-parseInt(_0x32831b(0x122))/0x9;if(_0x57d646===_0xc2cc2b)break;else _0x3b8d8e['push'](_0x3b8d8e['shift']());}catch(_0x108bb7){_0x3b8d8e['push'](_0x3b8d8e['shift']());}}}(a0_0x5ade,0x8a6f6));function a0_0x5ade(){var _0x3d0661=['mtm0ohDjsK9eDa','nJzIDLLNB04','mJqZnJa1v1LVwfLe','mZe3n0f4t3fRCG','mJiZotHJExr6t3y','mJmZndq2oe5kuMn5va','ntCXodK2uhnJthn0','nti1mZa2neL3C1D4qq','Dg9ju09tDhjPBMC','ntu1nZKZn2f4CxLfuq'];a0_0x5ade=function(){return _0x3d0661;};return a0_0x5ade();}function createResponse(_0x71523e,_0x10fe09,_0x24e971=null){return{'success':!![],'statusCode':_0x71523e,'message':_0x10fe09,'data':_0x24e971,'timestamp':new Date()['toISOString']()};}function a0_0x3c4e(_0x250fd2,_0x265196){_0x250fd2=_0x250fd2-0x11f;var _0x5ade75=a0_0x5ade();var _0x3c4e45=_0x5ade75[_0x250fd2];if(a0_0x3c4e['KhKXlA']===undefined){var _0x52f8f4=function(_0x4cb51a){var _0x402b6e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x16f93c='',_0x17685b='';for(var _0x3a4af8=0x0,_0x33fb84,_0x3a8798,_0x4d1b8f=0x0;_0x3a8798=_0x4cb51a['charAt'](_0x4d1b8f++);~_0x3a8798&&(_0x33fb84=_0x3a4af8%0x4?_0x33fb84*0x40+_0x3a8798:_0x3a8798,_0x3a4af8++%0x4)?_0x16f93c+=String['fromCharCode'](0xff&_0x33fb84>>(-0x2*_0x3a4af8&0x6)):0x0){_0x3a8798=_0x402b6e['indexOf'](_0x3a8798);}for(var _0xf56168=0x0,_0x3f3ab9=_0x16f93c['length'];_0xf56168<_0x3f3ab9;_0xf56168++){_0x17685b+='%'+('00'+_0x16f93c['charCodeAt'](_0xf56168)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x17685b);};a0_0x3c4e['rcNPZD']=_0x52f8f4,a0_0x3c4e['VjPLAx']={},a0_0x3c4e['KhKXlA']=!![];}var _0x4c8869=_0x5ade75[0x0],_0x5abaf8=_0x250fd2+_0x4c8869,_0x42226b=a0_0x3c4e['VjPLAx'][_0x5abaf8];return!_0x42226b?(_0x3c4e45=a0_0x3c4e['rcNPZD'](_0x3c4e45),a0_0x3c4e['VjPLAx'][_0x5abaf8]=_0x3c4e45):_0x3c4e45=_0x42226b,_0x3c4e45;}function createError(_0x35e7b7,_0x499af9,_0x542398=null){return{'success':![],'statusCode':_0x35e7b7,'message':_0x499af9,'data':_0x542398,'timestamp':new Date()['toISOString']()};}function createValidationError(_0x1354c5,_0x2ff27b){var _0x1ff3ac=a0_0x3c4e;return{'success':![],'statusCode':0x190,'message':_0x1354c5,'data':{'errors':_0x2ff27b},'timestamp':new Date()[_0x1ff3ac(0x124)]()};}module['exports']={'createResponse':createResponse,'createError':createError,'createValidationError':createValidationError};
@@ -1 +1 @@
1
- const a0_0x41020a=a0_0x53b4;(function(_0x85ec10,_0x377c90){const _0x3f5c3b=a0_0x53b4,_0x3c2ec8=_0x85ec10();while(!![]){try{const _0x840f85=parseInt(_0x3f5c3b(0xfa))/0x1+parseInt(_0x3f5c3b(0xd7))/0x2*(-parseInt(_0x3f5c3b(0xf9))/0x3)+parseInt(_0x3f5c3b(0xd4))/0x4+-parseInt(_0x3f5c3b(0xdf))/0x5*(parseInt(_0x3f5c3b(0xe4))/0x6)+-parseInt(_0x3f5c3b(0xd5))/0x7*(parseInt(_0x3f5c3b(0xee))/0x8)+-parseInt(_0x3f5c3b(0xe2))/0x9+parseInt(_0x3f5c3b(0xea))/0xa;if(_0x840f85===_0x377c90)break;else _0x3c2ec8['push'](_0x3c2ec8['shift']());}catch(_0xb4372a){_0x3c2ec8['push'](_0x3c2ec8['shift']());}}}(a0_0x47ec,0xcdce6),require(a0_0x41020a(0x101))[a0_0x41020a(0xdb)]());const amqp=require('amqplib'),{formatDate}=require('./dateHelper'),RABBITMQ_URL=process['env']['RABBITMQ_URL'],EXCHANGE=process[a0_0x41020a(0xe9)][a0_0x41020a(0xd9)],ROUTING_KEY=process[a0_0x41020a(0xe9)][a0_0x41020a(0xe3)],QUEUE=process['env'][a0_0x41020a(0xda)];async function createConnection(){const _0x503159=a0_0x41020a,_0x1dfd15={'JUptB':function(_0x573909,_0x3c6525){return _0x573909(_0x3c6525);}};try{const _0x3cc01b=await amqp['connect'](RABBITMQ_URL);return console['log']('['+formatDate(new Date())+']\x20Successfully\x20connected\x20to\x20RabbitMQ'),_0x3cc01b;}catch(_0x4f66fa){console['error']('['+_0x1dfd15[_0x503159(0xe8)](formatDate,new Date())+_0x503159(0xf5)+_0x4f66fa['message']);throw _0x4f66fa;}}async function createChannel(_0x20e8e1){const _0x2a1ca4=a0_0x41020a;try{const _0xdc3af0=await _0x20e8e1['createChannel']();return console['log']('['+formatDate(new Date())+']\x20RabbitMQ\x20channel\x20created\x20successfully'),_0xdc3af0;}catch(_0x43ebe5){console['error']('['+formatDate(new Date())+']\x20Failed\x20to\x20create\x20RabbitMQ\x20channel:\x20'+_0x43ebe5[_0x2a1ca4(0x103)]);throw _0x43ebe5;}}async function setupInfrastructure(_0x5b9042){const _0x486def=a0_0x41020a,_0x559d93={'DEEzh':_0x486def(0x100),'BWUKK':function(_0x6c5bb5,_0x1a5985){return _0x6c5bb5(_0x1a5985);},'pOlVG':function(_0x1e34de,_0x18668b){return _0x1e34de(_0x18668b);},'eSJXI':'retry-exchange','xeYbe':function(_0x13b516,_0x8a3cf4){return _0x13b516(_0x8a3cf4);},'WOLac':function(_0x314906,_0x1b1893){return _0x314906(_0x1b1893);},'MmVCC':'found','uGKup':function(_0x54914e,_0x421b0e){return _0x54914e(_0x421b0e);},'OmSiB':_0x486def(0xde),'saAQG':'x-dead-letter-routing-key'};try{await _0x5b9042[_0x486def(0xd2)]('retry-exchange',_0x559d93['DEEzh'],{'durable':!![],'autoDelete':![]}),console['log']('['+formatDate(new Date())+']\x20Retry\x20exchange\x20created/ready');}catch(_0x4b5b5b){console[_0x486def(0xf1)]('['+_0x559d93['BWUKK'](formatDate,new Date())+']\x20Error\x20creating\x20retry\x20exchange:',_0x4b5b5b[_0x486def(0x103)]);throw _0x4b5b5b;}try{await _0x5b9042[_0x486def(0xd2)](EXCHANGE,_0x559d93[_0x486def(0xf2)],{'durable':!![],'autoDelete':![]}),console['log']('['+_0x559d93[_0x486def(0xdd)](formatDate,new Date())+']\x20Exchange\x20'+EXCHANGE+_0x486def(0xdc));}catch(_0xbd4250){console['error']('['+formatDate(new Date())+_0x486def(0xd6)+EXCHANGE+':',_0xbd4250['message']);throw _0xbd4250;}const _0x45ffb1=ROUTING_KEY+'_retry';try{const _0x29b677={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':EXCHANGE,'x-dead-letter-routing-key':ROUTING_KEY}};await _0x5b9042[_0x486def(0xf3)](_0x45ffb1,_0x29b677),console['log']('['+formatDate(new Date())+']\x20Retry\x20queue\x20'+_0x45ffb1+_0x486def(0xdc)),await _0x5b9042['bindQueue'](_0x45ffb1,_0x559d93['eSJXI'],ROUTING_KEY),console[_0x486def(0xd3)]('['+_0x559d93['xeYbe'](formatDate,new Date())+']\x20Retry\x20binding\x20for\x20'+ROUTING_KEY+_0x486def(0xf6));}catch(_0x1ef52a){console[_0x486def(0xf1)]('['+formatDate(new Date())+_0x486def(0xfb),_0x1ef52a['message']);throw _0x1ef52a;}try{const _0x536b62={'durable':!![],'arguments':{'x-dead-letter-exchange':_0x559d93['eSJXI'],'x-dead-letter-routing-key':ROUTING_KEY}};try{const _0x5916b2=await _0x5b9042[_0x486def(0xf3)](QUEUE,_0x536b62);console[_0x486def(0xd3)]('['+_0x559d93['WOLac'](formatDate,new Date())+']\x20Queue\x20'+QUEUE+'\x20'+(_0x5916b2['queue']===QUEUE?_0x486def(0xd8):_0x559d93[_0x486def(0xeb)])+'\x20with\x20DLX'),await _0x5b9042[_0x486def(0x102)](QUEUE,EXCHANGE,ROUTING_KEY),console[_0x486def(0xd3)]('['+_0x559d93[_0x486def(0xec)](formatDate,new Date())+_0x486def(0xf4)+EXCHANGE+_0x486def(0xed)+QUEUE+'\x20('+ROUTING_KEY+')\x20created');}catch(_0x4ef91e){if(_0x4ef91e[_0x486def(0x103)]['includes'](_0x559d93['OmSiB'])&&_0x4ef91e[_0x486def(0x103)]['includes'](_0x559d93[_0x486def(0xe6)]))console[_0x486def(0xf1)]('\x0a['+_0x559d93[_0x486def(0xe0)](formatDate,new Date())+_0x486def(0xe5)+QUEUE+_0x486def(0xfe)),console[_0x486def(0xf1)]('Queue\x20'+QUEUE+'\x20was\x20created\x20with\x20a\x20different\x20x-dead-letter-routing-key.'),console[_0x486def(0xf1)](_0x486def(0xe7)),process['exit'](0x1);else{console[_0x486def(0xf1)]('['+formatDate(new Date())+']\x20Error\x20creating\x20queue\x20'+QUEUE+':',_0x4ef91e[_0x486def(0x103)]);throw _0x4ef91e;}}}catch(_0x3ea6d2){if(!_0x3ea6d2[_0x486def(0x103)][_0x486def(0xfc)](_0x559d93[_0x486def(0xef)])){console['error']('['+_0x559d93[_0x486def(0xe0)](formatDate,new Date())+']\x20Error\x20setting\x20up\x20main\x20queue:',_0x3ea6d2[_0x486def(0x103)]);throw _0x3ea6d2;}process[_0x486def(0xf0)](0x1);}}function a0_0x53b4(_0x2485a9,_0xd771e0){_0x2485a9=_0x2485a9-0xd2;const _0x47ec47=a0_0x47ec();let _0x53b4cc=_0x47ec47[_0x2485a9];if(a0_0x53b4['bTXhRA']===undefined){var _0x81baf=function(_0x4bfd3e){const _0x3a5c33='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x207e49='',_0x4f0b23='';for(let _0x309760=0x0,_0x2ded0e,_0x39f228,_0x3d1486=0x0;_0x39f228=_0x4bfd3e['charAt'](_0x3d1486++);~_0x39f228&&(_0x2ded0e=_0x309760%0x4?_0x2ded0e*0x40+_0x39f228:_0x39f228,_0x309760++%0x4)?_0x207e49+=String['fromCharCode'](0xff&_0x2ded0e>>(-0x2*_0x309760&0x6)):0x0){_0x39f228=_0x3a5c33['indexOf'](_0x39f228);}for(let _0x324494=0x0,_0x110958=_0x207e49['length'];_0x324494<_0x110958;_0x324494++){_0x4f0b23+='%'+('00'+_0x207e49['charCodeAt'](_0x324494)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4f0b23);};a0_0x53b4['SPVdep']=_0x81baf,a0_0x53b4['HciUKk']={},a0_0x53b4['bTXhRA']=!![];}const _0x58ad56=_0x47ec47[0x0],_0x39ba34=_0x2485a9+_0x58ad56,_0x331758=a0_0x53b4['HciUKk'][_0x39ba34];return!_0x331758?(_0x53b4cc=a0_0x53b4['SPVdep'](_0x53b4cc),a0_0x53b4['HciUKk'][_0x39ba34]=_0x53b4cc):_0x53b4cc=_0x331758,_0x53b4cc;}async function closeConnection(_0x1e811f){const _0x128753=a0_0x41020a,_0x1b119b={'GLGzs':function(_0x459388,_0x51afc9){return _0x459388(_0x51afc9);}};if(_0x1e811f)try{await _0x1e811f[_0x128753(0xe1)](),console['log']('['+_0x1b119b[_0x128753(0xf7)](formatDate,new Date())+_0x128753(0xfd));}catch(_0x44b29b){console[_0x128753(0xf1)]('['+formatDate(new Date())+_0x128753(0xff)+_0x44b29b['message']);}}function a0_0x47ec(){const _0x16f0f0=['xsbgywLSzwqGDg8Gy29UBMvJDcb0BYbsywjIAxrnutOG','ignYzwf0zwq','r0XhENm','zxHWB3j0CW','nJG2nJi1D2TOrNLp','otG1mZH4wwHgrhm','xsbfCNjVCIbJCMvHDgLUzYbYzxrYEsbXDwv1ztO','Aw5JBhvKzxm','xsbsywjIAxrnusbJB25Uzwn0Aw9UignSB3nLza','igLZigfSCMvHzhKGAw4GDxnLihDPDgGGysbKAwzMzxjLBNqGCM91DgLUzYbRzxKU','xsbgywLSzwqGDg8Gy2XVC2uGuMfIyML0tveGy29UBMvJDgLVBJOG','zgLYzwn0','zg90zw52','yMLUzff1zxvL','BwvZC2fNzq','yxnZzxj0rxHJAgfUz2u','Bg9N','mJKXmJmWmfPIwxrTDa','mtmZDNj5v0zq','xsbfCNjVCIbJCMvHDgLUzYbLEgnOyw5Nzsa','mtr5AMvTrvG','y3jLyxrLzc9YzwfKEq','uKfcqKLutvfFrvHdsefor0u','uKfcqKLutvfFuvvfvuu','y29UzMLN','ignYzwf0zwqVCMvHzhK','Ce9SvKC','Aw5LCxvPDMfSzw50igfYzW','nJG5nJeZnu9bqxLqqG','v09mywm','y2XVC2u','mte4ndy1mJbWC25ysLi','uKfcqKLutvfFuK9vveLor19lrvK','nNzqB0nrDW','xsbfuLjpuJOGuxvLDwuG','C2fbuuC','u29SDxrPB246ifvZzsbHigrPzMzLCMvUDcbXDwv1zsbUyw1LigzVCIbKAwzMzxjLBNqGCM91DgLUzYbRzxLZlG','sLvWDei','zw52','ndGZmJK4nJb1s1znBxe','tw1wq0m','DuDlDxa','ic0+ia','mJe4ntiWv1LhDeL0','t21tAui','zxHPDa','zxjYB3i','revfEMG','yxnZzxj0uxvLDwu','xsbcAw5KAw5Nia'];a0_0x47ec=function(){return _0x16f0f0;};return a0_0x47ec();}module[a0_0x41020a(0xf8)]={'createConnection':createConnection,'createChannel':createChannel,'setupInfrastructure':setupInfrastructure,'closeConnection':closeConnection,'getConfig':()=>({'url':RABBITMQ_URL,'exchange':EXCHANGE,'routingKey':ROUTING_KEY,'queue':QUEUE})};
1
+ const a0_0x4701fd=a0_0x20ed;(function(_0x3d5718,_0x45f7c6){const _0x25e8c0=a0_0x20ed,_0x3aead1=_0x3d5718();while(!![]){try{const _0x58b6f8=-parseInt(_0x25e8c0(0xa4))/0x1+parseInt(_0x25e8c0(0xaf))/0x2+-parseInt(_0x25e8c0(0xa7))/0x3*(parseInt(_0x25e8c0(0x93))/0x4)+parseInt(_0x25e8c0(0xb2))/0x5*(-parseInt(_0x25e8c0(0xb3))/0x6)+parseInt(_0x25e8c0(0x8f))/0x7*(parseInt(_0x25e8c0(0x96))/0x8)+-parseInt(_0x25e8c0(0x9a))/0x9*(-parseInt(_0x25e8c0(0xb4))/0xa)+parseInt(_0x25e8c0(0xa1))/0xb*(-parseInt(_0x25e8c0(0xac))/0xc);if(_0x58b6f8===_0x45f7c6)break;else _0x3aead1['push'](_0x3aead1['shift']());}catch(_0x1b06c5){_0x3aead1['push'](_0x3aead1['shift']());}}}(a0_0x399d,0x8ff84),require('dotenv')[a0_0x4701fd(0x9f)]());function a0_0x399d(){const _0x3b9add=['zufUz3e','mtK0ntC4mg5RthHjza','BwvZC2fNzq','ueLxy0y','mtGZmNPKANveva','yxnZzxj0rxHJAgfUz2u','CxvLDwu','ic0+ia','odaXsgjUzKr1','u29SDxrPB246ifvZzsbHigrPzMzLCMvUDcbXDwv1zsbUyw1LigzVCIbKAwzMzxjLBNqGCM91DgLUzYbRzxLZlG','DgfJBNq','uxLVzfG','ksbJCMvHDgvK','y29UzMLN','yxnZzxj0uxvLDwu','mtfTC2nZEuW','uNHlwMi','xsbgywLSzwqGDg8Gy2XVC2uGuMfIyML0tveGy29UBMvJDgLVBJOG','mZyZnJuYsu5kDvjf','xsbszxrYEsbXDwv1zsa','xsbsywjIAxrnusbJAgfUBMvSignYzwf0zwqGC3vJy2vZC2z1BgX5','m1zLr21Uwa','xsbsywjIAxrnusbJB25Uzwn0Aw9UignSB3nLza','xsbszxrYEsbIAw5KAw5NigzVCIa','igLZigfSCMvHzhKGAw4GDxnLihDPDgGGysbKAwzMzxjLBNqGCM91DgLUzYbRzxKU','xsbfCNjVCIbJCMvHDgLUzYbYzxrYEsbLEgnOyw5NztO','mJG4ntu0ne5nrhHWEG','xsbfuLjpuJOGuxvLDwuG','xsbrDwv1zsa','mJa5otqWmNLRB1LmAq','ywTRDuO','xsbgywLSzwqGDg8Gy29UBMvJDcb0BYbsywjIAxrnutOG','mJv1uhbAu1y','odK1ntqYzefUuMLX','nJC2mZbjtKjLCfO','yMLUzff1zxvL','zxHPDa','DNLQq08','ignYzwf0zwqVCMvHzhK','uKfcqKLutvfFuK9vveLor19lrvK','zw52','y29UBMvJDa','rgvywg4','Bg9N','xsbfCNjVCIbZzxr0Aw5NihvWig1HAw4GCxvLDwu6','x3jLDhj5','lI9KyxrLsgvSCgvY','xsbfCNjVCIbJCMvHDgLUzYbYzxrYEsbXDwv1ztO','CMv0CNKTzxHJAgfUz2u','Aw5JBhvKzxm','mJm2odHXqKHztKq','zxjYB3i','vMr0whC'];a0_0x399d=function(){return _0x3b9add;};return a0_0x399d();}const amqp=require('amqplib'),{formatDate}=require(a0_0x4701fd(0x8b)),RABBITMQ_URL=process['env']['RABBITMQ_URL'],EXCHANGE=process['env']['RABBITMQ_EXCHANGE'],ROUTING_KEY=process[a0_0x4701fd(0x85)][a0_0x4701fd(0x84)],QUEUE=process['env']['RABBITMQ_QUEUE'];async function createConnection(){const _0x359328=a0_0x4701fd,_0x21ca6c={'nXpNs':function(_0x27b888,_0x261a6c){return _0x27b888(_0x261a6c);},'VdtXw':function(_0xc76a04,_0x50f62e){return _0xc76a04(_0x50f62e);}};try{const _0x18e144=await amqp[_0x359328(0x86)](RABBITMQ_URL);return console['log']('['+_0x21ca6c['nXpNs'](formatDate,new Date())+']\x20Successfully\x20connected\x20to\x20RabbitMQ'),_0x18e144;}catch(_0x29d2ef){console[_0x359328(0x90)]('['+_0x21ca6c[_0x359328(0x91)](formatDate,new Date())+_0x359328(0xb1)+_0x29d2ef['message']);throw _0x29d2ef;}}function a0_0x20ed(_0x489a23,_0x5ca3fb){_0x489a23=_0x489a23-0x82;const _0x399db1=a0_0x399d();let _0x20ed24=_0x399db1[_0x489a23];if(a0_0x20ed['ZDnEfv']===undefined){var _0xc574ab=function(_0x2e353e){const _0xbeedab='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5a9c7c='',_0x1614b4='';for(let _0x48472b=0x0,_0x11b61d,_0x561669,_0x709b67=0x0;_0x561669=_0x2e353e['charAt'](_0x709b67++);~_0x561669&&(_0x11b61d=_0x48472b%0x4?_0x11b61d*0x40+_0x561669:_0x561669,_0x48472b++%0x4)?_0x5a9c7c+=String['fromCharCode'](0xff&_0x11b61d>>(-0x2*_0x48472b&0x6)):0x0){_0x561669=_0xbeedab['indexOf'](_0x561669);}for(let _0x1a973e=0x0,_0x4a61f6=_0x5a9c7c['length'];_0x1a973e<_0x4a61f6;_0x1a973e++){_0x1614b4+='%'+('00'+_0x5a9c7c['charCodeAt'](_0x1a973e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1614b4);};a0_0x20ed['rtViRi']=_0xc574ab,a0_0x20ed['ZVcwkX']={},a0_0x20ed['ZDnEfv']=!![];}const _0x1e0ead=_0x399db1[0x0],_0x211452=_0x489a23+_0x1e0ead,_0x56894d=a0_0x20ed['ZVcwkX'][_0x211452];return!_0x56894d?(_0x20ed24=a0_0x20ed['rtViRi'](_0x20ed24),a0_0x20ed['ZVcwkX'][_0x211452]=_0x20ed24):_0x20ed24=_0x56894d,_0x20ed24;}async function createChannel(_0x25ce77){const _0x400e40=a0_0x4701fd,_0x5e3634={'tacnt':function(_0x3c902b,_0x4d68d2){return _0x3c902b(_0x4d68d2);},'MQPLX':function(_0x35d968,_0x1a4459){return _0x35d968(_0x1a4459);}};try{const _0x5bcd5b=await _0x25ce77['createChannel']();return console[_0x400e40(0x88)]('['+_0x5e3634[_0x400e40(0x9c)](formatDate,new Date())+_0x400e40(0xa6)),_0x5bcd5b;}catch(_0xd81a80){console['error']('['+_0x5e3634['MQPLX'](formatDate,new Date())+']\x20Failed\x20to\x20create\x20RabbitMQ\x20channel:\x20'+_0xd81a80[_0x400e40(0x94)]);throw _0xd81a80;}}async function setupInfrastructure(_0x2d1a19){const _0x4c2d54=a0_0x4701fd,_0xed6a63={'akkuJ':'direct','eAngq':function(_0x5ebb77,_0x49f602){return _0x5ebb77(_0x49f602);},'PIWcF':function(_0x3e6434,_0xf73d90){return _0x3e6434(_0xf73d90);},'DeXXn':function(_0x25189b,_0x56c289){return _0x25189b(_0x56c289);},'nAvTW':function(_0x6fd890,_0x31d5f9){return _0x6fd890===_0x31d5f9;},'vyjCO':'created/ready','eWzDj':function(_0x2c3523,_0x461549){return _0x2c3523(_0x461549);},'QyodX':'inequivalent\x20arg','RxKZb':'x-dead-letter-routing-key'};try{await _0x2d1a19[_0x4c2d54(0x97)](_0x4c2d54(0x8d),_0xed6a63[_0x4c2d54(0xb0)],{'durable':!![],'autoDelete':![]}),console[_0x4c2d54(0x88)]('['+_0xed6a63[_0x4c2d54(0x92)](formatDate,new Date())+']\x20Retry\x20exchange\x20created/ready');}catch(_0x4d6237){console['error']('['+formatDate(new Date())+_0x4c2d54(0xab),_0x4d6237['message']);throw _0x4d6237;}try{await _0x2d1a19[_0x4c2d54(0x97)](EXCHANGE,'direct',{'durable':!![],'autoDelete':![]}),console['log']('['+_0xed6a63[_0x4c2d54(0x95)](formatDate,new Date())+']\x20Exchange\x20'+EXCHANGE+_0x4c2d54(0x83));}catch(_0x326d0a){console[_0x4c2d54(0x90)]('['+formatDate(new Date())+']\x20Error\x20creating\x20exchange\x20'+EXCHANGE+':',_0x326d0a['message']);throw _0x326d0a;}const _0x888c17=ROUTING_KEY+_0x4c2d54(0x8a);try{const _0x51ed30={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':EXCHANGE,'x-dead-letter-routing-key':ROUTING_KEY}};await _0x2d1a19[_0x4c2d54(0xa0)](_0x888c17,_0x51ed30),console['log']('['+formatDate(new Date())+_0x4c2d54(0xa5)+_0x888c17+'\x20created/ready'),await _0x2d1a19['bindQueue'](_0x888c17,'retry-exchange',ROUTING_KEY),console['log']('['+_0xed6a63[_0x4c2d54(0x87)](formatDate,new Date())+_0x4c2d54(0xa9)+ROUTING_KEY+'\x20created');}catch(_0x41d3f1){console[_0x4c2d54(0x90)]('['+formatDate(new Date())+_0x4c2d54(0x8c),_0x41d3f1[_0x4c2d54(0x94)]);throw _0x41d3f1;}try{const _0x4a2528={'durable':!![],'arguments':{'x-dead-letter-exchange':'retry-exchange','x-dead-letter-routing-key':ROUTING_KEY}};try{const _0x40bcc6=await _0x2d1a19[_0x4c2d54(0xa0)](QUEUE,_0x4a2528);console[_0x4c2d54(0x88)]('['+_0xed6a63[_0x4c2d54(0x92)](formatDate,new Date())+_0x4c2d54(0xae)+QUEUE+'\x20'+(_0xed6a63['nAvTW'](_0x40bcc6[_0x4c2d54(0x98)],QUEUE)?_0xed6a63[_0x4c2d54(0x82)]:'found')+'\x20with\x20DLX'),await _0x2d1a19[_0x4c2d54(0xb5)](QUEUE,EXCHANGE,ROUTING_KEY),console[_0x4c2d54(0x88)]('['+_0xed6a63['eWzDj'](formatDate,new Date())+']\x20Binding\x20'+EXCHANGE+_0x4c2d54(0x99)+QUEUE+'\x20('+ROUTING_KEY+_0x4c2d54(0x9e));}catch(_0x28e35c){if(_0x28e35c[_0x4c2d54(0x94)][_0x4c2d54(0x8e)](_0xed6a63[_0x4c2d54(0x9d)])&&_0x28e35c[_0x4c2d54(0x94)][_0x4c2d54(0x8e)](_0xed6a63[_0x4c2d54(0xa2)]))console['error']('\x0a['+formatDate(new Date())+_0x4c2d54(0xad)+QUEUE+_0x4c2d54(0xaa)),console['error']('Queue\x20'+QUEUE+'\x20was\x20created\x20with\x20a\x20different\x20x-dead-letter-routing-key.'),console['error'](_0x4c2d54(0x9b)),process['exit'](0x1);else{console[_0x4c2d54(0x90)]('['+_0xed6a63[_0x4c2d54(0x92)](formatDate,new Date())+']\x20Error\x20creating\x20queue\x20'+QUEUE+':',_0x28e35c['message']);throw _0x28e35c;}}}catch(_0x57bb59){if(!_0x57bb59[_0x4c2d54(0x94)]['includes'](_0xed6a63[_0x4c2d54(0x9d)])){console[_0x4c2d54(0x90)]('['+_0xed6a63[_0x4c2d54(0x92)](formatDate,new Date())+_0x4c2d54(0x89),_0x57bb59[_0x4c2d54(0x94)]);throw _0x57bb59;}process[_0x4c2d54(0xb6)](0x1);}}async function closeConnection(_0x488b12){const _0x3f823d=a0_0x4701fd,_0x4def8e={'XjESB':function(_0x38561a,_0x150074){return _0x38561a(_0x150074);}};if(_0x488b12)try{await _0x488b12['close'](),console['log']('['+formatDate(new Date())+_0x3f823d(0xa8));}catch(_0xf62021){console[_0x3f823d(0x90)]('['+_0x4def8e['XjESB'](formatDate,new Date())+_0x3f823d(0xa3)+_0xf62021['message']);}}module['exports']={'createConnection':createConnection,'createChannel':createChannel,'setupInfrastructure':setupInfrastructure,'closeConnection':closeConnection,'getConfig':()=>({'url':RABBITMQ_URL,'exchange':EXCHANGE,'routingKey':ROUTING_KEY,'queue':QUEUE})};
@@ -1 +1 @@
1
- const a0_0x281d06=a0_0x2a02;(function(_0x649ea0,_0x1e05dd){const _0x42f5ae=a0_0x2a02,_0x216338=_0x649ea0();while(!![]){try{const _0x5601be=-parseInt(_0x42f5ae(0x17d))/0x1*(parseInt(_0x42f5ae(0x17b))/0x2)+parseInt(_0x42f5ae(0x16b))/0x3+-parseInt(_0x42f5ae(0x174))/0x4*(parseInt(_0x42f5ae(0x186))/0x5)+parseInt(_0x42f5ae(0x171))/0x6+parseInt(_0x42f5ae(0x17f))/0x7*(parseInt(_0x42f5ae(0x187))/0x8)+parseInt(_0x42f5ae(0x175))/0x9+parseInt(_0x42f5ae(0x189))/0xa*(-parseInt(_0x42f5ae(0x18b))/0xb);if(_0x5601be===_0x1e05dd)break;else _0x216338['push'](_0x216338['shift']());}catch(_0xb9e5c2){_0x216338['push'](_0x216338['shift']());}}}(a0_0x8ff6,0xf3af8));function a0_0x2a02(_0x3d8f4e,_0x1fe70a){_0x3d8f4e=_0x3d8f4e-0x16a;const _0x8ff656=a0_0x8ff6();let _0x2a0246=_0x8ff656[_0x3d8f4e];if(a0_0x2a02['eRAzGP']===undefined){var _0x4ddab2=function(_0xde06e2){const _0x1eb731='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x34e6fa='',_0x2d6a7f='';for(let _0x3dd992=0x0,_0x1b9cc2,_0x42a83d,_0x3ec628=0x0;_0x42a83d=_0xde06e2['charAt'](_0x3ec628++);~_0x42a83d&&(_0x1b9cc2=_0x3dd992%0x4?_0x1b9cc2*0x40+_0x42a83d:_0x42a83d,_0x3dd992++%0x4)?_0x34e6fa+=String['fromCharCode'](0xff&_0x1b9cc2>>(-0x2*_0x3dd992&0x6)):0x0){_0x42a83d=_0x1eb731['indexOf'](_0x42a83d);}for(let _0x3e6054=0x0,_0x1e2cc3=_0x34e6fa['length'];_0x3e6054<_0x1e2cc3;_0x3e6054++){_0x2d6a7f+='%'+('00'+_0x34e6fa['charCodeAt'](_0x3e6054)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2d6a7f);};a0_0x2a02['hllbcA']=_0x4ddab2,a0_0x2a02['IfVLpf']={},a0_0x2a02['eRAzGP']=!![];}const _0x7d7ff9=_0x8ff656[0x0],_0xb281b4=_0x3d8f4e+_0x7d7ff9,_0x419cfb=a0_0x2a02['IfVLpf'][_0xb281b4];return!_0x419cfb?(_0x2a0246=a0_0x2a02['hllbcA'](_0x2a0246),a0_0x2a02['IfVLpf'][_0xb281b4]=_0x2a0246):_0x2a0246=_0x419cfb,_0x2a0246;}const Redis=require('ioredis'),{logger}=require(a0_0x281d06(0x18d));function a0_0x8ff6(){const _0x1cb64d=['CMvKAxnFAw5PDf9LCNjVCG','BwvZC2fNzq','Aw5XvxK','rMfPBgvKihrVigLUAxrPywXPEMuGuMvKAxm','y2XVC2u','mJGWodmXmfzquNfxra','ndG3mZznBu1Vsum','Aw5MBW','ntiWthDXtMHQ','uMvKAxmGueLorYb0Aw1LB3v0','ntK5ndC4vxfIBwLJ','qvfSv0e','lI9SB2DNzxi','svzryMK','Bg9JywXOB3n0','AxndB25Uzwn0zwq','zxHWB3j0CW','uKvesvnFue9sva','zxjYB3i','ndy1mZy4mxLoBKrMyW','wfDhy2e','uMvKAxmGy29UBMvJDgLVBIbJBg9Zzwq','t3rWC00','uKvesvnFueftu1DpuKq','zw52','nteWnJq2mLHUsNHyDa','CxvPDa','zgLZy29UBMvJDa','oentCwvQAa','nZG2otK2mg1KyM1rrW','z2v0q2XPzw50','y2XPzw50','y29UBMvJDa','BwLU','uKvesvnFrei','mte5nJmYEKPfEufp','CgLUzW','m0PKEvfptG','zM9Yy2veAxnJB25Uzwn0','mJeZnvnSANfkrq','t01cAwS'];a0_0x8ff6=function(){return _0x1cb64d;};return a0_0x8ff6();}class RedisClient{constructor(){const _0x59a4c1=a0_0x281d06;this[_0x59a4c1(0x177)]=null,this['isConnected']=![];}[a0_0x281d06(0x178)](){const _0xde8fc=a0_0x281d06,_0x5c8d2b={'OMBik':function(_0x15c73f,_0x18e0b9){return _0x15c73f*_0x18e0b9;},'AQlWA':'redis_connected','SwJwk':'Redis\x20connected\x20successfully','inqUy':_0xde8fc(0x16d),'Xwmrh':_0xde8fc(0x18f),'IVQbi':'connect','OtpsM':_0xde8fc(0x16a),'XWGca':_0xde8fc(0x185),'LjBzQ':_0xde8fc(0x184)};if(this['client'])return this[_0xde8fc(0x177)];try{return this[_0xde8fc(0x177)]=new Redis({'host':process['env']['REDIS_HOST']||_0x5c8d2b['Xwmrh'],'port':parseInt(process[_0xde8fc(0x170)][_0xde8fc(0x192)],0xa)||0x18ec,'password':process[_0xde8fc(0x170)][_0xde8fc(0x16f)]||undefined,'db':parseInt(process[_0xde8fc(0x170)][_0xde8fc(0x17a)],0xa)||0x0,'retryStrategy'(_0x258a54){const _0x475420=_0xde8fc,_0x32699e=Math[_0x475420(0x179)](_0x5c8d2b[_0x475420(0x180)](_0x258a54,0x32),0x7d0);return _0x32699e;}}),this[_0xde8fc(0x177)]['on'](_0x5c8d2b[_0xde8fc(0x18e)],()=>{const _0x2e3d45=_0xde8fc;this['isConnected']=!![],logger[_0x2e3d45(0x188)]({'event':_0x5c8d2b[_0x2e3d45(0x18c)]},_0x5c8d2b['SwJwk']);}),this[_0xde8fc(0x177)]['on'](_0x5c8d2b[_0xde8fc(0x16e)],_0x4762a0=>{const _0xed1f25=_0xde8fc;this['isConnected']=![],logger[_0xed1f25(0x16a)]({'event':'redis_error','error':_0x4762a0['message']},'Redis\x20connection\x20error:\x20'+_0x4762a0[_0xed1f25(0x182)]);}),this[_0xde8fc(0x177)]['on'](_0x5c8d2b[_0xde8fc(0x16c)],()=>{const _0x23903a=_0xde8fc;this[_0x23903a(0x190)]=![],logger['warn']({'event':'redis_disconnected'},_0x5c8d2b[_0x23903a(0x183)]);}),this[_0xde8fc(0x177)];}catch(_0x3d7a32){logger[_0xde8fc(0x16a)]({'event':_0xde8fc(0x181),'error':_0x3d7a32[_0xde8fc(0x182)]},_0x5c8d2b['LjBzQ']);throw _0x3d7a32;}}[a0_0x281d06(0x176)](){const _0x2b1c23=a0_0x281d06;return!this['client']&&this['connect'](),this[_0x2b1c23(0x177)];}async[a0_0x281d06(0x17c)](_0x429649=0x1388){const _0x223585=a0_0x281d06,_0x301f86={'YABOR':'PONG'};try{const _0x3d4a53=this[_0x223585(0x176)](),_0x367ab6=await Promise['race']([_0x3d4a53[_0x223585(0x17c)](),new Promise((_0x5712d9,_0x2c71eb)=>setTimeout(()=>_0x2c71eb(new Error(_0x223585(0x18a))),_0x429649))]);return _0x367ab6===_0x301f86['YABOR'];}catch(_0x15726d){return![];}}async[a0_0x281d06(0x173)](){const _0x30e354=a0_0x281d06;this[_0x30e354(0x177)]&&(await this['client'][_0x30e354(0x172)](),this[_0x30e354(0x177)]=null,this['isConnected']=![]);}[a0_0x281d06(0x17e)](){const _0x509ee2=a0_0x281d06;this[_0x509ee2(0x177)]&&(this[_0x509ee2(0x177)][_0x509ee2(0x173)](),this[_0x509ee2(0x177)]=null,this['isConnected']=![]);}}module[a0_0x281d06(0x191)]=new RedisClient();
1
+ const a0_0x37394c=a0_0x3db8;(function(_0x8ac543,_0x49f377){const _0x3ce5bc=a0_0x3db8,_0x5c7dd7=_0x8ac543();while(!![]){try{const _0x8b3ea=-parseInt(_0x3ce5bc(0x12d))/0x1*(parseInt(_0x3ce5bc(0x144))/0x2)+parseInt(_0x3ce5bc(0x128))/0x3+parseInt(_0x3ce5bc(0x125))/0x4*(parseInt(_0x3ce5bc(0x13e))/0x5)+parseInt(_0x3ce5bc(0x139))/0x6*(-parseInt(_0x3ce5bc(0x13f))/0x7)+parseInt(_0x3ce5bc(0x13d))/0x8*(-parseInt(_0x3ce5bc(0x12b))/0x9)+parseInt(_0x3ce5bc(0x141))/0xa*(-parseInt(_0x3ce5bc(0x12f))/0xb)+parseInt(_0x3ce5bc(0x137))/0xc;if(_0x8b3ea===_0x49f377)break;else _0x5c7dd7['push'](_0x5c7dd7['shift']());}catch(_0x127b98){_0x5c7dd7['push'](_0x5c7dd7['shift']());}}}(a0_0x6b72,0x72ae3));const Redis=require(a0_0x37394c(0x140)),{logger}=require(a0_0x37394c(0x12e));class RedisClient{constructor(){const _0x214a9d=a0_0x37394c;this[_0x214a9d(0x129)]=null,this[_0x214a9d(0x143)]=![];}['connect'](){const _0x203434=a0_0x37394c,_0x5d2312={'zbVgO':function(_0x55e0db,_0x3d0799){return _0x55e0db*_0x3d0799;},'rcGUV':'localhost','xPGHq':function(_0x2b3b4c,_0x54eaf1,_0x116a0d){return _0x2b3b4c(_0x54eaf1,_0x116a0d);},'XBRtU':_0x203434(0x130)};if(this[_0x203434(0x129)])return this[_0x203434(0x129)];try{return this[_0x203434(0x129)]=new Redis({'host':process[_0x203434(0x122)]['REDIS_HOST']||_0x5d2312[_0x203434(0x132)],'port':_0x5d2312[_0x203434(0x13a)](parseInt,process['env']['REDIS_PORT'],0xa)||0x18ec,'password':process['env']['REDIS_PASSWORD']||undefined,'db':_0x5d2312[_0x203434(0x13a)](parseInt,process[_0x203434(0x122)]['REDIS_DB'],0xa)||0x0,'retryStrategy'(_0x6fcc3d){const _0x382345=_0x203434,_0x22d211=Math[_0x382345(0x126)](_0x5d2312['zbVgO'](_0x6fcc3d,0x32),0x7d0);return _0x22d211;}}),this['client']['on'](_0x203434(0x123),()=>{const _0x272780=_0x203434;this[_0x272780(0x143)]=!![],logger[_0x272780(0x136)]({'event':'redis_connected'},_0x272780(0x131));}),this['client']['on']('error',_0x37db23=>{const _0x2e5c55=_0x203434;this['isConnected']=![],logger['error']({'event':'redis_error','error':_0x37db23[_0x2e5c55(0x135)]},'Redis\x20connection\x20error:\x20'+_0x37db23['message']);}),this['client']['on']('close',()=>{const _0xcae3b3=_0x203434;this['isConnected']=![],logger['warn']({'event':_0xcae3b3(0x134)},'Redis\x20connection\x20closed');}),this['client'];}catch(_0x1bb13e){logger['error']({'event':_0x203434(0x12c),'error':_0x1bb13e[_0x203434(0x135)]},_0x5d2312[_0x203434(0x12a)]);throw _0x1bb13e;}}[a0_0x37394c(0x138)](){const _0x40ff88=a0_0x37394c;return!this[_0x40ff88(0x129)]&&this[_0x40ff88(0x123)](),this['client'];}async['ping'](_0x4d8cec=0x1388){const _0x2f8338=a0_0x37394c,_0x59434e={'vQtgQ':function(_0xb5d202,_0x54de62){return _0xb5d202===_0x54de62;},'rXQkB':_0x2f8338(0x127)};try{const _0x56785a=this['getClient'](),_0xf16357=await Promise[_0x2f8338(0x142)]([_0x56785a[_0x2f8338(0x124)](),new Promise((_0x43b991,_0x3b9539)=>setTimeout(()=>_0x3b9539(new Error(_0x2f8338(0x145))),_0x4d8cec))]);return _0x59434e[_0x2f8338(0x133)](_0xf16357,_0x59434e[_0x2f8338(0x13c)]);}catch(_0x4aaf73){return![];}}async['disconnect'](){const _0x1b3fa8=a0_0x37394c;this['client']&&(await this[_0x1b3fa8(0x129)]['quit'](),this['client']=null,this['isConnected']=![]);}['forceDisconnect'](){const _0xc16d92=a0_0x37394c;this[_0xc16d92(0x129)]&&(this[_0xc16d92(0x129)]['disconnect'](),this['client']=null,this['isConnected']=![]);}}function a0_0x3db8(_0x7814cc,_0x568fd4){_0x7814cc=_0x7814cc-0x122;const _0x6b7204=a0_0x6b72();let _0x3db8d9=_0x6b7204[_0x7814cc];if(a0_0x3db8['xZeEVI']===undefined){var _0x5ccfaa=function(_0x3a89e0){const _0xf409fe='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x559102='',_0x253302='';for(let _0x2f465c=0x0,_0x5624d7,_0x158089,_0x4a54b2=0x0;_0x158089=_0x3a89e0['charAt'](_0x4a54b2++);~_0x158089&&(_0x5624d7=_0x2f465c%0x4?_0x5624d7*0x40+_0x158089:_0x158089,_0x2f465c++%0x4)?_0x559102+=String['fromCharCode'](0xff&_0x5624d7>>(-0x2*_0x2f465c&0x6)):0x0){_0x158089=_0xf409fe['indexOf'](_0x158089);}for(let _0x54e6a5=0x0,_0x11388c=_0x559102['length'];_0x54e6a5<_0x11388c;_0x54e6a5++){_0x253302+='%'+('00'+_0x559102['charCodeAt'](_0x54e6a5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x253302);};a0_0x3db8['bHqfei']=_0x5ccfaa,a0_0x3db8['cxaVMk']={},a0_0x3db8['xZeEVI']=!![];}const _0x2ab07d=_0x6b7204[0x0],_0x31529e=_0x7814cc+_0x2ab07d,_0x17cc3a=a0_0x3db8['cxaVMk'][_0x31529e];return!_0x17cc3a?(_0x3db8d9=a0_0x3db8['bHqfei'](_0x3db8d9),a0_0x3db8['cxaVMk'][_0x31529e]=_0x3db8d9):_0x3db8d9=_0x17cc3a,_0x3db8d9;}function a0_0x6b72(){const _0x138316=['nunsuvvKrW','oda1EvbfBKXu','Aw9YzwrPCW','mta0mJCYmfbNDxHLvq','CMfJzq','AxndB25Uzwn0zwq','mKLSsLfNyq','uMvKAxmGueLorYb0Aw1LB3v0','zw52','y29UBMvJDa','CgLUzW','mZmXmJKYofbbAMfhAa','BwLU','ue9orW','mJiWnteYnMfPqKr3AG','y2XPzw50','wejsDfu','oxzey0nfDW','CMvKAxnFAw5PDf9LCNjVCG','ndu2ota1rxLrExng','lI9SB2DNzxi','mZn5swTRy1G','rMfPBgvKihrVigLUAxrPywXPEMuGuMvKAxm','uMvKAxmGy29UBMvJDgvKihn1y2nLC3nMDwXSEq','CMnhvvy','DLf0z1e','CMvKAxnFzgLZy29UBMvJDgvK','BwvZC2fNzq','Aw5MBW','odi2mJu4ohvMuKXxuW','z2v0q2XPzw50','ndeXmdzYweXhuNy','Efbhshe','zxHWB3j0CW','CLHrA0i','mtC5nJa0ofPuAhzODa'];a0_0x6b72=function(){return _0x138316;};return a0_0x6b72();}module[a0_0x37394c(0x13b)]=new RedisClient();
@@ -1 +1 @@
1
- const a0_0x473fac=a0_0x6cbf;(function(_0x584d72,_0x548121){const _0x55fbf3=a0_0x6cbf,_0x2f5d92=_0x584d72();while(!![]){try{const _0x45f92b=-parseInt(_0x55fbf3(0x203))/0x1*(parseInt(_0x55fbf3(0x20b))/0x2)+parseInt(_0x55fbf3(0x207))/0x3*(-parseInt(_0x55fbf3(0x1ea))/0x4)+-parseInt(_0x55fbf3(0x20e))/0x5+parseInt(_0x55fbf3(0x211))/0x6*(-parseInt(_0x55fbf3(0x1f0))/0x7)+-parseInt(_0x55fbf3(0x210))/0x8*(parseInt(_0x55fbf3(0x209))/0x9)+parseInt(_0x55fbf3(0x200))/0xa*(parseInt(_0x55fbf3(0x212))/0xb)+parseInt(_0x55fbf3(0x1ed))/0xc;if(_0x45f92b===_0x548121)break;else _0x2f5d92['push'](_0x2f5d92['shift']());}catch(_0x4392f6){_0x2f5d92['push'](_0x2f5d92['shift']());}}}(a0_0x1b63,0x956c4));function a0_0x6cbf(_0xf573bf,_0x217929){_0xf573bf=_0xf573bf-0x1e9;const _0x1b63dc=a0_0x1b63();let _0x6cbf0b=_0x1b63dc[_0xf573bf];if(a0_0x6cbf['brQGuB']===undefined){var _0x1d3a53=function(_0x4d7331){const _0x4adeda='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x403bf8='',_0x4ad80e='';for(let _0x2bc6bb=0x0,_0x2d78df,_0x413a6e,_0x38c21b=0x0;_0x413a6e=_0x4d7331['charAt'](_0x38c21b++);~_0x413a6e&&(_0x2d78df=_0x2bc6bb%0x4?_0x2d78df*0x40+_0x413a6e:_0x413a6e,_0x2bc6bb++%0x4)?_0x403bf8+=String['fromCharCode'](0xff&_0x2d78df>>(-0x2*_0x2bc6bb&0x6)):0x0){_0x413a6e=_0x4adeda['indexOf'](_0x413a6e);}for(let _0x5a7907=0x0,_0x1838c6=_0x403bf8['length'];_0x5a7907<_0x1838c6;_0x5a7907++){_0x4ad80e+='%'+('00'+_0x403bf8['charCodeAt'](_0x5a7907)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4ad80e);};a0_0x6cbf['kRWGmK']=_0x1d3a53,a0_0x6cbf['KGCDod']={},a0_0x6cbf['brQGuB']=!![];}const _0x39027b=_0x1b63dc[0x0],_0x703cb1=_0xf573bf+_0x39027b,_0x2c17d5=a0_0x6cbf['KGCDod'][_0x703cb1];return!_0x2c17d5?(_0x6cbf0b=a0_0x6cbf['kRWGmK'](_0x6cbf0b),a0_0x6cbf['KGCDod'][_0x703cb1]=_0x6cbf0b):_0x6cbf0b=_0x2c17d5,_0x6cbf0b;}const redisClient=require(a0_0x473fac(0x1f3)),{logger}=require(a0_0x473fac(0x1ec));class RedisHelper{constructor(){const _0x55071a=a0_0x473fac;this['_prefix']=null,this[_0x55071a(0x1fa)]=parseInt(process['env']['EXPORT_FILE_EXPIRY'],0xa)||0xe10;}get['prefix'](){const _0x34c976=a0_0x473fac;if(!this['_prefix']){const _0x4939da=process[_0x34c976(0x208)][_0x34c976(0x205)]||_0x34c976(0x1ef);this[_0x34c976(0x204)]='restforge:'+_0x4939da+':export:';}return this['_prefix'];}async['setJob'](_0x7e929,_0x416368){const _0x28aa4e=a0_0x473fac,_0x4159a4={'whyhB':'redis_set_error'};try{const _0x2e55fc=redisClient[_0x28aa4e(0x1e9)](),_0x1e3ec0=''+this['prefix']+_0x7e929;return await _0x2e55fc[_0x28aa4e(0x1f8)](_0x1e3ec0,this['ttl'],JSON[_0x28aa4e(0x20a)](_0x416368)),!![];}catch(_0x11519b){return logger['error']({'event':_0x4159a4[_0x28aa4e(0x20d)],'jobId':_0x7e929,'error':_0x11519b[_0x28aa4e(0x20c)]},'Failed\x20to\x20set\x20job\x20in\x20Redis'),![];}}async[a0_0x473fac(0x1ff)](_0x405127){const _0x18ee1f=a0_0x473fac,_0x1575df={'NpyFQ':'redis_get_error'};try{const _0x2dcbff=redisClient[_0x18ee1f(0x1e9)](),_0x1eda9c=''+this[_0x18ee1f(0x1f4)]+_0x405127,_0xd07ab6=await _0x2dcbff['get'](_0x1eda9c);return _0xd07ab6?JSON[_0x18ee1f(0x1f1)](_0xd07ab6):null;}catch(_0x8d4c6a){return logger['error']({'event':_0x1575df[_0x18ee1f(0x1ee)],'jobId':_0x405127,'error':_0x8d4c6a['message']},_0x18ee1f(0x1f7)),null;}}async['updateJob'](_0x5aec09,_0x414b02){const _0x3ef5b7=a0_0x473fac,_0x3b5626=await this['getJob'](_0x5aec09);if(!_0x3b5626)return![];const _0x6c1fca={..._0x3b5626,..._0x414b02};return await this[_0x3ef5b7(0x1fd)](_0x5aec09,_0x6c1fca);}async[a0_0x473fac(0x1eb)](_0x595a37){const _0x2a4bde=a0_0x473fac,_0x3cfbc3={'IoEPz':_0x2a4bde(0x201)};try{const _0x6601c0=redisClient['getClient'](),_0x1da3e2=''+this['prefix']+_0x595a37;return await _0x6601c0[_0x2a4bde(0x1f5)](_0x1da3e2),!![];}catch(_0x3f14fb){return logger['error']({'event':'redis_delete_error','jobId':_0x595a37,'error':_0x3f14fb[_0x2a4bde(0x20c)]},_0x3cfbc3[_0x2a4bde(0x1f2)]),![];}}async['getAllJobs'](){const _0x1e4521=a0_0x473fac,_0x107586={'AEtRH':_0x1e4521(0x1f6)};try{const _0x32321=redisClient['getClient'](),_0x288518=await _0x32321[_0x1e4521(0x206)](this['prefix']+'*'),_0x171514=[];for(const _0x3d4124 of _0x288518){const _0x2d927f=await _0x32321[_0x1e4521(0x20f)](_0x3d4124);_0x2d927f&&_0x171514[_0x1e4521(0x1fe)](JSON['parse'](_0x2d927f));}return _0x171514;}catch(_0x55bf03){return logger[_0x1e4521(0x1f9)]({'event':_0x107586[_0x1e4521(0x202)],'error':_0x55bf03[_0x1e4521(0x20c)]},_0x1e4521(0x1fb)),[];}}}function a0_0x1b63(){const _0x21f4ba=['ntm4ntu4ndrPwhvSze4','tNb5rLe','zgvMyxvSDa','nZiWmtqZovrzsKrwyq','CgfYC2u','sw9fuhO','lI9YzwrPCY1JBgLLBNq','ChjLzML4','zgvS','CMvKAxnFz2v0ywXSx2vYCM9Y','rMfPBgvKihrVigDLDcbQB2iGzNjVBsbszwrPCW','C2v0zxG','zxjYB3i','DhrS','rMfPBgvKihrVigDLDcbHBgWGAM9ICW','zxHWB3j0CW','C2v0sM9I','ChvZAa','z2v0sM9I','odKWB3zMv0Po','rMfPBgvKihrVigrLBgv0zsbQB2iGzNjVBsbszwrPCW','quv0uKG','nJa5mtnPveDqEe0','x3bYzwzPEa','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','A2v5CW','m09VyvPdsG','zw52','nJnxB25wAhe','C3rYAw5NAwz5','mJzHuhfXA3K','BwvZC2fNzq','D2H5Aei','ndmYmdi4nxfRvNfXzW','z2v0','otaZode2B3jZDgnR','nKf5v3zPvq','mJi2nKHeq2TNzW','z2v0q2XPzw50','mty3ndK3mLrIBNvSsW','zgvSzxrLsM9I','lI9SB2DNzxi'];a0_0x1b63=function(){return _0x21f4ba;};return a0_0x1b63();}module[a0_0x473fac(0x1fc)]=new RedisHelper();
1
+ const a0_0x2d25ab=a0_0x20f6;(function(_0x2f794f,_0x522e22){const _0x288c67=a0_0x20f6,_0x1332c1=_0x2f794f();while(!![]){try{const _0x56f612=parseInt(_0x288c67(0x187))/0x1+parseInt(_0x288c67(0x188))/0x2*(-parseInt(_0x288c67(0x18f))/0x3)+-parseInt(_0x288c67(0x1a3))/0x4*(-parseInt(_0x288c67(0x197))/0x5)+parseInt(_0x288c67(0x18a))/0x6*(-parseInt(_0x288c67(0x189))/0x7)+-parseInt(_0x288c67(0x19c))/0x8*(-parseInt(_0x288c67(0x18c))/0x9)+parseInt(_0x288c67(0x186))/0xa*(parseInt(_0x288c67(0x198))/0xb)+parseInt(_0x288c67(0x192))/0xc*(-parseInt(_0x288c67(0x18b))/0xd);if(_0x56f612===_0x522e22)break;else _0x1332c1['push'](_0x1332c1['shift']());}catch(_0x58de6d){_0x1332c1['push'](_0x1332c1['shift']());}}}(a0_0x183f,0x2b69d));function a0_0x183f(){const _0x51c15c=['mtqZmtfhDurOwfG','CMvKAxnFz2v0ywXSx2vYCM9Y','C2v0sM9I','z2v0q2XPzw50','mJi5ntjOz0H3q0O','ve51uLy','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','zxjYB3i','zw52','ChjLzML4','A2v5CW','mJmWodrZt2rqshC','oMv4Cg9YDdO','zgvS','CMvZDgzVCMDLoG','DhrS','EK1lwLO','rvHqt1jux0zjtevFrvHqsvjz','mti3mhbHyxrRDa','mtK5odvtu05KDu0','nJy4mM12uw5NyW','mZK4m2zjtLPcAq','ntGYrNDYu2Pp','mtnTugrvBxu','odCZy0v4DeTR','BwvZC2fNzq','C2v0zxG','mJi1D3HRshfT','zgvMyxvSDa','CgfYC2u','mZaXmZGZnLHusvjryG','ChvZAa','CMvKAxnFC2v0x2vYCM9Y','zxHWB3j0CW','x3bYzwzPEa','mJm1t2P3thfw'];a0_0x183f=function(){return _0x51c15c;};return a0_0x183f();}const redisClient=require('./redis-client'),{logger}=require('./logger');function a0_0x20f6(_0x11af08,_0xafca73){_0x11af08=_0x11af08-0x184;const _0x183f97=a0_0x183f();let _0x20f6db=_0x183f97[_0x11af08];if(a0_0x20f6['iXnRVi']===undefined){var _0x48a8f3=function(_0x3ae44f){const _0x1bda12='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x21eee9='',_0x5724db='';for(let _0xeed78f=0x0,_0x529c5a,_0x4d6fe4,_0x134e38=0x0;_0x4d6fe4=_0x3ae44f['charAt'](_0x134e38++);~_0x4d6fe4&&(_0x529c5a=_0xeed78f%0x4?_0x529c5a*0x40+_0x4d6fe4:_0x4d6fe4,_0xeed78f++%0x4)?_0x21eee9+=String['fromCharCode'](0xff&_0x529c5a>>(-0x2*_0xeed78f&0x6)):0x0){_0x4d6fe4=_0x1bda12['indexOf'](_0x4d6fe4);}for(let _0x449999=0x0,_0x204e1c=_0x21eee9['length'];_0x449999<_0x204e1c;_0x449999++){_0x5724db+='%'+('00'+_0x21eee9['charCodeAt'](_0x449999)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5724db);};a0_0x20f6['dEmsxV']=_0x48a8f3,a0_0x20f6['maxuwl']={},a0_0x20f6['iXnRVi']=!![];}const _0x28b182=_0x183f97[0x0],_0x418dc4=_0x11af08+_0x28b182,_0x3b19ef=a0_0x20f6['maxuwl'][_0x418dc4];return!_0x3b19ef?(_0x20f6db=a0_0x20f6['dEmsxV'](_0x20f6db),a0_0x20f6['maxuwl'][_0x418dc4]=_0x20f6db):_0x20f6db=_0x3b19ef,_0x20f6db;}class RedisHelper{constructor(){const _0x5a504c=a0_0x20f6;this['_prefix']=null,this[_0x5a504c(0x1a7)]=parseInt(process[_0x5a504c(0x1a0)][_0x5a504c(0x185)],0xa)||0xe10;}get[a0_0x2d25ab(0x1a1)](){const _0x59c8c6=a0_0x2d25ab;if(!this[_0x59c8c6(0x196)]){const _0xa8374=process['env'][_0x59c8c6(0x19e)]||_0x59c8c6(0x190);this[_0x59c8c6(0x196)]=_0x59c8c6(0x1a6)+_0xa8374+_0x59c8c6(0x1a4);}return this['_prefix'];}async[a0_0x2d25ab(0x19a)](_0x126829,_0x2eaa78){const _0x523704=a0_0x2d25ab,_0x2a788d={'cSphR':_0x523704(0x194)};try{const _0x372de2=redisClient[_0x523704(0x19b)](),_0x382723=''+this[_0x523704(0x1a1)]+_0x126829;return await _0x372de2[_0x523704(0x18e)](_0x382723,this['ttl'],JSON['stringify'](_0x2eaa78)),!![];}catch(_0x5e6721){return logger[_0x523704(0x19f)]({'event':_0x2a788d['cSphR'],'jobId':_0x126829,'error':_0x5e6721[_0x523704(0x18d)]},'Failed\x20to\x20set\x20job\x20in\x20Redis'),![];}}async['getJob'](_0x291115){const _0x1024c0=a0_0x2d25ab,_0x488c25={'zMKZZ':'redis_get_error','kDmgN':'Failed\x20to\x20get\x20job\x20from\x20Redis'};try{const _0x95fc82=redisClient[_0x1024c0(0x19b)](),_0x2f0460=''+this[_0x1024c0(0x1a1)]+_0x291115,_0x5049e5=await _0x95fc82['get'](_0x2f0460);return _0x5049e5?JSON['parse'](_0x5049e5):null;}catch(_0x3c222c){return logger['error']({'event':_0x488c25[_0x1024c0(0x184)],'jobId':_0x291115,'error':_0x3c222c[_0x1024c0(0x18d)]},_0x488c25['kDmgN']),null;}}async['updateJob'](_0x22843b,_0x1eba15){const _0x7a147d=await this['getJob'](_0x22843b);if(!_0x7a147d)return![];const _0x31bfac={..._0x7a147d,..._0x1eba15};return await this['setJob'](_0x22843b,_0x31bfac);}async['deleteJob'](_0x106e4f){const _0x24fdb7=a0_0x2d25ab,_0x4d53e3={'TNuRV':'Failed\x20to\x20delete\x20job\x20from\x20Redis'};try{const _0x1ccc7c=redisClient['getClient'](),_0x605aea=''+this[_0x24fdb7(0x1a1)]+_0x106e4f;return await _0x1ccc7c[_0x24fdb7(0x1a5)](_0x605aea),!![];}catch(_0x8125b){return logger[_0x24fdb7(0x19f)]({'event':'redis_delete_error','jobId':_0x106e4f,'error':_0x8125b[_0x24fdb7(0x18d)]},_0x4d53e3[_0x24fdb7(0x19d)]),![];}}async['getAllJobs'](){const _0x16c1fc=a0_0x2d25ab;try{const _0x23a8e7=redisClient['getClient'](),_0x3e1a7a=await _0x23a8e7[_0x16c1fc(0x1a2)](this['prefix']+'*'),_0x3687ae=[];for(const _0x3da37a of _0x3e1a7a){const _0x518144=await _0x23a8e7['get'](_0x3da37a);_0x518144&&_0x3687ae[_0x16c1fc(0x193)](JSON[_0x16c1fc(0x191)](_0x518144));}return _0x3687ae;}catch(_0x5b3b5d){return logger[_0x16c1fc(0x19f)]({'event':_0x16c1fc(0x199),'error':_0x5b3b5d['message']},'Failed\x20to\x20get\x20all\x20jobs'),[];}}}module[a0_0x2d25ab(0x195)]=new RedisHelper();