@restforgejs/platform 5.2.13 → 5.3.5

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 (212) hide show
  1. package/bin/drift-check-linux +0 -0
  2. package/bin/sdf-tools-linux +0 -0
  3. package/bin/sdf-tools.exe +0 -0
  4. package/build-info.json +2 -2
  5. package/cli/consumer-deploy.js +1 -1
  6. package/cli/consumer.js +1 -1
  7. package/generators/cli/endpoint/create.js +69 -6
  8. package/generators/cli/fast-track.js +4 -2
  9. package/generators/cli/payload/sync.js +16 -6
  10. package/generators/cli/project/auth.js +209 -0
  11. package/generators/cli/project/sdk.js +112 -0
  12. package/generators/lib/arg-parser.js +6 -0
  13. package/generators/lib/auth/component-generator.js +58 -0
  14. package/generators/lib/auth/dependency-checker.js +102 -0
  15. package/generators/lib/auth/env-injector.js +81 -0
  16. package/generators/lib/auth/migrate-runner.js +111 -0
  17. package/generators/lib/auth/prefix.js +22 -0
  18. package/generators/lib/auth/processor-generator.js +57 -0
  19. package/generators/lib/auth/sdf-generator.js +102 -0
  20. package/generators/lib/auth/template-renderer.js +29 -0
  21. package/generators/lib/auth/templates/processor/google.js.tmpl +178 -0
  22. package/generators/lib/auth/templates/processor/login.js.tmpl +152 -0
  23. package/generators/lib/auth/templates/processor/logout.js.tmpl +58 -0
  24. package/generators/lib/auth/templates/processor/me.js.tmpl +64 -0
  25. package/generators/lib/auth/templates/processor/refresh.js.tmpl +134 -0
  26. package/generators/lib/auth/templates/processor/register.js.tmpl +77 -0
  27. package/generators/lib/auth/templates/processor/reset-password.js.tmpl +106 -0
  28. package/generators/lib/auth/templates/rfx_auth-middleware.js.tmpl +79 -0
  29. package/generators/lib/auth/templates/rfx_auth.js.tmpl +107 -0
  30. package/generators/lib/dbschema-kit/schema-printer.js +10 -1
  31. package/generators/lib/generators/model-generator.js +46 -59
  32. package/generators/lib/help-generator.js +41 -3
  33. package/generators/lib/payload/endpoint-schema-validator.js +8 -3
  34. package/generators/lib/payload/field-projections.js +116 -0
  35. package/generators/lib/payload/payload-runner.js +164 -48
  36. package/generators/lib/payload/schema-diff.js +108 -0
  37. package/generators/lib/sdk/generator.js +719 -0
  38. package/generators/lib/sdk/naming.js +48 -0
  39. package/generators/lib/sdk/runtime/README.md.tmpl +207 -0
  40. package/generators/lib/sdk/runtime/auth-client.js +186 -0
  41. package/generators/lib/sdk/runtime/deploy.mjs.tmpl +85 -0
  42. package/generators/lib/sdk/runtime/http-client.js +81 -0
  43. package/generators/lib/sdk/runtime/resource-client.js +59 -0
  44. package/generators/lib/sdk/runtime/storage.js +31 -0
  45. package/generators/lib/templates/dashboard-catalog.js +1 -1
  46. package/generators/lib/templates/db-connection-env.js +1 -1
  47. package/generators/lib/templates/dbschema-catalog.js +1 -1
  48. package/generators/lib/templates/field-validation-catalog.js +1 -1
  49. package/generators/lib/templates/mysql-template.js +1 -1
  50. package/generators/lib/templates/oracle-template.js +1 -1
  51. package/generators/lib/templates/postgres-template.js +1 -1
  52. package/generators/lib/templates/query-declarative-catalog.js +1 -1
  53. package/generators/lib/templates/sqlite-template.js +1 -1
  54. package/generators/lib/utils/cli-output.js +40 -0
  55. package/generators/lib/utils/config-resolver.js +61 -0
  56. package/generators/lib/utils/database-introspector.js +28 -5
  57. package/integrity-manifest.json +18 -18
  58. package/package.json +1 -1
  59. package/scripts/verify-integrity.js +1 -1
  60. package/server.js +1 -1
  61. package/src/components/handlers/adjust_handler.js +1 -1
  62. package/src/components/handlers/audit_handler.js +1 -1
  63. package/src/components/handlers/delete_handler.js +1 -1
  64. package/src/components/handlers/export_handler.js +1 -1
  65. package/src/components/handlers/import_handler.js +1 -1
  66. package/src/components/handlers/insert_handler.js +1 -1
  67. package/src/components/handlers/update_handler.js +1 -1
  68. package/src/components/handlers/upload_handler.js +1 -1
  69. package/src/components/handlers/workflow_handler.js +1 -1
  70. package/src/components/integrations/webhook.js +1 -1
  71. package/src/consumers/baseConsumer.js +1 -1
  72. package/src/consumers/declarativeMapper.js +1 -1
  73. package/src/consumers/handlers/apiHandler.js +1 -1
  74. package/src/consumers/handlers/consoleHandler.js +1 -1
  75. package/src/consumers/handlers/databaseHandler.js +1 -1
  76. package/src/consumers/handlers/index.js +1 -1
  77. package/src/consumers/handlers/kafkaHandler.js +1 -1
  78. package/src/consumers/index.js +1 -1
  79. package/src/consumers/messageTransformer.js +1 -1
  80. package/src/consumers/validator.js +1 -1
  81. package/src/core/db/dialect/base-dialect.js +1 -1
  82. package/src/core/db/dialect/index.js +1 -1
  83. package/src/core/db/dialect/mysql-dialect.js +1 -1
  84. package/src/core/db/dialect/oracle-dialect.js +1 -1
  85. package/src/core/db/dialect/postgres-dialect.js +1 -1
  86. package/src/core/db/dialect/sqlite-dialect.js +1 -1
  87. package/src/core/db/flatten-helper.js +1 -1
  88. package/src/core/db/query-builder-error.js +1 -1
  89. package/src/core/db/query-builder.js +1 -1
  90. package/src/core/db/relation-helper.js +1 -1
  91. package/src/core/handlers/delete_handler.js +1 -1
  92. package/src/core/handlers/insert_handler.js +1 -1
  93. package/src/core/handlers/update_handler.js +1 -1
  94. package/src/core/models/base-model.js +1 -1
  95. package/src/core/utils/cache-manager.js +1 -1
  96. package/src/core/utils/component-engine.js +1 -1
  97. package/src/core/utils/context-builder.js +1 -1
  98. package/src/core/utils/datetime-formatter.js +1 -1
  99. package/src/core/utils/datetime-parser.js +1 -1
  100. package/src/core/utils/db.js +1 -1
  101. package/src/core/utils/logger.js +1 -1
  102. package/src/core/utils/payload-loader.js +1 -1
  103. package/src/core/utils/security-checks.js +1 -1
  104. package/src/middleware/body-options.js +1 -1
  105. package/src/middleware/cors.js +1 -1
  106. package/src/middleware/idempotency.js +1 -1
  107. package/src/middleware/rate-limiter.js +1 -1
  108. package/src/middleware/request-logger.js +1 -1
  109. package/src/middleware/security-headers.js +1 -1
  110. package/src/models/base-model-mysql.js +1 -1
  111. package/src/models/base-model-oracle.js +1 -1
  112. package/src/models/base-model-sqlite.js +1 -1
  113. package/src/models/base-model.js +1 -1
  114. package/src/pro/caching/redis-client.js +1 -1
  115. package/src/pro/caching/redis-helper.js +1 -1
  116. package/src/pro/consumers/baseConsumer.js +1 -1
  117. package/src/pro/consumers/declarativeMapper.js +1 -1
  118. package/src/pro/consumers/handlers/apiHandler.js +1 -1
  119. package/src/pro/consumers/handlers/consoleHandler.js +1 -1
  120. package/src/pro/consumers/handlers/databaseHandler.js +1 -1
  121. package/src/pro/consumers/handlers/index.js +1 -1
  122. package/src/pro/consumers/handlers/kafkaHandler.js +1 -1
  123. package/src/pro/consumers/index.js +1 -1
  124. package/src/pro/consumers/messageTransformer.js +1 -1
  125. package/src/pro/consumers/validator.js +1 -1
  126. package/src/pro/database/base-model-mysql.js +1 -1
  127. package/src/pro/database/base-model-oracle.js +1 -1
  128. package/src/pro/database/base-model-sqlite.js +1 -1
  129. package/src/pro/database/db-mysql.js +1 -1
  130. package/src/pro/database/db-oracle.js +1 -1
  131. package/src/pro/database/db-sqlite.js +1 -1
  132. package/src/pro/excel/excel-generator.js +1 -1
  133. package/src/pro/excel/excel-parser.js +1 -1
  134. package/src/pro/excel/export-service.js +1 -1
  135. package/src/pro/excel/export_handler.js +1 -1
  136. package/src/pro/excel/import-service.js +1 -1
  137. package/src/pro/excel/import-validator.js +1 -1
  138. package/src/pro/excel/import_handler.js +1 -1
  139. package/src/pro/excel/upsert-builder.js +1 -1
  140. package/src/pro/idgen/idgen-routes.js +1 -1
  141. package/src/pro/integrations/lookup-resolver.js +1 -1
  142. package/src/pro/integrations/upload-handler-v2.js +1 -1
  143. package/src/pro/integrations/upload-handler.js +1 -1
  144. package/src/pro/integrations/webhook.js +1 -1
  145. package/src/pro/locking/lock-routes.js +1 -1
  146. package/src/pro/locking/resource-lock-manager.js +1 -1
  147. package/src/pro/messaging/kafkaConsumerService.js +1 -1
  148. package/src/pro/messaging/kafkaService.js +1 -1
  149. package/src/pro/messaging/messagehubService.js +1 -1
  150. package/src/pro/messaging/rabbitmqService.js +1 -1
  151. package/src/pro/scheduler/job-manager.js +1 -1
  152. package/src/pro/scheduler/job-routes.js +1 -1
  153. package/src/pro/scheduler/job-validator.js +1 -1
  154. package/src/pro/storage/base-storage-provider.js +1 -1
  155. package/src/pro/storage/file-metadata-helper.js +1 -1
  156. package/src/pro/storage/index.js +1 -1
  157. package/src/pro/storage/local-storage-provider.js +1 -1
  158. package/src/pro/storage/s3-storage-provider.js +1 -1
  159. package/src/pro/storage/upload-cleanup-job.js +1 -1
  160. package/src/pro/storage/upload-cleanup-scheduler.js +1 -1
  161. package/src/pro/storage/upload-pending-tracker.js +1 -1
  162. package/src/pro/websocket/broadcast-helper.js +1 -1
  163. package/src/pro/websocket/index.js +1 -1
  164. package/src/pro/websocket/livesync-server.js +1 -1
  165. package/src/pro/websocket/ws-broadcaster.js +1 -1
  166. package/src/services/export-service.js +1 -1
  167. package/src/services/import-service.js +1 -1
  168. package/src/services/kafkaConsumerService.js +1 -1
  169. package/src/services/kafkaService.js +1 -1
  170. package/src/services/messagehubService.js +1 -1
  171. package/src/services/rabbitmqService.js +1 -1
  172. package/src/utils/cache-invalidation-registry.js +1 -1
  173. package/src/utils/cache-manager.js +1 -1
  174. package/src/utils/component-engine.js +1 -1
  175. package/src/utils/config-extractor.js +1 -1
  176. package/src/utils/consumerLogger.js +1 -1
  177. package/src/utils/context-builder.js +1 -1
  178. package/src/utils/dashboard-helpers.js +1 -1
  179. package/src/utils/dateHelper.js +1 -1
  180. package/src/utils/datetime-formatter.js +1 -1
  181. package/src/utils/datetime-parser.js +1 -1
  182. package/src/utils/db-bootstrap.js +1 -1
  183. package/src/utils/db-mysql.js +1 -1
  184. package/src/utils/db-oracle.js +1 -1
  185. package/src/utils/db-sqlite.js +1 -1
  186. package/src/utils/db.js +1 -1
  187. package/src/utils/demo-generator.js +1 -1
  188. package/src/utils/excel-generator.js +1 -1
  189. package/src/utils/excel-parser.js +1 -1
  190. package/src/utils/file-watcher.js +1 -1
  191. package/src/utils/id-generator.js +1 -1
  192. package/src/utils/idempotency-manager.js +1 -1
  193. package/src/utils/import-validator.js +1 -1
  194. package/src/utils/license-client.js +1 -1
  195. package/src/utils/lock-manager.js +1 -1
  196. package/src/utils/logger.js +1 -1
  197. package/src/utils/lookup-resolver.js +1 -1
  198. package/src/utils/payload-loader.js +1 -1
  199. package/src/utils/processor-response.js +1 -1
  200. package/src/utils/rabbitmq.js +1 -1
  201. package/src/utils/redis-client.js +1 -1
  202. package/src/utils/redis-helper.js +1 -1
  203. package/src/utils/request-scope.js +1 -1
  204. package/src/utils/security-checks.js +1 -1
  205. package/src/utils/service-resolver.js +1 -1
  206. package/src/utils/shutdown-coordinator.js +1 -1
  207. package/src/utils/soft-delete-dashboard-guard.js +1 -1
  208. package/src/utils/sql-table-extractor.js +1 -1
  209. package/src/utils/trusted-keys.js +1 -1
  210. package/src/utils/upload-handler.js +1 -1
  211. package/src/utils/upsert-builder.js +1 -1
  212. package/src/utils/workflow-hook-executor.js +1 -1
@@ -1 +1 @@
1
- const a0_0x349f43=a0_0x3076;(function(_0x4fd9bc,_0x15b83f){const _0x1f47a2=a0_0x3076,_0x27e832=_0x4fd9bc();while(!![]){try{const _0x2552e5=parseInt(_0x1f47a2(0x1e0))/0x1*(-parseInt(_0x1f47a2(0x1ee))/0x2)+parseInt(_0x1f47a2(0x1d8))/0x3*(parseInt(_0x1f47a2(0x1c1))/0x4)+-parseInt(_0x1f47a2(0x1f5))/0x5*(parseInt(_0x1f47a2(0x1ec))/0x6)+parseInt(_0x1f47a2(0x1af))/0x7*(-parseInt(_0x1f47a2(0x1cf))/0x8)+parseInt(_0x1f47a2(0x1ef))/0x9+-parseInt(_0x1f47a2(0x1f2))/0xa+-parseInt(_0x1f47a2(0x1b7))/0xb*(parseInt(_0x1f47a2(0x1e4))/0xc);if(_0x2552e5===_0x15b83f)break;else _0x27e832['push'](_0x27e832['shift']());}catch(_0x548d70){_0x27e832['push'](_0x27e832['shift']());}}}(a0_0x5d43,0xe2066));function a0_0x5d43(){const _0x76fd09=['xsbfCNjVCIbWCM9JzxnZAw5Nig1LC3nHz2u6ia','D2fYBG','lI4VDxrPBhmVzgf0zuHLBhbLCG','otfPDwHYqum','lxjLDhj5lwv4y2HHBMDL','ChjVy2vZC01LC3nHz2u','xsbgywLSzwqGDg8GAw5PDgLHBgL6zsbsywjIAxrnutOG','BvLozvy','yxnZzxj0uxvLDwu','Bfb1ENm','xsbszxrYEsbIAw5KAw5NigzVCIa','mtu2mNzbAMvSsW','DgLTzxn0yw1W','ChjVCgvYDgLLCW','yMLUzff1zxvL','ksbJCMvHDgvK','CgfYC2u','zxjYB3i','yxnZzxj0rxHJAgfUz2u','uez2wNy','xsboBYbOyw5KBgvYCYbYzwDPC3rLCMvKihrVihbYB2nLC3mGBwvZC2fNzxm','ntCXnJrcAeDbA2q','ywnR','z29IDMi','xsblB25LA3nPifjHyMjPDe1rihrLCNb1DhvZ','Dg9tDhjPBMC','wMnrtKG','CM91DgLUz0TLEq','y29UzMLN','BwvZC2fNzq','BgvUz3rO','Aw5JBhvKzxm','EfPWANe','y29UBMvJDgLVBG','xsbfCNjVCIbZzw5KAw5NihrVifjHyMjPDe1roIa','mtK4ndi0CuHHug1k','y3jLyxrLzc9YzwfKEq','rw5AEMK','yxv0B19YzxrYEq','Aw5LCxvPDMfSzw50igfYzW','zvndrwK','xsbgywLSzwqGDg8GC3rHCNqGy29UC3vTAw5NoIa','igLZigfSCMvHzhKGAw4GDxnLihDPDgGGysbKAwzMzxjLBNqGCM91DgLUzYbRzxKU','rMfPBgvKihrVihnLBMqGBwvZC2fNzsb0BYbsywjIAxrnuq','mZGXBKToBKDW','C3rHCNrdB25ZDw1L','zw52','Ec1KzwfKlwXLDhrLCI1YB3v0Aw5NlwTLEq','x3f1zxvL','xsbgywLSzwqGDg8GChjVy2vZCYbTzxnZywDLlcbYzxf1zxvPBMC','ihDPDgGGreXy','ChjLzMv0y2G','mwLtBM1Ryq','rxrHyxi','CxvLDwu','xsbszxrYEsbXDwv1zsa','mti3mM1wy2Pxrq','xsbcAw5KAw5Nia','tefLCvO','zxHJAgfUz2u','xsbgywLSzwqGDg8GCgfYC2uGBwvZC2fNztOG','AxndB25Uzwn0zwq','C3vIC3rYAw5N','mNWZFdf8nhWW','mJr5sgXsExG','xsbfCNjVCIbZywf0ihnLDhvWigLUzNjHC3rYDwT0Dxi6ia','mtu0odyWmLv3q2rosa','nZi3odiXou5hs2HnAG','BwvZC2fNzuHHBMrSzxjZ','tgv0CNy','ndCYmJu0meDNA3jlsq','C3rYAw5NAwz5','ic0+ia','mtqYmJu1wxnhzgfQ','Bg9N','xsbbDhrLBxb0Aw5NihrVihjLy29UBMvJDcb0BYbsywjIAxrnus4UlG','sxj2AKu','xsbtDgfYDcbJB25ZDw1PBMCGBwvZC2fNzxmGzNjVBsbXDwv1zsaI','xsbgywLSzwqGDg8GCMvJB25Uzwn0ihrVifjHyMjPDe1roIa','xsbfCNjVCIbJCMvHDgLUzYbXDwv1zsa','r2zwEum','ze5evKq','y2XVC2u','Dg9ju09tDhjPBMC','CMfUzg9T','zgvMyxvSDa','ignYzwf0zwqGD2L0AcbetfG','z2v0vgLTzq','zgDfwue','ELf0uM0','y2HHBM5LBa','yxbWBgLJyxrPB24VANnVBG'];a0_0x5d43=function(){return _0x76fd09;};return a0_0x5d43();}const {createConnection,createChannel,setupInfrastructure,closeConnection,getConfig}=require('../utils/rabbitmq'),{formatDate}=require(a0_0x349f43(0x1ae));class RabbitMQService{constructor(){const _0x2440be=a0_0x349f43,_0x32b24f={'eSCEi':function(_0x198691){return _0x198691();}},_0x526a56=_0x2440be(0x1eb)['split']('|');let _0x1ead20=0x0;while(!![]){switch(_0x526a56[_0x1ead20++]){case'0':this['messageHandlers']=[];continue;case'1':this[_0x2440be(0x1c8)]=_0x32b24f[_0x2440be(0x1d4)](getConfig);continue;case'2':this[_0x2440be(0x1cd)]=null;continue;case'3':this['channel']=null;continue;case'4':this['isConnected']=![];continue;}break;}}async['initialize'](){const _0xa69221=a0_0x349f43,_0x2832b9={'vyHpj':function(_0x48f864,_0x3dca1c){return _0x48f864(_0x3dca1c);},'ANGVb':function(_0x1b933c,_0x2d1073,_0x5c7a0a){return _0x1b933c(_0x2d1073,_0x5c7a0a);},'Etaar':function(_0x303577){return _0x303577();},'mYNeV':function(_0x427807,_0x58b3a9){return _0x427807(_0x58b3a9);},'dRgRs':function(_0x2044f0,_0x2ccc0b){return _0x2044f0(_0x2ccc0b);},'dNDVD':_0xa69221(0x1fe),'Letrv':function(_0x15de32,_0x23cf50){return _0x15de32(_0x23cf50);}};try{return this[_0xa69221(0x1cd)]=await _0x2832b9[_0xa69221(0x1e1)](createConnection),this['channel']=await _0x2832b9[_0xa69221(0x1b3)](createChannel,this[_0xa69221(0x1cd)]),await this['channel'][_0xa69221(0x1df)](0x1),console['log']('['+formatDate(new Date())+']\x20Prefetch\x20diatur\x20ke\x201'),await _0x2832b9['dRgRs'](setupInfrastructure,this[_0xa69221(0x1aa)]),this['isConnected']=!![],this[_0xa69221(0x1cd)]['on'](_0x2832b9[_0xa69221(0x1fd)],()=>{const _0x5d5b21=_0xa69221;console['error']('['+_0x2832b9['vyHpj'](formatDate,new Date())+_0x5d5b21(0x1c4)),this[_0x5d5b21(0x1e9)]=![],_0x2832b9['ANGVb'](setTimeout,()=>this['reconnect'](),0x1388);}),!![];}catch(_0x1b6c5e){return console[_0xa69221(0x1bd)]('['+_0x2832b9[_0xa69221(0x1f1)](formatDate,new Date())+_0xa69221(0x1b2)+_0x1b6c5e[_0xa69221(0x1c9)]),this['isConnected']=![],![];}}async['reconnect'](){const _0x5aee38=a0_0x349f43,_0xdf1fb4={'LAeqZ':function(_0x1ecd23,_0x4fdaaa){return _0x1ecd23(_0x4fdaaa);},'GfVyC':function(_0x374026,_0x3ca261,_0x38d989){return _0x374026(_0x3ca261,_0x38d989);}};console[_0x5aee38(0x1f6)]('['+formatDate(new Date())+_0x5aee38(0x1f7));try{await this['initialize'](),this['isConnected']&&(console['log']('['+formatDate(new Date())+']\x20Successfully\x20reconnected\x20to\x20RabbitMQ'),await this[_0x5aee38(0x1d9)]());}catch(_0x961da0){console['error']('['+_0xdf1fb4[_0x5aee38(0x1e6)](formatDate,new Date())+_0x5aee38(0x1fa)+_0x961da0[_0x5aee38(0x1c9)]),_0xdf1fb4[_0x5aee38(0x1fc)](setTimeout,()=>this['reconnect'](),0x1388);}}async['setupCollectorInfrastructure'](_0x274688){const _0x2ef84c=a0_0x349f43,_0x53d2bf={'zQtRm':function(_0x130653){return _0x130653();},'jPagl':function(_0x1640a9,_0x18d73f){return _0x1640a9(_0x18d73f);},'xUpdg':'direct','GMvrS':function(_0x30532e,_0x34685a){return _0x30532e(_0x34685a);},'dgEYA':function(_0x5cceeb,_0x543d15){return _0x5cceeb===_0x543d15;},'lsWqy':_0x2ef84c(0x1d0),'IwCeF':_0x2ef84c(0x1db),'ZcQNH':function(_0xd5b6ca,_0x39b6af){return _0xd5b6ca(_0x39b6af);},'ZZmTF':function(_0xb4a4dd,_0x16c947){return _0xb4a4dd(_0x16c947);}};try{!this[_0x2ef84c(0x1e9)]&&(this[_0x2ef84c(0x1cd)]=await _0x53d2bf[_0x2ef84c(0x1a9)](createConnection),this[_0x2ef84c(0x1aa)]=await _0x53d2bf['jPagl'](createChannel,this['connection']),this[_0x2ef84c(0x1e9)]=!![]);const _0x5ea5e1=process[_0x2ef84c(0x1da)]['RESTFORGE_PROJECT_NAME']||_0x2ef84c(0x201),_0x2ec4ec=_0x5ea5e1+_0x2ef84c(0x1b0);await this['channel'][_0x2ef84c(0x1be)](_0x2ec4ec,'direct',{'durable':!![],'autoDelete':![]}),console['log']('['+formatDate(new Date())+']\x20Retry\x20exchange\x20'+_0x2ec4ec+'\x20created/ready'),await this[_0x2ef84c(0x1aa)][_0x2ef84c(0x1be)](_0x274688[_0x2ef84c(0x1e7)],_0x53d2bf['xUpdg'],{'durable':!![],'autoDelete':![]}),console[_0x2ef84c(0x1f6)]('['+_0x53d2bf['GMvrS'](formatDate,new Date())+']\x20Exchange\x20'+_0x274688['exchange']+'\x20created/ready');const _0x8cf520=_0x274688['routingKey']+'_retry',_0x52deb5={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':_0x274688[_0x2ef84c(0x1e7)],'x-dead-letter-routing-key':_0x274688['routingKey']}};await this['channel'][_0x2ef84c(0x1b4)](_0x8cf520,_0x52deb5),console[_0x2ef84c(0x1f6)]('['+formatDate(new Date())+_0x2ef84c(0x1e3)+_0x8cf520+'\x20created/ready'),await this[_0x2ef84c(0x1aa)][_0x2ef84c(0x1ba)](_0x8cf520,_0x2ec4ec,_0x274688['routingKey']),console['log']('['+formatDate(new Date())+_0x2ef84c(0x1b6)+_0x274688[_0x2ef84c(0x1c7)]+'\x20created');const _0x114e39={'durable':!![],'arguments':{'x-dead-letter-exchange':_0x2ec4ec,'x-dead-letter-routing-key':_0x274688[_0x2ef84c(0x1c7)]}};try{const _0x114510=await this[_0x2ef84c(0x1aa)][_0x2ef84c(0x1b4)](_0x274688[_0x2ef84c(0x1e2)],_0x114e39);console['log']('['+formatDate(new Date())+']\x20Queue\x20'+_0x274688[_0x2ef84c(0x1e2)]+'\x20'+(_0x53d2bf[_0x2ef84c(0x1a8)](_0x114510[_0x2ef84c(0x1e2)],_0x274688['queue'])?_0x53d2bf['lsWqy']:'found')+_0x2ef84c(0x1de)),await this[_0x2ef84c(0x1aa)]['bindQueue'](_0x274688[_0x2ef84c(0x1e2)],_0x274688[_0x2ef84c(0x1e7)],_0x274688[_0x2ef84c(0x1c7)]),console[_0x2ef84c(0x1f6)]('['+formatDate(new Date())+_0x2ef84c(0x1e5)+_0x274688[_0x2ef84c(0x1e7)]+_0x2ef84c(0x1f4)+_0x274688[_0x2ef84c(0x1e2)]+'\x20('+_0x274688['routingKey']+_0x2ef84c(0x1bb));}catch(_0x30040b){if(_0x30040b[_0x2ef84c(0x1c9)]['includes'](_0x2ef84c(0x1d3))&&_0x30040b['message'][_0x2ef84c(0x1cb)](_0x53d2bf['IwCeF'])){console['error']('\x0a['+_0x53d2bf['ZcQNH'](formatDate,new Date())+']\x20ERROR:\x20Queue\x20'+_0x274688['queue']+_0x2ef84c(0x1d6)),console['error']('Trying\x20alternative\x20queue\x20name...');const _0x5ac88d=_0x274688['routingKey']+_0x2ef84c(0x1dc),_0x2c91ea=await this[_0x2ef84c(0x1aa)][_0x2ef84c(0x1b4)](_0x5ac88d,_0x114e39);console[_0x2ef84c(0x1f6)]('['+formatDate(new Date())+']\x20Alternative\x20queue\x20'+_0x5ac88d+_0x2ef84c(0x1a6)),await this['channel'][_0x2ef84c(0x1ba)](_0x5ac88d,_0x274688['exchange'],_0x274688[_0x2ef84c(0x1c7)]),console[_0x2ef84c(0x1f6)]('['+_0x53d2bf['ZZmTF'](formatDate,new Date())+']\x20Binding\x20'+_0x274688[_0x2ef84c(0x1e7)]+_0x2ef84c(0x1f4)+_0x5ac88d+'\x20('+_0x274688[_0x2ef84c(0x1c7)]+')\x20created'),_0x274688['queue']=_0x5ac88d;}else{console['error']('['+_0x53d2bf[_0x2ef84c(0x1c6)](formatDate,new Date())+_0x2ef84c(0x1fb)+_0x274688['queue']+':',_0x30040b[_0x2ef84c(0x1c9)]);throw _0x30040b;}}return!![];}catch(_0xcd3b80){return console[_0x2ef84c(0x1bd)]('['+_0x53d2bf['jPagl'](formatDate,new Date())+_0x2ef84c(0x1ed)+_0xcd3b80[_0x2ef84c(0x1c9)]),![];}}async['sendToQueue'](_0x154300,_0x337e70){const _0x4bfd59=a0_0x349f43,_0x3d793f={'XwVzc':function(_0x1baa35,_0x238339){return _0x1baa35!==_0x238339;},'lPuzs':_0x4bfd59(0x1ab),'oVfJM':function(_0x385226,_0x100350){return _0x385226(_0x100350);},'gobvb':'Data\x20sent\x20to\x20queue\x20successfully','IUwuJ':_0x4bfd59(0x1d7)};if(!this[_0x4bfd59(0x1e9)])try{await this['initialize']();}catch(_0x18174d){return{'success':![],'message':'Cannot\x20connect\x20to\x20RabbitMQ:\x20'+_0x18174d['message'],'data':null};}try{const _0x1ccbba=_0x3d793f['XwVzc'](_0x337e70[_0x4bfd59(0x1d2)],undefined)?_0x337e70['auto_retry']:![],_0xed2bdc=_0x337e70['max_retries']||0x3,_0x191840={'rabbitmq':{'exchange':_0x337e70['exchange'],'queue':_0x337e70['queue'],'routing_key':_0x337e70['routingKey'],'auto_retry':_0x1ccbba,'max_retries':_0xed2bdc},'message':_0x154300};await this['setupCollectorInfrastructure'](_0x337e70);const _0x1797df=new Date(),_0x2abc20={'timestamp':_0x1797df[_0x4bfd59(0x1ff)](),'content':JSON[_0x4bfd59(0x1f3)](_0x191840)},_0x289e58=this['channel']['publish'](_0x337e70['exchange'],_0x337e70[_0x4bfd59(0x1c7)],Buffer['from'](JSON[_0x4bfd59(0x1f3)](_0x2abc20)),{'persistent':!![],'contentType':_0x3d793f[_0x4bfd59(0x1b5)],'timestamp':_0x1797df[_0x4bfd59(0x1a7)](),'messageId':_0x1797df['getTime']()+'-'+Math['random']()[_0x4bfd59(0x1c5)](0x24)[_0x4bfd59(0x1ea)](0x7),'headers':{'x-auto-retry':_0x1ccbba,'x-max-retry':_0xed2bdc,'x-retry-count':0x0,'x-retry-interval':0x2710}});if(_0x289e58){console[_0x4bfd59(0x1f6)]('['+_0x3d793f['oVfJM'](formatDate,_0x1797df)+']\x20Message\x20sent\x20to\x20RabbitMQ\x20successfully:',{'exchange':_0x337e70['exchange'],'routing_key':_0x337e70['routingKey'],'queue':_0x337e70[_0x4bfd59(0x1e2)],'sendAt':_0x1797df[_0x4bfd59(0x1ff)]()});const _0x473e69='queue-'+_0x1797df[_0x4bfd59(0x1a7)]()+'-'+Math[_0x4bfd59(0x200)]()[_0x4bfd59(0x1c5)](0x24)[_0x4bfd59(0x1ea)](0x7);return{'success':!![],'message':_0x3d793f[_0x4bfd59(0x1c3)],'data':{'id':_0x473e69,'queueInfo':{'exchange':_0x337e70['exchange'],'queue':_0x337e70['queue'],'routingKey':_0x337e70[_0x4bfd59(0x1c7)]}}};}else throw new Error(_0x3d793f['IUwuJ']);}catch(_0x14f527){return console['error']('['+formatDate(new Date())+_0x4bfd59(0x1ce)+_0x14f527[_0x4bfd59(0x1c9)]),{'success':![],'message':'Error:\x20'+_0x14f527['message'],'data':null};}}['registerMessageHandler'](_0x588bbd){const _0x3a107b=a0_0x349f43;typeof _0x588bbd==='function'?(this['messageHandlers']['push'](_0x588bbd),console[_0x3a107b(0x1f6)]('['+formatDate(new Date())+']\x20Message\x20handler\x20registered')):console['error']('['+formatDate(new Date())+']\x20Message\x20handler\x20must\x20be\x20a\x20function');}async['processMessage'](_0x9244f){const _0x3bbe1a=a0_0x349f43,_0x4eff99={'PFvZv':function(_0x1c5228,_0x10cab9){return _0x1c5228(_0x10cab9);}};if(this['messageHandlers'][_0x3bbe1a(0x1ca)]===0x0)return console[_0x3bbe1a(0x1ad)]('['+_0x4eff99[_0x3bbe1a(0x1bf)](formatDate,new Date())+_0x3bbe1a(0x1c0)),!![];try{for(const _0x5384c1 of this[_0x3bbe1a(0x1f0)]){await _0x4eff99['PFvZv'](_0x5384c1,_0x9244f);}return!![];}catch(_0x57cdc0){return console['error']('['+formatDate(new Date())+_0x3bbe1a(0x1ac)+_0x57cdc0[_0x3bbe1a(0x1c9)]),![];}}async['startConsume'](){const _0x4d1987=a0_0x349f43,_0x56239f={'IrvjE':function(_0x5220a1,_0x2140a5){return _0x5220a1!==_0x2140a5;},'xZpjq':function(_0xd4bd73,_0x3e97c3){return _0xd4bd73(_0x3e97c3);},'EnZzi':function(_0x581657,_0x1e6f7f){return _0x581657(_0x1e6f7f);}};if(!this[_0x4d1987(0x1e9)])return console['error']('['+formatDate(new Date())+']\x20Cannot\x20start\x20consuming:\x20not\x20connected\x20to\x20RabbitMQ'),![];try{return console[_0x4d1987(0x1f6)]('['+_0x56239f[_0x4d1987(0x1d1)](formatDate,new Date())+_0x4d1987(0x1f9)+this['config']['queue']+'\x22...'),this['channel']['consume'](this['config'][_0x4d1987(0x1e2)],async _0x42ee94=>{const _0xbd142a=_0x4d1987;if(_0x56239f[_0xbd142a(0x1f8)](_0x42ee94,null)){const _0x54efcc=new Date();let _0x22db8e;try{_0x22db8e=JSON[_0xbd142a(0x1bc)](_0x42ee94['content']['toString']());}catch(_0x44e716){console[_0xbd142a(0x1bd)]('['+_0x56239f['xZpjq'](formatDate,_0x54efcc)+_0xbd142a(0x1e8)+_0x44e716[_0xbd142a(0x1c9)]),console[_0xbd142a(0x1bd)]('Message\x20content:\x20'+_0x42ee94['content']['toString']()),this['channel'][_0xbd142a(0x1c2)](_0x42ee94);return;}const _0x3b69a7=_0x42ee94['properties'][_0xbd142a(0x1b8)]?new Date(_0x42ee94[_0xbd142a(0x1b9)][_0xbd142a(0x1b8)]):new Date(),_0x20e765=await this[_0xbd142a(0x1b1)](_0x22db8e);_0x20e765?(console[_0xbd142a(0x1f6)]('['+_0x56239f[_0xbd142a(0x1cc)](formatDate,new Date())+']\x20Message\x20processed\x20successfully'),this[_0xbd142a(0x1aa)]['ack'](_0x42ee94)):(console['error']('['+formatDate(new Date())+_0xbd142a(0x1dd)),this[_0xbd142a(0x1aa)]['nack'](_0x42ee94,![],!![])),console[_0xbd142a(0x1f6)]('---');}},{'noAck':![]}),!![];}catch(_0x57885e){return console['error']('['+formatDate(new Date())+_0x4d1987(0x1d5)+_0x57885e['message']),![];}}async['close'](){const _0x2c63ad=a0_0x349f43;this[_0x2c63ad(0x1cd)]&&(await closeConnection(this['connection']),this['isConnected']=![]);}}let instance=null;function a0_0x3076(_0x4e1013,_0xc9bb8){_0x4e1013=_0x4e1013-0x1a6;const _0x5d4352=a0_0x5d43();let _0x307663=_0x5d4352[_0x4e1013];if(a0_0x3076['ULZYXY']===undefined){var _0x110ae8=function(_0x1bd665){const _0xdf93ad='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2f8384='',_0x3ae967='';for(let _0x234223=0x0,_0x131bdb,_0x2a7391,_0x51ff6a=0x0;_0x2a7391=_0x1bd665['charAt'](_0x51ff6a++);~_0x2a7391&&(_0x131bdb=_0x234223%0x4?_0x131bdb*0x40+_0x2a7391:_0x2a7391,_0x234223++%0x4)?_0x2f8384+=String['fromCharCode'](0xff&_0x131bdb>>(-0x2*_0x234223&0x6)):0x0){_0x2a7391=_0xdf93ad['indexOf'](_0x2a7391);}for(let _0x1e0992=0x0,_0x2a6697=_0x2f8384['length'];_0x1e0992<_0x2a6697;_0x1e0992++){_0x3ae967+='%'+('00'+_0x2f8384['charCodeAt'](_0x1e0992)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3ae967);};a0_0x3076['sxdHfl']=_0x110ae8,a0_0x3076['xqjlKK']={},a0_0x3076['ULZYXY']=!![];}const _0x23ea9c=_0x5d4352[0x0],_0x416ca6=_0x4e1013+_0x23ea9c,_0x3fc9d1=a0_0x3076['xqjlKK'][_0x416ca6];return!_0x3fc9d1?(_0x307663=a0_0x3076['sxdHfl'](_0x307663),a0_0x3076['xqjlKK'][_0x416ca6]=_0x307663):_0x307663=_0x3fc9d1,_0x307663;}function getInstance(){return!instance&&(instance=new RabbitMQService()),instance;}module['exports']={'getInstance':getInstance};
1
+ const a0_0xd084d8=a0_0xbee8;(function(_0x2a30ec,_0x5ddab7){const _0x299054=a0_0xbee8,_0x1660c7=_0x2a30ec();while(!![]){try{const _0x4b1f97=parseInt(_0x299054(0xf2))/0x1+-parseInt(_0x299054(0xb6))/0x2*(-parseInt(_0x299054(0xbf))/0x3)+-parseInt(_0x299054(0xc4))/0x4*(-parseInt(_0x299054(0xab))/0x5)+parseInt(_0x299054(0xee))/0x6*(-parseInt(_0x299054(0xd4))/0x7)+parseInt(_0x299054(0xe6))/0x8+parseInt(_0x299054(0xc2))/0x9+-parseInt(_0x299054(0xb7))/0xa;if(_0x4b1f97===_0x5ddab7)break;else _0x1660c7['push'](_0x1660c7['shift']());}catch(_0x15b8e4){_0x1660c7['push'](_0x1660c7['shift']());}}}(a0_0x4219,0x2689f));function a0_0xbee8(_0x2f4dfb,_0x3b495d){_0x2f4dfb=_0x2f4dfb-0xab;const _0x421957=a0_0x4219();let _0xbee887=_0x421957[_0x2f4dfb];if(a0_0xbee8['JRjAhW']===undefined){var _0x3f0704=function(_0x34bfa8){const _0x319286='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2a3fac='',_0x510760='';for(let _0x1b9909=0x0,_0xf5e3c4,_0xff3fac,_0x2e3b93=0x0;_0xff3fac=_0x34bfa8['charAt'](_0x2e3b93++);~_0xff3fac&&(_0xf5e3c4=_0x1b9909%0x4?_0xf5e3c4*0x40+_0xff3fac:_0xff3fac,_0x1b9909++%0x4)?_0x2a3fac+=String['fromCharCode'](0xff&_0xf5e3c4>>(-0x2*_0x1b9909&0x6)):0x0){_0xff3fac=_0x319286['indexOf'](_0xff3fac);}for(let _0x2e8cae=0x0,_0x3740f2=_0x2a3fac['length'];_0x2e8cae<_0x3740f2;_0x2e8cae++){_0x510760+='%'+('00'+_0x2a3fac['charCodeAt'](_0x2e8cae)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x510760);};a0_0xbee8['zcOKsV']=_0x3f0704,a0_0xbee8['UjWgDc']={},a0_0xbee8['JRjAhW']=!![];}const _0xdc0b2a=_0x421957[0x0],_0x50096d=_0x2f4dfb+_0xdc0b2a,_0x16561b=a0_0xbee8['UjWgDc'][_0x50096d];return!_0x16561b?(_0xbee887=a0_0xbee8['zcOKsV'](_0xbee887),a0_0xbee8['UjWgDc'][_0x50096d]=_0xbee887):_0xbee887=_0x16561b,_0xbee887;}const {createConnection,createChannel,setupInfrastructure,closeConnection,getConfig}=require('../utils/rabbitmq'),{formatDate}=require('../utils/dateHelper');class RabbitMQService{constructor(){const _0x4ade3e=a0_0xbee8,_0x2917b2={'KuVNE':function(_0x1e7764){return _0x1e7764();}},_0x1a369b='2|3|1|0|4'[_0x4ade3e(0xda)]('|');let _0x528e76=0x0;while(!![]){switch(_0x1a369b[_0x528e76++]){case'0':this[_0x4ade3e(0xed)]=![];continue;case'1':this[_0x4ade3e(0xb4)]=_0x2917b2['KuVNE'](getConfig);continue;case'2':this['connection']=null;continue;case'3':this[_0x4ade3e(0xd5)]=null;continue;case'4':this[_0x4ade3e(0xb9)]=[];continue;}break;}}async['initialize'](){const _0x7d0f3c=a0_0xbee8,_0x2290a7={'WaKcw':function(_0xab8350,_0x478066,_0x13522c){return _0xab8350(_0x478066,_0x13522c);},'NWTaA':function(_0x8c1ea6,_0x4f1efa){return _0x8c1ea6(_0x4f1efa);}};try{return this['connection']=await createConnection(),this[_0x7d0f3c(0xd5)]=await _0x2290a7['NWTaA'](createChannel,this['connection']),await this['channel'][_0x7d0f3c(0xe5)](0x1),console['log']('['+formatDate(new Date())+']\x20Prefetch\x20diatur\x20ke\x201'),await setupInfrastructure(this['channel']),this['isConnected']=!![],this['connection']['on']('close',()=>{const _0x2ad934=_0x7d0f3c;console[_0x2ad934(0xe9)]('['+formatDate(new Date())+_0x2ad934(0xe3)),this['isConnected']=![],_0x2290a7['WaKcw'](setTimeout,()=>this[_0x2ad934(0xca)](),0x1388);}),!![];}catch(_0x523d98){return console['error']('['+formatDate(new Date())+_0x7d0f3c(0xc3)+_0x523d98[_0x7d0f3c(0xf1)]),this['isConnected']=![],![];}}async['reconnect'](){const _0xb06f8b=a0_0xbee8,_0x324fcb={'NQUff':function(_0x40b4c4,_0x5638da){return _0x40b4c4(_0x5638da);},'KQXxG':function(_0x5de2d4,_0x29bacb){return _0x5de2d4(_0x29bacb);}};console[_0xb06f8b(0xac)]('['+_0x324fcb['NQUff'](formatDate,new Date())+']\x20Attempting\x20to\x20reconnect\x20to\x20RabbitMQ...');try{await this['initialize'](),this[_0xb06f8b(0xed)]&&(console['log']('['+_0x324fcb[_0xb06f8b(0xec)](formatDate,new Date())+_0xb06f8b(0xb8)),await this[_0xb06f8b(0xce)]());}catch(_0x2db5d4){console['error']('['+_0x324fcb[_0xb06f8b(0xec)](formatDate,new Date())+']\x20Failed\x20to\x20reconnect\x20to\x20RabbitMQ:\x20'+_0x2db5d4[_0xb06f8b(0xf1)]),setTimeout(()=>this['reconnect'](),0x1388);}}async['setupCollectorInfrastructure'](_0xbd6cd5){const _0x48fb1c=a0_0xbee8,_0x3c9dec={'eALFA':function(_0xf7fd8e,_0x2b9681){return _0xf7fd8e(_0x2b9681);},'JMzuc':'default','OLOkW':'direct','bJuQH':function(_0xa7fc95,_0x3087c8){return _0xa7fc95(_0x3087c8);},'AZTXg':function(_0x587b4e,_0x25cd73){return _0x587b4e===_0x25cd73;},'DrMnT':function(_0x5e08a1,_0x1d77c8){return _0x5e08a1(_0x1d77c8);}};try{!this[_0x48fb1c(0xed)]&&(this['connection']=await createConnection(),this['channel']=await _0x3c9dec[_0x48fb1c(0xe0)](createChannel,this['connection']),this[_0x48fb1c(0xed)]=!![]);const _0x4160ca=process['env'][_0x48fb1c(0xcb)]||_0x3c9dec['JMzuc'],_0x30b1cc=_0x4160ca+_0x48fb1c(0xba);await this[_0x48fb1c(0xd5)][_0x48fb1c(0xdd)](_0x30b1cc,_0x3c9dec['OLOkW'],{'durable':!![],'autoDelete':![]}),console['log']('['+_0x3c9dec['eALFA'](formatDate,new Date())+']\x20Retry\x20exchange\x20'+_0x30b1cc+'\x20created/ready'),await this['channel']['assertExchange'](_0xbd6cd5[_0x48fb1c(0xe8)],_0x48fb1c(0xae),{'durable':!![],'autoDelete':![]}),console[_0x48fb1c(0xac)]('['+_0x3c9dec['eALFA'](formatDate,new Date())+_0x48fb1c(0xd2)+_0xbd6cd5[_0x48fb1c(0xe8)]+_0x48fb1c(0xb1));const _0x33ecd4=_0xbd6cd5['routingKey']+_0x48fb1c(0xf5),_0xcf9e35={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':_0xbd6cd5['exchange'],'x-dead-letter-routing-key':_0xbd6cd5['routingKey']}};await this['channel'][_0x48fb1c(0xd7)](_0x33ecd4,_0xcf9e35),console[_0x48fb1c(0xac)]('['+_0x3c9dec[_0x48fb1c(0xaf)](formatDate,new Date())+']\x20Retry\x20queue\x20'+_0x33ecd4+_0x48fb1c(0xb1)),await this['channel']['bindQueue'](_0x33ecd4,_0x30b1cc,_0xbd6cd5[_0x48fb1c(0xdb)]),console['log']('['+formatDate(new Date())+']\x20Retry\x20binding\x20for\x20'+_0xbd6cd5['routingKey']+_0x48fb1c(0xf7));const _0x118561={'durable':!![],'arguments':{'x-dead-letter-exchange':_0x30b1cc,'x-dead-letter-routing-key':_0xbd6cd5['routingKey']}};try{const _0x2ce80d=await this[_0x48fb1c(0xd5)]['assertQueue'](_0xbd6cd5[_0x48fb1c(0xcf)],_0x118561);console['log']('['+_0x3c9dec['bJuQH'](formatDate,new Date())+_0x48fb1c(0xe4)+_0xbd6cd5[_0x48fb1c(0xcf)]+'\x20'+(_0x3c9dec['AZTXg'](_0x2ce80d[_0x48fb1c(0xcf)],_0xbd6cd5['queue'])?'created/ready':'found')+_0x48fb1c(0xe7)),await this[_0x48fb1c(0xd5)][_0x48fb1c(0xc9)](_0xbd6cd5[_0x48fb1c(0xcf)],_0xbd6cd5['exchange'],_0xbd6cd5['routingKey']),console['log']('['+formatDate(new Date())+']\x20Binding\x20'+_0xbd6cd5['exchange']+'\x20->\x20'+_0xbd6cd5['queue']+'\x20('+_0xbd6cd5[_0x48fb1c(0xdb)]+')\x20created');}catch(_0x34fa0b){if(_0x34fa0b[_0x48fb1c(0xf1)]['includes']('inequivalent\x20arg')&&_0x34fa0b['message'][_0x48fb1c(0xbd)]('x-dead-letter-routing-key')){console[_0x48fb1c(0xe9)]('\x0a['+formatDate(new Date())+']\x20ERROR:\x20Queue\x20'+_0xbd6cd5[_0x48fb1c(0xcf)]+_0x48fb1c(0xd0)),console['error'](_0x48fb1c(0xdf));const _0x218d51=_0xbd6cd5['routingKey']+_0x48fb1c(0xc7),_0x47a12c=await this[_0x48fb1c(0xd5)]['assertQueue'](_0x218d51,_0x118561);console['log']('['+_0x3c9dec[_0x48fb1c(0xb3)](formatDate,new Date())+']\x20Alternative\x20queue\x20'+_0x218d51+_0x48fb1c(0xcd)),await this[_0x48fb1c(0xd5)][_0x48fb1c(0xc9)](_0x218d51,_0xbd6cd5['exchange'],_0xbd6cd5[_0x48fb1c(0xdb)]),console[_0x48fb1c(0xac)]('['+formatDate(new Date())+_0x48fb1c(0xc6)+_0xbd6cd5[_0x48fb1c(0xe8)]+'\x20->\x20'+_0x218d51+'\x20('+_0xbd6cd5[_0x48fb1c(0xdb)]+_0x48fb1c(0xe1)),_0xbd6cd5[_0x48fb1c(0xcf)]=_0x218d51;}else{console['error']('['+_0x3c9dec[_0x48fb1c(0xe0)](formatDate,new Date())+']\x20Error\x20creating\x20queue\x20'+_0xbd6cd5[_0x48fb1c(0xcf)]+':',_0x34fa0b['message']);throw _0x34fa0b;}}return!![];}catch(_0x5a5357){return console['error']('['+formatDate(new Date())+']\x20Error\x20saat\x20setup\x20infrastruktur:\x20'+_0x5a5357[_0x48fb1c(0xf1)]),![];}}async[a0_0xd084d8(0xb2)](_0x44f72b,_0x2073b0){const _0x441c7b=a0_0xd084d8,_0x1900e2={'BPBgQ':function(_0x3d76d5,_0x48ccec){return _0x3d76d5!==_0x48ccec;},'pWEUG':_0x441c7b(0xad),'UxchK':function(_0x221868,_0x5d678a){return _0x221868(_0x5d678a);},'KoLUf':_0x441c7b(0xeb),'EmSkB':function(_0x2dcd5d,_0x4eb226){return _0x2dcd5d(_0x4eb226);}};if(!this[_0x441c7b(0xed)])try{await this[_0x441c7b(0xf3)]();}catch(_0x4a483e){return{'success':![],'message':_0x441c7b(0xea)+_0x4a483e['message'],'data':null};}try{const _0x2c09eb=_0x1900e2[_0x441c7b(0xb5)](_0x2073b0['auto_retry'],undefined)?_0x2073b0['auto_retry']:![],_0xfe536c=_0x2073b0[_0x441c7b(0xf6)]||0x3,_0x5f160e={'rabbitmq':{'exchange':_0x2073b0[_0x441c7b(0xe8)],'queue':_0x2073b0['queue'],'routing_key':_0x2073b0[_0x441c7b(0xdb)],'auto_retry':_0x2c09eb,'max_retries':_0xfe536c},'message':_0x44f72b};await this['setupCollectorInfrastructure'](_0x2073b0);const _0x36c60d=new Date(),_0x252273={'timestamp':_0x36c60d[_0x441c7b(0xc8)](),'content':JSON['stringify'](_0x5f160e)},_0x1af376=this['channel']['publish'](_0x2073b0['exchange'],_0x2073b0[_0x441c7b(0xdb)],Buffer['from'](JSON['stringify'](_0x252273)),{'persistent':!![],'contentType':_0x1900e2[_0x441c7b(0xe2)],'timestamp':_0x36c60d['getTime'](),'messageId':_0x36c60d[_0x441c7b(0xef)]()+'-'+Math[_0x441c7b(0xd9)]()['toString'](0x24)['substring'](0x7),'headers':{'x-auto-retry':_0x2c09eb,'x-max-retry':_0xfe536c,'x-retry-count':0x0,'x-retry-interval':0x2710}});if(_0x1af376){console['log']('['+_0x1900e2['UxchK'](formatDate,_0x36c60d)+']\x20Message\x20sent\x20to\x20RabbitMQ\x20successfully:',{'exchange':_0x2073b0['exchange'],'routing_key':_0x2073b0['routingKey'],'queue':_0x2073b0[_0x441c7b(0xcf)],'sendAt':_0x36c60d['toISOString']()});const _0x3bc794=_0x441c7b(0xbc)+_0x36c60d['getTime']()+'-'+Math['random']()[_0x441c7b(0xbb)](0x24)['substring'](0x7);return{'success':!![],'message':_0x1900e2['KoLUf'],'data':{'id':_0x3bc794,'queueInfo':{'exchange':_0x2073b0[_0x441c7b(0xe8)],'queue':_0x2073b0[_0x441c7b(0xcf)],'routingKey':_0x2073b0[_0x441c7b(0xdb)]}}};}else throw new Error('Failed\x20to\x20send\x20message\x20to\x20RabbitMQ');}catch(_0x3daa38){return console[_0x441c7b(0xe9)]('['+_0x1900e2[_0x441c7b(0xbe)](formatDate,new Date())+']\x20Error\x20sending\x20to\x20RabbitMQ:\x20'+_0x3daa38['message']),{'success':![],'message':_0x441c7b(0xc5)+_0x3daa38['message'],'data':null};}}['registerMessageHandler'](_0x546c51){const _0xde7074=a0_0xd084d8,_0x211c5e={'FmPgl':function(_0x78d4f4,_0x302d48){return _0x78d4f4(_0x302d48);}};typeof _0x546c51==='function'?(this[_0xde7074(0xb9)][_0xde7074(0xd8)](_0x546c51),console[_0xde7074(0xac)]('['+formatDate(new Date())+']\x20Message\x20handler\x20registered')):console[_0xde7074(0xe9)]('['+_0x211c5e['FmPgl'](formatDate,new Date())+']\x20Message\x20handler\x20must\x20be\x20a\x20function');}async['processMessage'](_0x516eca){const _0x26f807=a0_0xd084d8,_0x44816d={'PTHsH':function(_0x19fe3d,_0x3475f){return _0x19fe3d(_0x3475f);},'aqYjN':function(_0x38e458,_0x3f4e4e){return _0x38e458(_0x3f4e4e);}};if(this['messageHandlers']['length']===0x0)return console['warn']('['+_0x44816d[_0x26f807(0xdc)](formatDate,new Date())+']\x20No\x20handlers\x20registered\x20to\x20process\x20messages'),!![];try{for(const _0x529ea6 of this['messageHandlers']){await _0x44816d['aqYjN'](_0x529ea6,_0x516eca);}return!![];}catch(_0x3dc59c){return console['error']('['+formatDate(new Date())+_0x26f807(0xd3)+_0x3dc59c['message']),![];}}async['startConsume'](){const _0x124363=a0_0xd084d8,_0x4ba619={'BuFsT':function(_0x3ef3bc,_0x4a7562){return _0x3ef3bc(_0x4a7562);},'XtUKL':function(_0x30985c,_0x22da81){return _0x30985c(_0x22da81);},'JJppq':function(_0x502e20,_0x113277){return _0x502e20(_0x113277);}};if(!this['isConnected'])return console['error']('['+_0x4ba619[_0x124363(0xd6)](formatDate,new Date())+']\x20Cannot\x20start\x20consuming:\x20not\x20connected\x20to\x20RabbitMQ'),![];try{return console[_0x124363(0xac)]('['+formatDate(new Date())+']\x20Start\x20consuming\x20messages\x20from\x20queue\x20\x22'+this[_0x124363(0xb4)][_0x124363(0xcf)]+'\x22...'),this[_0x124363(0xd5)][_0x124363(0xd1)](this[_0x124363(0xb4)][_0x124363(0xcf)],async _0x5b0f82=>{const _0x3e12eb=_0x124363;if(_0x5b0f82!==null){const _0x3e66dc=new Date();let _0x13e171;try{_0x13e171=JSON['parse'](_0x5b0f82['content'][_0x3e12eb(0xbb)]());}catch(_0x3a3067){console['error']('['+_0x4ba619[_0x3e12eb(0xd6)](formatDate,_0x3e66dc)+']\x20Failed\x20to\x20parse\x20message:\x20'+_0x3a3067[_0x3e12eb(0xf1)]),console['error']('Message\x20content:\x20'+_0x5b0f82['content'][_0x3e12eb(0xbb)]()),this['channel']['ack'](_0x5b0f82);return;}const _0x3249f5=_0x5b0f82['properties']['timestamp']?new Date(_0x5b0f82[_0x3e12eb(0xf4)]['timestamp']):new Date(),_0x48e16a=await this['processMessage'](_0x13e171);_0x48e16a?(console['log']('['+_0x4ba619['XtUKL'](formatDate,new Date())+']\x20Message\x20processed\x20successfully'),this[_0x3e12eb(0xd5)][_0x3e12eb(0xf0)](_0x5b0f82)):(console[_0x3e12eb(0xe9)]('['+_0x4ba619[_0x3e12eb(0xc1)](formatDate,new Date())+']\x20Failed\x20to\x20process\x20message,\x20requeuing'),this['channel'][_0x3e12eb(0xb0)](_0x5b0f82,![],!![])),console[_0x3e12eb(0xac)](_0x3e12eb(0xc0));}},{'noAck':![]}),!![];}catch(_0x469914){return console[_0x124363(0xe9)]('['+_0x4ba619[_0x124363(0xd6)](formatDate,new Date())+']\x20Failed\x20to\x20start\x20consuming:\x20'+_0x469914[_0x124363(0xf1)]),![];}}async['close'](){const _0x2fbb77=a0_0xd084d8,_0x1741e7={'CKqXx':function(_0x48c884,_0x407a15){return _0x48c884(_0x407a15);}};this['connection']&&(await _0x1741e7['CKqXx'](closeConnection,this[_0x2fbb77(0xcc)]),this['isConnected']=![]);}}let instance=null;function getInstance(){return!instance&&(instance=new RabbitMQService()),instance;}function a0_0x4219(){const _0x186ac7=['xsbfCNjVCIbWCM9JzxnZAw5Nig1LC3nHz2u6ia','mta1uMDYEwHm','y2HHBM5LBa','qNvgC1q','yxnZzxj0uxvLDwu','ChvZAa','CMfUzg9T','C3bSAxq','CM91DgLUz0TLEq','ufriC0G','yxnZzxj0rxHJAgfUz2u','zxHWB3j0CW','vhj5Aw5NigfSDgvYBMf0AxzLihf1zxvLig5HBwuUlI4','zufmrKe','ksbJCMvHDgvK','CfDfvuC','xsblB25LA3nPifjHyMjPDe1rihrLCNb1DhvZ','xsbrDwv1zsa','ChjLzMv0y2G','nJuZotiWA0PZru5S','ihDPDgGGreXy','zxHJAgfUz2u','zxjYB3i','q2fUBM90ignVBM5Ly3qGDg8GuMfIyML0tve6ia','rgf0ysbZzw50ihrVihf1zxvLihn1y2nLC3nMDwXSEq','s1fyEeC','AxndB25Uzwn0zwq','ndiYodHMy3vbu2C','z2v0vgLTzq','ywnR','BwvZC2fNzq','ndm0mdvRB0Lxu3G','Aw5PDgLHBgL6zq','ChjVCgvYDgLLCW','x3jLDhj5','Bwf4x3jLDhjPzxm','ignYzwf0zwq','nujUt09YCq','Bg9N','yxbWBgLJyxrPB24VANnVBG','zgLYzwn0','yKP1uuG','BMfJAW','ignYzwf0zwqVCMvHzhK','C2vUzfrVuxvLDwu','rhjnBLq','y29UzMLN','qLbcz1e','nJq5mtzmqLfKELu','ndq3mdK5meXwBePOBa','xsbtDwnJzxnZzNvSBhKGCMvJB25Uzwn0zwqGDg8GuMfIyML0tve','BwvZC2fNzuHHBMrSzxjZ','lxjLDhj5lwv4y2HHBMDL','Dg9tDhjPBMC','CxvLDwuT','Aw5JBhvKzxm','rw1tA0i','mtHMufrkDeW','ls0T','sKPWChe','mtqWnti3ognLsLLyBa','xsbgywLSzwqGDg8GAw5PDgLHBgL6zsbsywjIAxrnutOG','otm4ntu2BK5jANbe','rxjYB3i6ia','xsbcAw5KAw5Nia','x3f1zxvL','Dg9ju09tDhjPBMC','yMLUzff1zxvL','CMvJB25Uzwn0','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','y29UBMvJDgLVBG','ignYzwf0zwqGD2L0AcbetfG','C3rHCNrdB25ZDw1L','CxvLDwu','igLZigfSCMvHzhKGAw4GDxnLihDPDgGGysbKAwzMzxjLBNqGCM91DgLUzYbRzxKU','y29UC3vTzq','xsbfEgnOyw5Nzsa'];a0_0x4219=function(){return _0x186ac7;};return a0_0x4219();}module[a0_0xd084d8(0xde)]={'getInstance':getInstance};
@@ -1 +1 @@
1
- function a0_0xc925(_0x1057cc,_0x1974e3){_0x1057cc=_0x1057cc-0x11b;const _0x2aeaee=a0_0x2aea();let _0xc92503=_0x2aeaee[_0x1057cc];if(a0_0xc925['SUyAlP']===undefined){var _0x2dbfda=function(_0x38338b){const _0x50a5c5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4b399a='',_0x54c6dd='';for(let _0x42cab9=0x0,_0x2cb6b6,_0x1f838b,_0x6ece9d=0x0;_0x1f838b=_0x38338b['charAt'](_0x6ece9d++);~_0x1f838b&&(_0x2cb6b6=_0x42cab9%0x4?_0x2cb6b6*0x40+_0x1f838b:_0x1f838b,_0x42cab9++%0x4)?_0x4b399a+=String['fromCharCode'](0xff&_0x2cb6b6>>(-0x2*_0x42cab9&0x6)):0x0){_0x1f838b=_0x50a5c5['indexOf'](_0x1f838b);}for(let _0x2b85ad=0x0,_0x3af5ab=_0x4b399a['length'];_0x2b85ad<_0x3af5ab;_0x2b85ad++){_0x54c6dd+='%'+('00'+_0x4b399a['charCodeAt'](_0x2b85ad)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x54c6dd);};a0_0xc925['wMRpoC']=_0x2dbfda,a0_0xc925['FTHjIH']={},a0_0xc925['SUyAlP']=!![];}const _0x109b12=_0x2aeaee[0x0],_0xfe4d8f=_0x1057cc+_0x109b12,_0x53a30a=a0_0xc925['FTHjIH'][_0xfe4d8f];return!_0x53a30a?(_0xc92503=a0_0xc925['wMRpoC'](_0xc92503),a0_0xc925['FTHjIH'][_0xfe4d8f]=_0xc92503):_0xc92503=_0x53a30a,_0xc92503;}const a0_0x452695=a0_0xc925;(function(_0x42e2a9,_0x556d62){const _0x57f050=a0_0xc925,_0x161878=_0x42e2a9();while(!![]){try{const _0x61f2d6=parseInt(_0x57f050(0x1e1))/0x1*(parseInt(_0x57f050(0x22b))/0x2)+-parseInt(_0x57f050(0x1e6))/0x3+parseInt(_0x57f050(0x1d3))/0x4*(parseInt(_0x57f050(0x238))/0x5)+parseInt(_0x57f050(0x221))/0x6+parseInt(_0x57f050(0x163))/0x7*(-parseInt(_0x57f050(0x22f))/0x8)+-parseInt(_0x57f050(0x237))/0x9*(parseInt(_0x57f050(0x1ee))/0xa)+parseInt(_0x57f050(0x1e9))/0xb;if(_0x61f2d6===_0x556d62)break;else _0x161878['push'](_0x161878['shift']());}catch(_0x510542){_0x161878['push'](_0x161878['shift']());}}}(a0_0x2aea,0x41bee));const {Queue,Worker}=require('bullmq'),Redis=require(a0_0x452695(0x1ce)),crypto=require('crypto'),{v7:uuidv7}=require(a0_0x452695(0x165)),fs=require('fs'),path=require(a0_0x452695(0x17a)),{logger}=require('../../utils/logger'),jobValidator=require(a0_0x452695(0x13b));let componentEngine=null;function a0_0x2aea(){const _0x1af840=['zgvSzxrL','ignHBM5VDcbIzsbJyw5JzwXSzwqGkhn0yxrLoIa','v0n4zgO','zgvZy3jPChrPB24','AM9IlxnJAgvKDwXLCG','sK9cx01bwf9tvefmtevex0npvu5u','Bwnxwem','DgLTzxn0yw1W','C2XPy2u','ywn0AxzL','DeXZCxq','ignHBMnLBgXLzcaOD2fZigfJDgL2zsK','sK9cx1nuquXmrurFsu5urvjwquW','icHPzdOG','AM9Ix21HBMfNzxjFC2H1DgrVD25FC3rHCNq','y2XVC2u','sK9cx0zbsuXfra','sK9cx0vwru5u','AM9Ix3n0ywXSzwq','DNbdq0u','ChjVy2vZC0PVyG','rMfPBgvKihrVihbHCNnLigPVyIbJB25MAwC6ia','lI4VlI4VDxrPBhmVzgiTB3jHy2XL','DxbKyxrLsM9IsgLZDg9YEunVBxbSzxrLza','AgfUzgXLCNm','EwzcC0G','zxHWB25LBNrPywW','zxHLy3v0zvf1zxj5','y29TCg9Uzw50rw5NAw5L','qwrotg4','r0nkveK','Aw5Zzxj0uhjVBwLZzq','BeLPq1G','y2HPBgq','zgf0yq','DxbZzxj0sM9IuMvNAxn0CNK','AM9Ix3rHyMXLC19LBNn1CMvK','Bg9JywXOB3n0','AM9ICW','sgfVBhO','Aw9YzwrPCW','C3rHCNrZv2L0Aa','BMvIweK','zxjYB3i','DxrMoa','mtK1odiWC3btExjA','zMfPBgvK','AM9Ix2THzMTHx3b1yMXPC2HFzxjYB3i','qvDZzM8','s2P1uKO','rMfPBgvKihrVihvWzgf0zsbQB2iGCMvNAxn0CNKGy291BNrLCNm6ia','su5trvjuieLove8GAM9Ix3jLz2LZDhj5cIaGicaGicaGicaGkgPVyL9Uyw1LlcbKAxnWBgf5x25HBwuSihr5CguSihnJAgvKDwXLlcbXDwv1zsWGAgfUzgXLCIWGy29UzMLNx2zPBguScIaGicaGicaGicaGihrPBwvVDxqSihjLDhj5x21HEcWGCMv0CNLFyMfJA29MzIWGC3rHDhvZlcbUzxH0x3j1BL9HDcWGy3jLyxrLzf9HDcWGDxbKyxrLzf9HDcKkicaGicaGicaGicbwquXvrvmGkcqXlcaKmIWGjdmSicq0lcaKnsWGjdySicq3lcaKocWGjdKSicqXmcWGjdeXlcaKmtiSie5pvYGPlcbot1COksKkicaGicaGicaGicbptIbdt05gteLdvcaOAM9Ix25HBwuPierpifvqrefursbtrvqkicaGicaGicaGicaGigrPC3bSyxLFBMfTzsa9ievyq0XvrevelMrPC3bSyxLFBMfTzsWGDhLWzsa9ievyq0XvrevelNr5CguScIaGicaGicaGicaGicbZy2HLzhvSzsa9ievyq0XvrevelNnJAgvKDwXLlcbXDwv1zsa9ievyq0XvrevelNf1zxvLlaOGicaGicaGicaGicaGAgfUzgXLCIa9ievyq0XvrevelMHHBMrSzxiSignVBMzPz19MAwXLid0GrvHdtfveruqUy29UzMLNx2zPBguScIaGicaGicaGicaGicb0Aw1LB3v0id0GrvHdtfveruqUDgLTzw91DcWGCMv0CNLFBwf4id0GrvHdtfveruqUCMv0CNLFBwf4laOGicaGicaGicaGicaGCMv0CNLFyMfJA29MzIa9ievyq0XvrevelNjLDhj5x2jHy2TVzMySihn0yxr1CYa9ievyq0XvrevelNn0yxr1CYWkicaGicaGicaGicaGig5LEhrFCNvUx2f0id0GrvHdtfveruqUBMv4Df9YDw5FyxqSihvWzgf0zwrFyxqGpsbot1COkq','Bw92zvrVrMfPBgvK','zgjFBxLZCwXFDw5HDMfPBgfIBgu','BwfUDwfS','DgLTzw91Da','y3jVBG','zNvUy3rPB24','B3jHy2XL','mtCZwuzmChbS','q3jVBIbYzwDPC3rLCMvKoIa','ugPnrve','tfj4EKW','zw5HyMXLza','nZaWmZaYwePQvNLR','ChvZAa','zgjFCgDFDw5HDMfPBgfIBgu','ntiYmJuWm0nUt2n6zG','BwfW','v1zuB1O','Cgf5Bg9Hza','CMvZDgzVCMDLlMPVyNmUzMfPBgvK','mJb6yLj5Cw0','DxbKyxrLuMvNAxn0CNLtDgf0Dxm','ywXS','C2H1DgrVD24','AM9Ix2rPC3bHDgnOzwrFzgvSyxLLza','sM9Iie1HBMfNzxiGCMvHzhK6ia','zuvvqxy','DxbZzxj0sM9Iu2nOzwr1BgvY','ChvIBgLZAev2zw50','CxvLDwvZ','s3jfEeW','AM9Ix3DVCMTLCNnFy3jLyxrLza','zxHWB3j0CW','z2v0tMv4Dfj1BKzYB21cDwXStve','BwjnELm','BwT2s1u','t3vWA0G','z2v0uMvKAxndBgLLBNq','z2v0','txLtuuWGreiGBw9KDwXLig5VDcbHDMfPBgfIBgu','D29YA2LUz0rPCG','z2v0ug9VBa','s0HpC3C','sM9Iig5VDcbMB3vUzdOG','zgLZCgf0y2G','sM9IigzHAwXLzdOG','CMv0DxjUDMfSDwu','lI4VlI4VDxrPBhmVy2fJAguTBwfUywDLCG','zw5KC1DPDgG','zMLUAxnOzwrpBG','Cg9ZDgDYzxnXBa','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ie5pvYGPlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GpYWGChjVz3jLC3mGpsaXmdaSihjLC3vSDf9ZDw1Tyxj5id0GpYbxsevsrsbPzca9id8','B25bzNrLCKPVyKzHAwXLzcbOyw5KBgvYigvYCM9YicHUB24TyMXVy2TPBMCP','sM9IigrPC3bHDgnOzwqGkgrLBgf5zwqG','AM9Iq29UzMLNCW','B25SAw5L','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteWSihvWzgf0zwrFyxqGpsbtwvnusu1fu1rbtva','yxbPlwrLBgf5zwq','B25kB2jqCM9NCMvZCW','CfvjvKe','wePVqxi','CfDHufO','sK9cx1jfreLtx1bsruzjwa','zxHPC3rZu3LUyW','y2fUy2vSsM9I','A0LYEve','z2v0rgjvDgLSCW','tg9HzgvKia','vuHMr3y','yxr0zw1WDa','AM9Ix3jLz2LZDgvYx2zHAwXLza','ntu0otq2C1vgBgPP','Dw5RBM93BG','vgrTuLK','C3vJy2vZCW','C3fSlxnJCMLWDhm','D2fPDgLUzW','zw5ZDxjLvgfIBgvZ','Cw1rvuO','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ie5pvYGPlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GjdeSihbYB2DYzxnZid0GmtaWlcbYzxn1BhrFC3vTBwfYEsa9icqYifDirvjfigLKid0Gjdm','AM9Ix2rPC3bHDgnOzwq','mZeWmenft3rnAG','AM9PBG','iokaLca','Cgf1C2vK','mtmYotK3nKDWA1nfAW','B2zMBgLUzq','wuLABgS','C29YDa','BxLZCwW','vMj0wuG','C2v0qwXSsM9IC09MzMXPBMu','uKvesvnFueftu1DpuKq','oty5mJCZvhvOvwHu','nu5HtNzMsa','qxLlAMm','tuvsr0uGsu5utYbQB2jFCMvNAxn0CNKGCGOGicaGicaGicaGifvtsu5hicHtruXfq1qGoJeGqvmGAM4GrLjptsbevufmksbZie9oicHYlMPVyL9Uyw1Lid0GCY5QBIKkicaGicaGicaGicbxsevoie1bveniruqGveHftIbvuerbveuGu0vucIaGicaGicaGicaGicbKAxnWBgf5x25HBwuGpsa6mIWGDhLWzsa9idOZlcbZy2HLzhvSzsa9idO0lcbXDwv1zsa9idO1laOGicaGicaGicaGicaGAgfUzgXLCIa9idO2lcbJB25MAwDFzMLSzsa9idO3lcb0Aw1LB3v0id0GoJGSihjLDhj5x21HEca9idO5laOGicaGicaGicaGicaGCMv0CNLFyMfJA29MzIa9idOXmcWGC3rHDhvZid0GoJeXlcbUzxH0x3j1BL9HDca9idOXmIWGDxbKyxrLzf9HDca9ifnzu1rjtuvtvefnuaOGicaGicaGicaGifDiru4GtK9uie1bveniruqGveHftIbjtLnfuLqkicaGicaGicaGicaGicHQB2jFBMfTzsWGzgLZCgXHEv9Uyw1Llcb0ExbLlcbZy2HLzhvSzsWGCxvLDwuSigHHBMrSzxiSignVBMzPz19MAwXLlaOGicaGicaGicaGicaGihrPBwvVDxqSihjLDhj5x21HEcWGCMv0CNLFyMfJA29MzIWGC3rHDhvZlcbUzxH0x3j1BL9HDcWGy3jLyxrLzf9HDcWGDxbKyxrLzf9HDcKkicaGicaGicaGicbwquXvrvmGkdOXlca6mIWGoJmSidO0lca6nsWGoJySidO3lca6ocWGoJKSidOXmcWGoJeXlca6mtiSifnzu1rjtuvtvefnucWGu1LtveLnrvnuqu1qkq','AM9Ix2vUC3vYzv90ywjSzxnFzxjYB3i','y29UBMvJDgLVBNm','z1jky3m','z2v0u3rHDgu','rMfPBgvKihrVihb1yMXPC2GGsK9cx0nptvbmrvrfrcb0BYblywzRyq','DgLTzxn0yw1WCW','B25bzNrLCKPVyKnVBxbSzxrL','zw52','yMfJA29MzG','AM9Ix2nVBMzPz19WyxjZzv9LCNjVCG','AM9Ix2nVBMzPz3nFBg9HzgvK','Cgf1C2u','z2v0sgvHBhrOu3rHDhvZ','rejFvfLqrq','AM9Ix2nVBxbSzxrLza','lI4VlI4VDxrPBhmVzgi','y3jLyxrLza','CMv0CNK','sM9IigvUC3vYzvrHyMXLCYb3yxjUAw5NoIa','DhLWzq','D29YA2vYCW','ifjLzgLZignVBM5Ly3rPB25Z','yNvSBg1Xx3DVCMTLCL9LCNjVCG','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticG6msWGoJiSidOZlca6ncWGoJuSicDYDw5UAw5NjYWGoJySidO3lca6ocWGu1LtveLnrvnuqu1qlca6osWGu1LtveLnrvnuqu1qkq','Aw5JBhvKzxm','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticG/lca/lca/lca/lca/lcaNCNvUBMLUzYCSid8Sid8Sid8Sie5pvYGPlca/lcbot1COksK','Aw5MBW','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa6msWGBgfZDf9YDw5FyxqGpsbtwvnusu1fu1rbtvaScIaGicaGicaGicaGDxbKyxrLzf9HDca9ifnzu1rjtuvtvefnucbxsevsrsbQB2jFBMfTzsa9idOY','AgfUzgXLCG','zw50CMLLCW','ywn0AxzLsgLZDg9YEuLKCW','y3DK','D2fYBG','CMvZDgzVCMDLlMPVyNmUy29TCgXLDgvK','Cuvlq0K','AM9Ix2HPC3rVCNLFy29TCgXLDgvFzxjYB3i','uKvesvnFrei','CxvLDwu','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ifnzu1rjtuvtvefnucWkicaGicaGicaGicbKDxjHDgLVBL9TCYa9idOXlcbWCM9NCMvZCYa9ideWmcWGCMvZDwX0x3n1Bw1HCNKGpsa6mIbxsevsrsbPzca9idOZ','sM9Iia','zMLSDgvY','r2PADvK','s0LHt0C','C3rHy2S','mYbcDwXStveGuxvLDwvZignYzwf0zwqGkgHPz2GSigrLzMf1BhqSigXVDYK','rvj0DNO','DhjPBq','B3nssxG','ChjVz3jLC3m','CgfYC2u','te5xz2S','x3nVDxjJzuzPBgu','lI9QB2iTDMfSAwrHDg9Y','AM9Ix21HBMfNzxjFywXYzwfKEv9PBML0AwfSAxPLza','AM9Ix2HPC3rVCNLFAw5Zzxj0x2vYCM9Y','sM9Iie1HBMfNzxiGC3vKywGGzgLPBMLZAwfSAxnHC2KSihnRAxa','zLbYBLa','y0Pkufa','id0G','BgvUz3rO','sw5PDgLHBgL6Aw5NiePVyIbnyw5Hz2vYlI4U','DKf0v0m','B3jHy2XLlNnXBa','uw9Sz2q','Dg9mB3DLCKnHC2u','sM9IignHBMnLBgXLzcbIEsbVBKjLzM9YzuPVyKv4zwn1Dgu6ia','sK9cx0zbsuXfrf9srvrftLrjt05Fse9vuLm','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteW','C3rHBgXLza','BgPzzgW','ug9ZDgDYzvnrtcbeqIbTB2r1BguGBM90igf2ywLSywjSzq','lI4VlI4VC2vYDMLJzxmVA2fMA2ftzxj2AwnL','CMvHzgrPCLn5BMm','Bwv0ywrHDge','EfjJA1a','rMfPBgvKihrVihnLDcbQB2jZig9MzMXPBMu6ia','icSGmsWkicaGicaGicaGicbUzxH0x3j1BL9HDca9idOZlcb1CgrHDgvKx2f0id0Gu1LtveLnrvnuqu1qifDirvjfigPVyL9Uyw1Lid0GoJq','Aw5PDgLHBerLBgf5','qNvSBe1rifjLzgLZignVBM5Ly3rPB24GzxjYB3i6ia','z2v0sM9ICW','DxbKyxrLsM9IsgLZDg9YEuzHAwXLza','BxmPlI4U','z2v0sM9Iu3rHDhvZ','CgfNzq','sK1sA0G','z2v0sM9Iu2nOzwr1BgvYCW','lIbeqIbTB25PDg9YAw5NigrPC2fIBgvKlG','zhj6uu0','B25kB2jgywLSzwq','z2v0q2XPzw50','AM9Ix21HBMfNzxjFC2H1DgrVD25Fy29TCgXLDgu','C3vIC3rYAw5N','n2fKvxHLDG','zxHLy3v0zuv2zw50sgfUzgXLCNm','DxvPza','AM9Ix2vUC3vYzv90ywjSzxnFD2fYBG','tgzNCee','ywLfyMO','rM9SzgvYihbHEwXVywqVAM9ICY8GDgLKywSGzgL0zw11A2fU','zgvMyxvSDa','CM5brwS','DxjyuKy','sM9IignVBMzPzYbPBNzHBgLKoIa','CLv6BMi','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsaKmsWGBgfZDf9KDxjHDgLVBL9TCYa9icqYlaOGicaGicaGicaGia','CxvPDa','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa/lcbSyxn0x2r1CMf0Aw9Ux21Zid0GpYWkicaGicaGicaGica','vLjAr1i','DxbKyxrLuhjVz3jLC3m','zKrPDeC','C2nOzwr1Bgu','shPOuM0','DMfSDwvZ','svfRwuW','rMfPBgvKihrVigvUC3vYzsbQB2iGDgfIBgvZoIa','Cgf0Aa','DgXKu1K','CMvTB3zL','rLf6sxy','AM9Ix2HPC3rVCNLFzMfPBgvKx2vYCM9Y','DvHutvK','BLbzv0O','z2v0s2fMA2ftzxj2AwnL','DxbKyxrLuMvNAxn0CNLdB3vUDgvYCW','rMfPBgvKihrVihvWzgf0zsbQB2iGAgLZDg9YEsaOy29TCgXLDgvKktOG','C3rYAw5N','y2f0y2G','ChjVy2vZC2vKt24','t0z1twG','BMfTzq','BwvZC2fNzq','yxr0zw1WDhnnywrL','C2v0','AM9Ix3jLz2LZDhj5x29MzMXPBMvFzxjYB3i','zgLZCgf0y2HezwXHEwvK','zgvIDwC','rMfPBgvKihrVihjLz2LZDgvYigPVyJOG','z2v0rgjuExbL','AM9Ix3bYB2DYzxnZ','AM9Ix2rIx3vUyxzHAwXHyMXL','sM9Iihn0ywXSzwq6ia','yxbP','qMfJA2DYB3vUzcbPBNnLCNqGAM9IigHPC3rVCNKGzMfPBgvKoIa','AgLZDg9YEuLK','vgLKywSGywrHigPVyIbJB25MAwCGzgL0zw11A2fUigrPihbHEwXVywqVAM9ICY8UiePVyIbnyw5Hz2vYigfRDgLMihrHBNbHignYB24U','BxmPoIa','sK9cx0nptvbmrvrfra','zxHLy3v0zvrYyw5Zywn0Aw9U','BxLZCwWUC3fS','sM9IignHBMnLBgXLzcb2AweGqvbj','rMfPBgvKihrVihvWC2vYDcbQB2iGCMvNAxn0CNK6ia','Bwf4qxr0zw1WDhm','AM9Ix3jLz2LZDhj5x2nVDw50zxjFzxjYB3i','Aw5PDgLHBgL6zwq','AM9Ix21HBMfNzxjFAw5PDf9ZDgfYDa','z2v0sM9I','CMvNAxn0zxjkB2i','A3jTsKe','AwjizgS'];a0_0x2aea=function(){return _0x1af840;};return a0_0x2aea();}function getComponentEngine(){const _0x3f508a=a0_0x452695,_0x40bca7={'djZrR':'../../utils/component-engine'};if(!componentEngine)try{const _0x21f5a2=require(_0x40bca7['djZrR']);componentEngine=_0x21f5a2[_0x3f508a(0x1c2)]||_0x21f5a2;}catch(_0x116234){}return componentEngine;}class JobManager{constructor(){const _0x194212=a0_0x452695;this['queues']={},this[_0x194212(0x11b)]={},this['jobConfigs']={},this[_0x194212(0x1be)]={},this['connections']=[],this[_0x194212(0x1a0)]=![],this['workingDir']=process[_0x194212(0x126)](),this['activeHistoryIds']=new Map();}['createBullMQConnection'](){const _0x653856=a0_0x452695,_0x1217e8={'ydaPK':_0x653856(0x1cb),'XJoAr':function(_0x3fbd72,_0x274cb1,_0x1355bd){return _0x3fbd72(_0x274cb1,_0x1355bd);},'rmJne':_0x653856(0x1d1)},_0x1f2208=new Redis({'host':process['env']['REDIS_HOST']||_0x1217e8['ydaPK'],'port':_0x1217e8[_0x653856(0x216)](parseInt,process[_0x653856(0x242)]['REDIS_PORT'],0xa)||0x18ec,'password':process[_0x653856(0x242)][_0x653856(0x236)]||undefined,'db':parseInt(process['env'][_0x653856(0x12b)],0xa)||0x0,'maxRetriesPerRequest':null,'retryStrategy'(_0x50017a){const _0x18f50f=Math['min'](_0x50017a*0x32,0x7d0);return _0x18f50f;}});return _0x1f2208['on'](_0x1217e8['rmJne'],_0x1f2bcb=>{const _0x539a7d=_0x653856;logger['error']({'event':'bullmq_redis_error','error':_0x1f2bcb[_0x539a7d(0x189)]},_0x539a7d(0x155)+_0x1f2bcb['message']);}),this['connections']['push'](_0x1f2208),_0x1f2208;}async['initialize'](){const _0x552acb=a0_0x452695,_0x59a161={'Haolz':_0x552acb(0x13e),'yrjNX':_0x552acb(0x1a1),'ycPQV':'job_redis_connected','oCaGo':_0x552acb(0x23b),'UrTBk':_0x552acb(0x197),'aiEbj':_0x552acb(0x222),'LRxzL':'default','yfBsH':function(_0x28867e,_0x3de99e,_0x21714e){return _0x28867e(_0x3de99e,_0x21714e);},'mHUNT':function(_0x523e1f,_0x5612b3){return _0x523e1f*_0x5612b3;},'eEUAv':'high','oqEwG':'low','AdNLn':function(_0x170b6b,_0x5ee035,_0x2dc3cf){return _0x170b6b(_0x5ee035,_0x2dc3cf);},'nkphg':function(_0x3666a8,_0x27e326,_0x45de12){return _0x3666a8(_0x27e326,_0x45de12);},'oBRsr':_0x552acb(0x137),'krmJA':_0x552acb(0x1d1),'NbLZe':_0x552acb(0x1f9),'fPrnP':_0x552acb(0x220),'GCJTI':'job_manager_ready'};if(this['initialized']){logger[_0x552acb(0x127)]({'event':_0x552acb(0x13c)},_0x59a161[_0x552acb(0x1cd)]);return;}logger['info']({'event':_0x59a161['yrjNX']},_0x552acb(0x143));const _0x20480c=this['createBullMQConnection']();try{await _0x20480c['ping'](),logger['info']({'event':_0x59a161['ycPQV']},'BullMQ\x20Redis\x20connection\x20verified');}catch(_0x31ca86){logger[_0x552acb(0x1d1)]({'event':'job_redis_failed','error':_0x31ca86[_0x552acb(0x189)]},'Redis\x20connection\x20failed:\x20'+_0x31ca86[_0x552acb(0x189)]+'.\x20Job\x20Scheduler\x20tidak\x20akan\x20aktif.');try{await _0x20480c[_0x552acb(0x170)]();}catch(_0x3bf146){}this[_0x552acb(0x23c)]=this['connections']['filter'](_0x402c18=>_0x402c18!==_0x20480c);return;}try{await _0x20480c['quit']();}catch(_0x5837b0){}this['connections']=this[_0x552acb(0x23c)][_0x552acb(0x12f)](_0x45ea99=>_0x45ea99!==_0x20480c);try{await this[_0x552acb(0x227)]();}catch(_0x33e612){logger[_0x552acb(0x127)]({'event':_0x59a161['oCaGo'],'error':_0x33e612[_0x552acb(0x189)]},_0x552acb(0x179)+_0x33e612['message']+_0x552acb(0x15d));}const _0x989ca3=this['loadJobConfigs']();_0x989ca3['length']===0x0&&logger[_0x552acb(0x121)]({'event':'job_no_configs'},_0x59a161['UrTBk']);const _0x5416e7=[];for(const _0x5cae90 of _0x989ca3){const _0x44f624=jobValidator['validateConfig'](_0x5cae90,this[_0x552acb(0x202)]);_0x44f624['valid']?_0x5416e7[_0x552acb(0x1e7)](_0x5cae90):logger[_0x552acb(0x1d1)]({'event':'job_config_invalid','name':_0x5cae90[_0x552acb(0x188)]||_0x59a161[_0x552acb(0x168)],'errors':_0x44f624['errors']},_0x552acb(0x16d)+(_0x5cae90['name']||_0x59a161[_0x552acb(0x168)])+_0x552acb(0x22d)+_0x44f624['errors'][_0x552acb(0x22c)](';\x20'));}const _0x44edf8=process['env']['RESTFORGE_PROJECT_NAME']||_0x59a161[_0x552acb(0x1e4)],_0x33a340=process['env'][_0x552acb(0x218)]||'rf:'+_0x44edf8+':job',_0x134508=_0x59a161[_0x552acb(0x1bf)](parseInt,process['env']['JOB_RETENTION_HOURS'],0xa)||0x48,_0x98568b=parseInt(process[_0x552acb(0x242)][_0x552acb(0x149)],0xa)||0xa8,_0x4fbee3={'removeOnComplete':{'age':_0x59a161['mHUNT'](_0x134508,0xe10)},'removeOnFail':{'age':_0x98568b*0xe10}},_0x574e5d={'high-priority':_0x59a161[_0x552acb(0x1f4)],'default':'default','low-priority':_0x59a161['oqEwG']};for(const [_0x4d2520,_0x1ff343]of Object[_0x552acb(0x124)](_0x574e5d)){this['queues'][_0x4d2520]=new Queue(_0x1ff343,{'connection':this['createBullMQConnection'](),'prefix':_0x33a340,'defaultJobOptions':_0x4fbee3});}logger['info']({'event':'job_queues_created','count':0x3},_0x552acb(0x133));const _0x1a55f7=_0x59a161[_0x552acb(0x1c3)](parseInt,process['env']['JOB_CONCURRENCY'],0xa)||0x5,_0x3c9dfd=_0x59a161['nkphg'](parseInt,process['env'][_0x552acb(0x1b2)],0xa)||0x7530,_0x4ba10d=_0x59a161['yfBsH'](parseInt,process['env'][_0x552acb(0x1ab)],0xa)||0x2;for(const [_0x2cc110,_0x412939]of Object[_0x552acb(0x124)](_0x574e5d)){const _0x3a8217=new Worker(_0x412939,async _0x358c00=>this[_0x552acb(0x1ba)](_0x358c00),{'connection':this['createBullMQConnection'](),'prefix':_0x33a340,'concurrency':_0x1a55f7,'stalledInterval':_0x3c9dfd,'maxStalledCount':_0x4ba10d});_0x3a8217['on']('completed',(_0x3d3fb7,_0xdbb534)=>this['onJobCompleted'](_0x3d3fb7,_0xdbb534)),_0x3a8217['on']('failed',(_0x2d0904,_0x2a0d6e)=>this['onJobFailed'](_0x2d0904,_0x2a0d6e)),_0x3a8217['on'](_0x59a161['oBRsr'],(_0x2909cf,_0x31a974)=>this[_0x552acb(0x214)](_0x2909cf,_0x31a974)),_0x3a8217['on'](_0x552acb(0x14b),_0x4c27a1=>{const _0x2a0da6=_0x552acb;logger['warn']({'event':_0x2a0da6(0x1b8),'jobId':_0x4c27a1},_0x2a0da6(0x193)+_0x4c27a1);}),_0x3a8217['on'](_0x59a161[_0x552acb(0x1a4)],_0x474927=>{const _0xd3f04d=_0x552acb;logger[_0xd3f04d(0x1d1)]({'event':_0xd3f04d(0x11d),'queue':_0x2cc110,'error':_0x474927[_0xd3f04d(0x189)]},'BullMQ\x20Worker\x20error\x20('+_0x2cc110+'):\x20'+_0x474927['message']);}),this[_0x552acb(0x11b)][_0x2cc110]=_0x3a8217;}logger[_0x552acb(0x121)]({'event':_0x59a161['NbLZe'],'count':0x3,'concurrency':_0x1a55f7},'3\x20BullMQ\x20Workers\x20created\x20(concurrency:\x20'+_0x1a55f7+')');let _0x33d03e=0x0;for(const _0x3b0c29 of _0x5416e7){try{await this[_0x552acb(0x1a3)](_0x3b0c29),_0x33d03e++;}catch(_0x4184e5){logger['error']({'event':_0x59a161[_0x552acb(0x13f)],'name':_0x3b0c29[_0x552acb(0x188)],'error':_0x4184e5['message']},_0x552acb(0x18f)+_0x3b0c29['name']+_0x552acb(0x22d)+_0x4184e5['message']);}}this['initialized']=!![];const _0x37bf3b=this['connections'][_0x552acb(0x142)];logger['info']({'event':_0x59a161[_0x552acb(0x1c4)],'registeredJobs':_0x33d03e,'totalConfigs':_0x5416e7['length'],'redisConnections':_0x37bf3b},_0x552acb(0x1f3)+_0x33d03e+'\x20job(s)\x20registered,\x20'+_0x37bf3b+_0x552acb(0x11c));}async[a0_0x452695(0x1f1)](){const _0x121368=a0_0x452695,_0x2ab4c8={'lZWvY':_0x121368(0x1b4),'lIiCX':function(_0x292d6b,_0xdf57b0){return _0x292d6b<_0xdf57b0;},'KjuRJ':function(_0x235633,_0x2bb185){return _0x235633-_0x2bb185;},'PsQcv':_0x121368(0x1af),'gRJcs':function(_0x1587c4,_0x8902cd){return _0x1587c4===_0x8902cd;},'NuDIt':'Job\x20Manager\x20shutdown\x20complete'};if(!this[_0x121368(0x1a0)])return;const _0x2b8b97=parseInt(process[_0x121368(0x242)]['JOB_SHUTDOWN_TIMEOUT'],0xa)||0x2710;logger['info']({'event':_0x2ab4c8['lZWvY'],'timeoutMs':_0x2b8b97},'Job\x20Manager\x20shutting\x20down\x20(timeout:\x20'+_0x2b8b97+_0x121368(0x158));const _0x346dfe=Object[_0x121368(0x177)](this[_0x121368(0x11b)])['map'](async _0x205cd5=>{const _0x4cfb24=_0x121368;try{await _0x205cd5[_0x4cfb24(0x246)]();}catch(_0x33b685){}});await Promise['all'](_0x346dfe);const _0x42bb72=Date['now']();while(_0x2ab4c8[_0x121368(0x1c6)](_0x2ab4c8[_0x121368(0x1d7)](Date['now'](),_0x42bb72),_0x2b8b97)){let _0x810b0d=0x0;for(const _0x27e5bc of Object[_0x121368(0x177)](this[_0x121368(0x1f7)])){try{const _0xf1418b=await _0x27e5bc['getJobCounts'](_0x2ab4c8['PsQcv']);_0x810b0d+=_0xf1418b['active']||0x0;}catch(_0x2bdde1){}}if(_0x2ab4c8[_0x121368(0x23d)](_0x810b0d,0x0))break;await new Promise(_0x47e74b=>setTimeout(_0x47e74b,0x1f4));}const _0x1c0386=Object[_0x121368(0x177)](this['workers'])[_0x121368(0x1ea)](async _0x452c26=>{try{await _0x452c26['close']();}catch(_0x50b679){}});await Promise['all'](_0x1c0386);const _0xdb5eff=Object[_0x121368(0x177)](this['queues'])['map'](async _0x503819=>{const _0x136286=_0x121368;try{await _0x503819[_0x136286(0x1b5)]();}catch(_0x4ef631){}});await Promise[_0x121368(0x1f0)](_0xdb5eff);for(const _0x127752 of this[_0x121368(0x23c)]){try{await _0x127752['quit']();}catch(_0x2881a0){}}this['queues']={},this['workers']={},this['connections']=[],await this[_0x121368(0x235)](),this[_0x121368(0x125)]['clear'](),this['initialized']=![],logger['info']({'event':_0x121368(0x161)},_0x2ab4c8['NuDIt']);}['loadJobConfigs'](){const _0x70938=a0_0x452695,_0x38dcd6={'eQtzk':'job_config_dir_missing','NvumD':_0x70938(0x1d2),'nyrYG':_0x70938(0x244),'zXqKh':_0x70938(0x245)},_0x3202d7=path['join'](this['workingDir'],_0x70938(0x1ec),_0x70938(0x1cc));if(!fs['existsSync'](_0x3202d7))return logger['info']({'event':_0x38dcd6['eQtzk'],'path':_0x3202d7},_0x70938(0x169)),[];const _0x100520=fs[_0x70938(0x14f)](_0x3202d7)['filter'](_0x568eb=>_0x568eb[_0x70938(0x20a)]('.json')),_0x161a4d=[];for(const _0x17d6fe of _0x100520){const _0x144f1b=path['join'](_0x3202d7,_0x17d6fe);try{const _0x5959b7=fs['readFileSync'](_0x144f1b,_0x38dcd6['NvumD']),_0x3a900e=JSON[_0x70938(0x138)](_0x5959b7);_0x3a900e['_sourceFile']=_0x17d6fe,_0x161a4d[_0x70938(0x1e7)](_0x3a900e);}catch(_0x5b5454){logger[_0x70938(0x1d1)]({'event':_0x38dcd6['nyrYG'],'file':_0x17d6fe,'error':_0x5b5454['message']},_0x70938(0x1bb)+_0x17d6fe+_0x70938(0x22d)+_0x5b5454['message']);}}return logger['info']({'event':_0x38dcd6['zXqKh'],'count':_0x161a4d['length']},_0x70938(0x21d)+_0x161a4d['length']+'\x20job\x20config(s)\x20from\x20payload/jobs/'),_0x161a4d;}async[a0_0x452695(0x1a3)](_0x539d37){const _0x411c99=a0_0x452695,_0x50f2a7={'KTQLQ':'src','lRLpp':function(_0x35abe6,_0xcdedf0){return _0x35abe6(_0xcdedf0);},'HYuXm':function(_0x5249a0,_0x800203){return _0x5249a0===_0x800203;},'kIryQ':_0x411c99(0x1de),'nwUqg':'default','lzfxj':function(_0xb238d0,_0x5a1ffc){return _0xb238d0===_0x5a1ffc;},'boINd':function(_0x51256f,_0x4a0c82){return _0x51256f===_0x4a0c82;}},_0xe73d82=path[_0x411c99(0x22c)](this[_0x411c99(0x202)],_0x50f2a7['KTQLQ'],_0x411c99(0x1cc),_0x539d37['handler']+'.js');this[_0x411c99(0x1be)][_0x539d37[_0x411c99(0x188)]]=_0x50f2a7['lRLpp'](require,_0xe73d82),this['jobConfigs'][_0x539d37['name']]=_0x539d37;if(_0x50f2a7['HYuXm'](_0x539d37['type'],_0x50f2a7[_0x411c99(0x21b)])&&_0x539d37[_0x411c99(0x1e5)]!==![]){const _0x139986=this[_0x411c99(0x1f7)][_0x539d37['queue']||'default'];await _0x139986[_0x411c99(0x1f5)](_0x539d37['name'],{'pattern':_0x539d37[_0x411c99(0x175)],'tz':_0x539d37['timezone']||undefined},{'name':_0x539d37[_0x411c99(0x188)],'data':{'handler':_0x539d37['handler'],'triggeredBy':_0x411c99(0x1de),'metadata':_0x539d37['metadata']||{}},'opts':{'attempts':_0x539d37['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x539d37['retry']?.['backoff']||_0x411c99(0x1c0),'delay':_0x539d37[_0x411c99(0x24c)]?.[_0x411c99(0x154)]||0x1388},'timeout':_0x539d37[_0x411c99(0x1dd)]||0x7530}}),logger['info']({'event':'cron_registered','name':_0x539d37['name'],'schedule':_0x539d37['schedule'],'queue':_0x539d37['queue']||_0x50f2a7['nwUqg']},_0x411c99(0x1e2)+_0x539d37['name']+'\x20['+_0x539d37[_0x411c99(0x175)]+']');}const _0x5726a7=_0x50f2a7['lzfxj'](_0x539d37[_0x411c99(0x24e)],_0x50f2a7[_0x411c99(0x21b)])&&_0x539d37[_0x411c99(0x1e5)]!==![]?_0x411c99(0x211):_0x411c99(0x230);let _0x4454eb=null;_0x50f2a7['boINd'](_0x5726a7,_0x411c99(0x211))&&(_0x4454eb=await this['getNextRunFromBullMQ'](_0x539d37[_0x411c99(0x188)])),await this['upsertJobRegistry'](_0x539d37,_0x5726a7,_0x4454eb);}async[a0_0x452695(0x1ba)](_0x19c34e){const _0x3c9c2d=a0_0x452695,_0x2fe8d0={'ERtvz':'job_history_insert_bg_error','ARIsa':function(_0x18e59f,_0x405ff8){return _0x18e59f+_0x405ff8;},'XHiEA':function(_0x2c39ea){return _0x2c39ea();},'xRckP':_0x3c9c2d(0x222),'LNWgk':_0x3c9c2d(0x213),'zFAZj':function(_0x56e332,_0x4987a4){return _0x56e332===_0x4987a4;},'LcvyN':_0x3c9c2d(0x1de),'IQkYL':'default','wSHLi':'onBeforeJobExecute','KHOsw':function(_0x5a3edb,_0x5a5dbc){return _0x5a3edb(_0x5a5dbc);},'pnRuZ':'job_handler_done'},_0x44dccb=this['jobConfigs'][_0x19c34e['name']],_0x366400=this['handlers'][_0x19c34e['name']];if(!_0x366400)throw new Error('Handler\x20not\x20found\x20for\x20job:\x20'+_0x19c34e[_0x3c9c2d(0x188)]);const _0x29fdd9=logger['child']({'jobId':_0x19c34e['id'],'jobName':_0x19c34e['name']});_0x29fdd9[_0x3c9c2d(0x121)]({'event':'job_started','attempt':_0x19c34e[_0x3c9c2d(0x18a)]+0x1,'triggeredBy':_0x19c34e[_0x3c9c2d(0x1c8)]?.['triggeredBy']||'unknown'},'Job\x20started:\x20'+_0x19c34e[_0x3c9c2d(0x188)]+'\x20(attempt\x20'+_0x2fe8d0['ARIsa'](_0x19c34e['attemptsMade'],0x1)+')');const _0x1fe738=_0x2fe8d0['XHiEA'](uuidv7),_0x20e3dd=_0x19c34e['data']?.['triggeredBy']||_0x2fe8d0[_0x3c9c2d(0x151)],_0x5daac3=this['insertJobHistory']({'id':_0x1fe738,'jobName':_0x19c34e[_0x3c9c2d(0x188)],'bullmqJobId':_0x19c34e['id'],'triggerType':_0x20e3dd===_0x2fe8d0[_0x3c9c2d(0x139)]?'delayed':_0x2fe8d0['zFAZj'](_0x20e3dd,'api')?_0x3c9c2d(0x1dc):_0x3c9c2d(0x1de),'triggeredBy':_0x20e3dd===_0x2fe8d0['LcvyN']?'system':_0x20e3dd,'queue':_0x44dccb?.['queue']||_0x2fe8d0[_0x3c9c2d(0x178)],'attempt':_0x19c34e['attemptsMade']+0x1,'configFile':_0x44dccb?.['_sourceFile']||null})[_0x3c9c2d(0x185)](_0x3590a3=>{const _0x13381b=_0x3c9c2d;_0x29fdd9[_0x13381b(0x127)]({'event':_0x2fe8d0[_0x13381b(0x134)],'error':_0x3590a3['message']},_0x13381b(0x195)+_0x3590a3['message']);});this[_0x3c9c2d(0x125)][_0x3c9c2d(0x18b)](_0x19c34e['id'],{'historyId':_0x1fe738,'insertPromise':_0x5daac3});const _0xea0986=this['buildContext'](_0x19c34e,_0x44dccb,_0x29fdd9),_0x25c259=getComponentEngine();if(_0x25c259&&typeof _0x25c259[_0x3c9c2d(0x164)]===_0x3c9c2d(0x1df)){const _0x756df0=await _0x25c259[_0x3c9c2d(0x164)](_0x2fe8d0['wSHLi'],_0xea0986,!![]);if(!_0x756df0[_0x3c9c2d(0x224)])throw new Error(_0x3c9c2d(0x148)+_0x756df0['error']);}const _0x538967=await _0x2fe8d0[_0x3c9c2d(0x204)](_0x366400,_0xea0986);return _0x29fdd9['info']({'event':_0x2fe8d0['pnRuZ'],'result':_0x538967},'Job\x20handler\x20completed:\x20'+_0x19c34e['name']),_0x538967;}['buildContext'](_0x5ee51a,_0x706aae,_0x310d7f){const _0x42b350=a0_0x452695,_0x2276c9={'RZKxs':'job-scheduler'};return{'jobId':_0x5ee51a['id'],'jobName':_0x5ee51a[_0x42b350(0x188)],'attempt':_0x5ee51a[_0x42b350(0x18a)]+0x1,'maxAttempts':_0x706aae?.['retry']?.['maxAttempts']||0x3,'payload':_0x5ee51a[_0x42b350(0x1c8)]||{},'config':_0x706aae||{},'db':this['getDbUtils'](),'redis':this['getRedisClient'](),'logger':_0x310d7f,'kafka':this['getKafkaService'](),'cache':this['getCacheManager'](),'updateProgress':async _0x22399a=>{const _0x3eb646=_0x42b350;await _0x5ee51a[_0x3eb646(0x173)](_0x22399a);},'emit':async(_0x591e2e,_0x281f00)=>{const _0x3c7d30=_0x42b350,_0x1dda34=this[_0x3c7d30(0x181)]();_0x1dda34&&await _0x1dda34[_0x3c7d30(0x1f6)](_0x591e2e,_0x3c7d30(0x1b7),null,_0x281f00,{'module':_0x2276c9['RZKxs'],'endpoint':_0x5ee51a[_0x3c7d30(0x188)]});},'job':_0x5ee51a};}[a0_0x452695(0x190)](){const _0x2a92b6=a0_0x452695,_0x174926={'nAwBp':_0x2a92b6(0x20c)};return(process['env']['DB_TYPE']||_0x174926['nAwBp'])[_0x2a92b6(0x147)]();}async[a0_0x452695(0x227)](){const _0x1b0e07=a0_0x452695,_0x50467c={'qmQUJ':_0x1b0e07(0x192),'HzhRm':'postgresql.sql','GjZuY':_0x1b0e07(0x19b),'UHfGv':'job_db_type_unsupported','OnTHX':'utf8','QUtBP':'already\x20exists'},_0x88612b=this[_0x1b0e07(0x21c)]();if(!_0x88612b){logger[_0x1b0e07(0x127)]({'event':_0x50467c[_0x1b0e07(0x228)]},'Database\x20tidak\x20tersedia,\x20skip\x20auto-create\x20job\x20tables');return;}const _0x2c3325=this[_0x1b0e07(0x190)](),_0x150652={'postgresql':_0x50467c[_0x1b0e07(0x176)],'oracle':_0x1b0e07(0x145),'mysql':_0x50467c[_0x1b0e07(0x130)]},_0x7339ed=_0x150652[_0x2c3325];if(!_0x7339ed){logger[_0x1b0e07(0x127)]({'event':_0x50467c[_0x1b0e07(0x21e)],'dbType':_0x2c3325},'DB_TYPE\x20\x27'+_0x2c3325+'\x27\x20tidak\x20didukung\x20untuk\x20job\x20monitoring\x20tables');return;}const _0x35b354=path[_0x1b0e07(0x22c)](__dirname,_0x1b0e07(0x225),_0x7339ed);if(!fs[_0x1b0e07(0x219)](_0x35b354)){logger['warn']({'event':'job_sql_not_found','path':_0x35b354},'SQL\x20script\x20tidak\x20ditemukan:\x20'+_0x35b354);return;}const _0x40751c=fs['readFileSync'](_0x35b354,_0x50467c['OnTHX']),_0x138de6=this['splitSqlStatements'](_0x40751c,_0x2c3325);let _0x290e29=0x0;for(const _0x468d0f of _0x138de6){try{await _0x88612b[_0x1b0e07(0x1c1)](_0x468d0f),_0x290e29++;}catch(_0x16e16f){const _0x42fc7e=(_0x16e16f['message']||'')[_0x1b0e07(0x147)](),_0x378ff9=_0x42fc7e['includes'](_0x50467c['QUtBP'])||_0x42fc7e['includes']('ora-00955')||_0x42fc7e[_0x1b0e07(0x11f)]('duplicate');!_0x378ff9&&logger['warn']({'event':_0x1b0e07(0x166),'error':_0x16e16f[_0x1b0e07(0x189)]},_0x1b0e07(0x24d)+_0x16e16f['message']);}}logger['info']({'event':_0x1b0e07(0x1ca),'dbType':_0x2c3325,'executed':_0x290e29},'Job\x20monitoring\x20tables\x20ensured\x20('+_0x2c3325+')');}['splitSqlStatements'](_0x3bcb16,_0x1dbd28){const _0x1d34fe=a0_0x452695,_0x2135f3={'jLSgw':function(_0x5dbee5,_0x51a851){return _0x5dbee5===_0x51a851;},'PVdjk':function(_0x275e50,_0xe38a02){return _0x275e50>_0xe38a02;},'aqIMW':function(_0x28e9d3,_0x556531){return _0x28e9d3===_0x556531;}};let _0xd8055d;return _0x2135f3['aqIMW'](_0x1dbd28,'oracle')?_0xd8055d=_0x3bcb16['split'](/\n\/\s*(?:\n|$)/):_0xd8055d=_0x3bcb16['split'](/;\s*(?:\n|$)/),_0xd8055d[_0x1d34fe(0x1ea)](_0x20cf26=>_0x20cf26['trim']())['filter'](_0xea97fb=>{const _0x1828c6=_0x1d34fe;if(_0x2135f3['jLSgw'](_0xea97fb[_0x1828c6(0x142)],0x0))return![];const _0x33bb75=_0xea97fb['split']('\x0a')[_0x1828c6(0x12f)](_0x352527=>!_0x352527['trim']()[_0x1828c6(0x1cf)]('--')&&_0x352527[_0x1828c6(0x135)]()['length']>0x0);return _0x2135f3['PVdjk'](_0x33bb75['length'],0x0);});}async[a0_0x452695(0x1c9)](_0x19a74c,_0x9e3a26='online',_0x3b3ada=null){const _0x58a217=a0_0x452695,_0x426b1c={'cJJPP':'cron','KrExL':_0x58a217(0x1c0),'yDEcl':function(_0x18cf0d,_0x5b5fa7){return _0x18cf0d===_0x5b5fa7;},'vhdXt':function(_0x1cf648,_0x52abeb){return _0x1cf648===_0x52abeb;}},_0xdf9691=this[_0x58a217(0x21c)]();if(!_0xdf9691)return;const _0x2f129f=this['getDbType'](),_0xdc5ecf=[_0x19a74c['name'],_0x19a74c[_0x58a217(0x1a9)]||_0x19a74c['name'],_0x19a74c['type']||_0x426b1c[_0x58a217(0x140)],_0x19a74c[_0x58a217(0x175)]||null,_0x19a74c[_0x58a217(0x12c)]||_0x58a217(0x16a),_0x19a74c['handler'],_0x19a74c[_0x58a217(0x13a)]||'',_0x19a74c['timeout']||0x7530,_0x19a74c[_0x58a217(0x24c)]?.['maxAttempts']||0x3,_0x19a74c[_0x58a217(0x24c)]?.['backoff']||_0x426b1c[_0x58a217(0x1f8)],_0x9e3a26,_0x3b3ada];try{if(_0x426b1c['yDEcl'](_0x2f129f,'oracle'))await _0xdf9691[_0x58a217(0x1c1)](_0x58a217(0x23a),_0xdc5ecf);else _0x426b1c['vhdXt'](_0x2f129f,'mysql')?await _0xdf9691[_0x58a217(0x1c1)]('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)',_0xdc5ecf):await _0xdf9691[_0x58a217(0x1c1)](_0x58a217(0x1d9),_0xdc5ecf);}catch(_0x580d8e){logger[_0x58a217(0x127)]({'event':'job_registry_upsert_error','name':_0x19a74c[_0x58a217(0x188)],'error':_0x580d8e['message']},_0x58a217(0x19d)+_0x19a74c[_0x58a217(0x188)]+'\x20—\x20'+_0x580d8e[_0x58a217(0x189)]);}}async['insertJobHistory'](_0x3c6f0c){const _0x5bdd9e=a0_0x452695,_0x403a40={'nPYWJ':'cron','VbtYH':'system','WVToZ':_0x5bdd9e(0x16a),'VRZGR':function(_0x4c5557,_0x7773f9){return _0x4c5557===_0x7773f9;},'nebXI':_0x5bdd9e(0x1e0),'DyXtO':'running','TaMrC':_0x5bdd9e(0x13d)},_0x2087ea=this[_0x5bdd9e(0x21c)]();if(!_0x2087ea)return;const _0x5e7818=this['getDbType'](),_0x315cd9=[_0x3c6f0c['id'],_0x3c6f0c['jobName'],_0x3c6f0c['bullmqJobId']||null,_0x3c6f0c['triggerType']||_0x403a40[_0x5bdd9e(0x180)],_0x3c6f0c['triggeredBy']||_0x403a40[_0x5bdd9e(0x234)],_0x3c6f0c[_0x5bdd9e(0x12c)]||_0x403a40[_0x5bdd9e(0x1eb)],_0x3c6f0c[_0x5bdd9e(0x21f)]||0x1,_0x3c6f0c['configFile']||null,process['pid']];try{if(_0x403a40[_0x5bdd9e(0x172)](_0x5e7818,_0x403a40[_0x5bdd9e(0x1d0)]))await _0x2087ea['executeQuery'](_0x5bdd9e(0x11e),_0x315cd9);else _0x5e7818==='mysql'?await _0x2087ea['executeQuery'](_0x5bdd9e(0x120),_0x315cd9):await _0x2087ea['executeQuery']('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())',_0x315cd9);await this[_0x5bdd9e(0x1ef)](_0x3c6f0c['jobName'],_0x403a40['DyXtO']);}catch(_0x36fb36){logger[_0x5bdd9e(0x127)]({'event':_0x403a40['TaMrC'],'jobName':_0x3c6f0c['jobName'],'error':_0x36fb36[_0x5bdd9e(0x189)]},'Failed\x20to\x20insert\x20job\x20history:\x20'+_0x36fb36['message']);}}async[a0_0x452695(0x1bd)](_0x580a0d,_0x3b5855,_0x1eb6a9){const _0x3d05b5=a0_0x452695,_0x10fb4a={'tLsqt':function(_0x3b18a1,_0x2cb082){return _0x3b18a1(_0x2cb082);},'bHCNU':_0x3d05b5(0x1e0),'amqol':function(_0x57e800,_0x2f37a5){return _0x57e800===_0x2f37a5;}},_0x1a03fd=this['getDbUtils']();if(!_0x1a03fd)return;const _0x4ba958=this['getDbType'](),_0x49dbf2=_0x1eb6a9?_0x10fb4a[_0x3d05b5(0x1b0)](String,_0x1eb6a9)[_0x3d05b5(0x162)](0x0,0x1f4):null;try{if(_0x4ba958===_0x10fb4a['bHCNU'])await _0x1a03fd[_0x3d05b5(0x1c1)](_0x3d05b5(0x12d),[_0x3b5855,_0x49dbf2,_0x580a0d]);else _0x10fb4a['amqol'](_0x4ba958,_0x3d05b5(0x233))?await _0x1a03fd['executeQuery'](_0x3d05b5(0x20d),[_0x3b5855,_0x49dbf2,_0x580a0d]):await _0x1a03fd[_0x3d05b5(0x1c1)](_0x3d05b5(0x229),[_0x3b5855,_0x49dbf2,_0x580a0d]);}catch(_0x17da21){logger[_0x3d05b5(0x127)]({'event':_0x3d05b5(0x12a),'historyId':_0x580a0d,'error':_0x17da21[_0x3d05b5(0x189)]},_0x3d05b5(0x183)+_0x17da21[_0x3d05b5(0x189)]);}}async[a0_0x452695(0x157)](_0x4043cf,_0x3415f4,_0x1d3d9e,_0x4e6058,_0x473142){const _0x78ba88=a0_0x452695,_0x531a0a={'OupkH':function(_0x3f2d02,_0x408b3e){return _0x3f2d02(_0x408b3e);},'qEKCI':function(_0x41e23e,_0x3a6bb4){return _0x41e23e||_0x3a6bb4;}},_0x115a4d=this[_0x78ba88(0x21c)]();if(!_0x115a4d)return;const _0x4b656a=this[_0x78ba88(0x190)](),_0x543ed9=_0x4e6058?_0x531a0a['OupkH'](String,_0x4e6058)[_0x78ba88(0x162)](0x0,0x3e8):null,_0x13888c=_0x473142?_0x531a0a[_0x78ba88(0x1fe)](String,_0x473142)['substring'](0x0,0xfa0):null;try{if(_0x4b656a===_0x78ba88(0x1e0))await _0x115a4d['executeQuery']('UPDATE\x20job_history\x20SET\x20status\x20=\x20\x27failed\x27,\x20completed_at\x20=\x20SYSTIMESTAMP,\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',[_0x3415f4,_0x531a0a['qEKCI'](_0x1d3d9e,0x0),_0x543ed9,_0x13888c,_0x4043cf]);else _0x4b656a==='mysql'?await _0x115a4d['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?',[_0x3415f4,_0x531a0a[_0x78ba88(0x129)](_0x1d3d9e,0x0),_0x543ed9,_0x13888c,_0x4043cf]):await _0x115a4d[_0x78ba88(0x1c1)]('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',[_0x3415f4,_0x1d3d9e||0x0,_0x543ed9,_0x13888c,_0x4043cf]);}catch(_0x4912b0){logger[_0x78ba88(0x127)]({'event':_0x78ba88(0x17e),'historyId':_0x4043cf,'error':_0x4912b0[_0x78ba88(0x189)]},'Failed\x20to\x20update\x20job\x20history\x20(failed):\x20'+_0x4912b0[_0x78ba88(0x189)]);}}async[a0_0x452695(0x1ef)](_0x50bb35,_0x4ff0ba){const _0x4997a9=a0_0x452695,_0x7a3d31={'huDkw':function(_0x51a4e9,_0x53c2e6){return _0x51a4e9===_0x53c2e6;}},_0x3d22a5=this['getDbUtils']();if(!_0x3d22a5)return;const _0x32920c=this[_0x4997a9(0x190)]();try{if(_0x32920c==='oracle')await _0x3d22a5[_0x4997a9(0x1c1)](_0x4997a9(0x122),[_0x4ff0ba,_0x50bb35]);else _0x7a3d31['huDkw'](_0x32920c,_0x4997a9(0x233))?await _0x3d22a5['executeQuery']('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20?,\x20last_run_at\x20=\x20NOW()\x20WHERE\x20job_name\x20=\x20?',[_0x4ff0ba,_0x50bb35]):await _0x3d22a5['executeQuery']('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',[_0x4ff0ba,_0x50bb35]);}catch(_0x28307c){}}async[a0_0x452695(0x182)](_0x29b1e5,_0xef0e93,_0x3b5f4f,_0x3d3a29){const _0x31baf3=a0_0x452695,_0xa68d49={'tpcaC':function(_0x344122,_0x311a63){return _0x344122===_0x311a63;},'MtIVa':'total_success','mcWXC':function(_0x501fae,_0x4cc2dc){return _0x501fae===_0x4cc2dc;},'urXRF':_0x31baf3(0x233),'pWaPZ':_0x31baf3(0x19f)},_0xed2da9=this[_0x31baf3(0x21c)]();if(!_0xed2da9)return;const _0x3c1487=this['getDbType'](),_0x16ac91=_0xa68d49['tpcaC'](_0xef0e93,_0x31baf3(0x224))?_0xa68d49['MtIVa']:'total_failed';try{if(_0xa68d49[_0x31baf3(0x1ac)](_0x3c1487,_0x31baf3(0x1e0)))await _0xed2da9[_0x31baf3(0x1c1)]('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20:1,\x20last_duration_ms\x20=\x20:2,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x16ac91+'\x20=\x20'+_0x16ac91+_0x31baf3(0x153),[_0xef0e93,_0x3b5f4f,_0x3d3a29,_0x29b1e5]);else _0x3c1487===_0xa68d49[_0x31baf3(0x16c)]?await _0xed2da9[_0x31baf3(0x1c1)](_0x31baf3(0x171)+_0x16ac91+_0x31baf3(0x141)+_0x16ac91+'\x20+\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20next_run_at\x20=\x20?\x20WHERE\x20job_name\x20=\x20?',[_0xef0e93,_0x3b5f4f,_0x3d3a29,_0x29b1e5]):await _0xed2da9['executeQuery'](_0x31baf3(0x16f)+_0x16ac91+'\x20=\x20'+_0x16ac91+'\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',[_0xef0e93,_0x3b5f4f,_0x3d3a29,_0x29b1e5]);}catch(_0x3b56d0){logger['warn']({'event':_0xa68d49[_0x31baf3(0x217)],'jobName':_0x29b1e5,'error':_0x3b56d0[_0x31baf3(0x189)]},_0x31baf3(0x1d8)+_0x3b56d0['message']);}}async[a0_0x452695(0x1fb)](_0x269bfd){const _0x43f564=a0_0x452695,_0xfec43a={'osRIx':function(_0x54453b,_0x5e9784){return _0x54453b!==_0x5e9784;},'uidYP':_0x43f564(0x1de),'fQHJI':function(_0x20b3b8,_0x44866e){return _0x20b3b8===_0x44866e;},'vAyDD':'default'},_0x3ae818=this['jobConfigs'][_0x269bfd];if(!_0x3ae818||_0xfec43a[_0x43f564(0x136)](_0x3ae818[_0x43f564(0x24e)],_0xfec43a['uidYP'])||_0xfec43a['fQHJI'](_0x3ae818['enabled'],![]))return null;const _0x208637=this[_0x43f564(0x1f7)][_0x3ae818[_0x43f564(0x12c)]||_0xfec43a['vAyDD']];if(!_0x208637)return null;try{if(typeof _0x208637[_0x43f564(0x15c)]===_0x43f564(0x1df)){const _0x4b4333=await _0x208637['getJobSchedulers'](0x0,0x64),_0x2a2130=_0x4b4333['find'](_0x421c10=>_0x421c10['name']===_0x269bfd);return _0x2a2130?.['next']?new Date(_0x2a2130['next']):null;}}catch(_0x323e2b){}return null;}async['setAllJobsOffline'](){const _0x2774e9=a0_0x452695,_0x1dfde4={'dfHVx':function(_0x52fe3a,_0x2c39fc){return _0x52fe3a===_0x2c39fc;}},_0x158a67=this[_0x2774e9(0x21c)]();if(!_0x158a67)return;const _0x36eaef=this['getDbType']();try{if(_0x36eaef==='oracle')await _0x158a67[_0x2774e9(0x1c1)](_0x2774e9(0x212));else _0x1dfde4['dfHVx'](_0x36eaef,'mysql')?await _0x158a67['executeQuery'](_0x2774e9(0x14a)):await _0x158a67[_0x2774e9(0x1c1)]('UPDATE\x20job_registry\x20SET\x20status\x20=\x20\x27offline\x27,\x20next_run_at\x20=\x20NULL,\x20updated_at\x20=\x20NOW()');}catch(_0x506084){logger[_0x2774e9(0x127)]({'event':_0x2774e9(0x18c),'error':_0x506084['message']},_0x2774e9(0x152)+_0x506084['message']);}}['getDbUtils'](){const _0x18a046=a0_0x452695,_0x23380c={'rnAEk':function(_0x54ca08,_0x1c8726){return _0x54ca08(_0x1c8726);},'uXTMY':_0x18a046(0x1bc),'drzQM':'Oracle\x20DB\x20module\x20not\x20available','OXTcB':function(_0x2bf102,_0x159a6a){return _0x2bf102===_0x159a6a;},'fDitG':_0x18a046(0x201),'AWsfo':function(_0x3ef9ba,_0x17a074){return _0x3ef9ba(_0x17a074);},'pUIVA':_0x18a046(0x24a),'qTBJN':_0x18a046(0x1e8),'mbMzS':_0x18a046(0x14d)},_0x46e893=(process[_0x18a046(0x242)][_0x18a046(0x248)]||'postgresql')[_0x18a046(0x147)]();if(_0x46e893===_0x18a046(0x1e0))try{const _0x2313e2=_0x23380c[_0x18a046(0x16b)](require,_0x23380c[_0x18a046(0x17f)]);return{'executeQuery':(_0x4d5acb,_0x2dab9e)=>_0x2313e2['executeQuery'](_0x4d5acb,_0x2dab9e),'executeTransaction':_0x4c5e50=>_0x2313e2['executeTransaction'](_0x4c5e50),'getPool':()=>_0x2313e2[_0x18a046(0x203)]()};}catch(_0x352396){return logger['warn']({'event':'db_oracle_unavailable'},_0x23380c[_0x18a046(0x15e)]),null;}if(_0x23380c['OXTcB'](_0x46e893,_0x18a046(0x233)))try{const _0x25d3f9=_0x23380c[_0x18a046(0x16b)](require,'../../utils/db-mysql');return{'executeQuery':(_0x515f03,_0x53d6fb)=>_0x25d3f9[_0x18a046(0x1c1)](_0x515f03,_0x53d6fb),'executeTransaction':_0x2c57f5=>_0x25d3f9[_0x18a046(0x19a)](_0x2c57f5),'getPool':()=>_0x25d3f9['getPool']()};}catch(_0xc250e7){return logger[_0x18a046(0x127)]({'event':_0x18a046(0x1db)},_0x23380c[_0x18a046(0x174)]),null;}try{const _0x2b3db9=_0x23380c[_0x18a046(0x1d6)](require,_0x23380c[_0x18a046(0x215)]);return{'executeQuery':_0x2b3db9[_0x18a046(0x1c1)],'executeTransaction':_0x2b3db9['executeTransaction'],'getPool':_0x2b3db9['getPool']};}catch(_0x43b26f){return logger['warn']({'event':_0x23380c['qTBJN']},_0x23380c[_0x18a046(0x1fc)]),null;}}[a0_0x452695(0x1ff)](){const _0x148ec2=a0_0x452695,_0x434b7f={'FQzIv':'../../utils/redis-client'};try{const _0x3bd64e=require(_0x434b7f[_0x148ec2(0x17d)]);return _0x3bd64e['getClient']?_0x3bd64e[_0x148ec2(0x160)]():_0x3bd64e;}catch(_0x3f2ee3){return null;}}[a0_0x452695(0x181)](){const _0x1a8d13=a0_0x452695;try{if(process[_0x1a8d13(0x242)]['KAFKA_ENABLED']==='true'){const _0x3c892d=require(_0x1a8d13(0x14e));return _0x3c892d['getInstance']?_0x3c892d['getInstance']():_0x3c892d;}}catch(_0x305a6a){}return null;}['getCacheManager'](){const _0xeb8f94=a0_0x452695,_0x1ebf0e={'AyKjc':_0xeb8f94(0x209)};try{return require(_0x1ebf0e[_0xeb8f94(0x239)]);}catch(_0x1dd81d){return null;}}async[a0_0x452695(0x206)](_0x558e2,_0x32d3ac={}){const _0x33264b=a0_0x452695,_0x3c1284={'TdmRY':_0x33264b(0x16a),'OFuMh':_0x33264b(0x194),'Qolgd':'exponential'},_0x21e00c=this['jobConfigs'][_0x558e2];if(!_0x21e00c)throw new Error(_0x33264b(0x205)+_0x558e2);const _0x5c8264=this['queues'][_0x21e00c[_0x33264b(0x12c)]||_0x3c1284[_0x33264b(0x223)]],_0x5c793a=await _0x5c8264['add'](_0x558e2,{..._0x32d3ac,'handler':_0x21e00c[_0x33264b(0x123)],'triggeredBy':_0x3c1284['OFuMh']},{'attempts':_0x21e00c['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x21e00c[_0x33264b(0x24c)]?.['backoff']||_0x3c1284[_0x33264b(0x146)],'delay':_0x21e00c['retry']?.['initialDelay']||0x1388},'timeout':_0x21e00c[_0x33264b(0x1dd)]||0x7530});return logger[_0x33264b(0x121)]({'event':_0x33264b(0x22a),'jobId':_0x5c793a['id'],'name':_0x558e2,'triggeredBy':_0x3c1284[_0x33264b(0x187)]},'Job\x20dispatched:\x20'+_0x558e2+_0x33264b(0x1b3)+_0x5c793a['id']+')'),{'jobId':_0x5c793a['id'],'name':_0x558e2};}async[a0_0x452695(0x18d)](_0x537964,_0x5661d9={},_0x2aa051=0x0){const _0x9bf375=a0_0x452695,_0xaf81ae={'PjMEQ':'api-delayed','ljYdl':_0x9bf375(0x1c0)},_0x4ea2b5=this[_0x9bf375(0x210)][_0x537964];if(!_0x4ea2b5)throw new Error(_0x9bf375(0x205)+_0x537964);const _0x4f0034=this['queues'][_0x4ea2b5[_0x9bf375(0x12c)]||'default'],_0x389358=await _0x4f0034['add'](_0x537964,{..._0x5661d9,'handler':_0x4ea2b5[_0x9bf375(0x123)],'triggeredBy':_0xaf81ae[_0x9bf375(0x1e3)]},{'delay':_0x2aa051,'attempts':_0x4ea2b5[_0x9bf375(0x24c)]?.[_0x9bf375(0x19e)]||0x3,'backoff':{'type':_0x4ea2b5['retry']?.[_0x9bf375(0x243)]||_0xaf81ae[_0x9bf375(0x14c)],'delay':_0x4ea2b5[_0x9bf375(0x24c)]?.[_0x9bf375(0x154)]||0x1388},'timeout':_0x4ea2b5['timeout']||0x7530});return logger[_0x9bf375(0x121)]({'event':_0x9bf375(0x1f2),'jobId':_0x389358['id'],'name':_0x537964,'delayMs':_0x2aa051},_0x9bf375(0x20f)+_0x2aa051+_0x9bf375(0x198)+_0x537964+'\x20(id:\x20'+_0x389358['id']+')'),{'jobId':_0x389358['id'],'name':_0x537964};}async[a0_0x452695(0x159)](_0x1d4a48){const _0x540a85=a0_0x452695;for(const _0x2c1ae0 of Object['values'](this['queues'])){const _0x3da232=await _0x2c1ae0['getJob'](_0x1d4a48);if(_0x3da232){const _0x3fb44b=await _0x3da232[_0x540a85(0x23e)]();return{'jobId':_0x3da232['id'],'name':_0x3da232[_0x540a85(0x188)],'state':_0x3fb44b,'progress':_0x3da232['progress'],'attemptsMade':_0x3da232['attemptsMade'],'failedReason':_0x3da232['failedReason'],'returnvalue':_0x3da232['returnvalue'],'data':_0x3da232[_0x540a85(0x1c8)],'timestamps':{'created':_0x3da232['timestamp'],'started':_0x3da232[_0x540a85(0x186)],'completed':_0x3da232[_0x540a85(0x20b)]}};}}return null;}['listJobs'](){const _0x4eeeb4=a0_0x452695;return Object['values'](this[_0x4eeeb4(0x210)])['map'](_0x13e9ee=>({'name':_0x13e9ee[_0x4eeeb4(0x188)],'description':_0x13e9ee[_0x4eeeb4(0x1a9)]||'','type':_0x13e9ee[_0x4eeeb4(0x24e)],'schedule':_0x13e9ee[_0x4eeeb4(0x175)],'handler':_0x13e9ee[_0x4eeeb4(0x123)],'enabled':_0x13e9ee[_0x4eeeb4(0x1e5)]!==![],'queue':_0x13e9ee['queue']||'default','timeout':_0x13e9ee[_0x4eeeb4(0x1dd)]||0x7530,'retry':_0x13e9ee[_0x4eeeb4(0x24c)]||{'maxAttempts':0x3,'backoff':_0x4eeeb4(0x1c0),'initialDelay':0x1388},'metadata':_0x13e9ee[_0x4eeeb4(0x150)]||{}}));}async['listRunning'](){const _0x38551c=a0_0x452695,_0x1b0aa4=[];for(const [_0x54e5e0,_0x126201]of Object[_0x38551c(0x124)](this[_0x38551c(0x1f7)])){const _0x5e8ba8=await _0x126201['getJobs']([_0x38551c(0x1af)]);for(const _0x36f2ae of _0x5e8ba8){_0x1b0aa4[_0x38551c(0x1e7)]({'jobId':_0x36f2ae['id'],'name':_0x36f2ae['name'],'queue':_0x54e5e0,'progress':_0x36f2ae[_0x38551c(0x137)],'attemptsMade':_0x36f2ae['attemptsMade'],'startedAt':_0x36f2ae[_0x38551c(0x186)]});}}return _0x1b0aa4;}async['getHistory'](_0x1264df={}){const _0x1d1d64=a0_0x452695,_0x5822b2={'EQqRm':function(_0x450dab,_0xca443e,_0x2b7e83){return _0x450dab(_0xca443e,_0x2b7e83);},'VFBwy':function(_0x314e32,_0x391f09){return _0x314e32-_0x391f09;},'YIZlk':function(_0x256c10,_0x1e4aa6){return _0x256c10+_0x1e4aa6;}},_0x2202b7=parseInt(_0x1264df[_0x1d1d64(0x15a)],0xa)||0x1,_0x310861=Math['min'](_0x5822b2['EQqRm'](parseInt,_0x1264df['limit'],0xa)||0x14,0x64),_0x1c2d5b=_0x5822b2['VFBwy'](_0x2202b7,0x1)*_0x310861,_0x178643=_0x5822b2[_0x1d1d64(0x231)](_0x1c2d5b,_0x310861)-0x1,_0x2fc231=[];for(const [_0x159683,_0x54b210]of Object[_0x1d1d64(0x124)](this['queues'])){const _0x4105b4=await _0x54b210[_0x1d1d64(0x156)](['completed'],_0x1c2d5b,_0x178643),_0x59f00b=await _0x54b210['getJobs']([_0x1d1d64(0x1d4)],_0x1c2d5b,_0x178643);for(const _0x54f629 of[..._0x4105b4,..._0x59f00b]){const _0x246d0f=await _0x54f629['getState']();_0x2fc231[_0x1d1d64(0x1e7)]({'jobId':_0x54f629['id'],'name':_0x54f629['name'],'state':_0x246d0f,'queue':_0x159683,'attemptsMade':_0x54f629['attemptsMade'],'failedReason':_0x54f629['failedReason'],'returnvalue':_0x54f629[_0x1d1d64(0x208)],'timestamps':{'created':_0x54f629[_0x1d1d64(0x1ad)],'started':_0x54f629[_0x1d1d64(0x186)],'completed':_0x54f629['finishedOn']}});}}return _0x2fc231[_0x1d1d64(0x232)]((_0x3d040d,_0x1068a3)=>(_0x1068a3[_0x1d1d64(0x240)][_0x1d1d64(0x24b)]||0x0)-(_0x3d040d[_0x1d1d64(0x240)]['created']||0x0)),{'jobs':_0x2fc231[_0x1d1d64(0x1ae)](0x0,_0x310861),'total':_0x2fc231[_0x1d1d64(0x142)],'page':_0x2202b7,'limit':_0x310861};}async[a0_0x452695(0x21a)](_0x108196){const _0x16c78c=a0_0x452695,_0x9b501f={'KIaOG':function(_0x2e6968,_0x3cc21c){return _0x2e6968===_0x3cc21c;},'eAQmT':_0x16c78c(0x1af),'EcgDY':_0x16c78c(0x19c),'JMRkH':'api-cancel','lUyXQ':'waiting'};for(const _0x58378b of Object['values'](this['queues'])){const _0x4ddb42=await _0x58378b[_0x16c78c(0x1a2)](_0x108196);if(_0x4ddb42){const _0x4a1e8f=await _0x4ddb42[_0x16c78c(0x23e)]();if(_0x9b501f[_0x16c78c(0x131)](_0x4a1e8f,_0x9b501f['eAQmT']))return await _0x4ddb42[_0x16c78c(0x1da)](new Error(_0x9b501f['EcgDY']),_0x9b501f[_0x16c78c(0x15b)],!![]),{'success':!![],'message':'Job\x20'+_0x108196+_0x16c78c(0x1b1)};if(_0x4a1e8f===_0x9b501f['lUyXQ']||_0x4a1e8f==='delayed')return await _0x4ddb42[_0x16c78c(0x17c)](),{'success':!![],'message':'Job\x20'+_0x108196+'\x20removed\x20(was\x20'+_0x4a1e8f+')'};return{'success':![],'message':_0x16c78c(0x12e)+_0x108196+_0x16c78c(0x1a7)+_0x4a1e8f+')'};}}return{'success':![],'message':'Job\x20'+_0x108196+'\x20not\x20found'};}async[a0_0x452695(0x247)](){const _0x3d842e=a0_0x452695,_0x15d3de={'MRoSC':'active','ibHdk':_0x3d842e(0x226)},_0x55575c={};for(const [_0x330438,_0x169ac1]of Object['entries'](this[_0x3d842e(0x1f7)])){try{const _0x51b938=await _0x169ac1['getJobCounts'](_0x15d3de['MRoSC'],'completed','delayed',_0x3d842e(0x1d4),_0x3d842e(0x22e),_0x15d3de[_0x3d842e(0x1a5)]);_0x55575c[_0x330438]=_0x51b938;}catch(_0x438a11){_0x55575c[_0x330438]={'error':_0x438a11[_0x3d842e(0x189)]};}}const _0x13489f={};for(const [_0x204f08,_0xe0e925]of Object['entries'](this['workers'])){_0x13489f[_0x204f08]={'running':_0xe0e925['isRunning'](),'paused':_0xe0e925['isPaused']()};}return{'initialized':this[_0x3d842e(0x1a0)],'registeredJobs':Object['keys'](this['jobConfigs'])[_0x3d842e(0x142)],'redisConnections':this['connections'][_0x3d842e(0x142)],'queues':_0x55575c,'workers':_0x13489f};}async['onJobCompleted'](_0x135284,_0x356594){const _0x2b3441=a0_0x452695,_0x33b7fa={'WCxdj':function(_0x266d90,_0x574d14){return _0x266d90-_0x574d14;},'InyrB':_0x2b3441(0x241),'WWIXM':_0x2b3441(0x1aa)},_0x138bf8=logger['child']({'jobId':_0x135284['id'],'jobName':_0x135284['name']});_0x138bf8['info']({'event':_0x2b3441(0x249),'attemptsMade':_0x135284[_0x2b3441(0x18a)],'duration':_0x135284[_0x2b3441(0x20b)]?_0x135284[_0x2b3441(0x20b)]-_0x135284['processedOn']:null},'Job\x20completed:\x20'+_0x135284[_0x2b3441(0x188)]);const _0x3691bc=this[_0x2b3441(0x125)]['get'](_0x135284['id']);if(_0x3691bc){if(_0x3691bc['insertPromise'])await _0x3691bc[_0x2b3441(0x1c5)];const _0x3ae7dd=_0x135284['finishedOn']&&_0x135284[_0x2b3441(0x186)]?_0x33b7fa[_0x2b3441(0x1a8)](_0x135284[_0x2b3441(0x20b)],_0x135284['processedOn']):null,_0x6154bb=typeof _0x356594===_0x2b3441(0x184)?_0x356594:_0x356594?JSON['stringify'](_0x356594)['substring'](0x0,0x1f4):null;await this['updateJobHistoryCompleted'](_0x3691bc['historyId'],_0x3ae7dd,_0x6154bb);const _0x3152a4=await this[_0x2b3441(0x1fb)](_0x135284[_0x2b3441(0x188)]);await this[_0x2b3441(0x182)](_0x135284[_0x2b3441(0x188)],_0x2b3441(0x224),_0x3ae7dd,_0x3152a4),this['activeHistoryIds']['delete'](_0x135284['id']);}const _0x94c71c=getComponentEngine();if(_0x94c71c&&typeof _0x94c71c[_0x2b3441(0x164)]===_0x2b3441(0x1df)){const _0x5be55b={'jobId':_0x135284['id'],'jobName':_0x135284[_0x2b3441(0x188)],'result':_0x356594,'config':this['jobConfigs'][_0x135284[_0x2b3441(0x188)]]||{}};_0x94c71c['executeEventHandlers'](_0x33b7fa['InyrB'],_0x5be55b,![])[_0x2b3441(0x185)](_0x37a7a7=>{const _0x228581=_0x2b3441;_0x138bf8[_0x228581(0x127)]({'event':'after_job_complete_hook_error','error':_0x37a7a7['message']},'onAfterJobComplete\x20handler\x20error\x20(non-blocking)');});}const _0x402c8e=this[_0x2b3441(0x181)]();if(_0x402c8e)try{await _0x402c8e[_0x2b3441(0x1f6)](_0x2b3441(0x128),_0x2b3441(0x199),null,{'jobId':_0x135284['id'],'name':_0x135284['name'],'result':_0x356594},{'module':_0x33b7fa['WWIXM'],'endpoint':_0x135284['name']});}catch(_0x2ffc16){_0x138bf8['warn']({'event':'job_kafka_publish_error','error':_0x2ffc16[_0x2b3441(0x189)]},_0x2b3441(0x23f));}}async[a0_0x452695(0x15f)](_0x39e743,_0x403a84){const _0x80976e=a0_0x452695,_0x3f6ced={'mkvKU':'after_job_failed_hook_error','LfgpA':function(_0x5b429a,_0x496e4f){return _0x5b429a<_0x496e4f;},'vAtWC':'failed','rUznb':function(_0x2734af,_0x232415){return _0x2734af===_0x232415;},'sCBsl':'function','tldSY':'onAfterJobFailed','vpCCE':_0x80976e(0x1b6),'oANNa':_0x80976e(0x1d5)},_0x5bce91=logger[_0x80976e(0x1c7)]({'jobId':_0x39e743['id'],'jobName':_0x39e743[_0x80976e(0x188)]});_0x5bce91['error']({'event':'job_failed','attemptsMade':_0x39e743[_0x80976e(0x18a)],'failedReason':_0x403a84?.[_0x80976e(0x189)],'willRetry':_0x3f6ced[_0x80976e(0x167)](_0x39e743[_0x80976e(0x18a)],this['jobConfigs'][_0x39e743['name']]?.['retry']?.['maxAttempts']||0x3)},_0x80976e(0x207)+_0x39e743[_0x80976e(0x188)]+'\x20—\x20'+_0x403a84?.[_0x80976e(0x189)]);const _0x1c979e=this[_0x80976e(0x125)][_0x80976e(0x200)](_0x39e743['id']);if(_0x1c979e){if(_0x1c979e['insertPromise'])await _0x1c979e['insertPromise'];const _0x3188bd=_0x39e743[_0x80976e(0x20b)]&&_0x39e743[_0x80976e(0x186)]?_0x39e743['finishedOn']-_0x39e743['processedOn']:null;await this['updateJobHistoryFailed'](_0x1c979e[_0x80976e(0x196)],_0x3188bd,_0x39e743['progress'],_0x403a84?.['message'],_0x403a84?.[_0x80976e(0x132)]);const _0x5cff8c=await this['getNextRunFromBullMQ'](_0x39e743['name']);await this[_0x80976e(0x182)](_0x39e743[_0x80976e(0x188)],_0x3f6ced[_0x80976e(0x144)],_0x3188bd,_0x5cff8c),this[_0x80976e(0x125)][_0x80976e(0x1a6)](_0x39e743['id']);}const _0x2449c4=getComponentEngine();if(_0x2449c4&&_0x3f6ced[_0x80976e(0x16e)](typeof _0x2449c4['executeEventHandlers'],_0x3f6ced['sCBsl'])){const _0x5b63fb={'jobId':_0x39e743['id'],'jobName':_0x39e743['name'],'error':_0x403a84?.[_0x80976e(0x189)],'attemptsMade':_0x39e743['attemptsMade'],'config':this['jobConfigs'][_0x39e743[_0x80976e(0x188)]]||{}};_0x2449c4['executeEventHandlers'](_0x3f6ced[_0x80976e(0x17b)],_0x5b63fb,![])[_0x80976e(0x185)](_0xc2d08a=>{const _0x42a5d8=_0x80976e;_0x5bce91['warn']({'event':_0x3f6ced[_0x42a5d8(0x1fd)],'error':_0xc2d08a['message']},_0x42a5d8(0x20e));});}const _0x281809=this['getKafkaService']();if(_0x281809)try{await _0x281809[_0x80976e(0x1f6)](_0x80976e(0x1ed),_0x3f6ced[_0x80976e(0x1b9)],null,{'jobId':_0x39e743['id'],'name':_0x39e743[_0x80976e(0x188)],'error':_0x403a84?.['message'],'attemptsMade':_0x39e743[_0x80976e(0x18a)]},{'module':'job-scheduler','endpoint':_0x39e743[_0x80976e(0x188)]});}catch(_0x77f288){_0x5bce91[_0x80976e(0x127)]({'event':_0x3f6ced['oANNa'],'error':_0x77f288[_0x80976e(0x189)]},'Failed\x20to\x20publish\x20JOB_FAILED\x20to\x20Kafka');}}['onJobProgress'](_0x3f589c,_0x1c9f6f){const _0x1edebe=a0_0x452695;logger[_0x1edebe(0x18e)]({'event':_0x1edebe(0x191),'jobId':_0x3f589c['id'],'jobName':_0x3f589c['name'],'progress':_0x1c9f6f},'Job\x20progress:\x20'+_0x3f589c[_0x1edebe(0x188)]+'\x20—\x20'+_0x1c9f6f+'%');}}module[a0_0x452695(0x1fa)]=new JobManager();
1
+ const a0_0x3fbacf=a0_0x42d2;(function(_0x378c97,_0x50094a){const _0x29bd0a=a0_0x42d2,_0x11a2ff=_0x378c97();while(!![]){try{const _0x4f53e1=-parseInt(_0x29bd0a(0x213))/0x1+parseInt(_0x29bd0a(0x2c8))/0x2*(-parseInt(_0x29bd0a(0x1b4))/0x3)+-parseInt(_0x29bd0a(0x1b1))/0x4+-parseInt(_0x29bd0a(0x1e6))/0x5*(-parseInt(_0x29bd0a(0x230))/0x6)+parseInt(_0x29bd0a(0x286))/0x7*(-parseInt(_0x29bd0a(0x2ce))/0x8)+parseInt(_0x29bd0a(0x1cc))/0x9*(parseInt(_0x29bd0a(0x2aa))/0xa)+parseInt(_0x29bd0a(0x21e))/0xb;if(_0x4f53e1===_0x50094a)break;else _0x11a2ff['push'](_0x11a2ff['shift']());}catch(_0x1ca4a1){_0x11a2ff['push'](_0x11a2ff['shift']());}}}(a0_0x4ffc,0xf1f40));const {Queue,Worker}=require(a0_0x3fbacf(0x2ca)),Redis=require('ioredis'),crypto=require(a0_0x3fbacf(0x21a)),{v7:uuidv7}=require('uuid'),fs=require('fs'),path=require(a0_0x3fbacf(0x2b3)),{logger}=require(a0_0x3fbacf(0x1ff)),jobValidator=require('./job-validator');let componentEngine=null;function getComponentEngine(){if(!componentEngine)try{const _0x79412f=require('../../utils/component-engine');componentEngine=_0x79412f['componentEngine']||_0x79412f;}catch(_0xbca6c5){}return componentEngine;}function a0_0x4ffc(){const _0x180bf4=['Dw5RBM93BG','mty3otGZm1LyELnRua','AM9IlxnJAgvKDwXLCG','z2v0sM9Iq291BNrZ','zgjFB3jHy2XLx3vUyxzHAwXHyMXL','z2v0sgLZDg9YEq','z2v0s2fMA2ftzxj2AwnL','AM9Ix21HBMfNzxjFAw5PDf9ZDgfYDa','y3j5ChrV','DKHqsu0','zxHLy3v0zvf1zxj5','mYbcDwXStveGv29YA2vYCYbJCMvHDgvKicHJB25JDxjYzw5JEtOG','ntu3mteYnJbhEK9uEvK','CxvLDwvZ','zMLSDgvY','z2v0rgjvDgLSCW','DhLWzq','sK9cx0zbsuXfrf9srvrftLrjt05Fse9vuLm','CgLK','DxbZzxj0sM9IuMvNAxn0CNK','C3vJy2vZCW','CMvZDgzVCMDLlMPVyNmUy29TCgXLDgvK','BxLZCwW','Bg9HzePVyKnVBMzPz3m','B3jHy2XLlNnXBa','B1PksNy','qw1lyNK','s2rJu2i','AM9Ix2nVBMzPz19WyxjZzv9LCNjVCG','ig5VDcbMB3vUza','nKPKrfzNCW','yLnqr3m','zurXv3u','sM9IignVBxbSzxrLzdOG','zMLUAxnOzwrpBG','Aw5JBhvKzxm','D29YA2vYCW','DgLTzw91Da','AM9Ix3jLz2LZDhj5x3vWC2vYDf9LCNjVCG','zxHPC3rZu3LUyW','rMfPBgvKihrVihb1yMXPC2GGsK9cx0nptvbmrvrfrcb0BYblywzRyq','C3rYAw5NAwz5','wuzeyu4','yNvSBg1Xx3DVCMTLCL9LCNjVCG','B25kB2jgywLSzwq','C3bSAxq','zw52','CxvLDwu','B25kB2jdB21WBgv0zwq','D2fPDgLUzW','D0DorMu','C2H1DgrVD24','AgfUzgXLCG','AM9Ix2THzMTHx3b1yMXPC2HFzxjYB3i','C3jJ','B25kB2jqCM9NCMvZCW','lIbeqIbTB25PDg9YAw5NigrPC2fIBgvKlG','y2fUy2vSsM9I','B3jHy2XL','sK14ze4','C3vIC3rYAw5N','AM9Ix21HBMfNzxjFC2H1DgrVD25Fy29TCgXLDgu','zxHLy3v0zuv2zw50sgfUzgXLCNm','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteW','y2XVC2u','C2nOzwr1Bgu','t1D2wKO','BMv4Da','ywXS','BxmPoIa','ifjLzgLZignVBM5Ly3rPB25Z','t01AzMC','reTkEK8','AgfUzgXLCNm','C3rYAw5N','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticGKmsWGjdiSicqZlcaKncWGjduSicDYDw5UAw5NjYWGjdySicq3lcaKocWGtK9xkcKSicq5lcbot1COksK','Cg1gCLK','AM9Ix2HPC3rVCNLFzMfPBgvKx2vYCM9Y','sgfUzgXLCIbUB3qGzM91BMqGzM9YigPVyJOG','AM9Ix2nVBMzPz19KAxjFBwLZC2LUzW','z2v0ug9VBa','Bwv0ywrHDge','AM9Ix3rHyMXLC19LBNn1CMvK','yNjZsMq','icHPzdOG','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticG/lca/lca/lca/lca/lcaNCNvUBMLUzYCSid8Sid8Sid8Sie5pvYGPlca/lcbot1COksK','DhjPBq','yMfJA29MzG','C3LZDgvT','lIbkB2iGu2nOzwr1BgvYihrPzgfRigfRyw4GywT0AwyU','AxnqyxvZzwq','Cu53u0W','ug5dvwm','C3bSAxrtCwXtDgf0zw1LBNrZ','zeDdrfi','ywz0zxjFAM9Ix2zHAwXLzf9OB29Rx2vYCM9Y','y29TCgXLDgvK','yNvPBgrdB250zxH0','rMfPBgvKihrVihnLDcbQB2jZig9MzMXPBMu6ia','DLvrzu4','s1nWuhe','AM9Ix3jLzgLZx2zHAwXLza','v0zZCK4','sM9IignVBMzPzYbPBNzHBgLKoIa','DxbKyxrLuhjVz3jLC3m','z0jTq3i','z2v0rgjuExbL','AM9Ix2rPC3bHDgnOzwq','Aw5Zzxj0sM9IsgLZDg9YEq','AM9Ix3f1zxvLC19JCMvHDgvK','DgLTzxn0yw1WCW','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsaKmsWGBgfZDf9KDxjHDgLVBL9TCYa9icqYlaOGicaGicaGicaGia','DxbKyxrLuMvNAxn0CNLtDgf0Dxm','y3jLyxrLqNvSBe1rq29UBMvJDgLVBG','ChvZAa','CgfYC2u','mte5CuXtANHY','AM9Ix3jLz2LZDgvYx2zHAwXLza','lI4VlI4VC2vYDMLJzxmVA2fMA2ftzxj2AwnL','AgLZDg9YEuLK','BM93','ueLUBg8','oMPVyG','D051zuu','ywXYzwfKEsbLEgLZDhm','uvHfExK','z2v0tMv4Dfj1BKzYB21cDwXStve','sK9cx0zbsuXfra','icHHDhrLBxb0ia','tffcs3m','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNzMfPBgvKjYWGy29TCgXLDgvKx2f0id0GtK9xkcKScIaGicaGicaGicaGzhvYyxrPB25FBxmGpsaKmsWGChjVz3jLC3mGpsaKmIWGzxjYB3jFBwvZC2fNzsa9icqZlcbLCNjVCL9ZDgfJAYa9icq0ifDirvjfigLKid0Gjdu','s1ziBu8','sK9cx01bwf9tvefmtevex0npvu5u','DMXgseC','sM9IigrPC3bHDgnOzwqGkgrLBgf5zwqG','jYb0AwrHAYbKAwr1A3vUzYb1BNr1AYbQB2iGBw9UAxrVCMLUzYb0ywjSzxm','icSGmsWkicaGicaGicaGicbUzxH0x3j1BL9HDca9idOZlcb1CgrHDgvKx2f0id0Gu1LtveLnrvnuqu1qifDirvjfigPVyL9Uyw1Lid0GoJq','z0XOuLC','ChjVz3jLC3m','sM9IignHBMnLBgXLzcbIEsbVBKjLzM9YzuPVyKv4zwn1Dgu6ia','sM9Iia','igPVyIbJB25MAwCOCYKGzNjVBsbWyxLSB2fKl2PVyNmV','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa/lcbSyxn0x3j1BL9HDca9ie5pvYGPifDirvjfigPVyL9Uyw1Lid0GpW','zgvIDwC','CxzAyui','AM9Ix2nVBMzPz3nFBg9HzgvK','qMfJA2DYB3vUzcbPBNnLCNqGAM9IigHPC3rVCNKGzMfPBgvKoIa','sK9pzgS','zMLUza','B3fzwgS','icSGmsWkicaGicaGicaGicbUzxH0x3j1BL9HDca9id8Gv0HfuKuGAM9Ix25HBwuGpsa/','DxbKyxrLsM9IsgLZDg9YEuzHAwXLza','mtmWAu5Xs3nH','qwLWu0G','Cg9ZDgDYzxnXBa','quXXq2q','q3PhEvq','uKvesvnFrei','sM9IigzHAwXLzdOG','AM9Ix3DVCMTLCNnFy3jLyxrLza','DhjPz2DLCMvKqNK','Cgf0Aa','zgvSyxLLza','C29YDa','rMfPBgvKihrVigLUC2vYDcbQB2iGAgLZDg9YEtOG','CKvKrMC','AM9Ix2nVBMzPz19PBNzHBgLK','sK9cx1jfreLtx1bsruzjwa','A2v5CW','uu92ywK','Dg9mB3DLCKnHC2u','AM9Ix25Vx2nVBMzPz3m','ktOG','y3jLyxrLza','zgLZCgf0y2G','ChjVy2vZC0PVyG','uNfWEgG','zxHLy3v0zvrYyw5Zywn0Aw9U','z2v0sw5ZDgfUy2u','AM9Ix2HPC3rVCNLFAw5Zzxj0x2jNx2vYCM9Y','v3jVvfK','BgLTAxq','mJe0AKHAt3jH','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','yNvSBg1X','CNvUBMLUzW','Aw5MBW','AM9Ix21HBMfNzxjFC2H1DgrVD25FC3rHCNq','ndqWmdu2AvbLt1j6','uvH6ueG','AM9Ix3jLz2LZDhj5x2nVDw50zxjFzxjYB3i','zw5HyMXLza','tuHbweq','C2XPy2u','A2vcv0i','lMPZB24','DgXVDvK','v3v2C28','yxr0zw1WDhnnywrL','se92Ehi','uKTQqNa','rwvzrMy','uMvKAxmGy29UBMvJDgLVBIbMywLSzwq6ia','ufbntu0','rejFvfLqrq','Bwf4qxr0zw1WDhm','zMfPBgvKuMvHC29U','nZe5mtC2ogfvBxvHsW','yNPpwei','BwvZC2fNzq','mte5nZniC0TcAgK','AM9Ix21HBMfNzxjFCMvHzhK','BwfW','ywrK','rxb4zKm','DxbKyxrLuMvNAxn0CNLdB3vUDgvYCW','z2v0sM9I','DMfSDwvZ','sw5PDgLHBgL6Aw5NiePVyIbnyw5Hz2vYlI4U','B3jHltaWotu1','yxbP','lI4VlI4VDxrPBhmVzgiTBxLZCwW','BwfUDwfS','DgLTzxn0yw1W','BgvUz3rO','rhnsu1e','D29YA2LUz0rPCG','CgLUzW','zMfPBgvK','t3fsq24','Aw5Zzxj0uhjVBwLZzq','Dhj1zq','sK9cx0nptvbmrvrfra','z2v0u3rHDgu','ndKXmty2zLfJDhLp','y2f0y2G','Cg9ZDgDYzxnXBc5ZCwW','wNzIrK0','sM9Iihn0ywXSzwq6ia','DMfSAwq','DMfSAwrHDgvdB25MAwC','Aw5PDgLHBerLBgf5','sM9Iie1HBMfNzxiGC2H1DgrVD24Gy29TCgXLDgu','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticG6msWGoJiSidOZlca6ncWGoJuSicDYDw5UAw5NjYWGoJySidO3lca6ocWGu1LtveLnrvnuqu1qlca6osWGu1LtveLnrvnuqu1qkq','yKHdDhq','AM9Iq29UzMLNCW','ywn0AxzLsgLZDg9YEuLKCW','zgvMyxvSDa','AM9Ix2zHAwXLza','CMv0DxjUDMfSDwu','r1DlALq','rMfPBgvKihrVihvWzgf0zsbQB2iGAgLZDg9YEsaOy29TCgXLDgvKktOG','zgvSzxrL','y29UBMvJDgLVBNm','sK9cx0nptKnvuLjftKnz','uKvesvnFueftu1DpuKq','BMfTzq','AM9PBG','y2T6C1a','sM9IigHHBMrSzxiGy29TCgXLDgvKoIa','mJG0mJq1C0Ptt1zv','D3bLAwi','q05wCLy','zw5KC1DPDgG','AM9Ix3n0yxj0zwq','ChjVy2vZC2vKt24','C3rHBgXLza','yNvSBg1XsM9Iswq','BurSyuu','id0G','D2fYBG','AM9Ix2vUC3vYzv90ywjSzxnFzxjYB3i','zw50CMLLCW','zgvZy3jPChrPB24','r3fVvNG','sM9Iihn0yxj0zwq6ia','ze53D1a','CMv0CNK','DgLTzxPVBMu','rMfPBgvKihrVihbHCNnLigPVyIbJB25MAwC6ia','ChvIBgLZAev2zw50','zgf0yq','zxjYB3i','igPVyIHZksbYzwDPC3rLCMvKlca','CMvHzezPBgvtEw5J','lI4VlI4VDxrPBhmVBg9Nz2vY','BeLYr0O','zxHWB25LBNrPywW','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa6msWGBgfZDf9YDw5FyxqGpsbtwvnusu1fu1rbtvaScIaGicaGicaGicaGDxbKyxrLzf9HDca9ifnzu1rjtuvtvefnucbxsevsrsbQB2jFBMfTzsa9idOY','EhLguuK','z0PzBKq','iokaLca','ufvkz3K','rgf0ywjHC2uGDgLKywSGDgvYC2vKAweSihnRAxaGyxv0BY1JCMvHDguGAM9IihrHyMXLCW','y3jVBG','wezowKu','C3fSlxnJCMLWDhm','B25czwzVCMvkB2jfEgvJDxrL','AM9Ix3n0ywXSzwq','Aw5PDgLHBgL6zwq','sK9cx1jfvevoveLptL9it1vsuW','AM9Ix2rPC3bHDgnOzwrFzgvSyxLLza','sM9Iie1HBMfNzxiGC3vKywGGzgLPBMLZAwfSAxnHC2KSihnRAxa','zNvUy3rPB24'];a0_0x4ffc=function(){return _0x180bf4;};return a0_0x4ffc();}function a0_0x42d2(_0x563f0c,_0x263931){_0x563f0c=_0x563f0c-0x1aa;const _0x4ffcf2=a0_0x4ffc();let _0x42d2d0=_0x4ffcf2[_0x563f0c];if(a0_0x42d2['WMBkSv']===undefined){var _0x238534=function(_0x282eb1){const _0x51be6a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xd75431='',_0x16d312='';for(let _0x3374c6=0x0,_0x33ed1e,_0x22bc41,_0x32cb22=0x0;_0x22bc41=_0x282eb1['charAt'](_0x32cb22++);~_0x22bc41&&(_0x33ed1e=_0x3374c6%0x4?_0x33ed1e*0x40+_0x22bc41:_0x22bc41,_0x3374c6++%0x4)?_0xd75431+=String['fromCharCode'](0xff&_0x33ed1e>>(-0x2*_0x3374c6&0x6)):0x0){_0x22bc41=_0x51be6a['indexOf'](_0x22bc41);}for(let _0x98e720=0x0,_0x4833d1=_0xd75431['length'];_0x98e720<_0x4833d1;_0x98e720++){_0x16d312+='%'+('00'+_0xd75431['charCodeAt'](_0x98e720)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x16d312);};a0_0x42d2['znYdVT']=_0x238534,a0_0x42d2['DdpetS']={},a0_0x42d2['WMBkSv']=!![];}const _0x51cc3c=_0x4ffcf2[0x0],_0x1fa4e3=_0x563f0c+_0x51cc3c,_0x470b8a=a0_0x42d2['DdpetS'][_0x1fa4e3];return!_0x470b8a?(_0x42d2d0=a0_0x42d2['znYdVT'](_0x42d2d0),a0_0x42d2['DdpetS'][_0x1fa4e3]=_0x42d2d0):_0x42d2d0=_0x470b8a,_0x42d2d0;}class JobManager{constructor(){const _0x548572=a0_0x3fbacf,_0x5e802f='2|7|1|5|0|6|4|3'['split']('|');let _0x35b007=0x0;while(!![]){switch(_0x5e802f[_0x35b007++]){case'0':this['connections']=[];continue;case'1':this['jobConfigs']={};continue;case'2':this[_0x548572(0x21f)]={};continue;case'3':this[_0x548572(0x1d8)]=new Map();continue;case'4':this['workingDir']=process['cwd']();continue;case'5':this['handlers']={};continue;case'6':this['initialized']=![];continue;case'7':this[_0x548572(0x236)]={};continue;}break;}}[a0_0x3fbacf(0x283)](){const _0x27d9a1=a0_0x3fbacf,_0x1efe0f={'dNwwP':function(_0xf14ba9,_0x2214a4,_0x343240){return _0xf14ba9(_0x2214a4,_0x343240);},'bzOXB':'error'},_0x1731eb=new Redis({'host':process['env']['REDIS_HOST']||'localhost','port':parseInt(process['env']['REDIS_PORT'],0xa)||0x18ec,'password':process['env'][_0x27d9a1(0x1e1)]||undefined,'db':_0x1efe0f[_0x27d9a1(0x1f6)](parseInt,process['env'][_0x27d9a1(0x2af)],0xa)||0x0,'maxRetriesPerRequest':null,'retryStrategy'(_0xc05326){const _0x47d5c1=Math['min'](_0xc05326*0x32,0x7d0);return _0x47d5c1;}});return _0x1731eb['on'](_0x1efe0f[_0x27d9a1(0x1b2)],_0x52577d=>{const _0x4bf367=_0x27d9a1;logger[_0x4bf367(0x1fc)]({'event':'bullmq_redis_error','error':_0x52577d[_0x4bf367(0x1b3)]},'BullMQ\x20Redis\x20connection\x20error:\x20'+_0x52577d['message']);}),this[_0x27d9a1(0x1df)]['push'](_0x1731eb),_0x1731eb;}async['initialize'](){const _0x4d377d=a0_0x3fbacf,_0x1fe7a1={'OWvZJ':_0x4d377d(0x20c),'Jjcls':_0x4d377d(0x210),'KdcSb':_0x4d377d(0x1bc),'cGsGw':'job_redis_connected','BMyjj':_0x4d377d(0x277),'MHAXD':_0x4d377d(0x1f1),'YwZKF':_0x4d377d(0x212),'mhHUa':'default','AmKby':function(_0x191670,_0x3bdd54,_0x1323d8){return _0x191670(_0x3bdd54,_0x1323d8);},'scfxT':function(_0x9f1ce,_0x44fc3a){return _0x9f1ce*_0x44fc3a;},'FCNSJ':_0x4d377d(0x27f),'wNueE':function(_0x35ff9f,_0xc951c,_0x42b2b1){return _0x35ff9f(_0xc951c,_0x42b2b1);},'QXzPH':function(_0x1b7dc1,_0x3fa87d,_0x36b6e7){return _0x1b7dc1(_0x3fa87d,_0x36b6e7);},'AoImo':'failed','ngElo':_0x4d377d(0x1ec)};if(this[_0x4d377d(0x20d)]){logger[_0x4d377d(0x1f0)]({'event':'job_manager_already_initialized'},_0x1fe7a1['Jjcls']);return;}logger[_0x4d377d(0x2cc)]({'event':_0x4d377d(0x219)},_0x1fe7a1[_0x4d377d(0x22d)]);const _0xd3a4af=this[_0x4d377d(0x283)]();try{await _0xd3a4af[_0x4d377d(0x1c5)](),logger['info']({'event':_0x1fe7a1['cGsGw']},'BullMQ\x20Redis\x20connection\x20verified');}catch(_0x448bc0){logger[_0x4d377d(0x1fc)]({'event':_0x1fe7a1['BMyjj'],'error':_0x448bc0['message']},_0x4d377d(0x1ac)+_0x448bc0['message']+_0x4d377d(0x26b));try{await _0xd3a4af['quit']();}catch(_0x5df115){}this[_0x4d377d(0x1df)]=this[_0x4d377d(0x1df)][_0x4d377d(0x220)](_0x5d3dac=>_0x5d3dac!==_0xd3a4af);return;}try{await _0xd3a4af['quit']();}catch(_0x5a2e7e){}this['connections']=this['connections'][_0x4d377d(0x220)](_0x2aef89=>_0x2aef89!==_0xd3a4af);try{await this['ensureTables']();}catch(_0x3ed739){logger[_0x4d377d(0x1f0)]({'event':_0x1fe7a1[_0x4d377d(0x2d2)],'error':_0x3ed739['message']},'Failed\x20to\x20ensure\x20job\x20tables:\x20'+_0x3ed739[_0x4d377d(0x1b3)]+_0x4d377d(0x24a));}const _0x1ca93f=this[_0x4d377d(0x229)]();_0x1ca93f['length']===0x0&&logger[_0x4d377d(0x2cc)]({'event':_0x4d377d(0x2bd)},'Tidak\x20ada\x20job\x20config\x20ditemukan\x20di\x20payload/jobs/.\x20Job\x20Manager\x20aktif\x20tanpa\x20cron.');const _0x249f25=[];for(const _0x3ee204 of _0x1ca93f){const _0x4ce322=jobValidator[_0x4d377d(0x1d2)](_0x3ee204,this['workingDir']);_0x4ce322[_0x4d377d(0x1d1)]?_0x249f25['push'](_0x3ee204):logger[_0x4d377d(0x1fc)]({'event':_0x4d377d(0x2b8),'name':_0x3ee204[_0x4d377d(0x1e2)]||_0x1fe7a1['YwZKF'],'errors':_0x4ce322['errors']},_0x4d377d(0x279)+(_0x3ee204[_0x4d377d(0x1e2)]||'unknown')+_0x4d377d(0x205)+_0x4ce322['errors'][_0x4d377d(0x1e3)](';\x20'));}const _0x2b3a14=process[_0x4d377d(0x240)][_0x4d377d(0x2c9)]||_0x1fe7a1['mhHUa'],_0x2069e3=process[_0x4d377d(0x240)][_0x4d377d(0x2b9)]||'rf:'+_0x2b3a14+_0x4d377d(0x28c),_0x565c16=_0x1fe7a1[_0x4d377d(0x22c)](parseInt,process['env'][_0x4d377d(0x20e)],0xa)||0x48,_0x40d715=parseInt(process[_0x4d377d(0x240)][_0x4d377d(0x223)],0xa)||0xa8,_0x22eff3={'removeOnComplete':{'age':_0x565c16*0xe10},'removeOnFail':{'age':_0x1fe7a1['scfxT'](_0x40d715,0xe10)}},_0x1766fa={'high-priority':'high','default':'default','low-priority':'low'};for(const [_0x3d2047,_0x5248d1]of Object[_0x4d377d(0x1f2)](_0x1766fa)){this['queues'][_0x3d2047]=new Queue(_0x5248d1,{'connection':this[_0x4d377d(0x283)](),'prefix':_0x2069e3,'defaultJobOptions':_0x22eff3});}logger['info']({'event':_0x1fe7a1['FCNSJ'],'count':0x3},'3\x20BullMQ\x20Queues\x20created\x20(high,\x20default,\x20low)');const _0x512bc8=_0x1fe7a1[_0x4d377d(0x28d)](parseInt,process['env'][_0x4d377d(0x1e0)],0xa)||0x5,_0x5cb5a3=parseInt(process['env']['JOB_STALLED_INTERVAL'],0xa)||0x7530,_0x50dabf=_0x1fe7a1[_0x4d377d(0x2cf)](parseInt,process[_0x4d377d(0x240)][_0x4d377d(0x296)],0xa)||0x2;for(const [_0x2f5a39,_0x5abe75]of Object['entries'](_0x1766fa)){const _0x5a577f=new Worker(_0x5abe75,async _0x3b18ae=>this[_0x4d377d(0x2c1)](_0x3b18ae),{'connection':this['createBullMQConnection'](),'prefix':_0x2069e3,'concurrency':_0x512bc8,'stalledInterval':_0x5cb5a3,'maxStalledCount':_0x50dabf});_0x5a577f['on']('completed',(_0x310316,_0x3c0459)=>this['onJobCompleted'](_0x310316,_0x3c0459)),_0x5a577f['on'](_0x1fe7a1['AoImo'],(_0x2c09c0,_0x1b4718)=>this[_0x4d377d(0x23e)](_0x2c09c0,_0x1b4718)),_0x5a577f['on'](_0x4d377d(0x29c),(_0x4b69d4,_0x4e713f)=>this[_0x4d377d(0x249)](_0x4b69d4,_0x4e713f)),_0x5a577f['on'](_0x1fe7a1['ngElo'],_0x51f4aa=>{const _0x10f099=_0x4d377d;logger['warn']({'event':_0x1fe7a1[_0x10f099(0x254)],'jobId':_0x51f4aa},_0x10f099(0x1d0)+_0x51f4aa);}),_0x5a577f['on'](_0x4d377d(0x1fc),_0x13d048=>{const _0x219501=_0x4d377d;logger['error']({'event':_0x219501(0x23d),'queue':_0x2f5a39,'error':_0x13d048['message']},'BullMQ\x20Worker\x20error\x20('+_0x2f5a39+_0x219501(0x2be)+_0x13d048[_0x219501(0x1b3)]);}),this[_0x4d377d(0x236)][_0x2f5a39]=_0x5a577f;}logger[_0x4d377d(0x2cc)]({'event':_0x4d377d(0x2b1),'count':0x3,'concurrency':_0x512bc8},_0x4d377d(0x21d)+_0x512bc8+')');let _0x103807=0x0;for(const _0x2cab2d of _0x249f25){try{await this['registerJob'](_0x2cab2d),_0x103807++;}catch(_0x4b2e03){logger['error']({'event':_0x4d377d(0x287),'name':_0x2cab2d['name'],'error':_0x4b2e03[_0x4d377d(0x1b3)]},'Failed\x20to\x20register\x20job:\x20'+_0x2cab2d[_0x4d377d(0x1e2)]+_0x4d377d(0x205)+_0x4b2e03['message']);}}this['initialized']=!![];const _0x3a8d70=this['connections']['length'];logger[_0x4d377d(0x2cc)]({'event':_0x4d377d(0x1b5),'registeredJobs':_0x103807,'totalConfigs':_0x249f25[_0x4d377d(0x1c2)],'redisConnections':_0x3a8d70},'Job\x20Manager\x20ready:\x20'+_0x103807+_0x4d377d(0x1fd)+_0x3a8d70+_0x4d377d(0x258));}async[a0_0x3fbacf(0x245)](){const _0x26ca4a=a0_0x3fbacf,_0xf67a9d={'GqoVx':function(_0xe6fe98,_0x53d9c3){return _0xe6fe98-_0x53d9c3;},'WXbqD':'active','ckzsP':function(_0x4ea048,_0x4d1651){return _0x4ea048===_0x4d1651;}};if(!this['initialized'])return;const _0x889f75=parseInt(process[_0x26ca4a(0x240)]['JOB_SHUTDOWN_TIMEOUT'],0xa)||0x2710;logger['info']({'event':_0x26ca4a(0x2cd),'timeoutMs':_0x889f75},'Job\x20Manager\x20shutting\x20down\x20(timeout:\x20'+_0x889f75+'ms)...');const _0x5d201d=Object['values'](this[_0x26ca4a(0x236)])[_0x26ca4a(0x1b6)](async _0x4a75b4=>{try{await _0x4a75b4['pause']();}catch(_0x151d8){}});await Promise['all'](_0x5d201d);const _0x3e05fe=Date[_0x26ca4a(0x28a)]();while(_0xf67a9d[_0x26ca4a(0x1f4)](Date[_0x26ca4a(0x28a)](),_0x3e05fe)<_0x889f75){let _0x1ce2e5=0x0;for(const _0x258107 of Object[_0x26ca4a(0x1bb)](this[_0x26ca4a(0x21f)])){try{const _0x582248=await _0x258107[_0x26ca4a(0x215)](_0xf67a9d['WXbqD']);_0x1ce2e5+=_0x582248['active']||0x0;}catch(_0x1c1346){}}if(_0xf67a9d[_0x26ca4a(0x1e4)](_0x1ce2e5,0x0))break;await new Promise(_0x14e93f=>setTimeout(_0x14e93f,0x1f4));}const _0x51a95f=Object['values'](this[_0x26ca4a(0x236)])['map'](async _0x3550be=>{try{await _0x3550be['close']();}catch(_0xf8c159){}});await Promise[_0x26ca4a(0x256)](_0x51a95f);const _0x5c116e=Object['values'](this['queues'])['map'](async _0x2d7e71=>{const _0x4c7da1=_0x26ca4a;try{await _0x2d7e71[_0x4c7da1(0x252)]();}catch(_0x4943e5){}});await Promise['all'](_0x5c116e);for(const _0x333fdf of this[_0x26ca4a(0x1df)]){try{await _0x333fdf['quit']();}catch(_0x3d204f){}}this['queues']={},this['workers']={},this['connections']=[],await this['setAllJobsOffline'](),this['activeHistoryIds']['clear'](),this[_0x26ca4a(0x20d)]=![],logger[_0x26ca4a(0x2cc)]({'event':_0x26ca4a(0x24f)},_0x26ca4a(0x1d4));}[a0_0x3fbacf(0x229)](){const _0x23b8f2=a0_0x3fbacf,_0xa38738={'Wuvso':'jobs','zGOjg':'Folder\x20payload/jobs/\x20tidak\x20ditemukan'},_0x3c8522=path[_0x23b8f2(0x1e3)](this[_0x23b8f2(0x1c4)],'payload',_0xa38738[_0x23b8f2(0x2d7)]);if(!fs[_0x23b8f2(0x239)](_0x3c8522))return logger[_0x23b8f2(0x2cc)]({'event':_0x23b8f2(0x261),'path':_0x3c8522},_0xa38738['zGOjg']),[];const _0x35da27=fs['readdirSync'](_0x3c8522)[_0x23b8f2(0x220)](_0x5d4601=>_0x5d4601[_0x23b8f2(0x1e9)](_0x23b8f2(0x2d5))),_0x23125f=[];for(const _0x1fd9fa of _0x35da27){const _0x398d4e=path[_0x23b8f2(0x1e3)](_0x3c8522,_0x1fd9fa);try{const _0x45d614=fs[_0x23b8f2(0x1fe)](_0x398d4e,'utf8'),_0x20a3f4=JSON[_0x23b8f2(0x285)](_0x45d614);_0x20a3f4['_sourceFile']=_0x1fd9fa,_0x23125f[_0x23b8f2(0x284)](_0x20a3f4);}catch(_0x5beff6){logger['error']({'event':_0x23b8f2(0x22e),'file':_0x1fd9fa,'error':_0x5beff6['message']},_0x23b8f2(0x1f9)+_0x1fd9fa+_0x23b8f2(0x205)+_0x5beff6[_0x23b8f2(0x1b3)]);}}return logger['info']({'event':_0x23b8f2(0x2a3),'count':_0x23125f[_0x23b8f2(0x1c2)]},'Loaded\x20'+_0x23125f[_0x23b8f2(0x1c2)]+_0x23b8f2(0x29f)),_0x23125f;}async['registerJob'](_0x448be2){const _0x10c6b8=a0_0x3fbacf,_0xd4c885={'qvZaB':function(_0x5a7ac2,_0x542a76){return _0x5a7ac2(_0x542a76);},'LzjtM':function(_0x334a2a,_0x5d69d3){return _0x334a2a!==_0x5d69d3;},'VGIvQ':'default','Uktdf':'exponential','lIrGJ':'cron_registered','PPMMM':function(_0x475409,_0x219b7d){return _0x475409===_0x219b7d;}},_0x169fcd=path['join'](this[_0x10c6b8(0x1c4)],_0x10c6b8(0x248),'jobs',_0x448be2[_0x10c6b8(0x246)]+'.js');this['handlers'][_0x448be2['name']]=_0xd4c885[_0x10c6b8(0x2a2)](require,_0x169fcd),this['jobConfigs'][_0x448be2[_0x10c6b8(0x1e2)]]=_0x448be2;if(_0x448be2['type']==='cron'&&_0xd4c885['LzjtM'](_0x448be2[_0x10c6b8(0x2d1)],![])){const _0x5b591a=this['queues'][_0x448be2['queue']||_0xd4c885['VGIvQ']];await _0x5b591a['upsertJobScheduler'](_0x448be2['name'],{'pattern':_0x448be2['schedule'],'tz':_0x448be2[_0x10c6b8(0x1f8)]||undefined},{'name':_0x448be2['name'],'data':{'handler':_0x448be2['handler'],'triggeredBy':'cron','metadata':_0x448be2[_0x10c6b8(0x263)]||{}},'opts':{'attempts':_0x448be2['retry']?.[_0x10c6b8(0x1af)]||0x3,'backoff':{'type':_0x448be2[_0x10c6b8(0x1f7)]?.[_0x10c6b8(0x269)]||_0xd4c885['Uktdf'],'delay':_0x448be2[_0x10c6b8(0x1f7)]?.[_0x10c6b8(0x1d3)]||0x1388},'timeout':_0x448be2[_0x10c6b8(0x237)]||0x7530}}),logger['info']({'event':_0xd4c885[_0x10c6b8(0x200)],'name':_0x448be2['name'],'schedule':_0x448be2[_0x10c6b8(0x253)],'queue':_0x448be2[_0x10c6b8(0x241)]||_0xd4c885['VGIvQ']},'Cron\x20registered:\x20'+_0x448be2['name']+'\x20['+_0x448be2['schedule']+']');}const _0x5e1562=_0xd4c885[_0x10c6b8(0x1ad)](_0x448be2['type'],'cron')&&_0x448be2[_0x10c6b8(0x2d1)]!==![]?'online':'offline';let _0x12e8bf=null;_0xd4c885[_0x10c6b8(0x1ad)](_0x5e1562,'online')&&(_0x12e8bf=await this[_0x10c6b8(0x290)](_0x448be2[_0x10c6b8(0x1e2)])),await this[_0x10c6b8(0x225)](_0x448be2,_0x5e1562,_0x12e8bf);}async['processJob'](_0x29a492){const _0x3b58d4=a0_0x3fbacf,_0x35bbbb={'KVHmO':_0x3b58d4(0x2c5),'CIFRh':_0x3b58d4(0x1ea),'keBWB':_0x3b58d4(0x212),'rzAXN':'api-delayed','sHIzx':function(_0x2edf63,_0x53b212){return _0x2edf63===_0x53b212;},'OqRCn':'api','HOvxr':_0x3b58d4(0x1c0),'PnCUc':'cron','ujYoB':'system','wTFzX':function(_0x1b7a3c,_0x58fde9){return _0x1b7a3c+_0x58fde9;},'dkKBC':function(_0x2b71fa){return _0x2b71fa();},'YFDaN':'function','vlFHG':_0x3b58d4(0x20b),'NXRoO':function(_0x47351d,_0x57e02c){return _0x47351d(_0x57e02c);},'BPYyt':'job_handler_done'},_0x5efb8d=this[_0x3b58d4(0x1d7)][_0x29a492['name']],_0x36be43=this[_0x3b58d4(0x25b)][_0x29a492['name']];if(!_0x36be43)throw new Error(_0x3b58d4(0x260)+_0x29a492['name']);const _0xaa69f=logger['child']({'jobId':_0x29a492['id'],'jobName':_0x29a492['name']});_0xaa69f[_0x3b58d4(0x2cc)]({'event':_0x35bbbb['CIFRh'],'attempt':_0x29a492['attemptsMade']+0x1,'triggeredBy':_0x29a492[_0x3b58d4(0x1fb)]?.['triggeredBy']||_0x35bbbb['keBWB']},_0x3b58d4(0x1f5)+_0x29a492[_0x3b58d4(0x1e2)]+_0x3b58d4(0x292)+(_0x29a492[_0x3b58d4(0x2d8)]+0x1)+')');const _0x53f47d=uuidv7(),_0x3b14b8=_0x29a492[_0x3b58d4(0x1fb)]?.[_0x3b58d4(0x2b2)]||_0x35bbbb[_0x3b58d4(0x2d4)],_0x45d941=this[_0x3b58d4(0x27e)]({'id':_0x53f47d,'jobName':_0x29a492[_0x3b58d4(0x1e2)],'bullmqJobId':_0x29a492['id'],'triggerType':_0x3b14b8===_0x35bbbb['rzAXN']?_0x3b58d4(0x2b4):_0x35bbbb['sHIzx'](_0x3b14b8,_0x35bbbb[_0x3b58d4(0x1c7)])?_0x35bbbb[_0x3b58d4(0x2d9)]:_0x35bbbb[_0x3b58d4(0x26e)],'triggeredBy':_0x3b14b8===_0x35bbbb['PnCUc']?_0x35bbbb['ujYoB']:_0x3b14b8,'queue':_0x5efb8d?.[_0x3b58d4(0x241)]||'default','attempt':_0x35bbbb['wTFzX'](_0x29a492[_0x3b58d4(0x2d8)],0x1),'configFile':_0x5efb8d?.['_sourceFile']||null})['catch'](_0x48a394=>{const _0x36d188=_0x3b58d4;_0xaa69f['warn']({'event':_0x35bbbb[_0x36d188(0x295)],'error':_0x48a394['message']},_0x36d188(0x2a4)+_0x48a394[_0x36d188(0x1b3)]);});this[_0x3b58d4(0x1d8)]['set'](_0x29a492['id'],{'historyId':_0x53f47d,'insertPromise':_0x45d941});const _0x2adc09=this[_0x3b58d4(0x273)](_0x29a492,_0x5efb8d,_0xaa69f),_0x2fc224=_0x35bbbb['dkKBC'](getComponentEngine);if(_0x2fc224&&typeof _0x2fc224['executeEventHandlers']===_0x35bbbb[_0x3b58d4(0x23c)]){const _0x529a25=await _0x2fc224['executeEventHandlers'](_0x35bbbb[_0x3b58d4(0x297)],_0x2adc09,!![]);if(!_0x529a25[_0x3b58d4(0x226)])throw new Error(_0x3b58d4(0x29d)+_0x529a25[_0x3b58d4(0x1fc)]);}const _0x5016c4=await _0x35bbbb['NXRoO'](_0x36be43,_0x2adc09);return _0xaa69f[_0x3b58d4(0x2cc)]({'event':_0x35bbbb['BPYyt'],'result':_0x5016c4},_0x3b58d4(0x1e5)+_0x29a492[_0x3b58d4(0x1e2)]),_0x5016c4;}[a0_0x3fbacf(0x273)](_0x33c7c6,_0x3926e9,_0x29366f){const _0x24a05f=a0_0x3fbacf,_0x1e6988={'GTqWl':'JOB_EVENT','LKshg':function(_0x11f671,_0x4915cd){return _0x11f671||_0x4915cd;}};return{'jobId':_0x33c7c6['id'],'jobName':_0x33c7c6['name'],'attempt':_0x33c7c6['attemptsMade']+0x1,'maxAttempts':_0x3926e9?.[_0x24a05f(0x1f7)]?.['maxAttempts']||0x3,'payload':_0x33c7c6['data']||{},'config':_0x1e6988['LKshg'](_0x3926e9,{}),'db':this[_0x24a05f(0x221)](),'redis':this['getRedisClient'](),'logger':_0x29366f,'kafka':this[_0x24a05f(0x218)](),'cache':this['getCacheManager'](),'updateProgress':async _0x1560cb=>{const _0x29abfd=_0x24a05f;await _0x33c7c6[_0x29abfd(0x27a)](_0x1560cb);},'emit':async(_0x3249c2,_0x1f20d2)=>{const _0x4b9e8a=_0x24a05f,_0xea3a2d=this[_0x4b9e8a(0x218)]();_0xea3a2d&&await _0xea3a2d['publishEvent'](_0x3249c2,_0x1e6988['GTqWl'],null,_0x1f20d2,{'module':_0x4b9e8a(0x214),'endpoint':_0x33c7c6[_0x4b9e8a(0x1e2)]});},'job':_0x33c7c6};}['getDbType'](){const _0x590077=a0_0x3fbacf;return(process['env'][_0x590077(0x1ae)]||_0x590077(0x2ac))[_0x590077(0x2bc)]();}async['ensureTables'](){const _0x3e916c=a0_0x3fbacf,_0x4b6854={'HxnCa':_0x3e916c(0x207),'vUQeN':_0x3e916c(0x22a),'LQBKs':'mysql.sql','PUJgy':'job_db_type_unsupported','AipSH':_0x3e916c(0x28e),'oZJJv':'duplicate','eDqWu':_0x3e916c(0x264)},_0x3b14be=this[_0x3e916c(0x221)]();if(!_0x3b14be){logger[_0x3e916c(0x1f0)]({'event':'job_db_unavailable'},_0x4b6854['HxnCa']);return;}const _0x33c8a8=this[_0x3e916c(0x27c)](),_0x29bbaf={'postgresql':_0x3e916c(0x1ce),'oracle':_0x4b6854[_0x3e916c(0x275)],'mysql':_0x4b6854[_0x3e916c(0x293)]},_0x2bab42=_0x29bbaf[_0x33c8a8];if(!_0x2bab42){logger[_0x3e916c(0x1f0)]({'event':_0x4b6854[_0x3e916c(0x206)],'dbType':_0x33c8a8},'DB_TYPE\x20\x27'+_0x33c8a8+_0x3e916c(0x299));return;}const _0x30e553=path['join'](__dirname,_0x3e916c(0x20a),_0x2bab42);if(!fs[_0x3e916c(0x239)](_0x30e553)){logger[_0x3e916c(0x1f0)]({'event':'job_sql_not_found','path':_0x30e553},'SQL\x20script\x20tidak\x20ditemukan:\x20'+_0x30e553);return;}const _0x398365=fs['readFileSync'](_0x30e553,'utf8'),_0x7041d3=this[_0x3e916c(0x26f)](_0x398365,_0x33c8a8);let _0x1a4695=0x0;for(const _0x16f73b of _0x7041d3){try{await _0x3b14be[_0x3e916c(0x21c)](_0x16f73b),_0x1a4695++;}catch(_0x40245d){const _0x4e6e0b=(_0x40245d['message']||'')[_0x3e916c(0x2bc)](),_0x401f51=_0x4e6e0b['includes'](_0x4b6854[_0x3e916c(0x2ab)])||_0x4e6e0b[_0x3e916c(0x235)](_0x3e916c(0x1bd))||_0x4e6e0b[_0x3e916c(0x235)](_0x4b6854[_0x3e916c(0x22b)]);!_0x401f51&&logger[_0x3e916c(0x1f0)]({'event':'job_ensure_tables_warn','error':_0x40245d['message']},'Job\x20ensureTables\x20warning:\x20'+_0x40245d[_0x3e916c(0x1b3)]);}}logger[_0x3e916c(0x2cc)]({'event':_0x4b6854[_0x3e916c(0x232)],'dbType':_0x33c8a8,'executed':_0x1a4695},'Job\x20monitoring\x20tables\x20ensured\x20('+_0x33c8a8+')');}[a0_0x3fbacf(0x26f)](_0x1b82df,_0x1ec7d5){const _0x4b2b6d=a0_0x3fbacf,_0x1d02ce={'DsRSQ':function(_0x10169c,_0x2e964b){return _0x10169c>_0x2e964b;},'whyWY':function(_0x3b7859,_0x2e5029){return _0x3b7859===_0x2e5029;},'fqezg':'oracle'};let _0x3f6d0e;return _0x1d02ce['whyWY'](_0x1ec7d5,_0x1d02ce['fqezg'])?_0x3f6d0e=_0x1b82df['split'](/\n\/\s*(?:\n|$)/):_0x3f6d0e=_0x1b82df[_0x4b2b6d(0x23f)](/;\s*(?:\n|$)/),_0x3f6d0e[_0x4b2b6d(0x1b6)](_0x10226f=>_0x10226f['trim']())[_0x4b2b6d(0x220)](_0x5eb50c=>{const _0xf1c1cb=_0x4b2b6d;if(_0x5eb50c[_0xf1c1cb(0x1c2)]===0x0)return![];const _0x43e563=_0x5eb50c[_0xf1c1cb(0x23f)]('\x0a')[_0xf1c1cb(0x220)](_0x919a34=>!_0x919a34[_0xf1c1cb(0x268)]()['startsWith']('--')&&_0x919a34['trim']()[_0xf1c1cb(0x1c2)]>0x0);return _0x1d02ce[_0xf1c1cb(0x1c3)](_0x43e563['length'],0x0);});}async['upsertJobRegistry'](_0x304f8f,_0x169f50='online',_0x36f347=null){const _0x582839=a0_0x3fbacf,_0x342634={'mDlaE':'cron','oqYXk':'default','KSpPq':'exponential','tskcs':function(_0x23b2a2,_0x1027cc){return _0x23b2a2===_0x1027cc;},'JBoef':_0x582839(0x238)},_0x19ee34=this[_0x582839(0x221)]();if(!_0x19ee34)return;const _0x597536=this['getDbType'](),_0x290401=[_0x304f8f['name'],_0x304f8f[_0x582839(0x1f3)]||_0x304f8f['name'],_0x304f8f[_0x582839(0x222)]||_0x342634[_0x582839(0x1ee)],_0x304f8f[_0x582839(0x253)]||null,_0x304f8f['queue']||_0x342634[_0x582839(0x2a7)],_0x304f8f[_0x582839(0x246)],_0x304f8f['_sourceFile']||'',_0x304f8f['timeout']||0x7530,_0x304f8f['retry']?.[_0x582839(0x1af)]||0x3,_0x304f8f['retry']?.['backoff']||_0x342634[_0x582839(0x276)],_0x169f50,_0x36f347];try{if(_0x342634['tskcs'](_0x597536,'oracle'))await _0x19ee34[_0x582839(0x21c)]('MERGE\x20INTO\x20job_registry\x20r\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20USING\x20(SELECT\x20:1\x20AS\x20jn\x20FROM\x20DUAL)\x20s\x20ON\x20(r.job_name\x20=\x20s.jn)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHEN\x20MATCHED\x20THEN\x20UPDATE\x20SET\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display_name\x20=\x20:2,\x20type\x20=\x20:3,\x20schedule\x20=\x20:4,\x20queue\x20=\x20:5,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20handler\x20=\x20:6,\x20config_file\x20=\x20:7,\x20timeout\x20=\x20:8,\x20retry_max\x20=\x20:9,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20retry_backoff\x20=\x20:10,\x20status\x20=\x20:11,\x20next_run_at\x20=\x20:12,\x20updated_at\x20=\x20SYSTIMESTAMP\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHEN\x20NOT\x20MATCHED\x20THEN\x20INSERT\x0a\x20\x20\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\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,\x20SYSTIMESTAMP,\x20SYSTIMESTAMP)',_0x290401);else _0x597536==='mysql'?await _0x19ee34['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(?,\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)',_0x290401):await _0x19ee34['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()',_0x290401);}catch(_0x164fdd){logger['warn']({'event':_0x342634['JBoef'],'name':_0x304f8f['name'],'error':_0x164fdd[_0x582839(0x1b3)]},'Failed\x20to\x20upsert\x20job\x20registry:\x20'+_0x304f8f['name']+'\x20—\x20'+_0x164fdd[_0x582839(0x1b3)]);}}async[a0_0x3fbacf(0x27e)](_0x114508){const _0x28780a=a0_0x3fbacf,_0x205580={'RragN':'cron','spRHE':function(_0x4690c4,_0x470039){return _0x4690c4===_0x470039;},'wGNFe':'mysql','WroTY':_0x28780a(0x2cb),'SPNQu':'job_history_insert_error'},_0x2c827c=this[_0x28780a(0x221)]();if(!_0x2c827c)return;const _0x5dcc40=this['getDbType'](),_0x3db600=[_0x114508['id'],_0x114508['jobName'],_0x114508[_0x28780a(0x1ed)]||null,_0x114508['triggerType']||_0x205580['RragN'],_0x114508['triggeredBy']||_0x28780a(0x26a),_0x114508[_0x28780a(0x241)]||'default',_0x114508['attempt']||0x1,_0x114508['configFile']||null,process[_0x28780a(0x224)]];try{if(_0x205580['spRHE'](_0x5dcc40,'oracle'))await _0x2c827c[_0x28780a(0x21c)](_0x28780a(0x1d5),_0x3db600);else _0x5dcc40===_0x205580[_0x28780a(0x244)]?await _0x2c827c['executeQuery'](_0x28780a(0x267),_0x3db600):await _0x2c827c['executeQuery'](_0x28780a(0x25d),_0x3db600);await this[_0x28780a(0x282)](_0x114508['jobName'],_0x205580[_0x28780a(0x2c6)]);}catch(_0x3e386d){logger[_0x28780a(0x1f0)]({'event':_0x205580['SPNQu'],'jobName':_0x114508['jobName'],'error':_0x3e386d[_0x28780a(0x1b3)]},_0x28780a(0x2b6)+_0x3e386d['message']);}}async['updateJobHistoryCompleted'](_0x2ca3c0,_0x3d4d64,_0x3c5ec4){const _0x19d323=a0_0x3fbacf,_0x1f3229=this['getDbUtils']();if(!_0x1f3229)return;const _0x219792=this[_0x19d323(0x27c)](),_0x368c0d=_0x3c5ec4?String(_0x3c5ec4)['substring'](0x0,0x1f4):null;try{if(_0x219792==='oracle')await _0x1f3229[_0x19d323(0x21c)]('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',[_0x3d4d64,_0x368c0d,_0x2ca3c0]);else _0x219792==='mysql'?await _0x1f3229[_0x19d323(0x21c)]('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?',[_0x3d4d64,_0x368c0d,_0x2ca3c0]):await _0x1f3229[_0x19d323(0x21c)]('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',[_0x3d4d64,_0x368c0d,_0x2ca3c0]);}catch(_0x26d800){logger[_0x19d323(0x1f0)]({'event':'job_history_complete_error','historyId':_0x2ca3c0,'error':_0x26d800['message']},_0x19d323(0x1dd)+_0x26d800['message']);}}async['updateJobHistoryFailed'](_0x43895c,_0x126193,_0x52ab05,_0x1514c8,_0x1837e4){const _0x3e6d10=a0_0x3fbacf,_0xaab2f={'dGCDR':'oracle','gJYnD':_0x3e6d10(0x228),'DKJzO':function(_0xe46220,_0xaf1810){return _0xe46220||_0xaf1810;},'EeYFf':_0x3e6d10(0x25f)},_0x1ddcda=this['getDbUtils']();if(!_0x1ddcda)return;const _0x53f7e3=this[_0x3e6d10(0x27c)](),_0x34f8b3=_0x1514c8?String(_0x1514c8)[_0x3e6d10(0x24e)](0x0,0x3e8):null,_0x3c6eed=_0x1837e4?String(_0x1837e4)[_0x3e6d10(0x24e)](0x0,0xfa0):null;try{if(_0x53f7e3===_0xaab2f[_0x3e6d10(0x270)])await _0x1ddcda[_0x3e6d10(0x21c)]('UPDATE\x20job_history\x20SET\x20status\x20=\x20\x27failed\x27,\x20completed_at\x20=\x20SYSTIMESTAMP,\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',[_0x126193,_0x52ab05||0x0,_0x34f8b3,_0x3c6eed,_0x43895c]);else _0x53f7e3===_0xaab2f[_0x3e6d10(0x204)]?await _0x1ddcda[_0x3e6d10(0x21c)]('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?',[_0x126193,_0x52ab05||0x0,_0x34f8b3,_0x3c6eed,_0x43895c]):await _0x1ddcda[_0x3e6d10(0x21c)](_0x3e6d10(0x294),[_0x126193,_0xaab2f[_0x3e6d10(0x25a)](_0x52ab05,0x0),_0x34f8b3,_0x3c6eed,_0x43895c]);}catch(_0x1d0e6e){logger['warn']({'event':_0xaab2f[_0x3e6d10(0x1ab)],'historyId':_0x43895c,'error':_0x1d0e6e[_0x3e6d10(0x1b3)]},'Failed\x20to\x20update\x20job\x20history\x20(failed):\x20'+_0x1d0e6e[_0x3e6d10(0x1b3)]);}}async['updateRegistryStatus'](_0x150a54,_0x2ddbef){const _0x4be6da=a0_0x3fbacf,_0x1174c6={'FYwCx':'oracle','EfoQX':function(_0x3e7eb5,_0xab4c7c){return _0x3e7eb5===_0xab4c7c;}},_0xc8b7ec=this['getDbUtils']();if(!_0xc8b7ec)return;const _0x71125e=this[_0x4be6da(0x27c)]();try{if(_0x71125e===_0x1174c6['FYwCx'])await _0xc8b7ec['executeQuery'](_0x4be6da(0x202),[_0x2ddbef,_0x150a54]);else _0x1174c6['EfoQX'](_0x71125e,'mysql')?await _0xc8b7ec[_0x4be6da(0x21c)](_0x4be6da(0x2a0),[_0x2ddbef,_0x150a54]):await _0xc8b7ec['executeQuery']('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',[_0x2ddbef,_0x150a54]);}catch(_0x1a8f34){}}async[a0_0x3fbacf(0x1b9)](_0x35d88f,_0x1176b6,_0x2215f4,_0x522bb9){const _0x32aaaf=a0_0x3fbacf,_0x36c8bd={'CzGyT':function(_0x5e2b26,_0x1e68e6){return _0x5e2b26===_0x1e68e6;},'GWKjT':'success','JUiDA':'total_success','iFDcr':'total_failed'},_0x53f4c8=this[_0x32aaaf(0x221)]();if(!_0x53f4c8)return;const _0x24f7ba=this[_0x32aaaf(0x27c)](),_0x493142=_0x36c8bd[_0x32aaaf(0x2ae)](_0x1176b6,_0x36c8bd[_0x32aaaf(0x1dc)])?_0x36c8bd['JUiDA']:_0x36c8bd['iFDcr'];try{if(_0x36c8bd['CzGyT'](_0x24f7ba,_0x32aaaf(0x24c)))await _0x53f4c8['executeQuery']('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20:1,\x20last_duration_ms\x20=\x20:2,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x493142+'\x20=\x20'+_0x493142+_0x32aaaf(0x29a),[_0x1176b6,_0x2215f4,_0x522bb9,_0x35d88f]);else _0x24f7ba==='mysql'?await _0x53f4c8[_0x32aaaf(0x21c)]('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'+_0x493142+'\x20=\x20'+_0x493142+_0x32aaaf(0x2a8),[_0x1176b6,_0x2215f4,_0x522bb9,_0x35d88f]):await _0x53f4c8['executeQuery'](_0x32aaaf(0x281)+_0x493142+_0x32aaaf(0x1ef)+_0x493142+'\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',[_0x1176b6,_0x2215f4,_0x522bb9,_0x35d88f]);}catch(_0x3d4995){logger[_0x32aaaf(0x1f0)]({'event':_0x32aaaf(0x2d0),'jobName':_0x35d88f,'error':_0x3d4995['message']},'Failed\x20to\x20update\x20job\x20registry\x20counters:\x20'+_0x3d4995[_0x32aaaf(0x1b3)]);}}async[a0_0x3fbacf(0x290)](_0x28efde){const _0x2300bf=a0_0x3fbacf,_0x25f3a4={'vHPIM':function(_0x209a61,_0xc66749){return _0x209a61!==_0xc66749;},'WFsrN':function(_0x15dd76,_0xd7b136){return _0x15dd76===_0xd7b136;},'CLlVa':function(_0x1527ac,_0x1cf423){return _0x1527ac===_0x1cf423;},'FoYqe':'function'},_0x352f16=this['jobConfigs'][_0x28efde];if(!_0x352f16||_0x25f3a4[_0x2300bf(0x21b)](_0x352f16[_0x2300bf(0x222)],_0x2300bf(0x208))||_0x25f3a4[_0x2300bf(0x278)](_0x352f16['enabled'],![]))return null;const _0x24492e=this[_0x2300bf(0x21f)][_0x352f16['queue']||_0x2300bf(0x1d9)];if(!_0x24492e)return null;try{if(_0x25f3a4['CLlVa'](typeof _0x24492e['getJobSchedulers'],_0x25f3a4['FoYqe'])){const _0x37625a=await _0x24492e['getJobSchedulers'](0x0,0x64),_0x2d0ae3=_0x37625a[_0x2300bf(0x2a6)](_0x142b8c=>_0x142b8c['name']===_0x28efde);return _0x2d0ae3?.['next']?new Date(_0x2d0ae3[_0x2300bf(0x255)]):null;}}catch(_0x1012c1){}return null;}async['setAllJobsOffline'](){const _0x258908=a0_0x3fbacf,_0x1e5bc3={'ZvbFM':'oracle','ZMffN':function(_0x5e8001,_0x2974f4){return _0x5e8001===_0x2974f4;},'QKQVE':'mysql'},_0x456760=this['getDbUtils']();if(!_0x456760)return;const _0x4033b6=this['getDbType']();try{if(_0x4033b6===_0x1e5bc3[_0x258908(0x1cf)])await _0x456760[_0x258908(0x21c)]('UPDATE\x20job_registry\x20SET\x20status\x20=\x20\x27offline\x27,\x20next_run_at\x20=\x20NULL,\x20updated_at\x20=\x20SYSTIMESTAMP');else _0x1e5bc3['ZMffN'](_0x4033b6,_0x1e5bc3['QKQVE'])?await _0x456760['executeQuery'](_0x258908(0x251)):await _0x456760['executeQuery']('UPDATE\x20job_registry\x20SET\x20status\x20=\x20\x27offline\x27,\x20next_run_at\x20=\x20NULL,\x20updated_at\x20=\x20NOW()');}catch(_0x4aa6cb){logger['warn']({'event':'job_registry_offline_error','error':_0x4aa6cb['message']},_0x258908(0x274)+_0x4aa6cb[_0x258908(0x1b3)]);}}['getDbUtils'](){const _0x1b0bef=a0_0x3fbacf,_0x67350c={'QXEyy':'../../utils/db-oracle','gBmCr':_0x1b0bef(0x216),'XFNZE':function(_0x570d71,_0x3ac653){return _0x570d71===_0x3ac653;},'nTUDF':'db_mysql_unavailable','elryP':'MySQL\x20DB\x20module\x20not\x20available','CJZZP':'../../utils/db'},_0x2a3faa=(process['env'][_0x1b0bef(0x1ae)]||_0x1b0bef(0x2ac))['toLowerCase']();if(_0x2a3faa===_0x1b0bef(0x24c))try{const _0x40c32d=require(_0x67350c[_0x1b0bef(0x28f)]);return{'executeQuery':(_0x3d406c,_0x2798a6)=>_0x40c32d[_0x1b0bef(0x21c)](_0x3d406c,_0x2798a6),'executeTransaction':_0x1e45f6=>_0x40c32d[_0x1b0bef(0x2c3)](_0x1e45f6),'getPool':()=>_0x40c32d['getPool']()};}catch(_0x5e56fb){return logger[_0x1b0bef(0x1f0)]({'event':_0x67350c[_0x1b0bef(0x27b)]},'Oracle\x20DB\x20module\x20not\x20available'),null;}if(_0x67350c[_0x1b0bef(0x209)](_0x2a3faa,'mysql'))try{const _0x9b600b=require(_0x1b0bef(0x1bf));return{'executeQuery':(_0x2c027e,_0x57f659)=>_0x9b600b['executeQuery'](_0x2c027e,_0x57f659),'executeTransaction':_0x4643c4=>_0x9b600b['executeTransaction'](_0x4643c4),'getPool':()=>_0x9b600b['getPool']()};}catch(_0x28717e){return logger[_0x1b0bef(0x1f0)]({'event':_0x67350c['nTUDF']},_0x67350c['elryP']),null;}try{const _0x8c98d6=require(_0x67350c['CJZZP']);return{'executeQuery':_0x8c98d6['executeQuery'],'executeTransaction':_0x8c98d6[_0x1b0bef(0x2c3)],'getPool':_0x8c98d6[_0x1b0bef(0x262)]};}catch(_0x4fb769){return logger['warn']({'event':'db_pg_unavailable'},'PostgreSQL\x20DB\x20module\x20not\x20available'),null;}}['getRedisClient'](){try{const _0x111c8c=require('../../utils/redis-client');return _0x111c8c['getClient']?_0x111c8c['getClient']():_0x111c8c;}catch(_0x303659){return null;}}['getKafkaService'](){const _0x5e30fa=a0_0x3fbacf,_0x530470={'kiHIR':function(_0x56f49a,_0x4283e1){return _0x56f49a===_0x4283e1;},'SVUJP':_0x5e30fa(0x288)};try{if(_0x530470['kiHIR'](process[_0x5e30fa(0x240)]['KAFKA_ENABLED'],_0x5e30fa(0x1c9))){const _0x4eaec8=require(_0x530470['SVUJP']);return _0x4eaec8[_0x5e30fa(0x2c4)]?_0x4eaec8['getInstance']():_0x4eaec8;}}catch(_0x3a83a5){}return null;}['getCacheManager'](){const _0x2f458c=a0_0x3fbacf,_0x90eb4f={'qNwSL':function(_0x23d720,_0x3c7c4e){return _0x23d720(_0x3c7c4e);},'ALqCd':'../../utils/cache-manager'};try{return _0x90eb4f[_0x2f458c(0x26d)](require,_0x90eb4f[_0x2f458c(0x2ad)]);}catch(_0x3b00d9){return null;}}async[a0_0x3fbacf(0x2c0)](_0x27855,_0x2bda6a={}){const _0xff08d3=a0_0x3fbacf,_0x314f9d={'mGkiD':_0xff08d3(0x1be),'augEa':_0xff08d3(0x201),'fUOxq':_0xff08d3(0x27d)},_0x170fd8=this[_0xff08d3(0x1d7)][_0x27855];if(!_0x170fd8)throw new Error('Job\x20not\x20found:\x20'+_0x27855);const _0x182d2d=this[_0xff08d3(0x21f)][_0x170fd8['queue']||_0xff08d3(0x1d9)],_0x530e00=await _0x182d2d[_0xff08d3(0x1b7)](_0x27855,{..._0x2bda6a,'handler':_0x170fd8['handler'],'triggeredBy':_0x314f9d['mGkiD']},{'attempts':_0x170fd8['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x170fd8['retry']?.[_0xff08d3(0x269)]||_0x314f9d['augEa'],'delay':_0x170fd8[_0xff08d3(0x1f7)]?.[_0xff08d3(0x1d3)]||0x1388},'timeout':_0x170fd8[_0xff08d3(0x237)]||0x7530});return logger[_0xff08d3(0x2cc)]({'event':_0x314f9d['fUOxq'],'jobId':_0x530e00['id'],'name':_0x27855,'triggeredBy':_0x314f9d['mGkiD']},'Job\x20dispatched:\x20'+_0x27855+'\x20(id:\x20'+_0x530e00['id']+')'),{'jobId':_0x530e00['id'],'name':_0x27855};}async['dispatchDelayed'](_0x25823f,_0x182f78={},_0x374b7f=0x0){const _0x5b16da=a0_0x3fbacf,_0x2e792c={'hneJg':_0x5b16da(0x1d9),'CNVrV':'exponential','ocjJi':_0x5b16da(0x20f)},_0x1c11e5=this['jobConfigs'][_0x25823f];if(!_0x1c11e5)throw new Error('Job\x20not\x20found:\x20'+_0x25823f);const _0x5490ba=this['queues'][_0x1c11e5[_0x5b16da(0x241)]||_0x2e792c['hneJg']],_0x53168b=await _0x5490ba['add'](_0x25823f,{..._0x182f78,'handler':_0x1c11e5[_0x5b16da(0x246)],'triggeredBy':'api-delayed'},{'delay':_0x374b7f,'attempts':_0x1c11e5['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x1c11e5['retry']?.['backoff']||_0x2e792c[_0x5b16da(0x1e8)],'delay':_0x1c11e5[_0x5b16da(0x1f7)]?.[_0x5b16da(0x1d3)]||0x1388},'timeout':_0x1c11e5[_0x5b16da(0x237)]||0x7530});return logger['info']({'event':_0x2e792c['ocjJi'],'jobId':_0x53168b['id'],'name':_0x25823f,'delayMs':_0x374b7f},_0x5b16da(0x298)+_0x374b7f+_0x5b16da(0x257)+_0x25823f+_0x5b16da(0x266)+_0x53168b['id']+')'),{'jobId':_0x53168b['id'],'name':_0x25823f};}async['getJobStatus'](_0x5bcb80){const _0x28cd59=a0_0x3fbacf;for(const _0x5bd6b0 of Object[_0x28cd59(0x1bb)](this['queues'])){const _0x2ff198=await _0x5bd6b0['getJob'](_0x5bcb80);if(_0x2ff198){const _0x42811e=await _0x2ff198['getState']();return{'jobId':_0x2ff198['id'],'name':_0x2ff198[_0x28cd59(0x1e2)],'state':_0x42811e,'progress':_0x2ff198['progress'],'attemptsMade':_0x2ff198['attemptsMade'],'failedReason':_0x2ff198[_0x28cd59(0x1b0)],'returnvalue':_0x2ff198[_0x28cd59(0x1db)],'data':_0x2ff198[_0x28cd59(0x1fb)],'timestamps':{'created':_0x2ff198[_0x28cd59(0x1c1)],'started':_0x2ff198[_0x28cd59(0x1eb)],'completed':_0x2ff198[_0x28cd59(0x234)]}};}}return null;}['listJobs'](){const _0x53bf7f=a0_0x3fbacf;return Object['values'](this[_0x53bf7f(0x1d7)])[_0x53bf7f(0x1b6)](_0x501506=>({'name':_0x501506['name'],'description':_0x501506['description']||'','type':_0x501506[_0x53bf7f(0x222)],'schedule':_0x501506['schedule'],'handler':_0x501506[_0x53bf7f(0x246)],'enabled':_0x501506[_0x53bf7f(0x2d1)]!==![],'queue':_0x501506['queue']||_0x53bf7f(0x1d9),'timeout':_0x501506['timeout']||0x7530,'retry':_0x501506[_0x53bf7f(0x1f7)]||{'maxAttempts':0x3,'backoff':'exponential','initialDelay':0x1388},'metadata':_0x501506[_0x53bf7f(0x263)]||{}}));}async['listRunning'](){const _0x130ce1=a0_0x3fbacf,_0x3b4121={'GAyEo':'active'},_0x18ec81=[];for(const [_0x23b770,_0x7370d]of Object[_0x130ce1(0x1f2)](this['queues'])){const _0x3b6bc8=await _0x7370d['getJobs']([_0x3b4121['GAyEo']]);for(const _0x42c207 of _0x3b6bc8){_0x18ec81['push']({'jobId':_0x42c207['id'],'name':_0x42c207[_0x130ce1(0x1e2)],'queue':_0x23b770,'progress':_0x42c207[_0x130ce1(0x29c)],'attemptsMade':_0x42c207[_0x130ce1(0x2d8)],'startedAt':_0x42c207['processedOn']});}}return _0x18ec81;}async[a0_0x3fbacf(0x217)](_0x54a978={}){const _0x4c2098=a0_0x3fbacf,_0x3fd1c1={'bHCtt':function(_0xc9a9dd,_0x567078,_0x5bc5c9){return _0xc9a9dd(_0x567078,_0x5bc5c9);},'RzELi':function(_0x32298f,_0x6e1c87){return _0x32298f*_0x6e1c87;},'rEdFg':'completed','xyFQI':_0x4c2098(0x1c6)},_0x22c491=_0x3fd1c1[_0x4c2098(0x1d6)](parseInt,_0x54a978['page'],0xa)||0x1,_0x24874f=Math['min'](parseInt(_0x54a978[_0x4c2098(0x2c7)],0xa)||0x14,0x64),_0x55fdaf=_0x3fd1c1['RzELi'](_0x22c491-0x1,_0x24874f),_0x1db077=_0x55fdaf+_0x24874f-0x1,_0x65ac1=[];for(const [_0x21c4ad,_0x37626d]of Object['entries'](this[_0x4c2098(0x21f)])){const _0xfcae3b=await _0x37626d['getJobs']([_0x3fd1c1[_0x4c2098(0x2b7)]],_0x55fdaf,_0x1db077),_0x164d10=await _0x37626d['getJobs']([_0x3fd1c1[_0x4c2098(0x203)]],_0x55fdaf,_0x1db077);for(const _0x2322b6 of[..._0xfcae3b,..._0x164d10]){const _0x54dd1c=await _0x2322b6['getState']();_0x65ac1[_0x4c2098(0x284)]({'jobId':_0x2322b6['id'],'name':_0x2322b6['name'],'state':_0x54dd1c,'queue':_0x21c4ad,'attemptsMade':_0x2322b6['attemptsMade'],'failedReason':_0x2322b6[_0x4c2098(0x1b0)],'returnvalue':_0x2322b6[_0x4c2098(0x1db)],'timestamps':{'created':_0x2322b6['timestamp'],'started':_0x2322b6[_0x4c2098(0x1eb)],'completed':_0x2322b6['finishedOn']}});}}return _0x65ac1[_0x4c2098(0x2b5)]((_0x47253f,_0x147afe)=>(_0x147afe[_0x4c2098(0x280)]['created']||0x0)-(_0x47253f[_0x4c2098(0x280)][_0x4c2098(0x2bf)]||0x0)),{'jobs':_0x65ac1[_0x4c2098(0x2d3)](0x0,_0x24874f),'total':_0x65ac1['length'],'page':_0x22c491,'limit':_0x24874f};}async[a0_0x3fbacf(0x24b)](_0x40398e){const _0x31e4be=a0_0x3fbacf,_0x54a1f1={'wpeib':function(_0x7eb15d,_0xebde49){return _0x7eb15d===_0xebde49;},'HHaMZ':'Job\x20cancelled\x20via\x20API','pmFrY':_0x31e4be(0x243)};for(const _0x28112a of Object['values'](this['queues'])){const _0x354780=await _0x28112a[_0x31e4be(0x1ba)](_0x40398e);if(_0x354780){const _0x45a33d=await _0x354780[_0x31e4be(0x1cb)]();if(_0x54a1f1[_0x31e4be(0x1e7)](_0x45a33d,'active'))return await _0x354780['moveToFailed'](new Error(_0x54a1f1['HHaMZ']),'api-cancel',!![]),{'success':!![],'message':'Job\x20'+_0x40398e+'\x20cancelled\x20(was\x20active)'};if(_0x45a33d===_0x54a1f1[_0x31e4be(0x25e)]||_0x45a33d==='delayed')return await _0x354780['remove'](),{'success':!![],'message':_0x31e4be(0x29e)+_0x40398e+'\x20removed\x20(was\x20'+_0x45a33d+')'};return{'success':![],'message':_0x31e4be(0x29e)+_0x40398e+'\x20cannot\x20be\x20cancelled\x20(state:\x20'+_0x45a33d+')'};}}return{'success':![],'message':'Job\x20'+_0x40398e+_0x31e4be(0x22f)};}async['getHealthStatus'](){const _0x3774ad=a0_0x3fbacf,_0x4fac86={'RKjBp':_0x3774ad(0x272),'gLhRW':'delayed','tlouY':'paused','PHCCM':'waiting'},_0x14434c={};for(const [_0x5047c0,_0x106af2]of Object['entries'](this['queues'])){try{const _0x418bc8=await _0x106af2['getJobCounts']('active',_0x4fac86[_0x3774ad(0x1aa)],_0x4fac86[_0x3774ad(0x29b)],_0x3774ad(0x1c6),_0x4fac86[_0x3774ad(0x2d6)],_0x4fac86['PHCCM']);_0x14434c[_0x5047c0]=_0x418bc8;}catch(_0x395794){_0x14434c[_0x5047c0]={'error':_0x395794['message']};}}const _0x4349b5={};for(const [_0x31010e,_0x1d88c7]of Object[_0x3774ad(0x1f2)](this['workers'])){_0x4349b5[_0x31010e]={'running':_0x1d88c7['isRunning'](),'paused':_0x1d88c7[_0x3774ad(0x26c)]()};}return{'initialized':this[_0x3774ad(0x20d)],'registeredJobs':Object[_0x3774ad(0x2ba)](this['jobConfigs'])['length'],'redisConnections':this[_0x3774ad(0x1df)]['length'],'queues':_0x14434c,'workers':_0x4349b5};}async[a0_0x3fbacf(0x242)](_0x56af99,_0x161cbd){const _0x2b9845=a0_0x3fbacf,_0x3c2c84={'Rqpxh':'after_job_complete_hook_error','PInlo':'job_completed','OMZfg':function(_0x10210f,_0x3f128a){return _0x10210f-_0x3f128a;},'bSPGs':function(_0x5f1eb9){return _0x5f1eb9();},'dhLYL':function(_0xaf9dbc,_0x20cba0){return _0xaf9dbc===_0x20cba0;},'QOvai':_0x2b9845(0x211),'xjjax':'onAfterJobComplete','svQkn':'job-scheduler','iRLgf':_0x2b9845(0x23a)},_0x37e7a3=logger['child']({'jobId':_0x56af99['id'],'jobName':_0x56af99[_0x2b9845(0x1e2)]});_0x37e7a3['info']({'event':_0x3c2c84[_0x2b9845(0x28b)],'attemptsMade':_0x56af99['attemptsMade'],'duration':_0x56af99['finishedOn']?_0x56af99[_0x2b9845(0x234)]-_0x56af99[_0x2b9845(0x1eb)]:null},_0x2b9845(0x233)+_0x56af99[_0x2b9845(0x1e2)]);const _0x5cdd74=this[_0x2b9845(0x1d8)]['get'](_0x56af99['id']);if(_0x5cdd74){if(_0x5cdd74[_0x2b9845(0x1c8)])await _0x5cdd74['insertPromise'];const _0xb80963=_0x56af99['finishedOn']&&_0x56af99[_0x2b9845(0x1eb)]?_0x3c2c84[_0x2b9845(0x259)](_0x56af99['finishedOn'],_0x56af99[_0x2b9845(0x1eb)]):null,_0xcc2ec2=typeof _0x161cbd===_0x2b9845(0x25c)?_0x161cbd:_0x161cbd?JSON[_0x2b9845(0x23b)](_0x161cbd)[_0x2b9845(0x24e)](0x0,0x1f4):null;await this['updateJobHistoryCompleted'](_0x5cdd74[_0x2b9845(0x289)],_0xb80963,_0xcc2ec2);const _0x17cc73=await this['getNextRunFromBullMQ'](_0x56af99['name']);await this[_0x2b9845(0x1b9)](_0x56af99[_0x2b9845(0x1e2)],'success',_0xb80963,_0x17cc73),this[_0x2b9845(0x1d8)][_0x2b9845(0x1de)](_0x56af99['id']);}const _0x2a14c7=_0x3c2c84[_0x2b9845(0x231)](getComponentEngine);if(_0x2a14c7&&_0x3c2c84['dhLYL'](typeof _0x2a14c7['executeEventHandlers'],_0x3c2c84[_0x2b9845(0x2bb)])){const _0x21797e={'jobId':_0x56af99['id'],'jobName':_0x56af99['name'],'result':_0x161cbd,'config':this['jobConfigs'][_0x56af99['name']]||{}};_0x2a14c7[_0x2b9845(0x250)](_0x3c2c84['xjjax'],_0x21797e,![])[_0x2b9845(0x1cd)](_0x34cd33=>{const _0x13ae66=_0x2b9845;_0x37e7a3['warn']({'event':_0x3c2c84[_0x13ae66(0x2c2)],'error':_0x34cd33['message']},'onAfterJobComplete\x20handler\x20error\x20(non-blocking)');});}const _0x57037c=this['getKafkaService']();if(_0x57037c)try{await _0x57037c['publishEvent'](_0x2b9845(0x227),_0x2b9845(0x1ca),null,{'jobId':_0x56af99['id'],'name':_0x56af99[_0x2b9845(0x1e2)],'result':_0x161cbd},{'module':_0x3c2c84['svQkn'],'endpoint':_0x56af99[_0x2b9845(0x1e2)]});}catch(_0x1b5a6d){_0x37e7a3['warn']({'event':'job_kafka_publish_error','error':_0x1b5a6d['message']},_0x3c2c84['iRLgf']);}}async[a0_0x3fbacf(0x23e)](_0x1a3ea0,_0xdbadc7){const _0xf2e3c1=a0_0x3fbacf,_0x4f0692={'dPDFv':'onAfterJobFailed\x20handler\x20error\x20(non-blocking)','coKjO':function(_0x436322){return _0x436322();},'lKoxi':function(_0x27b8c5,_0x24e730){return _0x27b8c5===_0x24e730;},'JOOdk':_0xf2e3c1(0x211),'HgbwP':'onAfterJobFailed','YzAcq':_0xf2e3c1(0x291),'EpxfC':'job-scheduler','brsJd':_0xf2e3c1(0x247),'JMxdN':'Failed\x20to\x20publish\x20JOB_FAILED\x20to\x20Kafka'},_0x373133=logger['child']({'jobId':_0x1a3ea0['id'],'jobName':_0x1a3ea0['name']});_0x373133['error']({'event':_0xf2e3c1(0x1da),'attemptsMade':_0x1a3ea0['attemptsMade'],'failedReason':_0xdbadc7?.['message'],'willRetry':_0x1a3ea0['attemptsMade']<(this['jobConfigs'][_0x1a3ea0[_0xf2e3c1(0x1e2)]]?.['retry']?.['maxAttempts']||0x3)},_0xf2e3c1(0x2b0)+_0x1a3ea0['name']+'\x20—\x20'+_0xdbadc7?.['message']);const _0x355461=this['activeHistoryIds']['get'](_0x1a3ea0['id']);if(_0x355461){if(_0x355461[_0xf2e3c1(0x1c8)])await _0x355461['insertPromise'];const _0x1048ee=_0x1a3ea0['finishedOn']&&_0x1a3ea0[_0xf2e3c1(0x1eb)]?_0x1a3ea0['finishedOn']-_0x1a3ea0['processedOn']:null;await this[_0xf2e3c1(0x2a9)](_0x355461[_0xf2e3c1(0x289)],_0x1048ee,_0x1a3ea0[_0xf2e3c1(0x29c)],_0xdbadc7?.[_0xf2e3c1(0x1b3)],_0xdbadc7?.['stack']);const _0x2562d1=await this[_0xf2e3c1(0x290)](_0x1a3ea0['name']);await this['updateRegistryCounters'](_0x1a3ea0[_0xf2e3c1(0x1e2)],'failed',_0x1048ee,_0x2562d1),this[_0xf2e3c1(0x1d8)]['delete'](_0x1a3ea0['id']);}const _0x4f0637=_0x4f0692['coKjO'](getComponentEngine);if(_0x4f0637&&_0x4f0692['lKoxi'](typeof _0x4f0637[_0xf2e3c1(0x250)],_0x4f0692[_0xf2e3c1(0x2a5)])){const _0x2c1e2d={'jobId':_0x1a3ea0['id'],'jobName':_0x1a3ea0[_0xf2e3c1(0x1e2)],'error':_0xdbadc7?.[_0xf2e3c1(0x1b3)],'attemptsMade':_0x1a3ea0['attemptsMade'],'config':this['jobConfigs'][_0x1a3ea0[_0xf2e3c1(0x1e2)]]||{}};_0x4f0637[_0xf2e3c1(0x250)](_0x4f0692['HgbwP'],_0x2c1e2d,![])[_0xf2e3c1(0x1cd)](_0x5c9b01=>{const _0x598cae=_0xf2e3c1;_0x373133[_0x598cae(0x1f0)]({'event':_0x598cae(0x271),'error':_0x5c9b01[_0x598cae(0x1b3)]},_0x4f0692['dPDFv']);});}const _0x45413e=this[_0xf2e3c1(0x218)]();if(_0x45413e)try{await _0x45413e[_0xf2e3c1(0x1fa)]('restforge.jobs.failed',_0x4f0692['YzAcq'],null,{'jobId':_0x1a3ea0['id'],'name':_0x1a3ea0[_0xf2e3c1(0x1e2)],'error':_0xdbadc7?.[_0xf2e3c1(0x1b3)],'attemptsMade':_0x1a3ea0['attemptsMade']},{'module':_0x4f0692[_0xf2e3c1(0x1b8)],'endpoint':_0x1a3ea0[_0xf2e3c1(0x1e2)]});}catch(_0x1d65cb){_0x373133[_0xf2e3c1(0x1f0)]({'event':_0x4f0692[_0xf2e3c1(0x265)],'error':_0x1d65cb['message']},_0x4f0692[_0xf2e3c1(0x24d)]);}}[a0_0x3fbacf(0x249)](_0x3e7fe9,_0x3b5a52){const _0x2a1809=a0_0x3fbacf,_0x5f1521={'tUSDj':'job_progress'};logger[_0x2a1809(0x2a1)]({'event':_0x5f1521['tUSDj'],'jobId':_0x3e7fe9['id'],'jobName':_0x3e7fe9['name'],'progress':_0x3b5a52},'Job\x20progress:\x20'+_0x3e7fe9[_0x2a1809(0x1e2)]+'\x20—\x20'+_0x3b5a52+'%');}}module['exports']=new JobManager();
@@ -1 +1 @@
1
- const a0_0x4b1e4d=a0_0x119f;(function(_0x56792e,_0x5305ec){const _0x15e633=a0_0x119f,_0x57537e=_0x56792e();while(!![]){try{const _0x15fb3b=parseInt(_0x15e633(0xd2))/0x1*(parseInt(_0x15e633(0x9d))/0x2)+-parseInt(_0x15e633(0xa0))/0x3*(parseInt(_0x15e633(0xc8))/0x4)+-parseInt(_0x15e633(0xae))/0x5+-parseInt(_0x15e633(0xd0))/0x6+parseInt(_0x15e633(0x9e))/0x7+-parseInt(_0x15e633(0xcb))/0x8+parseInt(_0x15e633(0xc1))/0x9;if(_0x15fb3b===_0x5305ec)break;else _0x57537e['push'](_0x57537e['shift']());}catch(_0x5cf7bf){_0x57537e['push'](_0x57537e['shift']());}}}(a0_0xeea9,0x43b0b));function a0_0x119f(_0x418b40,_0x349050){_0x418b40=_0x418b40-0x82;const _0xeea986=a0_0xeea9();let _0x119f82=_0xeea986[_0x418b40];if(a0_0x119f['XgJJeu']===undefined){var _0x1d9468=function(_0x5c0555){const _0x52bbe5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3cd397='',_0x401851='';for(let _0x1e5c63=0x0,_0x39392c,_0xdb6eff,_0xf2c6c5=0x0;_0xdb6eff=_0x5c0555['charAt'](_0xf2c6c5++);~_0xdb6eff&&(_0x39392c=_0x1e5c63%0x4?_0x39392c*0x40+_0xdb6eff:_0xdb6eff,_0x1e5c63++%0x4)?_0x3cd397+=String['fromCharCode'](0xff&_0x39392c>>(-0x2*_0x1e5c63&0x6)):0x0){_0xdb6eff=_0x52bbe5['indexOf'](_0xdb6eff);}for(let _0x435e1b=0x0,_0x268790=_0x3cd397['length'];_0x435e1b<_0x268790;_0x435e1b++){_0x401851+='%'+('00'+_0x3cd397['charCodeAt'](_0x435e1b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x401851);};a0_0x119f['rzCBSI']=_0x1d9468,a0_0x119f['TdseOH']={},a0_0x119f['XgJJeu']=!![];}const _0x1276e8=_0xeea986[0x0],_0x43f1c6=_0x418b40+_0x1276e8,_0x55cced=a0_0x119f['TdseOH'][_0x43f1c6];return!_0x55cced?(_0x119f82=a0_0x119f['rzCBSI'](_0x119f82),a0_0x119f['TdseOH'][_0x43f1c6]=_0x119f82):_0x119f82=_0x55cced,_0x119f82;}const express=require(a0_0x4b1e4d(0xb6)),{Queue}=require(a0_0x4b1e4d(0xe1)),Redis=require(a0_0x4b1e4d(0xc9)),{logger}=require('../../utils/logger');let readConnection=null,readQueues=null,cachedJobConfigs=null;const QUEUE_NAMES={'high-priority':a0_0x4b1e4d(0xcc),'default':'default','low-priority':'low'};function a0_0xeea9(){const _0x141360=['ChjVz3jLC3m','BwvZC2fNzq','rxvyrNq','D2fPDgLUzW','z2v0sM9Iq291BNrZ','z2v0u3rHDgu','yNvSBg1X','z2v0sM9ICW','tujNs2C','CMvHzgrPCLn5BMm','BwfW','zw50CMLLCW','ChvZAa','z2v0','y3DK','Cgf5Bg9Hza','CxvLCNK','l2nHBMnLBc86AM9Iswq','DMfSDwvZ','zgvMyxvSDa','zxHPC3rZu3LUyW','C2nOzwr1Bgu','CgfYyw1Z','yxbPlwnHBMnLBa','zgf0yq','ELH2wwS','zw5HyMXLza','zNjLzMy','ignHBM5VDcbIzsbJyw5JzwXSzwqGkhn0yxrLoIa','z2v0sM9I','y29TCgXLDgvK','CMv0CNK','yxbP','Aw5PDgLHBerLBgf5','ChjVy2vZC2vKt24','uM91DgvY','AM9PBG','sM9Iia','A2v5CW','zw5KC1DPDgG','u0z5s1q','mKHVCg5hqq','mZm2nta2mvLMyujgzq','DhLWzq','mtqYmZvVs01LDNq','ihrPzgfRigrPDgvTDwTHBG','DgLTzxn0yw1W','uKvesvnFse9tva','Aw5MBW','Cgf1C2vK','zvDHAei','ywn0AxzL','CgfYC2u','zxjYB3i','zMfPBgvK','Dw5OzwfSDgH5','AM9ICW','DgLTzxn0yw1WCW','mtyZmJbxsMDhEuS','rxjYB3iGz2v0DgLUzYbQB2iGAgLZDg9YEq','icHPzdOG','vejMwMC','rxjYB3iGz2v0DgLUzYbXDwv1zsbZDgf0CW','A01hrvu','zMfPBgvKuMvHC29U','zxHWB25LBNrPywW','zxHWCMvZCW','C3rHDhvZ','Dfz0t2C','CMv0DxjUDMfSDwu','zMLUAxnOzwrpBG','zw52','l3f1zxvLCW','uLPdthe','y3jLyxrLza','lMPZB24','BefbC28','ntiYmtCXtxn4tLnZ','uKnizuG','zMLSDgvY','BMfTzq','AgfUzgXLCG','CxvLDwu','tMrSDM0','mZjTuKjPzw8','Aw9YzwrPCW','BgLTAxq','mJu2nti3mNf2B2DbCq','AgLNAa','wwTbCNa','senkD3K','DxrMoa','mJqXode4nNnlCfrrqG','wu9pt2K','ntaZndmXs1DXsNfV','zxHWB3j0CW','tNrhtLm','svnkuw8','ANnVBG','C2XPy2u','sM9IifjVDxrLCYbszwrPCYbLCNjVCJOG','CMvHzezPBgvtEw5J','BgvUz3rO'];a0_0xeea9=function(){return _0x141360;};return a0_0xeea9();}function getReadQueues(){const _0x398469=a0_0x4b1e4d;if(readQueues)return readQueues;const _0x21d30d=process[_0x398469(0xbb)]['JOB_REDIS_PREFIX']||'rf:job';readConnection=new Redis({'host':process['env'][_0x398469(0xa3)]||'localhost','port':parseInt(process[_0x398469(0xbb)]['REDIS_PORT'],0xa)||0x18ec,'password':process['env']['REDIS_PASSWORD']||undefined,'db':parseInt(process[_0x398469(0xbb)]['REDIS_DB'],0xa)||0x0,'maxRetriesPerRequest':null}),readConnection['on'](_0x398469(0xa9),_0x5e2867=>{const _0x1ab381=_0x398469;logger[_0x1ab381(0xa9)]({'event':'job_routes_redis_error','error':_0x5e2867[_0x1ab381(0xdc)]},_0x1ab381(0xd8)+_0x5e2867[_0x1ab381(0xdc)]);}),readQueues={};for(const [_0x1c6037,_0x19c7c9]of Object['entries'](QUEUE_NAMES)){readQueues[_0x1c6037]=new Queue(_0x19c7c9,{'connection':readConnection,'prefix':_0x21d30d});}return readQueues;}function createJobRoutes(_0x4166dc){const _0x3d5e23=a0_0x4b1e4d,_0x408065={'oMQNq':function(_0x20ec9c,_0xab0201){return _0x20ec9c(_0xab0201);},'ejyBm':'path','KvGre':_0x3d5e23(0x87),'tVtOg':'job_list_error','rWKfd':'Error\x20listing\x20jobs','EuXFt':function(_0x1346f8){return _0x1346f8();},'TkbLm':'job_status_error','SFyKT':_0x3d5e23(0xb5),'kMGEU':'job_trigger_error','Ndlvm':function(_0x2aafff){return _0x2aafff();},'freff':function(_0x75ff25,_0x16edf2){return _0x75ff25===_0x16edf2;},'maUgg':'Job\x20cancelled\x20via\x20API','JzPRP':_0x3d5e23(0x8b),'ISJQo':function(_0x195057,_0x5e87ac){return _0x195057===_0x5e87ac;},'GtIXy':'delayed','TBfZg':'job_cancel_error','PPYQV':function(_0x578827,_0x97f10c,_0x2e50dd){return _0x578827(_0x97f10c,_0x2e50dd);},'eWahB':function(_0x545dca,_0x547f14){return _0x545dca-_0x547f14;},'NtGNS':function(_0x37bee3,_0x1399bc){return _0x37bee3+_0x1399bc;},'ghlFE':function(_0x42d467){return _0x42d467();},'lAAso':_0x3d5e23(0x92),'YOOOi':_0x3d5e23(0xaa),'zXvYk':_0x3d5e23(0xa7),'DPQAj':_0x3d5e23(0xa5),'lUZIz':_0x3d5e23(0xde),'WaSNh':'degraded','vxzZU':'disconnected','HCJwy':_0x3d5e23(0xab),'RCHeH':function(_0x66a7cb,_0x34e2ff){return _0x66a7cb>_0x34e2ff;},'YkArp':'/list','MBgKg':'/status/:jobId','yspCx':'/trigger/:jobName','RZCLq':'/health'},_0x5a5554=express[_0x3d5e23(0x97)]();return _0x4166dc&&_0x408065[_0x3d5e23(0xc2)](Object[_0x3d5e23(0x9a)](_0x4166dc)[_0x3d5e23(0xda)],0x0)&&(cachedJobConfigs=_0x4166dc),_0x5a5554[_0x3d5e23(0xe8)](_0x408065[_0x3d5e23(0xcd)],(_0xf8b6fd,_0x3cfada)=>{const _0x1d7349=_0x3d5e23;try{if(cachedJobConfigs){const _0x114498=Object['values'](cachedJobConfigs)[_0x1d7349(0xe5)](_0x3cc9cf=>({'name':_0x3cc9cf['name'],'description':_0x3cc9cf['description']||'','type':_0x3cc9cf['type'],'schedule':_0x3cc9cf['schedule'],'handler':_0x3cc9cf['handler'],'enabled':_0x3cc9cf[_0x1d7349(0x8e)]!==![],'queue':_0x3cc9cf[_0x1d7349(0xc6)]||_0x1d7349(0x87),'timeout':_0x3cc9cf['timeout']||0x7530,'retry':_0x3cc9cf[_0x1d7349(0x93)]||{'maxAttempts':0x3,'backoff':_0x1d7349(0xb5),'initialDelay':0x1388},'metadata':_0x3cc9cf['metadata']||{}}));return _0x3cfada['json']({'success':!![],'data':_0x114498,'total':_0x114498[_0x1d7349(0xda)]});}const _0x41c5e3=require('fs'),_0x48a715=_0x408065['oMQNq'](require,_0x408065['ejyBm']),_0x34528f=_0x48a715['join'](process[_0x1d7349(0x82)](),_0x1d7349(0x83),'jobs');if(!_0x41c5e3['existsSync'](_0x34528f))return _0x3cfada['json']({'success':!![],'data':[],'total':0x0});const _0x3d4079=_0x41c5e3[_0x1d7349(0xe4)](_0x34528f)['filter'](_0x3a05df=>_0x3a05df[_0x1d7349(0x9b)](_0x1d7349(0xbf))),_0x346988=[];for(const _0x1ee306 of _0x3d4079){try{const _0x3d3bea=_0x41c5e3[_0x1d7349(0xd9)](_0x48a715['join'](_0x34528f,_0x1ee306),_0x1d7349(0xcf)),_0x28819c=JSON[_0x1d7349(0xa8)](_0x3d3bea);_0x346988[_0x1d7349(0xe7)]({'name':_0x28819c[_0x1d7349(0xc4)],'description':_0x28819c['description']||'','type':_0x28819c[_0x1d7349(0x9f)],'schedule':_0x28819c[_0x1d7349(0x89)],'handler':_0x28819c['handler'],'enabled':_0x28819c['enabled']!==![],'queue':_0x28819c[_0x1d7349(0xc6)]||_0x408065['KvGre'],'timeout':_0x28819c['timeout']||0x7530,'retry':_0x28819c['retry']||{},'metadata':_0x28819c['metadata']||{}});}catch(_0x368322){}}_0x3cfada['json']({'success':!![],'data':_0x346988,'total':_0x346988['length']});}catch(_0x4bea1a){logger[_0x1d7349(0xa9)]({'event':_0x408065[_0x1d7349(0xb8)],'error':_0x4bea1a[_0x1d7349(0xdc)]},_0x408065['rWKfd']),_0x3cfada['status'](0x1f4)[_0x1d7349(0xd6)]({'success':![],'error':_0x4bea1a['message']});}}),_0x5a5554['get'](_0x408065[_0x3d5e23(0xe3)],async(_0x2cfa28,_0x5bfc4e)=>{const _0x40235b=_0x3d5e23;try{const {jobId:_0x128e29}=_0x2cfa28[_0x40235b(0x8a)],_0x39b43f=_0x408065[_0x40235b(0xdd)](getReadQueues);for(const _0x2ae3c5 of Object[_0x40235b(0x86)](_0x39b43f)){const _0x3ce94b=await _0x2ae3c5[_0x40235b(0x91)](_0x128e29);if(_0x3ce94b){const _0xb7fc1e=await _0x3ce94b['getState']();return _0x5bfc4e['json']({'success':!![],'data':{'jobId':_0x3ce94b['id'],'name':_0x3ce94b['name'],'state':_0xb7fc1e,'progress':_0x3ce94b[_0x40235b(0xdb)],'attemptsMade':_0x3ce94b['attemptsMade'],'failedReason':_0x3ce94b['failedReason'],'returnvalue':_0x3ce94b[_0x40235b(0xb9)],'data':_0x3ce94b[_0x40235b(0x8c)],'timestamps':{'created':_0x3ce94b[_0x40235b(0xa2)],'started':_0x3ce94b[_0x40235b(0x96)],'completed':_0x3ce94b[_0x40235b(0xba)]}}});}}_0x5bfc4e['status'](0x194)['json']({'success':![],'error':'Job\x20'+_0x128e29+_0x40235b(0xa1)});}catch(_0x5708fd){logger['error']({'event':_0x408065['TkbLm'],'error':_0x5708fd['message']},'Error\x20getting\x20job\x20status'),_0x5bfc4e[_0x40235b(0xb7)](0x1f4)[_0x40235b(0xd6)]({'success':![],'error':_0x5708fd[_0x40235b(0xdc)]});}}),_0x5a5554['post'](_0x408065['yspCx'],async(_0x32e5e3,_0x19ced1)=>{const _0x3c0940=_0x3d5e23;try{const {jobName:_0x184f38}=_0x32e5e3['params'],_0x4ad3d8=_0x32e5e3['body']||{};let _0x51aeff=cachedJobConfigs?.[_0x184f38];if(!_0x51aeff){const _0x515607=require('fs'),_0x3128d3=_0x408065['oMQNq'](require,'path'),_0x4d6ff6=_0x3128d3[_0x3c0940(0x98)](process[_0x3c0940(0x82)](),'payload',_0x3c0940(0xac)),_0x374f63=_0x515607[_0x3c0940(0x88)](_0x4d6ff6)?_0x515607['readdirSync'](_0x4d6ff6)[_0x3c0940(0xc3)](_0x3904cf=>_0x3904cf['endsWith'](_0x3c0940(0xbf))):[];for(const _0xfbbf5c of _0x374f63){try{const _0x21fc72=_0x515607['readFileSync'](_0x3128d3[_0x3c0940(0x98)](_0x4d6ff6,_0xfbbf5c),_0x3c0940(0xcf)),_0x1b063b=JSON[_0x3c0940(0xa8)](_0x21fc72);if(_0x1b063b['name']===_0x184f38){_0x51aeff=_0x1b063b;break;}}catch(_0x5c9105){}}}if(!_0x51aeff)return _0x19ced1[_0x3c0940(0xb7)](0x194)[_0x3c0940(0xd6)]({'success':![],'error':'Job\x20\x22'+_0x184f38+'\x22\x20tidak\x20ditemukan\x20di\x20konfigurasi'});const _0x3f81de=_0x408065['EuXFt'](getReadQueues),_0x399d12=_0x3f81de[_0x51aeff['queue']||_0x3c0940(0x87)],_0x4a1d0a=await _0x399d12['add'](_0x184f38,{..._0x4ad3d8,'handler':_0x51aeff[_0x3c0940(0xc5)],'triggeredBy':_0x3c0940(0x94)},{'attempts':_0x51aeff[_0x3c0940(0x93)]?.['maxAttempts']||0x3,'backoff':{'type':_0x51aeff[_0x3c0940(0x93)]?.['backoff']||_0x408065[_0x3c0940(0x9c)],'delay':_0x51aeff[_0x3c0940(0x93)]?.[_0x3c0940(0x95)]||0x1388},'timeout':_0x51aeff['timeout']||0x7530});logger[_0x3c0940(0xa4)]({'event':'job_triggered_via_api','jobId':_0x4a1d0a['id'],'name':_0x184f38},'Job\x20triggered\x20via\x20API:\x20'+_0x184f38+_0x3c0940(0xb0)+_0x4a1d0a['id']+')'),_0x19ced1[_0x3c0940(0xd6)]({'success':!![],'jobId':_0x4a1d0a['id'],'message':_0x3c0940(0x99)+_0x184f38+'\x20triggered\x20successfully'});}catch(_0x2b3855){logger['error']({'event':_0x408065[_0x3c0940(0xb3)],'error':_0x2b3855[_0x3c0940(0xdc)]},'Error\x20triggering\x20job'),_0x19ced1['status'](0x1f4)['json']({'success':![],'error':_0x2b3855['message']});}}),_0x5a5554['post'](_0x3d5e23(0x85),async(_0x3b979b,_0xdc7802)=>{const _0x12f3e2=_0x3d5e23;try{const {jobId:_0x12803a}=_0x3b979b[_0x12f3e2(0x8a)],_0x15e8d6=_0x408065[_0x12f3e2(0xc7)](getReadQueues);for(const _0x4e5b30 of Object['values'](_0x15e8d6)){const _0x1d4ea8=await _0x4e5b30[_0x12f3e2(0x91)](_0x12803a);if(_0x1d4ea8){const _0x2caef6=await _0x1d4ea8['getState']();if(_0x408065[_0x12f3e2(0x8f)](_0x2caef6,_0x12f3e2(0xa7)))return await _0x1d4ea8['moveToFailed'](new Error(_0x408065['maUgg']),_0x408065['JzPRP'],!![]),_0xdc7802[_0x12f3e2(0xd6)]({'success':!![],'message':_0x12f3e2(0x99)+_0x12803a+'\x20cancelled\x20(was\x20active)'});if(_0x408065[_0x12f3e2(0xd5)](_0x2caef6,_0x12f3e2(0xde))||_0x408065[_0x12f3e2(0xd5)](_0x2caef6,_0x408065['GtIXy']))return await _0x1d4ea8['remove'](),_0xdc7802[_0x12f3e2(0xd6)]({'success':!![],'message':_0x12f3e2(0x99)+_0x12803a+'\x20removed\x20(was\x20'+_0x2caef6+')'});return _0xdc7802[_0x12f3e2(0xd6)]({'success':![],'message':_0x12f3e2(0x99)+_0x12803a+_0x12f3e2(0x90)+_0x2caef6+')'});}}_0xdc7802[_0x12f3e2(0xb7)](0x194)['json']({'success':![],'error':_0x12f3e2(0x99)+_0x12803a+'\x20tidak\x20ditemukan'});}catch(_0x57cacd){logger[_0x12f3e2(0xa9)]({'event':_0x408065[_0x12f3e2(0xb1)],'error':_0x57cacd[_0x12f3e2(0xdc)]},'Error\x20cancelling\x20job'),_0xdc7802[_0x12f3e2(0xb7)](0x1f4)['json']({'success':![],'error':_0x57cacd[_0x12f3e2(0xdc)]});}}),_0x5a5554[_0x3d5e23(0xe8)]('/history',async(_0x447426,_0x18c9e1)=>{const _0xb0a21d=_0x3d5e23;try{const _0x478ec7=_0x408065['PPYQV'](parseInt,_0x447426[_0xb0a21d(0x84)]['page'],0xa)||0x1,_0x4c9d8f=Math['min'](parseInt(_0x447426['query'][_0xb0a21d(0xca)],0xa)||0x14,0x64),_0x824eb8=_0x408065['eWahB'](_0x478ec7,0x1)*_0x4c9d8f,_0x5112c1=_0x408065[_0xb0a21d(0xa6)](_0x408065[_0xb0a21d(0xd4)](_0x824eb8,_0x4c9d8f),0x1),_0x490a6f=_0x408065['ghlFE'](getReadQueues),_0x100ccd=[];for(const [_0x1c6289,_0x530687]of Object['entries'](_0x490a6f)){const _0x556593=await _0x530687[_0xb0a21d(0xe2)]([_0x408065[_0xb0a21d(0xc0)]],_0x824eb8,_0x5112c1),_0x117678=await _0x530687[_0xb0a21d(0xe2)]([_0x408065[_0xb0a21d(0xd1)]],_0x824eb8,_0x5112c1);for(const _0x59d6dc of[..._0x556593,..._0x117678]){const _0x1d167a=await _0x59d6dc[_0xb0a21d(0xe0)]();_0x100ccd[_0xb0a21d(0xe7)]({'jobId':_0x59d6dc['id'],'name':_0x59d6dc['name'],'state':_0x1d167a,'queue':_0x1c6289,'attemptsMade':_0x59d6dc['attemptsMade'],'failedReason':_0x59d6dc[_0xb0a21d(0xb4)],'returnvalue':_0x59d6dc[_0xb0a21d(0xb9)],'timestamps':{'created':_0x59d6dc['timestamp'],'started':_0x59d6dc[_0xb0a21d(0x96)],'completed':_0x59d6dc[_0xb0a21d(0xba)]}});}}_0x100ccd['sort']((_0x25acc1,_0x4b2f4b)=>(_0x4b2f4b['timestamps'][_0xb0a21d(0xbe)]||0x0)-(_0x25acc1[_0xb0a21d(0xad)]['created']||0x0)),_0x18c9e1['json']({'success':!![],'data':_0x100ccd[_0xb0a21d(0xd7)](0x0,_0x4c9d8f),'total':_0x100ccd[_0xb0a21d(0xda)],'page':_0x478ec7,'limit':_0x4c9d8f});}catch(_0x2454ed){logger['error']({'event':'job_history_error','error':_0x2454ed['message']},_0xb0a21d(0xaf)),_0x18c9e1['status'](0x1f4)[_0xb0a21d(0xd6)]({'success':![],'error':_0x2454ed[_0xb0a21d(0xdc)]});}}),_0x5a5554[_0x3d5e23(0xe8)](_0x3d5e23(0xbc),async(_0x292e41,_0xe3e949)=>{const _0x5bb5ed=_0x3d5e23;try{const _0x54a521=getReadQueues(),_0x21e838={};for(const [_0xe8be52,_0x8f5262]of Object[_0x5bb5ed(0xe6)](_0x54a521)){try{const _0x463251=await _0x8f5262[_0x5bb5ed(0xdf)](_0x408065[_0x5bb5ed(0x8d)],_0x408065[_0x5bb5ed(0xc0)],_0x408065['GtIXy'],'failed',_0x408065['DPQAj'],'waiting');_0x21e838[_0xe8be52]=_0x463251;}catch(_0x37c5d1){_0x21e838[_0xe8be52]={'error':_0x37c5d1[_0x5bb5ed(0xdc)]};}}_0xe3e949[_0x5bb5ed(0xd6)]({'success':!![],'data':_0x21e838});}catch(_0x36f58b){logger['error']({'event':'job_queues_error','error':_0x36f58b['message']},_0x5bb5ed(0xb2)),_0xe3e949['status'](0x1f4)['json']({'success':![],'error':_0x36f58b[_0x5bb5ed(0xdc)]});}}),_0x5a5554['get'](_0x408065[_0x3d5e23(0xbd)],async(_0x422c31,_0x872738)=>{const _0x50de7f=_0x3d5e23;try{const _0x421ecc=getReadQueues(),_0x4aee1d={};let _0x17734d=![];for(const [_0x5568e1,_0x339513]of Object['entries'](_0x421ecc)){try{const _0x4ae716=await _0x339513[_0x50de7f(0xdf)](_0x50de7f(0xa7),_0x408065['lUZIz'],_0x408065[_0x50de7f(0xd1)]);_0x4aee1d[_0x5568e1]=_0x4ae716,_0x17734d=!![];}catch(_0x535cff){_0x4aee1d[_0x5568e1]={'error':_0x535cff['message']};}}let _0xa43c06=0x0;cachedJobConfigs&&(_0xa43c06=Object['keys'](cachedJobConfigs)[_0x50de7f(0xda)]),_0x872738[_0x50de7f(0xd6)]({'success':!![],'data':{'status':_0x17734d?'healthy':_0x408065['WaSNh'],'redis':_0x17734d?'connected':_0x408065['vxzZU'],'registeredJobs':_0xa43c06,'queues':_0x4aee1d}});}catch(_0x1a18b2){_0x872738['status'](0x1f7)['json']({'success':![],'data':{'status':_0x408065[_0x50de7f(0xce)],'error':_0x1a18b2[_0x50de7f(0xdc)]}});}}),_0x5a5554;}module[a0_0x4b1e4d(0xd3)]=createJobRoutes;
1
+ const a0_0x17cf9d=a0_0x15af;(function(_0x4bf47c,_0x5a6d07){const _0xc2fd00=a0_0x15af,_0x2e4657=_0x4bf47c();while(!![]){try{const _0x1c9387=-parseInt(_0xc2fd00(0xb5))/0x1*(parseInt(_0xc2fd00(0x10f))/0x2)+parseInt(_0xc2fd00(0xc5))/0x3+parseInt(_0xc2fd00(0xb7))/0x4+-parseInt(_0xc2fd00(0xb0))/0x5+-parseInt(_0xc2fd00(0xd8))/0x6*(-parseInt(_0xc2fd00(0xf4))/0x7)+parseInt(_0xc2fd00(0xb9))/0x8+parseInt(_0xc2fd00(0x10c))/0x9*(-parseInt(_0xc2fd00(0xcf))/0xa);if(_0x1c9387===_0x5a6d07)break;else _0x2e4657['push'](_0x2e4657['shift']());}catch(_0x51d2ec){_0x2e4657['push'](_0x2e4657['shift']());}}}(a0_0x259f,0xbbe76));const express=require(a0_0x17cf9d(0x104)),{Queue}=require(a0_0x17cf9d(0xd4)),Redis=require('ioredis'),{logger}=require('../../utils/logger');let readConnection=null,readQueues=null,cachedJobConfigs=null;function a0_0x15af(_0x6614a2,_0x21df34){_0x6614a2=_0x6614a2-0xa8;const _0x259ff7=a0_0x259f();let _0x15afcf=_0x259ff7[_0x6614a2];if(a0_0x15af['IlkdvK']===undefined){var _0x4003b8=function(_0x55445c){const _0x7cda42='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1af6ba='',_0xb2c7dc='';for(let _0x56fab6=0x0,_0x1df35a,_0x33de8e,_0x455749=0x0;_0x33de8e=_0x55445c['charAt'](_0x455749++);~_0x33de8e&&(_0x1df35a=_0x56fab6%0x4?_0x1df35a*0x40+_0x33de8e:_0x33de8e,_0x56fab6++%0x4)?_0x1af6ba+=String['fromCharCode'](0xff&_0x1df35a>>(-0x2*_0x56fab6&0x6)):0x0){_0x33de8e=_0x7cda42['indexOf'](_0x33de8e);}for(let _0x373c57=0x0,_0x2f41f6=_0x1af6ba['length'];_0x373c57<_0x2f41f6;_0x373c57++){_0xb2c7dc+='%'+('00'+_0x1af6ba['charCodeAt'](_0x373c57)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xb2c7dc);};a0_0x15af['bJDZDC']=_0x4003b8,a0_0x15af['wRIHjZ']={},a0_0x15af['IlkdvK']=!![];}const _0x6f643c=_0x259ff7[0x0],_0x4c92b9=_0x6614a2+_0x6f643c,_0x271e58=a0_0x15af['wRIHjZ'][_0x4c92b9];return!_0x271e58?(_0x15afcf=a0_0x15af['bJDZDC'](_0x15afcf),a0_0x15af['wRIHjZ'][_0x4c92b9]=_0x15afcf):_0x15afcf=_0x271e58,_0x15afcf;}const QUEUE_NAMES={'high-priority':a0_0x17cf9d(0xe3),'default':a0_0x17cf9d(0xcc),'low-priority':'low'};function getReadQueues(){const _0x2fa605=a0_0x17cf9d,_0x28d4f9={'XzpRk':'job_routes_redis_error','xlPqJ':_0x2fa605(0xe4),'zebxs':function(_0x4bdc88,_0x44abff,_0x3f1610){return _0x4bdc88(_0x44abff,_0x3f1610);}};if(readQueues)return readQueues;const _0x360cc1=process['env']['JOB_REDIS_PREFIX']||_0x28d4f9[_0x2fa605(0xf8)];readConnection=new Redis({'host':process['env']['REDIS_HOST']||'localhost','port':_0x28d4f9['zebxs'](parseInt,process['env'][_0x2fa605(0xc2)],0xa)||0x18ec,'password':process['env'][_0x2fa605(0xdd)]||undefined,'db':_0x28d4f9['zebxs'](parseInt,process['env']['REDIS_DB'],0xa)||0x0,'maxRetriesPerRequest':null}),readConnection['on']('error',_0x1b26dd=>{const _0x2b9fb9=_0x2fa605;logger['error']({'event':_0x28d4f9[_0x2b9fb9(0xb3)],'error':_0x1b26dd['message']},_0x2b9fb9(0xad)+_0x1b26dd[_0x2b9fb9(0x100)]);}),readQueues={};for(const [_0x4a7fb0,_0x182c32]of Object['entries'](QUEUE_NAMES)){readQueues[_0x4a7fb0]=new Queue(_0x182c32,{'connection':readConnection,'prefix':_0x360cc1});}return readQueues;}function createJobRoutes(_0x5223cb){const _0x40f019=a0_0x17cf9d,_0x913132={'NsABz':function(_0x10ff91,_0x3912e1){return _0x10ff91(_0x3912e1);},'XKyCk':'path','lKstH':_0x40f019(0xe5),'UvadV':'utf8','MYjDP':'default','SHRRp':function(_0x126f0b){return _0x126f0b();},'xdAWE':function(_0x705911){return _0x705911();},'fCCys':_0x40f019(0xe0),'pIzCi':_0x40f019(0xc4),'PmywG':function(_0x5451a1,_0x40c104){return _0x5451a1===_0x40c104;},'yPRCI':_0x40f019(0xaf),'ACVet':_0x40f019(0x102),'SZwVQ':_0x40f019(0xff),'PlzZn':function(_0x5153e6,_0x17894c,_0x29c5b4){return _0x5153e6(_0x17894c,_0x29c5b4);},'AUrtB':function(_0x40598e,_0x23fb5a){return _0x40598e*_0x23fb5a;},'rvacX':'completed','Rbbmv':_0x40f019(0x105),'VlrcA':'delayed','KenzH':'job_queues_error','egobF':_0x40f019(0xef),'aXHRL':'connected','PHOhL':_0x40f019(0xd7),'tyLGw':_0x40f019(0xd1)},_0x5e6ae8=express['Router']();return _0x5223cb&&Object['keys'](_0x5223cb)['length']>0x0&&(cachedJobConfigs=_0x5223cb),_0x5e6ae8['get'](_0x40f019(0xbe),(_0x5732c9,_0x5258dd)=>{const _0x21f624=_0x40f019;try{if(cachedJobConfigs){const _0x4decd4=Object['values'](cachedJobConfigs)[_0x21f624(0xbf)](_0x1eca98=>({'name':_0x1eca98[_0x21f624(0xce)],'description':_0x1eca98[_0x21f624(0xd2)]||'','type':_0x1eca98['type'],'schedule':_0x1eca98[_0x21f624(0xca)],'handler':_0x1eca98[_0x21f624(0xea)],'enabled':_0x1eca98[_0x21f624(0xf3)]!==![],'queue':_0x1eca98['queue']||'default','timeout':_0x1eca98['timeout']||0x7530,'retry':_0x1eca98[_0x21f624(0xc8)]||{'maxAttempts':0x3,'backoff':'exponential','initialDelay':0x1388},'metadata':_0x1eca98['metadata']||{}}));return _0x5258dd['json']({'success':!![],'data':_0x4decd4,'total':_0x4decd4[_0x21f624(0xb4)]});}const _0x2ebea1=require('fs'),_0x5d7407=_0x913132['NsABz'](require,_0x913132[_0x21f624(0x106)]),_0x3b94f9=_0x5d7407['join'](process['cwd'](),_0x21f624(0xd6),_0x913132['lKstH']);if(!_0x2ebea1['existsSync'](_0x3b94f9))return _0x5258dd['json']({'success':!![],'data':[],'total':0x0});const _0x399314=_0x2ebea1[_0x21f624(0xfb)](_0x3b94f9)['filter'](_0x296258=>_0x296258[_0x21f624(0x112)](_0x21f624(0xcd))),_0x522d64=[];for(const _0x42b17b of _0x399314){try{const _0x5aeede=_0x2ebea1[_0x21f624(0xe1)](_0x5d7407['join'](_0x3b94f9,_0x42b17b),_0x913132[_0x21f624(0xbb)]),_0x49fb8f=JSON[_0x21f624(0xcb)](_0x5aeede);_0x522d64[_0x21f624(0xc1)]({'name':_0x49fb8f[_0x21f624(0xce)],'description':_0x49fb8f['description']||'','type':_0x49fb8f[_0x21f624(0xb8)],'schedule':_0x49fb8f[_0x21f624(0xca)],'handler':_0x49fb8f['handler'],'enabled':_0x49fb8f[_0x21f624(0xf3)]!==![],'queue':_0x49fb8f[_0x21f624(0x114)]||_0x913132['MYjDP'],'timeout':_0x49fb8f[_0x21f624(0xc6)]||0x7530,'retry':_0x49fb8f['retry']||{},'metadata':_0x49fb8f['metadata']||{}});}catch(_0x21929c){}}_0x5258dd['json']({'success':!![],'data':_0x522d64,'total':_0x522d64[_0x21f624(0xb4)]});}catch(_0x575889){logger['error']({'event':'job_list_error','error':_0x575889[_0x21f624(0x100)]},_0x21f624(0x103)),_0x5258dd[_0x21f624(0xe8)](0x1f4)[_0x21f624(0xdc)]({'success':![],'error':_0x575889[_0x21f624(0x100)]});}}),_0x5e6ae8[_0x40f019(0xf6)](_0x40f019(0xeb),async(_0x2611cc,_0x3d7928)=>{const _0x473d9e=_0x40f019;try{const {jobId:_0x403cb5}=_0x2611cc['params'],_0x21652b=_0x913132[_0x473d9e(0xae)](getReadQueues);for(const _0x399b0a of Object[_0x473d9e(0xe9)](_0x21652b)){const _0x3dde28=await _0x399b0a['getJob'](_0x403cb5);if(_0x3dde28){const _0x24486e=await _0x3dde28['getState']();return _0x3d7928['json']({'success':!![],'data':{'jobId':_0x3dde28['id'],'name':_0x3dde28[_0x473d9e(0xce)],'state':_0x24486e,'progress':_0x3dde28[_0x473d9e(0x110)],'attemptsMade':_0x3dde28['attemptsMade'],'failedReason':_0x3dde28[_0x473d9e(0x101)],'returnvalue':_0x3dde28['returnvalue'],'data':_0x3dde28['data'],'timestamps':{'created':_0x3dde28[_0x473d9e(0xf7)],'started':_0x3dde28[_0x473d9e(0xda)],'completed':_0x3dde28['finishedOn']}}});}}_0x3d7928[_0x473d9e(0xe8)](0x194)['json']({'success':![],'error':_0x473d9e(0xfa)+_0x403cb5+_0x473d9e(0xac)});}catch(_0x56f194){logger[_0x473d9e(0x111)]({'event':'job_status_error','error':_0x56f194['message']},'Error\x20getting\x20job\x20status'),_0x3d7928[_0x473d9e(0xe8)](0x1f4)['json']({'success':![],'error':_0x56f194[_0x473d9e(0x100)]});}}),_0x5e6ae8['post']('/trigger/:jobName',async(_0x52669e,_0x348636)=>{const _0x1dad6f=_0x40f019;try{const {jobName:_0x29b756}=_0x52669e[_0x1dad6f(0xed)],_0x2e7352=_0x52669e['body']||{};let _0x2a0ad2=cachedJobConfigs?.[_0x29b756];if(!_0x2a0ad2){const _0x1e0493=require('fs'),_0x19d51f=_0x913132['NsABz'](require,_0x913132[_0x1dad6f(0x106)]),_0x493fa8=_0x19d51f[_0x1dad6f(0x10b)](process['cwd'](),_0x1dad6f(0xd6),_0x913132[_0x1dad6f(0xc9)]),_0x9d73bd=_0x1e0493[_0x1dad6f(0xfe)](_0x493fa8)?_0x1e0493['readdirSync'](_0x493fa8)[_0x1dad6f(0xbd)](_0x3f7fa3=>_0x3f7fa3[_0x1dad6f(0x112)](_0x1dad6f(0xcd))):[];for(const _0x7e805d of _0x9d73bd){try{const _0x1c1436=_0x1e0493['readFileSync'](_0x19d51f[_0x1dad6f(0x10b)](_0x493fa8,_0x7e805d),_0x913132['UvadV']),_0x121ddd=JSON[_0x1dad6f(0xcb)](_0x1c1436);if(_0x121ddd['name']===_0x29b756){_0x2a0ad2=_0x121ddd;break;}}catch(_0x397546){}}}if(!_0x2a0ad2)return _0x348636[_0x1dad6f(0xe8)](0x194)[_0x1dad6f(0xdc)]({'success':![],'error':'Job\x20\x22'+_0x29b756+'\x22\x20tidak\x20ditemukan\x20di\x20konfigurasi'});const _0x5ddce1=_0x913132['xdAWE'](getReadQueues),_0x1f5506=_0x5ddce1[_0x2a0ad2[_0x1dad6f(0x114)]||_0x913132['MYjDP']],_0x29ddb3=await _0x1f5506[_0x1dad6f(0x10e)](_0x29b756,{..._0x2e7352,'handler':_0x2a0ad2['handler'],'triggeredBy':'api'},{'attempts':_0x2a0ad2[_0x1dad6f(0xc8)]?.['maxAttempts']||0x3,'backoff':{'type':_0x2a0ad2[_0x1dad6f(0xc8)]?.[_0x1dad6f(0xf0)]||_0x913132[_0x1dad6f(0xc3)],'delay':_0x2a0ad2[_0x1dad6f(0xc8)]?.['initialDelay']||0x1388},'timeout':_0x2a0ad2['timeout']||0x7530});logger['info']({'event':_0x913132[_0x1dad6f(0xba)],'jobId':_0x29ddb3['id'],'name':_0x29b756},'Job\x20triggered\x20via\x20API:\x20'+_0x29b756+'\x20(id:\x20'+_0x29ddb3['id']+')'),_0x348636[_0x1dad6f(0xdc)]({'success':!![],'jobId':_0x29ddb3['id'],'message':_0x1dad6f(0xfa)+_0x29b756+_0x1dad6f(0xde)});}catch(_0x346dfb){logger['error']({'event':_0x1dad6f(0x109),'error':_0x346dfb['message']},'Error\x20triggering\x20job'),_0x348636[_0x1dad6f(0xe8)](0x1f4)['json']({'success':![],'error':_0x346dfb[_0x1dad6f(0x100)]});}}),_0x5e6ae8[_0x40f019(0xc0)](_0x40f019(0xfd),async(_0x115a83,_0x747ec4)=>{const _0x591342=_0x40f019;try{const {jobId:_0x5c055a}=_0x115a83[_0x591342(0xed)],_0x291122=_0x913132['SHRRp'](getReadQueues);for(const _0x281a91 of Object[_0x591342(0xe9)](_0x291122)){const _0x1798ce=await _0x281a91['getJob'](_0x5c055a);if(_0x1798ce){const _0x3fa2cf=await _0x1798ce[_0x591342(0xc7)]();if(_0x913132['PmywG'](_0x3fa2cf,_0x591342(0xf9)))return await _0x1798ce['moveToFailed'](new Error(_0x591342(0xb1)),_0x913132['yPRCI'],!![]),_0x747ec4['json']({'success':!![],'message':'Job\x20'+_0x5c055a+_0x591342(0xf2)});if(_0x3fa2cf===_0x913132[_0x591342(0xf5)]||_0x3fa2cf==='delayed')return await _0x1798ce[_0x591342(0xdb)](),_0x747ec4['json']({'success':!![],'message':'Job\x20'+_0x5c055a+_0x591342(0xd9)+_0x3fa2cf+')'});return _0x747ec4['json']({'success':![],'message':'Job\x20'+_0x5c055a+_0x591342(0xa8)+_0x3fa2cf+')'});}}_0x747ec4['status'](0x194)[_0x591342(0xdc)]({'success':![],'error':'Job\x20'+_0x5c055a+'\x20tidak\x20ditemukan'});}catch(_0x3c6d40){logger[_0x591342(0x111)]({'event':_0x913132['SZwVQ'],'error':_0x3c6d40[_0x591342(0x100)]},'Error\x20cancelling\x20job'),_0x747ec4[_0x591342(0xe8)](0x1f4)[_0x591342(0xdc)]({'success':![],'error':_0x3c6d40['message']});}}),_0x5e6ae8[_0x40f019(0xf6)]('/history',async(_0x38e4eb,_0x45cd1a)=>{const _0x370f5d=_0x40f019;try{const _0x191d37=parseInt(_0x38e4eb[_0x370f5d(0xab)][_0x370f5d(0x108)],0xa)||0x1,_0x3fd01a=Math['min'](_0x913132['PlzZn'](parseInt,_0x38e4eb[_0x370f5d(0xab)]['limit'],0xa)||0x14,0x64),_0x36e88f=_0x913132[_0x370f5d(0xe2)](_0x191d37-0x1,_0x3fd01a),_0x24aa22=_0x36e88f+_0x3fd01a-0x1,_0x468440=_0x913132['xdAWE'](getReadQueues),_0x37e42c=[];for(const [_0x1c8856,_0x512644]of Object['entries'](_0x468440)){const _0x5681d6=await _0x512644['getJobs']([_0x913132['rvacX']],_0x36e88f,_0x24aa22),_0x4633a7=await _0x512644['getJobs']([_0x913132[_0x370f5d(0xd5)]],_0x36e88f,_0x24aa22);for(const _0x1a1427 of[..._0x5681d6,..._0x4633a7]){const _0x79b395=await _0x1a1427['getState']();_0x37e42c[_0x370f5d(0xc1)]({'jobId':_0x1a1427['id'],'name':_0x1a1427[_0x370f5d(0xce)],'state':_0x79b395,'queue':_0x1c8856,'attemptsMade':_0x1a1427['attemptsMade'],'failedReason':_0x1a1427[_0x370f5d(0x101)],'returnvalue':_0x1a1427[_0x370f5d(0xdf)],'timestamps':{'created':_0x1a1427['timestamp'],'started':_0x1a1427['processedOn'],'completed':_0x1a1427['finishedOn']}});}}_0x37e42c[_0x370f5d(0xb2)]((_0xf46ad5,_0x28bb83)=>(_0x28bb83[_0x370f5d(0x10a)][_0x370f5d(0xee)]||0x0)-(_0xf46ad5['timestamps']['created']||0x0)),_0x45cd1a[_0x370f5d(0xdc)]({'success':!![],'data':_0x37e42c[_0x370f5d(0xf1)](0x0,_0x3fd01a),'total':_0x37e42c[_0x370f5d(0xb4)],'page':_0x191d37,'limit':_0x3fd01a});}catch(_0x2bd496){logger[_0x370f5d(0x111)]({'event':_0x370f5d(0xe6),'error':_0x2bd496[_0x370f5d(0x100)]},'Error\x20getting\x20job\x20history'),_0x45cd1a[_0x370f5d(0xe8)](0x1f4)['json']({'success':![],'error':_0x2bd496[_0x370f5d(0x100)]});}}),_0x5e6ae8['get'](_0x40f019(0xaa),async(_0x3c2d76,_0x8a8a79)=>{const _0xf0861=_0x40f019;try{const _0x17e36c=_0x913132[_0xf0861(0xa9)](getReadQueues),_0x5e500f={};for(const [_0x491fc4,_0x3f1a5c]of Object[_0xf0861(0x113)](_0x17e36c)){try{const _0x427971=await _0x3f1a5c[_0xf0861(0xe7)](_0xf0861(0xf9),_0x913132[_0xf0861(0xec)],_0x913132[_0xf0861(0xb6)],_0xf0861(0x105),'paused',_0x913132['ACVet']);_0x5e500f[_0x491fc4]=_0x427971;}catch(_0x2b85e4){_0x5e500f[_0x491fc4]={'error':_0x2b85e4[_0xf0861(0x100)]};}}_0x8a8a79['json']({'success':!![],'data':_0x5e500f});}catch(_0x1ea49d){logger['error']({'event':_0x913132[_0xf0861(0x10d)],'error':_0x1ea49d['message']},_0x913132['egobF']),_0x8a8a79[_0xf0861(0xe8)](0x1f4)['json']({'success':![],'error':_0x1ea49d['message']});}}),_0x5e6ae8['get'](_0x913132[_0x40f019(0xbc)],async(_0x2b3c5c,_0x31cdba)=>{const _0x2171e7=_0x40f019;try{const _0x3069c6=_0x913132[_0x2171e7(0xae)](getReadQueues),_0x205624={};let _0x2fca71=![];for(const [_0x33e5eb,_0x458e39]of Object[_0x2171e7(0x113)](_0x3069c6)){try{const _0x1a04d2=await _0x458e39[_0x2171e7(0xe7)](_0x2171e7(0xf9),_0x913132[_0x2171e7(0xf5)],_0x913132[_0x2171e7(0xd5)]);_0x205624[_0x33e5eb]=_0x1a04d2,_0x2fca71=!![];}catch(_0x3f6766){_0x205624[_0x33e5eb]={'error':_0x3f6766['message']};}}let _0x5a93ec=0x0;cachedJobConfigs&&(_0x5a93ec=Object[_0x2171e7(0xd3)](cachedJobConfigs)['length']),_0x31cdba['json']({'success':!![],'data':{'status':_0x2fca71?'healthy':_0x2171e7(0xfc),'redis':_0x2fca71?_0x913132['aXHRL']:'disconnected','registeredJobs':_0x5a93ec,'queues':_0x205624}});}catch(_0x403c9c){_0x31cdba['status'](0x1f7)['json']({'success':![],'data':{'status':_0x913132[_0x2171e7(0x107)],'error':_0x403c9c[_0x2171e7(0x100)]}});}}),_0x5e6ae8;}module[a0_0x17cf9d(0xd0)]=createJobRoutes;function a0_0x259f(){const _0x1b9040=['mtK0mJG1qLjbs0LJ','sM9IignHBMnLBgXLzcb2AweGqvbj','C29YDa','whPWuMS','BgvUz3rO','mteXmJC4BNfHrwP5','vMXYy0e','nZq5otiWtLfjsNDx','DhLWzq','mJu0mJKYogrjuKPLBG','CeL6q2K','vxzHzfy','DhLmr3C','zMLSDgvY','l2XPC3q','BwfW','Cg9ZDa','ChvZAa','uKvesvnFue9sva','zKndExm','AM9Ix3rYAwDNzxjLzf92AwfFyxbP','mZK1nJu0n2DlBurWDG','DgLTzw91Da','z2v0u3rHDgu','CMv0CNK','BeTZDeG','C2nOzwr1Bgu','CgfYC2u','zgvMyxvSDa','lMPZB24','BMfTzq','mZK0nZbSvgjIzvu','zxHWB3j0CW','l2HLywX0Aa','zgvZy3jPChrPB24','A2v5CW','yNvSBg1X','uMjIBxy','Cgf5Bg9Hza','Dw5OzwfSDgH5','nKPsBMrqyq','ihjLBw92zwqGkhDHCYa','ChjVy2vZC2vKt24','CMvTB3zL','ANnVBG','uKvesvnFueftu1DpuKq','ihrYAwDNzxjLzcbZDwnJzxnZzNvSBhK','CMv0DxjUDMfSDwu','zxHWB25LBNrPywW','CMvHzezPBgvtEw5J','qvvYDei','AgLNAa','CMy6AM9I','AM9ICW','AM9Ix2HPC3rVCNLFzxjYB3i','z2v0sM9Iq291BNrZ','C3rHDhvZ','DMfSDwvZ','AgfUzgXLCG','l3n0yxr1CY86AM9Iswq','CNzHy1G','CgfYyw1Z','y3jLyxrLza','rxjYB3iGz2v0DgLUzYbXDwv1zsbZDgf0CW','yMfJA29MzG','C2XPy2u','ignHBMnLBgXLzcaOD2fZigfJDgL2zsK','zw5HyMXLza','mZy3nJe5mfnswhvvua','qunwzxq','z2v0','DgLTzxn0yw1W','EgXqCuO','ywn0AxzL','sM9Iia','CMvHzgrPCLn5BMm','zgvNCMfKzwq','l2nHBMnLBc86AM9Iswq','zxHPC3rZu3LUyW','AM9Ix2nHBMnLBf9LCNjVCG','BwvZC2fNzq','zMfPBgvKuMvHC29U','D2fPDgLUzW','rxjYB3iGBgLZDgLUzYbQB2jZ','zxHWCMvZCW','zMfPBgvK','weT5q2S','ueHpAeW','CgfNzq','AM9Ix3rYAwDNzxjFzxjYB3i','DgLTzxn0yw1WCW','AM9PBG','mZaWnMXPuwjiAG','s2vUEKG','ywrK','ngrPEuPLrG','ChjVz3jLC3m','zxjYB3i','zw5KC1DPDgG','zw50CMLLCW','CxvLDwu','ignHBM5VDcbIzsbJyw5JzwXSzwqGkhn0yxrLoIa','Egrbv0u','l3f1zxvLCW','CxvLCNK','ihrPzgfRigrPDgvTDwTHBG','sM9IifjVDxrLCYbszwrPCYbLCNjVCJOG','u0HsuNa','yxbPlwnHBMnLBa'];a0_0x259f=function(){return _0x1b9040;};return a0_0x259f();}
@@ -1 +1 @@
1
- const a0_0x48098d=a0_0x3ee8;function a0_0x106b(){const _0x57f256=['zw5HyMXLza','y29Uy3vYCMvUy3K','DgLTzw91Da','y2vTD04','Bw9UDgG','oeTet0Tbqq','rMLLBgqGiNrPBwvVDxqIig11C3qGyMuGysbUDw1IzxiGpIaWicHPBIbTCYK','Aw5PDgLHBerLBgf5','AM9ICW','zxjYB3jZ','iJOGDMfSDwuGiG','B2jQzwn0','otK3mNrZzfzPCW','C2nOzwr1Bgu','zxHPC3rZu3LUyW','zgf5lw9Mlw1VBNrO','uKv3uuO','ChvZAa','BwLUDxrL','vvLiBM8','iJOGAw52ywXPzcbIyxnLici','AxnbCNjHEq','rMLLBgqGiNjLDhj5lM1HEef0DgvTChrZiIbTDxn0igjLigeGBNvTyMvYigjLDhDLzw4Gms0Xma','wfzNwLG','mZm5mteWDNzdy2XO','ndiXnJC1ohfevw5QAq','BwLU','DMfSAwq','BgvUz3rO','CxvLDwu','r0LYB1G','tKHSwxO','rMLLBgqGiNr5CguIigLZihjLCxvPCMvKicHZDhjPBMCP','Bwf4','qNPwz0W','BMfTzq','BwfW','ntK3nti3mw9vAMXQyq','BNvTyMvY','y3jVBG','q3jVBIbLEhbYzxnZAw9Uig11C3qGAgf2zsa1igzPzwXKCYaOBwLUDxrLigHVDxiGzgf5ig1VBNrOihDLzwTKyxKPlcbMB3vUzca','lMPZicHHyNnVBhv0ztOG','uxvLDwuGiG','ve9dv1u','DMfSAwrHDgviyw5KBgvYrxHPC3rZ','A21zy1m','zgvMyxvSDa','AgfUzgXLCG','DMfSAwrHDgvszxrYEunVBMzPzW','sgfUzgXLCIbMAwXLihrPzgfRigrPDgvTDwTHBJOGC3jJl2PVyNmV','vLnXAKm','Aw5JBhvKzxm','z2DvreS','DMfSAwrHDgvdB25MAwC','D0jss3e','B3ncDeW','rMLLBgqGiNnJAgvKDwXLiIbPCYbYzxf1AxjLzcaOy3jVBIbLEhbYzxnZAw9Uihn0CMLUzYK','ufv1y3O','rMLLBgqGiMHHBMrSzxiIigLZihjLCxvPCMvKicHWyxrOihjLBgf0AxzLihrVihnYyY9QB2jZlYK','DMfSAwrHDgvrDwv1zu5HBwu','EfL5r00','mZeZoti0mK9UvhHyvG','CLDeCei','AM9PBG','C3bSAxq','ELLPqwO','rMLLBgqGiNjLDhj5lMLUAxrPywXezwXHEsiGBxvZDcbIzsbHig51BwjLCIa+idaGkgLUig1Zkq','yMXuBuu','Bwf4qxr0zw1WDhm','DhLWzq','CMv0CNK','iIbVCIaI','rMLLBgqGiM1LDgfKyxrHiIbTDxn0igjLigfUig9IAMvJDa','mti1nxDzvwHOAq','AgHut0m','DgvZDa','r3zZrLC','nK5sA2TWyq','mJq1nJe3nKHqz3vAEa','zxHWB25LBNrPywW','mZC2nZG4nZbmAKrfzha'];a0_0x106b=function(){return _0x57f256;};return a0_0x106b();}function a0_0x3ee8(_0x5ad3a3,_0x9cfbc4){_0x5ad3a3=_0x5ad3a3-0xc0;const _0x106b8d=a0_0x106b();let _0x3ee837=_0x106b8d[_0x5ad3a3];if(a0_0x3ee8['rPjDWG']===undefined){var _0x52d41f=function(_0x296de5){const _0x1a51a1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x24caa2='',_0xb4b64c='';for(let _0x1e5288=0x0,_0x14dec0,_0x3ac78e,_0x26626f=0x0;_0x3ac78e=_0x296de5['charAt'](_0x26626f++);~_0x3ac78e&&(_0x14dec0=_0x1e5288%0x4?_0x14dec0*0x40+_0x3ac78e:_0x3ac78e,_0x1e5288++%0x4)?_0x24caa2+=String['fromCharCode'](0xff&_0x14dec0>>(-0x2*_0x1e5288&0x6)):0x0){_0x3ac78e=_0x1a51a1['indexOf'](_0x3ac78e);}for(let _0x4f0876=0x0,_0xce5fbd=_0x24caa2['length'];_0x4f0876<_0xce5fbd;_0x4f0876++){_0xb4b64c+='%'+('00'+_0x24caa2['charCodeAt'](_0x4f0876)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xb4b64c);};a0_0x3ee8['eMBarE']=_0x52d41f,a0_0x3ee8['aUrFiQ']={},a0_0x3ee8['rPjDWG']=!![];}const _0x1b72b6=_0x106b8d[0x0],_0x40b9cd=_0x5ad3a3+_0x1b72b6,_0x46dfd8=a0_0x3ee8['aUrFiQ'][_0x40b9cd];return!_0x46dfd8?(_0x3ee837=a0_0x3ee8['eMBarE'](_0x3ee837),a0_0x3ee8['aUrFiQ'][_0x40b9cd]=_0x3ee837):_0x3ee837=_0x46dfd8,_0x3ee837;}(function(_0x1add77,_0x6af389){const _0x31a2e4=a0_0x3ee8,_0x2066bb=_0x1add77();while(!![]){try{const _0x54deaa=-parseInt(_0x31a2e4(0xe9))/0x1*(-parseInt(_0x31a2e4(0xcd))/0x2)+parseInt(_0x31a2e4(0x10e))/0x3+parseInt(_0x31a2e4(0xce))/0x4+-parseInt(_0x31a2e4(0xc9))/0x5*(-parseInt(_0x31a2e4(0xdd))/0x6)+parseInt(_0x31a2e4(0xea))/0x7+parseInt(_0x31a2e4(0xd6))/0x8*(parseInt(_0x31a2e4(0xf6))/0x9)+-parseInt(_0x31a2e4(0xd0))/0xa;if(_0x54deaa===_0x6af389)break;else _0x2066bb['push'](_0x2066bb['shift']());}catch(_0x45730f){_0x2066bb['push'](_0x2066bb['shift']());}}}(a0_0x106b,0x90de0));const fs=require('fs'),path=require('path'),VALID_QUEUE_NAMES=['high-priority',a0_0x48098d(0xff),'low-priority'],VALID_BACKOFF_TYPES=['fixed',a0_0x48098d(0xcf)],SLUG_REGEX=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;class JobValidator{[a0_0x48098d(0x106)](_0x1b7ac1,_0x5bf9e2){const _0x41838c=a0_0x48098d,_0x4f3f77={'rWDpB':function(_0x4cc861,_0x110bc1){return _0x4cc861!==_0x110bc1;},'enARL':'Config\x20harus\x20berupa\x20object','NHlYz':'string','Qwspy':function(_0x4738ce,_0x2a6983){return _0x4738ce!==_0x2a6983;},'GvsFW':function(_0x5e5c7c,_0x4a43d0){return _0x5e5c7c!==_0x4a43d0;},'UYHno':_0x41838c(0x109),'REwQJ':'boolean','blTmE':'Field\x20\x22enabled\x22\x20must\x20be\x20a\x20boolean','kmYcS':function(_0x495bd8,_0x1219ba){return _0x495bd8!==_0x1219ba;},'PoIoE':_0x41838c(0xf7),'BzVgL':function(_0x10b3b5,_0x5a183c){return _0x10b3b5<=_0x5a183c;},'ggUDK':function(_0x304834,_0x1aff4f){return _0x304834!==_0x1aff4f;},'zYiAj':function(_0x9dc035,_0x2f039a){return _0x9dc035>_0x2f039a;},'nrNWH':function(_0x2d7a64,_0x47bec0){return _0x2d7a64!==_0x47bec0;},'idSuQ':function(_0x49c635,_0x3a08eb){return _0x49c635===_0x3a08eb;},'sVUoP':function(_0x31f108,_0x4cefe5){return _0x31f108!==_0x4cefe5;},'wBRKq':_0x41838c(0xdc),'ZXYCr':function(_0x46a159,_0x21da41){return _0x46a159===_0x21da41;},'vlvgT':function(_0x844f85,_0x22f93c){return _0x844f85===_0x22f93c;}},_0x2180a4=[];if(!_0x1b7ac1||_0x4f3f77[_0x41838c(0x10f)](typeof _0x1b7ac1,'object'))return{'valid':![],'errors':[_0x4f3f77['enARL']]};if(!_0x1b7ac1['name']||_0x4f3f77[_0x41838c(0x10f)](typeof _0x1b7ac1[_0x41838c(0xf4)],_0x4f3f77[_0x41838c(0xf0)]))_0x2180a4[_0x41838c(0xe2)]('Field\x20\x22name\x22\x20is\x20required\x20(string)');else!SLUG_REGEX[_0x41838c(0xcb)](_0x1b7ac1['name'])&&_0x2180a4[_0x41838c(0xe2)]('Field\x20\x22name\x22\x20must\x20be\x20in\x20slug\x20format\x20(lowercase,\x20dash):\x20\x22'+_0x1b7ac1['name']+'\x22');if(!_0x1b7ac1['type']||_0x4f3f77['Qwspy'](typeof _0x1b7ac1[_0x41838c(0xc5)],'string'))_0x2180a4[_0x41838c(0xe2)](_0x41838c(0xf1));else _0x4f3f77[_0x41838c(0xcc)](_0x1b7ac1['type'],_0x41838c(0xf8))&&_0x2180a4[_0x41838c(0xe2)]('Field\x20\x22type\x22\x20must\x20be\x20\x22cron\x22,\x20found:\x20\x22'+_0x1b7ac1['type']+'\x22');if(!_0x1b7ac1[_0x41838c(0xde)]||typeof _0x1b7ac1[_0x41838c(0xde)]!=='string')_0x2180a4[_0x41838c(0xe2)](_0x4f3f77[_0x41838c(0xe4)]);else{const _0x545bfb=this['validateCronExpression'](_0x1b7ac1[_0x41838c(0xde)]);!_0x545bfb['valid']&&_0x2180a4['push'](..._0x545bfb['errors']);}if(!_0x1b7ac1[_0x41838c(0x100)]||_0x4f3f77[_0x41838c(0xcc)](typeof _0x1b7ac1['handler'],_0x4f3f77['NHlYz']))_0x2180a4['push'](_0x41838c(0x10b));else{if(_0x5bf9e2){const _0x80da2a=this['validateHandlerExists'](_0x1b7ac1['handler'],_0x5bf9e2);!_0x80da2a[_0x41838c(0xec)]&&_0x2180a4[_0x41838c(0xe2)](..._0x80da2a[_0x41838c(0xda)]);}}_0x1b7ac1[_0x41838c(0xd1)]!==undefined&&typeof _0x1b7ac1['enabled']!==_0x4f3f77[_0x41838c(0xe1)]&&_0x2180a4['push'](_0x4f3f77[_0x41838c(0xc3)]);_0x1b7ac1[_0x41838c(0xd3)]!==undefined&&((_0x4f3f77[_0x41838c(0xfe)](typeof _0x1b7ac1['timeout'],_0x4f3f77['PoIoE'])||_0x4f3f77[_0x41838c(0xf3)](_0x1b7ac1['timeout'],0x0))&&_0x2180a4['push'](_0x41838c(0xd7)));if(_0x4f3f77['rWDpB'](_0x1b7ac1[_0x41838c(0xee)],undefined)){const _0x51e455=this[_0x41838c(0x10c)](_0x1b7ac1[_0x41838c(0xee)]);!_0x51e455['valid']&&_0x2180a4[_0x41838c(0xe2)](..._0x51e455['errors']);}_0x4f3f77[_0x41838c(0x105)](_0x1b7ac1[_0x41838c(0xd2)],undefined)&&((typeof _0x1b7ac1[_0x41838c(0xd2)]!==_0x4f3f77['PoIoE']||_0x1b7ac1[_0x41838c(0xd2)]<0x1||_0x4f3f77[_0x41838c(0xc1)](_0x1b7ac1[_0x41838c(0xd2)],0x32))&&_0x2180a4[_0x41838c(0xe2)]('Field\x20\x22concurrency\x22\x20must\x20be\x20a\x20number\x20between\x201-50'));if(_0x1b7ac1[_0x41838c(0xc6)]!==undefined){if(_0x4f3f77['nrNWH'](typeof _0x1b7ac1[_0x41838c(0xc6)],_0x41838c(0xdc))||_0x4f3f77['idSuQ'](_0x1b7ac1[_0x41838c(0xc6)],null))_0x2180a4[_0x41838c(0xe2)]('Field\x20\x22retry\x22\x20must\x20be\x20an\x20object');else{const _0x13dc37=this[_0x41838c(0x101)](_0x1b7ac1[_0x41838c(0xc6)]);!_0x13dc37[_0x41838c(0xec)]&&_0x2180a4[_0x41838c(0xe2)](..._0x13dc37['errors']);}}return _0x4f3f77['Qwspy'](_0x1b7ac1['metadata'],undefined)&&((_0x4f3f77['sVUoP'](typeof _0x1b7ac1['metadata'],_0x4f3f77[_0x41838c(0x107)])||_0x4f3f77['ZXYCr'](_0x1b7ac1['metadata'],null)||Array[_0x41838c(0xe6)](_0x1b7ac1['metadata']))&&_0x2180a4['push'](_0x41838c(0xc8))),{'valid':_0x4f3f77['vlvgT'](_0x2180a4[_0x41838c(0xed)],0x0),'errors':_0x2180a4};}['validateCronExpression'](_0x557d01){const _0x48d302=a0_0x48098d,_0x338d14={'hhTOC':function(_0x376c75,_0x5930d5){return _0x376c75!==_0x5930d5;},'gPZwd':_0x48d302(0xe3),'tHvRa':_0x48d302(0xe0),'GIroX':_0x48d302(0xd5),'GbqGE':'day-of-week','cemwN':function(_0x1f95ba,_0x4a3509){return _0x1f95ba<_0x4a3509;},'YmXhT':function(_0x49857a,_0x4d3f32,_0x367660){return _0x49857a(_0x4d3f32,_0x367660);},'CYaIp':function(_0x18ba62,_0x327511){return _0x18ba62(_0x327511);},'PUucz':function(_0x5c10cd,_0x5b8f2f){return _0x5c10cd<_0x5b8f2f;},'osBtL':function(_0x1147fb,_0x467a0c){return _0x1147fb===_0x467a0c;}},_0x5a83b2=[],_0x2fd492=_0x557d01['trim']()[_0x48d302(0xc0)](/\s+/);if(_0x338d14[_0x48d302(0xca)](_0x2fd492['length'],0x5))return _0x5a83b2['push'](_0x48d302(0xf9)+_0x2fd492['length']+'\x20field(s):\x20\x22'+_0x557d01+'\x22'),{'valid':![],'errors':_0x5a83b2};const _0x5f26d0=[_0x338d14['gPZwd'],'hour',_0x338d14['tHvRa'],_0x338d14[_0x48d302(0xef)],_0x338d14['GbqGE']],_0xffcaa4=[{'min':0x0,'max':0x3b},{'min':0x0,'max':0x17},{'min':0x1,'max':0x1f},{'min':0x1,'max':0xc},{'min':0x0,'max':0x7}],_0x5ddb61=/^(\*|[0-9]+(-[0-9]+)?)([,/](\*|[0-9]+(-[0-9]+)?))*$/;for(let _0x3f15c5=0x0;_0x338d14[_0x48d302(0xd4)](_0x3f15c5,0x5);_0x3f15c5++){const _0x545db6=_0x2fd492[_0x3f15c5];if(_0x545db6==='*')continue;if(_0x545db6['includes']('/')){const [_0x46fa8d,_0x3c90f1]=_0x545db6[_0x48d302(0xc0)]('/');_0x46fa8d!=='*'&&!this['_isValidRange'](_0x46fa8d,_0xffcaa4[_0x3f15c5])&&_0x5a83b2['push']('Cron\x20field\x20\x22'+_0x5f26d0[_0x3f15c5]+_0x48d302(0xe5)+_0x46fa8d+'\x22');const _0x13af59=_0x338d14['YmXhT'](parseInt,_0x3c90f1,0xa);(_0x338d14['CYaIp'](isNaN,_0x13af59)||_0x338d14[_0x48d302(0x10a)](_0x13af59,0x1))&&_0x5a83b2[_0x48d302(0xe2)]('Cron\x20field\x20\x22'+_0x5f26d0[_0x3f15c5]+'\x22:\x20step\x20\x22/'+_0x3c90f1+'\x22\x20must\x20be\x20a\x20number\x20>\x200');continue;}const _0x58d1b5=_0x545db6[_0x48d302(0xc0)](',');for(const _0x4d7f01 of _0x58d1b5){!this['_isValidRange'](_0x4d7f01,_0xffcaa4[_0x3f15c5])&&_0x5a83b2[_0x48d302(0xe2)]('Cron\x20field\x20\x22'+_0x5f26d0[_0x3f15c5]+_0x48d302(0xdb)+_0x4d7f01+'\x22\x20is\x20out\x20of\x20range\x20'+_0xffcaa4[_0x3f15c5][_0x48d302(0xeb)]+'-'+_0xffcaa4[_0x3f15c5][_0x48d302(0xf2)]);}}return{'valid':_0x338d14[_0x48d302(0x108)](_0x5a83b2[_0x48d302(0xed)],0x0),'errors':_0x5a83b2};}['_isValidRange'](_0x58169f,_0x4c10d5){const _0x2c325d=a0_0x48098d,_0x24f1c5={'TOCWU':function(_0x105d3b,_0x5c0e1e){return _0x105d3b(_0x5c0e1e);},'SEYJu':function(_0x3a8934,_0x207dac,_0x4c3d80){return _0x3a8934(_0x207dac,_0x4c3d80);},'XVgZX':function(_0x52b6cc,_0x3ea7bd){return _0x52b6cc(_0x3ea7bd);}};if(_0x58169f['includes']('-')){const [_0x314dd1,_0x5de368]=_0x58169f[_0x2c325d(0xc0)]('-')[_0x2c325d(0xf5)](Number);return!isNaN(_0x314dd1)&&!_0x24f1c5[_0x2c325d(0xfc)](isNaN,_0x5de368)&&_0x314dd1>=_0x4c10d5[_0x2c325d(0xeb)]&&_0x314dd1<=_0x4c10d5['max']&&_0x5de368>=_0x4c10d5[_0x2c325d(0xeb)]&&_0x5de368<=_0x4c10d5['max']&&_0x314dd1<=_0x5de368;}const _0x3f6f62=_0x24f1c5['SEYJu'](parseInt,_0x58169f,0xa);return!_0x24f1c5[_0x2c325d(0xe8)](isNaN,_0x3f6f62)&&_0x3f6f62>=_0x4c10d5[_0x2c325d(0xeb)]&&_0x3f6f62<=_0x4c10d5['max'];}[a0_0x48098d(0x10c)](_0x1b192f){const _0x3a9409=a0_0x48098d;if(!VALID_QUEUE_NAMES['includes'](_0x1b192f))return{'valid':![],'errors':[_0x3a9409(0xfb)+_0x1b192f+'\x22\x20tidak\x20valid.\x20Pilihan:\x20'+VALID_QUEUE_NAMES['join'](',\x20')]};return{'valid':!![],'errors':[]};}['validateRetryConfig'](_0x3d07e2){const _0x5a918c=a0_0x48098d,_0x24f651={'VSqjC':function(_0xf7be24,_0x4f61a2){return _0xf7be24!==_0x4f61a2;},'UtAJU':_0x5a918c(0xf7),'ftZlX':function(_0x4b6c18,_0x3a2232){return _0x4b6c18<_0x3a2232;},'eRGMo':function(_0xe90a5d,_0x3519ec){return _0xe90a5d>_0x3519ec;},'YtcgK':_0x5a918c(0xc7),'xYyGM':function(_0x1a389a,_0x29ed0a){return _0x1a389a!==_0x29ed0a;},'biLrj':function(_0x41c458,_0x1310d7){return _0x41c458<=_0x1310d7;}},_0x21240b=[];return _0x24f651[_0x5a918c(0x103)](_0x3d07e2[_0x5a918c(0xc4)],undefined)&&((_0x24f651[_0x5a918c(0x103)](typeof _0x3d07e2[_0x5a918c(0xc4)],_0x24f651['UtAJU'])||_0x24f651['ftZlX'](_0x3d07e2['maxAttempts'],0x1)||_0x24f651['eRGMo'](_0x3d07e2['maxAttempts'],0xa))&&_0x21240b[_0x5a918c(0xe2)](_0x5a918c(0xe7))),_0x24f651[_0x5a918c(0x103)](_0x3d07e2['backoff'],undefined)&&(!VALID_BACKOFF_TYPES[_0x5a918c(0x104)](_0x3d07e2['backoff'])&&_0x21240b['push']('Field\x20\x22retry.backoff\x22\x20must\x20be\x20\x22'+VALID_BACKOFF_TYPES[_0x5a918c(0x110)](_0x24f651['YtcgK'])+'\x22')),_0x24f651[_0x5a918c(0x10d)](_0x3d07e2[_0x5a918c(0xd8)],undefined)&&((typeof _0x3d07e2['initialDelay']!==_0x5a918c(0xf7)||_0x24f651['biLrj'](_0x3d07e2[_0x5a918c(0xd8)],0x0))&&_0x21240b[_0x5a918c(0xe2)](_0x5a918c(0xc2))),{'valid':_0x21240b['length']===0x0,'errors':_0x21240b};}[a0_0x48098d(0xfd)](_0x8e79ad,_0x275684){const _0x20422e=a0_0x48098d,_0x296808=path['join'](_0x275684,'src',_0x20422e(0xd9),_0x8e79ad+'.js');if(!fs[_0x20422e(0xdf)](_0x296808))return{'valid':![],'errors':[_0x20422e(0x102)+_0x8e79ad+_0x20422e(0xfa)+_0x296808+')']};return{'valid':!![],'errors':[]};}}module['exports']=new JobValidator();
1
+ const a0_0x130500=a0_0xe6f9;function a0_0x42af(){const _0x34d458=['C2nOzwr1Bgu','Ag91CG','B2jQzwn0','C255tMy','DMfSAwrHDgvdCM9UrxHWCMvZC2LVBG','zerfEKi','q3jVBIbMAwvSzcaI','mtGZmdCWz1f5qvro','iJOGDMfSDwuGiG','Bwf4qxr0zw1WDhm','ChPrrhe','y29Uy3vYCMvUy3K','mti2y3Dyturt','B0LtCu4','AgLNAc1WCMLVCML0Eq','ChvZAa','rMLLBgqGiNr5CguIig11C3qGyMuGiMnYB24IlcbMB3vUzdOGiG','Bwf4','Aw5PDgLHBerLBgf5','DMfSAwq','t0zks3i','wg5ZD0m','BwLU','DMfSAwrHDgvszxrYEunVBMzPzW','mZC4nJu3nMHKzg9vDq','BMfTzq','BwfW','rMLLBgqGiNrPBwvVDxqIig11C3qGyMuGysbUDw1IzxiGpIaWicHPBIbTCYK','sfz4AgW','wenUrM4','DgLTzw91Da','z1LjA2K','C3bSAxq','zxHWB3j0CW','mJaXmdrXteHPyKW','DMfSAwrHDgviyw5KBgvYrxHPC3rZ','y3jVBG','rMLLBgqGiNjLDhj5lMLUAxrPywXezwXHEsiGBxvZDcbIzsbHig51BwjLCIa+idaGkgLUig1Zkq','yMfJA29MzG','wKHLEfy','zxjYB3jZ','BwLUDxrL','ntC1thPtCwjo','iJOGAw52ywXPzcbIyxnLici','iIbVCIaI','rMLLBgqGiMvUywjSzwqIig11C3qGyMuGysbIB29SzwfU','yMPmr24','AM9PBG','CxvLDwu','Bwv0ywrHDge','Cgf0Aa','ndi4ohnzDe1Tsq','y1j1qwm','DhLWzq','CMv0CNK','q3jVBIbLEhbYzxnZAw9Uig11C3qGAgf2zsa1igzPzwXKCYaOBwLUDxrLigHVDxiGzgf5ig1VBNrOihDLzwTKyxKPlcbMB3vUzca','zgvMyxvSDa','mta4whzwChHR','zgf5lw9MlxDLzwS','s3ffs3e','BgvUz3rO','EgXRBwy','zw5HyMXLza','mJyYmZy2oePnsLHKrW','DhjPBq','mteWmZy5ve1SyNzh','ntnLAK1kwM0','zML4zwq','BNvTyMvY','mtu2mtqYnw1iu2TxDq','Aw5JBhvKzxm','x2LZvMfSAwrsyw5Nzq','mZn5rMj0CM0','AgfUzgXLCG','vhHbCKm','C3rYAw5N','sMzUtwW','lMPZicHHyNnVBhv0ztOG'];a0_0x42af=function(){return _0x34d458;};return a0_0x42af();}(function(_0x885825,_0x585fdc){const _0x23162a=a0_0xe6f9,_0x3b5917=_0x885825();while(!![]){try{const _0xa74fe5=-parseInt(_0x23162a(0x14a))/0x1*(-parseInt(_0x23162a(0x13b))/0x2)+parseInt(_0x23162a(0x14d))/0x3+parseInt(_0x23162a(0x178))/0x4*(-parseInt(_0x23162a(0x180))/0x5)+-parseInt(_0x23162a(0x162))/0x6*(-parseInt(_0x23162a(0x149))/0x7)+-parseInt(_0x23162a(0x16e))/0x8+parseInt(_0x23162a(0x141))/0x9*(-parseInt(_0x23162a(0x15d))/0xa)+-parseInt(_0x23162a(0x150))/0xb*(-parseInt(_0x23162a(0x147))/0xc);if(_0xa74fe5===_0x585fdc)break;else _0x3b5917['push'](_0x3b5917['shift']());}catch(_0x2a5614){_0x3b5917['push'](_0x3b5917['shift']());}}}(a0_0x42af,0x557b7));function a0_0xe6f9(_0x41c4df,_0x21b22f){_0x41c4df=_0x41c4df-0x136;const _0x42af24=a0_0x42af();let _0xe6f9d7=_0x42af24[_0x41c4df];if(a0_0xe6f9['npmKPK']===undefined){var _0x1f5708=function(_0x1bed89){const _0x309ae2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3f45cd='',_0x3b349f='';for(let _0x1b23a7=0x0,_0x347002,_0x2399e0,_0x354aca=0x0;_0x2399e0=_0x1bed89['charAt'](_0x354aca++);~_0x2399e0&&(_0x347002=_0x1b23a7%0x4?_0x347002*0x40+_0x2399e0:_0x2399e0,_0x1b23a7++%0x4)?_0x3f45cd+=String['fromCharCode'](0xff&_0x347002>>(-0x2*_0x1b23a7&0x6)):0x0){_0x2399e0=_0x309ae2['indexOf'](_0x2399e0);}for(let _0x94cfa9=0x0,_0xb075d=_0x3f45cd['length'];_0x94cfa9<_0xb075d;_0x94cfa9++){_0x3b349f+='%'+('00'+_0x3f45cd['charCodeAt'](_0x94cfa9)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3b349f);};a0_0xe6f9['iMMeEr']=_0x1f5708,a0_0xe6f9['bAbVmP']={},a0_0xe6f9['npmKPK']=!![];}const _0x34a5df=_0x42af24[0x0],_0x449f3a=_0x41c4df+_0x34a5df,_0x1053d8=a0_0xe6f9['bAbVmP'][_0x449f3a];return!_0x1053d8?(_0xe6f9d7=a0_0xe6f9['iMMeEr'](_0xe6f9d7),a0_0xe6f9['bAbVmP'][_0x449f3a]=_0xe6f9d7):_0xe6f9d7=_0x1053d8,_0xe6f9d7;}const fs=require('fs'),path=require(a0_0x130500(0x13a)),VALID_QUEUE_NAMES=[a0_0x130500(0x164),a0_0x130500(0x140),'low-priority'],VALID_BACKOFF_TYPES=[a0_0x130500(0x14b),'exponential'],SLUG_REGEX=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;class JobValidator{['validateConfig'](_0x224a0e,_0x1c870f){const _0x26ca5a=a0_0x130500,_0x467745={'pzQDq':function(_0x3f6def,_0x95745d){return _0x3f6def!==_0x95745d;},'lmEWq':_0x26ca5a(0x158),'wKPnb':'Config\x20harus\x20berupa\x20object','cRuAc':function(_0xe469b8,_0x3be510){return _0xe469b8!==_0x3be510;},'bjLGn':_0x26ca5a(0x153),'XCnFn':'boolean','IhVyQ':_0x26ca5a(0x183),'oISqN':function(_0x549a0d,_0x5062f5){return _0x549a0d!==_0x5062f5;},'zeJpW':_0x26ca5a(0x171),'bRSBm':function(_0x3bc9ea,_0x15597e){return _0x3bc9ea!==_0x15597e;},'JRGGr':_0x26ca5a(0x14c),'UDFHC':function(_0x4f28c4,_0x4841d7){return _0x4f28c4>_0x4841d7;},'rNDLp':function(_0xc1d81e,_0x38497d){return _0xc1d81e===_0x38497d;},'KqEKq':'Field\x20\x22retry\x22\x20must\x20be\x20an\x20object','ZHexV':function(_0x238085,_0x430034){return _0x238085!==_0x430034;},'ErsMw':function(_0x3115ce,_0x192841){return _0x3115ce===_0x192841;}},_0x144a5c=[];if(!_0x224a0e||_0x467745[_0x26ca5a(0x160)](typeof _0x224a0e,_0x467745['lmEWq']))return{'valid':![],'errors':[_0x467745['wKPnb']]};if(!_0x224a0e['name']||_0x467745[_0x26ca5a(0x13c)](typeof _0x224a0e['name'],_0x26ca5a(0x153)))_0x144a5c[_0x26ca5a(0x165)]('Field\x20\x22name\x22\x20is\x20required\x20(string)');else!SLUG_REGEX['test'](_0x224a0e[_0x26ca5a(0x16f)])&&_0x144a5c['push']('Field\x20\x22name\x22\x20must\x20be\x20in\x20slug\x20format\x20(lowercase,\x20dash):\x20\x22'+_0x224a0e[_0x26ca5a(0x16f)]+'\x22');if(!_0x224a0e[_0x26ca5a(0x13d)]||typeof _0x224a0e[_0x26ca5a(0x13d)]!==_0x467745[_0x26ca5a(0x136)])_0x144a5c[_0x26ca5a(0x165)]('Field\x20\x22type\x22\x20is\x20required\x20(string)');else _0x224a0e[_0x26ca5a(0x13d)]!==_0x26ca5a(0x17a)&&_0x144a5c[_0x26ca5a(0x165)](_0x26ca5a(0x166)+_0x224a0e['type']+'\x22');if(!_0x224a0e['schedule']||_0x467745[_0x26ca5a(0x13c)](typeof _0x224a0e[_0x26ca5a(0x156)],_0x467745[_0x26ca5a(0x136)]))_0x144a5c['push']('Field\x20\x22schedule\x22\x20is\x20required\x20(cron\x20expression\x20string)');else{const _0x307a44=this[_0x26ca5a(0x15a)](_0x224a0e['schedule']);!_0x307a44['valid']&&_0x144a5c[_0x26ca5a(0x165)](..._0x307a44[_0x26ca5a(0x17e)]);}if(!_0x224a0e['handler']||typeof _0x224a0e[_0x26ca5a(0x151)]!==_0x467745[_0x26ca5a(0x136)])_0x144a5c['push']('Field\x20\x22handler\x22\x20is\x20required\x20(path\x20relative\x20to\x20src/jobs/)');else{if(_0x1c870f){const _0x465cb7=this['validateHandlerExists'](_0x224a0e['handler'],_0x1c870f);!_0x465cb7[_0x26ca5a(0x169)]&&_0x144a5c['push'](..._0x465cb7[_0x26ca5a(0x17e)]);}}_0x224a0e[_0x26ca5a(0x146)]!==undefined&&typeof _0x224a0e[_0x26ca5a(0x146)]!==_0x467745[_0x26ca5a(0x173)]&&_0x144a5c[_0x26ca5a(0x165)](_0x467745['IhVyQ']);_0x224a0e[_0x26ca5a(0x174)]!==undefined&&((_0x467745[_0x26ca5a(0x163)](typeof _0x224a0e[_0x26ca5a(0x174)],'number')||_0x224a0e[_0x26ca5a(0x174)]<=0x0)&&_0x144a5c[_0x26ca5a(0x165)](_0x467745['zeJpW']));if(_0x224a0e[_0x26ca5a(0x138)]!==undefined){const _0x6152bc=this['validateQueueName'](_0x224a0e[_0x26ca5a(0x138)]);!_0x6152bc[_0x26ca5a(0x169)]&&_0x144a5c[_0x26ca5a(0x165)](..._0x6152bc[_0x26ca5a(0x17e)]);}_0x467745[_0x26ca5a(0x13c)](_0x224a0e[_0x26ca5a(0x161)],undefined)&&((_0x467745['bRSBm'](typeof _0x224a0e[_0x26ca5a(0x161)],_0x467745['JRGGr'])||_0x224a0e[_0x26ca5a(0x161)]<0x1||_0x467745['UDFHC'](_0x224a0e[_0x26ca5a(0x161)],0x32))&&_0x144a5c[_0x26ca5a(0x165)]('Field\x20\x22concurrency\x22\x20must\x20be\x20a\x20number\x20between\x201-50'));if(_0x467745['oISqN'](_0x224a0e[_0x26ca5a(0x13e)],undefined)){if(_0x467745[_0x26ca5a(0x13c)](typeof _0x224a0e['retry'],_0x26ca5a(0x158))||_0x467745['rNDLp'](_0x224a0e['retry'],null))_0x144a5c['push'](_0x467745[_0x26ca5a(0x143)]);else{const _0x1a0178=this['validateRetryConfig'](_0x224a0e[_0x26ca5a(0x13e)]);!_0x1a0178[_0x26ca5a(0x169)]&&_0x144a5c[_0x26ca5a(0x165)](..._0x1a0178['errors']);}}return _0x467745[_0x26ca5a(0x17d)](_0x224a0e['metadata'],undefined)&&((_0x467745['cRuAc'](typeof _0x224a0e['metadata'],'object')||_0x224a0e['metadata']===null||Array['isArray'](_0x224a0e[_0x26ca5a(0x139)]))&&_0x144a5c[_0x26ca5a(0x165)]('Field\x20\x22metadata\x22\x20must\x20be\x20an\x20object')),{'valid':_0x467745['ErsMw'](_0x144a5c[_0x26ca5a(0x144)],0x0),'errors':_0x144a5c};}['validateCronExpression'](_0x65d5c6){const _0x3b1027=a0_0x130500,_0x251324={'gYIki':'day-of-month','mQhIb':_0x3b1027(0x142),'caxUQ':function(_0x30442d,_0x25b82d){return _0x30442d!==_0x25b82d;},'HVxhl':function(_0x310f02,_0x2ae382,_0x2dd99c){return _0x310f02(_0x2ae382,_0x2dd99c);},'xlkmf':function(_0x3b1c63,_0x3d1cf0){return _0x3b1c63(_0x3d1cf0);},'tUeXs':function(_0x113f71,_0x4be17b){return _0x113f71<_0x4be17b;}},_0xa4a34=[],_0x109783=_0x65d5c6[_0x3b1027(0x148)]()['split'](/\s+/);if(_0x109783['length']!==0x5)return _0xa4a34[_0x3b1027(0x165)](_0x3b1027(0x13f)+_0x109783['length']+'\x20field(s):\x20\x22'+_0x65d5c6+'\x22'),{'valid':![],'errors':_0xa4a34};const _0x2ab79b=[_0x3b1027(0x17f),_0x3b1027(0x157),_0x251324[_0x3b1027(0x175)],'month',_0x251324['mQhIb']],_0x2f3c61=[{'min':0x0,'max':0x3b},{'min':0x0,'max':0x17},{'min':0x1,'max':0x1f},{'min':0x1,'max':0xc},{'min':0x0,'max':0x7}],_0x10b613=/^(\*|[0-9]+(-[0-9]+)?)([,/](\*|[0-9]+(-[0-9]+)?))*$/;for(let _0x34eb71=0x0;_0x34eb71<0x5;_0x34eb71++){const _0xcf66b2=_0x109783[_0x34eb71];if(_0xcf66b2==='*')continue;if(_0xcf66b2['includes']('/')){const [_0x2dccea,_0x30ba81]=_0xcf66b2[_0x3b1027(0x176)]('/');_0x251324['caxUQ'](_0x2dccea,'*')&&!this[_0x3b1027(0x14f)](_0x2dccea,_0x2f3c61[_0x34eb71])&&_0xa4a34['push'](_0x3b1027(0x15c)+_0x2ab79b[_0x34eb71]+_0x3b1027(0x181)+_0x2dccea+'\x22');const _0x45f437=_0x251324[_0x3b1027(0x172)](parseInt,_0x30ba81,0xa);(_0x251324[_0x3b1027(0x145)](isNaN,_0x45f437)||_0x251324['tUeXs'](_0x45f437,0x1))&&_0xa4a34[_0x3b1027(0x165)](_0x3b1027(0x15c)+_0x2ab79b[_0x34eb71]+'\x22:\x20step\x20\x22/'+_0x30ba81+'\x22\x20must\x20be\x20a\x20number\x20>\x200');continue;}const _0x32d5f2=_0xcf66b2[_0x3b1027(0x176)](',');for(const _0x3c3bda of _0x32d5f2){!this[_0x3b1027(0x14f)](_0x3c3bda,_0x2f3c61[_0x34eb71])&&_0xa4a34['push'](_0x3b1027(0x15c)+_0x2ab79b[_0x34eb71]+_0x3b1027(0x15e)+_0x3c3bda+'\x22\x20is\x20out\x20of\x20range\x20'+_0x2f3c61[_0x34eb71]['min']+'-'+_0x2f3c61[_0x34eb71]['max']);}}return{'valid':_0xa4a34[_0x3b1027(0x144)]===0x0,'errors':_0xa4a34};}[a0_0x130500(0x14f)](_0x5d5ecd,_0x5b99fe){const _0x399264=a0_0x130500,_0xc66c7d={'GiVBN':function(_0x501b00,_0x12ecac){return _0x501b00(_0x12ecac);},'MRUoI':function(_0x4c8ab3,_0x493ac4){return _0x4c8ab3<=_0x493ac4;},'XnswC':function(_0x438dc8,_0x457e66,_0x36f703){return _0x438dc8(_0x457e66,_0x36f703);},'dDEzB':function(_0x464e6d,_0x28dc0b){return _0x464e6d>=_0x28dc0b;}};if(_0x5d5ecd['includes']('-')){const [_0x10182b,_0x575196]=_0x5d5ecd[_0x399264(0x176)]('-')[_0x399264(0x170)](Number);return!_0xc66c7d['GiVBN'](isNaN,_0x10182b)&&!isNaN(_0x575196)&&_0x10182b>=_0x5b99fe[_0x399264(0x16c)]&&_0xc66c7d['MRUoI'](_0x10182b,_0x5b99fe['max'])&&_0x575196>=_0x5b99fe[_0x399264(0x16c)]&&_0x575196<=_0x5b99fe['max']&&_0x10182b<=_0x575196;}const _0x2ed306=_0xc66c7d[_0x399264(0x16b)](parseInt,_0x5d5ecd,0xa);return!isNaN(_0x2ed306)&&_0xc66c7d[_0x399264(0x15b)](_0x2ed306,_0x5b99fe['min'])&&_0x2ed306<=_0x5b99fe[_0x399264(0x167)];}['validateQueueName'](_0x5e0ebe){const _0x53a669=a0_0x130500;if(!VALID_QUEUE_NAMES['includes'](_0x5e0ebe))return{'valid':![],'errors':['Queue\x20\x22'+_0x5e0ebe+'\x22\x20tidak\x20valid.\x20Pilihan:\x20'+VALID_QUEUE_NAMES[_0x53a669(0x137)](',\x20')]};return{'valid':!![],'errors':[]};}[a0_0x130500(0x16d)](_0xe9921d){const _0x5cb707=a0_0x130500,_0x5206ae={'snyNf':function(_0x2ffb39,_0x330a47){return _0x2ffb39!==_0x330a47;},'ceTfy':_0x5cb707(0x14c),'JfnMl':function(_0x5021be,_0x71ba2b){return _0x5021be<_0x71ba2b;},'voYHv':'Field\x20\x22retry.maxAttempts\x22\x20must\x20be\x20a\x20number\x20between\x201-10','KShNQ':_0x5cb707(0x182),'uCrNz':function(_0x166b6a,_0xd48bbf){return _0x166b6a!==_0xd48bbf;},'fzRBQ':function(_0x212477,_0x39a28b){return _0x212477<=_0x39a28b;},'OFJKr':_0x5cb707(0x17b)},_0x562dd3=[];return _0x5206ae['snyNf'](_0xe9921d['maxAttempts'],undefined)&&((_0x5206ae[_0x5cb707(0x159)](typeof _0xe9921d['maxAttempts'],_0x5206ae['ceTfy'])||_0x5206ae[_0x5cb707(0x154)](_0xe9921d[_0x5cb707(0x15f)],0x1)||_0xe9921d[_0x5cb707(0x15f)]>0xa)&&_0x562dd3['push'](_0x5206ae['voYHv'])),_0xe9921d[_0x5cb707(0x17c)]!==undefined&&(!VALID_BACKOFF_TYPES[_0x5cb707(0x14e)](_0xe9921d['backoff'])&&_0x562dd3[_0x5cb707(0x165)]('Field\x20\x22retry.backoff\x22\x20must\x20be\x20\x22'+VALID_BACKOFF_TYPES[_0x5cb707(0x137)](_0x5206ae['KShNQ'])+'\x22')),_0xe9921d[_0x5cb707(0x168)]!==undefined&&((_0x5206ae['uCrNz'](typeof _0xe9921d[_0x5cb707(0x168)],_0x5cb707(0x14c))||_0x5206ae['fzRBQ'](_0xe9921d[_0x5cb707(0x168)],0x0))&&_0x562dd3[_0x5cb707(0x165)](_0x5206ae[_0x5cb707(0x16a)])),{'valid':_0x562dd3[_0x5cb707(0x144)]===0x0,'errors':_0x562dd3};}[a0_0x130500(0x179)](_0x35adbf,_0xb056b0){const _0x518f28=a0_0x130500,_0x3cfbe8={'TxArC':'src','gMEqU':'jobs'},_0x133f87=path['join'](_0xb056b0,_0x3cfbe8[_0x518f28(0x152)],_0x3cfbe8['gMEqU'],_0x35adbf+'.js');if(!fs['existsSync'](_0x133f87))return{'valid':![],'errors':['Handler\x20file\x20tidak\x20ditemukan:\x20src/jobs/'+_0x35adbf+_0x518f28(0x155)+_0x133f87+')']};return{'valid':!![],'errors':[]};}}module[a0_0x130500(0x177)]=new JobValidator();