@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_0x3c425e=a0_0xbca5;(function(_0x196be3,_0xb8a3ef){const _0x1a9329=a0_0xbca5,_0xaf5554=_0x196be3();while(!![]){try{const _0x405b2e=parseInt(_0x1a9329(0x17b))/0x1+-parseInt(_0x1a9329(0x16f))/0x2*(parseInt(_0x1a9329(0x18c))/0x3)+parseInt(_0x1a9329(0x180))/0x4*(-parseInt(_0x1a9329(0x167))/0x5)+parseInt(_0x1a9329(0x186))/0x6+parseInt(_0x1a9329(0x161))/0x7+-parseInt(_0x1a9329(0x16d))/0x8+parseInt(_0x1a9329(0x177))/0x9;if(_0x405b2e===_0xb8a3ef)break;else _0xaf5554['push'](_0xaf5554['shift']());}catch(_0x2d8743){_0xaf5554['push'](_0xaf5554['shift']());}}}(a0_0x1723,0xabc19));const {createConnection,createChannel,setupInfrastructure,closeConnection,getConfig}=require('../utils/rabbitmq'),{formatDate}=require(a0_0x3c425e(0x166));function a0_0xbca5(_0x49bf58,_0x14f2a6){_0x49bf58=_0x49bf58-0x158;const _0x17230e=a0_0x1723();let _0xbca574=_0x17230e[_0x49bf58];if(a0_0xbca5['LRuAOL']===undefined){var _0x1138e7=function(_0x273945){const _0x21bf2b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x41fa4c='',_0x25bd37='';for(let _0x37f868=0x0,_0x46ffa0,_0x15b736,_0x1d3ef1=0x0;_0x15b736=_0x273945['charAt'](_0x1d3ef1++);~_0x15b736&&(_0x46ffa0=_0x37f868%0x4?_0x46ffa0*0x40+_0x15b736:_0x15b736,_0x37f868++%0x4)?_0x41fa4c+=String['fromCharCode'](0xff&_0x46ffa0>>(-0x2*_0x37f868&0x6)):0x0){_0x15b736=_0x21bf2b['indexOf'](_0x15b736);}for(let _0x569929=0x0,_0x56cf1f=_0x41fa4c['length'];_0x569929<_0x56cf1f;_0x569929++){_0x25bd37+='%'+('00'+_0x41fa4c['charCodeAt'](_0x569929)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x25bd37);};a0_0xbca5['PHudng']=_0x1138e7,a0_0xbca5['jDPzFF']={},a0_0xbca5['LRuAOL']=!![];}const _0x3b07b6=_0x17230e[0x0],_0x244940=_0x49bf58+_0x3b07b6,_0x72c4eb=a0_0xbca5['jDPzFF'][_0x244940];return!_0x72c4eb?(_0xbca574=a0_0xbca5['PHudng'](_0xbca574),a0_0xbca5['jDPzFF'][_0x244940]=_0xbca574):_0xbca574=_0x72c4eb,_0xbca574;}function a0_0x1723(){const _0x8076e=['mJa3nteYBvLkCuLd','xsblB25LA3nPifjHyMjPDe1rihrLCNb1DhvZ','yxnZzxj0rxHJAgfUz2u','zxHJAgfUz2u','z2v0vgLTzq','zxjYB3i','xsbgywLSzwqGDg8GChjVy2vZCYbTzxnZywDLlcbYzxf1zxvPBMC','xsbnzxnZywDLigHHBMrSzxiGBxvZDcbIzsbHigz1BMn0Aw9U','mtGXmJeYm2nOvvP1va','weTHvxm','zw52','CxvLDwu','ndiWmty3ELDcthfz','Aw5PDgLHBgL6zq','y2HHBM5LBa','t1nnv2S','yxv0B19YzxrYEq','nfrpA1zWva','n3W2Fdn8mhW1Fdf8mNW0','xsbfuLjpuJOGuxvLDwuG','qvLtAfa','BwvZC2fNzq','Dg9ju09tDhjPBMC','nti5mJmWnNbhrvjYEq','Bwf4x3jLDhjPzxm','y2XVC2u','ChjVCgvYDgLLCW','CM91DgLUz0TLEq','xsbtDgfYDcbJB25ZDw1PBMCGBwvZC2fNzxmGzNjVBsbXDwv1zsaI','m25pAKTjsa','zNjVBq','yxbWBgLJyxrPB24VANnVBG','EePQC2u','C2v0DxbdB2XSzwn0B3jjBMzYyxn0CNvJDhvYzq','CMfUzg9T','ksbJCMvHDgvK','vhj5Aw5NigfSDgvYBMf0AxzLihf1zxvLig5HBwuUlI4','qM5LyKq','xsbgywLSzwqGDg8GCMvJB25Uzwn0ihrVifjHyMjPDe1roIa','ignYzwf0zwqVCMvHzhK','xsboBYbOyw5KBgvYCYbYzwDPC3rLCMvKihrVihbYB2nLC3mGBwvZC2fNzxm','Aw5JBhvKzxm','rgf0ysbZzw50ihrVihf1zxvLihn1y2nLC3nMDwXSEq','Dg9tDhjPBMC','xsbszxrYEsbLEgnOyw5Nzsa','renjDhi','ihDPDgGGreXy','rMfPBgvKihrVihnLBMqGBwvZC2fNzsb0BYbsywjIAxrnuq','EefArwW','ru53Dhe','xsbtDwnJzxnZzNvSBhKGCMvJB25Uzwn0zwqGDg8GuMfIyML0tve','sMHkwhu','AxndB25Uzwn0zwq','ignYzwf0zwq','xsbfCNjVCIbJCMvHDgLUzYbXDwv1zsa','xsbnzxnZywDLigHHBMrSzxiGCMvNAxn0zxjLza','ChjVy2vZC01LC3nHz2u','yxnZzxj0uxvLDwu','BwvZC2fNzuHHBMrSzxjZ','xsbfCNjVCIbZywf0ihnLDhvWigLUzNjHC3rYDwT0Dxi6ia','xsbfCNjVCIbWCM9JzxnZAw5Nig1LC3nHz2u6ia','ywnR','wwr1EfC','xsbnzxnZywDLihbYB2nLC3nLzcbZDwnJzxnZzNvSBhK','xsbdyw5UB3qGC3rHCNqGy29UC3vTAw5NoIbUB3qGy29UBMvJDgvKihrVifjHyMjPDe1r','CMvJB25Uzwn0','xsbszxrYEsbXDwv1zsa','y29UBMvJDgLVBG','qxbNA1m','yMLUzff1zxvL','mZK5mJy2n2vlvKXTCa','tLf5u2W','CxvLDwuT','zgLYzwn0','Bg9N','lI4VDxrPBhmVzgf0zuHLBhbLCG','nti4ndu1CePNvhv4','xsbgywLSzwqGDg8GCgfYC2uGBwvZC2fNztOG','xsbfCNjVCIbZzw5KAw5NihrVifjHyMjPDe1roIa','C3vIC3rYAw5N','x3f1zxvL','y29UzMLN','oti4nZG4oeTHzgXWtq','ic0+ia'];a0_0x1723=function(){return _0x8076e;};return a0_0x1723();}class RabbitMQService{constructor(){const _0x2cfcca=a0_0x3c425e,_0x4433a0={'xAZEl':function(_0x5af57c){return _0x5af57c();}};this['connection']=null,this[_0x2cfcca(0x17d)]=null,this['config']=_0x4433a0[_0x2cfcca(0x19f)](getConfig),this['isConnected']=![],this['messageHandlers']=[];}async['initialize'](){const _0x45fbcd=a0_0x3c425e,_0xf1a9ae={'QlGwx':function(_0x38bc2c,_0x17b594){return _0x38bc2c(_0x17b594);},'xJjse':_0x45fbcd(0x181),'YduxW':'close','tlcQz':function(_0x512370,_0xcc94d3){return _0x512370(_0xcc94d3);},'ApgkS':function(_0x47c2f1,_0x196017){return _0x47c2f1(_0x196017);}};try{const _0x297360=_0xf1a9ae[_0x45fbcd(0x18f)]['split']('|');let _0x2cdaf4=0x0;while(!![]){switch(_0x297360[_0x2cdaf4++]){case'0':console['log']('['+formatDate(new Date())+']\x20Prefetch\x20diatur\x20ke\x201');continue;case'1':this['isConnected']=!![];continue;case'2':this['connection']['on'](_0xf1a9ae[_0x45fbcd(0x159)],()=>{const _0x419c14=_0x45fbcd;console[_0x419c14(0x174)]('['+_0xf1a9ae['QlGwx'](formatDate,new Date())+_0x419c14(0x170)),this['isConnected']=![],setTimeout(()=>this[_0x419c14(0x15c)](),0x1388);});continue;case'3':await this['channel']['prefetch'](0x1);continue;case'4':return!![];case'5':await setupInfrastructure(this[_0x45fbcd(0x17d)]);continue;case'6':this[_0x45fbcd(0x17d)]=await _0xf1a9ae['tlcQz'](createChannel,this[_0x45fbcd(0x15e)]);continue;case'7':this['connection']=await createConnection();continue;}break;}}catch(_0x393ca4){return console['error']('['+_0xf1a9ae[_0x45fbcd(0x15f)](formatDate,new Date())+']\x20Failed\x20to\x20initialize\x20RabbitMQ:\x20'+_0x393ca4[_0x45fbcd(0x184)]),this[_0x45fbcd(0x1a3)]=![],![];}}async[a0_0x3c425e(0x15c)](){const _0x595e1a=a0_0x3c425e,_0x5db47b={'OSMWk':function(_0x336e5f,_0x3e577d){return _0x336e5f(_0x3e577d);},'JhJXu':function(_0x6967a3,_0x1c11b8,_0x5d1334){return _0x6967a3(_0x1c11b8,_0x5d1334);}};console[_0x595e1a(0x165)]('['+_0x5db47b[_0x595e1a(0x17e)](formatDate,new Date())+']\x20Attempting\x20to\x20reconnect\x20to\x20RabbitMQ...');try{await this['initialize'](),this[_0x595e1a(0x1a3)]&&(console['log']('['+formatDate(new Date())+_0x595e1a(0x1a1)),await this['startConsume']());}catch(_0x42b944){console['error']('['+formatDate(new Date())+_0x595e1a(0x195)+_0x42b944['message']),_0x5db47b[_0x595e1a(0x1a2)](setTimeout,()=>this[_0x595e1a(0x15c)](),0x1388);}}async['setupCollectorInfrastructure'](_0xbe51c1){const _0x45dbff=a0_0x3c425e,_0x252adf={'FTKRn':function(_0x2d59ec,_0x394cc8){return _0x2d59ec(_0x394cc8);},'lUpxC':function(_0x25723b,_0xc6fe3f){return _0x25723b===_0xc6fe3f;},'AYShP':'created/ready','DCItr':'inequivalent\x20arg'};try{!this[_0x45dbff(0x1a3)]&&(this['connection']=await createConnection(),this['channel']=await _0x252adf['FTKRn'](createChannel,this[_0x45dbff(0x15e)]),this['isConnected']=!![]);const _0x24f45f=process[_0x45dbff(0x179)]['RESTFORGE_PROJECT_NAME']||'default',_0x305e42=_0x24f45f+'-retry-exchange';await this[_0x45dbff(0x17d)][_0x45dbff(0x171)](_0x305e42,'direct',{'durable':!![],'autoDelete':![]}),console['log']('['+formatDate(new Date())+_0x45dbff(0x19b)+_0x305e42+'\x20created/ready'),await this['channel'][_0x45dbff(0x171)](_0xbe51c1['exchange'],_0x45dbff(0x164),{'durable':!![],'autoDelete':![]}),console[_0x45dbff(0x165)]('['+formatDate(new Date())+']\x20Exchange\x20'+_0xbe51c1['exchange']+_0x45dbff(0x196));const _0x33c310=_0xbe51c1['routingKey']+'_retry',_0x22bb10={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':_0xbe51c1[_0x45dbff(0x172)],'x-dead-letter-routing-key':_0xbe51c1[_0x45dbff(0x18a)]}};await this[_0x45dbff(0x17d)][_0x45dbff(0x1a8)](_0x33c310,_0x22bb10),console[_0x45dbff(0x165)]('['+_0x252adf['FTKRn'](formatDate,new Date())+_0x45dbff(0x15d)+_0x33c310+_0x45dbff(0x196)),await this[_0x45dbff(0x17d)]['bindQueue'](_0x33c310,_0x305e42,_0xbe51c1[_0x45dbff(0x18a)]),console[_0x45dbff(0x165)]('['+_0x252adf['FTKRn'](formatDate,new Date())+']\x20Retry\x20binding\x20for\x20'+_0xbe51c1[_0x45dbff(0x18a)]+_0x45dbff(0x1a4));const _0x93d115={'durable':!![],'arguments':{'x-dead-letter-exchange':_0x305e42,'x-dead-letter-routing-key':_0xbe51c1[_0x45dbff(0x18a)]}};try{const _0x19f7e8=await this['channel']['assertQueue'](_0xbe51c1['queue'],_0x93d115);console['log']('['+formatDate(new Date())+']\x20Queue\x20'+_0xbe51c1[_0x45dbff(0x17a)]+'\x20'+(_0x252adf['lUpxC'](_0x19f7e8[_0x45dbff(0x17a)],_0xbe51c1[_0x45dbff(0x17a)])?_0x252adf[_0x45dbff(0x183)]:'found')+_0x45dbff(0x19d)),await this[_0x45dbff(0x17d)]['bindQueue'](_0xbe51c1['queue'],_0xbe51c1['exchange'],_0xbe51c1['routingKey']),console['log']('['+formatDate(new Date())+']\x20Binding\x20'+_0xbe51c1[_0x45dbff(0x172)]+_0x45dbff(0x16e)+_0xbe51c1[_0x45dbff(0x17a)]+'\x20('+_0xbe51c1['routingKey']+')\x20created');}catch(_0xe976d4){if(_0xe976d4[_0x45dbff(0x184)][_0x45dbff(0x198)](_0x252adf[_0x45dbff(0x19c)])&&_0xe976d4['message'][_0x45dbff(0x198)]('x-dead-letter-routing-key')){console[_0x45dbff(0x174)]('\x0a['+formatDate(new Date())+_0x45dbff(0x182)+_0xbe51c1[_0x45dbff(0x17a)]+'\x20is\x20already\x20in\x20use\x20with\x20a\x20different\x20routing\x20key.'),console[_0x45dbff(0x174)](_0x45dbff(0x193));const _0x30708d=_0xbe51c1[_0x45dbff(0x18a)]+_0x45dbff(0x16b),_0x33a077=await this['channel'][_0x45dbff(0x1a8)](_0x30708d,_0x93d115);console['log']('['+formatDate(new Date())+']\x20Alternative\x20queue\x20'+_0x30708d+'\x20created\x20with\x20DLX'),await this[_0x45dbff(0x17d)][_0x45dbff(0x160)](_0x30708d,_0xbe51c1[_0x45dbff(0x172)],_0xbe51c1['routingKey']),console[_0x45dbff(0x165)]('['+formatDate(new Date())+']\x20Binding\x20'+_0xbe51c1['exchange']+_0x45dbff(0x16e)+_0x30708d+'\x20('+_0xbe51c1['routingKey']+_0x45dbff(0x192)),_0xbe51c1['queue']=_0x30708d;}else{console[_0x45dbff(0x174)]('['+formatDate(new Date())+_0x45dbff(0x1a5)+_0xbe51c1['queue']+':',_0xe976d4[_0x45dbff(0x184)]);throw _0xe976d4;}}return!![];}catch(_0x5e7070){return console['error']('['+formatDate(new Date())+_0x45dbff(0x1aa)+_0x5e7070['message']),![];}}async['sendToQueue'](_0x593095,_0x215d33){const _0x2f8740=a0_0x3c425e,_0x139827={'BnebD':function(_0x5bc860,_0xf3a220){return _0x5bc860(_0xf3a220);},'NQySl':_0x2f8740(0x19e),'wFXXa':function(_0x9084f4,_0xee6175){return _0x9084f4(_0xee6175);}};if(!this['isConnected'])try{await this[_0x2f8740(0x17c)]();}catch(_0x3b51e3){return{'success':![],'message':'Cannot\x20connect\x20to\x20RabbitMQ:\x20'+_0x3b51e3['message'],'data':null};}try{const _0x562680=_0x215d33[_0x2f8740(0x17f)]!==undefined?_0x215d33[_0x2f8740(0x17f)]:![],_0x3c4510=_0x215d33[_0x2f8740(0x187)]||0x3,_0x3bd75a={'rabbitmq':{'exchange':_0x215d33['exchange'],'queue':_0x215d33['queue'],'routing_key':_0x215d33[_0x2f8740(0x18a)],'auto_retry':_0x562680,'max_retries':_0x3c4510},'message':_0x593095};await this[_0x2f8740(0x190)](_0x215d33);const _0x110b5b=new Date(),_0x456d19={'timestamp':_0x110b5b['toISOString'](),'content':JSON['stringify'](_0x3bd75a)},_0xb9e0e6=this['channel']['publish'](_0x215d33['exchange'],_0x215d33[_0x2f8740(0x18a)],Buffer[_0x2f8740(0x18d)](JSON['stringify'](_0x456d19)),{'persistent':!![],'contentType':_0x2f8740(0x18e),'timestamp':_0x110b5b['getTime'](),'messageId':_0x110b5b['getTime']()+'-'+Math[_0x2f8740(0x191)]()[_0x2f8740(0x19a)](0x24)[_0x2f8740(0x16a)](0x7),'headers':{'x-auto-retry':_0x562680,'x-max-retry':_0x3c4510,'x-retry-count':0x0,'x-retry-interval':0x2710}});if(_0xb9e0e6){console['log']('['+_0x139827[_0x2f8740(0x194)](formatDate,_0x110b5b)+']\x20Message\x20sent\x20to\x20RabbitMQ\x20successfully:',{'exchange':_0x215d33['exchange'],'routing_key':_0x215d33[_0x2f8740(0x18a)],'queue':_0x215d33[_0x2f8740(0x17a)],'sendAt':_0x110b5b[_0x2f8740(0x185)]()});const _0x3bba1d=_0x2f8740(0x163)+_0x110b5b[_0x2f8740(0x173)]()+'-'+Math[_0x2f8740(0x191)]()['toString'](0x24)['substring'](0x7);return{'success':!![],'message':_0x2f8740(0x199),'data':{'id':_0x3bba1d,'queueInfo':{'exchange':_0x215d33[_0x2f8740(0x172)],'queue':_0x215d33[_0x2f8740(0x17a)],'routingKey':_0x215d33[_0x2f8740(0x18a)]}}};}else throw new Error(_0x139827[_0x2f8740(0x162)]);}catch(_0x133d87){return console[_0x2f8740(0x174)]('['+_0x139827['wFXXa'](formatDate,new Date())+_0x2f8740(0x169)+_0x133d87[_0x2f8740(0x184)]),{'success':![],'message':'Error:\x20'+_0x133d87['message'],'data':null};}}['registerMessageHandler'](_0x49a88c){const _0x20b0ae=a0_0x3c425e,_0x38d0ee={'ENwtq':function(_0x43ffb9,_0x4763be){return _0x43ffb9===_0x4763be;},'adPSf':function(_0x19c6fc,_0x336d1e){return _0x19c6fc(_0x336d1e);}};_0x38d0ee[_0x20b0ae(0x1a0)](typeof _0x49a88c,'function')?(this['messageHandlers']['push'](_0x49a88c),console['log']('['+formatDate(new Date())+_0x20b0ae(0x1a6))):console['error']('['+_0x38d0ee['adPSf'](formatDate,new Date())+_0x20b0ae(0x176));}async[a0_0x3c425e(0x1a7)](_0x55ea92){const _0x34342c=a0_0x3c425e,_0xa4ee2c={'itZCY':function(_0x2712df,_0x4eee6a){return _0x2712df(_0x4eee6a);}};if(this[_0x34342c(0x1a9)]['length']===0x0)return console['warn']('['+_0xa4ee2c['itZCY'](formatDate,new Date())+_0x34342c(0x197)),!![];try{for(const _0x2b7e7b of this[_0x34342c(0x1a9)]){await _0x2b7e7b(_0x55ea92);}return!![];}catch(_0x2b415a){return console[_0x34342c(0x174)]('['+formatDate(new Date())+_0x34342c(0x1ab)+_0x2b415a[_0x34342c(0x184)]),![];}}async['startConsume'](){const _0x1359ad=a0_0x3c425e,_0x355516={'PLsKa':function(_0xbdb99c,_0x35c8f6){return _0xbdb99c(_0x35c8f6);},'JkZUz':function(_0x25867f,_0x4e25f0){return _0x25867f(_0x4e25f0);},'XKaUs':function(_0x5786df,_0x4e9944){return _0x5786df(_0x4e9944);},'dUjgA':'---'};if(!this[_0x1359ad(0x1a3)])return console[_0x1359ad(0x174)]('['+_0x355516[_0x1359ad(0x178)](formatDate,new Date())+_0x1359ad(0x15b)),![];try{return console[_0x1359ad(0x165)]('['+_0x355516[_0x1359ad(0x178)](formatDate,new Date())+_0x1359ad(0x18b)+this['config'][_0x1359ad(0x17a)]+'\x22...'),this[_0x1359ad(0x17d)]['consume'](this[_0x1359ad(0x16c)]['queue'],async _0x46cf68=>{const _0x4a408b=_0x1359ad;if(_0x46cf68!==null){const _0x499974=new Date();let _0x2a3608;try{_0x2a3608=JSON['parse'](_0x46cf68['content']['toString']());}catch(_0x4a876f){console['error']('['+_0x355516['PLsKa'](formatDate,_0x499974)+_0x4a408b(0x168)+_0x4a876f[_0x4a408b(0x184)]),console[_0x4a408b(0x174)]('Message\x20content:\x20'+_0x46cf68['content']['toString']()),this['channel'][_0x4a408b(0x158)](_0x46cf68);return;}const _0x55b020=_0x46cf68['properties']['timestamp']?new Date(_0x46cf68[_0x4a408b(0x189)]['timestamp']):new Date(),_0x1e9a10=await this[_0x4a408b(0x1a7)](_0x2a3608);_0x1e9a10?(console['log']('['+_0x355516['JkZUz'](formatDate,new Date())+_0x4a408b(0x15a)),this[_0x4a408b(0x17d)]['ack'](_0x46cf68)):(console[_0x4a408b(0x174)]('['+_0x355516[_0x4a408b(0x178)](formatDate,new Date())+_0x4a408b(0x175)),this['channel']['nack'](_0x46cf68,![],!![])),console['log'](_0x355516['dUjgA']);}},{'noAck':![]}),!![];}catch(_0x396a9c){return console[_0x1359ad(0x174)]('['+formatDate(new Date())+']\x20Failed\x20to\x20start\x20consuming:\x20'+_0x396a9c[_0x1359ad(0x184)]),![];}}async[a0_0x3c425e(0x188)](){const _0x3c7525=a0_0x3c425e;this[_0x3c7525(0x15e)]&&(await closeConnection(this['connection']),this['isConnected']=![]);}}let instance=null;function getInstance(){return!instance&&(instance=new RabbitMQService()),instance;}module['exports']={'getInstance':getInstance};
1
+ const a0_0x1aa8c6=a0_0x39df;(function(_0x1f8ade,_0x1e3a63){const _0x54b31d=a0_0x39df,_0x37a881=_0x1f8ade();while(!![]){try{const _0x409793=-parseInt(_0x54b31d(0x1c7))/0x1*(-parseInt(_0x54b31d(0x1ca))/0x2)+-parseInt(_0x54b31d(0x1d3))/0x3*(parseInt(_0x54b31d(0x1c8))/0x4)+parseInt(_0x54b31d(0x198))/0x5+-parseInt(_0x54b31d(0x1ae))/0x6*(-parseInt(_0x54b31d(0x1ac))/0x7)+parseInt(_0x54b31d(0x1d6))/0x8+parseInt(_0x54b31d(0x1a1))/0x9*(-parseInt(_0x54b31d(0x1b4))/0xa)+parseInt(_0x54b31d(0x1dc))/0xb*(parseInt(_0x54b31d(0x1c3))/0xc);if(_0x409793===_0x1e3a63)break;else _0x37a881['push'](_0x37a881['shift']());}catch(_0x1e2bf0){_0x37a881['push'](_0x37a881['shift']());}}}(a0_0xcb54,0x4d718));const {createConnection,createChannel,setupInfrastructure,closeConnection,getConfig}=require('../utils/rabbitmq'),{formatDate}=require(a0_0x1aa8c6(0x1af));function a0_0xcb54(){const _0x48e72a=['Aw5JBhvKzxm','u2P1Eeu','xsbgywLSzwqGDg8GC3rHCNqGy29UC3vTAw5NoIa','ote4nJbMyK9kzva','yxnZzxj0uxvLDwu','C2vUzfrVuxvLDwu','CMvJB25Uzwn0','mtbArwfhr2e','nevcr0HNCG','q2fUBM90ignVBM5Ly3qGDg8GuMfIyML0tve6ia','mZy2mtrprfbpBgO','xsbfCNjVCIbJCMvHDgLUzYbXDwv1zsa','yMLUzff1zxvL','Bg9N','xsblB25LA3nPifjHyMjPDe1rihrLCNb1DhvZ','xsbtDwnJzxnZzNvSBhKGCMvJB25Uzwn0zwqGDg8GuMfIyML0tve','AxndB25Uzwn0zwq','DfjVENK','rgf0ysbZzw50ihrVihf1zxvLihn1y2nLC3nMDwXSEq','mta2ntuXrMPdD0vI','xsbnzxnZywDLigHHBMrSzxiGBxvZDcbIzsbHigz1BMn0Aw9U','quHiD0i','mta0nJeXmMHdEuHuAW','yxv0B19YzxrYEq','ksbJCMvHDgvK','xsbnzxnZywDLihbYB2nLC3nLzcbZDwnJzxnZzNvSBhK','CM91DgLUz0TLEq','D2fYBG','mtfWr1P6suG','y29UzMLN','xsbfEgnOyw5Nzsa','ChjVy2vZC01LC3nHz2u','uKXvDNa','y29UBMvJDgLVBG','m3W3Fdv8nhW2Fdb8mNWX','B1Lnqxe','zLPfALC','DgLTzxn0yw1W','CMvNAxn0zxjnzxnZywDLsgfUzgXLCG','rNzzCxe','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','y2HHBM5LBa','ChvIBgLZAa','mtq5otKYnvv1thH2sq','ALPsuwe','ignYzwf0zwqVCMvHzhK','zxHJAgfUz2u','xsbqCMvMzxrJAcbKAwf0DxiGA2uGmq','y29UDgvUDa','xsbcAw5KAw5Nia','z2v0vgLTzq','zxjYB3i','mtK4Eg96sePO','xsbnzxnZywDLigHHBMrSzxiGCMvNAxn0zxjLza','ignYzwf0zwqGD2L0AcbetfG','BwvZC2fNzuHHBMrSzxjZ','ChjVCgvYDgLLCW','Bhj5v3a','C3rHCNrdB25ZDw1L','Dg9tDhjPBMC','ihDPDgGGreXy','BwL3zwC','C3rYAw5NAwz5','mJCXntnXDLbrthu','xsbgywLSzwqGDg8GCgfYC2uGBwvZC2fNztOG','mJeWBu5Ntvzv','lI4VDxrPBhmVzgf0zuHLBhbLCG','xsbrDwv1zsa','CxvLDwu','BwvZC2fNzq','ChvZAa','mtGZodCWDxDMtMfi','xsbnzxnZywDLihnLBNqGDg8GuMfIyML0tveGC3vJy2vZC2z1BgX5oG','sfD4s0u','shD2sg4','ywnR','Aw5LCxvPDMfSzw50igfYzW','tg5hy1K','zhbcEue','wNP3tuS','Aw5PDgLHBgL6zq','zNvUy3rPB24','CxvLDwuT'];a0_0xcb54=function(){return _0x48e72a;};return a0_0xcb54();}class RabbitMQService{constructor(){const _0x48c5d6=a0_0x1aa8c6,_0x26007f={'CoWfv':function(_0x35303b){return _0x35303b();}};this['connection']=null,this['channel']=null,this['config']=_0x26007f['CoWfv'](getConfig),this[_0x48c5d6(0x1d0)]=![],this['messageHandlers']=[];}async['initialize'](){const _0x359edf=a0_0x1aa8c6,_0x22a1a={'AHHwB':function(_0x5e8610,_0x245218,_0x3c2ef2){return _0x5e8610(_0x245218,_0x3c2ef2);},'SjuxE':_0x359edf(0x1e2),'tRozy':'close'};try{const _0x4e8ad4=_0x22a1a[_0x359edf(0x1c1)]['split']('|');let _0x568e53=0x0;while(!![]){switch(_0x4e8ad4[_0x568e53++]){case'0':this['isConnected']=!![];continue;case'1':return!![];case'2':this[_0x359edf(0x1e1)]['on'](_0x22a1a[_0x359edf(0x1d1)],()=>{const _0x52c002=_0x359edf;console['error']('['+formatDate(new Date())+_0x52c002(0x1ce)),this['isConnected']=![],_0x22a1a[_0x52c002(0x1d5)](setTimeout,()=>this[_0x52c002(0x1c6)](),0x1388);});continue;case'3':this['connection']=await createConnection();continue;case'4':console['log']('['+formatDate(new Date())+_0x359edf(0x19c));continue;case'5':await this[_0x359edf(0x196)]['prefetch'](0x1);continue;case'6':await setupInfrastructure(this[_0x359edf(0x196)]);continue;case'7':this['channel']=await createChannel(this[_0x359edf(0x1e1)]);continue;}break;}}catch(_0x379111){return console['error']('['+formatDate(new Date())+']\x20Failed\x20to\x20initialize\x20RabbitMQ:\x20'+_0x379111[_0x359edf(0x1b2)]),this['isConnected']=![],![];}}async['reconnect'](){const _0x550d8f=a0_0x1aa8c6,_0x5136f6={'udVac':function(_0x22f2f0,_0x4caf97){return _0x22f2f0(_0x4caf97);}};console['log']('['+_0x5136f6['udVac'](formatDate,new Date())+']\x20Attempting\x20to\x20reconnect\x20to\x20RabbitMQ...');try{await this['initialize'](),this[_0x550d8f(0x1d0)]&&(console[_0x550d8f(0x1cd)]('['+formatDate(new Date())+_0x550d8f(0x1cf)),await this[_0x550d8f(0x1a7)]());}catch(_0x2bba75){console[_0x550d8f(0x1a0)]('['+formatDate(new Date())+']\x20Failed\x20to\x20reconnect\x20to\x20RabbitMQ:\x20'+_0x2bba75[_0x550d8f(0x1b2)]),setTimeout(()=>this[_0x550d8f(0x1c6)](),0x1388);}}async['setupCollectorInfrastructure'](_0x5a5626){const _0x29af71=a0_0x1aa8c6,_0x73da02={'nyaIZ':function(_0x4ff463){return _0x4ff463();},'ZzwMK':function(_0x1fd166,_0x43627c){return _0x1fd166(_0x43627c);},'RLUvp':'default','jZRQa':'direct','oYMAq':function(_0x329139,_0x346963){return _0x329139(_0x346963);},'HWxKE':function(_0x6565c9,_0x2a736a){return _0x6565c9===_0x2a736a;},'HwvHn':'created/ready','fEDuI':'x-dead-letter-routing-key','kmVSe':function(_0x297b62,_0x2eec09){return _0x297b62(_0x2eec09);}};try{!this['isConnected']&&(this[_0x29af71(0x1e1)]=await _0x73da02['nyaIZ'](createConnection),this['channel']=await _0x73da02[_0x29af71(0x1bc)](createChannel,this[_0x29af71(0x1e1)]),this['isConnected']=!![]);const _0x1ea48c=process['env'][_0x29af71(0x195)]||_0x73da02[_0x29af71(0x1e0)],_0x22f6af=_0x1ea48c+'-retry-exchange';await this[_0x29af71(0x196)]['assertExchange'](_0x22f6af,_0x73da02[_0x29af71(0x199)],{'durable':!![],'autoDelete':![]}),console['log']('['+formatDate(new Date())+']\x20Retry\x20exchange\x20'+_0x22f6af+'\x20created/ready'),await this[_0x29af71(0x196)]['assertExchange'](_0x5a5626['exchange'],_0x73da02['jZRQa'],{'durable':!![],'autoDelete':![]}),console['log']('['+_0x73da02[_0x29af71(0x1e3)](formatDate,new Date())+_0x29af71(0x1de)+_0x5a5626[_0x29af71(0x19b)]+_0x29af71(0x19a));const _0x10e92e=_0x5a5626[_0x29af71(0x1da)]+'_retry',_0x2f979b={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':_0x5a5626['exchange'],'x-dead-letter-routing-key':_0x5a5626[_0x29af71(0x1da)]}};await this[_0x29af71(0x196)][_0x29af71(0x1c4)](_0x10e92e,_0x2f979b),console[_0x29af71(0x1cd)]('['+formatDate(new Date())+']\x20Retry\x20queue\x20'+_0x10e92e+'\x20created/ready'),await this['channel'][_0x29af71(0x1cc)](_0x10e92e,_0x22f6af,_0x5a5626[_0x29af71(0x1da)]),console[_0x29af71(0x1cd)]('['+_0x73da02['oYMAq'](formatDate,new Date())+']\x20Retry\x20binding\x20for\x20'+_0x5a5626[_0x29af71(0x1da)]+'\x20created');const _0x4e4606={'durable':!![],'arguments':{'x-dead-letter-exchange':_0x22f6af,'x-dead-letter-routing-key':_0x5a5626['routingKey']}};try{const _0x443d6a=await this[_0x29af71(0x196)][_0x29af71(0x1c4)](_0x5a5626['queue'],_0x4e4606);console[_0x29af71(0x1cd)]('['+formatDate(new Date())+_0x29af71(0x1b0)+_0x5a5626[_0x29af71(0x1b1)]+'\x20'+(_0x73da02[_0x29af71(0x1b6)](_0x443d6a[_0x29af71(0x1b1)],_0x5a5626[_0x29af71(0x1b1)])?_0x73da02[_0x29af71(0x1b7)]:'found')+_0x29af71(0x1a9)),await this[_0x29af71(0x196)][_0x29af71(0x1cc)](_0x5a5626[_0x29af71(0x1b1)],_0x5a5626[_0x29af71(0x19b)],_0x5a5626['routingKey']),console['log']('['+_0x73da02[_0x29af71(0x1e3)](formatDate,new Date())+_0x29af71(0x19e)+_0x5a5626['exchange']+'\x20->\x20'+_0x5a5626['queue']+'\x20('+_0x5a5626[_0x29af71(0x1da)]+_0x29af71(0x1d8));}catch(_0x3030ef){if(_0x3030ef[_0x29af71(0x1b2)][_0x29af71(0x1c0)](_0x29af71(0x1b9))&&_0x3030ef['message']['includes'](_0x73da02['fEDuI'])){console[_0x29af71(0x1a0)]('\x0a['+_0x73da02['ZzwMK'](formatDate,new Date())+']\x20ERROR:\x20Queue\x20'+_0x5a5626['queue']+'\x20is\x20already\x20in\x20use\x20with\x20a\x20different\x20routing\x20key.'),console[_0x29af71(0x1a0)]('Trying\x20alternative\x20queue\x20name...');const _0x50366b=_0x5a5626['routingKey']+'_queue',_0x31fb59=await this[_0x29af71(0x196)]['assertQueue'](_0x50366b,_0x4e4606);console[_0x29af71(0x1cd)]('['+_0x73da02['kmVSe'](formatDate,new Date())+']\x20Alternative\x20queue\x20'+_0x50366b+_0x29af71(0x1a3)),await this[_0x29af71(0x196)][_0x29af71(0x1cc)](_0x50366b,_0x5a5626['exchange'],_0x5a5626['routingKey']),console[_0x29af71(0x1cd)]('['+formatDate(new Date())+']\x20Binding\x20'+_0x5a5626['exchange']+'\x20->\x20'+_0x50366b+'\x20('+_0x5a5626[_0x29af71(0x1da)]+_0x29af71(0x1d8)),_0x5a5626['queue']=_0x50366b;}else{console[_0x29af71(0x1a0)]('['+formatDate(new Date())+_0x29af71(0x1cb)+_0x5a5626[_0x29af71(0x1b1)]+':',_0x3030ef['message']);throw _0x3030ef;}}return!![];}catch(_0xa4f71f){return console[_0x29af71(0x1a0)]('['+formatDate(new Date())+']\x20Error\x20saat\x20setup\x20infrastruktur:\x20'+_0xa4f71f['message']),![];}}async[a0_0x1aa8c6(0x1c5)](_0x339302,_0xe57a3a){const _0x1d8c98=a0_0x1aa8c6,_0x5cd8ef={'mOZBF':function(_0x11c5fe,_0x19611d){return _0x11c5fe!==_0x19611d;},'fZEjW':'Failed\x20to\x20send\x20message\x20to\x20RabbitMQ','FvYqq':function(_0x3c46c0,_0x5c0de1){return _0x3c46c0(_0x5c0de1);}};if(!this[_0x1d8c98(0x1d0)])try{await this[_0x1d8c98(0x1bd)]();}catch(_0x87ee48){return{'success':![],'message':_0x1d8c98(0x1c9)+_0x87ee48[_0x1d8c98(0x1b2)],'data':null};}try{const _0x368b75=_0x5cd8ef['mOZBF'](_0xe57a3a['auto_retry'],undefined)?_0xe57a3a[_0x1d8c98(0x1d7)]:![],_0x35f5da=_0xe57a3a['max_retries']||0x3,_0x22e3fe={'rabbitmq':{'exchange':_0xe57a3a['exchange'],'queue':_0xe57a3a[_0x1d8c98(0x1b1)],'routing_key':_0xe57a3a[_0x1d8c98(0x1da)],'auto_retry':_0x368b75,'max_retries':_0x35f5da},'message':_0x339302};await this['setupCollectorInfrastructure'](_0xe57a3a);const _0x3f3b4a=new Date(),_0x46d1e4={'timestamp':_0x3f3b4a['toISOString'](),'content':JSON[_0x1d8c98(0x1ab)](_0x22e3fe)},_0x54aa8d=this['channel'][_0x1d8c98(0x197)](_0xe57a3a['exchange'],_0xe57a3a['routingKey'],Buffer['from'](JSON[_0x1d8c98(0x1ab)](_0x46d1e4)),{'persistent':!![],'contentType':'application/json','timestamp':_0x3f3b4a[_0x1d8c98(0x19f)](),'messageId':_0x3f3b4a['getTime']()+'-'+Math['random']()[_0x1d8c98(0x1a8)](0x24)['substring'](0x7),'headers':{'x-auto-retry':_0x368b75,'x-max-retry':_0x35f5da,'x-retry-count':0x0,'x-retry-interval':0x2710}});if(_0x54aa8d){console['log']('['+formatDate(_0x3f3b4a)+_0x1d8c98(0x1b5),{'exchange':_0xe57a3a[_0x1d8c98(0x19b)],'routing_key':_0xe57a3a[_0x1d8c98(0x1da)],'queue':_0xe57a3a['queue'],'sendAt':_0x3f3b4a['toISOString']()});const _0x2008cd=_0x1d8c98(0x1bf)+_0x3f3b4a['getTime']()+'-'+Math['random']()[_0x1d8c98(0x1a8)](0x24)['substring'](0x7);return{'success':!![],'message':_0x1d8c98(0x1d2),'data':{'id':_0x2008cd,'queueInfo':{'exchange':_0xe57a3a['exchange'],'queue':_0xe57a3a[_0x1d8c98(0x1b1)],'routingKey':_0xe57a3a[_0x1d8c98(0x1da)]}}};}else throw new Error(_0x5cd8ef[_0x1d8c98(0x1e4)]);}catch(_0x3b2828){return console['error']('['+_0x5cd8ef[_0x1d8c98(0x194)](formatDate,new Date())+']\x20Error\x20sending\x20to\x20RabbitMQ:\x20'+_0x3b2828['message']),{'success':![],'message':'Error:\x20'+_0x3b2828['message'],'data':null};}}[a0_0x1aa8c6(0x193)](_0x233c54){const _0x13c34c=a0_0x1aa8c6,_0x14ea69={'BYpeW':function(_0x19a31c,_0x44a24f){return _0x19a31c===_0x44a24f;},'LnGcY':function(_0x443016,_0x349382){return _0x443016(_0x349382);}};_0x14ea69['BYpeW'](typeof _0x233c54,_0x13c34c(0x1be))?(this[_0x13c34c(0x1a4)][_0x13c34c(0x1b3)](_0x233c54),console['log']('['+formatDate(new Date())+_0x13c34c(0x1a2))):console[_0x13c34c(0x1a0)]('['+_0x14ea69[_0x13c34c(0x1ba)](formatDate,new Date())+_0x13c34c(0x1d4));}async['processMessage'](_0x358dd8){const _0x1cde39=a0_0x1aa8c6,_0x5d1537={'dpByA':function(_0x259cfd,_0x3e6698){return _0x259cfd===_0x3e6698;}};if(_0x5d1537[_0x1cde39(0x1bb)](this[_0x1cde39(0x1a4)]['length'],0x0))return console[_0x1cde39(0x1db)]('['+formatDate(new Date())+']\x20No\x20handlers\x20registered\x20to\x20process\x20messages'),!![];try{for(const _0x399320 of this['messageHandlers']){await _0x399320(_0x358dd8);}return!![];}catch(_0x1d17ff){return console['error']('['+formatDate(new Date())+']\x20Error\x20processing\x20message:\x20'+_0x1d17ff[_0x1cde39(0x1b2)]),![];}}async['startConsume'](){const _0x5c462d=a0_0x1aa8c6,_0x49527b={'SwvSe':function(_0x4edc87,_0x3a27cb){return _0x4edc87!==_0x3a27cb;},'PPcjd':function(_0x164a1c,_0x3fbde1){return _0x164a1c(_0x3fbde1);},'lryWp':'---','miweg':function(_0x494dc7,_0x361654){return _0x494dc7(_0x361654);}};if(!this[_0x5c462d(0x1d0)])return console['error']('['+formatDate(new Date())+']\x20Cannot\x20start\x20consuming:\x20not\x20connected\x20to\x20RabbitMQ'),![];try{return console['log']('['+_0x49527b[_0x5c462d(0x1aa)](formatDate,new Date())+']\x20Start\x20consuming\x20messages\x20from\x20queue\x20\x22'+this[_0x5c462d(0x1dd)][_0x5c462d(0x1b1)]+'\x22...'),this[_0x5c462d(0x196)]['consume'](this['config']['queue'],async _0x78d86a=>{const _0x483b22=_0x5c462d;if(_0x49527b['SwvSe'](_0x78d86a,null)){const _0x61011d=new Date();let _0x50396c;try{_0x50396c=JSON['parse'](_0x78d86a[_0x483b22(0x19d)][_0x483b22(0x1a8)]());}catch(_0x49b7a6){console[_0x483b22(0x1a0)]('['+_0x49527b['PPcjd'](formatDate,_0x61011d)+_0x483b22(0x1ad)+_0x49b7a6['message']),console['error']('Message\x20content:\x20'+_0x78d86a[_0x483b22(0x19d)][_0x483b22(0x1a8)]()),this[_0x483b22(0x196)][_0x483b22(0x1b8)](_0x78d86a);return;}const _0x518664=_0x78d86a['properties'][_0x483b22(0x192)]?new Date(_0x78d86a[_0x483b22(0x1a5)][_0x483b22(0x192)]):new Date(),_0x118da9=await this[_0x483b22(0x1df)](_0x50396c);_0x118da9?(console[_0x483b22(0x1cd)]('['+formatDate(new Date())+_0x483b22(0x1d9)),this[_0x483b22(0x196)][_0x483b22(0x1b8)](_0x78d86a)):(console['error']('['+formatDate(new Date())+']\x20Failed\x20to\x20process\x20message,\x20requeuing'),this[_0x483b22(0x196)]['nack'](_0x78d86a,![],!![])),console[_0x483b22(0x1cd)](_0x49527b[_0x483b22(0x1a6)]);}},{'noAck':![]}),!![];}catch(_0x150eda){return console[_0x5c462d(0x1a0)]('['+formatDate(new Date())+_0x5c462d(0x1c2)+_0x150eda[_0x5c462d(0x1b2)]),![];}}async['close'](){const _0x409c68=a0_0x1aa8c6;this[_0x409c68(0x1e1)]&&(await closeConnection(this['connection']),this[_0x409c68(0x1d0)]=![]);}}function a0_0x39df(_0x34cc2f,_0x247120){_0x34cc2f=_0x34cc2f-0x192;const _0xcb5497=a0_0xcb54();let _0x39dfa0=_0xcb5497[_0x34cc2f];if(a0_0x39df['VefQVr']===undefined){var _0x5e0f9e=function(_0x21d6e3){const _0x4fc72f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x594abc='',_0x1d30ae='';for(let _0x232030=0x0,_0x216804,_0x5503ee,_0x539e20=0x0;_0x5503ee=_0x21d6e3['charAt'](_0x539e20++);~_0x5503ee&&(_0x216804=_0x232030%0x4?_0x216804*0x40+_0x5503ee:_0x5503ee,_0x232030++%0x4)?_0x594abc+=String['fromCharCode'](0xff&_0x216804>>(-0x2*_0x232030&0x6)):0x0){_0x5503ee=_0x4fc72f['indexOf'](_0x5503ee);}for(let _0x404abc=0x0,_0x7cdd28=_0x594abc['length'];_0x404abc<_0x7cdd28;_0x404abc++){_0x1d30ae+='%'+('00'+_0x594abc['charCodeAt'](_0x404abc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1d30ae);};a0_0x39df['vwKiYh']=_0x5e0f9e,a0_0x39df['eZJuMu']={},a0_0x39df['VefQVr']=!![];}const _0x219bb4=_0xcb5497[0x0],_0x10acfe=_0x34cc2f+_0x219bb4,_0x1d8f38=a0_0x39df['eZJuMu'][_0x10acfe];return!_0x1d8f38?(_0x39dfa0=a0_0x39df['vwKiYh'](_0x39dfa0),a0_0x39df['eZJuMu'][_0x10acfe]=_0x39dfa0):_0x39dfa0=_0x1d8f38,_0x39dfa0;}let instance=null;function getInstance(){return!instance&&(instance=new RabbitMQService()),instance;}module['exports']={'getInstance':getInstance};
@@ -1 +1 @@
1
- const a0_0x58e1e0=a0_0x2f24;(function(_0x15b625,_0x6e129b){const _0x57f1c9=a0_0x2f24,_0x469244=_0x15b625();while(!![]){try{const _0x15e144=parseInt(_0x57f1c9(0x1d0))/0x1+parseInt(_0x57f1c9(0x172))/0x2+parseInt(_0x57f1c9(0x206))/0x3+parseInt(_0x57f1c9(0x157))/0x4*(-parseInt(_0x57f1c9(0x145))/0x5)+parseInt(_0x57f1c9(0xfd))/0x6*(-parseInt(_0x57f1c9(0x13a))/0x7)+parseInt(_0x57f1c9(0x1d2))/0x8+parseInt(_0x57f1c9(0x15e))/0x9*(parseInt(_0x57f1c9(0x1ed))/0xa);if(_0x15e144===_0x6e129b)break;else _0x469244['push'](_0x469244['shift']());}catch(_0x2b1a7d){_0x469244['push'](_0x469244['shift']());}}}(a0_0x4d65,0x873a4));function a0_0x4d65(){const _0x24050b=['tuHgtNq','C2v0','lI4VlI4VC2vYDMLJzxmVA2fMA2ftzxj2AwnL','Aw5PDgLHBgL6zq','C3bSAxrtCwXtDgf0zw1LBNrZ','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteWSihvWzgf0zwrFyxqGpsbtwvnusu1fu1rbtva','AxnqyxvZzwq','AfPkywO','rMfPBgvKihrVihb1yMXPC2GGsK9cx0nptvbmrvrfrcb0BYblywzRyq','CxH4rKW','tuvsr0uGsu5utYbQB2jFCMvNAxn0CNKGCGOGicaGicaGicaGifvtsu5hicHtruXfq1qGoJeGqvmGAM4GrLjptsbevufmksbZie9oicHYlMPVyL9Uyw1Lid0GCY5QBIKkicaGicaGicaGicbxsevoie1bveniruqGveHftIbvuerbveuGu0vucIaGicaGicaGicaGicbKAxnWBgf5x25HBwuGpsa6mIWGDhLWzsa9idOZlcbZy2HLzhvSzsa9idO0lcbXDwv1zsa9idO1laOGicaGicaGicaGicaGAgfUzgXLCIa9idO2lcbJB25MAwDFzMLSzsa9idO3lcb0Aw1LB3v0id0GoJGSihjLDhj5x21HEca9idO5laOGicaGicaGicaGicaGCMv0CNLFyMfJA29MzIa9idOXmcWGC3rHDhvZid0GoJeXlcbUzxH0x3j1BL9HDca9idOXmIWGDxbKyxrLzf9HDca9ifnzu1rjtuvtvefnuaOGicaGicaGicaGifDiru4GtK9uie1bveniruqGveHftIbjtLnfuLqkicaGicaGicaGicaGicHQB2jFBMfTzsWGzgLZCgXHEv9Uyw1Llcb0ExbLlcbZy2HLzhvSzsWGCxvLDwuSigHHBMrSzxiSignVBMzPz19MAwXLlaOGicaGicaGicaGicaGihrPBwvVDxqSihjLDhj5x21HEcWGCMv0CNLFyMfJA29MzIWGC3rHDhvZlcbUzxH0x3j1BL9HDcWGy3jLyxrLzf9HDcWGDxbKyxrLzf9HDcKkicaGicaGicaGicbwquXvrvmGkdOXlca6mIWGoJmSidO0lca6nsWGoJySidO3lca6ocWGoJKSidOXmcWGoJeXlca6mtiSifnzu1rjtuvtvefnucWGu1LtveLnrvnuqu1qkq','AM9Ix3jLzgLZx2zHAwXLza','zw5ZDxjLvgfIBgvZ','tw9zAM8','tg9HzgvKia','tNvutMG','C3bSAxq','nKDeBNHJta','icHPzdOG','wwv3uMu','D2fYBG','zuDdy3C','A1bAD0m','DxbKyxrLsM9IsgLZDg9YEunVBxbSzxrLza','AM9Ix3bYB2DYzxnZ','C3rHCNrZv2L0Aa','B25kB2jqCM9NCMvZCW','EuHPz1G','uKvesvnFse9tva','ywrK','z2v0tMv4Dfj1BKzYB21cDwXStve','yMXXCLu','CxvLDwu','AM9Ix2rIx3vUyxzHAwXHyMXL','C3rHBgXLza','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa6msWGBgfZDf9KDxjHDgLVBL9TCYa9idOYlaOGicaGicaGicaGia','CgfYC2u','qNvSBe1rifjLzgLZignVBM5Ly3rPB24GDMvYAwzPzwq','v2LxAva','AM9Ix3jLz2LZDgvYx2zHAwXLza','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticGKmsWGjdiSicqZlcaKncWGjduSicDYDw5UAw5NjYWGjdySicq3lcaKocWGtK9xkcKSicq5lcbot1COksK','AM9Ix2HPC3rVCNLFAw5Zzxj0x2vYCM9Y','Cw1WsK4','CMv0CNK','vgTvzvi','AM9Ix2HPC3rVCNLFAw5Zzxj0x2jNx2vYCM9Y','yMfJA29MzG','EgzUque','EMnly3q','C1vArwS','AM9PBG','sK9cx1nuquXmrurFsu5urvjwquW','qNvSBe1rifjLzgLZignVBM5Ly3rPB24GzxjYB3i6ia','A1roDeW','vgLKywSGywrHigPVyIbJB25MAwCGzgL0zw11A2fUigrPihbHEwXVywqVAM9ICY8UiePVyIbnyw5Hz2vYigfRDgLMihrHBNbHignYB24U','ChjVy2vZC2vKt24','wgTZs3O','rfDAD3C','EffhDwK','AgLZDg9YEuLK','AM9Ix2vUC3vYzv90ywjSzxnFzxjYB3i','sM9IigvUC3vYzvrHyMXLCYb3yxjUAw5NoIa','y2XLyxi','yxr0zw1WDa','sK9cx1jfreLtx1bsruzjwa','Duf1Cw0','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsaKmsWGBgfZDf9KDxjHDgLVBL9TCYa9icqYlaOGicaGicaGicaGia','y3jVBG','AM9Ix21HBMfNzxjFC2H1DgrVD25FC3rHCNq','zxHLy3v0zuv2zw50sgfUzgXLCNm','B3jHy2XL','sM9IigrPC3bHDgnOzwqGkgrLBgf5zwqG','sM9Iihn0ywXSzwq6ia','rejFvfLqrq','yvDgEw0','uKvesvnFrei','rMfPBgvKihrVihvWC2vYDcbQB2iGCMvNAxn0CNK6ia','C3rYAw5NAwz5','mJq4ntG4mK1lAMTmDq','uKvesvnFue9sva','D29YA2vYCW','z2v0rgjuExbL','sK9cx0vwru5u','B2zMBgLUzq','yxr0zw1WDhnnywrL','zgvSyxLLza','AM9Ix3n0ywXSzwq','t3jHy2XLiercig1VzhvSzsbUB3qGyxzHAwXHyMXL','D29YA2LUz0rPCG','ntmZmte1nxL4qLLpBq','AM9Ix3f1zxvLC19JCMvHDgvK','v09Muum','DxbKyxrLuMvNAxn0CNLdB3vUDgvYCW','D2fPDgLUzW','lI4VlI4VDxrPBhmVBg9Nz2vY','AM9ICW','sM9Iihn0yxj0zwq6ia','DMfSDwvZ','zgvZy3jPChrPB24','BwfW','sM9IignVBMzPzYbPBNzHBgLKoIa','q211CvK','zxHLy3v0zvf1zxj5','DxbZzxj0sM9IuMvNAxn0CNK','B25bzNrLCKPVyKnVBxbSzxrLigHHBMrSzxiGzxjYB3iGkg5VBI1IBg9JA2LUzYK','mYbcDwXStveGuxvLDwvZignYzwf0zwqGkgHPz2GSigrLzMf1BhqSigXVDYK','B3jHltaWotu1','ng9oAxbdsG','AM9Ix2THzMTHx3b1yMXPC2HFzxjYB3i','zxHWB25LBNrPywW','rxnRuhO','CNvUBMLUzW','lI4VlI4VDxrPBhmVzgi','Aw5PDgLHBgL6zwq','odm3swL1yuHk','sM9Iie1HBMfNzxiGCMvHzhK6ia','C3vJy2vZCW','AM9Ix2nVBMzPz19PBNzHBgLK','B25czwzVCMvkB2jfEgvJDxrL','zgLZCgf0y2G','Ewj2wxK','Aw5MBW','sM9IignHBMnLBgXLzcb2AweGqvbj','D0fetKK','ChjVy2vZC0PVyG','DhLWzq','rvfUCMy','z2v0sM9ICW','zw5HyMXLza','Bwv0ywrHDge','BMfTzq','y2XVC2u','z2v0sgvHBhrOu3rHDhvZ','z2v0rgjvDgLSCW','ndK4mZu0B1bLqKT2','y2f0y2G','CMy6','zgLZCgf0y2HezwXHEwvK','x3nVDxjJzuzPBgu','DgLTzw91Da','z2v0sM9Iq291BNrZ','BxmPlI4U','y3DK','zxjYB3i','zw52','rMfPBgvKihrVihb1yMXPC2GGsK9cx0zbsuXfrcb0BYblywzRyq','ifjLzgLZignVBM5Ly3rPB25Z','BgvUz3rO','uMvKAxmGy29UBMvJDgLVBIbMywLSzwq6ia','zxHLy3v0zvrYyw5Zywn0Aw9U','CKXZB3e','y3j5ChrV','sK9cx1jfvevoveLptL9it1vsuW','zgf0yq','zMfPBgvK','BgLZDfj1BM5PBMC','zxvPr2S','zxjYB3jZ','rMfPBgvKihrVihvWzgf0zsbQB2iGAgLZDg9YEsaOzMfPBgvKktOG','vNDeCeO','Bg93','ihrPzgfRigrPDgvTDwTHBG','AgfUzgXLCNm','shLku2G','AM9Ix2rPC3bHDgnOzwrFzgvSyxLLza','zxHPC3rZu3LUyW','DxrMoa','sK9cx0zbsuXfra','AM9Ix2nVBxbSzxrLza','AM9Ix2HPC3rVCNLFzMfPBgvKx2vYCM9Y','AujLwvy','id0G','zM9ICuu','DxbKyxrLuMvNAxn0CNLtDgf0Dxm','y3jVBL9YzwDPC3rLCMvK','Cu9zrMS','C2XPy2u','zw50CMLLCW','sM9IigrPC3bHDgnOzwq6ia','y3jLyxrLza','z0rRBvy','BwLU','Cgf1C2u','ywn0AxzLsgLZDg9YEuLKCW','sK9cx1nivvret1Dox1rjtuvpvvq','rg9qDfu','C3LZDgvT','z2v0ug9VBa','zgvIDwC','qMfJA2DYB3vUzcbPBNnLCNqGAM9IigHPC3rVCNKGzMfPBgvKoIa','yNHcAuW','q3jVBIbYzwDPC3rLCMvKoIa','B25SAw5L','C3vIC3rYAw5N','BgLTAxq','B25kB2jgywLSzwq','z2v0sM9Iu2nOzwr1BgvYCW','Cgf0Aa','DuroEfa','AgfUzgXLCG','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ie5pvYGPlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GjdeSihbYB2DYzxnZid0GmtaWlcbYzxn1BhrFC3vTBwfYEsa9icqYifDirvjfigLKid0Gjdm','icSGmsWkicaGicaGicaGicbUzxH0x3j1BL9HDca9idOZlcb1CgrHDgvKx2f0id0Gu1LtveLnrvnuqu1qifDirvjfigPVyL9Uyw1Lid0GoJq','AM9Ix2nVBMzPz19WyxjZzv9LCNjVCG','wgHRu0O','DhjPz2DLCMvKqNK','CMv0DxjUDMfSDwu','B25bzNrLCKPVyKnVBxbSzxrL','z2v0sM9Iu3rHDhvZ','shnpDLK','Aw5JBhvKzxm','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNzMfPBgvKjYWGy29TCgXLDgvKx2f0id0Gu1LtveLnrvnuqu1qlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GoJeSihbYB2DYzxnZid0GoJiSigvYCM9Yx21LC3nHz2uGpsa6mYWGzxjYB3jFC3rHy2SGpsa6ncbxsevsrsbPzca9idO1','ywz0zxjFAM9Ix2zHAwXLzf9OB29Rx2vYCM9Y','ignHBMnLBgXLzcaOD2fZigfJDgL2zsK','AM9Ix2rPC3bHDgnOzwq','AM9Iq29UzMLNCW','rMfPBgvKihrVihnLDcbQB2jZig9MzMXPBMu6ia','yxbPlwnHBMnLBa','lI4VlI4VDxrPBhmVzgiTBxLZCwW','zNH5u1u','AM9Ix2rIx3r5CgvFDw5ZDxbWB3j0zwq','AM9Ix3jLz2LZDhj5x2nVDw50zxjFzxjYB3i','iokaLca','DhjPz2DLCLr5Cgu','z2v0uMvKAxndBgLLBNq','C2nOzwr1Bgu','uMrgtuC','C3jJ','y29UBMvJDgLVBNm','ndm4nZuXCxHYyw95','Bg9HzePVyKnVBMzPz3m','ntu5mZe3nLLREw9iyq','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteW','z2v0u3rHDgu','CMvHzezPBgvtEw5J','Bwrwr2C','yNvPBgrdB250zxH0','z21qELe','BuDhy2C','v0jjAhq','ug9ZDgDYzvnrtcbeqIbTB2r1BguGBM90igf2ywLSywjSzq','yxbPlwrLBgf5zwq','Bw92zvrVrMfPBgvK','BwvZC2fNzq','y3jLyxrLqNvSBe1rq29UBMvJDgLVBG','CMvHzgrPCLn5BMm','ihrPzgfRigjPC2eGzgKTy2fUy2vSicHZDgf0ztOG','yxbP','CxvLDwvZ','ywn0AxzL','jYb0AwrHAYbKAwr1A3vUzYb1BNr1AYbQB2iGBw9UAxrVCMLUzYb0ywjSzxm','sM9Iia','ze1gwMG','wxnptMm','ChjVz3jLC3m','z2v0sM9I','ze9qDue','ChfYBgO','mtaZotbNvNfhy1C','zMLSDgvY','z2v0sw5ZDgfUy2u','lI4VlI4VDxrPBhmVy29TCg9Uzw50lwvUz2LUzq','z2v0s2fMA2ftzxj2AwnL','BMv4Da','zhvWBgLJyxrL','zNvUy3rPB24','CMvZDgzVCMDLlMPVyNmUy29TCgXLDgvK','AM9Ix2vUC3vYzv90ywjSzxnFD2fYBG','lMPZB24','zgvMyxvSDa','Aw5Zzxj0uhjVBwLZzq','z2v0q2XPzw50','EhjZvLO','Dw5RBM93BG','B25bzNrLCKPVyKzHAwXLza','z3LRAhe','Dg9mB3DLCKnHC2u','y2HPBgq','ywXS','y29TCg9Uzw50rw5NAw5L','zMfPBgvKuMvHC29U','CMvNAxn0zxjkB2i','AM9ItMfTzq','mtq3ndy0mwjpqxH5yW','CxvPDa','BxLZCwWUC3fS','ktOG','Bwf4qxr0zw1WDhm','zMLUAxnOzwrpBG','AM9IlxnJAgvKDwXLCG','icHHDhrLBxb0ia','rxLTDvO','BMPRCNm','sM9IihrPzgfRigrPDgvTDwTHBJOG','igPVyIbJB25MAwCOCYKGzNjVBsbWyxLSB2fKl2PVyNmV','BxLZCwW','AxnsDw5UAw5N','rejFvfLqrsaN','rMfPBgvKihrVihbHCNnLigPVyIbJB25MAwC6ia','rgf0ywjHC2uGDgLKywSGDgvYC2vKAweSihnRAxaGyxv0BY1JCMvHDguGAM9IihrHyMXLCW'];a0_0x4d65=function(){return _0x24050b;};return a0_0x4d65();}const {Queue,Worker}=require('bullmq'),Redis=require('ioredis'),crypto=require(a0_0x58e1e0(0x183)),{v7:uuidv7}=require('uuid'),fs=require('fs'),path=require(a0_0x58e1e0(0x1b1)),{logger}=require(a0_0x58e1e0(0x14a)),jobValidator=require('./job-validator');let componentEngine=null;function a0_0x2f24(_0x1345a8,_0x401209){_0x1345a8=_0x1345a8-0xec;const _0x4d6559=a0_0x4d65();let _0x2f24f3=_0x4d6559[_0x1345a8];if(a0_0x2f24['foZUhw']===undefined){var _0x35a722=function(_0xc13bec){const _0x4294a1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x448c82='',_0x40a9bb='';for(let _0x37bdac=0x0,_0x52b0c5,_0x3923d1,_0x511cb6=0x0;_0x3923d1=_0xc13bec['charAt'](_0x511cb6++);~_0x3923d1&&(_0x52b0c5=_0x37bdac%0x4?_0x52b0c5*0x40+_0x3923d1:_0x3923d1,_0x37bdac++%0x4)?_0x448c82+=String['fromCharCode'](0xff&_0x52b0c5>>(-0x2*_0x37bdac&0x6)):0x0){_0x3923d1=_0x4294a1['indexOf'](_0x3923d1);}for(let _0x5610e0=0x0,_0x370512=_0x448c82['length'];_0x5610e0<_0x370512;_0x5610e0++){_0x40a9bb+='%'+('00'+_0x448c82['charCodeAt'](_0x5610e0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x40a9bb);};a0_0x2f24['cjbWAw']=_0x35a722,a0_0x2f24['CvZVUo']={},a0_0x2f24['foZUhw']=!![];}const _0x136670=_0x4d6559[0x0],_0x39ec73=_0x1345a8+_0x136670,_0x3af7ad=a0_0x2f24['CvZVUo'][_0x39ec73];return!_0x3af7ad?(_0x2f24f3=a0_0x2f24['cjbWAw'](_0x2f24f3),a0_0x2f24['CvZVUo'][_0x39ec73]=_0x2f24f3):_0x2f24f3=_0x3af7ad,_0x2f24f3;}function getComponentEngine(){const _0x47f663=a0_0x58e1e0,_0x588a56={'fxySU':_0x47f663(0x1f0)};if(!componentEngine)try{const _0x3680eb=require(_0x588a56[_0x47f663(0x1c6)]);componentEngine=_0x3680eb[_0x47f663(0x202)]||_0x3680eb;}catch(_0x57f63d){}return componentEngine;}class JobManager{constructor(){const _0x154828=a0_0x58e1e0;this[_0x154828(0x1e3)]={},this[_0x154828(0x13c)]={},this['jobConfigs']={},this[_0x154828(0x18e)]={},this[_0x154828(0x1cf)]=[],this['initialized']=![],this[_0x154828(0x144)]=process[_0x154828(0x17a)](),this['activeHistoryIds']=new Map();}[a0_0x58e1e0(0x1df)](){const _0x3c3015=a0_0x58e1e0,_0x35d494={'Jsysv':'localhost','CdMWE':function(_0x4aeb8d,_0x48ecd1,_0x2ce9fd){return _0x4aeb8d(_0x48ecd1,_0x2ce9fd);},'NuTNh':_0x3c3015(0x17b)},_0x5459f5=new Redis({'host':process['env'][_0x3c3015(0x108)]||_0x35d494['Jsysv'],'port':parseInt(process[_0x3c3015(0x17c)][_0x3c3015(0x13b)],0xa)||0x18ec,'password':process[_0x3c3015(0x17c)]['REDIS_PASSWORD']||undefined,'db':_0x35d494['CdMWE'](parseInt,process[_0x3c3015(0x17c)][_0x3c3015(0x137)],0xa)||0x0,'maxRetriesPerRequest':null,'retryStrategy'(_0x35ee01){const _0x281846=Math['min'](_0x35ee01*0x32,0x7d0);return _0x281846;}});return _0x5459f5['on'](_0x35d494[_0x3c3015(0xfb)],_0x2798f9=>{const _0x5f1a6f=_0x3c3015;logger[_0x5f1a6f(0x17b)]({'event':'bullmq_redis_error','error':_0x2798f9[_0x5f1a6f(0x1de)]},_0x5f1a6f(0x120)+_0x2798f9[_0x5f1a6f(0x1de)]);}),this[_0x3c3015(0x1cf)]['push'](_0x5459f5),_0x5459f5;}async[a0_0x58e1e0(0xef)](){const _0x11488e=a0_0x58e1e0,_0x2de128={'fHokt':_0x11488e(0x142),'rLsoq':'bullmq_worker_error','DrNKU':_0x11488e(0x128),'wADNI':function(_0x120615,_0x148d09){return _0x120615===_0x148d09;},'vDaXZ':'unknown','hZJaj':_0x11488e(0x1f8),'WOfQC':function(_0x328736,_0x11ca10,_0x4c72f5){return _0x328736(_0x11ca10,_0x4c72f5);},'yHigX':_0x11488e(0x18c),'QASAt':function(_0x36a57b,_0x4e254b,_0x5dcfaf){return _0x36a57b(_0x4e254b,_0x5dcfaf);},'dMFZh':'completed','blqrU':'failed','lsXOx':'job_workers_created','OtaRx':_0x11488e(0x113)};if(this['initialized']){logger['warn']({'event':'job_manager_already_initialized'},'Job\x20Manager\x20sudah\x20diinisialisasi,\x20skip');return;}logger[_0x11488e(0x165)]({'event':'job_manager_init_start'},'Initializing\x20Job\x20Manager...');const _0x28fedf=this['createBullMQConnection']();try{await _0x28fedf['ping'](),logger[_0x11488e(0x165)]({'event':'job_redis_connected'},_0x11488e(0x111));}catch(_0x341a73){logger['error']({'event':_0x11488e(0xf7),'error':_0x341a73[_0x11488e(0x1de)]},_0x11488e(0x180)+_0x341a73['message']+'.\x20Job\x20Scheduler\x20tidak\x20akan\x20aktif.');try{await _0x28fedf['quit']();}catch(_0x7ce456){}this['connections']=this['connections']['filter'](_0x21787a=>_0x21787a!==_0x28fedf);return;}try{await _0x28fedf[_0x11488e(0x207)]();}catch(_0x59e832){}this[_0x11488e(0x1cf)]=this[_0x11488e(0x1cf)][_0x11488e(0x1ee)](_0xb4e684=>_0xb4e684!==_0x28fedf);try{await this[_0x11488e(0xf8)]();}catch(_0x54756c){logger[_0x11488e(0x100)]({'event':_0x2de128['DrNKU'],'error':_0x54756c['message']},'Failed\x20to\x20ensure\x20job\x20tables:\x20'+_0x54756c['message']+'.\x20DB\x20monitoring\x20disabled.');}const _0xe0c1a1=this['loadJobConfigs']();_0x2de128[_0x11488e(0x167)](_0xe0c1a1[_0x11488e(0x17f)],0x0)&&logger['info']({'event':'job_no_configs'},_0x11488e(0x122));const _0x3b9bbc=[];for(const _0x3e2a05 of _0xe0c1a1){const _0x30da59=jobValidator['validateConfig'](_0x3e2a05,this[_0x11488e(0x144)]);_0x30da59['valid']?_0x3b9bbc['push'](_0x3e2a05):logger[_0x11488e(0x17b)]({'event':_0x11488e(0x161),'name':_0x3e2a05[_0x11488e(0x16e)]||_0x2de128['vDaXZ'],'errors':_0x30da59['errors']},_0x11488e(0x150)+(_0x3e2a05['name']||_0x11488e(0x1fc))+_0x11488e(0x1c9)+_0x30da59[_0x11488e(0x189)]['join'](';\x20'));}const _0x7f198e=process['env']['RESTFORGE_PROJECT_NAME']||_0x2de128[_0x11488e(0xf3)],_0x487a71=process[_0x11488e(0x17c)][_0x11488e(0x12c)]||_0x11488e(0x174)+_0x7f198e+':job',_0xb3eb0c=_0x2de128[_0x11488e(0x147)](parseInt,process['env'][_0x11488e(0x184)],0xa)||0x48,_0x58e273=parseInt(process['env']['JOB_FAILED_RETENTION_HOURS'],0xa)||0xa8,_0x28ad16={'removeOnComplete':{'age':_0xb3eb0c*0xe10},'removeOnFail':{'age':_0x58e273*0xe10}},_0x2ad6db={'high-priority':'high','default':_0x11488e(0x1f8),'low-priority':_0x2de128[_0x11488e(0x107)]};for(const [_0x2ffd3f,_0x19e812]of Object[_0x11488e(0x19d)](_0x2ad6db)){this[_0x11488e(0x1e3)][_0x2ffd3f]=new Queue(_0x19e812,{'connection':this[_0x11488e(0x1df)](),'prefix':_0x487a71,'defaultJobOptions':_0x28ad16});}logger['info']({'event':_0x11488e(0x146),'count':0x3},_0x11488e(0x155));const _0x5ed304=_0x2de128['QASAt'](parseInt,process['env']['JOB_CONCURRENCY'],0xa)||0x5,_0x33304d=parseInt(process[_0x11488e(0x17c)][_0x11488e(0x11f)],0xa)||0x7530,_0x2c5217=parseInt(process['env']['JOB_MAX_STALLED_COUNT'],0xa)||0x2;for(const [_0x1bb720,_0x5b98ab]of Object[_0x11488e(0x19d)](_0x2ad6db)){const _0x44cbed=new Worker(_0x5b98ab,async _0x311ab0=>this['processJob'](_0x311ab0),{'connection':this[_0x11488e(0x1df)](),'prefix':_0x487a71,'concurrency':_0x5ed304,'stalledInterval':_0x33304d,'maxStalledCount':_0x2c5217});_0x44cbed['on'](_0x2de128[_0x11488e(0x1e7)],(_0x2d2f76,_0x21cef7)=>this['onJobCompleted'](_0x2d2f76,_0x21cef7)),_0x44cbed['on'](_0x2de128[_0x11488e(0x10b)],(_0x360a5a,_0x29cfee)=>this['onJobFailed'](_0x360a5a,_0x29cfee)),_0x44cbed['on'](_0x11488e(0x1e9),(_0x20121d,_0x360b1c)=>this[_0x11488e(0x106)](_0x20121d,_0x360b1c)),_0x44cbed['on'](_0x11488e(0x10e),_0x38d726=>{const _0x25cbe0=_0x11488e;logger['warn']({'event':_0x2de128['fHokt'],'jobId':_0x38d726},_0x25cbe0(0x134)+_0x38d726);}),_0x44cbed['on'](_0x11488e(0x17b),_0x22b892=>{const _0x491181=_0x11488e;logger[_0x491181(0x17b)]({'event':_0x2de128[_0x491181(0x182)],'queue':_0x1bb720,'error':_0x22b892[_0x491181(0x1de)]},'BullMQ\x20Worker\x20error\x20('+_0x1bb720+_0x491181(0x209)+_0x22b892['message']);}),this[_0x11488e(0x13c)][_0x1bb720]=_0x44cbed;}logger['info']({'event':_0x2de128['lsXOx'],'count':0x3,'concurrency':_0x5ed304},'3\x20BullMQ\x20Workers\x20created\x20(concurrency:\x20'+_0x5ed304+')');let _0x1c4c58=0x0;for(const _0x4f5083 of _0x3b9bbc){try{await this[_0x11488e(0x204)](_0x4f5083),_0x1c4c58++;}catch(_0xfa3689){logger['error']({'event':_0x2de128['OtaRx'],'name':_0x4f5083[_0x11488e(0x16e)],'error':_0xfa3689[_0x11488e(0x1de)]},'Failed\x20to\x20register\x20job:\x20'+_0x4f5083[_0x11488e(0x16e)]+'\x20—\x20'+_0xfa3689[_0x11488e(0x1de)]);}}this[_0x11488e(0x15d)]=!![];const _0x496be0=this['connections']['length'];logger['info']({'event':'job_manager_ready','registeredJobs':_0x1c4c58,'totalConfigs':_0x3b9bbc[_0x11488e(0x17f)],'redisConnections':_0x496be0},_0x11488e(0x15f)+_0x1c4c58+'\x20job(s)\x20registered,\x20'+_0x496be0+_0x11488e(0x17e));}async['shutdown'](){const _0x4bacc4=a0_0x58e1e0,_0x3602ee={'TkUeR':function(_0x45274,_0x2b606a,_0x5f5598){return _0x45274(_0x2b606a,_0x5f5598);},'gceaR':function(_0x2029f8,_0x3c7da4){return _0x2029f8<_0x3c7da4;}};if(!this['initialized'])return;const _0x245ed3=_0x3602ee[_0x4bacc4(0x118)](parseInt,process['env'][_0x4bacc4(0x1a4)],0xa)||0x2710;logger[_0x4bacc4(0x165)]({'event':_0x4bacc4(0x130),'timeoutMs':_0x245ed3},'Job\x20Manager\x20shutting\x20down\x20(timeout:\x20'+_0x245ed3+_0x4bacc4(0x179));const _0x32cfef=Object['values'](this['workers'])[_0x4bacc4(0x14f)](async _0x3e5282=>{const _0x4f076e=_0x4bacc4;try{await _0x3e5282[_0x4f076e(0x1a2)]();}catch(_0x350ddd){}});await Promise['all'](_0x32cfef);const _0x423d6b=Date['now']();while(_0x3602ee['gceaR'](Date['now']()-_0x423d6b,_0x245ed3)){let _0x2356d=0x0;for(const _0x2cac68 of Object[_0x4bacc4(0x14d)](this[_0x4bacc4(0x1e3)])){try{const _0x3751fe=await _0x2cac68[_0x4bacc4(0x178)]('active');_0x2356d+=_0x3751fe[_0x4bacc4(0x1e4)]||0x0;}catch(_0x679165){}}if(_0x2356d===0x0)break;await new Promise(_0x4803f5=>setTimeout(_0x4803f5,0x1f4));}const _0x1229ee=Object[_0x4bacc4(0x14d)](this['workers'])['map'](async _0x95e4a8=>{try{await _0x95e4a8['close']();}catch(_0x17347f){}});await Promise[_0x4bacc4(0x201)](_0x1229ee);const _0x3fbd29=Object[_0x4bacc4(0x14d)](this[_0x4bacc4(0x1e3)])['map'](async _0x2e56f2=>{const _0x26e9d3=_0x4bacc4;try{await _0x2e56f2[_0x26e9d3(0x16f)]();}catch(_0xca4a87){}});await Promise[_0x4bacc4(0x201)](_0x3fbd29);for(const _0x5ecd36 of this[_0x4bacc4(0x1cf)]){try{await _0x5ecd36['quit']();}catch(_0x571fd8){}}this['queues']={},this['workers']={},this['connections']=[],await this['setAllJobsOffline'](),this['activeHistoryIds'][_0x4bacc4(0x12a)](),this['initialized']=![],logger[_0x4bacc4(0x165)]({'event':'job_manager_shutdown_complete'},'Job\x20Manager\x20shutdown\x20complete');}[a0_0x58e1e0(0x1d1)](){const _0x153322=a0_0x58e1e0,_0x4d1fbb={'XksKz':'utf8'},_0x468942=path['join'](this['workingDir'],'payload',_0x153322(0x14b));if(!fs[_0x153322(0x191)](_0x468942))return logger[_0x153322(0x165)]({'event':'job_config_dir_missing','path':_0x468942},'Folder\x20payload/jobs/\x20tidak\x20ditemukan'),[];const _0x2f0cd7=fs[_0x153322(0x1e0)](_0x468942)[_0x153322(0x1ee)](_0x41c556=>_0x41c556['endsWith'](_0x153322(0x1f7))),_0x3c27a9=[];for(const _0x12121d of _0x2f0cd7){const _0x4384b6=path[_0x153322(0x11e)](_0x468942,_0x12121d);try{const _0x1464bd=fs[_0x153322(0x1d5)](_0x4384b6,_0x4d1fbb[_0x153322(0x124)]),_0x507fb1=JSON[_0x153322(0x110)](_0x1464bd);_0x507fb1[_0x153322(0x176)]=_0x12121d,_0x3c27a9['push'](_0x507fb1);}catch(_0x4ab484){logger[_0x153322(0x17b)]({'event':_0x153322(0x1b6),'file':_0x12121d,'error':_0x4ab484[_0x153322(0x1de)]},_0x153322(0x215)+_0x12121d+'\x20—\x20'+_0x4ab484['message']);}}return logger['info']({'event':'job_configs_loaded','count':_0x3c27a9['length']},_0x153322(0xfa)+_0x3c27a9['length']+_0x153322(0x211)),_0x3c27a9;}async[a0_0x58e1e0(0x204)](_0x287250){const _0x5439b6=a0_0x58e1e0,_0x5bf082={'uAuqm':_0x5439b6(0x1ce),'xfnAA':_0x5439b6(0x14b),'eoqJS':function(_0x3b3870,_0x5792f5){return _0x3b3870===_0x5792f5;},'SmStY':_0x5439b6(0x12f),'IJkNu':function(_0x47bb4e,_0x5215f3){return _0x47bb4e!==_0x5215f3;},'pmILL':'default','lqGJd':_0x5439b6(0x13f),'bTiyn':function(_0x53b335,_0x24aa75){return _0x53b335===_0x24aa75;}},_0x805c3f=path['join'](this[_0x5439b6(0x144)],_0x5bf082[_0x5439b6(0x12d)],_0x5bf082[_0x5439b6(0x11b)],_0x287250['handler']+'.js');this[_0x5439b6(0x18e)][_0x287250['name']]=require(_0x805c3f),this[_0x5439b6(0x1c2)][_0x287250['name']]=_0x287250;if(_0x5bf082['eoqJS'](_0x287250['type'],_0x5bf082['SmStY'])&&_0x5bf082['IJkNu'](_0x287250[_0x5439b6(0x16c)],![])){const _0x1c8300=this[_0x5439b6(0x1e3)][_0x287250[_0x5439b6(0x10c)]||_0x5bf082['pmILL']];await _0x1c8300['upsertJobScheduler'](_0x287250['name'],{'pattern':_0x287250[_0x5439b6(0x1cc)],'tz':_0x287250['timezone']||undefined},{'name':_0x287250[_0x5439b6(0x16e)],'data':{'handler':_0x287250[_0x5439b6(0x1b3)],'triggeredBy':_0x5bf082['SmStY'],'metadata':_0x287250[_0x5439b6(0x16d)]||{}},'opts':{'attempts':_0x287250[_0x5439b6(0x117)]?.[_0x5439b6(0x20a)]||0x3,'backoff':{'type':_0x287250[_0x5439b6(0x117)]?.['backoff']||'exponential','delay':_0x287250[_0x5439b6(0x117)]?.['initialDelay']||0x1388},'timeout':_0x287250[_0x5439b6(0x177)]||0x7530}}),logger['info']({'event':_0x5439b6(0x19a),'name':_0x287250[_0x5439b6(0x16e)],'schedule':_0x287250['schedule'],'queue':_0x287250['queue']||_0x5439b6(0x1f8)},_0x5439b6(0x1ab)+_0x287250[_0x5439b6(0x16e)]+'\x20['+_0x287250['schedule']+']');}const _0x307c95=_0x287250['type']==='cron'&&_0x287250[_0x5439b6(0x16c)]!==![]?'online':_0x5bf082['lqGJd'];let _0x15bcd4=null;_0x5bf082['bTiyn'](_0x307c95,_0x5439b6(0x1ac))&&(_0x15bcd4=await this[_0x5439b6(0x10a)](_0x287250[_0x5439b6(0x16e)])),await this['upsertJobRegistry'](_0x287250,_0x307c95,_0x15bcd4);}async[a0_0x58e1e0(0x168)](_0x55453c){const _0x1e241d=a0_0x58e1e0,_0x5f1df4={'gDkmV':'job_started','EymuZ':function(_0x45dc3c,_0x11a22f){return _0x45dc3c+_0x11a22f;},'HsOvY':function(_0x38c654){return _0x38c654();},'mGGcg':function(_0x40a1fd,_0x2d360a){return _0x40a1fd===_0x2d360a;},'xRAzm':'api','kKbKD':'manual','RhaSj':'default','RcKuj':_0x1e241d(0x1f4),'ALXUn':function(_0x549baf,_0x1314bf){return _0x549baf(_0x1314bf);}},_0x3247ca=this['jobConfigs'][_0x55453c[_0x1e241d(0x16e)]],_0x4ed470=this[_0x1e241d(0x18e)][_0x55453c[_0x1e241d(0x16e)]];if(!_0x4ed470)throw new Error('Handler\x20tidak\x20ditemukan\x20untuk\x20job:\x20'+_0x55453c[_0x1e241d(0x16e)]);const _0x452776=logger['child']({'jobId':_0x55453c['id'],'jobName':_0x55453c[_0x1e241d(0x16e)]});_0x452776[_0x1e241d(0x165)]({'event':_0x5f1df4[_0x1e241d(0x1a0)],'attempt':_0x55453c['attemptsMade']+0x1,'triggeredBy':_0x55453c[_0x1e241d(0x185)]?.['triggeredBy']||'unknown'},_0x1e241d(0x14c)+_0x55453c['name']+_0x1e241d(0x20d)+_0x5f1df4['EymuZ'](_0x55453c[_0x1e241d(0x140)],0x1)+')');const _0x5e64d4=_0x5f1df4['HsOvY'](uuidv7),_0x4dbf0e=_0x55453c[_0x1e241d(0x185)]?.[_0x1e241d(0x1b8)]||_0x1e241d(0x1fc),_0x2f0246=this['insertJobHistory']({'id':_0x5e64d4,'jobName':_0x55453c['name'],'bullmqJobId':_0x55453c['id'],'triggerType':_0x5f1df4[_0x1e241d(0x1d9)](_0x4dbf0e,_0x1e241d(0x1dc))?_0x1e241d(0x141):_0x4dbf0e===_0x5f1df4['xRAzm']?_0x5f1df4['kKbKD']:'cron','triggeredBy':_0x4dbf0e===_0x1e241d(0x12f)?'system':_0x4dbf0e,'queue':_0x3247ca?.['queue']||_0x5f1df4['RhaSj'],'attempt':_0x5f1df4[_0x1e241d(0x20e)](_0x55453c['attemptsMade'],0x1),'configFile':_0x3247ca?.['_sourceFile']||null})[_0x1e241d(0x173)](_0x4f102a=>{const _0x1b20b3=_0x1e241d;_0x452776[_0x1b20b3(0x100)]({'event':_0x1b20b3(0x119),'error':_0x4f102a['message']},_0x1b20b3(0x1a9)+_0x4f102a['message']);});this['activeHistoryIds'][_0x1e241d(0xed)](_0x55453c['id'],{'historyId':_0x5e64d4,'insertPromise':_0x2f0246});const _0x11eaaa=this[_0x1e241d(0x1d7)](_0x55453c,_0x3247ca,_0x452776),_0x2406e8=_0x5f1df4[_0x1e241d(0x1bc)](getComponentEngine);if(_0x2406e8&&_0x5f1df4[_0x1e241d(0x1d9)](typeof _0x2406e8['executeEventHandlers'],_0x5f1df4['RcKuj'])){const _0x4bcb09=await _0x2406e8['executeEventHandlers'](_0x1e241d(0x162),_0x11eaaa,!![]);if(!_0x4bcb09['success'])throw new Error('Job\x20cancelled\x20by\x20onBeforeJobExecute:\x20'+_0x4bcb09['error']);}const _0x4a61af=await _0x5f1df4['ALXUn'](_0x4ed470,_0x11eaaa);return _0x452776['info']({'event':'job_handler_done','result':_0x4a61af},'Job\x20handler\x20completed:\x20'+_0x55453c[_0x1e241d(0x16e)]),_0x4a61af;}[a0_0x58e1e0(0x1d7)](_0x40fded,_0x41685e,_0x3f14d6){const _0x25b239=a0_0x58e1e0,_0x596e3b={'iBeYV':_0x25b239(0x13e),'RdFMG':function(_0x248c33,_0x47123c){return _0x248c33||_0x47123c;}};return{'jobId':_0x40fded['id'],'jobName':_0x40fded[_0x25b239(0x16e)],'attempt':_0x40fded[_0x25b239(0x140)]+0x1,'maxAttempts':_0x41685e?.['retry']?.[_0x25b239(0x20a)]||0x3,'payload':_0x40fded['data']||{},'config':_0x596e3b[_0x25b239(0x1cd)](_0x41685e,{}),'db':this['getDbUtils'](),'redis':this[_0x25b239(0x1cb)](),'logger':_0x3f14d6,'kafka':this['getKafkaService'](),'cache':this['getCacheManager'](),'updateProgress':async _0x3e8535=>{await _0x40fded['updateProgress'](_0x3e8535);},'emit':async(_0x5754a1,_0x162831)=>{const _0x537d8c=_0x25b239,_0x1c70ff=this['getKafkaService']();_0x1c70ff&&await _0x1c70ff['publishEvent'](_0x5754a1,_0x596e3b[_0x537d8c(0x196)],null,_0x162831,{'module':_0x537d8c(0x20c),'endpoint':_0x40fded['name']});},'job':_0x40fded};}[a0_0x58e1e0(0x13d)](){const _0x5034c=a0_0x58e1e0;return(process['env'][_0x5034c(0x135)]||'postgresql')[_0x5034c(0x1ff)]();}async['ensureTables'](){const _0x98c527=a0_0x58e1e0,_0x1001ae={'lTilZ':_0x98c527(0x10d),'GuiFq':_0x98c527(0x216),'TAPMT':'postgresql.sql','WBIht':'sql-scripts','YewRe':'job_sql_not_found','ZEVit':_0x98c527(0x192),'dlcBw':_0x98c527(0x156),'uDNxP':_0x98c527(0x1f6)},_0x1d5535=this['getDbUtils']();if(!_0x1d5535){logger['warn']({'event':_0x1001ae['lTilZ']},_0x1001ae['GuiFq']);return;}const _0x3b0afa=this[_0x98c527(0x13d)](),_0x373bc4={'postgresql':_0x1001ae['TAPMT'],'oracle':'oracle.sql','mysql':_0x98c527(0x208)},_0x20a512=_0x373bc4[_0x3b0afa];if(!_0x20a512){logger[_0x98c527(0x100)]({'event':_0x98c527(0x1c7),'dbType':_0x3b0afa},_0x98c527(0x214)+_0x3b0afa+_0x98c527(0x1e5));return;}const _0x54b3b0=path['join'](__dirname,_0x1001ae[_0x98c527(0x1da)],_0x20a512);if(!fs['existsSync'](_0x54b3b0)){logger[_0x98c527(0x100)]({'event':_0x1001ae[_0x98c527(0xff)],'path':_0x54b3b0},'SQL\x20script\x20tidak\x20ditemukan:\x20'+_0x54b3b0);return;}const _0x5f55ce=fs[_0x98c527(0x1d5)](_0x54b3b0,_0x1001ae['ZEVit']),_0x482955=this[_0x98c527(0xf0)](_0x5f55ce,_0x3b0afa);let _0x3d60f6=0x0;for(const _0x104526 of _0x482955){try{await _0x1d5535['executeQuery'](_0x104526),_0x3d60f6++;}catch(_0x8bcbbf){const _0x1406a6=(_0x8bcbbf['message']||'')[_0x98c527(0x1ff)](),_0x22aaf5=_0x1406a6['includes']('already\x20exists')||_0x1406a6['includes'](_0x1001ae['dlcBw'])||_0x1406a6[_0x98c527(0x1bd)](_0x98c527(0x1f3));!_0x22aaf5&&logger['warn']({'event':_0x1001ae[_0x98c527(0x1b2)],'error':_0x8bcbbf[_0x98c527(0x1de)]},_0x98c527(0x129)+_0x8bcbbf['message']);}}logger['info']({'event':'job_tables_ensured','dbType':_0x3b0afa,'executed':_0x3d60f6},'Job\x20monitoring\x20tables\x20ensured\x20('+_0x3b0afa+')');}['splitSqlStatements'](_0x545db4,_0x428d66){const _0x4dc2c1=a0_0x58e1e0,_0x1597fd={'EQnrf':_0x4dc2c1(0x132)};let _0x3e0855;return _0x428d66===_0x1597fd[_0x4dc2c1(0x16a)]?_0x3e0855=_0x545db4['split'](/\n\/\s*(?:\n|$)/):_0x3e0855=_0x545db4[_0x4dc2c1(0xfc)](/;\s*(?:\n|$)/),_0x3e0855[_0x4dc2c1(0x14f)](_0x29da83=>_0x29da83['trim']())[_0x4dc2c1(0x1ee)](_0x5e4175=>{const _0x5b8fa4=_0x4dc2c1;if(_0x5e4175['length']===0x0)return![];const _0x1a86b9=_0x5e4175[_0x5b8fa4(0xfc)]('\x0a')['filter'](_0x1e2453=>!_0x1e2453['trim']()[_0x5b8fa4(0x105)]('--')&&_0x1e2453['trim']()[_0x5b8fa4(0x17f)]>0x0);return _0x1a86b9['length']>0x0;});}async[a0_0x58e1e0(0x153)](_0x148291,_0x37b0b2=a0_0x58e1e0(0x1ac),_0x331540=null){const _0x259e16=a0_0x58e1e0,_0x259f2c={'OeIbd':'cron','qmpJN':_0x259e16(0x1f8),'JOyuv':_0x259e16(0x159),'pqrlj':function(_0x4cc445,_0x54ab2e){return _0x4cc445===_0x54ab2e;},'FXTqq':_0x259e16(0x212)},_0x2e5ceb=this['getDbUtils']();if(!_0x2e5ceb)return;const _0x1a7754=this[_0x259e16(0x13d)](),_0x1754db=[_0x148291['name'],_0x148291[_0x259e16(0x14e)]||_0x148291[_0x259e16(0x16e)],_0x148291['type']||_0x259f2c['OeIbd'],_0x148291['schedule']||null,_0x148291['queue']||_0x259f2c[_0x259e16(0x116)],_0x148291['handler'],_0x148291['_sourceFile']||'',_0x148291['timeout']||0x7530,_0x148291[_0x259e16(0x117)]?.[_0x259e16(0x20a)]||0x3,_0x148291['retry']?.[_0x259e16(0x11a)]||_0x259f2c['JOyuv'],_0x37b0b2,_0x331540];try{if(_0x259f2c[_0x259e16(0x1ec)](_0x1a7754,_0x259e16(0x132)))await _0x2e5ceb[_0x259e16(0x152)](_0x259e16(0xf6),_0x1754db);else _0x259f2c['pqrlj'](_0x1a7754,_0x259f2c['FXTqq'])?await _0x2e5ceb[_0x259e16(0x152)]('INSERT\x20INTO\x20job_registry\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(job_name,\x20display_name,\x20type,\x20schedule,\x20queue,\x20handler,\x20config_file,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20timeout,\x20retry_max,\x20retry_backoff,\x20status,\x20next_run_at,\x20created_at,\x20updated_at)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20NOW(),\x20NOW())\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20DUPLICATE\x20KEY\x20UPDATE\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display_name\x20=\x20VALUES(display_name),\x20type\x20=\x20VALUES(type),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20schedule\x20=\x20VALUES(schedule),\x20queue\x20=\x20VALUES(queue),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20handler\x20=\x20VALUES(handler),\x20config_file\x20=\x20VALUES(config_file),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20timeout\x20=\x20VALUES(timeout),\x20retry_max\x20=\x20VALUES(retry_max),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20retry_backoff\x20=\x20VALUES(retry_backoff),\x20status\x20=\x20VALUES(status),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20next_run_at\x20=\x20VALUES(next_run_at)',_0x1754db):await _0x2e5ceb['executeQuery']('INSERT\x20INTO\x20job_registry\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(job_name,\x20display_name,\x20type,\x20schedule,\x20queue,\x20handler,\x20config_file,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20timeout,\x20retry_max,\x20retry_backoff,\x20status,\x20next_run_at,\x20created_at,\x20updated_at)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$5,\x20$6,\x20$7,\x20$8,\x20$9,\x20$10,\x20$11,\x20$12,\x20NOW(),\x20NOW())\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20CONFLICT\x20(job_name)\x20DO\x20UPDATE\x20SET\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display_name\x20=\x20EXCLUDED.display_name,\x20type\x20=\x20EXCLUDED.type,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20schedule\x20=\x20EXCLUDED.schedule,\x20queue\x20=\x20EXCLUDED.queue,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20handler\x20=\x20EXCLUDED.handler,\x20config_file\x20=\x20EXCLUDED.config_file,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20timeout\x20=\x20EXCLUDED.timeout,\x20retry_max\x20=\x20EXCLUDED.retry_max,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20retry_backoff\x20=\x20EXCLUDED.retry_backoff,\x20status\x20=\x20EXCLUDED.status,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20next_run_at\x20=\x20EXCLUDED.next_run_at,\x20updated_at\x20=\x20NOW()',_0x1754db);}catch(_0x2bb82a){logger['warn']({'event':'job_registry_upsert_error','name':_0x148291['name'],'error':_0x2bb82a[_0x259e16(0x1de)]},_0x259e16(0x138)+_0x148291['name']+_0x259e16(0x1c9)+_0x2bb82a['message']);}}async['insertJobHistory'](_0x5637dc){const _0x83e997=a0_0x58e1e0,_0x5b630b={'VAkyX':_0x83e997(0x12f),'DoPtU':_0x83e997(0x1a6),'nTAhQ':'oracle','yOeNt':'mysql','lZPCL':_0x83e997(0x115)},_0x1f4075=this[_0x83e997(0x171)]();if(!_0x1f4075)return;const _0x3062b0=this['getDbType'](),_0x23a98a=[_0x5637dc['id'],_0x5637dc[_0x83e997(0x205)],_0x5637dc['bullmqJobId']||null,_0x5637dc[_0x83e997(0x1ca)]||_0x5b630b['VAkyX'],_0x5637dc[_0x83e997(0x1b8)]||_0x5b630b[_0x83e997(0x1a5)],_0x5637dc[_0x83e997(0x10c)]||'default',_0x5637dc[_0x83e997(0x12b)]||0x1,_0x5637dc['configFile']||null,process['pid']];try{if(_0x3062b0===_0x5b630b['nTAhQ'])await _0x1f4075[_0x83e997(0x152)]('INSERT\x20INTO\x20job_history\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(id,\x20job_name,\x20bullmq_job_id,\x20trigger_type,\x20triggered_by,\x20status,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20queue,\x20attempt,\x20config_file,\x20started_at,\x20worker_pid,\x20created_at)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(:1,\x20:2,\x20:3,\x20:4,\x20:5,\x20\x27running\x27,\x20:6,\x20:7,\x20:8,\x20SYSTIMESTAMP,\x20:9,\x20SYSTIMESTAMP)',_0x23a98a);else _0x3062b0===_0x5b630b['yOeNt']?await _0x1f4075[_0x83e997(0x152)]('INSERT\x20INTO\x20job_history\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(id,\x20job_name,\x20bullmq_job_id,\x20trigger_type,\x20triggered_by,\x20status,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20queue,\x20attempt,\x20config_file,\x20started_at,\x20worker_pid,\x20created_at)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20\x27running\x27,\x20?,\x20?,\x20?,\x20NOW(),\x20?,\x20NOW())',_0x23a98a):await _0x1f4075['executeQuery'](_0x83e997(0x114),_0x23a98a);await this[_0x83e997(0x199)](_0x5637dc['jobName'],_0x83e997(0x15b));}catch(_0xf88073){logger['warn']({'event':_0x5b630b['lZPCL'],'jobName':_0x5637dc['jobName'],'error':_0xf88073['message']},'Failed\x20to\x20insert\x20job\x20history:\x20'+_0xf88073['message']);}}async[a0_0x58e1e0(0x103)](_0x3d10d4,_0x4b1f46,_0x611ea3){const _0x352299=a0_0x58e1e0,_0x202835={'qxxFL':function(_0x2dc123,_0x354e81){return _0x2dc123(_0x354e81);},'FTIND':function(_0x5bc9bb,_0x2240ed){return _0x5bc9bb===_0x2240ed;},'bxBiL':'oracle','JHxBi':function(_0x3356c1,_0x4cae68){return _0x3356c1===_0x4cae68;},'xQGui':_0x352299(0x212)},_0x272c21=this['getDbUtils']();if(!_0x272c21)return;const _0x155560=this[_0x352299(0x13d)](),_0x307392=_0x611ea3?_0x202835[_0x352299(0xf5)](String,_0x611ea3)[_0x352299(0x1ad)](0x0,0x1f4):null;try{if(_0x202835['FTIND'](_0x155560,_0x202835[_0x352299(0x1aa)]))await _0x272c21[_0x352299(0x152)]('UPDATE\x20job_history\x20SET\x20status\x20=\x20\x27success\x27,\x20completed_at\x20=\x20SYSTIMESTAMP,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20duration_ms\x20=\x20:1,\x20progress\x20=\x20100,\x20result_summary\x20=\x20:2\x20WHERE\x20id\x20=\x20:3',[_0x4b1f46,_0x307392,_0x3d10d4]);else _0x202835['JHxBi'](_0x155560,_0x202835[_0x352299(0x126)])?await _0x272c21['executeQuery']('UPDATE\x20job_history\x20SET\x20status\x20=\x20\x27success\x27,\x20completed_at\x20=\x20NOW(),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20duration_ms\x20=\x20?,\x20progress\x20=\x20100,\x20result_summary\x20=\x20?\x20WHERE\x20id\x20=\x20?',[_0x4b1f46,_0x307392,_0x3d10d4]):await _0x272c21[_0x352299(0x152)](_0x352299(0x1b4),[_0x4b1f46,_0x307392,_0x3d10d4]);}catch(_0x58fc9d){logger[_0x352299(0x100)]({'event':'job_history_complete_error','historyId':_0x3d10d4,'error':_0x58fc9d[_0x352299(0x1de)]},'Failed\x20to\x20update\x20job\x20history\x20(completed):\x20'+_0x58fc9d['message']);}}async['updateJobHistoryFailed'](_0x1e38cb,_0xe819a,_0x2fef2e,_0x33c3dd,_0x2db427){const _0x59fca3=a0_0x58e1e0,_0x11c2fb={'kTNtL':function(_0x39868d,_0x5aa000){return _0x39868d(_0x5aa000);},'FUwTb':function(_0x94e78,_0x1e0d94){return _0x94e78===_0x1e0d94;},'eLLkp':_0x59fca3(0x132),'XhkSJ':function(_0x27652e,_0xaf8090){return _0x27652e||_0xaf8090;},'qOYFk':_0x59fca3(0x212)},_0x327c6f=this['getDbUtils']();if(!_0x327c6f)return;const _0x113440=this[_0x59fca3(0x13d)](),_0x416d17=_0x33c3dd?String(_0x33c3dd)[_0x59fca3(0x1ad)](0x0,0x3e8):null,_0x4234cb=_0x2db427?_0x11c2fb[_0x59fca3(0x121)](String,_0x2db427)[_0x59fca3(0x1ad)](0x0,0xfa0):null;try{if(_0x11c2fb['FUwTb'](_0x113440,_0x11c2fb['eLLkp']))await _0x327c6f[_0x59fca3(0x152)](_0x59fca3(0x1be),[_0xe819a,_0x11c2fb[_0x59fca3(0x1b7)](_0x2fef2e,0x0),_0x416d17,_0x4234cb,_0x1e38cb]);else _0x113440===_0x11c2fb[_0x59fca3(0x19b)]?await _0x327c6f['executeQuery']('UPDATE\x20job_history\x20SET\x20status\x20=\x20\x27failed\x27,\x20completed_at\x20=\x20NOW(),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20duration_ms\x20=\x20?,\x20progress\x20=\x20?,\x20error_message\x20=\x20?,\x20error_stack\x20=\x20?\x20WHERE\x20id\x20=\x20?',[_0xe819a,_0x11c2fb[_0x59fca3(0x1b7)](_0x2fef2e,0x0),_0x416d17,_0x4234cb,_0x1e38cb]):await _0x327c6f['executeQuery']('UPDATE\x20job_history\x20SET\x20status\x20=\x20\x27failed\x27,\x20completed_at\x20=\x20NOW(),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20duration_ms\x20=\x20$1,\x20progress\x20=\x20$2,\x20error_message\x20=\x20$3,\x20error_stack\x20=\x20$4\x20WHERE\x20id\x20=\x20$5',[_0xe819a,_0x11c2fb[_0x59fca3(0x1b7)](_0x2fef2e,0x0),_0x416d17,_0x4234cb,_0x1e38cb]);}catch(_0x13e135){logger['warn']({'event':_0x59fca3(0x195),'historyId':_0x1e38cb,'error':_0x13e135['message']},_0x59fca3(0x18a)+_0x13e135['message']);}}async['updateRegistryStatus'](_0x2255b7,_0x5cb196){const _0x1f382c=a0_0x58e1e0,_0x1ef897={'sKghQ':_0x1f382c(0x132),'fAHvt':'mysql'},_0x23a36d=this['getDbUtils']();if(!_0x23a36d)return;const _0x141aa5=this[_0x1f382c(0x13d)]();try{if(_0x141aa5===_0x1ef897['sKghQ'])await _0x23a36d[_0x1f382c(0x152)]('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20:1,\x20last_run_at\x20=\x20SYSTIMESTAMP,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updated_at\x20=\x20SYSTIMESTAMP\x20WHERE\x20job_name\x20=\x20:2',[_0x5cb196,_0x2255b7]);else _0x141aa5===_0x1ef897['fAHvt']?await _0x23a36d['executeQuery']('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20?,\x20last_run_at\x20=\x20NOW()\x20WHERE\x20job_name\x20=\x20?',[_0x5cb196,_0x2255b7]):await _0x23a36d[_0x1f382c(0x152)]('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20$1,\x20last_run_at\x20=\x20NOW(),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updated_at\x20=\x20NOW()\x20WHERE\x20job_name\x20=\x20$2',[_0x5cb196,_0x2255b7]);}catch(_0x13464e){}}async[a0_0x58e1e0(0x148)](_0x3195c7,_0x26bde2,_0x3f8be7,_0x3e60c3){const _0x46c535=a0_0x58e1e0,_0x48e8a6={'MHFNt':function(_0x438304,_0x47ef05){return _0x438304===_0x47ef05;},'VYCst':'success','HWtBU':'total_success','bEtxH':'oracle','UHVTX':function(_0x450623,_0x4887e1){return _0x450623===_0x4887e1;}},_0x2926d3=this['getDbUtils']();if(!_0x2926d3)return;const _0x2a85d4=this[_0x46c535(0x13d)](),_0x52c1f0=_0x48e8a6[_0x46c535(0xec)](_0x26bde2,_0x48e8a6['VYCst'])?_0x48e8a6['HWtBU']:'total_failed';try{if(_0x48e8a6[_0x46c535(0xec)](_0x2a85d4,_0x48e8a6['bEtxH']))await _0x2926d3[_0x46c535(0x152)](_0x46c535(0x10f)+_0x52c1f0+'\x20=\x20'+_0x52c1f0+_0x46c535(0x1b5),[_0x26bde2,_0x3f8be7,_0x3e60c3,_0x3195c7]);else _0x48e8a6['UHVTX'](_0x2a85d4,'mysql')?await _0x2926d3['executeQuery']('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20?,\x20last_duration_ms\x20=\x20?,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x52c1f0+_0x46c535(0x197)+_0x52c1f0+'\x20+\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20next_run_at\x20=\x20?\x20WHERE\x20job_name\x20=\x20?',[_0x26bde2,_0x3f8be7,_0x3e60c3,_0x3195c7]):await _0x2926d3['executeQuery'](_0x46c535(0x12e)+_0x52c1f0+_0x46c535(0x197)+_0x52c1f0+'\x20+\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20next_run_at\x20=\x20$3,\x20updated_at\x20=\x20NOW()\x20WHERE\x20job_name\x20=\x20$4',[_0x26bde2,_0x3f8be7,_0x3e60c3,_0x3195c7]);}catch(_0x14f82f){logger['warn']({'event':_0x46c535(0x1c8),'jobName':_0x3195c7,'error':_0x14f82f[_0x46c535(0x1de)]},'Failed\x20to\x20update\x20job\x20registry\x20counters:\x20'+_0x14f82f['message']);}}async['getNextRunFromBullMQ'](_0x55bc49){const _0xa1f205=a0_0x58e1e0,_0x23f8f4={'HyJSh':function(_0xd4d4c8,_0x4bd6c9){return _0xd4d4c8===_0x4bd6c9;}},_0x872adf=this[_0xa1f205(0x1c2)][_0x55bc49];if(!_0x872adf||_0x872adf[_0xa1f205(0x169)]!=='cron'||_0x23f8f4[_0xa1f205(0x18f)](_0x872adf['enabled'],![]))return null;const _0x519389=this[_0xa1f205(0x1e3)][_0x872adf['queue']||_0xa1f205(0x1f8)];if(!_0x519389)return null;try{if(typeof _0x519389['getJobSchedulers']==='function'){const _0x4004a0=await _0x519389[_0xa1f205(0x1b0)](0x0,0x64),_0x953bd1=_0x4004a0['find'](_0x11302c=>_0x11302c['name']===_0x55bc49);return _0x953bd1?.[_0xa1f205(0x1f2)]?new Date(_0x953bd1[_0xa1f205(0x1f2)]):null;}}catch(_0x41aff5){}return null;}async['setAllJobsOffline'](){const _0x2895e0=a0_0x58e1e0,_0x253274={'euiGk':function(_0x19be25,_0x2f9772){return _0x19be25===_0x2f9772;},'muDki':_0x2895e0(0x132),'VwDpJ':function(_0x115579,_0x52257a){return _0x115579===_0x52257a;}},_0x41ca74=this[_0x2895e0(0x171)]();if(!_0x41ca74)return;const _0x4bf4d0=this['getDbType']();try{if(_0x253274[_0x2895e0(0x188)](_0x4bf4d0,_0x253274['muDki']))await _0x41ca74['executeQuery'](_0x2895e0(0xf1));else _0x253274[_0x2895e0(0x18b)](_0x4bf4d0,'mysql')?await _0x41ca74['executeQuery'](_0x2895e0(0x1d3)):await _0x41ca74[_0x2895e0(0x152)]('UPDATE\x20job_registry\x20SET\x20status\x20=\x20\x27offline\x27,\x20next_run_at\x20=\x20NULL,\x20updated_at\x20=\x20NOW()');}catch(_0x36f2e4){logger[_0x2895e0(0x100)]({'event':'job_registry_offline_error','error':_0x36f2e4['message']},_0x2895e0(0x1c3)+_0x36f2e4['message']);}}[a0_0x58e1e0(0x171)](){const _0xda4fb8=a0_0x58e1e0,_0x88f268={'aWFym':'postgresql','DWZww':function(_0x49f65a,_0x5b2466){return _0x49f65a===_0x5b2466;},'awwyL':'oracle','ryIrH':function(_0x58d204,_0x3c5dee){return _0x58d204(_0x3c5dee);},'njkrs':_0xda4fb8(0x143),'xrsVZ':_0xda4fb8(0x212),'MBOKE':function(_0x4f94e0,_0x5aedfe){return _0x4f94e0(_0x5aedfe);},'ybvYy':_0xda4fb8(0x1c5),'hHJJV':'db_mysql_unavailable','ICyDU':'MySQL\x20DB\x20module\x20not\x20available','RTbll':function(_0x2455f3,_0x14023b){return _0x2455f3(_0x14023b);},'QmQmO':'db_pg_unavailable'},_0x4a93bc=(process['env'][_0xda4fb8(0x135)]||_0x88f268[_0xda4fb8(0x136)])['toLowerCase']();if(_0x88f268[_0xda4fb8(0x125)](_0x4a93bc,_0x88f268['awwyL']))try{const _0x55ad22=_0x88f268['ryIrH'](require,'../../utils/db-oracle');return{'executeQuery':(_0x390c6b,_0x483e99)=>_0x55ad22[_0xda4fb8(0x152)](_0x390c6b,_0x483e99),'executeTransaction':_0x34b493=>_0x55ad22[_0xda4fb8(0x181)](_0x34b493),'getPool':()=>_0x55ad22[_0xda4fb8(0x1a7)]()};}catch(_0x3e791e){return logger[_0xda4fb8(0x100)]({'event':'db_oracle_unavailable'},_0x88f268[_0xda4fb8(0x20f)]),null;}if(_0x4a93bc===_0x88f268[_0xda4fb8(0x1fb)])try{const _0x33f476=_0x88f268['MBOKE'](require,_0x88f268[_0xda4fb8(0x164)]);return{'executeQuery':(_0x1518c8,_0x3f6409)=>_0x33f476['executeQuery'](_0x1518c8,_0x3f6409),'executeTransaction':_0x44bdb3=>_0x33f476['executeTransaction'](_0x44bdb3),'getPool':()=>_0x33f476[_0xda4fb8(0x1a7)]()};}catch(_0x466372){return logger['warn']({'event':_0x88f268['hHJJV']},_0x88f268['ICyDU']),null;}try{const _0x285655=_0x88f268['RTbll'](require,_0xda4fb8(0x15c));return{'executeQuery':_0x285655['executeQuery'],'executeTransaction':_0x285655['executeTransaction'],'getPool':_0x285655['getPool']};}catch(_0xdee833){return logger[_0xda4fb8(0x100)]({'event':_0x88f268['QmQmO']},_0xda4fb8(0x1db)),null;}}['getRedisClient'](){const _0xf20a89=a0_0x58e1e0,_0x3d6871={'gmPzQ':'../../utils/redis-client'};try{const _0x219797=require(_0x3d6871[_0xf20a89(0x1d8)]);return _0x219797['getClient']?_0x219797[_0xf20a89(0x1fa)]():_0x219797;}catch(_0x5dc054){return null;}}['getKafkaService'](){const _0x13cbce=a0_0x58e1e0,_0x38c8a1={'iMJkN':function(_0x143ecf,_0x459a78){return _0x143ecf===_0x459a78;},'mdVGg':_0x13cbce(0xee)};try{if(_0x38c8a1['iMJkN'](process['env']['KAFKA_ENABLED'],'true')){const _0x242e33=require(_0x38c8a1[_0x13cbce(0x1d6)]);return _0x242e33[_0x13cbce(0x1ef)]?_0x242e33['getInstance']():_0x242e33;}}catch(_0x1d5bdd){}return null;}['getCacheManager'](){try{return require('../../utils/cache-manager');}catch(_0xc37f91){return null;}}async[a0_0x58e1e0(0x163)](_0x378a4f,_0xa4e4e6={}){const _0x25d72a=a0_0x58e1e0,_0x42cb3f={'sNmMb':_0x25d72a(0x1f8),'kPZwC':_0x25d72a(0x159),'PAyJP':_0x25d72a(0x1c1)},_0x82cabe=this['jobConfigs'][_0x378a4f];if(!_0x82cabe)throw new Error(_0x25d72a(0x210)+_0x378a4f);const _0x1b6d97=this[_0x25d72a(0x1e3)][_0x82cabe[_0x25d72a(0x10c)]||_0x42cb3f['sNmMb']],_0x1a13f=await _0x1b6d97[_0x25d72a(0x109)](_0x378a4f,{..._0xa4e4e6,'handler':_0x82cabe[_0x25d72a(0x1b3)],'triggeredBy':_0x25d72a(0x1e2)},{'attempts':_0x82cabe[_0x25d72a(0x117)]?.[_0x25d72a(0x20a)]||0x3,'backoff':{'type':_0x82cabe[_0x25d72a(0x117)]?.['backoff']||_0x42cb3f[_0x25d72a(0x102)],'delay':_0x82cabe[_0x25d72a(0x117)]?.['initialDelay']||0x1388},'timeout':_0x82cabe[_0x25d72a(0x177)]||0x7530});return logger['info']({'event':_0x42cb3f['PAyJP'],'jobId':_0x1a13f['id'],'name':_0x378a4f,'triggeredBy':'api'},_0x25d72a(0x19e)+_0x378a4f+_0x25d72a(0xfe)+_0x1a13f['id']+')'),{'jobId':_0x1a13f['id'],'name':_0x378a4f};}async[a0_0x58e1e0(0x175)](_0x21f668,_0x7343fa={},_0x4d5cc3=0x0){const _0xfed686=a0_0x58e1e0,_0x3dd798={'MoYjo':_0xfed686(0x190)},_0x35cca3=this[_0xfed686(0x1c2)][_0x21f668];if(!_0x35cca3)throw new Error(_0xfed686(0x210)+_0x21f668);const _0x17bcc0=this['queues'][_0x35cca3[_0xfed686(0x10c)]||_0xfed686(0x1f8)],_0x3ffa2c=await _0x17bcc0[_0xfed686(0x109)](_0x21f668,{..._0x7343fa,'handler':_0x35cca3[_0xfed686(0x1b3)],'triggeredBy':_0xfed686(0x1dc)},{'delay':_0x4d5cc3,'attempts':_0x35cca3['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x35cca3[_0xfed686(0x117)]?.[_0xfed686(0x11a)]||_0xfed686(0x159),'delay':_0x35cca3['retry']?.['initialDelay']||0x1388},'timeout':_0x35cca3['timeout']||0x7530});return logger['info']({'event':_0x3dd798[_0xfed686(0xf9)],'jobId':_0x3ffa2c['id'],'name':_0x21f668,'delayMs':_0x4d5cc3},_0xfed686(0x133)+_0x4d5cc3+'ms):\x20'+_0x21f668+'\x20(id:\x20'+_0x3ffa2c['id']+')'),{'jobId':_0x3ffa2c['id'],'name':_0x21f668};}async[a0_0x58e1e0(0x1bb)](_0x3b0d05){const _0x24fa71=a0_0x58e1e0;for(const _0x1c0b51 of Object['values'](this[_0x24fa71(0x1e3)])){const _0x372b7f=await _0x1c0b51['getJob'](_0x3b0d05);if(_0x372b7f){const _0x38c59b=await _0x372b7f[_0x24fa71(0x1d4)]();return{'jobId':_0x372b7f['id'],'name':_0x372b7f[_0x24fa71(0x16e)],'state':_0x38c59b,'progress':_0x372b7f['progress'],'attemptsMade':_0x372b7f['attemptsMade'],'failedReason':_0x372b7f['failedReason'],'returnvalue':_0x372b7f['returnvalue'],'data':_0x372b7f[_0x24fa71(0x185)],'timestamps':{'created':_0x372b7f['timestamp'],'started':_0x372b7f[_0x24fa71(0x123)],'completed':_0x372b7f[_0x24fa71(0x20b)]}};}}return null;}['listJobs'](){const _0x598de6=a0_0x58e1e0;return Object['values'](this[_0x598de6(0x1c2)])[_0x598de6(0x14f)](_0x2b975f=>({'name':_0x2b975f[_0x598de6(0x16e)],'description':_0x2b975f[_0x598de6(0x14e)]||'','type':_0x2b975f['type'],'schedule':_0x2b975f[_0x598de6(0x1cc)],'handler':_0x2b975f[_0x598de6(0x1b3)],'enabled':_0x2b975f[_0x598de6(0x16c)]!==![],'queue':_0x2b975f[_0x598de6(0x10c)]||'default','timeout':_0x2b975f['timeout']||0x7530,'retry':_0x2b975f[_0x598de6(0x117)]||{'maxAttempts':0x3,'backoff':'exponential','initialDelay':0x1388},'metadata':_0x2b975f['metadata']||{}}));}async[a0_0x58e1e0(0x187)](){const _0x1e0b2b=a0_0x58e1e0,_0x4edd18=[];for(const [_0x37b280,_0x5b2889]of Object[_0x1e0b2b(0x19d)](this['queues'])){const _0x10535e=await _0x5b2889[_0x1e0b2b(0x16b)](['active']);for(const _0x502685 of _0x10535e){_0x4edd18['push']({'jobId':_0x502685['id'],'name':_0x502685['name'],'queue':_0x37b280,'progress':_0x502685['progress'],'attemptsMade':_0x502685['attemptsMade'],'startedAt':_0x502685[_0x1e0b2b(0x123)]});}}return _0x4edd18;}async['getHistory'](_0xdac66={}){const _0x991e70=a0_0x58e1e0,_0x2f320a={'dOPuA':function(_0x19f327,_0x460422,_0x5d4be9){return _0x19f327(_0x460422,_0x5d4be9);},'zcKct':function(_0x5b7908,_0x21ec51){return _0x5b7908*_0x21ec51;},'qiSKz':function(_0x165de5,_0x46d71b){return _0x165de5-_0x46d71b;},'kOEJc':'completed'},_0xc0683e=_0x2f320a['dOPuA'](parseInt,_0xdac66['page'],0xa)||0x1,_0x274088=Math[_0x991e70(0x1a1)](_0x2f320a[_0x991e70(0x1eb)](parseInt,_0xdac66[_0x991e70(0x1ae)],0xa)||0x14,0x64),_0x760c7b=_0x2f320a[_0x991e70(0x11c)](_0x2f320a['qiSKz'](_0xc0683e,0x1),_0x274088),_0x347950=_0x760c7b+_0x274088-0x1,_0x2bfb64=[];for(const [_0x356f39,_0x3a3983]of Object['entries'](this['queues'])){const _0x1e817b=await _0x3a3983['getJobs']([_0x2f320a['kOEJc']],_0x760c7b,_0x347950),_0x2c420a=await _0x3a3983[_0x991e70(0x16b)](['failed'],_0x760c7b,_0x347950);for(const _0x4cea95 of[..._0x1e817b,..._0x2c420a]){const _0x48cd23=await _0x4cea95[_0x991e70(0x1d4)]();_0x2bfb64['push']({'jobId':_0x4cea95['id'],'name':_0x4cea95[_0x991e70(0x16e)],'state':_0x48cd23,'queue':_0x356f39,'attemptsMade':_0x4cea95['attemptsMade'],'failedReason':_0x4cea95[_0x991e70(0x203)],'returnvalue':_0x4cea95[_0x991e70(0x1b9)],'timestamps':{'created':_0x4cea95['timestamp'],'started':_0x4cea95['processedOn'],'completed':_0x4cea95[_0x991e70(0x20b)]}});}}return _0x2bfb64['sort']((_0x1ab99d,_0x54e5c4)=>(_0x54e5c4['timestamps'][_0x991e70(0x19f)]||0x0)-(_0x1ab99d['timestamps'][_0x991e70(0x19f)]||0x0)),{'jobs':_0x2bfb64[_0x991e70(0x19c)](0x0,_0x274088),'total':_0x2bfb64[_0x991e70(0x17f)],'page':_0xc0683e,'limit':_0x274088};}async['cancelJob'](_0x38b69d){const _0x38c6d8=a0_0x58e1e0,_0x33bb07={'ZvDJZ':function(_0x66208f,_0x2ee7a2){return _0x66208f===_0x2ee7a2;},'FkjGn':_0x38c6d8(0x1c4),'LuYgQ':'waiting'};for(const _0x289e79 of Object[_0x38c6d8(0x14d)](this[_0x38c6d8(0x1e3)])){const _0x3125fe=await _0x289e79[_0x38c6d8(0x1ea)](_0x38b69d);if(_0x3125fe){const _0x4b3254=await _0x3125fe['getState']();if(_0x33bb07['ZvDJZ'](_0x4b3254,'active'))return await _0x3125fe[_0x38c6d8(0x1dd)](new Error(_0x38c6d8(0x166)),_0x33bb07['FkjGn'],!![]),{'success':!![],'message':'Job\x20'+_0x38b69d+_0x38c6d8(0x1c0)};if(_0x33bb07['ZvDJZ'](_0x4b3254,_0x33bb07['LuYgQ'])||_0x4b3254===_0x38c6d8(0x141))return await _0x3125fe['remove'](),{'success':!![],'message':_0x38c6d8(0x1e6)+_0x38b69d+'\x20removed\x20(was\x20'+_0x4b3254+')'};return{'success':![],'message':_0x38c6d8(0x1e6)+_0x38b69d+_0x38c6d8(0x1e1)+_0x4b3254+')'};}}return{'success':![],'message':_0x38c6d8(0x1e6)+_0x38b69d+_0x38c6d8(0x18d)};}async[a0_0x58e1e0(0x170)](){const _0xc53a3c=a0_0x58e1e0,_0x32835b={'YsONc':_0xc53a3c(0x1e4),'OnTmO':'completed','SMkgz':'paused','ByHNq':_0xc53a3c(0x149)},_0x23aee0={};for(const [_0x678289,_0x5a2302]of Object[_0xc53a3c(0x19d)](this[_0xc53a3c(0x1e3)])){try{const _0x860589=await _0x5a2302[_0xc53a3c(0x178)](_0x32835b[_0xc53a3c(0x1e8)],_0x32835b['OnTmO'],'delayed','failed',_0x32835b['SMkgz'],_0x32835b['ByHNq']);_0x23aee0[_0x678289]=_0x860589;}catch(_0x592568){_0x23aee0[_0x678289]={'error':_0x592568['message']};}}const _0x4ae8df={};for(const [_0x43c0d1,_0x48604]of Object[_0xc53a3c(0x19d)](this['workers'])){_0x4ae8df[_0x43c0d1]={'running':_0x48604[_0xc53a3c(0x213)](),'paused':_0x48604[_0xc53a3c(0xf2)]()};}return{'initialized':this['initialized'],'registeredJobs':Object['keys'](this[_0xc53a3c(0x1c2)])['length'],'redisConnections':this[_0xc53a3c(0x1cf)][_0xc53a3c(0x17f)],'queues':_0x23aee0,'workers':_0x4ae8df};}async['onJobCompleted'](_0x3753f5,_0x137ec5){const _0x1b867b=a0_0x58e1e0,_0x711be6={'gjQoY':'after_job_complete_hook_error','eGCcw':function(_0x49db75,_0x17bbb5){return _0x49db75-_0x17bbb5;},'sUZEk':'string','WiWiP':_0x1b867b(0x160),'wMqwK':function(_0x54cc88,_0x4bfd38){return _0x54cc88===_0x4bfd38;},'kgRAE':_0x1b867b(0x1ba),'gykhq':'job-scheduler'},_0x18cb3b=logger[_0x1b867b(0x200)]({'jobId':_0x3753f5['id'],'jobName':_0x3753f5[_0x1b867b(0x16e)]});_0x18cb3b['info']({'event':_0x1b867b(0x194),'attemptsMade':_0x3753f5['attemptsMade'],'duration':_0x3753f5[_0x1b867b(0x20b)]?_0x711be6[_0x1b867b(0x101)](_0x3753f5['finishedOn'],_0x3753f5[_0x1b867b(0x123)]):null},'Job\x20completed:\x20'+_0x3753f5[_0x1b867b(0x16e)]);const _0x42fd94=this[_0x1b867b(0x1a3)]['get'](_0x3753f5['id']);if(_0x42fd94){if(_0x42fd94[_0x1b867b(0x1f9)])await _0x42fd94['insertPromise'];const _0x190a3b=_0x3753f5['finishedOn']&&_0x3753f5['processedOn']?_0x3753f5[_0x1b867b(0x20b)]-_0x3753f5[_0x1b867b(0x123)]:null,_0x17846b=typeof _0x137ec5===_0x711be6[_0x1b867b(0x11d)]?_0x137ec5:_0x137ec5?JSON[_0x1b867b(0x139)](_0x137ec5)[_0x1b867b(0x1ad)](0x0,0x1f4):null;await this[_0x1b867b(0x103)](_0x42fd94[_0x1b867b(0x127)],_0x190a3b,_0x17846b);const _0x4c3407=await this[_0x1b867b(0x10a)](_0x3753f5[_0x1b867b(0x16e)]);await this['updateRegistryCounters'](_0x3753f5['name'],_0x711be6[_0x1b867b(0x112)],_0x190a3b,_0x4c3407),this['activeHistoryIds']['delete'](_0x3753f5['id']);}const _0xe764e1=getComponentEngine();if(_0xe764e1&&_0x711be6['wMqwK'](typeof _0xe764e1['executeEventHandlers'],'function')){const _0x1c15ec={'jobId':_0x3753f5['id'],'jobName':_0x3753f5['name'],'result':_0x137ec5,'config':this[_0x1b867b(0x1c2)][_0x3753f5[_0x1b867b(0x16e)]]||{}};_0xe764e1[_0x1b867b(0x131)](_0x711be6['kgRAE'],_0x1c15ec,![])[_0x1b867b(0x173)](_0x31bb3d=>{const _0x5cddc6=_0x1b867b;_0x18cb3b[_0x5cddc6(0x100)]({'event':_0x711be6['gjQoY'],'error':_0x31bb3d['message']},_0x5cddc6(0x154));});}const _0x1bf7c7=this['getKafkaService']();if(_0x1bf7c7)try{await _0x1bf7c7['publishEvent'](_0x1b867b(0x1f5),'JOB_COMPLETED',null,{'jobId':_0x3753f5['id'],'name':_0x3753f5['name'],'result':_0x137ec5},{'module':_0x711be6[_0x1b867b(0x1fe)],'endpoint':_0x3753f5[_0x1b867b(0x16e)]});}catch(_0x1cdf5f){_0x18cb3b[_0x1b867b(0x100)]({'event':_0x1b867b(0x158),'error':_0x1cdf5f[_0x1b867b(0x1de)]},_0x1b867b(0xf4));}}async[a0_0x58e1e0(0x1af)](_0x3b4bf3,_0x569f3c){const _0x534457=a0_0x58e1e0,_0x4a05c0={'lhlUc':'onAfterJobFailed\x20handler\x20error\x20(non-blocking)','ykotq':function(_0x454998,_0x2c6a9f){return _0x454998<_0x2c6a9f;},'fobqE':function(_0x307adb,_0x5951fd){return _0x307adb-_0x5951fd;},'pOTBS':function(_0x3d9792){return _0x3d9792();},'vmKKl':'function','AMrzj':_0x534457(0x1fd),'EskPz':_0x534457(0x193),'CmuqY':_0x534457(0x158),'dQoVy':_0x534457(0x17d)},_0x244416=logger[_0x534457(0x200)]({'jobId':_0x3b4bf3['id'],'jobName':_0x3b4bf3[_0x534457(0x16e)]});_0x244416['error']({'event':'job_failed','attemptsMade':_0x3b4bf3[_0x534457(0x140)],'failedReason':_0x569f3c?.[_0x534457(0x1de)],'willRetry':_0x4a05c0['ykotq'](_0x3b4bf3['attemptsMade'],this[_0x534457(0x1c2)][_0x3b4bf3['name']]?.['retry']?.[_0x534457(0x20a)]||0x3)},'Job\x20failed:\x20'+_0x3b4bf3[_0x534457(0x16e)]+_0x534457(0x1c9)+_0x569f3c?.[_0x534457(0x1de)]);const _0x55b7b1=this[_0x534457(0x1a3)]['get'](_0x3b4bf3['id']);if(_0x55b7b1){if(_0x55b7b1[_0x534457(0x1f9)])await _0x55b7b1[_0x534457(0x1f9)];const _0x41a759=_0x3b4bf3[_0x534457(0x20b)]&&_0x3b4bf3[_0x534457(0x123)]?_0x4a05c0[_0x534457(0x198)](_0x3b4bf3[_0x534457(0x20b)],_0x3b4bf3['processedOn']):null;await this['updateJobHistoryFailed'](_0x55b7b1[_0x534457(0x127)],_0x41a759,_0x3b4bf3[_0x534457(0x1e9)],_0x569f3c?.['message'],_0x569f3c?.['stack']);const _0x454f85=await this[_0x534457(0x10a)](_0x3b4bf3[_0x534457(0x16e)]);await this['updateRegistryCounters'](_0x3b4bf3['name'],_0x534457(0x186),_0x41a759,_0x454f85),this[_0x534457(0x1a3)]['delete'](_0x3b4bf3['id']);}const _0x2ca46a=_0x4a05c0['pOTBS'](getComponentEngine);if(_0x2ca46a&&typeof _0x2ca46a['executeEventHandlers']===_0x4a05c0['vmKKl']){const _0x34d6bf={'jobId':_0x3b4bf3['id'],'jobName':_0x3b4bf3['name'],'error':_0x569f3c?.[_0x534457(0x1de)],'attemptsMade':_0x3b4bf3['attemptsMade'],'config':this[_0x534457(0x1c2)][_0x3b4bf3[_0x534457(0x16e)]]||{}};_0x2ca46a[_0x534457(0x131)](_0x4a05c0['AMrzj'],_0x34d6bf,![])[_0x534457(0x173)](_0x5e4f37=>{const _0x2bb356=_0x534457;_0x244416['warn']({'event':_0x2bb356(0x1bf),'error':_0x5e4f37[_0x2bb356(0x1de)]},_0x4a05c0['lhlUc']);});}const _0x5e9736=this[_0x534457(0x1f1)]();if(_0x5e9736)try{await _0x5e9736['publishEvent']('restforge.jobs.failed',_0x4a05c0[_0x534457(0x15a)],null,{'jobId':_0x3b4bf3['id'],'name':_0x3b4bf3['name'],'error':_0x569f3c?.['message'],'attemptsMade':_0x3b4bf3['attemptsMade']},{'module':_0x534457(0x20c),'endpoint':_0x3b4bf3['name']});}catch(_0xd0baba){_0x244416[_0x534457(0x100)]({'event':_0x4a05c0[_0x534457(0x151)],'error':_0xd0baba[_0x534457(0x1de)]},_0x4a05c0['dQoVy']);}}[a0_0x58e1e0(0x106)](_0x3e14e3,_0x151a79){const _0x3acf41=a0_0x58e1e0;logger[_0x3acf41(0x1a8)]({'event':_0x3acf41(0x104),'jobId':_0x3e14e3['id'],'jobName':_0x3e14e3[_0x3acf41(0x16e)],'progress':_0x151a79},'Job\x20progress:\x20'+_0x3e14e3[_0x3acf41(0x16e)]+_0x3acf41(0x1c9)+_0x151a79+'%');}}module['exports']=new JobManager();
1
+ const a0_0x26ced1=a0_0x151e;(function(_0x380dfa,_0x29a04e){const _0x4e3048=a0_0x151e,_0x27ccef=_0x380dfa();while(!![]){try{const _0x54ca38=parseInt(_0x4e3048(0x1f3))/0x1*(-parseInt(_0x4e3048(0x1c8))/0x2)+parseInt(_0x4e3048(0x221))/0x3*(-parseInt(_0x4e3048(0x290))/0x4)+parseInt(_0x4e3048(0x298))/0x5*(-parseInt(_0x4e3048(0x259))/0x6)+parseInt(_0x4e3048(0x2b7))/0x7*(parseInt(_0x4e3048(0x1b4))/0x8)+-parseInt(_0x4e3048(0x252))/0x9+parseInt(_0x4e3048(0x296))/0xa*(parseInt(_0x4e3048(0x1ac))/0xb)+parseInt(_0x4e3048(0x286))/0xc;if(_0x54ca38===_0x29a04e)break;else _0x27ccef['push'](_0x27ccef['shift']());}catch(_0x49c8df){_0x27ccef['push'](_0x27ccef['shift']());}}}(a0_0x4031,0x7978a));const {Queue,Worker}=require(a0_0x26ced1(0x231)),Redis=require(a0_0x26ced1(0x28d)),crypto=require(a0_0x26ced1(0x217)),{v7:uuidv7}=require('uuid'),fs=require('fs'),path=require(a0_0x26ced1(0x1b9)),{logger}=require(a0_0x26ced1(0x28e)),jobValidator=require(a0_0x26ced1(0x1d8));function a0_0x151e(_0x419a93,_0x1d446a){_0x419a93=_0x419a93-0x18a;const _0x403179=a0_0x4031();let _0x151e78=_0x403179[_0x419a93];if(a0_0x151e['aYvGLi']===undefined){var _0x51c1ff=function(_0x45185a){const _0x26f426='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4f0bbe='',_0x27ea32='';for(let _0x7547fa=0x0,_0x488812,_0x356288,_0x8ab9d7=0x0;_0x356288=_0x45185a['charAt'](_0x8ab9d7++);~_0x356288&&(_0x488812=_0x7547fa%0x4?_0x488812*0x40+_0x356288:_0x356288,_0x7547fa++%0x4)?_0x4f0bbe+=String['fromCharCode'](0xff&_0x488812>>(-0x2*_0x7547fa&0x6)):0x0){_0x356288=_0x26f426['indexOf'](_0x356288);}for(let _0x207e7b=0x0,_0x16a716=_0x4f0bbe['length'];_0x207e7b<_0x16a716;_0x207e7b++){_0x27ea32+='%'+('00'+_0x4f0bbe['charCodeAt'](_0x207e7b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x27ea32);};a0_0x151e['oMuXyO']=_0x51c1ff,a0_0x151e['YcvKAH']={},a0_0x151e['aYvGLi']=!![];}const _0x5b385c=_0x403179[0x0],_0x53d0bc=_0x419a93+_0x5b385c,_0x11edbd=a0_0x151e['YcvKAH'][_0x53d0bc];return!_0x11edbd?(_0x151e78=a0_0x151e['oMuXyO'](_0x151e78),a0_0x151e['YcvKAH'][_0x53d0bc]=_0x151e78):_0x151e78=_0x11edbd,_0x151e78;}let componentEngine=null;function a0_0x4031(){const _0x285e52=['mJmZmJC3m1fLq0Pbua','zMLUAxnOzwrpBG','zgvIDwC','thviEwq','CxvLDwvZ','DhLWzq','Bwv0ywrHDge','mZe0neLhyxb2qq','EwrwEhq','Aw5MBW','DxbZzxj0sM9IuMvNAxn0CNK','AM9Ix2rIx3r5CgvFDw5ZDxbWB3j0zwq','tejOuhC','AM9Ix2THzMTHx3b1yMXPC2HFzxjYB3i','lI4VlI4VDxrPBhmVy29TCg9Uzw50lwvUz2LUzq','wKreC0S','zKLtu2e','Bwf4qxr0zw1WDhm','z2v0q2XPzw50','AM9Ix3bYB2DYzxnZ','DMfSDwvZ','B25kB2jdB21WBgv0zwq','zxHLy3v0zuv2zw50sgfUzgXLCNm','AKDtEuW','ihrPzgfRigrPDgvTDwTHBG','BwfW','y3jLyxrLza','ug9ZDgDYzvnrtcbeqIbTB2r1BguGBM90igf2ywLSywjSzq','sM9IigrPC3bHDgnOzwq6ia','uevzveq','rMfPBgvKihrVigLUC2vYDcbQB2iGAgLZDg9YEtOG','DwPPq0q','C3LZDgvT','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNzMfPBgvKjYWGy29TCgXLDgvKx2f0id0Gu1LtveLnrvnuqu1qlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GoJeSihbYB2DYzxnZid0GoJiSigvYCM9Yx21LC3nHz2uGpsa6mYWGzxjYB3jFC3rHy2SGpsa6ncbxsevsrsbPzca9idO1','Aw5JBhvKzxm','AM9Ix2nVBxbSzxrLza','AM9Ix2rIx3vUyxzHAwXHyMXL','vhjhrKe','ChjVy2vZC2vKt24','z2v0sM9Iu3rHDhvZ','C25JvK8','EuDqzwC','BwLU','AM9PBG','AM9Ix3rHyMXLC19LBNn1CMvK','wu1gz0i','CfLir0y','tuvsr0uGsu5utYbQB2jFCMvNAxn0CNKGCGOGicaGicaGicaGifvtsu5hicHtruXfq1qGoJeGqvmGAM4GrLjptsbevufmksbZie9oicHYlMPVyL9Uyw1Lid0GCY5QBIKkicaGicaGicaGicbxsevoie1bveniruqGveHftIbvuerbveuGu0vucIaGicaGicaGicaGicbKAxnWBgf5x25HBwuGpsa6mIWGDhLWzsa9idOZlcbZy2HLzhvSzsa9idO0lcbXDwv1zsa9idO1laOGicaGicaGicaGicaGAgfUzgXLCIa9idO2lcbJB25MAwDFzMLSzsa9idO3lcb0Aw1LB3v0id0GoJGSihjLDhj5x21HEca9idO5laOGicaGicaGicaGicaGCMv0CNLFyMfJA29MzIa9idOXmcWGC3rHDhvZid0GoJeXlcbUzxH0x3j1BL9HDca9idOXmIWGDxbKyxrLzf9HDca9ifnzu1rjtuvtvefnuaOGicaGicaGicaGifDiru4GtK9uie1bveniruqGveHftIbjtLnfuLqkicaGicaGicaGicaGicHQB2jFBMfTzsWGzgLZCgXHEv9Uyw1Llcb0ExbLlcbZy2HLzhvSzsWGCxvLDwuSigHHBMrSzxiSignVBMzPz19MAwXLlaOGicaGicaGicaGicaGihrPBwvVDxqSihjLDhj5x21HEcWGCMv0CNLFyMfJA29MzIWGC3rHDhvZlcbUzxH0x3j1BL9HDcWGy3jLyxrLzf9HDcWGDxbKyxrLzf9HDcKkicaGicaGicaGicbwquXvrvmGkdOXlca6mIWGoJmSidO0lca6nsWGoJySidO3lca6ocWGoJKSidOXmcWGoJeXlca6mtiSifnzu1rjtuvtvefnucWGu1LtveLnrvnuqu1qkq','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticG/lca/lca/lca/lca/lcaNCNvUBMLUzYCSid8Sid8Sid8Sie5pvYGPlca/lcbot1COksK','nxW3Fdf8nNW0Fdn8mNWW','Dw5RBM93BG','DxbKyxrLsM9IsgLZDg9YEunVBxbSzxrLza','mZCYmJGYmgLhuNnJva','zuHdu3i','sK9cx0zbsuXfra','s1vuzvK','zw5HyMXLza','y3jLyxrLqNvSBe1rq29UBMvJDgLVBG','AM9IlxnJAgvKDwXLCG','Aw9YzwrPCW','lI4VlI4VDxrPBhmVBg9Nz2vY','qLPXCvG','nJmWmZjWz2DRAMq','x3nVDxjJzuzPBgu','DgLTzw91Da','B3jHy2XL','Aw5Zzxj0uhjVBwLZzq','BwvZC2fNzq','mZqWmg5uCLnLvW','s0DiCNa','nJeZme9dD3nHuW','iokaLca','rhrLDxa','C3vJy2vZCW','vuv3yvO','C3DbwvC','t2nMvue','B25bzNrLCKPVyKnVBxbSzxrL','lI4VlI4VDxrPBhmVCMvKAxmTy2XPzw50','uMvKAxmGy29UBMvJDgLVBIbMywLSzwq6ia','z0XPqKO','y3jVBG','DgXzBgW','sM9IigHHBMrSzxiGy29TCgXLDgvKoIa','s1bwvgu','AM9Ix3n0ywXSzwq','qNvSBe1rifjLzgLZignVBM5Ly3rPB24GzxjYB3i6ia','ChjVy2vZC0PVyG','AM9Ix2rPC3bHDgnOzwrFzgvSyxLLza','A2rPrNm','sM9IigzHAwXLzdOG','zgLZCgf0y2HezwXHEwvK','Cgf1C2vK','Cgf1C2u','ALvcvwG','zNvUy3rPB24','CMvZDgzVCMDLlMPVyNmUy29TCgXLDgvK','AM9Ix21HBMfNzxjFywXYzwfKEv9PBML0AwfSAxPLza','DxbKyxrLuMvNAxn0CNLtDgf0Dxm','B25bzNrLCKPVyKzHAwXLza','Aw5Zzxj0sM9IsgLZDg9YEq','mJa3nZy5mwvvr2HKDa','sM9IignHBMnLBgXLzcb2AweGqvbj','ywXYzwfKEsbLEgLZDhm','lI4VlI4VDxrPBhmVy2fJAguTBwfUywDLCG','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ie5pvYGPlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GpYWGChjVz3jLC3mGpsaXmdaSihjLC3vSDf9ZDw1Tyxj5id0GpYbxsevsrsbPzca9id8','AM9Ix3jLzgLZx2nVBM5Ly3rLza','lIbkB2iGu2nOzwr1BgvYihrPzgfRigfRyw4GywT0AwyU','AM9Ix3n0yxj0zwq','rMfPBgvKihrVihjLz2LZDgvYigPVyJOG','Aw5PDgLHBerLBgf5','zw5KC1DPDgG','sM9Iie1HBMfNzxiGCMvHzhK6ia','rejFvfLqrq','t01OwLy','AM9Ix3jLz2LZDhj5x3vWC2vYDf9LCNjVCG','z2v0ug9VBa','DgLTzxn0yw1WCW','BMv4Da','icHHDhrLBxb0ia','CMvTB3zL','B25kB2jgywLSzwq','C3rYAw5N','zxjYB3i','CMv0CNK','AM9Ix2HPC3rVCNLFAw5Zzxj0x2vYCM9Y','sK9cx1jfreLtx1bsruzjwa','ruDHAeW','C2XPy2u','tvnkrKW','uKvesvnFue9sva','BLb4z2K','ywrK','C3jJ','BgLZDePVyNm','zgf0yq','yxbP','yNvPBgrdB250zxH0','zMfPBgvK','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsaKmsWGBgfZDf9YDw5FyxqGpsbot1COksWkicaGicaGicaGicb1CgrHDgvKx2f0id0GtK9xkcKGv0HfuKuGAM9Ix25HBwuGpsaKmG','mYbcDwXStveGv29YA2vYCYbJCMvHDgvKicHJB25JDxjYzw5JEtOG','D2fYBG','BgvUz3rO','AM9Ix2nVBMzPz19KAxjFBwLZC2LUzW','Bg93','s0jyChu','DeTsAeq','uKvesvnFrei','DMfSAwrHDgvdB25MAwC','wxDmEhy','sK9cx0zbsuXfrf9srvrftLrjt05Fse9vuLm','ywn0AxzL','y29UzMLNrMLSzq','D1bPAMK','zxHPC3rZu3LUyW','y29TCgXLDgvK','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','qNvSBe1rifDVCMTLCIbLCNjVCIaO','y3fMBNe','BunMtxG','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticG6msWGoJiSidOZlca6ncWGoJuSicDYDw5UAw5NjYWGoJySidO3lca6ocWGu1LtveLnrvnuqu1qlca6osWGu1LtveLnrvnuqu1qkq','sK9cx1nuquXmrurFsu5urvjwquW','D29YA2vYCW','BxLZCwWUC3fS','B3jHltaWotu1','sM9IihrPzgfRigrPDgvTDwTHBJOG','AM9Ix21HBMfNzxjFCMvHzhK','rwHHtfe','mZaZnZfZzK9Pv3K','BMfTzq','DxbZzxj0sM9Iu2nOzwr1BgvY','ANLovfG','sM9IihbYB2DYzxnZoIa','lMPZ','zgvSyxLLza','qNvSBe1rifjLzgLZignVBM5Ly3rPB24GDMvYAwzPzwq','mtztBvLQwxG','rMfPBgvKihrVihvWzgf0zsbQB2iGAgLZDg9YEsaOy29TCgXLDgvKktOG','yxr0zw1WDa','CuTXrfq','y2fUy2vSsM9I','Cgf0Aa','y2f0y2G','z2v0sw5ZDgfUy2u','zvznr1C','Dg90ywXFC3vJy2vZCW','DeXZtxm','AM9Ix3f1zxvLC19JCMvHDgvK','AKvHvNC','Aw5PDgLHBgL6zq','zgjFB3jHy2XLx3vUyxzHAwXHyMXL','z2v0sM9I','zw50CMLLCW','y29UBMvJDgLVBNm','EgnLuwK','sK9cx01bwf9tvefmtevex0npvu5u','mty0t1nvuKjN','CMvHzezPBgvtEw5J','C3vIC3rYAw5N','DNPby1a','AM9Ix3jLz2LZDhj5x29MzMXPBMvFzxjYB3i','y2HPBgq','z2v0rgjvDgLSCW','sM9Iie1HBMfNzxiGC3vKywGGzgLPBMLZAwfSAxnHC2KSihnRAxa','AM9Ix3jLzgLZx2zHAwXLza','AM9Iq29UzMLNCW','Cg9ZDgDYzxnXBa','ChvIBgLZAev2zw50','z2v0s2fMA2ftzxj2AwnL','qNbsvgC','zgLZCgf0y2G','B25SAw5L','lI9QB2iTDMfSAwrHDg9Y','rMfPBgvKihrVihb1yMXPC2GGsK9cx0zbsuXfrcb0BYblywzRyq','ywXS','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa6msWGBgfZDf9KDxjHDgLVBL9TCYa9idOYlaOGicaGicaGicaGia','uhD0z1u','yxDRq28','z2v0tMv4Dfj1BKzYB21cDwXStve','zw5ZDxjLvgfIBgvZ','CNvUBMLUzW','v2Lmvee','AM9Ix2nVBMzPz19WyxjZzv9LCNjVCG','DgLTzxn0yw1W','CMy6','BxLZCwW','sfjstLq','rgrVyuS','q2f5uKy','C2PyC2y','suHzDNq','B1j1Awe','B25kB2jqCM9NCMvZCW','Aw5PDgLHBgL6zwq','qMfJA2DYB3vUzcbPBNnLCNqGAM9IigHPC3rVCNKGzMfPBgvKoIa','sM9Iia','sM9IigvUC3vYzvrHyMXLCYb3yxjUAw5NoIa','CgfYC2u','DhDqqK8','mJmZm2zeuhf5ua','sK9cx1nivvret1Dox1rjtuvpvvq','CLrnt3m','Bg9JywXOB3n0','mYbcDwXStveGuxvLDwvZignYzwf0zwqGkgHPz2GSigrLzMf1BhqSigXVDYK','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNzMfPBgvKjYWGy29TCgXLDgvKx2f0id0GtK9xkcKScIaGicaGicaGicaGzhvYyxrPB25FBxmGpsaKmsWGChjVz3jLC3mGpsaKmIWGzxjYB3jFBwvZC2fNzsa9icqZlcbLCNjVCL9ZDgfJAYa9icq0ifDirvjfigLKid0Gjdu','DxbKyxrLsM9IsgLZDg9YEuzHAwXLza','D2fPDgLUzW','ifjLzgLZignVBM5Ly3rPB25Z','ChvZAa','z1DRtvy','DwTfBK8','zgjFBxLZCwXFDw5HDMfPBgfIBgu','z2v0uMvKAxndBgLLBNq','Cg9ZDgDYzxnXBc5ZCwW','ChjVz3jLC3m','z2v0sM9Iu2nOzwr1BgvYCW','jYb0AwrHAYbKAwr1A3vUzYb1BNr1AYbQB2iGBw9UAxrVCMLUzYb0ywjSzxm','thP2u3G','sM9IignVBMzPzYbPBNzHBgLKoIa','y2XVC2u','DhjPz2DLCMvKqNK','DxrMoa','z2v0rgjuExbL','AM9ItMfTzq','AgfUzgXLCG','BgLZDfj1BM5PBMC','CgLUzW','zgvZy3jPChrPB24','z2v0sM9ICW','zhvWBgLJyxrL','z2v0u3rHDgu','rMfPBgvKihrVihvWzgf0zsbQB2iGCMvNAxn0CNKGy291BNrLCNm6ia','txLtuuWGreiGBw9KDwXLig5VDcbHDMfPBgfIBgu','CMvNAxn0zxjkB2i','CxvPDa','y3j5ChrV','Bw92zvrVrMfPBgvK','C2v0','zxHWB3j0CW','zevkwfC','wefVB3q','sK9cx0nptvbmrvrfra','lIbeqIbTB25PDg9YAw5NigrPC2fIBgvKlG','ywn0AxzLsgLZDg9YEuLKCW','t3rfr0i','ndH6zMnSq1y','icSGmsWkicaGicaGicaGicbUzxH0x3j1BL9HDca9id8Gv0HfuKuGAM9Ix25HBwuGpsa/','DhjPBq','ywz0zxjFAM9Ix2zHAwXLzf9OB29Rx2vYCM9Y','id0G','lI4VlI4VC2vYDMLJzxmVA2fMA2ftzxj2AwnL','sK9cx0vwru5u','BwrJwvO','D29YA2LUz0rPCG','rMfPBgvKihrVihvWC2vYDcbQB2iGCMvNAxn0CNK6ia','ufjLywG','D0rgteG','CxvLDwu','y3jVBL9YzwDPC3rLCMvK','zMLSDgvY','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteWSihvWzgf0zwrFyxqGpsbtwvnusu1fu1rbtva','yNvSBg1X','DMfSAwq','CMPyy0q','tMvSDwy','C3bSAxq','svfor3q','BwfUDwfS','yxr0zw1WDhnnywrL','AgLZDg9YEuLK','EgvHzKi','q01Ysem','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsaKmsWGBgfZDf9KDxjHDgLVBL9TCYa9icqYlaOGicaGicaGicaGia','DxbKyxrLuMvNAxn0CNLdB3vUDgvYCW','zxHLy3v0zvf1zxj5','rMfPBgvKihrVigvUC3vYzsbQB2iGDgfIBgvZoIa','C2fKEwm','AMvgALy','sM9Iihn0ywXSzwq6ia','D0jJs3C','zMfPBgvKuMvHC29U','lI4VlI4VDxrPBhmVzgiTB3jHy2XL','BxmPoIa','zxHLy3v0zvrYyw5Zywn0Aw9U','zgvMyxvSDa','rejFvfLqrsaN','zw52','q0TKCuG','sM9Iie1HBMfNzxiGC2H1DgrVD24Gy29TCgXLDgu','ENHXDKG','u1fmihnJCMLWDcb0AwrHAYbKAxrLBxvRyw46ia','D0PrCuO','q29oquy','A1DUvuW'];a0_0x4031=function(){return _0x285e52;};return a0_0x4031();}function getComponentEngine(){const _0x465e92=a0_0x26ced1,_0x183841={'kdiFs':function(_0x13df9a,_0x4d75c3){return _0x13df9a(_0x4d75c3);},'fNIZr':_0x465e92(0x260)};if(!componentEngine)try{const _0x9b5eb9=_0x183841[_0x465e92(0x2ab)](require,_0x183841['fNIZr']);componentEngine=_0x9b5eb9['componentEngine']||_0x9b5eb9;}catch(_0x22fa51){}return componentEngine;}class JobManager{constructor(){const _0x42dc15=a0_0x26ced1,_0x26c3fe={'jyNTX':_0x42dc15(0x283)},_0x18658e=_0x26c3fe[_0x42dc15(0x1af)][_0x42dc15(0x235)]('|');let _0x1bf62d=0x0;while(!![]){switch(_0x18658e[_0x1bf62d++]){case'0':this['activeHistoryIds']=new Map();continue;case'1':this['jobConfigs']={};continue;case'2':this['workingDir']=process['cwd']();continue;case'3':this['initialized']=![];continue;case'4':this['connections']=[];continue;case'5':this[_0x42dc15(0x256)]={};continue;case'6':this['handlers']={};continue;case'7':this['workers']={};continue;}break;}}['createBullMQConnection'](){const _0x3ecb50=a0_0x26ced1,_0x2ee4de={'tlYll':function(_0xedeb50,_0x34d91d){return _0xedeb50*_0x34d91d;},'twPBO':function(_0xa00030,_0x2601ea,_0x1f6ce1){return _0xa00030(_0x2601ea,_0x1f6ce1);},'lJzNB':_0x3ecb50(0x2cd)},_0x141c43=new Redis({'host':process['env']['REDIS_HOST']||_0x3ecb50(0x1f6),'port':_0x2ee4de[_0x3ecb50(0x1f2)](parseInt,process[_0x3ecb50(0x24a)][_0x3ecb50(0x2d4)],0xa)||0x18ec,'password':process[_0x3ecb50(0x24a)]['REDIS_PASSWORD']||undefined,'db':_0x2ee4de[_0x3ecb50(0x1f2)](parseInt,process['env'][_0x3ecb50(0x197)],0xa)||0x0,'maxRetriesPerRequest':null,'retryStrategy'(_0x16d9f2){const _0x5e8542=_0x3ecb50,_0x178d0e=Math['min'](_0x2ee4de[_0x5e8542(0x2a4)](_0x16d9f2,0x32),0x7d0);return _0x178d0e;}});return _0x141c43['on'](_0x2ee4de['lJzNB'],_0x5b593c=>{const _0x3acd14=_0x3ecb50;logger['error']({'event':'bullmq_redis_error','error':_0x5b593c['message']},_0x3acd14(0x2a8)+_0x5b593c['message']);}),this['connections'][_0x3ecb50(0x1fc)](_0x141c43),_0x141c43;}async[a0_0x26ced1(0x1c1)](){const _0x10ab4b=a0_0x26ced1,_0x4c0bf4={'EhaLQ':_0x10ab4b(0x2a7),'rZgBl':_0x10ab4b(0x2b3),'ZDDsK':'job_manager_init_start','MSJFL':_0x10ab4b(0x1d0),'yGPeg':function(_0x4ac077,_0x1cdf00){return _0x4ac077===_0x1cdf00;},'eTqeZ':_0x10ab4b(0x284),'QWcHV':function(_0x53c080,_0x4e92f8){return _0x53c080*_0x4e92f8;},'paMoD':'high','yrvBM':_0x10ab4b(0x1f7),'TrGFA':function(_0x57f4b3,_0x1d8ca5,_0x28cb59){return _0x57f4b3(_0x1d8ca5,_0x28cb59);},'PReah':'failed','YMFgB':_0x10ab4b(0x202),'CJckg':_0x10ab4b(0x2cd),'LzvSx':'job_workers_created','fISSa':'job_register_failed'};if(this[_0x10ab4b(0x1ed)]){logger['warn']({'event':_0x4c0bf4['rZgBl']},_0x10ab4b(0x1cf));return;}logger['info']({'event':_0x4c0bf4[_0x10ab4b(0x261)]},'Initializing\x20Job\x20Manager...');const _0x50438b=this['createBullMQConnection']();try{await _0x50438b[_0x10ab4b(0x20e)](),logger[_0x10ab4b(0x25b)]({'event':_0x10ab4b(0x2bc)},_0x10ab4b(0x1b3));}catch(_0xa4956){logger['error']({'event':_0x4c0bf4[_0x10ab4b(0x2d3)],'error':_0xa4956['message']},_0x10ab4b(0x2a1)+_0xa4956[_0x10ab4b(0x295)]+_0x10ab4b(0x2bd));try{await _0x50438b['quit']();}catch(_0x36d643){}this[_0x10ab4b(0x1c5)]=this['connections']['filter'](_0x4c7b8b=>_0x4c7b8b!==_0x50438b);return;}try{await _0x50438b[_0x10ab4b(0x216)]();}catch(_0x302d5a){}this[_0x10ab4b(0x1c5)]=this[_0x10ab4b(0x1c5)]['filter'](_0x368cb4=>_0x368cb4!==_0x50438b);try{await this[_0x10ab4b(0x1df)]();}catch(_0x5d2e52){logger[_0x10ab4b(0x191)]({'event':'job_ensure_tables_error','error':_0x5d2e52['message']},_0x10ab4b(0x23f)+_0x5d2e52[_0x10ab4b(0x295)]+_0x10ab4b(0x21e));}const _0x4f58d8=this['loadJobConfigs']();_0x4c0bf4[_0x10ab4b(0x27b)](_0x4f58d8['length'],0x0)&&logger['info']({'event':'job_no_configs'},'Tidak\x20ada\x20job\x20config\x20ditemukan\x20di\x20payload/jobs/.\x20Job\x20Manager\x20aktif\x20tanpa\x20cron.');const _0x41ae38=[];for(const _0x583cef of _0x4f58d8){const _0x4a26eb=jobValidator[_0x10ab4b(0x198)](_0x583cef,this['workingDir']);_0x4a26eb[_0x10ab4b(0x232)]?_0x41ae38['push'](_0x583cef):logger[_0x10ab4b(0x2cd)]({'event':'job_config_invalid','name':_0x583cef['name']||_0x10ab4b(0x284),'errors':_0x4a26eb['errors']},_0x10ab4b(0x206)+(_0x583cef[_0x10ab4b(0x1ad)]||_0x4c0bf4['eTqeZ'])+_0x10ab4b(0x299)+_0x4a26eb['errors']['join'](';\x20'));}const _0x58309f=process['env'][_0x10ab4b(0x1a0)]||_0x10ab4b(0x248),_0x3341f0=process['env'][_0x10ab4b(0x2d0)]||_0x10ab4b(0x1e4)+_0x58309f+':job',_0x31774f=parseInt(process[_0x10ab4b(0x24a)]['JOB_RETENTION_HOURS'],0xa)||0x48,_0x43dfbf=parseInt(process['env'][_0x10ab4b(0x19a)],0xa)||0xa8,_0x38fad5={'removeOnComplete':{'age':_0x4c0bf4['QWcHV'](_0x31774f,0xe10)},'removeOnFail':{'age':_0x43dfbf*0xe10}},_0x2eefb1={'high-priority':_0x4c0bf4['paMoD'],'default':_0x10ab4b(0x248),'low-priority':_0x10ab4b(0x194)};for(const [_0x3a3b34,_0x4fd94a]of Object['entries'](_0x2eefb1)){this[_0x10ab4b(0x256)][_0x3a3b34]=new Queue(_0x4fd94a,{'connection':this[_0x10ab4b(0x28b)](),'prefix':_0x3341f0,'defaultJobOptions':_0x38fad5});}logger[_0x10ab4b(0x25b)]({'event':_0x10ab4b(0x1bf),'count':0x3},_0x4c0bf4['yrvBM']);const _0x4ffc1f=_0x4c0bf4[_0x10ab4b(0x277)](parseInt,process[_0x10ab4b(0x24a)]['JOB_CONCURRENCY'],0xa)||0x5,_0x301d9f=parseInt(process[_0x10ab4b(0x24a)][_0x10ab4b(0x1a5)],0xa)||0x7530,_0x327816=parseInt(process[_0x10ab4b(0x24a)][_0x10ab4b(0x1c7)],0xa)||0x2;for(const [_0x42075a,_0x4822ce]of Object[_0x10ab4b(0x1c4)](_0x2eefb1)){const _0xeb51a3=new Worker(_0x4822ce,async _0x36ca8e=>this[_0x10ab4b(0x2a9)](_0x36ca8e),{'connection':this[_0x10ab4b(0x28b)](),'prefix':_0x3341f0,'concurrency':_0x4ffc1f,'stalledInterval':_0x301d9f,'maxStalledCount':_0x327816});_0xeb51a3['on'](_0x10ab4b(0x19f),(_0x42047c,_0x1f310c)=>this['onJobCompleted'](_0x42047c,_0x1f310c)),_0xeb51a3['on'](_0x4c0bf4[_0x10ab4b(0x22b)],(_0x1c98d4,_0x436a6f)=>this['onJobFailed'](_0x1c98d4,_0x436a6f)),_0xeb51a3['on'](_0x4c0bf4[_0x10ab4b(0x27f)],(_0x219aa4,_0x44ada6)=>this['onJobProgress'](_0x219aa4,_0x44ada6)),_0xeb51a3['on']('stalled',_0x363ceb=>{const _0x625de2=_0x10ab4b;logger['warn']({'event':_0x4c0bf4[_0x625de2(0x1ab)],'jobId':_0x363ceb},_0x625de2(0x242)+_0x363ceb);}),_0xeb51a3['on'](_0x4c0bf4['CJckg'],_0x4ea427=>{const _0x20afa8=_0x10ab4b;logger['error']({'event':'bullmq_worker_error','queue':_0x42075a,'error':_0x4ea427['message']},_0x20afa8(0x1a1)+_0x42075a+'):\x20'+_0x4ea427['message']);}),this[_0x10ab4b(0x1a6)][_0x42075a]=_0xeb51a3;}logger['info']({'event':_0x4c0bf4[_0x10ab4b(0x205)],'count':0x3,'concurrency':_0x4ffc1f},_0x10ab4b(0x190)+_0x4ffc1f+')');let _0x35759e=0x0;for(const _0x13c62a of _0x41ae38){try{await this[_0x10ab4b(0x215)](_0x13c62a),_0x35759e++;}catch(_0x4f15d0){logger[_0x10ab4b(0x2cd)]({'event':_0x4c0bf4[_0x10ab4b(0x262)],'name':_0x13c62a['name'],'error':_0x4f15d0[_0x10ab4b(0x295)]},_0x10ab4b(0x2bf)+_0x13c62a[_0x10ab4b(0x1ad)]+_0x10ab4b(0x299)+_0x4f15d0['message']);}}this[_0x10ab4b(0x1ed)]=!![];const _0x143280=this[_0x10ab4b(0x1c5)][_0x10ab4b(0x192)];logger['info']({'event':_0x10ab4b(0x1aa),'registeredJobs':_0x35759e,'totalConfigs':_0x41ae38[_0x10ab4b(0x192)],'redisConnections':_0x143280},_0x10ab4b(0x2c2)+_0x35759e+'\x20job(s)\x20registered,\x20'+_0x143280+_0x10ab4b(0x1fb));}async['shutdown'](){const _0x5e4552=a0_0x26ced1,_0x2a8700={'swAYW':'job_manager_shutdown_start','gwNTo':function(_0x57f584,_0x5eddf2){return _0x57f584-_0x5eddf2;},'Dteup':function(_0x26083a,_0x1004e1){return _0x26083a===_0x1004e1;},'SXoen':'job_manager_shutdown_complete','RrSSn':_0x5e4552(0x24c)};if(!this[_0x5e4552(0x1ed)])return;const _0x19330d=parseInt(process['env'][_0x5e4552(0x1f4)],0xa)||0x2710;logger[_0x5e4552(0x25b)]({'event':_0x2a8700[_0x5e4552(0x29d)],'timeoutMs':_0x19330d},'Job\x20Manager\x20shutting\x20down\x20(timeout:\x20'+_0x19330d+'ms)...');const _0x2e83ed=Object[_0x5e4552(0x266)](this['workers'])['map'](async _0x2f1cbc=>{const _0x51b334=_0x5e4552;try{await _0x2f1cbc[_0x51b334(0x2af)]();}catch(_0x58c65f){}});await Promise['all'](_0x2e83ed);const _0x257df6=Date['now']();while(_0x2a8700['gwNTo'](Date['now'](),_0x257df6)<_0x19330d){let _0x1c4508=0x0;for(const _0x499d73 of Object['values'](this['queues'])){try{const _0x44e6cf=await _0x499d73['getJobCounts']('active');_0x1c4508+=_0x44e6cf['active']||0x0;}catch(_0x570aaa){}}if(_0x2a8700[_0x5e4552(0x29a)](_0x1c4508,0x0))break;await new Promise(_0x495418=>setTimeout(_0x495418,0x1f4));}const _0x53a474=Object[_0x5e4552(0x266)](this['workers'])[_0x5e4552(0x26b)](async _0x3d1284=>{const _0x1187d8=_0x5e4552;try{await _0x3d1284[_0x1187d8(0x207)]();}catch(_0x15951c){}});await Promise[_0x5e4552(0x1da)](_0x53a474);const _0x314bd1=Object['values'](this['queues'])['map'](async _0x44f0eb=>{try{await _0x44f0eb['close']();}catch(_0x400b28){}});await Promise['all'](_0x314bd1);for(const _0x120f3c of this['connections']){try{await _0x120f3c[_0x5e4552(0x216)]();}catch(_0x44be34){}}this[_0x5e4552(0x256)]={},this['workers']={},this[_0x5e4552(0x1c5)]=[],await this['setAllJobsOffline'](),this['activeHistoryIds']['clear'](),this['initialized']=![],logger[_0x5e4552(0x25b)]({'event':_0x2a8700['SXoen']},_0x2a8700['RrSSn']);}['loadJobConfigs'](){const _0x4970b4=a0_0x26ced1,_0x533a02={'BpRTg':'payload','vzAcP':'jobs','gWkMV':_0x4970b4(0x193),'KBXpu':'Folder\x20payload/jobs/\x20tidak\x20ditemukan','EDKoY':'utf8','wmFsQ':_0x4970b4(0x1e2),'BZqqX':'job_configs_loaded'},_0x5e0e9e=path[_0x4970b4(0x27d)](this[_0x4970b4(0x229)],_0x533a02[_0x4970b4(0x1d5)],_0x533a02[_0x4970b4(0x1cb)]);if(!fs[_0x4970b4(0x19e)](_0x5e0e9e))return logger[_0x4970b4(0x25b)]({'event':_0x533a02[_0x4970b4(0x1fd)],'path':_0x5e0e9e},_0x533a02[_0x4970b4(0x195)]),[];const _0x17d9e7=fs['readdirSync'](_0x5e0e9e)['filter'](_0x1708bf=>_0x1708bf[_0x4970b4(0x2c1)]('.json')),_0x4653fa=[];for(const _0x1da022 of _0x17d9e7){const _0x4950bb=path['join'](_0x5e0e9e,_0x1da022);try{const _0x43398b=fs['readFileSync'](_0x4950bb,_0x533a02['EDKoY']),_0x2b7d0f=JSON[_0x4970b4(0x1f1)](_0x43398b);_0x2b7d0f[_0x4970b4(0x291)]=_0x1da022,_0x4653fa[_0x4970b4(0x1fc)](_0x2b7d0f);}catch(_0x2ba002){logger[_0x4970b4(0x2cd)]({'event':_0x533a02['wmFsQ'],'file':_0x1da022,'error':_0x2ba002['message']},'Failed\x20to\x20parse\x20job\x20config:\x20'+_0x1da022+_0x4970b4(0x299)+_0x2ba002[_0x4970b4(0x295)]);}}return logger[_0x4970b4(0x25b)]({'event':_0x533a02[_0x4970b4(0x28f)],'count':_0x4653fa[_0x4970b4(0x192)]},'Loaded\x20'+_0x4653fa[_0x4970b4(0x192)]+'\x20job\x20config(s)\x20from\x20payload/jobs/'),_0x4653fa;}async['registerJob'](_0x42ebdc){const _0x285358=a0_0x26ced1,_0x404ffe={'gjrJT':_0x285358(0x2d7),'CKdqH':function(_0xf3d7c7,_0xcf21b2){return _0xf3d7c7(_0xcf21b2);},'FRAVY':function(_0x5a2203,_0x2a67fd){return _0x5a2203===_0x2a67fd;},'fAiAN':'cron','nPxgi':_0x285358(0x248),'QqRfM':'exponential','CayRF':_0x285358(0x22e),'jGSyL':function(_0x4810a5,_0x338254){return _0x4810a5===_0x338254;},'XNAjR':function(_0x1b0a10,_0x42c23f){return _0x1b0a10!==_0x42c23f;},'vvItU':'online','Ofiih':'offline','AJgDP':function(_0x38b2a5,_0x3c32e7){return _0x38b2a5===_0x3c32e7;}},_0x36f219=path['join'](this[_0x285358(0x229)],_0x404ffe['gjrJT'],'jobs',_0x42ebdc[_0x285358(0x20c)]+_0x285358(0x1b1));this['handlers'][_0x42ebdc['name']]=_0x404ffe[_0x285358(0x24b)](require,_0x36f219),this[_0x285358(0x1d1)][_0x42ebdc['name']]=_0x42ebdc;if(_0x404ffe['FRAVY'](_0x42ebdc[_0x285358(0x257)],_0x404ffe['fAiAN'])&&_0x42ebdc['enabled']!==![]){const _0x3a8b2a=this[_0x285358(0x256)][_0x42ebdc[_0x285358(0x22d)]||_0x404ffe[_0x285358(0x2d5)]];await _0x3a8b2a[_0x285358(0x1ae)](_0x42ebdc[_0x285358(0x1ad)],{'pattern':_0x42ebdc['schedule'],'tz':_0x42ebdc['timezone']||undefined},{'name':_0x42ebdc[_0x285358(0x1ad)],'data':{'handler':_0x42ebdc[_0x285358(0x20c)],'triggeredBy':_0x404ffe['fAiAN'],'metadata':_0x42ebdc[_0x285358(0x258)]||{}},'opts':{'attempts':_0x42ebdc['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x42ebdc[_0x285358(0x2ce)]?.['backoff']||_0x404ffe['QqRfM'],'delay':_0x42ebdc['retry']?.['initialDelay']||0x1388},'timeout':_0x42ebdc[_0x285358(0x292)]||0x7530}}),logger['info']({'event':_0x404ffe[_0x285358(0x1e8)],'name':_0x42ebdc['name'],'schedule':_0x42ebdc['schedule'],'queue':_0x42ebdc['queue']||'default'},'Cron\x20registered:\x20'+_0x42ebdc[_0x285358(0x1ad)]+'\x20['+_0x42ebdc['schedule']+']');}const _0xf9da06=_0x404ffe[_0x285358(0x269)](_0x42ebdc['type'],'cron')&&_0x404ffe['XNAjR'](_0x42ebdc['enabled'],![])?_0x404ffe['vvItU']:_0x404ffe['Ofiih'];let _0x3b4e26=null;_0x404ffe['AJgDP'](_0xf9da06,'online')&&(_0x3b4e26=await this[_0x285358(0x1de)](_0x42ebdc[_0x285358(0x1ad)])),await this['upsertJobRegistry'](_0x42ebdc,_0xf9da06,_0x3b4e26);}async[a0_0x26ced1(0x2a9)](_0x208e69){const _0x567421=a0_0x26ced1,_0x2a35c3={'Neluf':'job_history_insert_bg_error','YwLxv':_0x567421(0x2be),'OtEGB':function(_0x1536f6,_0x1b970d){return _0x1536f6+_0x1b970d;},'qKqDT':_0x567421(0x284),'gLiBJ':'api-delayed','khLjQ':_0x567421(0x1b2),'mhmov':function(_0x3b94b2,_0x18bc24){return _0x3b94b2===_0x18bc24;},'JIADs':_0x567421(0x18c),'HMYpt':_0x567421(0x2a3),'CoNAF':function(_0x44460a){return _0x44460a();},'dRVve':_0x567421(0x2b1),'vFQXp':function(_0x250410,_0x5e741d){return _0x250410(_0x5e741d);}},_0x39ff84=this['jobConfigs'][_0x208e69[_0x567421(0x1ad)]],_0x23e59d=this['handlers'][_0x208e69[_0x567421(0x1ad)]];if(!_0x23e59d)throw new Error('Handler\x20tidak\x20ditemukan\x20untuk\x20job:\x20'+_0x208e69[_0x567421(0x1ad)]);const _0x5dfeb5=logger[_0x567421(0x1cd)]({'jobId':_0x208e69['id'],'jobName':_0x208e69[_0x567421(0x1ad)]});_0x5dfeb5['info']({'event':_0x2a35c3[_0x567421(0x199)],'attempt':_0x208e69['attemptsMade']+0x1,'triggeredBy':_0x208e69[_0x567421(0x18b)]?.['triggeredBy']||'unknown'},'Job\x20started:\x20'+_0x208e69['name']+_0x567421(0x2c9)+_0x2a35c3['OtEGB'](_0x208e69['attemptsMade'],0x1)+')');const _0x4a6a74=uuidv7(),_0x17f0f1=_0x208e69[_0x567421(0x18b)]?.[_0x567421(0x208)]||_0x2a35c3[_0x567421(0x1b7)],_0x46820e=this[_0x567421(0x2b6)]({'id':_0x4a6a74,'jobName':_0x208e69['name'],'bullmqJobId':_0x208e69['id'],'triggerType':_0x17f0f1===_0x2a35c3[_0x567421(0x2a2)]?_0x2a35c3['khLjQ']:_0x2a35c3['mhmov'](_0x17f0f1,_0x2a35c3['JIADs'])?_0x567421(0x237):'cron','triggeredBy':_0x17f0f1===_0x2a35c3['HMYpt']?_0x567421(0x272):_0x17f0f1,'queue':_0x39ff84?.['queue']||_0x567421(0x248),'attempt':_0x2a35c3[_0x567421(0x220)](_0x208e69['attemptsMade'],0x1),'configFile':_0x39ff84?.['_sourceFile']||null})[_0x567421(0x1ba)](_0x222e40=>{const _0xda8a3a=_0x567421;_0x5dfeb5[_0xda8a3a(0x191)]({'event':_0x2a35c3[_0xda8a3a(0x234)],'error':_0x222e40[_0xda8a3a(0x295)]},_0xda8a3a(0x1ee)+_0x222e40['message']);});this[_0x567421(0x21f)][_0x567421(0x219)](_0x208e69['id'],{'historyId':_0x4a6a74,'insertPromise':_0x46820e});const _0x357cbe=this['buildContext'](_0x208e69,_0x39ff84,_0x5dfeb5),_0x5e759c=_0x2a35c3[_0x567421(0x250)](getComponentEngine);if(_0x5e759c&&typeof _0x5e759c['executeEventHandlers']===_0x2a35c3['dRVve']){const _0x4f7fb0=await _0x5e759c[_0x567421(0x268)]('onBeforeJobExecute',_0x357cbe,!![]);if(!_0x4f7fb0[_0x567421(0x29b)])throw new Error('Job\x20cancelled\x20by\x20onBeforeJobExecute:\x20'+_0x4f7fb0['error']);}const _0xf87b57=await _0x2a35c3['vFQXp'](_0x23e59d,_0x357cbe);return _0x5dfeb5['info']({'event':'job_handler_done','result':_0xf87b57},_0x567421(0x2a5)+_0x208e69['name']),_0xf87b57;}[a0_0x26ced1(0x18d)](_0x34b62b,_0x30c7ba,_0x2e506f){const _0x3053cd=a0_0x26ced1,_0x4cb9a3={'kWnUL':_0x3053cd(0x227),'rTMOs':_0x3053cd(0x28c),'mwgRx':function(_0x104d02,_0x4df24d){return _0x104d02+_0x4df24d;},'gfVMb':function(_0x26d747,_0x47a706){return _0x26d747||_0x47a706;}};return{'jobId':_0x34b62b['id'],'jobName':_0x34b62b[_0x3053cd(0x1ad)],'attempt':_0x4cb9a3['mwgRx'](_0x34b62b['attemptsMade'],0x1),'maxAttempts':_0x30c7ba?.[_0x3053cd(0x2ce)]?.['maxAttempts']||0x3,'payload':_0x34b62b['data']||{},'config':_0x4cb9a3['gfVMb'](_0x30c7ba,{}),'db':this[_0x3053cd(0x1ce)](),'redis':this[_0x3053cd(0x200)](),'logger':_0x2e506f,'kafka':this[_0x3053cd(0x1d4)](),'cache':this['getCacheManager'](),'updateProgress':async _0x7ac272=>{await _0x34b62b['updateProgress'](_0x7ac272);},'emit':async(_0x2f471c,_0x254fb8)=>{const _0x5b2feb=_0x3053cd,_0x2946e9=this['getKafkaService']();_0x2946e9&&await _0x2946e9[_0x5b2feb(0x1d3)](_0x2f471c,_0x4cb9a3[_0x5b2feb(0x251)],null,_0x254fb8,{'module':_0x4cb9a3[_0x5b2feb(0x1f5)],'endpoint':_0x34b62b['name']});},'job':_0x34b62b};}[a0_0x26ced1(0x20a)](){const _0x55b0c5=a0_0x26ced1,_0x5497a0={'pYHGF':_0x55b0c5(0x1d2)};return(process['env']['DB_TYPE']||_0x5497a0[_0x55b0c5(0x280)])['toLowerCase']();}async['ensureTables'](){const _0x50a572=a0_0x26ced1,_0x58d2d3={'sadyc':_0x50a572(0x276),'tsuIl':'Database\x20tidak\x20tersedia,\x20skip\x20auto-create\x20job\x20tables','mdcYZ':'oracle.sql','nFQti':_0x50a572(0x1a7),'TtYjz':_0x50a572(0x25d),'dsyfW':'job_sql_not_found','oRuia':_0x50a572(0x2b9),'jUBUh':_0x50a572(0x1a8),'GgrKK':'job_ensure_tables_warn'},_0x181097=this[_0x50a572(0x1ce)]();if(!_0x181097){logger['warn']({'event':_0x58d2d3[_0x50a572(0x240)]},_0x58d2d3['tsuIl']);return;}const _0x46385b=this[_0x50a572(0x20a)](),_0x132a52={'postgresql':_0x50a572(0x201),'oracle':_0x58d2d3[_0x50a572(0x228)],'mysql':_0x58d2d3['nFQti']},_0x13114d=_0x132a52[_0x46385b];if(!_0x13114d){logger[_0x50a572(0x191)]({'event':_0x58d2d3['TtYjz'],'dbType':_0x46385b},_0x50a572(0x249)+_0x46385b+_0x50a572(0x204));return;}const _0x5c3f23=path[_0x50a572(0x27d)](__dirname,'sql-scripts',_0x13114d);if(!fs['existsSync'](_0x5c3f23)){logger[_0x50a572(0x191)]({'event':_0x58d2d3['dsyfW'],'path':_0x5c3f23},_0x50a572(0x24e)+_0x5c3f23);return;}const _0x454efa=fs[_0x50a572(0x1c9)](_0x5c3f23,_0x50a572(0x209)),_0x45f8c2=this['splitSqlStatements'](_0x454efa,_0x46385b);let _0x55b427=0x0;for(const _0x480396 of _0x45f8c2){try{await _0x181097['executeQuery'](_0x480396),_0x55b427++;}catch(_0x172bdc){const _0x387b8a=(_0x172bdc[_0x50a572(0x295)]||'')['toLowerCase'](),_0x5ac210=_0x387b8a['includes'](_0x58d2d3[_0x50a572(0x1eb)])||_0x387b8a[_0x50a572(0x274)](_0x58d2d3[_0x50a572(0x2b0)])||_0x387b8a[_0x50a572(0x274)](_0x50a572(0x211));!_0x5ac210&&logger['warn']({'event':_0x58d2d3['GgrKK'],'error':_0x172bdc[_0x50a572(0x295)]},_0x50a572(0x1f0)+_0x172bdc[_0x50a572(0x295)]);}}logger['info']({'event':_0x50a572(0x27e),'dbType':_0x46385b,'executed':_0x55b427},'Job\x20monitoring\x20tables\x20ensured\x20('+_0x46385b+')');}['splitSqlStatements'](_0x73c106,_0x46cf6c){const _0x13de4f=a0_0x26ced1,_0x1a14de={'ukEnO':function(_0x16393e,_0x25d477){return _0x16393e===_0x25d477;}};let _0x155ce3;return _0x46cf6c===_0x13de4f(0x293)?_0x155ce3=_0x73c106[_0x13de4f(0x235)](/\n\/\s*(?:\n|$)/):_0x155ce3=_0x73c106[_0x13de4f(0x235)](/;\s*(?:\n|$)/),_0x155ce3['map'](_0x4b7ed4=>_0x4b7ed4['trim']())[_0x13de4f(0x22f)](_0x206163=>{const _0x25ea3c=_0x13de4f;if(_0x1a14de[_0x25ea3c(0x1fe)](_0x206163['length'],0x0))return![];const _0x4c6e0c=_0x206163['split']('\x0a')[_0x25ea3c(0x22f)](_0x13c305=>!_0x13c305[_0x25ea3c(0x223)]()['startsWith']('--')&&_0x13c305[_0x25ea3c(0x223)]()['length']>0x0);return _0x4c6e0c['length']>0x0;});}async[a0_0x26ced1(0x25c)](_0x3696be,_0x1e5b22=a0_0x26ced1(0x1d7),_0x232626=null){const _0x2445b5=a0_0x26ced1,_0x8b6958={'YWowd':'cron','Iwxns':'default','AnzUH':'exponential','oHTYW':function(_0x3d7a72,_0x3b8d39){return _0x3d7a72===_0x3b8d39;},'IHYvt':_0x2445b5(0x293),'HAVwW':function(_0x5b0003,_0xd8333c){return _0x5b0003===_0xd8333c;},'mCfMx':'mysql'},_0x2f21ac=this['getDbUtils']();if(!_0x2f21ac)return;const _0x41fd59=this['getDbType'](),_0x4fe2e0=[_0x3696be[_0x2445b5(0x1ad)],_0x3696be[_0x2445b5(0x20f)]||_0x3696be['name'],_0x3696be[_0x2445b5(0x257)]||_0x8b6958['YWowd'],_0x3696be['schedule']||null,_0x3696be[_0x2445b5(0x22d)]||_0x8b6958['Iwxns'],_0x3696be['handler'],_0x3696be[_0x2445b5(0x291)]||'',_0x3696be[_0x2445b5(0x292)]||0x7530,_0x3696be[_0x2445b5(0x2ce)]?.['maxAttempts']||0x3,_0x3696be['retry']?.['backoff']||_0x8b6958['AnzUH'],_0x1e5b22,_0x232626];try{if(_0x8b6958['oHTYW'](_0x41fd59,_0x8b6958[_0x2445b5(0x1ea)]))await _0x2f21ac['executeQuery'](_0x2445b5(0x281),_0x4fe2e0);else _0x8b6958['HAVwW'](_0x41fd59,_0x8b6958[_0x2445b5(0x1a3)])?await _0x2f21ac[_0x2445b5(0x23e)]('INSERT\x20INTO\x20job_registry\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(job_name,\x20display_name,\x20type,\x20schedule,\x20queue,\x20handler,\x20config_file,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20timeout,\x20retry_max,\x20retry_backoff,\x20status,\x20next_run_at,\x20created_at,\x20updated_at)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20NOW(),\x20NOW())\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20DUPLICATE\x20KEY\x20UPDATE\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display_name\x20=\x20VALUES(display_name),\x20type\x20=\x20VALUES(type),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20schedule\x20=\x20VALUES(schedule),\x20queue\x20=\x20VALUES(queue),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20handler\x20=\x20VALUES(handler),\x20config_file\x20=\x20VALUES(config_file),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20timeout\x20=\x20VALUES(timeout),\x20retry_max\x20=\x20VALUES(retry_max),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20retry_backoff\x20=\x20VALUES(retry_backoff),\x20status\x20=\x20VALUES(status),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20next_run_at\x20=\x20VALUES(next_run_at)',_0x4fe2e0):await _0x2f21ac[_0x2445b5(0x23e)]('INSERT\x20INTO\x20job_registry\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(job_name,\x20display_name,\x20type,\x20schedule,\x20queue,\x20handler,\x20config_file,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20timeout,\x20retry_max,\x20retry_backoff,\x20status,\x20next_run_at,\x20created_at,\x20updated_at)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$5,\x20$6,\x20$7,\x20$8,\x20$9,\x20$10,\x20$11,\x20$12,\x20NOW(),\x20NOW())\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20CONFLICT\x20(job_name)\x20DO\x20UPDATE\x20SET\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display_name\x20=\x20EXCLUDED.display_name,\x20type\x20=\x20EXCLUDED.type,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20schedule\x20=\x20EXCLUDED.schedule,\x20queue\x20=\x20EXCLUDED.queue,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20handler\x20=\x20EXCLUDED.handler,\x20config_file\x20=\x20EXCLUDED.config_file,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20timeout\x20=\x20EXCLUDED.timeout,\x20retry_max\x20=\x20EXCLUDED.retry_max,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20retry_backoff\x20=\x20EXCLUDED.retry_backoff,\x20status\x20=\x20EXCLUDED.status,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20next_run_at\x20=\x20EXCLUDED.next_run_at,\x20updated_at\x20=\x20NOW()',_0x4fe2e0);}catch(_0x16ec0b){logger['warn']({'event':_0x2445b5(0x2c5),'name':_0x3696be[_0x2445b5(0x1ad)],'error':_0x16ec0b[_0x2445b5(0x295)]},_0x2445b5(0x22a)+_0x3696be['name']+_0x2445b5(0x299)+_0x16ec0b['message']);}}async['insertJobHistory'](_0x41cb68){const _0x1a201c=a0_0x26ced1,_0x20cb77={'IQNGt':'cron','EbjSW':function(_0x3058c1,_0x268ee1){return _0x3058c1===_0x268ee1;},'CMrHC':function(_0x3b3133,_0x58abac){return _0x3b3133===_0x58abac;}},_0x55bbf8=this['getDbUtils']();if(!_0x55bbf8)return;const _0x541ea5=this[_0x1a201c(0x20a)](),_0x2cc1b9=[_0x41cb68['id'],_0x41cb68['jobName'],_0x41cb68['bullmqJobId']||null,_0x41cb68['triggerType']||_0x20cb77[_0x1a201c(0x236)],_0x41cb68['triggeredBy']||_0x1a201c(0x272),_0x41cb68['queue']||'default',_0x41cb68[_0x1a201c(0x1b6)]||0x1,_0x41cb68[_0x1a201c(0x19c)]||null,process['pid']];try{if(_0x20cb77['EbjSW'](_0x541ea5,_0x1a201c(0x293)))await _0x55bbf8[_0x1a201c(0x23e)](_0x1a201c(0x1a4),_0x2cc1b9);else _0x20cb77[_0x1a201c(0x23b)](_0x541ea5,_0x1a201c(0x1e5))?await _0x55bbf8['executeQuery'](_0x1a201c(0x282),_0x2cc1b9):await _0x55bbf8[_0x1a201c(0x23e)]('INSERT\x20INTO\x20job_history\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(id,\x20job_name,\x20bullmq_job_id,\x20trigger_type,\x20triggered_by,\x20status,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20queue,\x20attempt,\x20config_file,\x20started_at,\x20worker_pid,\x20created_at)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$5,\x20\x27running\x27,\x20$6,\x20$7,\x20$8,\x20NOW(),\x20$9,\x20NOW())',_0x2cc1b9);await this['updateRegistryStatus'](_0x41cb68['jobName'],_0x1a201c(0x1e0));}catch(_0x99ec9b){logger['warn']({'event':_0x1a201c(0x2cf),'jobName':_0x41cb68[_0x1a201c(0x20b)],'error':_0x99ec9b['message']},_0x1a201c(0x270)+_0x99ec9b[_0x1a201c(0x295)]);}}async['updateJobHistoryCompleted'](_0x3f06de,_0x2fc967,_0x31d5e1){const _0x30e09e=a0_0x26ced1,_0x23c814={'LuHyd':_0x30e09e(0x293),'OTpcN':_0x30e09e(0x1e5),'tEBHl':'job_history_complete_error'},_0x12ebb3=this[_0x30e09e(0x1ce)]();if(!_0x12ebb3)return;const _0x4fcc09=this[_0x30e09e(0x20a)](),_0x12a986=_0x31d5e1?String(_0x31d5e1)[_0x30e09e(0x1ca)](0x0,0x1f4):null;try{if(_0x4fcc09===_0x23c814[_0x30e09e(0x255)])await _0x12ebb3[_0x30e09e(0x23e)]('UPDATE\x20job_history\x20SET\x20status\x20=\x20\x27success\x27,\x20completed_at\x20=\x20SYSTIMESTAMP,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20duration_ms\x20=\x20:1,\x20progress\x20=\x20100,\x20result_summary\x20=\x20:2\x20WHERE\x20id\x20=\x20:3',[_0x2fc967,_0x12a986,_0x3f06de]);else _0x4fcc09===_0x23c814['OTpcN']?await _0x12ebb3['executeQuery'](_0x30e09e(0x2bb),[_0x2fc967,_0x12a986,_0x3f06de]):await _0x12ebb3[_0x30e09e(0x23e)]('UPDATE\x20job_history\x20SET\x20status\x20=\x20\x27success\x27,\x20completed_at\x20=\x20NOW(),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20duration_ms\x20=\x20$1,\x20progress\x20=\x20100,\x20result_summary\x20=\x20$2\x20WHERE\x20id\x20=\x20$3',[_0x2fc967,_0x12a986,_0x3f06de]);}catch(_0x115768){logger[_0x30e09e(0x191)]({'event':_0x23c814['tEBHl'],'historyId':_0x3f06de,'error':_0x115768['message']},_0x30e09e(0x1b5)+_0x115768[_0x30e09e(0x295)]);}}async['updateJobHistoryFailed'](_0x137500,_0x1e12a7,_0x1f89c2,_0x143b7e,_0x521117){const _0x3c7384=a0_0x26ced1,_0x11fcf8={'ydVxt':function(_0x1c2622,_0x314d76){return _0x1c2622(_0x314d76);},'KUTeY':function(_0xd2a274,_0x3eaea1){return _0xd2a274(_0x3eaea1);},'cqfnq':function(_0x19b4e8,_0x15a036){return _0x19b4e8===_0x15a036;},'tdeyO':'oracle','nSlNN':function(_0xb966ec,_0x30393c){return _0xb966ec||_0x30393c;},'kNRZm':function(_0x943779,_0x4beca1){return _0x943779===_0x4beca1;},'dCmVn':'job_history_failed_error'},_0x5d664d=this[_0x3c7384(0x1ce)]();if(!_0x5d664d)return;const _0x201da2=this[_0x3c7384(0x20a)](),_0x4e8be8=_0x143b7e?_0x11fcf8[_0x3c7384(0x25a)](String,_0x143b7e)[_0x3c7384(0x1ca)](0x0,0x3e8):null,_0x597c96=_0x521117?_0x11fcf8[_0x3c7384(0x289)](String,_0x521117)[_0x3c7384(0x1ca)](0x0,0xfa0):null;try{if(_0x11fcf8[_0x3c7384(0x1a2)](_0x201da2,_0x11fcf8['tdeyO']))await _0x5d664d[_0x3c7384(0x23e)](_0x3c7384(0x273),[_0x1e12a7,_0x11fcf8['nSlNN'](_0x1f89c2,0x0),_0x4e8be8,_0x597c96,_0x137500]);else _0x11fcf8['kNRZm'](_0x201da2,'mysql')?await _0x5d664d['executeQuery']('UPDATE\x20job_history\x20SET\x20status\x20=\x20\x27failed\x27,\x20completed_at\x20=\x20NOW(),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20duration_ms\x20=\x20?,\x20progress\x20=\x20?,\x20error_message\x20=\x20?,\x20error_stack\x20=\x20?\x20WHERE\x20id\x20=\x20?',[_0x1e12a7,_0x1f89c2||0x0,_0x4e8be8,_0x597c96,_0x137500]):await _0x5d664d['executeQuery'](_0x3c7384(0x1f8),[_0x1e12a7,_0x1f89c2||0x0,_0x4e8be8,_0x597c96,_0x137500]);}catch(_0x5c001c){logger['warn']({'event':_0x11fcf8['dCmVn'],'historyId':_0x137500,'error':_0x5c001c['message']},'Failed\x20to\x20update\x20job\x20history\x20(failed):\x20'+_0x5c001c[_0x3c7384(0x295)]);}}async[a0_0x26ced1(0x2b4)](_0x2bae60,_0x6534ea){const _0x384062=a0_0x26ced1,_0x3f9444={'UEwaZ':function(_0x4885eb,_0x58c2d3){return _0x4885eb===_0x58c2d3;},'DdoaK':_0x384062(0x293),'HZsKB':'mysql'},_0x26375f=this[_0x384062(0x1ce)]();if(!_0x26375f)return;const _0x4d0825=this[_0x384062(0x20a)]();try{if(_0x3f9444[_0x384062(0x29c)](_0x4d0825,_0x3f9444[_0x384062(0x1e7)]))await _0x26375f['executeQuery']('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20:1,\x20last_run_at\x20=\x20SYSTIMESTAMP,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updated_at\x20=\x20SYSTIMESTAMP\x20WHERE\x20job_name\x20=\x20:2',[_0x6534ea,_0x2bae60]);else _0x3f9444['UEwaZ'](_0x4d0825,_0x3f9444['HZsKB'])?await _0x26375f[_0x384062(0x23e)]('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20?,\x20last_run_at\x20=\x20NOW()\x20WHERE\x20job_name\x20=\x20?',[_0x6534ea,_0x2bae60]):await _0x26375f['executeQuery'](_0x384062(0x18f),[_0x6534ea,_0x2bae60]);}catch(_0x151b34){}}async['updateRegistryCounters'](_0x520dbe,_0x253f99,_0x1833fd,_0x2b4522){const _0x4acd18=a0_0x26ced1,_0xb3e42d={'tLsMs':function(_0x3a820f,_0x2be926){return _0x3a820f===_0x2be926;},'jEaVw':_0x4acd18(0x1bd),'toNIx':'total_failed','wDFLH':function(_0x56420b,_0x26c44d){return _0x56420b===_0x26c44d;},'GCpHU':'oracle','wBcKw':_0x4acd18(0x1e5)},_0x4b5394=this[_0x4acd18(0x1ce)]();if(!_0x4b5394)return;const _0x43ee7f=this['getDbType'](),_0x16e8ae=_0xb3e42d[_0x4acd18(0x1be)](_0x253f99,_0x4acd18(0x29b))?_0xb3e42d[_0x4acd18(0x1c0)]:_0xb3e42d['toNIx'];try{if(_0xb3e42d[_0x4acd18(0x22c)](_0x43ee7f,_0xb3e42d['GCpHU']))await _0x4b5394[_0x4acd18(0x23e)](_0x4acd18(0x1db)+_0x16e8ae+_0x4acd18(0x225)+_0x16e8ae+'\x20+\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20next_run_at\x20=\x20:3,\x20updated_at\x20=\x20SYSTIMESTAMP\x20WHERE\x20job_name\x20=\x20:4',[_0x253f99,_0x1833fd,_0x2b4522,_0x520dbe]);else _0xb3e42d['tLsMs'](_0x43ee7f,_0xb3e42d[_0x4acd18(0x243)])?await _0x4b5394['executeQuery']('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20?,\x20last_duration_ms\x20=\x20?,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x16e8ae+_0x4acd18(0x225)+_0x16e8ae+_0x4acd18(0x222),[_0x253f99,_0x1833fd,_0x2b4522,_0x520dbe]):await _0x4b5394[_0x4acd18(0x23e)](_0x4acd18(0x23c)+_0x16e8ae+'\x20=\x20'+_0x16e8ae+'\x20+\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20next_run_at\x20=\x20$3,\x20updated_at\x20=\x20NOW()\x20WHERE\x20job_name\x20=\x20$4',[_0x253f99,_0x1833fd,_0x2b4522,_0x520dbe]);}catch(_0x20b8bb){logger['warn']({'event':'job_registry_counter_error','jobName':_0x520dbe,'error':_0x20b8bb[_0x4acd18(0x295)]},_0x4acd18(0x213)+_0x20b8bb[_0x4acd18(0x295)]);}}async['getNextRunFromBullMQ'](_0x5b1fd5){const _0x54199e=a0_0x26ced1,_0x2c007d={'txeIV':function(_0x2c55f3,_0x211651){return _0x2c55f3!==_0x211651;},'vAzUi':function(_0x58a5f7,_0x5eb49f){return _0x58a5f7===_0x5eb49f;}},_0x12021f=this[_0x54199e(0x1d1)][_0x5b1fd5];if(!_0x12021f||_0x2c007d['txeIV'](_0x12021f[_0x54199e(0x257)],'cron')||_0x2c007d['vAzUi'](_0x12021f[_0x54199e(0x28a)],![]))return null;const _0x431ce2=this[_0x54199e(0x256)][_0x12021f[_0x54199e(0x22d)]||_0x54199e(0x248)];if(!_0x431ce2)return null;try{if(typeof _0x431ce2['getJobSchedulers']==='function'){const _0x3723eb=await _0x431ce2[_0x54199e(0x203)](0x0,0x64),_0xf3b0ed=_0x3723eb['find'](_0xab1f18=>_0xab1f18['name']===_0x5b1fd5);return _0xf3b0ed?.['next']?new Date(_0xf3b0ed[_0x54199e(0x2c8)]):null;}}catch(_0x4be0f4){}return null;}async['setAllJobsOffline'](){const _0x2bd28c=a0_0x26ced1,_0x4a5a41={'OMhZV':function(_0x2b343e,_0x5dd7c7){return _0x2b343e===_0x5dd7c7;},'XAoot':'oracle'},_0x9b2f57=this['getDbUtils']();if(!_0x9b2f57)return;const _0x3eaf1e=this[_0x2bd28c(0x20a)]();try{if(_0x4a5a41[_0x2bd28c(0x2c4)](_0x3eaf1e,_0x4a5a41[_0x2bd28c(0x21c)]))await _0x9b2f57['executeQuery'](_0x2bd28c(0x230));else _0x3eaf1e==='mysql'?await _0x9b2f57[_0x2bd28c(0x23e)]('UPDATE\x20job_registry\x20SET\x20status\x20=\x20\x27offline\x27,\x20next_run_at\x20=\x20NULL'):await _0x9b2f57[_0x2bd28c(0x23e)]('UPDATE\x20job_registry\x20SET\x20status\x20=\x20\x27offline\x27,\x20next_run_at\x20=\x20NULL,\x20updated_at\x20=\x20NOW()');}catch(_0x338397){logger['warn']({'event':_0x2bd28c(0x1cc),'error':_0x338397[_0x2bd28c(0x295)]},'Failed\x20to\x20set\x20jobs\x20offline:\x20'+_0x338397['message']);}}[a0_0x26ced1(0x1ce)](){const _0x2b4216=a0_0x26ced1,_0x15d682={'xceQi':'postgresql','sncVO':_0x2b4216(0x245),'EGahL':'Oracle\x20DB\x20module\x20not\x20available','WfaGX':function(_0x5ab4a2,_0x2d8f7b){return _0x5ab4a2===_0x2d8f7b;},'gDHWi':_0x2b4216(0x1ff),'LBhPw':'../../utils/db','PoavN':'db_pg_unavailable'},_0x35061b=(process[_0x2b4216(0x24a)][_0x2b4216(0x2c3)]||_0x15d682[_0x2b4216(0x1c6)])['toLowerCase']();if(_0x35061b===_0x2b4216(0x293))try{const _0x491905=require(_0x15d682[_0x2b4216(0x27a)]);return{'executeQuery':(_0x427336,_0x44e968)=>_0x491905['executeQuery'](_0x427336,_0x44e968),'executeTransaction':_0x4da223=>_0x491905[_0x2b4216(0x247)](_0x4da223),'getPool':()=>_0x491905[_0x2b4216(0x2c6)]()};}catch(_0x155d6b){return logger['warn']({'event':_0x2b4216(0x1c2)},_0x15d682[_0x2b4216(0x2d1)]),null;}if(_0x15d682['WfaGX'](_0x35061b,_0x2b4216(0x1e5)))try{const _0x3105af=require('../../utils/db-mysql');return{'executeQuery':(_0x27e0f,_0x32c85f)=>_0x3105af['executeQuery'](_0x27e0f,_0x32c85f),'executeTransaction':_0x15a01c=>_0x3105af[_0x2b4216(0x247)](_0x15a01c),'getPool':()=>_0x3105af[_0x2b4216(0x2c6)]()};}catch(_0x361da7){return logger['warn']({'event':_0x15d682['gDHWi']},_0x2b4216(0x214)),null;}try{const _0xfbb983=require(_0x15d682[_0x2b4216(0x25e)]);return{'executeQuery':_0xfbb983[_0x2b4216(0x23e)],'executeTransaction':_0xfbb983['executeTransaction'],'getPool':_0xfbb983[_0x2b4216(0x2c6)]};}catch(_0x5b257c){return logger[_0x2b4216(0x191)]({'event':_0x15d682['PoavN']},_0x2b4216(0x26d)),null;}}[a0_0x26ced1(0x200)](){const _0x47bd94=a0_0x26ced1,_0x4265aa={'PEYTD':_0x47bd94(0x2a0)};try{const _0x39bf00=require(_0x4265aa[_0x47bd94(0x26f)]);return _0x39bf00['getClient']?_0x39bf00[_0x47bd94(0x264)]():_0x39bf00;}catch(_0x27b505){return null;}}[a0_0x26ced1(0x1d4)](){const _0x2e03f7=a0_0x26ced1,_0x452a58={'dEJXW':function(_0x20e1ff,_0x1448e8){return _0x20e1ff===_0x1448e8;},'EZRvE':'true','rjXcD':function(_0x206257,_0x5eaa0d){return _0x206257(_0x5eaa0d);}};try{if(_0x452a58[_0x2e03f7(0x21b)](process[_0x2e03f7(0x24a)]['KAFKA_ENABLED'],_0x452a58['EZRvE'])){const _0x10218e=_0x452a58[_0x2e03f7(0x233)](require,_0x2e03f7(0x226));return _0x10218e[_0x2e03f7(0x1bb)]?_0x10218e['getInstance']():_0x10218e;}}catch(_0x52d1d4){}return null;}['getCacheManager'](){const _0x56a145=a0_0x26ced1,_0xd83fd2={'eHCSr':function(_0x3980e9,_0xb46145){return _0x3980e9(_0xb46145);},'awkCo':_0x56a145(0x2ba)};try{return _0xd83fd2[_0x56a145(0x287)](require,_0xd83fd2[_0x56a145(0x1dd)]);}catch(_0x249892){return null;}}async[a0_0x26ced1(0x1d6)](_0x4588be,_0x411fb7={}){const _0x551568=a0_0x26ced1,_0x1244e8={'wdPkC':_0x551568(0x248),'xeafB':'api','wEWvt':'job_dispatched'},_0x28b052=this['jobConfigs'][_0x4588be];if(!_0x28b052)throw new Error(_0x551568(0x1a9)+_0x4588be);const _0x5e6ed5=this[_0x551568(0x256)][_0x28b052[_0x551568(0x22d)]||_0x1244e8['wdPkC']],_0x11d93f=await _0x5e6ed5[_0x551568(0x2d6)](_0x4588be,{..._0x411fb7,'handler':_0x28b052['handler'],'triggeredBy':_0x1244e8['xeafB']},{'attempts':_0x28b052[_0x551568(0x2ce)]?.[_0x551568(0x263)]||0x3,'backoff':{'type':_0x28b052[_0x551568(0x2ce)]?.['backoff']||'exponential','delay':_0x28b052[_0x551568(0x2ce)]?.['initialDelay']||0x1388},'timeout':_0x28b052['timeout']||0x7530});return logger[_0x551568(0x25b)]({'event':_0x1244e8['wEWvt'],'jobId':_0x11d93f['id'],'name':_0x4588be,'triggeredBy':_0x1244e8[_0x551568(0x23a)]},_0x551568(0x26e)+_0x4588be+'\x20(id:\x20'+_0x11d93f['id']+')'),{'jobId':_0x11d93f['id'],'name':_0x4588be};}async[a0_0x26ced1(0x2ad)](_0x21b91c,_0x3ac0dd={},_0x4e8fed=0x0){const _0x144002=a0_0x26ced1,_0x4c5306={'irHJe':_0x144002(0x248),'gVvhr':'exponential','wPiji':_0x144002(0x2aa)},_0x2468f8=this[_0x144002(0x1d1)][_0x21b91c];if(!_0x2468f8)throw new Error('Job\x20tidak\x20ditemukan:\x20'+_0x21b91c);const _0x500bed=this['queues'][_0x2468f8['queue']||_0x4c5306['irHJe']],_0x228a4b=await _0x500bed['add'](_0x21b91c,{..._0x3ac0dd,'handler':_0x2468f8['handler'],'triggeredBy':'api-delayed'},{'delay':_0x4e8fed,'attempts':_0x2468f8[_0x144002(0x2ce)]?.[_0x144002(0x263)]||0x3,'backoff':{'type':_0x2468f8['retry']?.['backoff']||_0x4c5306['gVvhr'],'delay':_0x2468f8['retry']?.[_0x144002(0x2c0)]||0x1388},'timeout':_0x2468f8[_0x144002(0x292)]||0x7530});return logger[_0x144002(0x25b)]({'event':_0x4c5306[_0x144002(0x19d)],'jobId':_0x228a4b['id'],'name':_0x21b91c,'delayMs':_0x4e8fed},'Job\x20dispatched\x20(delayed\x20'+_0x4e8fed+_0x144002(0x246)+_0x21b91c+'\x20(id:\x20'+_0x228a4b['id']+')'),{'jobId':_0x228a4b['id'],'name':_0x21b91c};}async[a0_0x26ced1(0x279)](_0x3a56af){const _0x5730c5=a0_0x26ced1;for(const _0x390fd6 of Object[_0x5730c5(0x266)](this['queues'])){const _0x273566=await _0x390fd6['getJob'](_0x3a56af);if(_0x273566){const _0x3a2b2c=await _0x273566[_0x5730c5(0x212)]();return{'jobId':_0x273566['id'],'name':_0x273566[_0x5730c5(0x1ad)],'state':_0x3a2b2c,'progress':_0x273566[_0x5730c5(0x202)],'attemptsMade':_0x273566['attemptsMade'],'failedReason':_0x273566[_0x5730c5(0x244)],'returnvalue':_0x273566['returnvalue'],'data':_0x273566[_0x5730c5(0x18b)],'timestamps':{'created':_0x273566[_0x5730c5(0x1e3)],'started':_0x273566[_0x5730c5(0x278)],'completed':_0x273566['finishedOn']}};}}return null;}[a0_0x26ced1(0x18a)](){const _0x2479c0=a0_0x26ced1;return Object['values'](this[_0x2479c0(0x1d1)])['map'](_0xc0aa49=>({'name':_0xc0aa49[_0x2479c0(0x1ad)],'description':_0xc0aa49['description']||'','type':_0xc0aa49['type'],'schedule':_0xc0aa49['schedule'],'handler':_0xc0aa49[_0x2479c0(0x20c)],'enabled':_0xc0aa49[_0x2479c0(0x28a)]!==![],'queue':_0xc0aa49['queue']||_0x2479c0(0x248),'timeout':_0xc0aa49[_0x2479c0(0x292)]||0x7530,'retry':_0xc0aa49[_0x2479c0(0x2ce)]||{'maxAttempts':0x3,'backoff':'exponential','initialDelay':0x1388},'metadata':_0xc0aa49[_0x2479c0(0x258)]||{}}));}async[a0_0x26ced1(0x20d)](){const _0x555c31=a0_0x26ced1,_0x49c2b1={'DMTWb':_0x555c31(0x19b)},_0x14fd50=[];for(const [_0x2e2f1f,_0x8d9b20]of Object['entries'](this['queues'])){const _0x1cfb2a=await _0x8d9b20['getJobs']([_0x49c2b1['DMTWb']]);for(const _0x389384 of _0x1cfb2a){_0x14fd50[_0x555c31(0x1fc)]({'jobId':_0x389384['id'],'name':_0x389384[_0x555c31(0x1ad)],'queue':_0x2e2f1f,'progress':_0x389384['progress'],'attemptsMade':_0x389384[_0x555c31(0x238)],'startedAt':_0x389384[_0x555c31(0x278)]});}}return _0x14fd50;}async['getHistory'](_0x263107={}){const _0x21aa07=a0_0x26ced1,_0xe50a9d={'zxqvH':function(_0x57692d,_0x442d4f,_0x21d233){return _0x57692d(_0x442d4f,_0x21d233);},'hGAVz':function(_0x21ad79,_0x2f92c8,_0x13f1eb){return _0x21ad79(_0x2f92c8,_0x13f1eb);},'NofdF':function(_0x42dbd1,_0x55a084){return _0x42dbd1-_0x55a084;},'tKRhD':function(_0x35793a,_0x50a216){return _0x35793a+_0x50a216;},'pWdnc':'completed'},_0x3c99f1=_0xe50a9d[_0x21aa07(0x24d)](parseInt,_0x263107['page'],0xa)||0x1,_0x96975e=Math[_0x21aa07(0x27c)](_0xe50a9d['hGAVz'](parseInt,_0x263107['limit'],0xa)||0x14,0x64),_0x374d90=(_0x3c99f1-0x1)*_0x96975e,_0x38678c=_0xe50a9d['NofdF'](_0xe50a9d[_0x21aa07(0x196)](_0x374d90,_0x96975e),0x1),_0x4caf96=[];for(const [_0x440fd8,_0x28bfec]of Object['entries'](this['queues'])){const _0x4f0263=await _0x28bfec[_0x21aa07(0x210)]([_0xe50a9d['pWdnc']],_0x374d90,_0x38678c),_0x3b3d5c=await _0x28bfec[_0x21aa07(0x210)]([_0x21aa07(0x18e)],_0x374d90,_0x38678c);for(const _0x396c42 of[..._0x4f0263,..._0x3b3d5c]){const _0x280c16=await _0x396c42['getState']();_0x4caf96[_0x21aa07(0x1fc)]({'jobId':_0x396c42['id'],'name':_0x396c42['name'],'state':_0x280c16,'queue':_0x440fd8,'attemptsMade':_0x396c42['attemptsMade'],'failedReason':_0x396c42[_0x21aa07(0x244)],'returnvalue':_0x396c42['returnvalue'],'timestamps':{'created':_0x396c42['timestamp'],'started':_0x396c42[_0x21aa07(0x278)],'completed':_0x396c42['finishedOn']}});}}return _0x4caf96['sort']((_0x348346,_0x514cdc)=>(_0x514cdc[_0x21aa07(0x2c7)][_0x21aa07(0x26c)]||0x0)-(_0x348346[_0x21aa07(0x2c7)]['created']||0x0)),{'jobs':_0x4caf96[_0x21aa07(0x2d2)](0x0,_0x96975e),'total':_0x4caf96['length'],'page':_0x3c99f1,'limit':_0x96975e};}async[a0_0x26ced1(0x1b8)](_0x46dca6){const _0x1f6e0e=a0_0x26ced1,_0x302aa5={'KGHrp':_0x1f6e0e(0x2b8),'HRRNT':'api-cancel','HTYOG':_0x1f6e0e(0x1fa)};for(const _0x2f4817 of Object['values'](this['queues'])){const _0x4cb000=await _0x2f4817[_0x1f6e0e(0x1c3)](_0x46dca6);if(_0x4cb000){const _0x2d64e7=await _0x4cb000[_0x1f6e0e(0x212)]();if(_0x2d64e7==='active')return await _0x4cb000[_0x1f6e0e(0x218)](new Error(_0x302aa5[_0x1f6e0e(0x297)]),_0x302aa5[_0x1f6e0e(0x1e6)],!![]),{'success':!![],'message':_0x1f6e0e(0x1ef)+_0x46dca6+'\x20cancelled\x20(was\x20active)'};if(_0x2d64e7===_0x302aa5['HTYOG']||_0x2d64e7==='delayed')return await _0x4cb000[_0x1f6e0e(0x2ca)](),{'success':!![],'message':'Job\x20'+_0x46dca6+'\x20removed\x20(was\x20'+_0x2d64e7+')'};return{'success':![],'message':_0x1f6e0e(0x1ef)+_0x46dca6+'\x20tidak\x20bisa\x20di-cancel\x20(state:\x20'+_0x2d64e7+')'};}}return{'success':![],'message':_0x1f6e0e(0x1ef)+_0x46dca6+_0x1f6e0e(0x26a)};}async['getHealthStatus'](){const _0x514105=a0_0x26ced1,_0x2e7346={'OGMBI':_0x514105(0x19b),'wJQqJ':'completed','PwtgU':_0x514105(0x2ae)},_0x58a6a4={};for(const [_0xe29cb4,_0x1c0328]of Object[_0x514105(0x1c4)](this['queues'])){try{const _0x296b1e=await _0x1c0328['getJobCounts'](_0x2e7346['OGMBI'],_0x2e7346[_0x514105(0x24f)],'delayed','failed',_0x2e7346[_0x514105(0x1dc)],_0x514105(0x1fa));_0x58a6a4[_0xe29cb4]=_0x296b1e;}catch(_0x22df4c){_0x58a6a4[_0xe29cb4]={'error':_0x22df4c['message']};}}const _0x3d9ba9={};for(const [_0x19a5e4,_0x5b39d7]of Object['entries'](this[_0x514105(0x1a6)])){_0x3d9ba9[_0x19a5e4]={'running':_0x5b39d7['isRunning'](),'paused':_0x5b39d7['isPaused']()};}return{'initialized':this[_0x514105(0x1ed)],'registeredJobs':Object['keys'](this['jobConfigs'])['length'],'redisConnections':this[_0x514105(0x1c5)][_0x514105(0x192)],'queues':_0x58a6a4,'workers':_0x3d9ba9};}async[a0_0x26ced1(0x267)](_0x20e2fd,_0xb1639b){const _0x5b7ea2=a0_0x26ced1,_0x5b4df3={'WiLTA':'after_job_complete_hook_error','ujiCD':_0x5b7ea2(0x275),'SyluG':function(_0x4ce80f,_0x5401fd){return _0x4ce80f-_0x5401fd;},'AFGTn':function(_0x2bcce5,_0x42de70){return _0x2bcce5-_0x42de70;},'OcfUA':function(_0x89b370,_0x1aa53e){return _0x89b370===_0x1aa53e;},'eVMGW':'success','faFCL':_0x5b7ea2(0x29f),'lIlCs':_0x5b7ea2(0x25f),'PLCel':'Failed\x20to\x20publish\x20JOB_COMPLETED\x20to\x20Kafka'},_0x339aae=logger['child']({'jobId':_0x20e2fd['id'],'jobName':_0x20e2fd['name']});_0x339aae[_0x5b7ea2(0x25b)]({'event':_0x5b4df3[_0x5b7ea2(0x271)],'attemptsMade':_0x20e2fd['attemptsMade'],'duration':_0x20e2fd['finishedOn']?_0x5b4df3['SyluG'](_0x20e2fd[_0x5b7ea2(0x253)],_0x20e2fd[_0x5b7ea2(0x278)]):null},'Job\x20completed:\x20'+_0x20e2fd[_0x5b7ea2(0x1ad)]);const _0x3872cf=this[_0x5b7ea2(0x21f)]['get'](_0x20e2fd['id']);if(_0x3872cf){if(_0x3872cf[_0x5b7ea2(0x294)])await _0x3872cf['insertPromise'];const _0x4c9724=_0x20e2fd['finishedOn']&&_0x20e2fd['processedOn']?_0x5b4df3['AFGTn'](_0x20e2fd[_0x5b7ea2(0x253)],_0x20e2fd[_0x5b7ea2(0x278)]):null,_0x9ef9c6=_0x5b4df3[_0x5b7ea2(0x29e)](typeof _0xb1639b,_0x5b7ea2(0x2cc))?_0xb1639b:_0xb1639b?JSON['stringify'](_0xb1639b)[_0x5b7ea2(0x1ca)](0x0,0x1f4):null;await this[_0x5b7ea2(0x285)](_0x3872cf[_0x5b7ea2(0x239)],_0x4c9724,_0x9ef9c6);const _0x24d410=await this['getNextRunFromBullMQ'](_0x20e2fd[_0x5b7ea2(0x1ad)]);await this['updateRegistryCounters'](_0x20e2fd[_0x5b7ea2(0x1ad)],_0x5b4df3[_0x5b7ea2(0x1bc)],_0x4c9724,_0x24d410),this[_0x5b7ea2(0x21f)]['delete'](_0x20e2fd['id']);}const _0x24b99a=getComponentEngine();if(_0x24b99a&&typeof _0x24b99a['executeEventHandlers']===_0x5b7ea2(0x2b1)){const _0x58bced={'jobId':_0x20e2fd['id'],'jobName':_0x20e2fd[_0x5b7ea2(0x1ad)],'result':_0xb1639b,'config':this[_0x5b7ea2(0x1d1)][_0x20e2fd['name']]||{}};_0x24b99a[_0x5b7ea2(0x268)](_0x5b4df3['faFCL'],_0x58bced,![])['catch'](_0x435a28=>{const _0x40ead8=_0x5b7ea2;_0x339aae['warn']({'event':_0x5b4df3[_0x40ead8(0x1e1)],'error':_0x435a28[_0x40ead8(0x295)]},'onAfterJobComplete\x20handler\x20error\x20(non-blocking)');});}const _0x86d5e4=this['getKafkaService']();if(_0x86d5e4)try{await _0x86d5e4[_0x5b7ea2(0x1d3)](_0x5b7ea2(0x2b2),_0x5b7ea2(0x21d),null,{'jobId':_0x20e2fd['id'],'name':_0x20e2fd[_0x5b7ea2(0x1ad)],'result':_0xb1639b},{'module':'job-scheduler','endpoint':_0x20e2fd['name']});}catch(_0x1e15d7){_0x339aae['warn']({'event':_0x5b4df3['lIlCs'],'error':_0x1e15d7['message']},_0x5b4df3['PLCel']);}}async[a0_0x26ced1(0x2cb)](_0x159fc7,_0x1fc2d6){const _0x27e821=a0_0x26ced1,_0x5e3925={'KPVTe':'onAfterJobFailed\x20handler\x20error\x20(non-blocking)','lDFqo':'job_failed','AGGpe':function(_0x2b29cb,_0x2bd1b7){return _0x2b29cb-_0x2bd1b7;},'OFcBZ':function(_0x2abc32){return _0x2abc32();},'jeFjV':function(_0x4bac70,_0x433ef5){return _0x4bac70===_0x433ef5;},'sjXsf':'function','VtBeH':_0x27e821(0x2b5),'CqSQr':_0x27e821(0x1d9)},_0x56dfff=logger['child']({'jobId':_0x159fc7['id'],'jobName':_0x159fc7['name']});_0x56dfff['error']({'event':_0x5e3925['lDFqo'],'attemptsMade':_0x159fc7[_0x27e821(0x238)],'failedReason':_0x1fc2d6?.[_0x27e821(0x295)],'willRetry':_0x159fc7['attemptsMade']<(this['jobConfigs'][_0x159fc7['name']]?.['retry']?.[_0x27e821(0x263)]||0x3)},_0x27e821(0x2ac)+_0x159fc7[_0x27e821(0x1ad)]+'\x20—\x20'+_0x1fc2d6?.[_0x27e821(0x295)]);const _0x36054e=this[_0x27e821(0x21f)]['get'](_0x159fc7['id']);if(_0x36054e){if(_0x36054e['insertPromise'])await _0x36054e['insertPromise'];const _0x437db1=_0x159fc7[_0x27e821(0x253)]&&_0x159fc7[_0x27e821(0x278)]?_0x5e3925['AGGpe'](_0x159fc7[_0x27e821(0x253)],_0x159fc7['processedOn']):null;await this[_0x27e821(0x1f9)](_0x36054e['historyId'],_0x437db1,_0x159fc7[_0x27e821(0x202)],_0x1fc2d6?.['message'],_0x1fc2d6?.['stack']);const _0x59f51f=await this[_0x27e821(0x1de)](_0x159fc7[_0x27e821(0x1ad)]);await this[_0x27e821(0x23d)](_0x159fc7[_0x27e821(0x1ad)],_0x27e821(0x18e),_0x437db1,_0x59f51f),this[_0x27e821(0x21f)]['delete'](_0x159fc7['id']);}const _0x24ce9d=_0x5e3925['OFcBZ'](getComponentEngine);if(_0x24ce9d&&_0x5e3925[_0x27e821(0x241)](typeof _0x24ce9d['executeEventHandlers'],_0x5e3925[_0x27e821(0x1e9)])){const _0x310a52={'jobId':_0x159fc7['id'],'jobName':_0x159fc7[_0x27e821(0x1ad)],'error':_0x1fc2d6?.[_0x27e821(0x295)],'attemptsMade':_0x159fc7['attemptsMade'],'config':this['jobConfigs'][_0x159fc7[_0x27e821(0x1ad)]]||{}};_0x24ce9d['executeEventHandlers'](_0x5e3925['VtBeH'],_0x310a52,![])['catch'](_0x153db1=>{const _0x4522f4=_0x27e821;_0x56dfff['warn']({'event':_0x4522f4(0x224),'error':_0x153db1['message']},_0x5e3925[_0x4522f4(0x2a6)]);});}const _0x56333c=this['getKafkaService']();if(_0x56333c)try{await _0x56333c[_0x27e821(0x1d3)]('restforge.jobs.failed',_0x27e821(0x288),null,{'jobId':_0x159fc7['id'],'name':_0x159fc7['name'],'error':_0x1fc2d6?.[_0x27e821(0x295)],'attemptsMade':_0x159fc7['attemptsMade']},{'module':_0x27e821(0x28c),'endpoint':_0x159fc7[_0x27e821(0x1ad)]});}catch(_0x35095c){_0x56dfff[_0x27e821(0x191)]({'event':_0x27e821(0x25f),'error':_0x35095c[_0x27e821(0x295)]},_0x5e3925['CqSQr']);}}[a0_0x26ced1(0x1ec)](_0x935a1e,_0x12f038){const _0x1c9134=a0_0x26ced1;logger[_0x1c9134(0x254)]({'event':_0x1c9134(0x265),'jobId':_0x935a1e['id'],'jobName':_0x935a1e[_0x1c9134(0x1ad)],'progress':_0x12f038},_0x1c9134(0x1b0)+_0x935a1e[_0x1c9134(0x1ad)]+'\x20—\x20'+_0x12f038+'%');}}module[a0_0x26ced1(0x21a)]=new JobManager();
@@ -1 +1 @@
1
- function a0_0x1213(){const _0x26ee86=['CfbZq1q','lMPZB24','zMfPBgvKuMvHC29U','Bg93','zgvMyxvSDa','t0D5zvm','y29TCgXLDgvK','C2nOzwr1Bgu','Ceryywe','ou92thHcAW','y3jLyxrLza','zgvZy3jPChrPB24','AM9ICW','uKvesvnFrei','BgvUz3rO','qw1xA2y','mJGYode2oeX1yNzyqW','zw50CMLLCW','DgLTzw91Da','uKvesvnFue9sva','Aw5MBW','rxjYB3iGz2v0DgLUzYbQB2iGC3rHDhvZ','l3n0yxr1CY86AM9Iswq','rKvotMG','l2HLywX0Aa','yxbP','ANnVBG','DMfSDwvZ','yNnstNG','BMfTzq','ihrPzgfRigjPC2eGzgKTy2fUy2vSicHZDgf0ztOG','sM9IihrYAwDNzxjLzcb2AweGqvbjoIa','C1DHD04','mJfxAeP5BeC','AM9Ix2HPC3rVCNLFzxjYB3i','z2v0sM9ICW','ywrK','AgLNAa','ChjVz3jLC3m','CMvHzezPBgvtEw5J','ywn0AxzL','CgfYC2u','ihrPzgfRigrPDgvTDwTHBG','mtm2ntmWnZbczLrwu04','vujMve4','Cgf1C2vK','zMLSDgvY','BNHqEwG','zgvSyxLLza','sLD3sge','CgfYyw1Z','DhLWzq','y3DK','rxjYB3iGy2fUy2vSBgLUzYbQB2i','DNL4CgS','AM9Ix3f1zxvLC19LCNjVCG','zxHPC3rZu3LUyW','CxvLDwu','BwvZC2fNzq','Cgf5Bg9Hza','l2nHBMnLBc86AM9Iswq','Bw92zvrVrMfPBgvK','odeYmZK2ng56BhDzqW','zxHWB25LBNrPywW','z2v0','z2v0sM9I','DxrMoa','igjLCMHHC2LSigrPlxrYAwDNzxi','CMvHzgrPCLn5BMm','AM9PBG','s0XjwwC','vLPerum','CxvLCNK','mJK5odaYA1rxDu9Q','ENnuvvG','ndiZotKWu3nStgvh','yMfJA29MzG','sK9cx1jfreLtx1bsruzjwa','BwfW','Bwf4qxr0zw1WDhm','ihjLBw92zwqGkhDHCYa','zxHWB3j0CW','zw5KC1DPDgG','C29YDa','CMv0CNK','CMy6AM9I','zxjYB3i','A1nkwum','mtm0mtCXoeH0DNP3CW','Cg9ZDa','C3rHDhvZ','D2fPDgLUzW','t21zq2m','tM1NCwW','sg5cquG','Bwv0ywrHDge','lI4VlI4VDxrPBhmVBg9Nz2vY','B3zcsNO','DgLTzxn0yw1WCW','uKvesvnFse9tva','y29UBMvJDgvK','zw52','yLz0qwu','yxr0zw1WDhnnywrL','tKzhB24','sM9Iia','mZKWntzeDMHWzg4','nuzSBMv5Cq','zMLUAxnOzwrpBG','AgfUzgXLCG','z2v0u3rHDgu','ChjVy2vZC2vKt24'];a0_0x1213=function(){return _0x26ee86;};return a0_0x1213();}const a0_0x275eec=a0_0x13e9;(function(_0x36fa1d,_0x2edc79){const _0x39e5b4=a0_0x13e9,_0x4e486d=_0x36fa1d();while(!![]){try{const _0x50d54e=parseInt(_0x39e5b4(0x195))/0x1+-parseInt(_0x39e5b4(0x197))/0x2+-parseInt(_0x39e5b4(0x16d))/0x3*(-parseInt(_0x39e5b4(0x146))/0x4)+parseInt(_0x39e5b4(0x147))/0x5*(parseInt(_0x39e5b4(0x18a))/0x6)+parseInt(_0x39e5b4(0x1a4))/0x7+parseInt(_0x39e5b4(0x15c))/0x8+parseInt(_0x39e5b4(0x155))/0x9*(-parseInt(_0x39e5b4(0x177))/0xa);if(_0x50d54e===_0x2edc79)break;else _0x4e486d['push'](_0x4e486d['shift']());}catch(_0x51eae7){_0x4e486d['push'](_0x4e486d['shift']());}}}(a0_0x1213,0xa8775));const express=require('express'),{Queue}=require('bullmq'),Redis=require('ioredis'),{logger}=require(a0_0x275eec(0x1ac));let readConnection=null,readQueues=null,cachedJobConfigs=null;const QUEUE_NAMES={'high-priority':a0_0x275eec(0x171),'default':a0_0x275eec(0x150),'low-priority':a0_0x275eec(0x14f)};function a0_0x13e9(_0x4596a0,_0x142fe0){_0x4596a0=_0x4596a0-0x13e;const _0x12139d=a0_0x1213();let _0x13e952=_0x12139d[_0x4596a0];if(a0_0x13e9['CHshAQ']===undefined){var _0x5abdf7=function(_0x4ed278){const _0x3192e4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4b54fe='',_0x261c0f='';for(let _0x142a41=0x0,_0x3b1f07,_0x3b79c0,_0x454b12=0x0;_0x3b79c0=_0x4ed278['charAt'](_0x454b12++);~_0x3b79c0&&(_0x3b1f07=_0x142a41%0x4?_0x3b1f07*0x40+_0x3b79c0:_0x3b79c0,_0x142a41++%0x4)?_0x4b54fe+=String['fromCharCode'](0xff&_0x3b1f07>>(-0x2*_0x142a41&0x6)):0x0){_0x3b79c0=_0x3192e4['indexOf'](_0x3b79c0);}for(let _0x31fecd=0x0,_0x325ecf=_0x4b54fe['length'];_0x31fecd<_0x325ecf;_0x31fecd++){_0x261c0f+='%'+('00'+_0x4b54fe['charCodeAt'](_0x31fecd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x261c0f);};a0_0x13e9['uZYyqu']=_0x5abdf7,a0_0x13e9['aARQep']={},a0_0x13e9['CHshAQ']=!![];}const _0x3bd82d=_0x12139d[0x0],_0x582bd0=_0x4596a0+_0x3bd82d,_0x2c9aea=a0_0x13e9['aARQep'][_0x582bd0];return!_0x2c9aea?(_0x13e952=a0_0x13e9['uZYyqu'](_0x13e952),a0_0x13e9['aARQep'][_0x582bd0]=_0x13e952):_0x13e952=_0x2c9aea,_0x13e952;}function getReadQueues(){const _0x3f5157=a0_0x275eec,_0x5869e1={'oaLUZ':'job_routes_redis_error','bsRNx':_0x3f5157(0x1a1),'ovBJz':'localhost','AmWkf':function(_0x3571a4,_0x26e20b,_0xc93552){return _0x3571a4(_0x26e20b,_0xc93552);}};if(readQueues)return readQueues;const _0x5973e9=process['env'][_0x3f5157(0x199)]||_0x5869e1[_0x3f5157(0x168)];readConnection=new Redis({'host':process['env'][_0x3f5157(0x13f)]||_0x5869e1[_0x3f5157(0x1ad)],'port':parseInt(process['env'][_0x3f5157(0x15f)],0xa)||0x18ec,'password':process[_0x3f5157(0x141)]['REDIS_PASSWORD']||undefined,'db':_0x5869e1[_0x3f5157(0x15b)](parseInt,process['env'][_0x3f5157(0x159)],0xa)||0x0,'maxRetriesPerRequest':null}),readConnection['on'](_0x3f5157(0x1a2),_0x5ea2f0=>{const _0x12beee=_0x3f5157;logger[_0x12beee(0x1a2)]({'event':_0x5869e1['oaLUZ'],'error':_0x5ea2f0['message']},'Job\x20Routes\x20Redis\x20error:\x20'+_0x5ea2f0['message']);}),readQueues={};for(const [_0x40e7f3,_0x406e01]of Object[_0x3f5157(0x15d)](QUEUE_NAMES)){readQueues[_0x40e7f3]=new Queue(_0x406e01,{'connection':readConnection,'prefix':_0x5973e9});}return readQueues;}function createJobRoutes(_0x30fb9c){const _0x499739=a0_0x275eec,_0x471e81={'JWwHa':function(_0x3c6fc8,_0x5c05bf){return _0x3c6fc8(_0x5c05bf);},'pPsCT':'path','oMCAR':_0x499739(0x158),'VZDEC':'job_list_error','FENNh':'Error\x20listing\x20jobs','sWawN':function(_0x5a247c,_0x2243fb){return _0x5a247c(_0x2243fb);},'vyxpk':function(_0x37d7be){return _0x37d7be();},'Lgadl':_0x499739(0x18b),'zsTUX':'job_triggered_via_api','KLIYg':'job_trigger_error','QYwTI':'Error\x20triggering\x20job','uBbLb':_0x499739(0x174),'kSJYC':'api-cancel','RWiJN':function(_0x4ec7b5,_0x252c59){return _0x4ec7b5===_0x252c59;},'bVtAe':_0x499739(0x1a7),'OmYCc':_0x499739(0x17c),'nFoCY':_0x499739(0x181),'pDXaa':function(_0x9646a8,_0x3ea5d4,_0x102436){return _0x9646a8(_0x3ea5d4,_0x102436);},'UBfTN':function(_0x5675aa,_0x1d2a3b){return _0x5675aa-_0x1d2a3b;},'nADhx':function(_0x3cf5bd,_0x48564a){return _0x3cf5bd-_0x48564a;},'HnBAH':'completed','OGyeS':'failed','WAoKC':_0x499739(0x16e),'NFGon':'Error\x20getting\x20job\x20history','Nmgql':function(_0x4e362c){return _0x4e362c();},'nxPyh':'degraded','FyvLf':'disconnected'},_0x2b3f6a=express['Router']();return _0x30fb9c&&Object['keys'](_0x30fb9c)[_0x499739(0x15a)]>0x0&&(cachedJobConfigs=_0x30fb9c),_0x2b3f6a['get']('/list',(_0x5ab192,_0x56b686)=>{const _0x3dcf71=_0x499739;try{if(cachedJobConfigs){const _0x5ca111=Object[_0x3dcf71(0x167)](cachedJobConfigs)[_0x3dcf71(0x19a)](_0x18a7ad=>({'name':_0x18a7ad[_0x3dcf71(0x169)],'description':_0x18a7ad[_0x3dcf71(0x157)]||'','type':_0x18a7ad[_0x3dcf71(0x17f)],'schedule':_0x18a7ad[_0x3dcf71(0x153)],'handler':_0x18a7ad[_0x3dcf71(0x149)],'enabled':_0x18a7ad['enabled']!==![],'queue':_0x18a7ad['queue']||_0x3dcf71(0x150),'timeout':_0x18a7ad['timeout']||0x7530,'retry':_0x18a7ad[_0x3dcf71(0x1a0)]||{'maxAttempts':0x3,'backoff':'exponential','initialDelay':0x1388},'metadata':_0x18a7ad[_0x3dcf71(0x1ab)]||{}}));return _0x56b686['json']({'success':!![],'data':_0x5ca111,'total':_0x5ca111['length']});}const _0x11314f=require('fs'),_0x4dcae6=_0x471e81[_0x3dcf71(0x17d)](require,_0x471e81['pPsCT']),_0xac8ce4=_0x4dcae6['join'](process['cwd'](),_0x3dcf71(0x187),_0x471e81['oMCAR']);if(!_0x11314f['existsSync'](_0xac8ce4))return _0x56b686[_0x3dcf71(0x166)]({'success':!![],'data':[],'total':0x0});const _0xc13674=_0x11314f[_0x3dcf71(0x190)](_0xac8ce4)[_0x3dcf71(0x17a)](_0x596025=>_0x596025[_0x3dcf71(0x19e)](_0x3dcf71(0x14d))),_0x2486d8=[];for(const _0x3f40f9 of _0xc13674){try{const _0x27d7f2=_0x11314f['readFileSync'](_0x4dcae6[_0x3dcf71(0x191)](_0xac8ce4,_0x3f40f9),_0x3dcf71(0x18e)),_0x593ad2=JSON[_0x3dcf71(0x175)](_0x27d7f2);_0x2486d8['push']({'name':_0x593ad2['name'],'description':_0x593ad2[_0x3dcf71(0x157)]||'','type':_0x593ad2[_0x3dcf71(0x17f)],'schedule':_0x593ad2[_0x3dcf71(0x153)],'handler':_0x593ad2['handler'],'enabled':_0x593ad2['enabled']!==![],'queue':_0x593ad2['queue']||'default','timeout':_0x593ad2[_0x3dcf71(0x15e)]||0x7530,'retry':_0x593ad2[_0x3dcf71(0x1a0)]||{},'metadata':_0x593ad2[_0x3dcf71(0x1ab)]||{}});}catch(_0x5b0e8e){}}_0x56b686[_0x3dcf71(0x166)]({'success':!![],'data':_0x2486d8,'total':_0x2486d8[_0x3dcf71(0x15a)]});}catch(_0x25332f){logger['error']({'event':_0x471e81[_0x3dcf71(0x193)],'error':_0x25332f['message']},_0x471e81[_0x3dcf71(0x163)]),_0x56b686['status'](0x1f4)[_0x3dcf71(0x166)]({'success':![],'error':_0x25332f[_0x3dcf71(0x186)]});}}),_0x2b3f6a[_0x499739(0x18c)](_0x499739(0x162),async(_0x29b61d,_0x5cee69)=>{const _0x2d4aea=_0x499739;try{const {jobId:_0x4f0f78}=_0x29b61d['params'],_0x40be0e=getReadQueues();for(const _0x5938eb of Object[_0x2d4aea(0x167)](_0x40be0e)){const _0x193f19=await _0x5938eb[_0x2d4aea(0x18d)](_0x4f0f78);if(_0x193f19){const _0x501e05=await _0x193f19['getState']();return _0x5cee69[_0x2d4aea(0x166)]({'success':!![],'data':{'jobId':_0x193f19['id'],'name':_0x193f19[_0x2d4aea(0x169)],'state':_0x501e05,'progress':_0x193f19[_0x2d4aea(0x172)],'attemptsMade':_0x193f19[_0x2d4aea(0x143)],'failedReason':_0x193f19[_0x2d4aea(0x14e)],'returnvalue':_0x193f19['returnvalue'],'data':_0x193f19['data'],'timestamps':{'created':_0x193f19['timestamp'],'started':_0x193f19[_0x2d4aea(0x14b)],'completed':_0x193f19[_0x2d4aea(0x148)]}}});}}_0x5cee69['status'](0x194)[_0x2d4aea(0x166)]({'success':![],'error':_0x2d4aea(0x145)+_0x4f0f78+_0x2d4aea(0x176)});}catch(_0x56d432){logger[_0x2d4aea(0x1a2)]({'event':'job_status_error','error':_0x56d432['message']},_0x2d4aea(0x161)),_0x5cee69[_0x2d4aea(0x1a6)](0x1f4)[_0x2d4aea(0x166)]({'success':![],'error':_0x56d432['message']});}}),_0x2b3f6a[_0x499739(0x1a5)]('/trigger/:jobName',async(_0x8337bd,_0x57c9d1)=>{const _0x20b166=_0x499739;try{const {jobName:_0x2e18e5}=_0x8337bd['params'],_0x430fa0=_0x8337bd['body']||{};let _0x55f8e3=cachedJobConfigs?.[_0x2e18e5];if(!_0x55f8e3){const _0x2dc3bd=_0x471e81['JWwHa'](require,'fs'),_0x531e64=_0x471e81[_0x20b166(0x16c)](require,_0x471e81[_0x20b166(0x14c)]),_0x438650=_0x531e64[_0x20b166(0x191)](process[_0x20b166(0x180)](),'payload',_0x471e81['oMCAR']),_0x3eb9be=_0x2dc3bd[_0x20b166(0x184)](_0x438650)?_0x2dc3bd[_0x20b166(0x190)](_0x438650)['filter'](_0x26bfe7=>_0x26bfe7['endsWith']('.json')):[];for(const _0x32a2cd of _0x3eb9be){try{const _0x2245c0=_0x2dc3bd[_0x20b166(0x173)](_0x531e64['join'](_0x438650,_0x32a2cd),_0x20b166(0x18e)),_0x3c8e44=JSON['parse'](_0x2245c0);if(_0x3c8e44[_0x20b166(0x169)]===_0x2e18e5){_0x55f8e3=_0x3c8e44;break;}}catch(_0x5a80a7){}}}if(!_0x55f8e3)return _0x57c9d1['status'](0x194)['json']({'success':![],'error':'Job\x20\x22'+_0x2e18e5+'\x22\x20tidak\x20ditemukan\x20di\x20konfigurasi'});const _0x53682c=_0x471e81[_0x20b166(0x182)](getReadQueues),_0x5438dd=_0x53682c[_0x55f8e3[_0x20b166(0x185)]||'default'],_0x35a9f5=await _0x5438dd[_0x20b166(0x170)](_0x2e18e5,{..._0x430fa0,'handler':_0x55f8e3[_0x20b166(0x149)],'triggeredBy':_0x20b166(0x165)},{'attempts':_0x55f8e3['retry']?.[_0x20b166(0x19b)]||0x3,'backoff':{'type':_0x55f8e3[_0x20b166(0x1a0)]?.[_0x20b166(0x198)]||_0x471e81['Lgadl'],'delay':_0x55f8e3['retry']?.['initialDelay']||0x1388},'timeout':_0x55f8e3['timeout']||0x7530});logger[_0x20b166(0x160)]({'event':_0x471e81[_0x20b166(0x196)],'jobId':_0x35a9f5['id'],'name':_0x2e18e5},_0x20b166(0x16b)+_0x2e18e5+'\x20(id:\x20'+_0x35a9f5['id']+')'),_0x57c9d1['json']({'success':!![],'jobId':_0x35a9f5['id'],'message':_0x20b166(0x145)+_0x2e18e5+_0x20b166(0x18f)});}catch(_0x5b7293){logger[_0x20b166(0x1a2)]({'event':_0x471e81[_0x20b166(0x192)],'error':_0x5b7293[_0x20b166(0x186)]},_0x471e81['QYwTI']),_0x57c9d1['status'](0x1f4)['json']({'success':![],'error':_0x5b7293[_0x20b166(0x186)]});}}),_0x2b3f6a[_0x499739(0x1a5)](_0x499739(0x188),async(_0x5a8c96,_0x386ad9)=>{const _0x154d9f=_0x499739;try{const {jobId:_0x339521}=_0x5a8c96[_0x154d9f(0x17e)],_0x1cb52e=getReadQueues();for(const _0x2943a6 of Object[_0x154d9f(0x167)](_0x1cb52e)){const _0x2b823b=await _0x2943a6['getJob'](_0x339521);if(_0x2b823b){const _0x3f587a=await _0x2b823b['getState']();if(_0x3f587a===_0x471e81['uBbLb'])return await _0x2b823b[_0x154d9f(0x189)](new Error('Job\x20cancelled\x20via\x20API'),_0x471e81[_0x154d9f(0x1a3)],!![]),_0x386ad9['json']({'success':!![],'message':'Job\x20'+_0x339521+'\x20cancelled\x20(was\x20active)'});if(_0x471e81['RWiJN'](_0x3f587a,_0x471e81[_0x154d9f(0x142)])||_0x3f587a===_0x471e81['OmYCc'])return await _0x2b823b['remove'](),_0x386ad9[_0x154d9f(0x166)]({'success':!![],'message':_0x154d9f(0x145)+_0x339521+_0x154d9f(0x19c)+_0x3f587a+')'});return _0x386ad9[_0x154d9f(0x166)]({'success':![],'message':'Job\x20'+_0x339521+_0x154d9f(0x16a)+_0x3f587a+')'});}}_0x386ad9[_0x154d9f(0x1a6)](0x194)[_0x154d9f(0x166)]({'success':![],'error':'Job\x20'+_0x339521+_0x154d9f(0x176)});}catch(_0x252256){logger['error']({'event':'job_cancel_error','error':_0x252256[_0x154d9f(0x186)]},_0x471e81['nFoCY']),_0x386ad9[_0x154d9f(0x1a6)](0x1f4)[_0x154d9f(0x166)]({'success':![],'error':_0x252256[_0x154d9f(0x186)]});}}),_0x2b3f6a['get']('/history',async(_0x171ecd,_0x364a9a)=>{const _0x57cad4=_0x499739;try{const _0xa297e6=_0x471e81['pDXaa'](parseInt,_0x171ecd['query']['page'],0xa)||0x1,_0x3db5bf=Math['min'](_0x471e81[_0x57cad4(0x154)](parseInt,_0x171ecd[_0x57cad4(0x194)]['limit'],0xa)||0x14,0x64),_0x39f52c=_0x471e81[_0x57cad4(0x178)](_0xa297e6,0x1)*_0x3db5bf,_0x16fd2c=_0x471e81['nADhx'](_0x39f52c+_0x3db5bf,0x1),_0x59239c=_0x471e81['vyxpk'](getReadQueues),_0x1023cf=[];for(const [_0x213b88,_0x3301a3]of Object[_0x57cad4(0x15d)](_0x59239c)){const _0x2d6430=await _0x3301a3['getJobs']([_0x471e81[_0x57cad4(0x1aa)]],_0x39f52c,_0x16fd2c),_0x2222fd=await _0x3301a3[_0x57cad4(0x16f)]([_0x471e81['OGyeS']],_0x39f52c,_0x16fd2c);for(const _0xc3c7b3 of[..._0x2d6430,..._0x2222fd]){const _0x922187=await _0xc3c7b3[_0x57cad4(0x14a)]();_0x1023cf['push']({'jobId':_0xc3c7b3['id'],'name':_0xc3c7b3['name'],'state':_0x922187,'queue':_0x213b88,'attemptsMade':_0xc3c7b3['attemptsMade'],'failedReason':_0xc3c7b3[_0x57cad4(0x14e)],'returnvalue':_0xc3c7b3['returnvalue'],'timestamps':{'created':_0xc3c7b3['timestamp'],'started':_0xc3c7b3['processedOn'],'completed':_0xc3c7b3['finishedOn']}});}}_0x1023cf[_0x57cad4(0x19f)]((_0x12415e,_0x28a5ed)=>(_0x28a5ed['timestamps'][_0x57cad4(0x156)]||0x0)-(_0x12415e[_0x57cad4(0x13e)][_0x57cad4(0x156)]||0x0)),_0x364a9a['json']({'success':!![],'data':_0x1023cf['slice'](0x0,_0x3db5bf),'total':_0x1023cf[_0x57cad4(0x15a)],'page':_0xa297e6,'limit':_0x3db5bf});}catch(_0x82277b){logger['error']({'event':_0x471e81['WAoKC'],'error':_0x82277b['message']},_0x471e81[_0x57cad4(0x144)]),_0x364a9a['status'](0x1f4)[_0x57cad4(0x166)]({'success':![],'error':_0x82277b[_0x57cad4(0x186)]});}}),_0x2b3f6a['get']('/queues',async(_0x366912,_0x9bb344)=>{const _0x322c1f=_0x499739;try{const _0x360779=_0x471e81[_0x322c1f(0x1a9)](getReadQueues),_0x564771={};for(const [_0x40fc2d,_0x424f05]of Object['entries'](_0x360779)){try{const _0x3a8f65=await _0x424f05['getJobCounts'](_0x322c1f(0x174),_0x322c1f(0x152),_0x471e81[_0x322c1f(0x1a8)],_0x471e81[_0x322c1f(0x151)],_0x322c1f(0x179),_0x471e81['bVtAe']);_0x564771[_0x40fc2d]=_0x3a8f65;}catch(_0x4d6b31){_0x564771[_0x40fc2d]={'error':_0x4d6b31[_0x322c1f(0x186)]};}}_0x9bb344['json']({'success':!![],'data':_0x564771});}catch(_0x4a24aa){logger['error']({'event':_0x322c1f(0x183),'error':_0x4a24aa['message']},'Error\x20getting\x20queue\x20stats'),_0x9bb344[_0x322c1f(0x1a6)](0x1f4)[_0x322c1f(0x166)]({'success':![],'error':_0x4a24aa['message']});}}),_0x2b3f6a['get'](_0x499739(0x164),async(_0x1a3ff6,_0x18a39f)=>{const _0x353806=_0x499739;try{const _0x9a367b=getReadQueues(),_0x1c4d2d={};let _0x18a891=![];for(const [_0x3996d7,_0x2257bb]of Object[_0x353806(0x15d)](_0x9a367b)){try{const _0x3b2264=await _0x2257bb['getJobCounts'](_0x353806(0x174),'waiting',_0x471e81[_0x353806(0x151)]);_0x1c4d2d[_0x3996d7]=_0x3b2264,_0x18a891=!![];}catch(_0x5a47df){_0x1c4d2d[_0x3996d7]={'error':_0x5a47df['message']};}}let _0x556ca4=0x0;cachedJobConfigs&&(_0x556ca4=Object['keys'](cachedJobConfigs)['length']),_0x18a39f['json']({'success':!![],'data':{'status':_0x18a891?'healthy':_0x471e81[_0x353806(0x17b)],'redis':_0x18a891?_0x353806(0x140):_0x471e81['FyvLf'],'registeredJobs':_0x556ca4,'queues':_0x1c4d2d}});}catch(_0x229855){_0x18a39f['status'](0x1f7)[_0x353806(0x166)]({'success':![],'data':{'status':'unhealthy','error':_0x229855['message']}});}}),_0x2b3f6a;}module[a0_0x275eec(0x19d)]=createJobRoutes;
1
+ const a0_0x29db2b=a0_0x33d5;(function(_0x23bbe2,_0x4cc495){const _0x1e711d=a0_0x33d5,_0x505755=_0x23bbe2();while(!![]){try{const _0x4013cf=-parseInt(_0x1e711d(0x95))/0x1+-parseInt(_0x1e711d(0xc1))/0x2*(parseInt(_0x1e711d(0x8d))/0x3)+parseInt(_0x1e711d(0xd7))/0x4+-parseInt(_0x1e711d(0xb4))/0x5+-parseInt(_0x1e711d(0xd9))/0x6+-parseInt(_0x1e711d(0xd8))/0x7+parseInt(_0x1e711d(0x9e))/0x8;if(_0x4013cf===_0x4cc495)break;else _0x505755['push'](_0x505755['shift']());}catch(_0x209959){_0x505755['push'](_0x505755['shift']());}}}(a0_0xb1d1,0x25cf8));const express=require(a0_0x29db2b(0x9a)),{Queue}=require('bullmq'),Redis=require(a0_0x29db2b(0xbe)),{logger}=require('../../utils/logger');function a0_0xb1d1(){const _0x3cade0=['CxvLDwu','Bg9JywXOB3n0','Bwv0ywrHDge','otaZnZeYt1v4t2fL','odaYote0D3b3D0P5','mtuZntK4mLjTy3jqsa','C29YDa','y29UBMvJDgvK','uNrYEfm','lMPZB24','tKT1vg4','AM9Ix2HPC3rVCNLFzxjYB3i','zxHWB3j0CW','l3f1zxvLCW','ihrPzgfRigrPDgvTDwTHBG','CMvHzezPBgvtEw5J','BMPMs08','Cgf5Bg9Hza','sMrXuha','BfHMr2K','DenVugG','rxjYB3iGz2v0DgLUzYbXDwv1zsbZDgf0CW','zw52','r1DwDMS','z0PSC0C','zgvSyxLLza','Cg9ZDa','CMvHzgrPCLn5BMm','zgLZy29UBMvJDgvK','zw50CMLLCW','ywn0AxzL','CMv0CNK','mZq5mNrWAKvbtW','DgLTzxn0yw1WCW','AM9Ix3jVDxrLC19YzwrPC19LCNjVCG','ANnVBG','AM9ICW','CMv0DxjUDMfSDwu','CMvTB3zL','BKzQDxO','mJm3nJKZqLvgA3L1','DgLTzw91Da','rxjYB3iGz2v0DgLUzYbQB2iGAgLZDg9YEq','l2HLywX0Aa','yxbPlwnHBMnLBa','zxHWCMvZCW','y3jLyxrLza','BMfTzq','zgvMyxvSDa','nZCXotC5mLbgDvDUuG','z2v0u3rHDgu','y29TCgXLDgvK','zxjYB3i','sM9Iici','AM9Ix3n0yxr1C19LCNjVCG','AM9Ix3rYAwDNzxjLzf92AwfFyxbP','ChjVz3jLC3m','sM9Iia','z2v0','DxrMoa','Cgf1C2vK','z1HAy0W','z2v0sM9I','AM9Ix3rYAwDNzxjFzxjYB3i','D2fPDgLUzW','Dw5OzwfSDgH5','AgLNAa','zgvZy3jPChrPB24','BwLU','uKvesvnFue9sva','BgLTAxq','mtuWotyZmeDXC1nNwq','uKvesvnFse9tva','y2vfvgO','AM9Ix3f1zxvLC19LCNjVCG','zMfPBgvK','DgLTzxn0yw1W','CgfYyw1Z','C3rHDhvZ','ihjLBw92zwqGkhDHCYa','CxvLCNK','Aw9YzwrPCW','zefZEfe','CMy6AM9I','mJe2zhPPt3jn','AfHPv0y','AM9PBG','ignHBMnLBgXLzcaOD2fZigfJDgL2zsK','ChvZAa','AgfUzgXLCG','svzAAMi','CgfYC2u','B1vqyvK','BwvZC2fNzq','ChjVy2vZC2vKt24','zMLSDgvY','BgvUz3rO','zxHPC3rZu3LUyW','zgvNCMfKzwq','Bwf4qxr0zw1WDhm','yxr0zw1WDhnnywrL','CMvjEMq','C2XPy2u'];a0_0xb1d1=function(){return _0x3cade0;};return a0_0xb1d1();}let readConnection=null,readQueues=null,cachedJobConfigs=null;const QUEUE_NAMES={'high-priority':a0_0x29db2b(0xaf),'default':a0_0x29db2b(0x9d),'low-priority':'low'};function getReadQueues(){const _0x1f24bf=a0_0x29db2b,_0x1d1a39={'reIzd':'error'};if(readQueues)return readQueues;const _0x446500=process[_0x1f24bf(0xea)]['JOB_REDIS_PREFIX']||_0x1f24bf(0xc0);readConnection=new Redis({'host':process[_0x1f24bf(0xea)][_0x1f24bf(0xb5)]||_0x1f24bf(0xd5),'port':parseInt(process['env'][_0x1f24bf(0xb2)],0xa)||0x18ec,'password':process['env']['REDIS_PASSWORD']||undefined,'db':parseInt(process[_0x1f24bf(0xea)]['REDIS_DB'],0xa)||0x0,'maxRetriesPerRequest':null}),readConnection['on'](_0x1d1a39[_0x1f24bf(0xd2)],_0x217160=>{const _0x5129c6=_0x1f24bf;logger['error']({'event':_0x5129c6(0x8f),'error':_0x217160['message']},'Job\x20Routes\x20Redis\x20error:\x20'+_0x217160['message']);}),readQueues={};for(const [_0x3b80b1,_0x23a4cb]of Object['entries'](QUEUE_NAMES)){readQueues[_0x3b80b1]=new Queue(_0x23a4cb,{'connection':readConnection,'prefix':_0x446500});}return readQueues;}function createJobRoutes(_0x4c0478){const _0x2e236b=a0_0x29db2b,_0x5ca525={'WVCMx':function(_0x2f48ab,_0x455449){return _0x2f48ab(_0x455449);},'GWVvk':'path','oUPaY':_0x2e236b(0xa8),'nDHZf':'Error\x20listing\x20jobs','ceETj':function(_0x4a2449){return _0x4a2449();},'tqmAQ':function(_0x215102,_0x247bce){return _0x215102(_0x247bce);},'tCoPh':function(_0x58bcce,_0xf48d8c){return _0x58bcce===_0xf48d8c;},'xHjWP':'api','dAsxQ':_0x2e236b(0xa4),'dBUhd':_0x2e236b(0xac),'gJlsG':'Error\x20triggering\x20job','IVZjb':_0x2e236b(0x8b),'JdqPp':'Job\x20cancelled\x20via\x20API','ZGwag':'Error\x20cancelling\x20job','lXfGi':function(_0x292cfc,_0x175f8b,_0x5b5371){return _0x292cfc(_0x175f8b,_0x5b5371);},'ooiJM':function(_0x309de2,_0x1ab03f){return _0x309de2*_0x1ab03f;},'NKuTn':function(_0x2f175a,_0x225b96){return _0x2f175a-_0x225b96;},'mYCXV':function(_0x15fb6c,_0x3eda65){return _0x15fb6c+_0x3eda65;},'YTYmz':_0x2e236b(0xa0),'RtrxS':_0x2e236b(0xb8),'pHeZx':_0x2e236b(0x97),'gXZcL':_0x2e236b(0xed),'egHKU':'waiting','PNUfJ':'healthy','SxSiK':_0x2e236b(0xcf),'rYquw':_0x2e236b(0xdb),'njfKO':_0x2e236b(0xae),'ZGlHZ':function(_0x519068,_0x1f8f47){return _0x519068>_0x1f8f47;},'nFjuz':'/list','pMSiq':'/cancel/:jobId','hXiWF':_0x2e236b(0x98)},_0xe52942=express['Router']();return _0x4c0478&&_0x5ca525['ZGlHZ'](Object['keys'](_0x4c0478)['length'],0x0)&&(cachedJobConfigs=_0x4c0478),_0xe52942[_0x2e236b(0xa7)](_0x5ca525[_0x2e236b(0x94)],(_0x355241,_0xe1953d)=>{const _0x343df0=_0x2e236b;try{if(cachedJobConfigs){const _0x51e489=Object['values'](cachedJobConfigs)['map'](_0x47f73e=>({'name':_0x47f73e[_0x343df0(0x9c)],'description':_0x47f73e['description']||'','type':_0x47f73e['type'],'schedule':_0x47f73e['schedule'],'handler':_0x47f73e[_0x343df0(0xc6)],'enabled':_0x47f73e['enabled']!==![],'queue':_0x47f73e['queue']||_0x343df0(0x9d),'timeout':_0x47f73e['timeout']||0x7530,'retry':_0x47f73e[_0x343df0(0x8c)]||{'maxAttempts':0x3,'backoff':'exponential','initialDelay':0x1388},'metadata':_0x47f73e[_0x343df0(0xd6)]||{}}));return _0xe1953d['json']({'success':!![],'data':_0x51e489,'total':_0x51e489['length']});}const _0x5a508a=_0x5ca525['WVCMx'](require,'fs'),_0x14cc46=require(_0x5ca525[_0x343df0(0xeb)]),_0x3a8332=_0x14cc46[_0x343df0(0xc3)](process['cwd'](),_0x343df0(0xe5),_0x343df0(0x91));if(!_0x5a508a[_0x343df0(0xce)](_0x3a8332))return _0xe1953d[_0x343df0(0x90)]({'success':!![],'data':[],'total':0x0});const _0x392fef=_0x5a508a[_0x343df0(0x88)](_0x3a8332)[_0x343df0(0xcc)](_0x3aabb6=>_0x3aabb6['endsWith'](_0x343df0(0xdd))),_0x1cb15b=[];for(const _0x5500d5 of _0x392fef){try{const _0x522d82=_0x5a508a[_0x343df0(0xe3)](_0x14cc46[_0x343df0(0xc3)](_0x3a8332,_0x5500d5),_0x5ca525[_0x343df0(0xc9)]),_0xfb916f=JSON['parse'](_0x522d82);_0x1cb15b[_0x343df0(0xc5)]({'name':_0xfb916f['name'],'description':_0xfb916f[_0x343df0(0xb0)]||'','type':_0xfb916f['type'],'schedule':_0xfb916f['schedule'],'handler':_0xfb916f[_0x343df0(0xc6)],'enabled':_0xfb916f['enabled']!==![],'queue':_0xfb916f['queue']||'default','timeout':_0xfb916f['timeout']||0x7530,'retry':_0xfb916f[_0x343df0(0x8c)]||{},'metadata':_0xfb916f['metadata']||{}});}catch(_0x5656dd){}}_0xe1953d[_0x343df0(0x90)]({'success':!![],'data':_0x1cb15b,'total':_0x1cb15b[_0x343df0(0xcd)]});}catch(_0x234c6a){logger['error']({'event':'job_list_error','error':_0x234c6a['message']},_0x5ca525['nDHZf']),_0xe1953d['status'](0x1f4)['json']({'success':![],'error':_0x234c6a[_0x343df0(0xca)]});}}),_0xe52942[_0x2e236b(0xa7)]('/status/:jobId',async(_0x61c10d,_0x585b81)=>{const _0x2c4981=_0x2e236b;try{const {jobId:_0x3b4f0a}=_0x61c10d[_0x2c4981(0xba)],_0x27647f=_0x5ca525[_0x2c4981(0xb6)](getReadQueues);for(const _0xb7ecad of Object['values'](_0x27647f)){const _0x24961d=await _0xb7ecad[_0x2c4981(0xab)](_0x3b4f0a);if(_0x24961d){const _0x2e43c6=await _0x24961d['getState']();return _0x585b81['json']({'success':!![],'data':{'jobId':_0x24961d['id'],'name':_0x24961d[_0x2c4981(0x9c)],'state':_0x2e43c6,'progress':_0x24961d[_0x2c4981(0xa5)],'attemptsMade':_0x24961d['attemptsMade'],'failedReason':_0x24961d['failedReason'],'returnvalue':_0x24961d[_0x2c4981(0x92)],'data':_0x24961d['data'],'timestamps':{'created':_0x24961d[_0x2c4981(0xb9)],'started':_0x24961d[_0x2c4981(0xcb)],'completed':_0x24961d['finishedOn']}}});}}_0x585b81[_0x2c4981(0xbb)](0x194)['json']({'success':![],'error':'Job\x20'+_0x3b4f0a+_0x2c4981(0xe2)});}catch(_0x3f20ff){logger['error']({'event':_0x2c4981(0xa3),'error':_0x3f20ff[_0x2c4981(0xca)]},'Error\x20getting\x20job\x20status'),_0x585b81[_0x2c4981(0xbb)](0x1f4)['json']({'success':![],'error':_0x3f20ff['message']});}}),_0xe52942[_0x2e236b(0xee)]('/trigger/:jobName',async(_0x3d3c7,_0x10dcb8)=>{const _0x1320ca=_0x2e236b;try{const {jobName:_0x1a07fc}=_0x3d3c7[_0x1320ca(0xba)],_0xd8b40d=_0x3d3c7['body']||{};let _0x2a983c=cachedJobConfigs?.[_0x1a07fc];if(!_0x2a983c){const _0x22fb9e=_0x5ca525['tqmAQ'](require,'fs'),_0x4bb319=require('path'),_0x1adfd2=_0x4bb319[_0x1320ca(0xc3)](process['cwd'](),'payload','jobs'),_0x3d1c80=_0x22fb9e[_0x1320ca(0xce)](_0x1adfd2)?_0x22fb9e['readdirSync'](_0x1adfd2)['filter'](_0x8463b6=>_0x8463b6['endsWith']('.json')):[];for(const _0x3a7750 of _0x3d1c80){try{const _0x5c28a8=_0x22fb9e[_0x1320ca(0xe3)](_0x4bb319[_0x1320ca(0xc3)](_0x1adfd2,_0x3a7750),_0x5ca525[_0x1320ca(0xc9)]),_0x12f8a5=JSON[_0x1320ca(0xc8)](_0x5c28a8);if(_0x5ca525[_0x1320ca(0xe8)](_0x12f8a5[_0x1320ca(0x9c)],_0x1a07fc)){_0x2a983c=_0x12f8a5;break;}}catch(_0x191bd9){}}}if(!_0x2a983c)return _0x10dcb8[_0x1320ca(0xbb)](0x194)['json']({'success':![],'error':_0x1320ca(0xa2)+_0x1a07fc+'\x22\x20tidak\x20ditemukan\x20di\x20konfigurasi'});const _0x312c4b=_0x5ca525[_0x1320ca(0xb6)](getReadQueues),_0x50f944=_0x312c4b[_0x2a983c[_0x1320ca(0xd4)]||'default'],_0xc435b0=await _0x50f944['add'](_0x1a07fc,{..._0xd8b40d,'handler':_0x2a983c['handler'],'triggeredBy':_0x5ca525['xHjWP']},{'attempts':_0x2a983c['retry']?.[_0x1320ca(0xd0)]||0x3,'backoff':{'type':_0x2a983c[_0x1320ca(0x8c)]?.['backoff']||'exponential','delay':_0x2a983c['retry']?.['initialDelay']||0x1388},'timeout':_0x2a983c[_0x1320ca(0x96)]||0x7530});logger['info']({'event':_0x5ca525[_0x1320ca(0xbf)],'jobId':_0xc435b0['id'],'name':_0x1a07fc},'Job\x20triggered\x20via\x20API:\x20'+_0x1a07fc+'\x20(id:\x20'+_0xc435b0['id']+')'),_0x10dcb8['json']({'success':!![],'jobId':_0xc435b0['id'],'message':_0x1320ca(0xa6)+_0x1a07fc+'\x20berhasil\x20di-trigger'});}catch(_0x52a94f){logger['error']({'event':_0x5ca525['dBUhd'],'error':_0x52a94f[_0x1320ca(0xca)]},_0x5ca525[_0x1320ca(0xec)]),_0x10dcb8[_0x1320ca(0xbb)](0x1f4)['json']({'success':![],'error':_0x52a94f[_0x1320ca(0xca)]});}}),_0xe52942[_0x2e236b(0xee)](_0x5ca525['pMSiq'],async(_0x34bf4f,_0x5ddc0f)=>{const _0x6a53e5=_0x2e236b;try{const {jobId:_0x46cec1}=_0x34bf4f['params'],_0x2ec1f9=getReadQueues();for(const _0x498a20 of Object['values'](_0x2ec1f9)){const _0x459b81=await _0x498a20['getJob'](_0x46cec1);if(_0x459b81){const _0x29e471=await _0x459b81['getState']();if(_0x29e471===_0x5ca525[_0x6a53e5(0xc7)])return await _0x459b81['moveToFailed'](new Error(_0x5ca525[_0x6a53e5(0xe6)]),_0x6a53e5(0x99),!![]),_0x5ddc0f['json']({'success':!![],'message':'Job\x20'+_0x46cec1+_0x6a53e5(0xc4)});if(_0x5ca525['tCoPh'](_0x29e471,_0x6a53e5(0xad))||_0x29e471===_0x6a53e5(0xed))return await _0x459b81[_0x6a53e5(0x93)](),_0x5ddc0f['json']({'success':!![],'message':_0x6a53e5(0xa6)+_0x46cec1+_0x6a53e5(0xbc)+_0x29e471+')'});return _0x5ddc0f[_0x6a53e5(0x90)]({'success':![],'message':_0x6a53e5(0xa6)+_0x46cec1+'\x20tidak\x20bisa\x20di-cancel\x20(state:\x20'+_0x29e471+')'});}}_0x5ddc0f['status'](0x194)[_0x6a53e5(0x90)]({'success':![],'error':'Job\x20'+_0x46cec1+'\x20tidak\x20ditemukan'});}catch(_0x199302){logger[_0x6a53e5(0xa1)]({'event':'job_cancel_error','error':_0x199302[_0x6a53e5(0xca)]},_0x5ca525['ZGwag']),_0x5ddc0f['status'](0x1f4)['json']({'success':![],'error':_0x199302[_0x6a53e5(0xca)]});}}),_0xe52942['get']('/history',async(_0x1dce75,_0x5eb18d)=>{const _0x1095fd=_0x2e236b;try{const _0x15e39c=_0x5ca525[_0x1095fd(0xe7)](parseInt,_0x1dce75[_0x1095fd(0xbd)]['page'],0xa)||0x1,_0x4a1223=Math[_0x1095fd(0xb1)](_0x5ca525['lXfGi'](parseInt,_0x1dce75['query'][_0x1095fd(0xb3)],0xa)||0x14,0x64),_0x2cc929=_0x5ca525['ooiJM'](_0x5ca525['NKuTn'](_0x15e39c,0x1),_0x4a1223),_0x134e4e=_0x5ca525[_0x1095fd(0xde)](_0x5ca525['mYCXV'](_0x2cc929,_0x4a1223),0x1),_0x1763bb=_0x5ca525[_0x1095fd(0xb6)](getReadQueues),_0x2fe824=[];for(const [_0x45966a,_0x1cc164]of Object[_0x1095fd(0x8a)](_0x1763bb)){const _0x200223=await _0x1cc164['getJobs']([_0x5ca525['YTYmz']],_0x2cc929,_0x134e4e),_0x3a5e91=await _0x1cc164['getJobs']([_0x5ca525[_0x1095fd(0xdc)]],_0x2cc929,_0x134e4e);for(const _0x3fb0fb of[..._0x200223,..._0x3a5e91]){const _0x2254ed=await _0x3fb0fb[_0x1095fd(0x9f)]();_0x2fe824['push']({'jobId':_0x3fb0fb['id'],'name':_0x3fb0fb[_0x1095fd(0x9c)],'state':_0x2254ed,'queue':_0x45966a,'attemptsMade':_0x3fb0fb[_0x1095fd(0xd1)],'failedReason':_0x3fb0fb['failedReason'],'returnvalue':_0x3fb0fb['returnvalue'],'timestamps':{'created':_0x3fb0fb['timestamp'],'started':_0x3fb0fb[_0x1095fd(0xcb)],'completed':_0x3fb0fb['finishedOn']}});}}_0x2fe824[_0x1095fd(0xda)]((_0x7393bd,_0x4fa4aa)=>(_0x4fa4aa[_0x1095fd(0x8e)]['created']||0x0)-(_0x7393bd['timestamps'][_0x1095fd(0x9b)]||0x0)),_0x5eb18d['json']({'success':!![],'data':_0x2fe824[_0x1095fd(0xd3)](0x0,_0x4a1223),'total':_0x2fe824['length'],'page':_0x15e39c,'limit':_0x4a1223});}catch(_0x3b5679){logger[_0x1095fd(0xa1)]({'event':_0x1095fd(0xdf),'error':_0x3b5679[_0x1095fd(0xca)]},_0x5ca525['pHeZx']),_0x5eb18d[_0x1095fd(0xbb)](0x1f4)['json']({'success':![],'error':_0x3b5679[_0x1095fd(0xca)]});}}),_0xe52942['get'](_0x2e236b(0xe1),async(_0x47c504,_0x2a7890)=>{const _0x5112f4=_0x2e236b;try{const _0x152d12=getReadQueues(),_0x1c416d={};for(const [_0x1a6b72,_0x3578d1]of Object['entries'](_0x152d12)){try{const _0x5735eb=await _0x3578d1['getJobCounts'](_0x5ca525[_0x5112f4(0xc7)],_0x5112f4(0xa0),_0x5ca525[_0x5112f4(0xaa)],_0x5ca525[_0x5112f4(0xdc)],_0x5112f4(0xa9),_0x5ca525['egHKU']);_0x1c416d[_0x1a6b72]=_0x5735eb;}catch(_0x5f4003){_0x1c416d[_0x1a6b72]={'error':_0x5f4003[_0x5112f4(0xca)]};}}_0x2a7890['json']({'success':!![],'data':_0x1c416d});}catch(_0xb72044){logger[_0x5112f4(0xa1)]({'event':_0x5112f4(0xb7),'error':_0xb72044[_0x5112f4(0xca)]},_0x5112f4(0xe9)),_0x2a7890[_0x5112f4(0xbb)](0x1f4)['json']({'success':![],'error':_0xb72044[_0x5112f4(0xca)]});}}),_0xe52942[_0x2e236b(0xa7)](_0x5ca525[_0x2e236b(0xc2)],async(_0x156a27,_0x20e3f6)=>{const _0x1b641c=_0x2e236b;try{const _0x338515=_0x5ca525[_0x1b641c(0xb6)](getReadQueues),_0xd345aa={};let _0x4c7d2f=![];for(const [_0x3da63b,_0x3aba52]of Object[_0x1b641c(0x8a)](_0x338515)){try{const _0x429e32=await _0x3aba52['getJobCounts'](_0x5ca525['IVZjb'],'waiting',_0x5ca525['RtrxS']);_0xd345aa[_0x3da63b]=_0x429e32,_0x4c7d2f=!![];}catch(_0x497bbc){_0xd345aa[_0x3da63b]={'error':_0x497bbc['message']};}}let _0x1cbbf1=0x0;cachedJobConfigs&&(_0x1cbbf1=Object['keys'](cachedJobConfigs)['length']),_0x20e3f6[_0x1b641c(0x90)]({'success':!![],'data':{'status':_0x4c7d2f?_0x5ca525['PNUfJ']:_0x5ca525['SxSiK'],'redis':_0x4c7d2f?_0x5ca525['rYquw']:_0x1b641c(0x89),'registeredJobs':_0x1cbbf1,'queues':_0xd345aa}});}catch(_0x102fd0){_0x20e3f6['status'](0x1f7)[_0x1b641c(0x90)]({'success':![],'data':{'status':_0x5ca525[_0x1b641c(0xe4)],'error':_0x102fd0['message']}});}}),_0xe52942;}function a0_0x33d5(_0x3a147e,_0x72cf9f){_0x3a147e=_0x3a147e-0x88;const _0xb1d1a4=a0_0xb1d1();let _0x33d58a=_0xb1d1a4[_0x3a147e];if(a0_0x33d5['BTwJNp']===undefined){var _0x2ee62d=function(_0x1c741b){const _0x40eb61='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x354795='',_0x1b4f1e='';for(let _0x302abb=0x0,_0xe6c18c,_0x2b8ffe,_0x11ca0b=0x0;_0x2b8ffe=_0x1c741b['charAt'](_0x11ca0b++);~_0x2b8ffe&&(_0xe6c18c=_0x302abb%0x4?_0xe6c18c*0x40+_0x2b8ffe:_0x2b8ffe,_0x302abb++%0x4)?_0x354795+=String['fromCharCode'](0xff&_0xe6c18c>>(-0x2*_0x302abb&0x6)):0x0){_0x2b8ffe=_0x40eb61['indexOf'](_0x2b8ffe);}for(let _0x3cac42=0x0,_0x1595f9=_0x354795['length'];_0x3cac42<_0x1595f9;_0x3cac42++){_0x1b4f1e+='%'+('00'+_0x354795['charCodeAt'](_0x3cac42)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1b4f1e);};a0_0x33d5['LUtHNL']=_0x2ee62d,a0_0x33d5['Rnszry']={},a0_0x33d5['BTwJNp']=!![];}const _0x46a219=_0xb1d1a4[0x0],_0x2cd051=_0x3a147e+_0x46a219,_0xccf6b3=a0_0x33d5['Rnszry'][_0x2cd051];return!_0xccf6b3?(_0x33d58a=a0_0x33d5['LUtHNL'](_0x33d58a),a0_0x33d5['Rnszry'][_0x2cd051]=_0x33d58a):_0x33d58a=_0xccf6b3,_0x33d58a;}module[a0_0x29db2b(0xe0)]=createJobRoutes;
@@ -1 +1 @@
1
- const a0_0xd940a6=a0_0x180b;(function(_0x189faf,_0xe3cbd0){const _0x23f6e1=a0_0x180b,_0x21190c=_0x189faf();while(!![]){try{const _0x43c778=-parseInt(_0x23f6e1(0x13e))/0x1+-parseInt(_0x23f6e1(0x159))/0x2*(-parseInt(_0x23f6e1(0x123))/0x3)+parseInt(_0x23f6e1(0x15b))/0x4+-parseInt(_0x23f6e1(0x135))/0x5*(-parseInt(_0x23f6e1(0x15a))/0x6)+-parseInt(_0x23f6e1(0x170))/0x7*(parseInt(_0x23f6e1(0x149))/0x8)+-parseInt(_0x23f6e1(0x138))/0x9*(parseInt(_0x23f6e1(0x141))/0xa)+parseInt(_0x23f6e1(0x14c))/0xb*(-parseInt(_0x23f6e1(0x13c))/0xc);if(_0x43c778===_0xe3cbd0)break;else _0x21190c['push'](_0x21190c['shift']());}catch(_0x457fe8){_0x21190c['push'](_0x21190c['shift']());}}}(a0_0x5155,0x7ac2b));const fs=require('fs'),path=require('path'),VALID_QUEUE_NAMES=[a0_0xd940a6(0x13f),'default','low-priority'],VALID_BACKOFF_TYPES=[a0_0xd940a6(0x161),'exponential'],SLUG_REGEX=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;function a0_0x5155(){const _0x2a8e5b=['Aw5PDgLHBerLBgf5','r01VvwK','y29Uy3vYCMvUy3K','Bwf4','iJOGBMLSywKGiG','C3bSAxq','DgvZDa','q29UzMLNigHHCNvZigjLCNvWysbVyMPLy3q','rMLLBgqGiNr5CguIigHHCNvZicjJCM9UiIWGzgL0zw11A2fUoIaI','veX5te0','zxjYB3jZ','uNLrDgq','igzPzwXKoIaI','BMfTzq','rMLLBgqGiNr5CguIihDHAMLIigrPAxnPicHZDhjPBMCP','mZe5nuvrt1PZtW','whfKt3C','Aw5JBhvKzxm','mZC4ndiZsvnyz1fV','BgvUz3rO','AgfUzgXLCG','C2nOzwr1Bgu','nteYotiYme9kAvnQzq','rMLLBgqGiNjLDhj5lM1HEef0DgvTChrZiIbOyxj1CYbUDw1IzxiGyw50yxjHideTmta','mJe5otGYvNvgCw5u','AgLNAc1WCMLVCML0Eq','B2jQzwn0','ntbfyxrjDuu','zgf5lw9Mlw1VBNrO','EenHu2q','rMLLBgqGiM5HBwuIihDHAMLIigrPAxnPicHZDhjPBMCP','rMLLBgqGiM5HBwuIigHHCNvZihnSDwCGzM9YBwf0icHSB3DLCMnHC2uSigrHC2GPoIaI','Bwv0ywrHDge','BwLU','zw5HyMXLza','mJrervLLsMO','C3rYAw5N','AM9ICW','mtfMAwTywMG','x2LZvMfSAwrsyw5Nzq','iJOGyMfZzsaI','quXtr2q','DMfSAwrHDgvdCM9UrxHWCMvZC2LVBG','q3jVBIbLEhbYzxnZAw9UigHHCNvZiduGzMLLBgqGkg1PBNv0zsbOB3vYigrHEsbTB250Acb3zwvRzgf5ksWGzgL0zw11A2fUia','q3jVBIbMAwvSzcaI','uvzjqvG','tKPsvK0','iIb0AwrHAYb2ywXPzc4GugLSAwHHBJOG','thjHDhG','q2fAAK8','rMLLBgqGiNrPBwvVDxqIigHHCNvZig51BwjLCIa+idaGkgrHBgfTig1Zkq','nJi1mty2yxHfDgzS','mJmZng5QBMfnsa','mZG2mti3mNjyq0HtyW','DhLWzq','ChvZAa','DhjPBq','DMfSAwq','EeHkvvq','zML4zwq','DgLTzw91Da','BNvTyMvY','CxvLDwu','y3jVBG','AxnbCNjHEq','zgf5lw9MlxDLzwS','DMfSAwrHDgvrDwv1zu5HBwu','lMPZicHHyNnVBhv0ztOG','rMLLBgqGiNnJAgvKDwXLiIb3ywPPyIbKAwLZAsaOy3jVBIbLEhbYzxnZAw9Uihn0CMLUzYK','rKXJzMe','DMfSAwrHDgvszxrYEunVBMzPzW','Bwf4qxr0zw1WDhm','iIbHDgf1ici','AM9PBG','mZG3mZe3AvbpDfbq','CMv0CNK','ChrXr1i','D1ziDKy','zxHWB3j0CW','m3rytxr1wq','BhDOzvK','AKHWsgK'];a0_0x5155=function(){return _0x2a8e5b;};return a0_0x5155();}function a0_0x180b(_0xdf1d1a,_0x5b0a37){_0xdf1d1a=_0xdf1d1a-0x121;const _0x5155fe=a0_0x5155();let _0x180b1a=_0x5155fe[_0xdf1d1a];if(a0_0x180b['rqXOet']===undefined){var _0x298d2f=function(_0x383869){const _0x5f0d67='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x14a296='',_0x4d521a='';for(let _0x10eb4=0x0,_0x2e674d,_0x5897a2,_0x46433f=0x0;_0x5897a2=_0x383869['charAt'](_0x46433f++);~_0x5897a2&&(_0x2e674d=_0x10eb4%0x4?_0x2e674d*0x40+_0x5897a2:_0x5897a2,_0x10eb4++%0x4)?_0x14a296+=String['fromCharCode'](0xff&_0x2e674d>>(-0x2*_0x10eb4&0x6)):0x0){_0x5897a2=_0x5f0d67['indexOf'](_0x5897a2);}for(let _0x29a2d0=0x0,_0x4e00cb=_0x14a296['length'];_0x29a2d0<_0x4e00cb;_0x29a2d0++){_0x4d521a+='%'+('00'+_0x14a296['charCodeAt'](_0x29a2d0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4d521a);};a0_0x180b['CBVAvt']=_0x298d2f,a0_0x180b['IsbnFM']={},a0_0x180b['rqXOet']=!![];}const _0x99b85e=_0x5155fe[0x0],_0x492193=_0xdf1d1a+_0x99b85e,_0x39b22f=a0_0x180b['IsbnFM'][_0x492193];return!_0x39b22f?(_0x180b1a=a0_0x180b['CBVAvt'](_0x180b1a),a0_0x180b['IsbnFM'][_0x492193]=_0x180b1a):_0x180b1a=_0x39b22f,_0x180b1a;}class JobValidator{['validateConfig'](_0x3a8e68,_0x44c05a){const _0x224d86=a0_0xd940a6,_0x33b88c={'ALSGd':_0x224d86(0x140),'XqdOw':function(_0x2a35a2,_0x303f77){return _0x2a35a2!==_0x303f77;},'sFiGU':_0x224d86(0x14a),'uCJdf':_0x224d86(0x144),'xCaSd':_0x224d86(0x134),'NPixI':_0x224d86(0x16a),'sEyGv':'Field\x20\x22handler\x22\x20wajib\x20diisi\x20(path\x20relatif\x20dari\x20src/jobs/)','Lratx':'boolean','yNRpS':'Field\x20\x22enabled\x22\x20harus\x20boolean','jHpHi':function(_0x1543bb,_0x1ae76d){return _0x1543bb<=_0x1ae76d;},'wVHvF':function(_0x511fa1,_0x257a63){return _0x511fa1===_0x257a63;},'sPaxO':function(_0x5d27d0,_0x446db5){return _0x5d27d0!==_0x446db5;}},_0x2be1c1=[];if(!_0x3a8e68||typeof _0x3a8e68!==_0x33b88c['ALSGd'])return{'valid':![],'errors':[_0x224d86(0x12d)]};if(!_0x3a8e68[_0x224d86(0x133)]||_0x33b88c[_0x224d86(0x136)](typeof _0x3a8e68[_0x224d86(0x133)],_0x33b88c['sFiGU']))_0x2be1c1['push'](_0x33b88c['uCJdf']);else!SLUG_REGEX[_0x224d86(0x12c)](_0x3a8e68[_0x224d86(0x133)])&&_0x2be1c1[_0x224d86(0x15d)](_0x224d86(0x145)+_0x3a8e68['name']+'\x22');if(!_0x3a8e68[_0x224d86(0x15c)]||_0x33b88c['XqdOw'](typeof _0x3a8e68['type'],_0x33b88c['sFiGU']))_0x2be1c1['push'](_0x33b88c[_0x224d86(0x143)]);else _0x33b88c['XqdOw'](_0x3a8e68[_0x224d86(0x15c)],_0x224d86(0x165))&&_0x2be1c1[_0x224d86(0x15d)](_0x224d86(0x12e)+_0x3a8e68['type']+'\x22');if(!_0x3a8e68[_0x224d86(0x13b)]||typeof _0x3a8e68[_0x224d86(0x13b)]!==_0x224d86(0x14a))_0x2be1c1[_0x224d86(0x15d)](_0x33b88c['NPixI']);else{const _0x5ac588=this['validateCronExpression'](_0x3a8e68['schedule']);!_0x5ac588[_0x224d86(0x15f)]&&_0x2be1c1['push'](..._0x5ac588[_0x224d86(0x130)]);}if(!_0x3a8e68[_0x224d86(0x13a)]||typeof _0x3a8e68['handler']!==_0x33b88c['sFiGU'])_0x2be1c1[_0x224d86(0x15d)](_0x33b88c['sEyGv']);else{if(_0x44c05a){const _0x6f2c5b=this['validateHandlerExists'](_0x3a8e68[_0x224d86(0x13a)],_0x44c05a);!_0x6f2c5b['valid']&&_0x2be1c1[_0x224d86(0x15d)](..._0x6f2c5b['errors']);}}_0x3a8e68[_0x224d86(0x148)]!==undefined&&typeof _0x3a8e68[_0x224d86(0x148)]!==_0x33b88c[_0x224d86(0x156)]&&_0x2be1c1['push'](_0x33b88c['yNRpS']);_0x3a8e68['timeout']!==undefined&&((_0x33b88c[_0x224d86(0x136)](typeof _0x3a8e68[_0x224d86(0x162)],_0x224d86(0x163))||_0x33b88c[_0x224d86(0x125)](_0x3a8e68['timeout'],0x0))&&_0x2be1c1['push'](_0x224d86(0x158)));if(_0x3a8e68[_0x224d86(0x164)]!==undefined){const _0x1f3f2c=this['validateQueueName'](_0x3a8e68['queue']);!_0x1f3f2c[_0x224d86(0x15f)]&&_0x2be1c1['push'](..._0x1f3f2c['errors']);}_0x3a8e68[_0x224d86(0x128)]!==undefined&&((_0x33b88c['XqdOw'](typeof _0x3a8e68[_0x224d86(0x128)],'number')||_0x3a8e68[_0x224d86(0x128)]<0x1||_0x3a8e68['concurrency']>0x32)&&_0x2be1c1['push']('Field\x20\x22concurrency\x22\x20harus\x20number\x20antara\x201-50'));if(_0x3a8e68['retry']!==undefined){if(typeof _0x3a8e68[_0x224d86(0x171)]!==_0x33b88c['ALSGd']||_0x33b88c[_0x224d86(0x121)](_0x3a8e68[_0x224d86(0x171)],null))_0x2be1c1['push']('Field\x20\x22retry\x22\x20harus\x20berupa\x20object');else{const _0x451315=this[_0x224d86(0x16c)](_0x3a8e68[_0x224d86(0x171)]);!_0x451315['valid']&&_0x2be1c1['push'](..._0x451315['errors']);}}return _0x33b88c['sPaxO'](_0x3a8e68[_0x224d86(0x146)],undefined)&&((typeof _0x3a8e68['metadata']!==_0x33b88c[_0x224d86(0x14f)]||_0x3a8e68[_0x224d86(0x146)]===null||Array[_0x224d86(0x166)](_0x3a8e68['metadata']))&&_0x2be1c1['push']('Field\x20\x22metadata\x22\x20harus\x20berupa\x20object')),{'valid':_0x2be1c1['length']===0x0,'errors':_0x2be1c1};}[a0_0xd940a6(0x150)](_0x1a36bf){const _0xbaca09=a0_0xd940a6,_0x342b9c={'zIPIL':function(_0x4ba333,_0x7407f9){return _0x4ba333!==_0x7407f9;},'PicTo':'hour','FLcfa':_0xbaca09(0x142),'xHJUT':_0xbaca09(0x167),'blqUl':function(_0x568856,_0x5efb5e){return _0x568856<_0x5efb5e;},'TLyLM':function(_0x2abf29,_0x92cd03){return _0x2abf29===_0x92cd03;},'cLooC':function(_0x4a184d,_0x4b5940){return _0x4a184d===_0x4b5940;}},_0x47c180=[],_0x1a4cef=_0x1a36bf[_0xbaca09(0x15e)]()[_0xbaca09(0x12b)](/\s+/);if(_0x342b9c['zIPIL'](_0x1a4cef['length'],0x5))return _0x47c180[_0xbaca09(0x15d)](_0xbaca09(0x151)+_0x1a4cef[_0xbaca09(0x139)]+_0xbaca09(0x132)+_0x1a36bf+'\x22'),{'valid':![],'errors':_0x47c180};const _0x171f5a=['minute',_0x342b9c['PicTo'],_0x342b9c[_0xbaca09(0x16b)],'month',_0x342b9c[_0xbaca09(0x160)]],_0x2cc27a=[{'min':0x0,'max':0x3b},{'min':0x0,'max':0x17},{'min':0x1,'max':0x1f},{'min':0x1,'max':0xc},{'min':0x0,'max':0x7}],_0x13f8aa=/^(\*|[0-9]+(-[0-9]+)?)([,/](\*|[0-9]+(-[0-9]+)?))*$/;for(let _0x3544cd=0x0;_0x342b9c['blqUl'](_0x3544cd,0x5);_0x3544cd++){const _0x907d4d=_0x1a4cef[_0x3544cd];if(_0x342b9c[_0xbaca09(0x12f)](_0x907d4d,'*'))continue;if(_0x907d4d[_0xbaca09(0x137)]('/')){const [_0x1cad11,_0x1f9526]=_0x907d4d['split']('/');_0x1cad11!=='*'&&!this[_0xbaca09(0x14d)](_0x1cad11,_0x2cc27a[_0x3544cd])&&_0x47c180[_0xbaca09(0x15d)]('Cron\x20field\x20\x22'+_0x171f5a[_0x3544cd]+_0xbaca09(0x14e)+_0x1cad11+'\x22\x20tidak\x20valid');const _0x25a5a8=parseInt(_0x1f9526,0xa);(isNaN(_0x25a5a8)||_0x25a5a8<0x1)&&_0x47c180[_0xbaca09(0x15d)]('Cron\x20field\x20\x22'+_0x171f5a[_0x3544cd]+'\x22:\x20step\x20\x22/'+_0x1f9526+'\x22\x20harus\x20angka\x20>\x200');continue;}const _0x195f41=_0x907d4d['split'](',');for(const _0x1563c8 of _0x195f41){!this[_0xbaca09(0x14d)](_0x1563c8,_0x2cc27a[_0x3544cd])&&_0x47c180[_0xbaca09(0x15d)](_0xbaca09(0x152)+_0x171f5a[_0x3544cd]+_0xbaca09(0x12a)+_0x1563c8+'\x22\x20di\x20luar\x20range\x20'+_0x2cc27a[_0x3544cd]['min']+'-'+_0x2cc27a[_0x3544cd][_0xbaca09(0x129)]);}}return{'valid':_0x342b9c['cLooC'](_0x47c180[_0xbaca09(0x139)],0x0),'errors':_0x47c180};}['_isValidRange'](_0x23725a,_0x358ce1){const _0x27e1fa=a0_0xd940a6,_0x2b9e5={'CaZjO':function(_0x527f9f,_0x20280c){return _0x527f9f<=_0x20280c;},'ptqGR':function(_0x48d062,_0x5a1775){return _0x48d062>=_0x5a1775;},'yRZkn':function(_0x3c5d33,_0x48a185){return _0x3c5d33>=_0x48a185;}};if(_0x23725a['includes']('-')){const [_0x3bf27b,_0x44b6c2]=_0x23725a[_0x27e1fa(0x12b)]('-')['map'](Number);return!isNaN(_0x3bf27b)&&!isNaN(_0x44b6c2)&&_0x3bf27b>=_0x358ce1['min']&&_0x2b9e5[_0x27e1fa(0x157)](_0x3bf27b,_0x358ce1['max'])&&_0x2b9e5[_0x27e1fa(0x172)](_0x44b6c2,_0x358ce1[_0x27e1fa(0x147)])&&_0x44b6c2<=_0x358ce1[_0x27e1fa(0x129)]&&_0x3bf27b<=_0x44b6c2;}const _0x3f9a9b=parseInt(_0x23725a,0xa);return!isNaN(_0x3f9a9b)&&_0x2b9e5['yRZkn'](_0x3f9a9b,_0x358ce1['min'])&&_0x3f9a9b<=_0x358ce1['max'];}[a0_0xd940a6(0x168)](_0x2e1000){const _0x25f445=a0_0xd940a6;if(!VALID_QUEUE_NAMES[_0x25f445(0x137)](_0x2e1000))return{'valid':![],'errors':['Queue\x20\x22'+_0x2e1000+_0x25f445(0x155)+VALID_QUEUE_NAMES[_0x25f445(0x16f)](',\x20')]};return{'valid':!![],'errors':[]};}['validateRetryConfig'](_0x424206){const _0x9431d9=a0_0xd940a6,_0x32127f={'RyQtd':function(_0x5c77a5,_0xa38f0c){return _0x5c77a5!==_0xa38f0c;},'VdoZb':function(_0x1d14a8,_0x3c44da){return _0x1d14a8<_0x3c44da;},'lwheY':function(_0x1efff3,_0xe129a3){return _0x1efff3>_0xe129a3;},'QVIAX':_0x9431d9(0x13d),'voRAj':function(_0x57a383,_0x5a3765){return _0x57a383!==_0x5a3765;},'NJRVM':_0x9431d9(0x163),'GMoUi':function(_0x165d0b,_0x2ead9b){return _0x165d0b<=_0x2ead9b;}},_0x26bbd4=[];return _0x32127f['RyQtd'](_0x424206['maxAttempts'],undefined)&&((typeof _0x424206[_0x9431d9(0x16d)]!==_0x9431d9(0x163)||_0x32127f['VdoZb'](_0x424206['maxAttempts'],0x1)||_0x32127f[_0x9431d9(0x124)](_0x424206[_0x9431d9(0x16d)],0xa))&&_0x26bbd4[_0x9431d9(0x15d)](_0x32127f[_0x9431d9(0x153)])),_0x32127f['voRAj'](_0x424206['backoff'],undefined)&&(!VALID_BACKOFF_TYPES[_0x9431d9(0x137)](_0x424206['backoff'])&&_0x26bbd4['push']('Field\x20\x22retry.backoff\x22\x20harus\x20\x22'+VALID_BACKOFF_TYPES[_0x9431d9(0x16f)](_0x9431d9(0x16e))+'\x22')),_0x424206['initialDelay']!==undefined&&((_0x32127f[_0x9431d9(0x131)](typeof _0x424206[_0x9431d9(0x126)],_0x32127f[_0x9431d9(0x154)])||_0x32127f[_0x9431d9(0x127)](_0x424206['initialDelay'],0x0))&&_0x26bbd4['push']('Field\x20\x22retry.initialDelay\x22\x20harus\x20number\x20>\x200\x20(dalam\x20ms)')),{'valid':_0x26bbd4['length']===0x0,'errors':_0x26bbd4};}['validateHandlerExists'](_0x5746d2,_0x109c3d){const _0x57c753=a0_0xd940a6,_0x17e616=path[_0x57c753(0x16f)](_0x109c3d,'src',_0x57c753(0x14b),_0x5746d2+'.js');if(!fs['existsSync'](_0x17e616))return{'valid':![],'errors':['Handler\x20file\x20tidak\x20ditemukan:\x20src/jobs/'+_0x5746d2+_0x57c753(0x169)+_0x17e616+')']};return{'valid':!![],'errors':[]};}}module[a0_0xd940a6(0x122)]=new JobValidator();
1
+ const a0_0xaa67f5=a0_0x30f6;(function(_0xff46c3,_0x4f2221){const _0xc44918=a0_0x30f6,_0x303372=_0xff46c3();while(!![]){try{const _0x2a4111=-parseInt(_0xc44918(0x173))/0x1*(parseInt(_0xc44918(0x191))/0x2)+parseInt(_0xc44918(0x164))/0x3+-parseInt(_0xc44918(0x171))/0x4*(parseInt(_0xc44918(0x182))/0x5)+-parseInt(_0xc44918(0x1a5))/0x6*(-parseInt(_0xc44918(0x16f))/0x7)+parseInt(_0xc44918(0x1a8))/0x8*(parseInt(_0xc44918(0x178))/0x9)+parseInt(_0xc44918(0x17d))/0xa*(-parseInt(_0xc44918(0x1ac))/0xb)+parseInt(_0xc44918(0x18c))/0xc;if(_0x2a4111===_0x4f2221)break;else _0x303372['push'](_0x303372['shift']());}catch(_0x4f06ff){_0x303372['push'](_0x303372['shift']());}}}(a0_0x4a52,0xd6c63));function a0_0x30f6(_0x1b9485,_0x1b3d71){_0x1b9485=_0x1b9485-0x15e;const _0x4a520b=a0_0x4a52();let _0x30f658=_0x4a520b[_0x1b9485];if(a0_0x30f6['WPOAIz']===undefined){var _0x4ce354=function(_0x3aff15){const _0x36c358='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x59362e='',_0x873b98='';for(let _0x534cfd=0x0,_0x563708,_0x1e32d7,_0x555845=0x0;_0x1e32d7=_0x3aff15['charAt'](_0x555845++);~_0x1e32d7&&(_0x563708=_0x534cfd%0x4?_0x563708*0x40+_0x1e32d7:_0x1e32d7,_0x534cfd++%0x4)?_0x59362e+=String['fromCharCode'](0xff&_0x563708>>(-0x2*_0x534cfd&0x6)):0x0){_0x1e32d7=_0x36c358['indexOf'](_0x1e32d7);}for(let _0x4d32f3=0x0,_0x2d2582=_0x59362e['length'];_0x4d32f3<_0x2d2582;_0x4d32f3++){_0x873b98+='%'+('00'+_0x59362e['charCodeAt'](_0x4d32f3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x873b98);};a0_0x30f6['tBVfAt']=_0x4ce354,a0_0x30f6['aakKbV']={},a0_0x30f6['WPOAIz']=!![];}const _0x52e179=_0x4a520b[0x0],_0x5a515a=_0x1b9485+_0x52e179,_0x18e426=a0_0x30f6['aakKbV'][_0x5a515a];return!_0x18e426?(_0x30f658=a0_0x30f6['tBVfAt'](_0x30f658),a0_0x30f6['aakKbV'][_0x5a515a]=_0x30f658):_0x30f658=_0x18e426,_0x30f658;}function a0_0x4a52(){const _0x13c8cf=['DhjPBq','yM9VBgvHBG','mtfSqvzwrgC','Aw5JBhvKzxm','DhLWzq','Bwf4','BgvUz3rO','AgLNAc1WCMLVCML0Eq','BNvTyMvY','BMfTzq','AxnbCNjHEq','rMLLBgqGiNr5CguIigHHCNvZicjJCM9UiIWGzgL0zw11A2fUoIaI','igzPzwXKoIaI','q29UzMLNigHHCNvZigjLCNvWysbVyMPLy3q','ChvZAa','DMfSAwrHDgvdCM9UrxHWCMvZC2LVBG','ndm4mZCYs1HovfP5','sgfUzgXLCIbMAwXLihrPzgfRigrPDgvTDwTHBJOGC3jJl2PVyNmV','Bwf4qxr0zw1WDhm','DgvZDa','A0fOCei','CMv0CNK','CgXJtfm','twLHwLC','yMfJA29MzG','x2LZvMfSAwrsyw5Nzq','CwvwENG','nJq0yvbSyMjN','Bwv0ywrHDge','ntjYzK5qChm','q3jVBIbMAwvSzcaI','mvvOwKrprq','DMfSAwrHDgvrDwv1zu5HBwu','Ag91CG','Bg93lxbYAw9YAxr5','suL4qNy','mJKYnwPPqurgCG','C2nOzwr1Bgu','AgfUzgXLCG','BwLU','zgf5lw9MlxDLzwS','mti2mZm4otbYq2ziqvK','DMfSAwrHDgvszxrYEunVBMzPzW','Bw9UDgG','CxvLDwu','Dvb1z3u','mtaXnurVuKPjDa','Aw5PDgLHBerLBgf5','Cgf0Aa','C3bSAxq','qMrWAK8','DgLTzw91Da','lMPZicHHyNnVBhv0ztOG','vevnrwC','DMfSAwrHDgviyw5KBgvYrxHPC3rZ','ugv3Ehu','ntKYoteWnhDiEhD5qq','DMfSAwq','zgvMyxvSDa','AM9ICW','iIbKAsbSDwfYihjHBMDLia','mtC5nZmWmMzry3rUqW','zw5HyMXLza','sMHWD0C','zxjYB3jZ','rMLLBgqGiMvUywjSzwqIigHHCNvZigjVB2XLyw4','rMLLBgqGiNjLDhj5lM1HEef0DgvTChrZiIbOyxj1CYbUDw1IzxiGyw50yxjHideTmta','B2jQzwn0','rwLqDgC','z1jXCLG','ug1NAwm','iIb0AwrHAYb2ywXPza','rMLLBgqGiNjLDhj5lMjHy2TVzMyIigHHCNvZici','rMLLBgqGiNjLDhj5iIbOyxj1CYbIzxj1CgeGB2jQzwn0','rMLLBgqGiNjLDhj5lMLUAxrPywXezwXHEsiGAgfYDxmGBNvTyMvYid4GmcaOzgfSyw0GBxmP','svDyAuS','v3fkreq','y29Uy3vYCMvUy3K','EKDpwfa','rM1gDNC','rMLLBgqGiNrPBwvVDxqIigHHCNvZig51BwjLCIa+idaGkgrHBgfTig1Zkq','mteXmdu0sKrXCLnv','iIbHDgf1ici','rMLLBgqGiM1LDgfKyxrHiIbOyxj1CYbIzxj1CgeGB2jQzwn0','mtCYnJrPthzuAxa','tvbuy0W'];a0_0x4a52=function(){return _0x13c8cf;};return a0_0x4a52();}const fs=require('fs'),path=require(a0_0xaa67f5(0x184)),VALID_QUEUE_NAMES=[a0_0xaa67f5(0x1b1),a0_0xaa67f5(0x18e),a0_0xaa67f5(0x176)],VALID_BACKOFF_TYPES=['fixed','exponential'],SLUG_REGEX=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;class JobValidator{['validateConfig'](_0x2dcee2,_0x7df1b2){const _0x5bb614=a0_0xaa67f5,_0x119f52={'IWXiK':function(_0x48e192,_0x2acb97){return _0x48e192!==_0x2acb97;},'yaGlS':_0x5bb614(0x197),'IUaof':_0x5bb614(0x161),'mZhRn':'string','kAhpB':'Field\x20\x22type\x22\x20wajib\x20diisi\x20(string)','dgrNH':'cron','JhpwG':function(_0x34eaf7,_0x53b946){return _0x34eaf7!==_0x53b946;},'qeVzx':'Field\x20\x22handler\x22\x20wajib\x20diisi\x20(path\x20relatif\x20dari\x20src/jobs/)','VztLB':_0x5bb614(0x195),'Pmgic':_0x5bb614(0x1b2),'DYAan':function(_0x13a0f6,_0x41f955){return _0x13a0f6<=_0x41f955;},'CEFWr':function(_0x408ab8,_0x5e9abd){return _0x408ab8!==_0x5e9abd;},'uPugu':function(_0x37c78b,_0x3af29e){return _0x37c78b<_0x3af29e;},'duIGU':function(_0x4eee1a,_0x34c833){return _0x4eee1a>_0x34c833;},'drcuq':function(_0x19f47b,_0x20327f){return _0x19f47b!==_0x20327f;},'MiaZW':function(_0x56affd,_0x330f3e){return _0x56affd!==_0x330f3e;},'TEMEg':function(_0x4c6d42,_0x1332bb){return _0x4c6d42===_0x1332bb;}},_0xd95c06=[];if(!_0x2dcee2||_0x119f52[_0x5bb614(0x19f)](typeof _0x2dcee2,_0x119f52['yaGlS']))return{'valid':![],'errors':[_0x119f52['IUaof']]};if(!_0x2dcee2[_0x5bb614(0x1b3)]||_0x119f52[_0x5bb614(0x19f)](typeof _0x2dcee2[_0x5bb614(0x1b3)],_0x119f52['mZhRn']))_0xd95c06[_0x5bb614(0x162)]('Field\x20\x22name\x22\x20wajib\x20diisi\x20(string)');else!SLUG_REGEX[_0x5bb614(0x167)](_0x2dcee2[_0x5bb614(0x1b3)])&&_0xd95c06['push']('Field\x20\x22name\x22\x20harus\x20slug\x20format\x20(lowercase,\x20dash):\x20\x22'+_0x2dcee2[_0x5bb614(0x1b3)]+'\x22');if(!_0x2dcee2[_0x5bb614(0x1ae)]||_0x119f52[_0x5bb614(0x19f)](typeof _0x2dcee2[_0x5bb614(0x1ae)],_0x119f52['mZhRn']))_0xd95c06['push'](_0x119f52[_0x5bb614(0x168)]);else _0x119f52['IWXiK'](_0x2dcee2[_0x5bb614(0x1ae)],_0x119f52['dgrNH'])&&_0xd95c06['push'](_0x5bb614(0x15f)+_0x2dcee2['type']+'\x22');if(!_0x2dcee2[_0x5bb614(0x179)]||typeof _0x2dcee2[_0x5bb614(0x179)]!==_0x119f52['mZhRn'])_0xd95c06[_0x5bb614(0x162)]('Field\x20\x22schedule\x22\x20wajib\x20diisi\x20(cron\x20expression\x20string)');else{const _0x5c54fc=this[_0x5bb614(0x163)](_0x2dcee2[_0x5bb614(0x179)]);!_0x5c54fc['valid']&&_0xd95c06[_0x5bb614(0x162)](..._0x5c54fc['errors']);}if(!_0x2dcee2[_0x5bb614(0x17a)]||_0x119f52['JhpwG'](typeof _0x2dcee2['handler'],_0x119f52['mZhRn']))_0xd95c06[_0x5bb614(0x162)](_0x119f52[_0x5bb614(0x16e)]);else{if(_0x7df1b2){const _0x2dd90d=this[_0x5bb614(0x18a)](_0x2dcee2[_0x5bb614(0x17a)],_0x7df1b2);!_0x2dd90d[_0x5bb614(0x18d)]&&_0xd95c06['push'](..._0x2dd90d[_0x5bb614(0x194)]);}}_0x2dcee2[_0x5bb614(0x192)]!==undefined&&typeof _0x2dcee2[_0x5bb614(0x192)]!==_0x5bb614(0x1ab)&&_0xd95c06[_0x5bb614(0x162)](_0x119f52['VztLB']);_0x119f52[_0x5bb614(0x193)](_0x2dcee2[_0x5bb614(0x187)],undefined)&&((typeof _0x2dcee2['timeout']!==_0x119f52[_0x5bb614(0x19a)]||_0x119f52['DYAan'](_0x2dcee2[_0x5bb614(0x187)],0x0))&&_0xd95c06['push'](_0x5bb614(0x1a4)));if(_0x119f52['CEFWr'](_0x2dcee2['queue'],undefined)){const _0x83d2ba=this[_0x5bb614(0x174)](_0x2dcee2[_0x5bb614(0x180)]);!_0x83d2ba['valid']&&_0xd95c06[_0x5bb614(0x162)](..._0x83d2ba[_0x5bb614(0x194)]);}_0x2dcee2['concurrency']!==undefined&&((typeof _0x2dcee2[_0x5bb614(0x1a1)]!==_0x119f52[_0x5bb614(0x19a)]||_0x119f52[_0x5bb614(0x181)](_0x2dcee2['concurrency'],0x1)||_0x119f52['duIGU'](_0x2dcee2['concurrency'],0x32))&&_0xd95c06['push']('Field\x20\x22concurrency\x22\x20harus\x20number\x20antara\x201-50'));if(_0x119f52['drcuq'](_0x2dcee2['retry'],undefined)){if(_0x119f52['IWXiK'](typeof _0x2dcee2[_0x5bb614(0x169)],_0x5bb614(0x197))||_0x2dcee2[_0x5bb614(0x169)]===null)_0xd95c06[_0x5bb614(0x162)](_0x5bb614(0x19d));else{const _0x342b38=this['validateRetryConfig'](_0x2dcee2['retry']);!_0x342b38['valid']&&_0xd95c06['push'](..._0x342b38['errors']);}}return _0x119f52[_0x5bb614(0x16b)](_0x2dcee2[_0x5bb614(0x170)],undefined)&&((_0x119f52[_0x5bb614(0x16b)](typeof _0x2dcee2['metadata'],_0x5bb614(0x197))||_0x2dcee2['metadata']===null||Array[_0x5bb614(0x15e)](_0x2dcee2['metadata']))&&_0xd95c06['push'](_0x5bb614(0x1a7))),{'valid':_0x119f52[_0x5bb614(0x189)](_0xd95c06['length'],0x0),'errors':_0xd95c06};}[a0_0xaa67f5(0x163)](_0x3172fb){const _0x18cc47=a0_0xaa67f5,_0x1dbe58={'zGOXP':'minute','EiPtg':'day-of-month','bpAyL':_0x18cc47(0x17f),'jQqAh':_0x18cc47(0x17c),'WqJDD':function(_0x19ff3d,_0xad02bd){return _0x19ff3d===_0xad02bd;},'trkWx':function(_0x37cea1,_0x868609){return _0x37cea1!==_0x868609;},'frZLc':function(_0x5aa911,_0x134b12){return _0x5aa911(_0x134b12);},'plcLS':function(_0x28c007,_0x4ab1eb){return _0x28c007<_0x4ab1eb;},'BdpjO':function(_0x71d7b,_0x3fdd31){return _0x71d7b===_0x3fdd31;}},_0x4ebbd4=[],_0x5b9513=_0x3172fb[_0x18cc47(0x1aa)]()[_0x18cc47(0x185)](/\s+/);if(_0x5b9513[_0x18cc47(0x1b0)]!==0x5)return _0x4ebbd4['push']('Cron\x20expression\x20harus\x205\x20field\x20(minute\x20hour\x20day\x20month\x20weekday),\x20ditemukan\x20'+_0x5b9513[_0x18cc47(0x1b0)]+_0x18cc47(0x160)+_0x3172fb+'\x22'),{'valid':![],'errors':_0x4ebbd4};const _0x5575fd=[_0x1dbe58[_0x18cc47(0x1a2)],_0x18cc47(0x175),_0x1dbe58[_0x18cc47(0x198)],_0x1dbe58['bpAyL'],_0x1dbe58['jQqAh']],_0x18820f=[{'min':0x0,'max':0x3b},{'min':0x0,'max':0x17},{'min':0x1,'max':0x1f},{'min':0x1,'max':0xc},{'min':0x0,'max':0x7}],_0x103b0a=/^(\*|[0-9]+(-[0-9]+)?)([,/](\*|[0-9]+(-[0-9]+)?))*$/;for(let _0x97e7dd=0x0;_0x97e7dd<0x5;_0x97e7dd++){const _0xd6ae81=_0x5b9513[_0x97e7dd];if(_0x1dbe58[_0x18cc47(0x1a0)](_0xd6ae81,'*'))continue;if(_0xd6ae81[_0x18cc47(0x1ad)]('/')){const [_0x2b482a,_0x52324c]=_0xd6ae81['split']('/');_0x1dbe58['trkWx'](_0x2b482a,'*')&&!this[_0x18cc47(0x16d)](_0x2b482a,_0x18820f[_0x97e7dd])&&_0x4ebbd4[_0x18cc47(0x162)](_0x18cc47(0x172)+_0x5575fd[_0x97e7dd]+'\x22:\x20base\x20\x22'+_0x2b482a+_0x18cc47(0x19b));const _0x523c76=parseInt(_0x52324c,0xa);(_0x1dbe58['frZLc'](isNaN,_0x523c76)||_0x1dbe58[_0x18cc47(0x16a)](_0x523c76,0x1))&&_0x4ebbd4['push'](_0x18cc47(0x172)+_0x5575fd[_0x97e7dd]+'\x22:\x20step\x20\x22/'+_0x52324c+'\x22\x20harus\x20angka\x20>\x200');continue;}const _0x11a21f=_0xd6ae81[_0x18cc47(0x185)](',');for(const _0xbe24b1 of _0x11a21f){!this['_isValidRange'](_0xbe24b1,_0x18820f[_0x97e7dd])&&_0x4ebbd4[_0x18cc47(0x162)](_0x18cc47(0x172)+_0x5575fd[_0x97e7dd]+'\x22:\x20nilai\x20\x22'+_0xbe24b1+_0x18cc47(0x190)+_0x18820f[_0x97e7dd][_0x18cc47(0x17b)]+'-'+_0x18820f[_0x97e7dd]['max']);}}return{'valid':_0x1dbe58[_0x18cc47(0x186)](_0x4ebbd4['length'],0x0),'errors':_0x4ebbd4};}[a0_0xaa67f5(0x16d)](_0x3b4a09,_0x26f8cc){const _0x21f248=a0_0xaa67f5,_0x1a1144={'iXOtR':function(_0x530ae5,_0x387c87){return _0x530ae5(_0x387c87);},'ttwMA':function(_0x52c60d,_0x5533bf){return _0x52c60d>=_0x5533bf;},'XMMGs':function(_0x151721,_0x1eefa6){return _0x151721>=_0x1eefa6;},'JzTII':function(_0x2b3a00,_0x5e868d){return _0x2b3a00<=_0x5e868d;}};if(_0x3b4a09['includes']('-')){const [_0x512dd6,_0x598568]=_0x3b4a09['split']('-')['map'](Number);return!isNaN(_0x512dd6)&&!_0x1a1144['iXOtR'](isNaN,_0x598568)&&_0x1a1144['ttwMA'](_0x512dd6,_0x26f8cc['min'])&&_0x512dd6<=_0x26f8cc[_0x21f248(0x1af)]&&_0x1a1144['XMMGs'](_0x598568,_0x26f8cc['min'])&&_0x598568<=_0x26f8cc['max']&&_0x1a1144['JzTII'](_0x512dd6,_0x598568);}const _0x4d6ab8=parseInt(_0x3b4a09,0xa);return!isNaN(_0x4d6ab8)&&_0x4d6ab8>=_0x26f8cc[_0x21f248(0x17b)]&&_0x1a1144['JzTII'](_0x4d6ab8,_0x26f8cc[_0x21f248(0x1af)]);}[a0_0xaa67f5(0x174)](_0x33542a){const _0x15eea2=a0_0xaa67f5;if(!VALID_QUEUE_NAMES[_0x15eea2(0x1ad)](_0x33542a))return{'valid':![],'errors':['Queue\x20\x22'+_0x33542a+'\x22\x20tidak\x20valid.\x20Pilihan:\x20'+VALID_QUEUE_NAMES['join'](',\x20')]};return{'valid':!![],'errors':[]};}[a0_0xaa67f5(0x17e)](_0x4cd4ee){const _0x1f5e9c=a0_0xaa67f5,_0x4a8410={'gRqrX':function(_0x1267c5,_0x518497){return _0x1267c5!==_0x518497;},'LXNjw':'number','Pewxu':function(_0x4f9e72,_0x5a1ec6){return _0x4f9e72<_0x5a1ec6;},'MPTcL':function(_0x5b487f,_0x45baf3){return _0x5b487f!==_0x45baf3;},'TCpJE':function(_0x551066,_0x393ab4){return _0x551066!==_0x393ab4;},'IIxBv':_0x1f5e9c(0x19e),'FmFvw':function(_0xa1aa15,_0x2e5152){return _0xa1aa15===_0x2e5152;}},_0x5f2258=[];return _0x4a8410[_0x1f5e9c(0x199)](_0x4cd4ee['maxAttempts'],undefined)&&((typeof _0x4cd4ee[_0x1f5e9c(0x166)]!==_0x4a8410['LXNjw']||_0x4a8410[_0x1f5e9c(0x18b)](_0x4cd4ee['maxAttempts'],0x1)||_0x4cd4ee[_0x1f5e9c(0x166)]>0xa)&&_0x5f2258['push'](_0x1f5e9c(0x196))),_0x4cd4ee[_0x1f5e9c(0x16c)]!==undefined&&(!VALID_BACKOFF_TYPES['includes'](_0x4cd4ee[_0x1f5e9c(0x16c)])&&_0x5f2258['push'](_0x1f5e9c(0x19c)+VALID_BACKOFF_TYPES['join'](_0x1f5e9c(0x1a6))+'\x22')),_0x4a8410[_0x1f5e9c(0x1a9)](_0x4cd4ee[_0x1f5e9c(0x183)],undefined)&&((_0x4a8410['TCpJE'](typeof _0x4cd4ee[_0x1f5e9c(0x183)],_0x1f5e9c(0x1b2))||_0x4cd4ee['initialDelay']<=0x0)&&_0x5f2258[_0x1f5e9c(0x162)](_0x4a8410[_0x1f5e9c(0x177)])),{'valid':_0x4a8410[_0x1f5e9c(0x1a3)](_0x5f2258['length'],0x0),'errors':_0x5f2258};}['validateHandlerExists'](_0x28cdc0,_0x5caac9){const _0x52e27e=a0_0xaa67f5,_0x23ba1f={'LsyrP':'src','WtcAX':_0x52e27e(0x18f)},_0x5b6019=path['join'](_0x5caac9,_0x23ba1f['LsyrP'],_0x23ba1f['WtcAX'],_0x28cdc0+'.js');if(!fs['existsSync'](_0x5b6019))return{'valid':![],'errors':[_0x52e27e(0x165)+_0x28cdc0+_0x52e27e(0x188)+_0x5b6019+')']};return{'valid':!![],'errors':[]};}}module['exports']=new JobValidator();