@restforgejs/platform 5.3.9 → 5.3.10

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 (170) hide show
  1. package/build-info.json +2 -2
  2. package/cli/consumer-deploy.js +1 -1
  3. package/cli/consumer.js +1 -1
  4. package/cli/designer.js +1 -1
  5. package/generators/cli/fast-track.js +43 -6
  6. package/generators/lib/templates/dashboard-catalog.js +1 -1
  7. package/generators/lib/templates/db-connection-env.js +1 -1
  8. package/generators/lib/templates/dbschema-catalog.js +1 -1
  9. package/generators/lib/templates/field-validation-catalog.js +1 -1
  10. package/generators/lib/templates/mysql-template.js +1 -1
  11. package/generators/lib/templates/oracle-template.js +1 -1
  12. package/generators/lib/templates/postgres-template.js +1 -1
  13. package/generators/lib/templates/query-declarative-catalog.js +1 -1
  14. package/generators/lib/templates/sqlite-template.js +1 -1
  15. package/integrity-manifest.json +18 -18
  16. package/package.json +2 -1
  17. package/scripts/verify-integrity.js +1 -1
  18. package/server.js +1 -1
  19. package/src/components/handlers/adjust_handler.js +1 -1
  20. package/src/components/handlers/audit_handler.js +1 -1
  21. package/src/components/handlers/delete_handler.js +1 -1
  22. package/src/components/handlers/export_handler.js +1 -1
  23. package/src/components/handlers/import_handler.js +1 -1
  24. package/src/components/handlers/insert_handler.js +1 -1
  25. package/src/components/handlers/update_handler.js +1 -1
  26. package/src/components/handlers/upload_handler.js +1 -1
  27. package/src/components/handlers/workflow_handler.js +1 -1
  28. package/src/components/integrations/webhook.js +1 -1
  29. package/src/consumers/baseConsumer.js +1 -1
  30. package/src/consumers/declarativeMapper.js +1 -1
  31. package/src/consumers/handlers/apiHandler.js +1 -1
  32. package/src/consumers/handlers/consoleHandler.js +1 -1
  33. package/src/consumers/handlers/databaseHandler.js +1 -1
  34. package/src/consumers/handlers/index.js +1 -1
  35. package/src/consumers/handlers/kafkaHandler.js +1 -1
  36. package/src/consumers/index.js +1 -1
  37. package/src/consumers/messageTransformer.js +1 -1
  38. package/src/consumers/validator.js +1 -1
  39. package/src/core/db/dialect/base-dialect.js +1 -1
  40. package/src/core/db/dialect/index.js +1 -1
  41. package/src/core/db/dialect/mysql-dialect.js +1 -1
  42. package/src/core/db/dialect/oracle-dialect.js +1 -1
  43. package/src/core/db/dialect/postgres-dialect.js +1 -1
  44. package/src/core/db/dialect/sqlite-dialect.js +1 -1
  45. package/src/core/db/flatten-helper.js +1 -1
  46. package/src/core/db/query-builder-error.js +1 -1
  47. package/src/core/db/query-builder.js +1 -1
  48. package/src/core/db/relation-helper.js +1 -1
  49. package/src/core/handlers/delete_handler.js +1 -1
  50. package/src/core/handlers/insert_handler.js +1 -1
  51. package/src/core/handlers/update_handler.js +1 -1
  52. package/src/core/models/base-model.js +1 -1
  53. package/src/core/utils/cache-manager.js +1 -1
  54. package/src/core/utils/component-engine.js +1 -1
  55. package/src/core/utils/context-builder.js +1 -1
  56. package/src/core/utils/datetime-formatter.js +1 -1
  57. package/src/core/utils/datetime-parser.js +1 -1
  58. package/src/core/utils/db.js +1 -1
  59. package/src/core/utils/logger.js +1 -1
  60. package/src/core/utils/payload-loader.js +1 -1
  61. package/src/core/utils/security-checks.js +1 -1
  62. package/src/middleware/body-options.js +1 -1
  63. package/src/middleware/cors.js +1 -1
  64. package/src/middleware/idempotency.js +1 -1
  65. package/src/middleware/rate-limiter.js +1 -1
  66. package/src/middleware/request-logger.js +1 -1
  67. package/src/middleware/security-headers.js +1 -1
  68. package/src/models/base-model-mysql.js +1 -1
  69. package/src/models/base-model-oracle.js +1 -1
  70. package/src/models/base-model-sqlite.js +1 -1
  71. package/src/models/base-model.js +1 -1
  72. package/src/pro/caching/redis-client.js +1 -1
  73. package/src/pro/caching/redis-helper.js +1 -1
  74. package/src/pro/consumers/baseConsumer.js +1 -1
  75. package/src/pro/consumers/declarativeMapper.js +1 -1
  76. package/src/pro/consumers/handlers/apiHandler.js +1 -1
  77. package/src/pro/consumers/handlers/consoleHandler.js +1 -1
  78. package/src/pro/consumers/handlers/databaseHandler.js +1 -1
  79. package/src/pro/consumers/handlers/index.js +1 -1
  80. package/src/pro/consumers/handlers/kafkaHandler.js +1 -1
  81. package/src/pro/consumers/index.js +1 -1
  82. package/src/pro/consumers/messageTransformer.js +1 -1
  83. package/src/pro/consumers/validator.js +1 -1
  84. package/src/pro/database/base-model-mysql.js +1 -1
  85. package/src/pro/database/base-model-oracle.js +1 -1
  86. package/src/pro/database/base-model-sqlite.js +1 -1
  87. package/src/pro/database/db-mysql.js +1 -1
  88. package/src/pro/database/db-oracle.js +1 -1
  89. package/src/pro/database/db-sqlite.js +1 -1
  90. package/src/pro/excel/excel-generator.js +1 -1
  91. package/src/pro/excel/excel-parser.js +1 -1
  92. package/src/pro/excel/export-service.js +1 -1
  93. package/src/pro/excel/export_handler.js +1 -1
  94. package/src/pro/excel/import-service.js +1 -1
  95. package/src/pro/excel/import-validator.js +1 -1
  96. package/src/pro/excel/import_handler.js +1 -1
  97. package/src/pro/excel/upsert-builder.js +1 -1
  98. package/src/pro/idgen/idgen-routes.js +1 -1
  99. package/src/pro/integrations/lookup-resolver.js +1 -1
  100. package/src/pro/integrations/upload-handler-v2.js +1 -1
  101. package/src/pro/integrations/upload-handler.js +1 -1
  102. package/src/pro/integrations/webhook.js +1 -1
  103. package/src/pro/locking/lock-routes.js +1 -1
  104. package/src/pro/locking/resource-lock-manager.js +1 -1
  105. package/src/pro/messaging/kafkaConsumerService.js +1 -1
  106. package/src/pro/messaging/kafkaService.js +1 -1
  107. package/src/pro/messaging/messagehubService.js +1 -1
  108. package/src/pro/messaging/rabbitmqService.js +1 -1
  109. package/src/pro/scheduler/job-manager.js +1 -1
  110. package/src/pro/scheduler/job-routes.js +1 -1
  111. package/src/pro/scheduler/job-validator.js +1 -1
  112. package/src/pro/storage/base-storage-provider.js +1 -1
  113. package/src/pro/storage/file-metadata-helper.js +1 -1
  114. package/src/pro/storage/index.js +1 -1
  115. package/src/pro/storage/local-storage-provider.js +1 -1
  116. package/src/pro/storage/s3-storage-provider.js +1 -1
  117. package/src/pro/storage/upload-cleanup-job.js +1 -1
  118. package/src/pro/storage/upload-cleanup-scheduler.js +1 -1
  119. package/src/pro/storage/upload-pending-tracker.js +1 -1
  120. package/src/pro/websocket/broadcast-helper.js +1 -1
  121. package/src/pro/websocket/index.js +1 -1
  122. package/src/pro/websocket/livesync-server.js +1 -1
  123. package/src/pro/websocket/ws-broadcaster.js +1 -1
  124. package/src/services/export-service.js +1 -1
  125. package/src/services/import-service.js +1 -1
  126. package/src/services/kafkaConsumerService.js +1 -1
  127. package/src/services/kafkaService.js +1 -1
  128. package/src/services/messagehubService.js +1 -1
  129. package/src/services/rabbitmqService.js +1 -1
  130. package/src/utils/cache-invalidation-registry.js +1 -1
  131. package/src/utils/cache-manager.js +1 -1
  132. package/src/utils/component-engine.js +1 -1
  133. package/src/utils/config-extractor.js +1 -1
  134. package/src/utils/consumerLogger.js +1 -1
  135. package/src/utils/context-builder.js +1 -1
  136. package/src/utils/dashboard-helpers.js +1 -1
  137. package/src/utils/dateHelper.js +1 -1
  138. package/src/utils/datetime-formatter.js +1 -1
  139. package/src/utils/datetime-parser.js +1 -1
  140. package/src/utils/db-bootstrap.js +1 -1
  141. package/src/utils/db-mysql.js +1 -1
  142. package/src/utils/db-oracle.js +1 -1
  143. package/src/utils/db-sqlite.js +1 -1
  144. package/src/utils/db.js +1 -1
  145. package/src/utils/demo-generator.js +1 -1
  146. package/src/utils/excel-generator.js +1 -1
  147. package/src/utils/excel-parser.js +1 -1
  148. package/src/utils/file-watcher.js +1 -1
  149. package/src/utils/id-generator.js +1 -1
  150. package/src/utils/idempotency-manager.js +1 -1
  151. package/src/utils/import-validator.js +1 -1
  152. package/src/utils/license-client.js +1 -1
  153. package/src/utils/lock-manager.js +1 -1
  154. package/src/utils/logger.js +1 -1
  155. package/src/utils/lookup-resolver.js +1 -1
  156. package/src/utils/payload-loader.js +1 -1
  157. package/src/utils/processor-response.js +1 -1
  158. package/src/utils/rabbitmq.js +1 -1
  159. package/src/utils/redis-client.js +1 -1
  160. package/src/utils/redis-helper.js +1 -1
  161. package/src/utils/request-scope.js +1 -1
  162. package/src/utils/security-checks.js +1 -1
  163. package/src/utils/service-resolver.js +1 -1
  164. package/src/utils/shutdown-coordinator.js +1 -1
  165. package/src/utils/soft-delete-dashboard-guard.js +1 -1
  166. package/src/utils/sql-table-extractor.js +1 -1
  167. package/src/utils/trusted-keys.js +1 -1
  168. package/src/utils/upload-handler.js +1 -1
  169. package/src/utils/upsert-builder.js +1 -1
  170. package/src/utils/workflow-hook-executor.js +1 -1
@@ -1 +1 @@
1
- const a0_0x29de2c=a0_0x242f;(function(_0x446dfd,_0x2aef81){const _0x32cf5e=a0_0x242f,_0x460b07=_0x446dfd();while(!![]){try{const _0x52285d=-parseInt(_0x32cf5e(0xde))/0x1+-parseInt(_0x32cf5e(0x115))/0x2+-parseInt(_0x32cf5e(0xd6))/0x3+parseInt(_0x32cf5e(0xfb))/0x4+parseInt(_0x32cf5e(0xdb))/0x5*(-parseInt(_0x32cf5e(0x10e))/0x6)+parseInt(_0x32cf5e(0x101))/0x7+parseInt(_0x32cf5e(0x10b))/0x8;if(_0x52285d===_0x2aef81)break;else _0x460b07['push'](_0x460b07['shift']());}catch(_0xc80804){_0x460b07['push'](_0x460b07['shift']());}}}(a0_0x86f5,0xc5d41));const {createConnection,createChannel,setupInfrastructure,closeConnection,getConfig}=require('../utils/rabbitmq'),{formatDate}=require('../utils/dateHelper');class RabbitMQService{constructor(){const _0x5caf67=a0_0x242f,_0x1893f2=_0x5caf67(0xc5)['split']('|');let _0x5b5f9e=0x0;while(!![]){switch(_0x1893f2[_0x5b5f9e++]){case'0':this['connection']=null;continue;case'1':this[_0x5caf67(0xc1)]=null;continue;case'2':this[_0x5caf67(0xfe)]=![];continue;case'3':this[_0x5caf67(0x10c)]=[];continue;case'4':this[_0x5caf67(0x102)]=getConfig();continue;}break;}}async[a0_0x29de2c(0xef)](){const _0x24dcce=a0_0x29de2c,_0x3b4477={'Kihxw':'5|6|1|3|0|4|7|2'};try{const _0x378a95=_0x3b4477[_0x24dcce(0xf9)][_0x24dcce(0xe0)]('|');let _0xc6fb9f=0x0;while(!![]){switch(_0x378a95[_0xc6fb9f++]){case'0':await setupInfrastructure(this[_0x24dcce(0xc1)]);continue;case'1':await this['channel'][_0x24dcce(0xf8)](0x1);continue;case'2':return!![];case'3':console['log']('['+formatDate(new Date())+']\x20Prefetch\x20diatur\x20ke\x201');continue;case'4':this[_0x24dcce(0xfe)]=!![];continue;case'5':this[_0x24dcce(0xc4)]=await createConnection();continue;case'6':this['channel']=await createChannel(this[_0x24dcce(0xc4)]);continue;case'7':this['connection']['on'](_0x24dcce(0xec),()=>{const _0x2b611a=_0x24dcce;console[_0x2b611a(0xc9)]('['+formatDate(new Date())+_0x2b611a(0x112)),this['isConnected']=![],setTimeout(()=>this[_0x2b611a(0xdd)](),0x1388);});continue;}break;}}catch(_0x2f9c05){return console[_0x24dcce(0xc9)]('['+formatDate(new Date())+']\x20Failed\x20to\x20initialize\x20RabbitMQ:\x20'+_0x2f9c05['message']),this[_0x24dcce(0xfe)]=![],![];}}async['reconnect'](){const _0x21baf6=a0_0x29de2c,_0x1847fc={'QPdIh':function(_0x5c8bb2,_0x273f32){return _0x5c8bb2(_0x273f32);},'TnNrS':function(_0x506412,_0x539b0c,_0x5e1db2){return _0x506412(_0x539b0c,_0x5e1db2);}};console[_0x21baf6(0xee)]('['+formatDate(new Date())+_0x21baf6(0xc8));try{await this['initialize'](),this[_0x21baf6(0xfe)]&&(console['log']('['+_0x1847fc['QPdIh'](formatDate,new Date())+']\x20Successfully\x20reconnected\x20to\x20RabbitMQ'),await this[_0x21baf6(0x113)]());}catch(_0x12f58e){console['error']('['+formatDate(new Date())+_0x21baf6(0xd7)+_0x12f58e[_0x21baf6(0xd1)]),_0x1847fc[_0x21baf6(0x100)](setTimeout,()=>this[_0x21baf6(0xdd)](),0x1388);}}async[a0_0x29de2c(0xdc)](_0x5ed321){const _0x87644c=a0_0x29de2c,_0x3cf362={'hXAtV':_0x87644c(0xf0),'KYOXP':_0x87644c(0xe7),'UbvuT':function(_0x1a5f46,_0x45e2a5){return _0x1a5f46(_0x45e2a5);},'sabyI':function(_0x12c9ac,_0x3e7d4f){return _0x12c9ac(_0x3e7d4f);},'jSJSj':function(_0x4ffca1,_0x5bf9e7){return _0x4ffca1(_0x5bf9e7);},'jAxsk':function(_0x34088c,_0x23d0cb){return _0x34088c===_0x23d0cb;},'cBAyb':_0x87644c(0xd9),'YPYrh':'found','eKWcX':function(_0x2a76ef,_0x198105){return _0x2a76ef(_0x198105);},'Zzeav':_0x87644c(0x10d),'ASWQK':function(_0x32f1d7,_0x4f1bf3){return _0x32f1d7(_0x4f1bf3);}};try{!this['isConnected']&&(this['connection']=await createConnection(),this['channel']=await createChannel(this['connection']),this['isConnected']=!![]);const _0x558f76=process[_0x87644c(0xe9)][_0x87644c(0x111)]||_0x3cf362['hXAtV'],_0x390015=_0x558f76+'-retry-exchange';await this[_0x87644c(0xc1)]['assertExchange'](_0x390015,_0x3cf362[_0x87644c(0xed)],{'durable':!![],'autoDelete':![]}),console[_0x87644c(0xee)]('['+_0x3cf362[_0x87644c(0xfa)](formatDate,new Date())+']\x20Retry\x20exchange\x20'+_0x390015+_0x87644c(0xe2)),await this[_0x87644c(0xc1)]['assertExchange'](_0x5ed321['exchange'],_0x87644c(0xe7),{'durable':!![],'autoDelete':![]}),console[_0x87644c(0xee)]('['+formatDate(new Date())+']\x20Exchange\x20'+_0x5ed321[_0x87644c(0x104)]+_0x87644c(0xe2));const _0x3848f0=_0x5ed321['routingKey']+'_retry',_0x313b91={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':_0x5ed321['exchange'],'x-dead-letter-routing-key':_0x5ed321['routingKey']}};await this['channel']['assertQueue'](_0x3848f0,_0x313b91),console['log']('['+_0x3cf362[_0x87644c(0xe3)](formatDate,new Date())+_0x87644c(0xf4)+_0x3848f0+'\x20created/ready'),await this[_0x87644c(0xc1)][_0x87644c(0xe5)](_0x3848f0,_0x390015,_0x5ed321[_0x87644c(0xcc)]),console[_0x87644c(0xee)]('['+_0x3cf362['jSJSj'](formatDate,new Date())+']\x20Retry\x20binding\x20for\x20'+_0x5ed321[_0x87644c(0xcc)]+'\x20created');const _0x116d59={'durable':!![],'arguments':{'x-dead-letter-exchange':_0x390015,'x-dead-letter-routing-key':_0x5ed321['routingKey']}};try{const _0x1be28b=await this['channel'][_0x87644c(0xf5)](_0x5ed321['queue'],_0x116d59);console['log']('['+formatDate(new Date())+']\x20Queue\x20'+_0x5ed321['queue']+'\x20'+(_0x3cf362[_0x87644c(0xc6)](_0x1be28b[_0x87644c(0xd3)],_0x5ed321[_0x87644c(0xd3)])?_0x3cf362['cBAyb']:_0x3cf362[_0x87644c(0x109)])+'\x20with\x20DLX'),await this['channel'][_0x87644c(0xe5)](_0x5ed321['queue'],_0x5ed321[_0x87644c(0x104)],_0x5ed321['routingKey']),console['log']('['+_0x3cf362[_0x87644c(0xf2)](formatDate,new Date())+_0x87644c(0xcf)+_0x5ed321['exchange']+_0x87644c(0xd5)+_0x5ed321[_0x87644c(0xd3)]+'\x20('+_0x5ed321['routingKey']+')\x20created');}catch(_0x437454){if(_0x437454['message']['includes'](_0x3cf362[_0x87644c(0xf7)])&&_0x437454[_0x87644c(0xd1)]['includes']('x-dead-letter-routing-key')){console['error']('\x0a['+_0x3cf362['ASWQK'](formatDate,new Date())+']\x20ERROR:\x20Queue\x20'+_0x5ed321[_0x87644c(0xd3)]+_0x87644c(0xc3)),console[_0x87644c(0xc9)]('Trying\x20alternative\x20queue\x20name...');const _0x1b662e=_0x5ed321[_0x87644c(0xcc)]+_0x87644c(0xf3),_0x474ce2=await this['channel'][_0x87644c(0xf5)](_0x1b662e,_0x116d59);console['log']('['+formatDate(new Date())+_0x87644c(0x116)+_0x1b662e+'\x20created\x20with\x20DLX'),await this['channel'][_0x87644c(0xe5)](_0x1b662e,_0x5ed321[_0x87644c(0x104)],_0x5ed321[_0x87644c(0xcc)]),console[_0x87644c(0xee)]('['+_0x3cf362[_0x87644c(0xfa)](formatDate,new Date())+']\x20Binding\x20'+_0x5ed321['exchange']+'\x20->\x20'+_0x1b662e+'\x20('+_0x5ed321[_0x87644c(0xcc)]+_0x87644c(0xf6)),_0x5ed321['queue']=_0x1b662e;}else{console[_0x87644c(0xc9)]('['+_0x3cf362['UbvuT'](formatDate,new Date())+_0x87644c(0xcd)+_0x5ed321['queue']+':',_0x437454[_0x87644c(0xd1)]);throw _0x437454;}}return!![];}catch(_0x56ff66){return console['error']('['+_0x3cf362[_0x87644c(0xe3)](formatDate,new Date())+']\x20Error\x20saat\x20setup\x20infrastruktur:\x20'+_0x56ff66[_0x87644c(0xd1)]),![];}}async[a0_0x29de2c(0x110)](_0x1a047c,_0x1c2091){const _0x53f067=a0_0x29de2c,_0xc9186e={'EMDQX':function(_0x33eec8,_0x3bda93){return _0x33eec8!==_0x3bda93;},'gGXnj':_0x53f067(0xd2),'Dwyus':_0x53f067(0xe6)};if(!this['isConnected'])try{await this['initialize']();}catch(_0x3a7e77){return{'success':![],'message':'Cannot\x20connect\x20to\x20RabbitMQ:\x20'+_0x3a7e77[_0x53f067(0xd1)],'data':null};}try{const _0x525f28=_0xc9186e[_0x53f067(0xe1)](_0x1c2091['auto_retry'],undefined)?_0x1c2091[_0x53f067(0xd8)]:![],_0x20e065=_0x1c2091['max_retries']||0x3,_0x1513cb={'rabbitmq':{'exchange':_0x1c2091[_0x53f067(0x104)],'queue':_0x1c2091[_0x53f067(0xd3)],'routing_key':_0x1c2091['routingKey'],'auto_retry':_0x525f28,'max_retries':_0x20e065},'message':_0x1a047c};await this['setupCollectorInfrastructure'](_0x1c2091);const _0x39578f=new Date(),_0x436424={'timestamp':_0x39578f['toISOString'](),'content':JSON[_0x53f067(0xc2)](_0x1513cb)},_0x1ebd57=this['channel'][_0x53f067(0x105)](_0x1c2091['exchange'],_0x1c2091['routingKey'],Buffer['from'](JSON['stringify'](_0x436424)),{'persistent':!![],'contentType':_0xc9186e[_0x53f067(0xcb)],'timestamp':_0x39578f[_0x53f067(0x10a)](),'messageId':_0x39578f['getTime']()+'-'+Math[_0x53f067(0xca)]()[_0x53f067(0x108)](0x24)[_0x53f067(0xeb)](0x7),'headers':{'x-auto-retry':_0x525f28,'x-max-retry':_0x20e065,'x-retry-count':0x0,'x-retry-interval':0x2710}});if(_0x1ebd57){console['log']('['+formatDate(_0x39578f)+']\x20Message\x20sent\x20to\x20RabbitMQ\x20successfully:',{'exchange':_0x1c2091[_0x53f067(0x104)],'routing_key':_0x1c2091[_0x53f067(0xcc)],'queue':_0x1c2091['queue'],'sendAt':_0x39578f['toISOString']()});const _0x35e1bf='queue-'+_0x39578f['getTime']()+'-'+Math[_0x53f067(0xca)]()['toString'](0x24)['substring'](0x7);return{'success':!![],'message':'Data\x20sent\x20to\x20queue\x20successfully','data':{'id':_0x35e1bf,'queueInfo':{'exchange':_0x1c2091[_0x53f067(0x104)],'queue':_0x1c2091[_0x53f067(0xd3)],'routingKey':_0x1c2091['routingKey']}}};}else throw new Error(_0xc9186e['Dwyus']);}catch(_0xe0aaa1){return console['error']('['+formatDate(new Date())+']\x20Error\x20sending\x20to\x20RabbitMQ:\x20'+_0xe0aaa1[_0x53f067(0xd1)]),{'success':![],'message':_0x53f067(0xc7)+_0xe0aaa1['message'],'data':null};}}[a0_0x29de2c(0xd4)](_0x52cca2){const _0x28bf5f=a0_0x29de2c,_0x216ad8={'oHzAZ':_0x28bf5f(0x114),'GMnKm':function(_0x469c8d,_0x282afb){return _0x469c8d(_0x282afb);}};typeof _0x52cca2===_0x216ad8[_0x28bf5f(0xf1)]?(this[_0x28bf5f(0x10c)][_0x28bf5f(0xd0)](_0x52cca2),console[_0x28bf5f(0xee)]('['+_0x216ad8[_0x28bf5f(0xda)](formatDate,new Date())+']\x20Message\x20handler\x20registered')):console[_0x28bf5f(0xc9)]('['+_0x216ad8[_0x28bf5f(0xda)](formatDate,new Date())+']\x20Message\x20handler\x20must\x20be\x20a\x20function');}async['processMessage'](_0x2dcc7e){const _0x55a126=a0_0x29de2c,_0x5a2c27={'HcdmA':function(_0x3a6824,_0x3bd79d){return _0x3a6824(_0x3bd79d);}};if(this[_0x55a126(0x10c)][_0x55a126(0xe8)]===0x0)return console[_0x55a126(0xff)]('['+formatDate(new Date())+_0x55a126(0xfc)),!![];try{for(const _0x1cda00 of this['messageHandlers']){await _0x1cda00(_0x2dcc7e);}return!![];}catch(_0x5da0b6){return console[_0x55a126(0xc9)]('['+_0x5a2c27[_0x55a126(0x107)](formatDate,new Date())+_0x55a126(0x119)+_0x5da0b6[_0x55a126(0xd1)]),![];}}async['startConsume'](){const _0x1e6aa7=a0_0x29de2c,_0x1f7fbd={'NTHqp':function(_0x51addd,_0x11a07e){return _0x51addd!==_0x11a07e;},'mjbfg':function(_0x4bcae4,_0xcd9813){return _0x4bcae4(_0xcd9813);},'fqScc':function(_0x448da5,_0x535475){return _0x448da5(_0x535475);},'tGAyr':'---','LJFsj':function(_0x32d028,_0x777221){return _0x32d028(_0x777221);},'ItSIa':function(_0x2c5a20,_0x3e9cfd){return _0x2c5a20(_0x3e9cfd);}};if(!this[_0x1e6aa7(0xfe)])return console[_0x1e6aa7(0xc9)]('['+formatDate(new Date())+']\x20Cannot\x20start\x20consuming:\x20not\x20connected\x20to\x20RabbitMQ'),![];try{return console[_0x1e6aa7(0xee)]('['+_0x1f7fbd[_0x1e6aa7(0x106)](formatDate,new Date())+_0x1e6aa7(0xfd)+this['config'][_0x1e6aa7(0xd3)]+'\x22...'),this['channel'][_0x1e6aa7(0x10f)](this['config'][_0x1e6aa7(0xd3)],async _0x552a6d=>{const _0x1115fa=_0x1e6aa7;if(_0x1f7fbd[_0x1115fa(0x103)](_0x552a6d,null)){const _0x1435ce=new Date();let _0x3eccc7;try{_0x3eccc7=JSON[_0x1115fa(0xdf)](_0x552a6d[_0x1115fa(0x11a)][_0x1115fa(0x108)]());}catch(_0x51132c){console[_0x1115fa(0xc9)]('['+_0x1f7fbd[_0x1115fa(0xce)](formatDate,_0x1435ce)+']\x20Failed\x20to\x20parse\x20message:\x20'+_0x51132c['message']),console['error']('Message\x20content:\x20'+_0x552a6d[_0x1115fa(0x11a)]['toString']()),this[_0x1115fa(0xc1)][_0x1115fa(0x118)](_0x552a6d);return;}const _0x3a6401=_0x552a6d['properties']['timestamp']?new Date(_0x552a6d['properties']['timestamp']):new Date(),_0x21047b=await this[_0x1115fa(0x117)](_0x3eccc7);_0x21047b?(console['log']('['+_0x1f7fbd['fqScc'](formatDate,new Date())+']\x20Message\x20processed\x20successfully'),this[_0x1115fa(0xc1)][_0x1115fa(0x118)](_0x552a6d)):(console['error']('['+formatDate(new Date())+_0x1115fa(0xea)),this[_0x1115fa(0xc1)]['nack'](_0x552a6d,![],!![])),console[_0x1115fa(0xee)](_0x1f7fbd['tGAyr']);}},{'noAck':![]}),!![];}catch(_0x115bbe){return console[_0x1e6aa7(0xc9)]('['+_0x1f7fbd['ItSIa'](formatDate,new Date())+']\x20Failed\x20to\x20start\x20consuming:\x20'+_0x115bbe['message']),![];}}async['close'](){const _0x1d582c=a0_0x29de2c;this[_0x1d582c(0xc4)]&&(await closeConnection(this[_0x1d582c(0xc4)]),this[_0x1d582c(0xfe)]=![]);}}let instance=null;function getInstance(){return!instance&&(instance=new RabbitMQService()),instance;}module[a0_0x29de2c(0xe4)]={'getInstance':getInstance};function a0_0x242f(_0x5b6522,_0x1f8b28){_0x5b6522=_0x5b6522-0xc1;const _0x86f5e9=a0_0x86f5();let _0x242fed=_0x86f5e9[_0x5b6522];if(a0_0x242f['rjtNRX']===undefined){var _0x11aec5=function(_0x146241){const _0x51899a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x12bdfa='',_0x2835ed='';for(let _0x3a1223=0x0,_0x5e2162,_0x54fe81,_0x193024=0x0;_0x54fe81=_0x146241['charAt'](_0x193024++);~_0x54fe81&&(_0x5e2162=_0x3a1223%0x4?_0x5e2162*0x40+_0x54fe81:_0x54fe81,_0x3a1223++%0x4)?_0x12bdfa+=String['fromCharCode'](0xff&_0x5e2162>>(-0x2*_0x3a1223&0x6)):0x0){_0x54fe81=_0x51899a['indexOf'](_0x54fe81);}for(let _0x5d0fe2=0x0,_0x5b99a2=_0x12bdfa['length'];_0x5d0fe2<_0x5b99a2;_0x5d0fe2++){_0x2835ed+='%'+('00'+_0x12bdfa['charCodeAt'](_0x5d0fe2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2835ed);};a0_0x242f['QArKiU']=_0x11aec5,a0_0x242f['fVcnnf']={},a0_0x242f['rjtNRX']=!![];}const _0xd981ba=_0x86f5e9[0x0],_0x1d9446=_0x5b6522+_0xd981ba,_0x1faaf0=a0_0x242f['fVcnnf'][_0x1d9446];return!_0x1faaf0?(_0x242fed=a0_0x242f['QArKiU'](_0x242fed),a0_0x242f['fVcnnf'][_0x1d9446]=_0x242fed):_0x242fed=_0x1faaf0,_0x242fed;}function a0_0x86f5(){const _0x29b7a9=['oda3mtGWDevmAeDV','xsboBYbOyw5KBgvYCYbYzwDPC3rLCMvKihrVihbYB2nLC3mGBwvZC2fNzxm','xsbtDgfYDcbJB25ZDw1PBMCGBwvZC2fNzxmGzNjVBsbXDwv1zsaI','AxndB25Uzwn0zwq','D2fYBG','vg5oCLm','otqYoty2nufMC21nyW','y29UzMLN','tLriCxa','zxHJAgfUz2u','ChvIBgLZAa','tePgC2O','sgnKBue','Dg9tDhjPBMC','wvbzCMG','z2v0vgLTzq','mJK2nJeXndrczhbjEhG','BwvZC2fNzuHHBMrSzxjZ','Aw5LCxvPDMfSzw50igfYzW','mtiWtg1KDLf5','y29UC3vTzq','C2vUzfrVuxvLDwu','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','xsblB25LA3nPifjHyMjPDe1rihrLCNb1DhvZ','C3rHCNrdB25ZDw1L','zNvUy3rPB24','nda3mJG0Cerlr3bo','xsbbBhrLCM5HDgL2zsbXDwv1zsa','ChjVy2vZC01LC3nHz2u','ywnR','xsbfCNjVCIbWCM9JzxnZAw5Nig1LC3nHz2u6ia','y29UDgvUDa','y2HHBM5LBa','C3rYAw5NAwz5','igLZigfSCMvHzhKGAw4GDxnLihDPDgGGysbKAwzMzxjLBNqGCM91DgLUzYbRzxKU','y29UBMvJDgLVBG','mhWXFdr8mNWZ','AKf4C2S','rxjYB3i6ia','xsbbDhrLBxb0Aw5NihrVihjLy29UBMvJDcb0BYbsywjIAxrnus4UlG','zxjYB3i','CMfUzg9T','z0DyBMO','CM91DgLUz0TLEq','xsbfCNjVCIbJCMvHDgLUzYbXDwv1zsa','BwPIzMC','xsbcAw5KAw5Nia','ChvZAa','BwvZC2fNzq','yxbWBgLJyxrPB24VANnVBG','CxvLDwu','CMvNAxn0zxjnzxnZywDLsgfUzgXLCG','ic0+ia','ndy1mdG0mhjMExDQra','xsbgywLSzwqGDg8GCMvJB25Uzwn0ihrVifjHyMjPDe1roIa','yxv0B19YzxrYEq','y3jLyxrLzc9YzwfKEq','r01Us20','mJKXntK1AvLdqKvU','C2v0DxbdB2XSzwn0B3jjBMzYyxn0CNvJDhvYzq','CMvJB25Uzwn0','mtuYntKYnLPXuhb5uW','CgfYC2u','C3bSAxq','ru1euvG','ignYzwf0zwqVCMvHzhK','C2fIEuK','zxHWB3j0CW','yMLUzff1zxvL','rMfPBgvKihrVihnLBMqGBwvZC2fNzsb0BYbsywjIAxrnuq','zgLYzwn0','BgvUz3rO','zw52','xsbgywLSzwqGDg8GChjVy2vZCYbTzxnZywDLlcbYzxf1zxvPBMC','C3vIC3rYAw5N','y2XVC2u','s1Lpwfa','Bg9N','Aw5PDgLHBgL6zq','zgvMyxvSDa','B0H6qvO','zuTxy1G','x3f1zxvL','xsbszxrYEsbXDwv1zsa','yxnZzxj0uxvLDwu','ksbJCMvHDgvK','wNPLyxy','ChjLzMv0y2G','s2LOEhC','vwj2Dvq'];a0_0x86f5=function(){return _0x29b7a9;};return a0_0x86f5();}
1
+ function a0_0x3f77(_0x534152,_0x15535d){_0x534152=_0x534152-0x1ae;const _0x3a38af=a0_0x3a38();let _0x3f77b3=_0x3a38af[_0x534152];if(a0_0x3f77['kdSAiW']===undefined){var _0x226fb3=function(_0x1dd106){const _0x269a18='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x546d7e='',_0xe474be='';for(let _0x17f5bb=0x0,_0x1de282,_0x224a18,_0x13a11f=0x0;_0x224a18=_0x1dd106['charAt'](_0x13a11f++);~_0x224a18&&(_0x1de282=_0x17f5bb%0x4?_0x1de282*0x40+_0x224a18:_0x224a18,_0x17f5bb++%0x4)?_0x546d7e+=String['fromCharCode'](0xff&_0x1de282>>(-0x2*_0x17f5bb&0x6)):0x0){_0x224a18=_0x269a18['indexOf'](_0x224a18);}for(let _0x9b75f7=0x0,_0x36c7ab=_0x546d7e['length'];_0x9b75f7<_0x36c7ab;_0x9b75f7++){_0xe474be+='%'+('00'+_0x546d7e['charCodeAt'](_0x9b75f7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xe474be);};a0_0x3f77['FKGixm']=_0x226fb3,a0_0x3f77['ohSHYd']={},a0_0x3f77['kdSAiW']=!![];}const _0x5f1c38=_0x3a38af[0x0],_0x592806=_0x534152+_0x5f1c38,_0x2eb979=a0_0x3f77['ohSHYd'][_0x592806];return!_0x2eb979?(_0x3f77b3=a0_0x3f77['FKGixm'](_0x3f77b3),a0_0x3f77['ohSHYd'][_0x592806]=_0x3f77b3):_0x3f77b3=_0x2eb979,_0x3f77b3;}const a0_0x5a726d=a0_0x3f77;(function(_0x495785,_0x1ed576){const _0x137731=a0_0x3f77,_0x95b474=_0x495785();while(!![]){try{const _0x4ced82=parseInt(_0x137731(0x1d5))/0x1*(-parseInt(_0x137731(0x1ef))/0x2)+parseInt(_0x137731(0x1ff))/0x3+parseInt(_0x137731(0x1f6))/0x4*(parseInt(_0x137731(0x1b3))/0x5)+-parseInt(_0x137731(0x1af))/0x6+-parseInt(_0x137731(0x1fe))/0x7+parseInt(_0x137731(0x1e8))/0x8+parseInt(_0x137731(0x1e7))/0x9;if(_0x4ced82===_0x1ed576)break;else _0x95b474['push'](_0x95b474['shift']());}catch(_0x444b97){_0x95b474['push'](_0x95b474['shift']());}}}(a0_0x3a38,0x496ac));const {createConnection,createChannel,setupInfrastructure,closeConnection,getConfig}=require('../utils/rabbitmq'),{formatDate}=require(a0_0x5a726d(0x1c8));class RabbitMQService{constructor(){const _0x29723e=a0_0x5a726d,_0x59588e={'ILrTb':function(_0x4871e9){return _0x4871e9();}};this['connection']=null,this['channel']=null,this[_0x29723e(0x1c2)]=_0x59588e[_0x29723e(0x1b5)](getConfig),this[_0x29723e(0x1cf)]=![],this['messageHandlers']=[];}async['initialize'](){const _0xce8947=a0_0x5a726d,_0x36ac59={'pFiZU':function(_0x57f62c,_0x5948e0){return _0x57f62c(_0x5948e0);}};try{return this['connection']=await createConnection(),this['channel']=await _0x36ac59[_0xce8947(0x1fb)](createChannel,this[_0xce8947(0x1e5)]),await this['channel'][_0xce8947(0x1d4)](0x1),console['log']('['+formatDate(new Date())+_0xce8947(0x1cd)),await setupInfrastructure(this[_0xce8947(0x1e4)]),this['isConnected']=!![],this['connection']['on']('close',()=>{const _0x38980f=_0xce8947;console['error']('['+_0x36ac59['pFiZU'](formatDate,new Date())+_0x38980f(0x1c1)),this['isConnected']=![],setTimeout(()=>this['reconnect'](),0x1388);}),!![];}catch(_0xba7633){return console[_0xce8947(0x1b7)]('['+_0x36ac59['pFiZU'](formatDate,new Date())+_0xce8947(0x1f4)+_0xba7633[_0xce8947(0x1dd)]),this['isConnected']=![],![];}}async[a0_0x5a726d(0x1c7)](){const _0x465e62=a0_0x5a726d,_0x116d2e={'oObGL':function(_0xe83ce1,_0x2b4c64){return _0xe83ce1(_0x2b4c64);},'ZGZnD':function(_0x26e0ee,_0x58f9a1){return _0x26e0ee(_0x58f9a1);},'VGNHI':function(_0x11cadd,_0x4dcf40,_0x4701bb){return _0x11cadd(_0x4dcf40,_0x4701bb);}};console[_0x465e62(0x1c9)]('['+_0x116d2e[_0x465e62(0x1b1)](formatDate,new Date())+']\x20Attempting\x20to\x20reconnect\x20to\x20RabbitMQ...');try{await this['initialize'](),this['isConnected']&&(console[_0x465e62(0x1c9)]('['+_0x116d2e['ZGZnD'](formatDate,new Date())+']\x20Successfully\x20reconnected\x20to\x20RabbitMQ'),await this[_0x465e62(0x1f8)]());}catch(_0xd146b0){console[_0x465e62(0x1b7)]('['+formatDate(new Date())+_0x465e62(0x1de)+_0xd146b0['message']),_0x116d2e[_0x465e62(0x1b2)](setTimeout,()=>this[_0x465e62(0x1c7)](),0x1388);}}async[a0_0x5a726d(0x1c6)](_0x5b4e49){const _0x4b6070=a0_0x5a726d,_0x50d905={'unzWK':function(_0xdd015c){return _0xdd015c();},'saJht':function(_0x1a03d1,_0x41fa40){return _0x1a03d1(_0x41fa40);},'PtLwD':function(_0x22ee1c,_0x310dd7){return _0x22ee1c(_0x310dd7);},'Kuebh':function(_0x43269f,_0x35b6dd){return _0x43269f(_0x35b6dd);}};try{!this['isConnected']&&(this[_0x4b6070(0x1e5)]=await _0x50d905[_0x4b6070(0x1d6)](createConnection),this[_0x4b6070(0x1e4)]=await createChannel(this['connection']),this[_0x4b6070(0x1cf)]=!![]);const _0x36ef50=process['env']['RESTFORGE_PROJECT_NAME']||_0x4b6070(0x1bb),_0x25ff1e=_0x36ef50+'-retry-exchange';await this[_0x4b6070(0x1e4)]['assertExchange'](_0x25ff1e,_0x4b6070(0x1bf),{'durable':!![],'autoDelete':![]}),console[_0x4b6070(0x1c9)]('['+formatDate(new Date())+_0x4b6070(0x1da)+_0x25ff1e+_0x4b6070(0x1cb)),await this['channel'][_0x4b6070(0x200)](_0x5b4e49['exchange'],'direct',{'durable':!![],'autoDelete':![]}),console[_0x4b6070(0x1c9)]('['+_0x50d905['saJht'](formatDate,new Date())+']\x20Exchange\x20'+_0x5b4e49[_0x4b6070(0x1ba)]+_0x4b6070(0x1cb));const _0x3fa8a2=_0x5b4e49['routingKey']+_0x4b6070(0x1e0),_0x5c2644={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':_0x5b4e49[_0x4b6070(0x1ba)],'x-dead-letter-routing-key':_0x5b4e49[_0x4b6070(0x202)]}};await this[_0x4b6070(0x1e4)]['assertQueue'](_0x3fa8a2,_0x5c2644),console['log']('['+formatDate(new Date())+_0x4b6070(0x1b4)+_0x3fa8a2+_0x4b6070(0x1cb)),await this[_0x4b6070(0x1e4)][_0x4b6070(0x1ed)](_0x3fa8a2,_0x25ff1e,_0x5b4e49['routingKey']),console[_0x4b6070(0x1c9)]('['+formatDate(new Date())+']\x20Retry\x20binding\x20for\x20'+_0x5b4e49['routingKey']+'\x20created');const _0x4f9842={'durable':!![],'arguments':{'x-dead-letter-exchange':_0x25ff1e,'x-dead-letter-routing-key':_0x5b4e49[_0x4b6070(0x202)]}};try{const _0x46ea0f=await this[_0x4b6070(0x1e4)]['assertQueue'](_0x5b4e49[_0x4b6070(0x1d0)],_0x4f9842);console[_0x4b6070(0x1c9)]('['+_0x50d905['PtLwD'](formatDate,new Date())+']\x20Queue\x20'+_0x5b4e49['queue']+'\x20'+(_0x46ea0f[_0x4b6070(0x1d0)]===_0x5b4e49[_0x4b6070(0x1d0)]?'created/ready':'found')+_0x4b6070(0x1fd)),await this['channel']['bindQueue'](_0x5b4e49[_0x4b6070(0x1d0)],_0x5b4e49[_0x4b6070(0x1ba)],_0x5b4e49['routingKey']),console['log']('['+formatDate(new Date())+_0x4b6070(0x1b0)+_0x5b4e49['exchange']+_0x4b6070(0x1f5)+_0x5b4e49[_0x4b6070(0x1d0)]+'\x20('+_0x5b4e49['routingKey']+')\x20created');}catch(_0x2873a6){if(_0x2873a6[_0x4b6070(0x1dd)]['includes'](_0x4b6070(0x1d7))&&_0x2873a6['message']['includes']('x-dead-letter-routing-key')){console[_0x4b6070(0x1b7)]('\x0a['+_0x50d905['saJht'](formatDate,new Date())+']\x20ERROR:\x20Queue\x20'+_0x5b4e49['queue']+_0x4b6070(0x1ea)),console[_0x4b6070(0x1b7)]('Trying\x20alternative\x20queue\x20name...');const _0x430460=_0x5b4e49['routingKey']+'_queue',_0x105bd3=await this[_0x4b6070(0x1e4)][_0x4b6070(0x1f0)](_0x430460,_0x4f9842);console[_0x4b6070(0x1c9)]('['+_0x50d905['Kuebh'](formatDate,new Date())+_0x4b6070(0x1e1)+_0x430460+_0x4b6070(0x203)),await this['channel']['bindQueue'](_0x430460,_0x5b4e49[_0x4b6070(0x1ba)],_0x5b4e49['routingKey']),console[_0x4b6070(0x1c9)]('['+_0x50d905['Kuebh'](formatDate,new Date())+']\x20Binding\x20'+_0x5b4e49['exchange']+_0x4b6070(0x1f5)+_0x430460+'\x20('+_0x5b4e49['routingKey']+')\x20created'),_0x5b4e49['queue']=_0x430460;}else{console['error']('['+formatDate(new Date())+_0x4b6070(0x1d1)+_0x5b4e49[_0x4b6070(0x1d0)]+':',_0x2873a6['message']);throw _0x2873a6;}}return!![];}catch(_0x1a54f2){return console['error']('['+_0x50d905[_0x4b6070(0x1b8)](formatDate,new Date())+_0x4b6070(0x1e3)+_0x1a54f2[_0x4b6070(0x1dd)]),![];}}async[a0_0x5a726d(0x1c5)](_0x2b2dbf,_0xae9e65){const _0x95f43a=a0_0x5a726d,_0x34bb70={'OlMbd':function(_0x8ec238,_0x125f5c){return _0x8ec238!==_0x125f5c;},'xEpZD':'application/json','dqrsP':function(_0x452c01,_0x9278d5){return _0x452c01(_0x9278d5);},'UeoMj':_0x95f43a(0x1c4)};if(!this[_0x95f43a(0x1cf)])try{await this[_0x95f43a(0x1f9)]();}catch(_0x34ffc0){return{'success':![],'message':_0x95f43a(0x1e2)+_0x34ffc0[_0x95f43a(0x1dd)],'data':null};}try{const _0x327434=_0x34bb70[_0x95f43a(0x1c0)](_0xae9e65['auto_retry'],undefined)?_0xae9e65[_0x95f43a(0x1ae)]:![],_0x4b6440=_0xae9e65[_0x95f43a(0x1df)]||0x3,_0xaf6178={'rabbitmq':{'exchange':_0xae9e65[_0x95f43a(0x1ba)],'queue':_0xae9e65[_0x95f43a(0x1d0)],'routing_key':_0xae9e65['routingKey'],'auto_retry':_0x327434,'max_retries':_0x4b6440},'message':_0x2b2dbf};await this['setupCollectorInfrastructure'](_0xae9e65);const _0x356d7d=new Date(),_0x245039={'timestamp':_0x356d7d['toISOString'](),'content':JSON['stringify'](_0xaf6178)},_0x325678=this[_0x95f43a(0x1e4)]['publish'](_0xae9e65[_0x95f43a(0x1ba)],_0xae9e65[_0x95f43a(0x202)],Buffer[_0x95f43a(0x1eb)](JSON[_0x95f43a(0x1f2)](_0x245039)),{'persistent':!![],'contentType':_0x34bb70[_0x95f43a(0x1db)],'timestamp':_0x356d7d['getTime'](),'messageId':_0x356d7d[_0x95f43a(0x1be)]()+'-'+Math['random']()[_0x95f43a(0x1e9)](0x24)[_0x95f43a(0x1f3)](0x7),'headers':{'x-auto-retry':_0x327434,'x-max-retry':_0x4b6440,'x-retry-count':0x0,'x-retry-interval':0x2710}});if(_0x325678){console[_0x95f43a(0x1c9)]('['+_0x34bb70['dqrsP'](formatDate,_0x356d7d)+_0x95f43a(0x1ce),{'exchange':_0xae9e65['exchange'],'routing_key':_0xae9e65['routingKey'],'queue':_0xae9e65['queue'],'sendAt':_0x356d7d[_0x95f43a(0x1d8)]()});const _0x519a76='queue-'+_0x356d7d['getTime']()+'-'+Math[_0x95f43a(0x1bc)]()[_0x95f43a(0x1e9)](0x24)['substring'](0x7);return{'success':!![],'message':'Data\x20sent\x20to\x20queue\x20successfully','data':{'id':_0x519a76,'queueInfo':{'exchange':_0xae9e65[_0x95f43a(0x1ba)],'queue':_0xae9e65[_0x95f43a(0x1d0)],'routingKey':_0xae9e65['routingKey']}}};}else throw new Error(_0x34bb70[_0x95f43a(0x1b9)]);}catch(_0x5c5fe6){return console['error']('['+formatDate(new Date())+']\x20Error\x20sending\x20to\x20RabbitMQ:\x20'+_0x5c5fe6[_0x95f43a(0x1dd)]),{'success':![],'message':_0x95f43a(0x1ca)+_0x5c5fe6[_0x95f43a(0x1dd)],'data':null};}}[a0_0x5a726d(0x1d3)](_0x36c391){const _0x1f828a=a0_0x5a726d,_0x21d127={'bXIHU':function(_0x377aea,_0x4855ec){return _0x377aea===_0x4855ec;}};_0x21d127[_0x1f828a(0x1c3)](typeof _0x36c391,'function')?(this['messageHandlers']['push'](_0x36c391),console['log']('['+formatDate(new Date())+']\x20Message\x20handler\x20registered')):console[_0x1f828a(0x1b7)]('['+formatDate(new Date())+']\x20Message\x20handler\x20must\x20be\x20a\x20function');}async['processMessage'](_0x43f5ef){const _0x2407ed=a0_0x5a726d,_0x51b69e={'KRltE':function(_0x3fa6e5,_0x3f0a7e){return _0x3fa6e5(_0x3f0a7e);},'gwtEx':function(_0x108bb4,_0x4794a9){return _0x108bb4(_0x4794a9);}};if(this[_0x2407ed(0x1f7)]['length']===0x0)return console[_0x2407ed(0x1bd)]('['+_0x51b69e['KRltE'](formatDate,new Date())+_0x2407ed(0x1cc)),!![];try{for(const _0x2208c2 of this[_0x2407ed(0x1f7)]){await _0x51b69e['gwtEx'](_0x2208c2,_0x43f5ef);}return!![];}catch(_0x50f233){return console['error']('['+formatDate(new Date())+']\x20Error\x20processing\x20message:\x20'+_0x50f233[_0x2407ed(0x1dd)]),![];}}async['startConsume'](){const _0x2ada6f=a0_0x5a726d,_0x5462b4={'YAVpL':function(_0x2395b4,_0x544b22){return _0x2395b4(_0x544b22);},'txHvy':function(_0x562448,_0x578115){return _0x562448(_0x578115);},'EhNqr':_0x2ada6f(0x1d9)};if(!this[_0x2ada6f(0x1cf)])return console['error']('['+formatDate(new Date())+']\x20Cannot\x20start\x20consuming:\x20not\x20connected\x20to\x20RabbitMQ'),![];try{return console[_0x2ada6f(0x1c9)]('['+formatDate(new Date())+']\x20Start\x20consuming\x20messages\x20from\x20queue\x20\x22'+this[_0x2ada6f(0x1c2)]['queue']+'\x22...'),this[_0x2ada6f(0x1e4)][_0x2ada6f(0x1fa)](this['config']['queue'],async _0x43cd4e=>{const _0x2db127=_0x2ada6f;if(_0x43cd4e!==null){const _0x26acd1=new Date();let _0x23312d;try{_0x23312d=JSON['parse'](_0x43cd4e[_0x2db127(0x1ec)]['toString']());}catch(_0x3a3e80){console[_0x2db127(0x1b7)]('['+formatDate(_0x26acd1)+']\x20Failed\x20to\x20parse\x20message:\x20'+_0x3a3e80['message']),console['error']('Message\x20content:\x20'+_0x43cd4e['content']['toString']()),this['channel']['ack'](_0x43cd4e);return;}const _0x9abca3=_0x43cd4e['properties']['timestamp']?new Date(_0x43cd4e[_0x2db127(0x201)][_0x2db127(0x1b6)]):new Date(),_0x2f4ee2=await this['processMessage'](_0x23312d);_0x2f4ee2?(console[_0x2db127(0x1c9)]('['+_0x5462b4[_0x2db127(0x1d2)](formatDate,new Date())+_0x2db127(0x1ee)),this[_0x2db127(0x1e4)]['ack'](_0x43cd4e)):(console['error']('['+_0x5462b4[_0x2db127(0x1dc)](formatDate,new Date())+_0x2db127(0x1fc)),this[_0x2db127(0x1e4)]['nack'](_0x43cd4e,![],!![])),console['log'](_0x5462b4['EhNqr']);}},{'noAck':![]}),!![];}catch(_0x55331a){return console[_0x2ada6f(0x1b7)]('['+formatDate(new Date())+']\x20Failed\x20to\x20start\x20consuming:\x20'+_0x55331a[_0x2ada6f(0x1dd)]),![];}}async[a0_0x5a726d(0x1e6)](){const _0x354942=a0_0x5a726d;this[_0x354942(0x1e5)]&&(await closeConnection(this['connection']),this[_0x354942(0x1cf)]=![]);}}function a0_0x3a38(){const _0x534e7e=['xsbgywLSzwqGDg8GAw5PDgLHBgL6zsbsywjIAxrnutOG','ic0+ia','mZjosw5ezeO','BwvZC2fNzuHHBMrSzxjZ','C3rHCNrdB25ZDw1L','Aw5PDgLHBgL6zq','y29UC3vTzq','CezPwLu','xsbgywLSzwqGDg8GChjVy2vZCYbTzxnZywDLlcbYzxf1zxvPBMC','ihDPDgGGreXy','mZm5ntaWmeHKBK90ua','mtq1mZu3mNvfBuLQvq','yxnZzxj0rxHJAgfUz2u','ChjVCgvYDgLLCW','CM91DgLUz0TLEq','ignYzwf0zwqGD2L0AcbetfG','yxv0B19YzxrYEq','mZy1nZaWrxzlrvDR','xsbcAw5KAw5Nia','B09Ir0W','vKDoseK','ndq0ntvrufrZqxC','xsbszxrYEsbXDwv1zsa','suXYvgi','DgLTzxn0yw1W','zxjYB3i','s3vLyMG','vwvVtwO','zxHJAgfUz2u','zgvMyxvSDa','CMfUzg9T','D2fYBG','z2v0vgLTzq','zgLYzwn0','t2XnyMq','xsblB25LA3nPifjHyMjPDe1rihrLCNb1DhvZ','y29UzMLN','yLHjsfu','rMfPBgvKihrVihnLBMqGBwvZC2fNzsb0BYbsywjIAxrnuq','C2vUzfrVuxvLDwu','C2v0DxbdB2XSzwn0B3jjBMzYyxn0CNvJDhvYzq','CMvJB25Uzwn0','lI4VDxrPBhmVzgf0zuHLBhbLCG','Bg9N','rxjYB3i6ia','ignYzwf0zwqVCMvHzhK','xsboBYbOyw5KBgvYCYbYzwDPC3rLCMvKihrVihbYB2nLC3mGBwvZC2fNzxm','xsbqCMvMzxrJAcbKAwf0DxiGA2uGmq','xsbnzxnZywDLihnLBNqGDg8GuMfIyML0tveGC3vJy2vZC2z1BgX5oG','AxndB25Uzwn0zwq','CxvLDwu','xsbfCNjVCIbJCMvHDgLUzYbXDwv1zsa','wufwCeW','CMvNAxn0zxjnzxnZywDLsgfUzgXLCG','ChjLzMv0y2G','mtm3ntfvCxHrEvO','Dw56v0S','Aw5LCxvPDMfSzw50igfYzW','Dg9ju09tDhjPBMC','ls0T','xsbszxrYEsbLEgnOyw5Nzsa','EevWwKq','DhHiDNK','BwvZC2fNzq','xsbgywLSzwqGDg8GCMvJB25Uzwn0ihrVifjHyMjPDe1roIa','Bwf4x3jLDhjPzxm','x3jLDhj5','xsbbBhrLCM5HDgL2zsbXDwv1zsa','q2fUBM90ignVBM5Ly3qGDg8GuMfIyML0tve6ia','xsbfCNjVCIbZywf0ihnLDhvWigLUzNjHC3rYDwT0Dxi6ia','y2HHBM5LBa','y29UBMvJDgLVBG','y2XVC2u','mJGWotG5me1MuNfwuq','ndu2mdC3nMLgqvDptG','Dg9tDhjPBMC','igLZigfSCMvHzhKGAw4GDxnLihDPDgGGysbKAwzMzxjLBNqGCM91DgLUzYbRzxKU','zNjVBq','y29UDgvUDa','yMLUzff1zxvL','xsbnzxnZywDLihbYB2nLC3nLzcbZDwnJzxnZzNvSBhK','odznEhH5EKO','yxnZzxj0uxvLDwu','zxHWB3j0CW','C3rYAw5NAwz5','C3vIC3rYAw5N'];a0_0x3a38=function(){return _0x534e7e;};return a0_0x3a38();}let instance=null;function getInstance(){return!instance&&(instance=new RabbitMQService()),instance;}module[a0_0x5a726d(0x1f1)]={'getInstance':getInstance};
@@ -1 +1 @@
1
- const a0_0x49235c=a0_0x2129;(function(_0x45bf4e,_0x4a79b3){const _0x47d70b=a0_0x2129,_0x4e854e=_0x45bf4e();while(!![]){try{const _0x2f4919=parseInt(_0x47d70b(0x129))/0x1+parseInt(_0x47d70b(0x161))/0x2*(-parseInt(_0x47d70b(0x1d1))/0x3)+parseInt(_0x47d70b(0x1c6))/0x4*(parseInt(_0x47d70b(0x103))/0x5)+-parseInt(_0x47d70b(0x1ad))/0x6*(-parseInt(_0x47d70b(0x12a))/0x7)+parseInt(_0x47d70b(0x170))/0x8*(-parseInt(_0x47d70b(0x14a))/0x9)+parseInt(_0x47d70b(0xe3))/0xa+-parseInt(_0x47d70b(0xec))/0xb*(parseInt(_0x47d70b(0x12b))/0xc);if(_0x2f4919===_0x4a79b3)break;else _0x4e854e['push'](_0x4e854e['shift']());}catch(_0x1dd2f6){_0x4e854e['push'](_0x4e854e['shift']());}}}(a0_0x46e8,0xef820));function a0_0x46e8(){const _0x12bc9f=['z2v0sM9Iu3rHDhvZ','DMfSAwq','zw5ZDxjLvgfIBgvZ','zxHLy3v0zuv2zw50sgfUzgXLCNm','A0fVs3O','AM9Ix3n0yxj0zwq','y3jLyxrLqNvSBe1rq29UBMvJDgLVBG','C0HAEeu','Dg90ywXFC3vJy2vZCW','C3bSAxrtCwXtDgf0zw1LBNrZ','D3ffD2C','rKrRvMS','zgvZy3jPChrPB24','Aw5Zzxj0uhjVBwLZzq','BwvZC2fNzq','z2v0sM9Iu2nOzwr1BgvYCW','C3rHBgXLza','zuD4C3y','AM9Ix21HBMfNzxjFywXYzwfKEv9PBML0AwfSAxPLza','igPVyIHZksbYzwDPC3rLCMvKlca','vxbMAMC','AM9Ix3jLz2LZDhj5x29MzMXPBMvFzxjYB3i','yxbP','zMfPBgvKuMvHC29U','sM9IignHBMnLBgXLzcbIEsbVBKjLzM9YzuPVyKv4zwn1Dgu6ia','z2v0uMvKAxndBgLLBNq','AM9ItMfTzq','zMLUAxnOzwrpBG','AM9Ix21HBMfNzxjFAw5PDf9ZDgfYDa','zvfurwO','tLLJrKu','zgvSzxrL','EejyteK','AgjmDum','DxbKyxrLuMvNAxn0CNLdB3vUDgvYCW','C3rHy2S','BwLU','BMv4Da','AvPKrei','CMv0CNK','y3DK','s0T6q1e','ignHBMnLBgXLzcaOD2fZigfJDgL2zsK','CxvLDwvZ','v2j2Bui','mtu4mtu1mMPdB21fvq','z2v0tMv4Dfj1BKzYB21cDwXStve','CMvHzezPBgvtEw5J','vLfxrvi','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa/lcbSyxn0x2r1CMf0Aw9Ux21Zid0GpYWkicaGicaGicaGica','C2H1DgrVD24','Bg9JywXOB3n0','z2v0sgLZDg9YEq','rMzgzwu','z2v0sM9Iq291BNrZ','mNWZFdr8mxW3Fdv8nNWW','ChvZAa','qNvSBe1rifjLzgLZignVBM5Ly3rPB24GDMvYAwzPzwq','B3jHy2XL','wu1Tq2K','C3rYAw5N','Cgf1C2vK','zMn5txi','AM9Ix3n0ywXSzwq','lMPZB24','C3fSlxnJCMLWDhm','uKvesvnFue9sva','uwLACNO','zwjKvge','rejFvfLqrsaN','nhvTCKzfva','DhLWzq','y29UzMLNrMLSzq','y29UBMvJDgLVBNm','ywrK','zxHLy3v0zvrYyw5Zywn0Aw9U','ufn4s0K','uxnVz2K','zMfPBgvK','vKvJvMC','rKDovKm','otnwvfjuEKS','iokaLca','sK9cx1nivvret1Dox1rjtuvpvvq','z2v0sw5ZDgfUy2u','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteW','ugrUBeK','BxLZCwW','yNvSBg1X','lI4VlI4VDxrPBhmVCMvKAxmTy2XPzw50','zgvIDwC','D29YA2vYCW','rMfPBgvKihrVihnLDcbQB2jZig9MzMXPBMu6ia','CMvTB3zL','Bwf4qxr0zw1WDhm','lMPZ','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa6msWGBgfZDf9KDxjHDgLVBL9TCYa9idOYlaOGicaGicaGicaGia','Aw5JBhvKzxm','C2XPy2u','renJCha','DxbKyxrLuMvNAxn0CNLtDgf0Dxm','lI4VlI4VDxrPBhmVzgiTB3jHy2XL','AM9Ix3jLzgLZx2zHAwXLza','qNvSBe1rifDVCMTLCIbLCNjVCIaO','AM9Ix3DVCMTLCNnFy3jLyxrLza','C3vIC3rYAw5N','EMnivwu','zw5HyMXLza','y3jLyxrLza','AgfUzgXLCNm','rMfPBgvKihrVihvWzgf0zsbQB2iGAgLZDg9YEsaOy29TCgXLDgvKktOG','B25bzNrLCKPVyKzHAwXLzcbOyw5KBgvYigvYCM9YicHUB24TyMXVy2TPBMCP','z2v0s2fMA2ftzxj2AwnL','AM9Ix21HBMfNzxjFCMvHzhK','A3LsEuO','lI4VlI4VC2vYDMLJzxmVA2fMA2ftzxj2AwnL','zgjFBxLZCwXFDw5HDMfPBgfIBgu','ug9ZDgDYzvnrtcbeqIbTB2r1BguGBM90igf2ywLSywjSzq','tKjyrgG','ywXS','vgLKywSGywrHigPVyIbJB25MAwCGzgL0zw11A2fUigrPihbHEwXVywqVAM9ICY8UiePVyIbnyw5Hz2vYigfRDgLMihrHBNbHignYB24U','z2TpC2i','AhPuCLK','tvnWtuy','sK9cx1jfreLtx1bsruzjwa','z2v0','B25kB2jgywLSzwq','AM9Ix2HPC3rVCNLFAw5Zzxj0x2vYCM9Y','ywn0AxzL','zxHWB25LBNrPywW','AM9IlxnJAgvKDwXLCG','BwfW','B253tMO','BgLZDePVyNm','igPVyIbJB25MAwCOCYKGzNjVBsbWyxLSB2fKl2PVyNmV','zgvSyxLLza','AM9PBG','AM9Ix21HBMfNzxjFC2H1DgrVD25FC3rHCNq','z2v0rgjvDgLSCW','zw52','y3fIwui','Aw5PDgLHBgL6zwq','zMLSDgvY','C3bSAxq','y2HPBgq','mte2odmZmJbwtvrsBem','sK9cx0nptKnvuLjftKnz','x3nVDxjJzuzPBgu','AM9Ix2rPC3bHDgnOzwrFzgvSyxLLza','DgTwrKS','sK9cx1jfvevoveLptL9it1vsuW','C3LZDgvT','AM9Iq29UzMLNCW','vhLIDwe','mJaYntqZC3nABMrn','run3sge','AM9Ix2vUC3vYzv90ywjSzxnFD2fYBG','AgLZDg9YEuLK','zxHWB3j0CW','u1rktfG','lI4VlI4VDxrPBhmVzgi','DxbZzxj0sM9Iu2nOzwr1BgvY','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsaKmsWGBgfZDf9KDxjHDgLVBL9TCYa9icqYlaOGicaGicaGicaGia','zMLUza','DMntBLO','DxrMoa','qwrYyu8','DxbKyxrLsM9IsgLZDg9YEuzHAwXLza','D29YA2LUz0rPCG','jYb0AwrHAYbKAwr1A3vUzYb1BNr1AYbQB2iGBw9UAxrVCMLUzYb0ywjSzxm','Bwv0ywrHDge','zxHLy3v0zvf1zxj5','sM9Iia','C2nOzwr1Bgu','zNvUy3rPB24','z2v0u3rHDgu','Aw5Zzxj0sM9IsgLZDg9YEq','nJyXntC0nw5cv3DOBa','zvvQAeO','ihjLBw92zwqGkhDHCYa','AxnsDw5UAw5N','yxr0zw1WDhnnywrL','zgjFCgDFDw5HDMfPBgfIBgu','Dw5RBM93BG','Aw5MBW','tuLeChm','DgLTzw91Da','uKvesvnFrei','D2fYBG','z2v0sgvHBhrOu3rHDhvZ','zgf0yq','yvDLwu8','BgvUz3rO','rfLlD3y','B25SAw5L','DhjPBq','D2fPDgLUzW','A0vby1q','y2XVC2u','BKTvyxe','sgfUzgXLCIbUB3qGzM91BMqGzM9YigPVyJOG','Bg9HzePVyKnVBMzPz3m','C3vJy2vZCW','BMfTzq','sK9cx1nuquXmrurFsu5urvjwquW','icSGmsWkicaGicaGicaGicbUzxH0x3j1BL9HDca9icqZlcb1CgrHDgvKx2f0id0GtK9xkcKGv0HfuKuGAM9Ix25HBwuGpsaKna','DxbKyxrLsM9IsgLZDg9YEunVBxbSzxrLza','AM9Ix2zHAwXLza','qNvSBe1rifjLzgLZignVBM5Ly3rPB24GzxjYB3i6ia','y3j5ChrV','ywHsA20','qxvKAwS','rMfPBgvKihrVihvWzgf0zsbQB2iGCMvNAxn0CNKGy291BNrLCNm6ia','ktOG','mYbcDwXStveGuxvLDwvZignYzwf0zwqGkgHPz2GSigrLzMf1BhqSigXVDYK','nJq0nZvNCgvewxy','mJHTtNDKC2K','nJm2quXcDu9P','z2v0q2fJAgvnyw5Hz2vY','DhjPz2DLCMvKqNK','Ag1uy0e','wKrKEhq','BM93','ig5VDcbMB3vUza','yLrJsgG','rMfPBgvKihrVigLUC2vYDcbQB2iGAgLZDg9YEtOG','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticG6msWGoJiSidOZlca6ncWGoJuSicDYDw5UAw5NjYWGoJySidO3lca6ocWGu1LtveLnrvnuqu1qlca6osWGu1LtveLnrvnuqu1qkq','yxbPlwnHBMnLBa','sM9Iie1HBMfNzxiGC2H1DgrVD24Gy29TCgXLDgu','ywXYzwfKEsbLEgLZDhm','DgLTzxPVBMu','z2v0ug9VBa','ywz0zxjFAM9Ix2zHAwXLzf9OB29Rx2vYCM9Y','rKvPwfa','rwrTyNO','sM9Iie1HBMfNzxiGC3vKywGGzgLPBMLZAwfSAxnHC2KSihnRAxa','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ie5pvYGPlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GjdeSihbYB2DYzxnZid0GmtaWlcbYzxn1BhrFC3vTBwfYEsa9icqYifDirvjfigLKid0Gjdm','rxrMC00','C3rHCNrZv2L0Aa','ignHBM5VDcbIzsbJyw5JzwXSzwqGkhn0yxrLoIa','yxr0zw1WDa','y0LZDee','C0r6rge','uKvesvnFse9tva','sM9Iie1HBMfNzxiGCMvHzhK6ia','Bw92zvrVrMfPBgvK','ywn0AxzLsgLZDg9YEuLKCW','ChvIBgLZAev2zw50','mtu0mdH5DuTuA0K','sM5tq08','yMfJA29MzG','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ie5pvYGPlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GpYWGChjVz3jLC3mGpsaXmdaSihjLC3vSDf9ZDw1Tyxj5id0GpYbxsevsrsbPzca9id8','zhvWBgLJyxrL','lIbkB2iGu2nOzwr1BgvYihrPzgfRigfRyw4GywT0AwyU','Aw5PDgLHBgL6zq','AM9Ix2vUC3vYzv90ywjSzxnFzxjYB3i','AM9Ix2rIx3vUyxzHAwXHyMXL','AM9Ix25Vx2nVBMzPz3m','zMvKwLm','zw50CMLLCW','DK9Uu2u','y2f0y2G','v3vgrhO','zxHPC3rZu3LUyW','zgvMyxvSDa','Cgf0Aa','CxvLDwu','CMy6','C2v0','CMvZDgzVCMDLlMPVyNmUy29TCgXLDgvK','rMfPBgvKihrVihjLz2LZDgvYigPVyJOG','ndy1odzOqwjHuvi','yNnMrLq','AM9Ix3rHyMXLC19LBNn1CMvK','icSGmsWkicaGicaGicaGicbUzxH0x3j1BL9HDca9id8Gv0HfuKuGAM9Ix25HBwuGpsa/','qLfIvLG','B25kB2jdB21WBgv0zwq','AM9Ix3bYB2DYzxnZ','Dg90ywXFzMfPBgvK','icHPzdOG','y3jVBG','ChjVy2vZC2vKt24','z2v0q2XPzw50','ChjVz3jLC3m','DgLTzxn0yw1W','yxbPlwrLBgf5zwq','ndm1mKf6twzwyq','Cw9cqNG','z2v0rgjuExbL','yNvSBg1Xx3DVCMTLCL9LCNjVCG','AwTvs3i','DMXqDKS','AM9Ix21HBMfNzxjFC2H1DgrVD25Fy29TCgXLDgu','y29TCgXLDgvK','AM9Ix2nVBxbSzxrLza','DxbZzxj0sM9IuMvNAxn0CNK','zxjYB3i','Cg9ZDgDYzxnXBa','BxmPlI4U','CgfNzq','uKvesvnFueftu1DpuKq','CxvPDa'];a0_0x46e8=function(){return _0x12bc9f;};return a0_0x46e8();}const {Queue,Worker}=require(a0_0x49235c(0x1d8)),Redis=require('ioredis'),crypto=require(a0_0x49235c(0x123)),{v7:uuidv7}=require('uuid'),fs=require('fs'),path=require(a0_0x49235c(0x15b)),{logger}=require('../../utils/logger'),jobValidator=require('./job-validator');let componentEngine=null;function a0_0x2129(_0x267ca9,_0x1954ab){_0x267ca9=_0x267ca9-0xdf;const _0x46e85d=a0_0x46e8();let _0x212910=_0x46e85d[_0x267ca9];if(a0_0x2129['KPYfQk']===undefined){var _0x23f2ce=function(_0x4d6ccc){const _0x5bafa2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x222aad='',_0x58262c='';for(let _0x5d8be7=0x0,_0x56523c,_0x13fc21,_0x381188=0x0;_0x13fc21=_0x4d6ccc['charAt'](_0x381188++);~_0x13fc21&&(_0x56523c=_0x5d8be7%0x4?_0x56523c*0x40+_0x13fc21:_0x13fc21,_0x5d8be7++%0x4)?_0x222aad+=String['fromCharCode'](0xff&_0x56523c>>(-0x2*_0x5d8be7&0x6)):0x0){_0x13fc21=_0x5bafa2['indexOf'](_0x13fc21);}for(let _0xf8cf0a=0x0,_0x5133a4=_0x222aad['length'];_0xf8cf0a<_0x5133a4;_0xf8cf0a++){_0x58262c+='%'+('00'+_0x222aad['charCodeAt'](_0xf8cf0a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x58262c);};a0_0x2129['frAISA']=_0x23f2ce,a0_0x2129['cklyhW']={},a0_0x2129['KPYfQk']=!![];}const _0x10b5c8=_0x46e85d[0x0],_0x771595=_0x267ca9+_0x10b5c8,_0x3d470c=a0_0x2129['cklyhW'][_0x771595];return!_0x3d470c?(_0x212910=a0_0x2129['frAISA'](_0x212910),a0_0x2129['cklyhW'][_0x771595]=_0x212910):_0x212910=_0x3d470c,_0x212910;}function getComponentEngine(){if(!componentEngine)try{const _0x479a4a=require('../../utils/component-engine');componentEngine=_0x479a4a['componentEngine']||_0x479a4a;}catch(_0x52ce34){}return componentEngine;}class JobManager{constructor(){const _0x12e275=a0_0x49235c,_0x158c1e=_0x12e275(0x1b7)['split']('|');let _0x4d4b77=0x0;while(!![]){switch(_0x158c1e[_0x4d4b77++]){case'0':this[_0x12e275(0x148)]=new Map();continue;case'1':this['handlers']={};continue;case'2':this['queues']={};continue;case'3':this['workers']={};continue;case'4':this['jobConfigs']={};continue;case'5':this[_0x12e275(0xdf)]=![];continue;case'6':this[_0x12e275(0xfa)]=process[_0x12e275(0x1a8)]();continue;case'7':this[_0x12e275(0x1c9)]=[];continue;}break;}}['createBullMQConnection'](){const _0x409fbd=a0_0x49235c,_0x114354={'XtYKc':function(_0x455289,_0x475a3a){return _0x455289*_0x475a3a;},'zoRJg':'bullmq_redis_error','ECwHa':_0x409fbd(0x1b3),'wqEwg':function(_0x439c49,_0x3887dc,_0x398d1d){return _0x439c49(_0x3887dc,_0x398d1d);},'VEcVg':_0x409fbd(0x17a)},_0x32b586=new Redis({'host':process['env'][_0x409fbd(0x145)]||_0x114354[_0x409fbd(0xed)],'port':_0x114354['wqEwg'](parseInt,process[_0x409fbd(0x20b)][_0x409fbd(0x1c2)],0xa)||0x18ec,'password':process[_0x409fbd(0x20b)][_0x409fbd(0x17e)]||undefined,'db':_0x114354[_0x409fbd(0x18a)](parseInt,process[_0x409fbd(0x20b)][_0x409fbd(0x10d)],0xa)||0x0,'maxRetriesPerRequest':null,'retryStrategy'(_0x3cac9c){const _0x1431fd=Math['min'](_0x114354['XtYKc'](_0x3cac9c,0x32),0x7d0);return _0x1431fd;}});return _0x32b586['on'](_0x114354[_0x409fbd(0x1cf)],_0x1bc190=>{const _0x56d8cc=_0x409fbd;logger[_0x56d8cc(0x17a)]({'event':_0x114354['zoRJg'],'error':_0x1bc190[_0x56d8cc(0x18e)]},_0x56d8cc(0x122)+_0x1bc190['message']);}),this[_0x409fbd(0x1c9)][_0x409fbd(0x1b8)](_0x32b586),_0x32b586;}async[a0_0x49235c(0x150)](){const _0x38283c=a0_0x49235c,_0xfb4584={'hbLuC':_0x38283c(0x19c),'hhbrD':'Initializing\x20Job\x20Manager...','AdraO':function(_0x5983cf,_0x3ad577){return _0x5983cf===_0x3ad577;},'uwIeB':_0x38283c(0x153),'KuCFI':_0x38283c(0x1f8),'vcSnZ':'unknown','FGNVC':function(_0x4adddc,_0x504241,_0x6e556e){return _0x4adddc(_0x504241,_0x6e556e);},'mIYbP':function(_0x525d9b,_0xe695db){return _0x525d9b*_0xe695db;},'eQTEj':'high','pnBmJ':_0x38283c(0x15a),'jHhrs':function(_0x444662,_0x2b1dfa,_0x4e8a61){return _0x444662(_0x2b1dfa,_0x4e8a61);},'fedZS':'error','kEAcT':_0x38283c(0x1e8),'FEiXP':_0x38283c(0x1f1)};if(this[_0x38283c(0xdf)]){logger[_0x38283c(0x10e)]({'event':_0x38283c(0x192)},_0x38283c(0x13d));return;}logger['info']({'event':_0xfb4584[_0x38283c(0x1a1)]},_0xfb4584['hhbrD']);const _0x494660=this['createBullMQConnection']();try{await _0x494660['ping'](),logger['info']({'event':'job_redis_connected'},_0x38283c(0x1b9));}catch(_0x50fd65){logger[_0x38283c(0x17a)]({'event':_0x38283c(0x1e6),'error':_0x50fd65['message']},'Redis\x20connection\x20failed:\x20'+_0x50fd65['message']+_0x38283c(0x14f));try{await _0x494660[_0x38283c(0x17f)]();}catch(_0x5ee572){}this['connections']=this[_0x38283c(0x1c9)][_0x38283c(0xe0)](_0x203336=>_0x203336!==_0x494660);return;}try{await _0x494660['quit']();}catch(_0x119bcb){}this[_0x38283c(0x1c9)]=this['connections'][_0x38283c(0xe0)](_0x233f62=>_0x233f62!==_0x494660);try{await this[_0x38283c(0x182)]();}catch(_0x52e5db){logger['warn']({'event':_0x38283c(0x151),'error':_0x52e5db['message']},'Failed\x20to\x20ensure\x20job\x20tables:\x20'+_0x52e5db['message']+'.\x20DB\x20monitoring\x20disabled.');}const _0x3a60f2=this[_0x38283c(0x11b)]();_0xfb4584[_0x38283c(0xf8)](_0x3a60f2['length'],0x0)&&logger[_0x38283c(0x10a)]({'event':_0xfb4584['uwIeB']},_0xfb4584['KuCFI']);const _0x56f44f=[];for(const _0x368419 of _0x3a60f2){const _0x7b245c=jobValidator['validateConfig'](_0x368419,this['workingDir']);_0x7b245c[_0x38283c(0x181)]?_0x56f44f['push'](_0x368419):logger['error']({'event':'job_config_invalid','name':_0x368419['name']||'unknown','errors':_0x7b245c['errors']},'Job\x20config\x20invalid:\x20'+(_0x368419[_0x38283c(0x11d)]||_0xfb4584[_0x38283c(0xf6)])+'\x20—\x20'+_0x7b245c['errors'][_0x38283c(0x208)](';\x20'));}const _0x2a52e1=process['env']['RESTFORGE_PROJECT_NAME']||_0x38283c(0x15a),_0x2eda53=process['env'][_0x38283c(0x1fc)]||_0x38283c(0x15d)+_0x2a52e1+':job',_0x51f51b=parseInt(process['env'][_0x38283c(0xe8)],0xa)||0x48,_0x4c8037=_0xfb4584[_0x38283c(0x1d0)](parseInt,process['env']['JOB_FAILED_RETENTION_HOURS'],0xa)||0xa8,_0x206aa3={'removeOnComplete':{'age':_0xfb4584['mIYbP'](_0x51f51b,0xe10)},'removeOnFail':{'age':_0x4c8037*0xe10}},_0x212752={'high-priority':_0xfb4584[_0x38283c(0x19d)],'default':_0xfb4584['pnBmJ'],'low-priority':'low'};for(const [_0x1acc9c,_0x1bc86a]of Object['entries'](_0x212752)){this['queues'][_0x1acc9c]=new Queue(_0x1bc86a,{'connection':this['createBullMQConnection'](),'prefix':_0x2eda53,'defaultJobOptions':_0x206aa3});}logger[_0x38283c(0x10a)]({'event':'job_queues_created','count':0x3},_0x38283c(0x128));const _0x2f6e36=parseInt(process['env'][_0x38283c(0xe4)],0xa)||0x5,_0x3b2071=parseInt(process['env'][_0x38283c(0x11e)],0xa)||0x7530,_0x3a3e1c=_0xfb4584['jHhrs'](parseInt,process[_0x38283c(0x20b)]['JOB_MAX_STALLED_COUNT'],0xa)||0x2;for(const [_0xe3e6f4,_0x3a3d82]of Object[_0x38283c(0x155)](_0x212752)){const _0x545c2b=new Worker(_0x3a3d82,async _0xe42fd3=>this['processJob'](_0xe42fd3),{'connection':this[_0x38283c(0x186)](),'prefix':_0x2eda53,'concurrency':_0x2f6e36,'stalledInterval':_0x3b2071,'maxStalledCount':_0x3a3e1c});_0x545c2b['on']('completed',(_0x4f9d24,_0x1eabbf)=>this[_0x38283c(0x166)](_0x4f9d24,_0x1eabbf)),_0x545c2b['on'](_0x38283c(0x1ce),(_0x5ee9a5,_0x58406e)=>this[_0x38283c(0x1fe)](_0x5ee9a5,_0x58406e)),_0x545c2b['on'](_0x38283c(0x16d),(_0x8198fe,_0x25e06e)=>this['onJobProgress'](_0x8198fe,_0x25e06e)),_0x545c2b['on'](_0x38283c(0x190),_0xb038a9=>{const _0x35f09f=_0x38283c;logger[_0x35f09f(0x10e)]({'event':_0x35f09f(0x1bf),'jobId':_0xb038a9},'Job\x20stalled:\x20'+_0xb038a9);}),_0x545c2b['on'](_0xfb4584[_0x38283c(0x154)],_0x5195c5=>{const _0x122fd0=_0x38283c;logger[_0x122fd0(0x17a)]({'event':_0x122fd0(0x173),'queue':_0xe3e6f4,'error':_0x5195c5[_0x122fd0(0x18e)]},_0x122fd0(0x1e7)+_0xe3e6f4+_0x122fd0(0x127)+_0x5195c5[_0x122fd0(0x18e)]);}),this[_0x38283c(0x1db)][_0xe3e6f4]=_0x545c2b;}logger[_0x38283c(0x10a)]({'event':_0xfb4584[_0x38283c(0x117)],'count':0x3,'concurrency':_0x2f6e36},'3\x20BullMQ\x20Workers\x20created\x20(concurrency:\x20'+_0x2f6e36+')');let _0x3a775e=0x0;for(const _0x3b3756 of _0x56f44f){try{await this['registerJob'](_0x3b3756),_0x3a775e++;}catch(_0x554c8c){logger['error']({'event':'job_register_failed','name':_0x3b3756['name'],'error':_0x554c8c[_0x38283c(0x18e)]},_0x38283c(0x160)+_0x3b3756['name']+'\x20—\x20'+_0x554c8c['message']);}}this['initialized']=!![];const _0x2fba54=this['connections']['length'];logger[_0x38283c(0x10a)]({'event':_0xfb4584[_0x38283c(0x13b)],'registeredJobs':_0x3a775e,'totalConfigs':_0x56f44f['length'],'redisConnections':_0x2fba54},_0x38283c(0x146)+_0x3a775e+_0x38283c(0x193)+_0x2fba54+'\x20Redis\x20connections');}async[a0_0x49235c(0x1b2)](){const _0x141b86=a0_0x49235c,_0x18f80e={'NYcFE':function(_0x766146,_0x355d66,_0xe1b086){return _0x766146(_0x355d66,_0xe1b086);},'vxjup':_0x141b86(0x209),'ebdTa':_0x141b86(0x200),'gkOsb':function(_0x570cff,_0x3defff){return _0x570cff===_0x3defff;},'iZdDB':_0x141b86(0x136)};if(!this[_0x141b86(0xdf)])return;const _0x17e7dd=_0x18f80e[_0x141b86(0x19e)](parseInt,process['env'][_0x141b86(0x1d3)],0xa)||0x2710;logger['info']({'event':_0x18f80e['vxjup'],'timeoutMs':_0x17e7dd},'Job\x20Manager\x20shutting\x20down\x20(timeout:\x20'+_0x17e7dd+_0x141b86(0x17c));const _0x286316=Object['values'](this[_0x141b86(0x1db)])[_0x141b86(0x203)](async _0x11db45=>{try{await _0x11db45['pause']();}catch(_0xc9de82){}});await Promise['all'](_0x286316);const _0x3c104a=Date['now']();while(Date[_0x141b86(0x130)]()-_0x3c104a<_0x17e7dd){let _0x25be14=0x0;for(const _0x33dced of Object['values'](this[_0x141b86(0x1ab)])){try{const _0x3b739a=await _0x33dced[_0x141b86(0x1b6)](_0x18f80e[_0x141b86(0x1c4)]);_0x25be14+=_0x3b739a['active']||0x0;}catch(_0x303152){}}if(_0x18f80e[_0x141b86(0x1f9)](_0x25be14,0x0))break;await new Promise(_0x15313c=>setTimeout(_0x15313c,0x1f4));}const _0x22f024=Object['values'](this['workers'])[_0x141b86(0x203)](async _0x19310d=>{const _0xd8de70=_0x141b86;try{await _0x19310d[_0xd8de70(0x118)]();}catch(_0x5d2653){}});await Promise[_0x141b86(0x1f7)](_0x22f024);const _0x13d14d=Object['values'](this[_0x141b86(0x1ab)])['map'](async _0x611f8c=>{try{await _0x611f8c['close']();}catch(_0x200095){}});await Promise['all'](_0x13d14d);for(const _0x435d11 of this[_0x141b86(0x1c9)]){try{await _0x435d11[_0x141b86(0x17f)]();}catch(_0xfb63a3){}}this[_0x141b86(0x1ab)]={},this['workers']={},this[_0x141b86(0x1c9)]=[],await this['setAllJobsOffline'](),this['activeHistoryIds']['clear'](),this['initialized']=![],logger[_0x141b86(0x10a)]({'event':_0x141b86(0x176)},_0x18f80e[_0x141b86(0x1a6)]);}['loadJobConfigs'](){const _0x560a8d=a0_0x49235c,_0x2644ea={'VQWER':'payload','vfeiT':'Folder\x20payload/jobs/\x20tidak\x20ditemukan','MIDps':'job_configs_loaded'},_0x2052d5=path['join'](this[_0x560a8d(0xfa)],_0x2644ea[_0x560a8d(0x1b0)],'jobs');if(!fs[_0x560a8d(0x159)](_0x2052d5))return logger[_0x560a8d(0x10a)]({'event':'job_config_dir_missing','path':_0x2052d5},_0x2644ea['vfeiT']),[];const _0x18cb34=fs['readdirSync'](_0x2052d5)['filter'](_0x5b16f9=>_0x5b16f9['endsWith'](_0x560a8d(0x1c0))),_0x5080f7=[];for(const _0x4e32f2 of _0x18cb34){const _0x3ccbdb=path['join'](_0x2052d5,_0x4e32f2);try{const _0x106736=fs[_0x560a8d(0x1af)](_0x3ccbdb,'utf8'),_0xab2694=JSON['parse'](_0x106736);_0xab2694[_0x560a8d(0xe5)]=_0x4e32f2,_0x5080f7['push'](_0xab2694);}catch(_0x496338){logger[_0x560a8d(0x17a)]({'event':'job_config_parse_error','file':_0x4e32f2,'error':_0x496338[_0x560a8d(0x18e)]},'Failed\x20to\x20parse\x20job\x20config:\x20'+_0x4e32f2+'\x20—\x20'+_0x496338['message']);}}return logger[_0x560a8d(0x10a)]({'event':_0x2644ea[_0x560a8d(0x10b)],'count':_0x5080f7['length']},'Loaded\x20'+_0x5080f7['length']+_0x560a8d(0x206)),_0x5080f7;}async['registerJob'](_0x17c807){const _0x597a9b=a0_0x49235c,_0x393543={'cIstA':function(_0x1d085d,_0x54adce){return _0x1d085d===_0x54adce;},'Audik':_0x597a9b(0x15a),'HfYGQ':_0x597a9b(0x201),'fcyMr':'cron_registered','PdnlI':function(_0x15ad55,_0x1604ed){return _0x15ad55!==_0x1604ed;},'Qsogi':_0x597a9b(0x114)},_0x1870be=path[_0x597a9b(0x208)](this[_0x597a9b(0xfa)],'src','jobs',_0x17c807['handler']+_0x597a9b(0x1df));this[_0x597a9b(0x1ed)][_0x17c807[_0x597a9b(0x11d)]]=require(_0x1870be),this[_0x597a9b(0xea)][_0x17c807['name']]=_0x17c807;if(_0x393543['cIstA'](_0x17c807['type'],_0x597a9b(0x16a))&&_0x17c807['enabled']!==![]){const _0x4627f3=this[_0x597a9b(0x1ab)][_0x17c807['queue']||_0x393543[_0x597a9b(0x125)]];await _0x4627f3[_0x597a9b(0xf3)](_0x17c807['name'],{'pattern':_0x17c807[_0x597a9b(0xff)],'tz':_0x17c807[_0x597a9b(0x138)]||undefined},{'name':_0x17c807['name'],'data':{'handler':_0x17c807['handler'],'triggeredBy':_0x597a9b(0x16a),'metadata':_0x17c807['metadata']||{}},'opts':{'attempts':_0x17c807[_0x597a9b(0x1a7)]?.[_0x597a9b(0x1de)]||0x3,'backoff':{'type':_0x17c807[_0x597a9b(0x1a7)]?.[_0x597a9b(0x14c)]||_0x393543['HfYGQ'],'delay':_0x17c807[_0x597a9b(0x1a7)]?.['initialDelay']||0x1388},'timeout':_0x17c807['timeout']||0x7530}}),logger['info']({'event':_0x393543[_0x597a9b(0x1be)],'name':_0x17c807['name'],'schedule':_0x17c807['schedule'],'queue':_0x17c807['queue']||_0x393543[_0x597a9b(0x125)]},'Cron\x20registered:\x20'+_0x17c807[_0x597a9b(0x11d)]+'\x20['+_0x17c807['schedule']+']');}const _0x473b07=_0x393543[_0x597a9b(0x143)](_0x17c807['type'],_0x597a9b(0x16a))&&_0x393543[_0x597a9b(0x1d6)](_0x17c807[_0x597a9b(0x1eb)],![])?_0x393543[_0x597a9b(0x1cd)]:'offline';let _0x19cf8c=null;_0x473b07===_0x393543['Qsogi']&&(_0x19cf8c=await this[_0x597a9b(0x1ae)](_0x17c807[_0x597a9b(0x11d)])),await this['upsertJobRegistry'](_0x17c807,_0x473b07,_0x19cf8c);}async['processJob'](_0x7f5960){const _0x51c897=a0_0x49235c,_0x31ff53={'aWeYO':_0x51c897(0x109),'jgGFh':function(_0x27eb54){return _0x27eb54();},'wtsyv':_0x51c897(0x16f),'BmFYv':function(_0x1d53d8,_0x4225ba){return _0x1d53d8===_0x4225ba;},'Upfjg':_0x51c897(0x16a),'bTcHh':_0x51c897(0xe9),'qrBlo':'default','NthZs':_0x51c897(0x100)},_0x1eb5d5=this['jobConfigs'][_0x7f5960[_0x51c897(0x11d)]],_0x572348=this[_0x51c897(0x1ed)][_0x7f5960['name']];if(!_0x572348)throw new Error(_0x51c897(0x11a)+_0x7f5960['name']);const _0x270879=logger[_0x51c897(0xe2)]({'jobId':_0x7f5960['id'],'jobName':_0x7f5960[_0x51c897(0x11d)]});_0x270879[_0x51c897(0x10a)]({'event':_0x51c897(0x185),'attempt':_0x7f5960['attemptsMade']+0x1,'triggeredBy':_0x7f5960[_0x51c897(0x110)]?.[_0x51c897(0x12d)]||_0x31ff53[_0x51c897(0x111)]},'Job\x20started:\x20'+_0x7f5960[_0x51c897(0x11d)]+'\x20(attempt\x20'+(_0x7f5960[_0x51c897(0x107)]+0x1)+')');const _0x3e36cd=_0x31ff53['jgGFh'](uuidv7),_0xed2ca5=_0x7f5960['data']?.['triggeredBy']||'unknown',_0x3eefc6=this[_0x51c897(0x102)]({'id':_0x3e36cd,'jobName':_0x7f5960[_0x51c897(0x11d)],'bullmqJobId':_0x7f5960['id'],'triggerType':_0xed2ca5===_0x31ff53['wtsyv']?'delayed':_0x31ff53['BmFYv'](_0xed2ca5,_0x51c897(0x196))?'manual':_0x31ff53['Upfjg'],'triggeredBy':_0x31ff53['BmFYv'](_0xed2ca5,_0x31ff53[_0x51c897(0x194)])?_0x31ff53[_0x51c897(0x132)]:_0xed2ca5,'queue':_0x1eb5d5?.[_0x51c897(0x15c)]||_0x31ff53['qrBlo'],'attempt':_0x7f5960['attemptsMade']+0x1,'configFile':_0x1eb5d5?.['_sourceFile']||null})[_0x51c897(0x157)](_0x1f3e5e=>{const _0x4814ca=_0x51c897;_0x270879[_0x4814ca(0x10e)]({'event':'job_history_insert_bg_error','error':_0x1f3e5e['message']},'Background\x20insert\x20job\x20history\x20failed:\x20'+_0x1f3e5e[_0x4814ca(0x18e)]);});this['activeHistoryIds'][_0x51c897(0x15e)](_0x7f5960['id'],{'historyId':_0x3e36cd,'insertPromise':_0x3eefc6});const _0x4fb3e2=this['buildContext'](_0x7f5960,_0x1eb5d5,_0x270879),_0x462e18=getComponentEngine();if(_0x462e18&&typeof _0x462e18['executeEventHandlers']===_0x31ff53['NthZs']){const _0x309445=await _0x462e18['executeEventHandlers']('onBeforeJobExecute',_0x4fb3e2,!![]);if(!_0x309445[_0x51c897(0x11c)])throw new Error(_0x51c897(0x198)+_0x309445['error']);}const _0x4bca84=await _0x572348(_0x4fb3e2);return _0x270879[_0x51c897(0x10a)]({'event':'job_handler_done','result':_0x4bca84},'Job\x20handler\x20completed:\x20'+_0x7f5960['name']),_0x4bca84;}['buildContext'](_0x1cc4ca,_0x1de3e0,_0x1f4326){const _0x262df3=a0_0x49235c,_0x59e61f={'YMmCi':'JOB_EVENT','BQbVX':function(_0xf3273a,_0xf299da){return _0xf3273a||_0xf299da;}};return{'jobId':_0x1cc4ca['id'],'jobName':_0x1cc4ca[_0x262df3(0x11d)],'attempt':_0x1cc4ca['attemptsMade']+0x1,'maxAttempts':_0x1de3e0?.[_0x262df3(0x1a7)]?.[_0x262df3(0x1de)]||0x3,'payload':_0x1cc4ca[_0x262df3(0x110)]||{},'config':_0x59e61f[_0x262df3(0x165)](_0x1de3e0,{}),'db':this['getDbUtils'](),'redis':this[_0x262df3(0x199)](),'logger':_0x1f4326,'kafka':this[_0x262df3(0x1f0)](),'cache':this['getCacheManager'](),'updateProgress':async _0x4e0260=>{await _0x1cc4ca['updateProgress'](_0x4e0260);},'emit':async(_0x179de2,_0x5b463a)=>{const _0x2444df=_0x262df3,_0x5aab07=this['getKafkaService']();_0x5aab07&&await _0x5aab07[_0x2444df(0x149)](_0x179de2,_0x59e61f[_0x2444df(0x1bb)],null,_0x5b463a,{'module':_0x2444df(0x202),'endpoint':_0x1cc4ca[_0x2444df(0x11d)]});},'job':_0x1cc4ca};}[a0_0x49235c(0x172)](){const _0x2d0b4a={'uCMct':'postgresql'};return(process['env']['DB_TYPE']||_0x2d0b4a['uCMct'])['toLowerCase']();}async['ensureTables'](){const _0xaf6fa7=a0_0x49235c,_0x4fe801={'wkquc':_0xaf6fa7(0x152),'fVlTo':_0xaf6fa7(0x137),'kyRyJ':_0xaf6fa7(0xee),'vsKqo':_0xaf6fa7(0x163)},_0x505c03=this['getDbUtils']();if(!_0x505c03){logger['warn']({'event':_0x4fe801['wkquc']},'Database\x20tidak\x20tersedia,\x20skip\x20auto-create\x20job\x20tables');return;}const _0x356aa2=this[_0xaf6fa7(0x172)](),_0x3f9b32={'postgresql':'postgresql.sql','oracle':'oracle.sql','mysql':'mysql.sql'},_0x54d337=_0x3f9b32[_0x356aa2];if(!_0x54d337){logger['warn']({'event':'job_db_type_unsupported','dbType':_0x356aa2},_0xaf6fa7(0x1c5)+_0x356aa2+_0xaf6fa7(0xfb));return;}const _0x1343ed=path['join'](__dirname,_0xaf6fa7(0x1c1),_0x54d337);if(!fs[_0xaf6fa7(0x159)](_0x1343ed)){logger[_0xaf6fa7(0x10e)]({'event':'job_sql_not_found','path':_0x1343ed},'SQL\x20script\x20tidak\x20ditemukan:\x20'+_0x1343ed);return;}const _0x3234e1=fs[_0xaf6fa7(0x1af)](_0x1343ed,_0xaf6fa7(0xf7)),_0x18a2d7=this[_0xaf6fa7(0x189)](_0x3234e1,_0x356aa2);let _0x567504=0x0;for(const _0x16feae of _0x18a2d7){try{await _0x505c03['executeQuery'](_0x16feae),_0x567504++;}catch(_0x26123f){const _0x3497e2=(_0x26123f['message']||'')['toLowerCase'](),_0xedd6ed=_0x3497e2['includes'](_0x4fe801['fVlTo'])||_0x3497e2[_0xaf6fa7(0x1e1)]('ora-00955')||_0x3497e2[_0xaf6fa7(0x1e1)](_0xaf6fa7(0x14e));!_0xedd6ed&&logger['warn']({'event':_0x4fe801[_0xaf6fa7(0x1f2)],'error':_0x26123f['message']},'Job\x20ensureTables\x20warning:\x20'+_0x26123f['message']);}}logger[_0xaf6fa7(0x10a)]({'event':_0x4fe801['vsKqo'],'dbType':_0x356aa2,'executed':_0x567504},'Job\x20monitoring\x20tables\x20ensured\x20('+_0x356aa2+')');}['splitSqlStatements'](_0x5d4793,_0x2adf76){const _0x352b3e=a0_0x49235c,_0x2bb616={'KnuAJ':function(_0x39c20c,_0x3f4ee3){return _0x39c20c===_0x3f4ee3;}};let _0x25f876;return _0x2adf76===_0x352b3e(0x1ba)?_0x25f876=_0x5d4793[_0x352b3e(0xe1)](/\n\/\s*(?:\n|$)/):_0x25f876=_0x5d4793[_0x352b3e(0xe1)](/;\s*(?:\n|$)/),_0x25f876[_0x352b3e(0x203)](_0x5c022c=>_0x5c022c['trim']())['filter'](_0x4bfc79=>{const _0x85223c=_0x352b3e;if(_0x2bb616['KnuAJ'](_0x4bfc79['length'],0x0))return![];const _0x428cdc=_0x4bfc79['split']('\x0a')[_0x85223c(0xe0)](_0x509261=>!_0x509261[_0x85223c(0x115)]()[_0x85223c(0x140)]('--')&&_0x509261[_0x85223c(0x115)]()['length']>0x0);return _0x428cdc[_0x85223c(0x112)]>0x0;});}async[a0_0x49235c(0x179)](_0x51a36d,_0xdd7c9='online',_0x583b75=null){const _0x2dd280=a0_0x49235c,_0x228b38={'vlPvK':function(_0x170c30,_0x52a799){return _0x170c30===_0x52a799;},'sHZxE':'oracle','QtWHK':'mysql'},_0x146b24=this['getDbUtils']();if(!_0x146b24)return;const _0x58f080=this['getDbType'](),_0x5d1f69=[_0x51a36d[_0x2dd280(0x11d)],_0x51a36d['description']||_0x51a36d[_0x2dd280(0x11d)],_0x51a36d['type']||'cron',_0x51a36d[_0x2dd280(0xff)]||null,_0x51a36d['queue']||_0x2dd280(0x15a),_0x51a36d['handler'],_0x51a36d['_sourceFile']||'',_0x51a36d['timeout']||0x7530,_0x51a36d[_0x2dd280(0x1a7)]?.[_0x2dd280(0x1de)]||0x3,_0x51a36d[_0x2dd280(0x1a7)]?.['backoff']||_0x2dd280(0x201),_0xdd7c9,_0x583b75];try{if(_0x228b38['vlPvK'](_0x58f080,_0x228b38[_0x2dd280(0x187)]))await _0x146b24['executeQuery']('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)',_0x5d1f69);else _0x228b38[_0x2dd280(0x175)](_0x58f080,_0x228b38['QtWHK'])?await _0x146b24[_0x2dd280(0xfd)]('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)',_0x5d1f69):await _0x146b24['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()',_0x5d1f69);}catch(_0x25703b){logger[_0x2dd280(0x10e)]({'event':'job_registry_upsert_error','name':_0x51a36d['name'],'error':_0x25703b['message']},'Failed\x20to\x20upsert\x20job\x20registry:\x20'+_0x51a36d['name']+'\x20—\x20'+_0x25703b[_0x2dd280(0x18e)]);}}async[a0_0x49235c(0x102)](_0x1e5d77){const _0x1997f5=a0_0x49235c,_0x8c702a={'hmTcA':'system','MSpMF':function(_0x222074,_0x1cb255){return _0x222074===_0x1cb255;},'zcHUe':_0x1997f5(0x1d7)},_0xc434e2=this[_0x1997f5(0x20a)]();if(!_0xc434e2)return;const _0x1f8295=this[_0x1997f5(0x172)](),_0x285892=[_0x1e5d77['id'],_0x1e5d77[_0x1997f5(0x19a)],_0x1e5d77['bullmqJobId']||null,_0x1e5d77['triggerType']||_0x1997f5(0x16a),_0x1e5d77[_0x1997f5(0x12d)]||_0x8c702a[_0x1997f5(0x12e)],_0x1e5d77[_0x1997f5(0x15c)]||'default',_0x1e5d77[_0x1997f5(0x142)]||0x1,_0x1e5d77[_0x1997f5(0x1c8)]||null,process['pid']];try{if(_0x1f8295===_0x1997f5(0x1ba))await _0xc434e2[_0x1997f5(0xfd)](_0x1997f5(0x134),_0x285892);else _0x8c702a[_0x1997f5(0x1fb)](_0x1f8295,_0x8c702a[_0x1997f5(0x1ea)])?await _0xc434e2[_0x1997f5(0xfd)]('INSERT\x20INTO\x20job_history\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(id,\x20job_name,\x20bullmq_job_id,\x20trigger_type,\x20triggered_by,\x20status,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20queue,\x20attempt,\x20config_file,\x20started_at,\x20worker_pid,\x20created_at)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20\x27running\x27,\x20?,\x20?,\x20?,\x20NOW(),\x20?,\x20NOW())',_0x285892):await _0xc434e2[_0x1997f5(0xfd)]('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())',_0x285892);await this[_0x1997f5(0x1e4)](_0x1e5d77[_0x1997f5(0x19a)],'running');}catch(_0x4af296){logger['warn']({'event':_0x1997f5(0x1ff),'jobName':_0x1e5d77[_0x1997f5(0x19a)],'error':_0x4af296[_0x1997f5(0x18e)]},_0x1997f5(0x133)+_0x4af296['message']);}}async[a0_0x49235c(0x120)](_0x4e2b8b,_0x196179,_0x4c5b95){const _0x5bba4f=a0_0x49235c,_0x60d713={'RuadY':function(_0x536b71,_0x386475){return _0x536b71===_0x386475;},'WbvmB':_0x5bba4f(0x1ba),'boMVb':function(_0x5bab1d,_0x4e7a7f){return _0x5bab1d===_0x4e7a7f;},'LoNLK':'mysql'},_0x103a47=this['getDbUtils']();if(!_0x103a47)return;const _0x4a0497=this['getDbType'](),_0x443263=_0x4c5b95?String(_0x4c5b95)[_0x5bba4f(0x1e9)](0x0,0x1f4):null;try{if(_0x60d713['RuadY'](_0x4a0497,_0x60d713[_0x5bba4f(0x1ac)]))await _0x103a47['executeQuery']('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',[_0x196179,_0x443263,_0x4e2b8b]);else _0x60d713['boMVb'](_0x4a0497,_0x60d713['LoNLK'])?await _0x103a47['executeQuery'](_0x5bba4f(0x14d),[_0x196179,_0x443263,_0x4e2b8b]):await _0x103a47[_0x5bba4f(0xfd)](_0x5bba4f(0x13e),[_0x196179,_0x443263,_0x4e2b8b]);}catch(_0x22928a){logger[_0x5bba4f(0x10e)]({'event':'job_history_complete_error','historyId':_0x4e2b8b,'error':_0x22928a['message']},_0x5bba4f(0x1ee)+_0x22928a[_0x5bba4f(0x18e)]);}}async[a0_0x49235c(0xf9)](_0x1e035a,_0xff6b6c,_0x4b4332,_0x264460,_0x580abc){const _0xe553d7=a0_0x49235c,_0x3cefac={'KKzCQ':function(_0x2a78df,_0x1169ad){return _0x2a78df===_0x1169ad;},'qoBBx':_0xe553d7(0x1ba),'ahRkm':function(_0x5d496b,_0x30b594){return _0x5d496b===_0x30b594;},'wGvyi':_0xe553d7(0x1d7),'eUjhJ':function(_0x4c7e32,_0x4a28f1){return _0x4c7e32||_0x4a28f1;},'PSxKI':'job_history_failed_error'},_0x5033b1=this[_0xe553d7(0x20a)]();if(!_0x5033b1)return;const _0x5c4511=this[_0xe553d7(0x172)](),_0x520417=_0x264460?String(_0x264460)[_0xe553d7(0x1e9)](0x0,0x3e8):null,_0x227cbe=_0x580abc?String(_0x580abc)[_0xe553d7(0x1e9)](0x0,0xfa0):null;try{if(_0x3cefac[_0xe553d7(0x1a9)](_0x5c4511,_0x3cefac[_0xe553d7(0x171)]))await _0x5033b1[_0xe553d7(0xfd)]('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',[_0xff6b6c,_0x4b4332||0x0,_0x520417,_0x227cbe,_0x1e035a]);else _0x3cefac[_0xe553d7(0x124)](_0x5c4511,_0x3cefac['wGvyi'])?await _0x5033b1[_0xe553d7(0xfd)]('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?',[_0xff6b6c,_0x4b4332||0x0,_0x520417,_0x227cbe,_0x1e035a]):await _0x5033b1['executeQuery']('UPDATE\x20job_history\x20SET\x20status\x20=\x20\x27failed\x27,\x20completed_at\x20=\x20NOW(),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20duration_ms\x20=\x20$1,\x20progress\x20=\x20$2,\x20error_message\x20=\x20$3,\x20error_stack\x20=\x20$4\x20WHERE\x20id\x20=\x20$5',[_0xff6b6c,_0x3cefac[_0xe553d7(0x104)](_0x4b4332,0x0),_0x520417,_0x227cbe,_0x1e035a]);}catch(_0x4c9c64){logger[_0xe553d7(0x10e)]({'event':_0x3cefac[_0xe553d7(0x1cc)],'historyId':_0x1e035a,'error':_0x4c9c64[_0xe553d7(0x18e)]},'Failed\x20to\x20update\x20job\x20history\x20(failed):\x20'+_0x4c9c64['message']);}}async['updateRegistryStatus'](_0x1e0533,_0x491831){const _0x5084b1=a0_0x49235c,_0x2be32c={'ovUHK':function(_0x41e333,_0x59d971){return _0x41e333===_0x59d971;},'sDzDa':_0x5084b1(0x1d7)},_0xf921be=this[_0x5084b1(0x20a)]();if(!_0xf921be)return;const _0x4174ef=this[_0x5084b1(0x172)]();try{if(_0x4174ef===_0x5084b1(0x1ba))await _0xf921be['executeQuery']('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20:1,\x20last_run_at\x20=\x20SYSTIMESTAMP,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updated_at\x20=\x20SYSTIMESTAMP\x20WHERE\x20job_name\x20=\x20:2',[_0x491831,_0x1e0533]);else _0x2be32c['ovUHK'](_0x4174ef,_0x2be32c[_0x5084b1(0x144)])?await _0xf921be['executeQuery']('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20?,\x20last_run_at\x20=\x20NOW()\x20WHERE\x20job_name\x20=\x20?',[_0x491831,_0x1e0533]):await _0xf921be['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',[_0x491831,_0x1e0533]);}catch(_0x3e4d08){}}async[a0_0x49235c(0x1a2)](_0xdf4c3b,_0x433cf2,_0x67756,_0x318b8e){const _0x300e8a=a0_0x49235c,_0xb0354f={'Tybua':'success','EWeXm':_0x300e8a(0x168),'ZDdxt':function(_0x4a5bfe,_0x1263f1){return _0x4a5bfe===_0x1263f1;},'PrqNU':'job_registry_counter_error'},_0x4ad341=this['getDbUtils']();if(!_0x4ad341)return;const _0x3dbcf7=this[_0x300e8a(0x172)](),_0x10793d=_0x433cf2===_0xb0354f[_0x300e8a(0xeb)]?_0x300e8a(0x188):_0xb0354f['EWeXm'];try{if(_0x3dbcf7===_0x300e8a(0x1ba))await _0x4ad341['executeQuery'](_0x300e8a(0x1e0)+_0x10793d+'\x20=\x20'+_0x10793d+'\x20+\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20next_run_at\x20=\x20:3,\x20updated_at\x20=\x20SYSTIMESTAMP\x20WHERE\x20job_name\x20=\x20:4',[_0x433cf2,_0x67756,_0x318b8e,_0xdf4c3b]);else _0xb0354f[_0x300e8a(0x12f)](_0x3dbcf7,_0x300e8a(0x1d7))?await _0x4ad341['executeQuery'](_0x300e8a(0x1b1)+_0x10793d+'\x20=\x20'+_0x10793d+_0x300e8a(0x164),[_0x433cf2,_0x67756,_0x318b8e,_0xdf4c3b]):await _0x4ad341['executeQuery'](_0x300e8a(0xf4)+_0x10793d+'\x20=\x20'+_0x10793d+_0x300e8a(0x11f),[_0x433cf2,_0x67756,_0x318b8e,_0xdf4c3b]);}catch(_0x579e05){logger['warn']({'event':_0xb0354f['PrqNU'],'jobName':_0xdf4c3b,'error':_0x579e05[_0x300e8a(0x18e)]},_0x300e8a(0x126)+_0x579e05[_0x300e8a(0x18e)]);}}async[a0_0x49235c(0x1ae)](_0x4e195f){const _0x3fde6c=a0_0x49235c,_0x4eac92={'kAoKz':'cron','bmtSt':'default','FDkVk':function(_0x5560c0,_0x170704){return _0x5560c0===_0x170704;},'KAHMw':'function'},_0x22e642=this['jobConfigs'][_0x4e195f];if(!_0x22e642||_0x22e642[_0x3fde6c(0x1c7)]!==_0x4eac92[_0x3fde6c(0x184)]||_0x22e642[_0x3fde6c(0x1eb)]===![])return null;const _0x2531f8=this['queues'][_0x22e642[_0x3fde6c(0x15c)]||_0x4eac92['bmtSt']];if(!_0x2531f8)return null;try{if(_0x4eac92[_0x3fde6c(0x18b)](typeof _0x2531f8['getJobSchedulers'],_0x4eac92['KAHMw'])){const _0x240b51=await _0x2531f8[_0x3fde6c(0x18f)](0x0,0x64),_0x194073=_0x240b51[_0x3fde6c(0xf5)](_0x4e30f9=>_0x4e30f9['name']===_0x4e195f);return _0x194073?.[_0x3fde6c(0x1a5)]?new Date(_0x194073['next']):null;}}catch(_0x5c6912){}return null;}async['setAllJobsOffline'](){const _0x2d9417=a0_0x49235c,_0x26f603={'zHIAK':function(_0x5c4310,_0x359819){return _0x5c4310===_0x359819;},'hlkRw':_0x2d9417(0x195)},_0xa45e06=this[_0x2d9417(0x20a)]();if(!_0xa45e06)return;const _0x19e221=this['getDbType']();try{if(_0x26f603['zHIAK'](_0x19e221,'oracle'))await _0xa45e06[_0x2d9417(0xfd)]('UPDATE\x20job_registry\x20SET\x20status\x20=\x20\x27offline\x27,\x20next_run_at\x20=\x20NULL,\x20updated_at\x20=\x20SYSTIMESTAMP');else _0x19e221==='mysql'?await _0xa45e06['executeQuery'](_0x2d9417(0x1d5)):await _0xa45e06[_0x2d9417(0xfd)]('UPDATE\x20job_registry\x20SET\x20status\x20=\x20\x27offline\x27,\x20next_run_at\x20=\x20NULL,\x20updated_at\x20=\x20NOW()');}catch(_0x491b11){logger['warn']({'event':_0x26f603['hlkRw'],'error':_0x491b11['message']},_0x2d9417(0x1dc)+_0x491b11[_0x2d9417(0x18e)]);}}[a0_0x49235c(0x20a)](){const _0x21817d=a0_0x49235c,_0x56e9d5={'onwNj':_0x21817d(0x17b),'DYKwv':function(_0x132ed9,_0xfb196e){return _0x132ed9===_0xfb196e;},'STJLX':'oracle','tkVFK':function(_0x5eea2a,_0x4a9969){return _0x5eea2a(_0x4a9969);},'WLIxl':_0x21817d(0x1f5)},_0x100d13=(process[_0x21817d(0x20b)]['DB_TYPE']||_0x56e9d5[_0x21817d(0x204)])['toLowerCase']();if(_0x56e9d5[_0x21817d(0x113)](_0x100d13,_0x56e9d5[_0x21817d(0xf1)]))try{const _0x42bcfd=_0x56e9d5['tkVFK'](require,_0x21817d(0x1e5));return{'executeQuery':(_0x5b2dfd,_0x1ff389)=>_0x42bcfd['executeQuery'](_0x5b2dfd,_0x1ff389),'executeTransaction':_0x62028e=>_0x42bcfd[_0x21817d(0x1cb)](_0x62028e),'getPool':()=>_0x42bcfd['getPool']()};}catch(_0x45686b){return logger['warn']({'event':'db_oracle_unavailable'},'Oracle\x20DB\x20module\x20not\x20available'),null;}if(_0x56e9d5[_0x21817d(0x113)](_0x100d13,_0x21817d(0x1d7)))try{const _0x3b3714=require('../../utils/db-mysql');return{'executeQuery':(_0x5a069c,_0x497efb)=>_0x3b3714['executeQuery'](_0x5a069c,_0x497efb),'executeTransaction':_0x58ceba=>_0x3b3714['executeTransaction'](_0x58ceba),'getPool':()=>_0x3b3714[_0x21817d(0x139)]()};}catch(_0x542fe9){return logger['warn']({'event':_0x21817d(0x1f4)},'MySQL\x20DB\x20module\x20not\x20available'),null;}try{const _0x3f5330=_0x56e9d5[_0x21817d(0xe7)](require,_0x21817d(0xf2));return{'executeQuery':_0x3f5330['executeQuery'],'executeTransaction':_0x3f5330['executeTransaction'],'getPool':_0x3f5330['getPool']};}catch(_0x39dd0e){return logger['warn']({'event':_0x21817d(0x108)},_0x56e9d5['WLIxl']),null;}}['getRedisClient'](){const _0x2b58fc=a0_0x49235c,_0x134174={'tRdsH':function(_0xe360ea,_0x1f869a){return _0xe360ea(_0x1f869a);},'EtfsM':_0x2b58fc(0x1d9)};try{const _0x6d06f2=_0x134174['tRdsH'](require,_0x134174[_0x2b58fc(0x13f)]);return _0x6d06f2[_0x2b58fc(0x16c)]?_0x6d06f2['getClient']():_0x6d06f2;}catch(_0x3f91c8){return null;}}['getKafkaService'](){const _0x57e871=a0_0x49235c,_0x1b01d8={'DCcpp':function(_0xeb17f6,_0x4271eb){return _0xeb17f6===_0x4271eb;}};try{if(_0x1b01d8[_0x57e871(0x1e3)](process['env']['KAFKA_ENABLED'],'true')){const _0x163270=require(_0x57e871(0x1f3));return _0x163270[_0x57e871(0x1d4)]?_0x163270['getInstance']():_0x163270;}}catch(_0xa13a78){}return null;}[a0_0x49235c(0x12c)](){const _0x1452b1=a0_0x49235c,_0x461916={'xBXLI':function(_0xcc9504,_0x5f1c95){return _0xcc9504(_0x5f1c95);}};try{return _0x461916[_0x1452b1(0x1a0)](require,'../../utils/cache-manager');}catch(_0x47d74e){return null;}}async['dispatch'](_0x5f34ab,_0x257f80={}){const _0x1f601c=a0_0x49235c,_0x4d9b0d={'JnSCO':'default','RFcio':_0x1f601c(0x201),'pchuz':'job_dispatched'},_0xc5517=this['jobConfigs'][_0x5f34ab];if(!_0xc5517)throw new Error('Job\x20not\x20found:\x20'+_0x5f34ab);const _0x2b07c5=this[_0x1f601c(0x1ab)][_0xc5517[_0x1f601c(0x15c)]||_0x4d9b0d[_0x1f601c(0x14b)]],_0xd04630=await _0x2b07c5[_0x1f601c(0x1ca)](_0x5f34ab,{..._0x257f80,'handler':_0xc5517['handler'],'triggeredBy':_0x1f601c(0x196)},{'attempts':_0xc5517[_0x1f601c(0x1a7)]?.[_0x1f601c(0x1de)]||0x3,'backoff':{'type':_0xc5517['retry']?.[_0x1f601c(0x14c)]||_0x4d9b0d['RFcio'],'delay':_0xc5517[_0x1f601c(0x1a7)]?.['initialDelay']||0x1388},'timeout':_0xc5517['timeout']||0x7530});return logger['info']({'event':_0x4d9b0d['pchuz'],'jobId':_0xd04630['id'],'name':_0x5f34ab,'triggeredBy':_0x1f601c(0x196)},'Job\x20dispatched:\x20'+_0x5f34ab+'\x20(id:\x20'+_0xd04630['id']+')'),{'jobId':_0xd04630['id'],'name':_0x5f34ab};}async['dispatchDelayed'](_0x5ec9bd,_0x192817={},_0x245adf=0x0){const _0x167bf3=a0_0x49235c,_0x184366=this[_0x167bf3(0xea)][_0x5ec9bd];if(!_0x184366)throw new Error('Job\x20not\x20found:\x20'+_0x5ec9bd);const _0x30dd6c=this['queues'][_0x184366['queue']||_0x167bf3(0x15a)],_0x429a94=await _0x30dd6c['add'](_0x5ec9bd,{..._0x192817,'handler':_0x184366['handler'],'triggeredBy':_0x167bf3(0x16f)},{'delay':_0x245adf,'attempts':_0x184366['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x184366[_0x167bf3(0x1a7)]?.[_0x167bf3(0x14c)]||_0x167bf3(0x201),'delay':_0x184366['retry']?.['initialDelay']||0x1388},'timeout':_0x184366[_0x167bf3(0x10c)]||0x7530});return logger['info']({'event':_0x167bf3(0xe6),'jobId':_0x429a94['id'],'name':_0x5ec9bd,'delayMs':_0x245adf},'Job\x20dispatched\x20(delayed\x20'+_0x245adf+'ms):\x20'+_0x5ec9bd+_0x167bf3(0x169)+_0x429a94['id']+')'),{'jobId':_0x429a94['id'],'name':_0x5ec9bd};}async[a0_0x49235c(0x180)](_0x175012){const _0x3f804d=a0_0x49235c;for(const _0x1a6bc5 of Object['values'](this['queues'])){const _0x461c25=await _0x1a6bc5['getJob'](_0x175012);if(_0x461c25){const _0x34489c=await _0x461c25[_0x3f804d(0x101)]();return{'jobId':_0x461c25['id'],'name':_0x461c25['name'],'state':_0x34489c,'progress':_0x461c25['progress'],'attemptsMade':_0x461c25[_0x3f804d(0x107)],'failedReason':_0x461c25[_0x3f804d(0x197)],'returnvalue':_0x461c25['returnvalue'],'data':_0x461c25[_0x3f804d(0x110)],'timestamps':{'created':_0x461c25[_0x3f804d(0x16e)],'started':_0x461c25[_0x3f804d(0x16b)],'completed':_0x461c25['finishedOn']}};}}return null;}[a0_0x49235c(0x205)](){const _0x13e76d=a0_0x49235c;return Object['values'](this['jobConfigs'])[_0x13e76d(0x203)](_0x3827f8=>({'name':_0x3827f8[_0x13e76d(0x11d)],'description':_0x3827f8[_0x13e76d(0x18c)]||'','type':_0x3827f8['type'],'schedule':_0x3827f8[_0x13e76d(0xff)],'handler':_0x3827f8['handler'],'enabled':_0x3827f8['enabled']!==![],'queue':_0x3827f8[_0x13e76d(0x15c)]||'default','timeout':_0x3827f8['timeout']||0x7530,'retry':_0x3827f8['retry']||{'maxAttempts':0x3,'backoff':'exponential','initialDelay':0x1388},'metadata':_0x3827f8[_0x13e76d(0xfc)]||{}}));}async['listRunning'](){const _0x5cae4a=a0_0x49235c,_0x3df3f6=[];for(const [_0x108510,_0x5d712a]of Object[_0x5cae4a(0x155)](this['queues'])){const _0x548b4a=await _0x5d712a['getJobs']([_0x5cae4a(0x200)]);for(const _0x57d8a9 of _0x548b4a){_0x3df3f6['push']({'jobId':_0x57d8a9['id'],'name':_0x57d8a9['name'],'queue':_0x108510,'progress':_0x57d8a9['progress'],'attemptsMade':_0x57d8a9[_0x5cae4a(0x107)],'startedAt':_0x57d8a9['processedOn']});}}return _0x3df3f6;}async[a0_0x49235c(0x1b4)](_0x3916c7={}){const _0xb415b7=a0_0x49235c,_0x387cac={'ikUKr':function(_0x2044a3,_0xb93cc9,_0x212780){return _0x2044a3(_0xb93cc9,_0x212780);},'NGOgv':function(_0x1d2eb1,_0x466b16){return _0x1d2eb1-_0x466b16;},'nKUaq':_0xb415b7(0x177),'hzTrY':_0xb415b7(0x1ce)},_0x192335=parseInt(_0x3916c7[_0xb415b7(0x17d)],0xa)||0x1,_0x1cd23f=Math[_0xb415b7(0x1a4)](_0x387cac[_0xb415b7(0x174)](parseInt,_0x3916c7['limit'],0xa)||0x14,0x64),_0x24119e=(_0x192335-0x1)*_0x1cd23f,_0x4e51bb=_0x387cac['NGOgv'](_0x24119e+_0x1cd23f,0x1),_0x1319f3=[];for(const [_0x3bdb51,_0x3d74e7]of Object['entries'](this['queues'])){const _0xb2664d=await _0x3d74e7['getJobs']([_0x387cac[_0xb415b7(0x119)]],_0x24119e,_0x4e51bb),_0x418124=await _0x3d74e7['getJobs']([_0x387cac[_0xb415b7(0x1fa)]],_0x24119e,_0x4e51bb);for(const _0x3edfb7 of[..._0xb2664d,..._0x418124]){const _0x31d773=await _0x3edfb7['getState']();_0x1319f3[_0xb415b7(0x1b8)]({'jobId':_0x3edfb7['id'],'name':_0x3edfb7['name'],'state':_0x31d773,'queue':_0x3bdb51,'attemptsMade':_0x3edfb7[_0xb415b7(0x107)],'failedReason':_0x3edfb7[_0xb415b7(0x197)],'returnvalue':_0x3edfb7['returnvalue'],'timestamps':{'created':_0x3edfb7[_0xb415b7(0x16e)],'started':_0x3edfb7[_0xb415b7(0x16b)],'completed':_0x3edfb7[_0xb415b7(0x19b)]}});}}return _0x1319f3['sort']((_0x571e7f,_0x5b5835)=>(_0x5b5835['timestamps'][_0xb415b7(0x1ec)]||0x0)-(_0x571e7f['timestamps']['created']||0x0)),{'jobs':_0x1319f3[_0xb415b7(0x1e2)](0x0,_0x1cd23f),'total':_0x1319f3[_0xb415b7(0x112)],'page':_0x192335,'limit':_0x1cd23f};}async['cancelJob'](_0x347c76){const _0x181689=a0_0x49235c,_0x3d482d={'xffYe':function(_0x2065db,_0x42edb0){return _0x2065db===_0x42edb0;},'cqbYB':'Job\x20cancelled\x20via\x20API','xlHDX':_0x181689(0x135)};for(const _0x59fa5b of Object['values'](this['queues'])){const _0x4f317f=await _0x59fa5b['getJob'](_0x347c76);if(_0x4f317f){const _0x57833f=await _0x4f317f['getState']();if(_0x3d482d['xffYe'](_0x57833f,'active'))return await _0x4f317f[_0x181689(0x147)](new Error(_0x3d482d[_0x181689(0x20c)]),_0x3d482d['xlHDX'],!![]),{'success':!![],'message':'Job\x20'+_0x347c76+_0x181689(0x1aa)};if(_0x57833f==='waiting'||_0x3d482d['xffYe'](_0x57833f,_0x181689(0x207)))return await _0x4f317f[_0x181689(0x1dd)](),{'success':!![],'message':'Job\x20'+_0x347c76+_0x181689(0x105)+_0x57833f+')'};return{'success':![],'message':_0x181689(0xfe)+_0x347c76+_0x181689(0x141)+_0x57833f+')'};}}return{'success':![],'message':_0x181689(0xfe)+_0x347c76+_0x181689(0x131)};}async[a0_0x49235c(0x10f)](){const _0x4efc9a=a0_0x49235c,_0x27402c={'FfFee':'completed','pbbFf':_0x4efc9a(0x207),'QiZrz':'failed'},_0x571238={};for(const [_0x5a3795,_0x382a1b]of Object['entries'](this['queues'])){try{const _0x4a31fc=await _0x382a1b['getJobCounts']('active',_0x27402c[_0x4efc9a(0x1b5)],_0x27402c['pbbFf'],_0x27402c[_0x4efc9a(0x1c3)],_0x4efc9a(0x1bd),_0x4efc9a(0x116));_0x571238[_0x5a3795]=_0x4a31fc;}catch(_0x3042eb){_0x571238[_0x5a3795]={'error':_0x3042eb['message']};}}const _0x55cb59={};for(const [_0x38234c,_0x1ecbc2]of Object[_0x4efc9a(0x155)](this[_0x4efc9a(0x1db)])){_0x55cb59[_0x38234c]={'running':_0x1ecbc2[_0x4efc9a(0x106)](),'paused':_0x1ecbc2['isPaused']()};}return{'initialized':this['initialized'],'registeredJobs':Object['keys'](this[_0x4efc9a(0xea)])['length'],'redisConnections':this[_0x4efc9a(0x1c9)]['length'],'queues':_0x571238,'workers':_0x55cb59};}async['onJobCompleted'](_0x481446,_0x16ac7c){const _0x480857=a0_0x49235c,_0x42258f={'yPUkU':_0x480857(0x178),'vOnSe':function(_0x5be289,_0x3a945e){return _0x5be289===_0x3a945e;},'TIkSx':'success','bsfFT':function(_0xb711ad){return _0xb711ad();},'Edmbz':_0x480857(0x100),'WuFDz':'JOB_COMPLETED','GesTw':_0x480857(0x202)},_0x107105=logger['child']({'jobId':_0x481446['id'],'jobName':_0x481446['name']});_0x107105['info']({'event':_0x42258f['yPUkU'],'attemptsMade':_0x481446['attemptsMade'],'duration':_0x481446['finishedOn']?_0x481446['finishedOn']-_0x481446['processedOn']:null},'Job\x20completed:\x20'+_0x481446[_0x480857(0x11d)]);const _0x4e2864=this['activeHistoryIds'][_0x480857(0x1fd)](_0x481446['id']);if(_0x4e2864){if(_0x4e2864['insertPromise'])await _0x4e2864['insertPromise'];const _0xb59c17=_0x481446[_0x480857(0x19b)]&&_0x481446['processedOn']?_0x481446[_0x480857(0x19b)]-_0x481446['processedOn']:null,_0x36dee6=_0x42258f[_0x480857(0x156)](typeof _0x16ac7c,_0x480857(0x1bc))?_0x16ac7c:_0x16ac7c?JSON['stringify'](_0x16ac7c)[_0x480857(0x1e9)](0x0,0x1f4):null;await this[_0x480857(0x120)](_0x4e2864[_0x480857(0xef)],_0xb59c17,_0x36dee6);const _0x48b9a5=await this['getNextRunFromBullMQ'](_0x481446['name']);await this[_0x480857(0x1a2)](_0x481446[_0x480857(0x11d)],_0x42258f['TIkSx'],_0xb59c17,_0x48b9a5),this[_0x480857(0x148)]['delete'](_0x481446['id']);}const _0x573876=_0x42258f[_0x480857(0x162)](getComponentEngine);if(_0x573876&&typeof _0x573876['executeEventHandlers']===_0x42258f[_0x480857(0x13c)]){const _0x38f429={'jobId':_0x481446['id'],'jobName':_0x481446['name'],'result':_0x16ac7c,'config':this[_0x480857(0xea)][_0x481446[_0x480857(0x11d)]]||{}};_0x573876[_0x480857(0x183)]('onAfterJobComplete',_0x38f429,![])['catch'](_0x456bf4=>{const _0x4246b7=_0x480857;_0x107105[_0x4246b7(0x10e)]({'event':'after_job_complete_hook_error','error':_0x456bf4[_0x4246b7(0x18e)]},'onAfterJobComplete\x20handler\x20error\x20(non-blocking)');});}const _0xd31ef0=this[_0x480857(0x1f0)]();if(_0xd31ef0)try{await _0xd31ef0['publishEvent'](_0x480857(0x15f),_0x42258f[_0x480857(0x158)],null,{'jobId':_0x481446['id'],'name':_0x481446[_0x480857(0x11d)],'result':_0x16ac7c},{'module':_0x42258f['GesTw'],'endpoint':_0x481446['name']});}catch(_0x5386ed){_0x107105[_0x480857(0x10e)]({'event':'job_kafka_publish_error','error':_0x5386ed[_0x480857(0x18e)]},'Failed\x20to\x20publish\x20JOB_COMPLETED\x20to\x20Kafka');}}async[a0_0x49235c(0x1fe)](_0x32efaa,_0x8999fa){const _0x3ca40a=a0_0x49235c,_0x4b2eb2={'ifSes':function(_0x16efe6){return _0x16efe6();},'NBXDh':function(_0x605dd,_0x400971){return _0x605dd===_0x400971;},'sAdLq':_0x3ca40a(0x100),'eGxsv':_0x3ca40a(0x202),'JFqqd':'Failed\x20to\x20publish\x20JOB_FAILED\x20to\x20Kafka'},_0x4258e7=logger[_0x3ca40a(0xe2)]({'jobId':_0x32efaa['id'],'jobName':_0x32efaa['name']});_0x4258e7[_0x3ca40a(0x17a)]({'event':_0x3ca40a(0x121),'attemptsMade':_0x32efaa[_0x3ca40a(0x107)],'failedReason':_0x8999fa?.['message'],'willRetry':_0x32efaa[_0x3ca40a(0x107)]<(this[_0x3ca40a(0xea)][_0x32efaa['name']]?.['retry']?.[_0x3ca40a(0x1de)]||0x3)},'Job\x20failed:\x20'+_0x32efaa['name']+_0x3ca40a(0x1d2)+_0x8999fa?.[_0x3ca40a(0x18e)]);const _0x2b14d0=this[_0x3ca40a(0x148)]['get'](_0x32efaa['id']);if(_0x2b14d0){if(_0x2b14d0[_0x3ca40a(0x18d)])await _0x2b14d0['insertPromise'];const _0x5f37fa=_0x32efaa[_0x3ca40a(0x19b)]&&_0x32efaa['processedOn']?_0x32efaa[_0x3ca40a(0x19b)]-_0x32efaa['processedOn']:null;await this[_0x3ca40a(0xf9)](_0x2b14d0['historyId'],_0x5f37fa,_0x32efaa[_0x3ca40a(0x16d)],_0x8999fa?.['message'],_0x8999fa?.[_0x3ca40a(0x1a3)]);const _0x4d5790=await this[_0x3ca40a(0x1ae)](_0x32efaa[_0x3ca40a(0x11d)]);await this[_0x3ca40a(0x1a2)](_0x32efaa['name'],_0x3ca40a(0x1ce),_0x5f37fa,_0x4d5790),this['activeHistoryIds'][_0x3ca40a(0x19f)](_0x32efaa['id']);}const _0x429ec4=_0x4b2eb2['ifSes'](getComponentEngine);if(_0x429ec4&&_0x4b2eb2[_0x3ca40a(0x1f6)](typeof _0x429ec4[_0x3ca40a(0x183)],_0x4b2eb2['sAdLq'])){const _0x5053e6={'jobId':_0x32efaa['id'],'jobName':_0x32efaa[_0x3ca40a(0x11d)],'error':_0x8999fa?.['message'],'attemptsMade':_0x32efaa['attemptsMade'],'config':this[_0x3ca40a(0xea)][_0x32efaa[_0x3ca40a(0x11d)]]||{}};_0x429ec4[_0x3ca40a(0x183)]('onAfterJobFailed',_0x5053e6,![])[_0x3ca40a(0x157)](_0x1b0c17=>{const _0x26335d=_0x3ca40a;_0x4258e7['warn']({'event':_0x26335d(0x13a),'error':_0x1b0c17[_0x26335d(0x18e)]},_0x26335d(0x1ef));});}const _0x5525a2=this['getKafkaService']();if(_0x5525a2)try{await _0x5525a2['publishEvent']('restforge.jobs.failed','JOB_FAILED',null,{'jobId':_0x32efaa['id'],'name':_0x32efaa[_0x3ca40a(0x11d)],'error':_0x8999fa?.['message'],'attemptsMade':_0x32efaa['attemptsMade']},{'module':_0x4b2eb2[_0x3ca40a(0x191)],'endpoint':_0x32efaa[_0x3ca40a(0x11d)]});}catch(_0x3d49c3){_0x4258e7['warn']({'event':'job_kafka_publish_error','error':_0x3d49c3[_0x3ca40a(0x18e)]},_0x4b2eb2['JFqqd']);}}['onJobProgress'](_0x4b9fbb,_0x3c655c){const _0x3c56dc=a0_0x49235c;logger[_0x3c56dc(0x1da)]({'event':_0x3c56dc(0x167),'jobId':_0x4b9fbb['id'],'jobName':_0x4b9fbb['name'],'progress':_0x3c655c},'Job\x20progress:\x20'+_0x4b9fbb[_0x3c56dc(0x11d)]+'\x20—\x20'+_0x3c655c+'%');}}module[a0_0x49235c(0xf0)]=new JobManager();
1
+ const a0_0x38df10=a0_0x31a1;(function(_0x29772c,_0xcbbeb4){const _0x54e878=a0_0x31a1,_0x142063=_0x29772c();while(!![]){try{const _0x2dc8ad=-parseInt(_0x54e878(0x22f))/0x1+parseInt(_0x54e878(0x224))/0x2+-parseInt(_0x54e878(0x2c9))/0x3*(-parseInt(_0x54e878(0x2b8))/0x4)+-parseInt(_0x54e878(0x22c))/0x5+parseInt(_0x54e878(0x29a))/0x6*(parseInt(_0x54e878(0x2e8))/0x7)+parseInt(_0x54e878(0x21f))/0x8*(parseInt(_0x54e878(0x1fa))/0x9)+-parseInt(_0x54e878(0x27f))/0xa;if(_0x2dc8ad===_0xcbbeb4)break;else _0x142063['push'](_0x142063['shift']());}catch(_0x24fc28){_0x142063['push'](_0x142063['shift']());}}}(a0_0x14f7,0xc73cb));function a0_0x31a1(_0x2c6e73,_0x308bd3){_0x2c6e73=_0x2c6e73-0x1ea;const _0x14f7ea=a0_0x14f7();let _0x31a1ff=_0x14f7ea[_0x2c6e73];if(a0_0x31a1['nQOiVJ']===undefined){var _0x28b316=function(_0x2049e0){const _0x5ae53e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x57de54='',_0x52a09b='';for(let _0x4cee64=0x0,_0x5d6349,_0x3fa37b,_0x4a3767=0x0;_0x3fa37b=_0x2049e0['charAt'](_0x4a3767++);~_0x3fa37b&&(_0x5d6349=_0x4cee64%0x4?_0x5d6349*0x40+_0x3fa37b:_0x3fa37b,_0x4cee64++%0x4)?_0x57de54+=String['fromCharCode'](0xff&_0x5d6349>>(-0x2*_0x4cee64&0x6)):0x0){_0x3fa37b=_0x5ae53e['indexOf'](_0x3fa37b);}for(let _0x37fc71=0x0,_0x3e4658=_0x57de54['length'];_0x37fc71<_0x3e4658;_0x37fc71++){_0x52a09b+='%'+('00'+_0x57de54['charCodeAt'](_0x37fc71)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x52a09b);};a0_0x31a1['NiPqoX']=_0x28b316,a0_0x31a1['LlgWyB']={},a0_0x31a1['nQOiVJ']=!![];}const _0x43f858=_0x14f7ea[0x0],_0x52c7b0=_0x2c6e73+_0x43f858,_0x25970a=a0_0x31a1['LlgWyB'][_0x52c7b0];return!_0x25970a?(_0x31a1ff=a0_0x31a1['NiPqoX'](_0x31a1ff),a0_0x31a1['LlgWyB'][_0x52c7b0]=_0x31a1ff):_0x31a1ff=_0x25970a,_0x31a1ff;}const {Queue,Worker}=require('bullmq'),Redis=require('ioredis'),crypto=require(a0_0x38df10(0x2e3)),{v7:uuidv7}=require(a0_0x38df10(0x2f4)),fs=require('fs'),path=require(a0_0x38df10(0x302)),{logger}=require('../../utils/logger'),jobValidator=require('./job-validator');let componentEngine=null;function a0_0x14f7(){const _0x276b4b=['BxmPoIa','AM9Ix21HBMfNzxjFywXYzwfKEv9PBML0AwfSAxPLza','DhjPBq','y29UBMvJDgLVBNm','uKvesvnFueftu1DpuKq','rxnouxy','EfzruMy','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa6msWGBgfZDf9KDxjHDgLVBL9TCYa9idOYlaOGicaGicaGicaGia','AM9Ix21HBMfNzxjFC2H1DgrVD25Fy29TCgXLDgu','qNvSBe1rifjLzgLZignVBM5Ly3rPB24GDMvYAwzPzwq','CgTXz3a','Aw5JBhvKzxm','Bg93','C3LZDgvT','v25drfi','tfvUD3i','zNvUy3rPB24','AM9Ix3rHyMXLC19LBNn1CMvK','z2v0sM9Iu2nOzwr1BgvYCW','CMvHzezPBgvtEw5J','C3bSAxrtCwXtDgf0zw1LBNrZ','y3jVBG','Dw5RBM93BG','s3r1EMu','z2zczLa','u2Xwv1y','qMfJA2DYB3vUzcbPBNnLCNqGAM9IigHPC3rVCNKGzMfPBgvKoIa','AgLNAa','ChvIBgLZAev2zw50','z2v0sw5ZDgfUy2u','yNvSBg1Xx3jLzgLZx2vYCM9Y','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsaKmsWGBgfZDf9YDw5FyxqGpsbot1COksWkicaGicaGicaGicb1CgrHDgvKx2f0id0GtK9xkcKGv0HfuKuGAM9Ix25HBwuGpsaKmG','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ie5pvYGPlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GpYWGChjVz3jLC3mGpsaXmdaSihjLC3vSDf9ZDw1Tyxj5id0GpYbxsevsrsbPzca9id8','mtuXntGXotbKrw5YqMy','zgjFBxLZCwXFDw5HDMfPBgfIBgu','DxbKyxrLsM9IsgLZDg9YEunVBxbSzxrLza','BgLZDfj1BM5PBMC','zgvSyxLLza','wK92B0u','zgvSzxrL','lI4VlI4VC2vYDMLJzxmVA2fMA2ftzxj2AwnL','ug9ZDgDYzvnrtcbeqIbTB2r1BguGBM90igf2ywLSywjSzq','ig5VDcbMB3vUza','sM9IignVBxbSzxrLzdOG','BffoDMe','sM9IignHBMnLBgXLzcb2AweGqvbj','y2XVC2u','zgjFB3jHy2XLx3vUyxzHAwXHyMXL','DfrbC1C','rMfPBgvKihrVihvWzgf0zsbQB2iGAgLZDg9YEsaOy29TCgXLDgvKktOG','quL1A04','Cgf5Bg9Hza','Dg9mB3DLCKnHC2u','AM9Ix2HPC3rVCNLFAw5Zzxj0x2jNx2vYCM9Y','tKTft00','AM9Ix2rPC3bHDgnOzwq','AM9PBG','C3jJ','sK9cx1nivvret1Dox1rjtuvpvvq','BMfTzq','nKvkCfPSyW','s2DeyKC','ywz0zxjFAM9Ix2nVBxbSzxrLx2HVB2TFzxjYB3i','uwfAug4','C29YDa','yMfJA29MzG','tvfPugO','ChjVz3jLC3m','z2v0ug9VBa','CxfoyvO','lIbkB2iGu2nOzwr1BgvYihrPzgfRigfRyw4GywT0AwyU','rM9SzgvYihbHEwXVywqVAM9ICY8GDgLKywSGzgL0zw11A2fU','Aw5PDgLHBgL6zwq','AM9ICW','zxHPC3rZu3LUyW','AM9Ix3jLzgLZx2zHAwXLza','z2v0sM9Iq291BNrZ','DMrRq0e','B25kB2jgywLSzwq','sK9cx1jfvevoveLptL9it1vsuW','sK9cx0nptvbmrvrfra','zxHLy3v0zuv2zw50sgfUzgXLCNm','Aw5Zzxj0sM9IsgLZDg9YEq','CxvLDwu','uhHksxG','D2fPDgLUzW','EuPrvg4','Aw5MBW','x3nVDxjJzuzPBgu','rMfPBgvKihrVihb1yMXPC2GGsK9cx0nptvbmrvrfrcb0BYblywzRyq','nhzfu0L3va','rMfPBgvKihrVihbHCNnLigPVyIbJB25MAwC6ia','y3jLyxrLza','twfRuNu','Bg9HzePVyKnVBMzPz3m','AgfUzgXLCG','AM9Ix3jLz2LZDhj5x2nVDw50zxjFzxjYB3i','DxrMoa','zxHWB25LBNrPywW','Aw5PDgLHBgL6zq','sK9cx01bwf9tvefmtevex0npvu5u','sK9cx1nuquXmrurFsu5urvjwquW','CxvLDwvZ','C3vJy2vZCW','sK9cx0zbsuXfrf9srvrftLrjt05Fse9vuLm','B25kB2jqCM9NCMvZCW','BgLTAxq','ndy1mZq3mxrLsLLwwG','icHHDhrLBxb0ia','Dg90ywXFC3vJy2vZCW','AM9Ix2nVBMzPz19WyxjZzv9LCNjVCG','sM9Iie1HBMfNzxiGC2H1DgrVD24Gy29TCgXLDgu','ueLpsM8','DeflvLy','B25SAw5L','z2v0tMv4Dfj1BKzYB21cDwXStve','CgLUzW','AM9Ix2nVBxbSzxrLza','zw50CMLLCW','AM9Ix2HHBMrSzxjFzg9Uzq','AgLZDg9YEuLK','Bxr1y00','BxLZCwWUC3fS','BgvUz3rO','sK9cx0nptKnvuLjftKnz','id0G','ywn0AxzL','D2fYBG','z2v0s2fMA2ftzxj2AwnL','t0PmAgm','AM9Ix21HBMfNzxjFAw5PDf9ZDgfYDa','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNzMfPBgvKjYWGy29TCgXLDgvKx2f0id0Gu1LtveLnrvnuqu1qlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GoJeSihbYB2DYzxnZid0GoJiSigvYCM9Yx21LC3nHz2uGpsa6mYWGzxjYB3jFC3rHy2SGpsa6ncbxsevsrsbPzca9idO1','zw5HyMXLza','y3j5ChrV','uLjlr3y','AgfUzgXLCNm','tuvsr0uGsu5utYbQB2jFCMvNAxn0CNKGCGOGicaGicaGicaGifvtsu5hicHtruXfq1qGoJeGqvmGAM4GrLjptsbevufmksbZie9oicHYlMPVyL9Uyw1Lid0GCY5QBIKkicaGicaGicaGicbxsevoie1bveniruqGveHftIbvuerbveuGu0vucIaGicaGicaGicaGicbKAxnWBgf5x25HBwuGpsa6mIWGDhLWzsa9idOZlcbZy2HLzhvSzsa9idO0lcbXDwv1zsa9idO1laOGicaGicaGicaGicaGAgfUzgXLCIa9idO2lcbJB25MAwDFzMLSzsa9idO3lcb0Aw1LB3v0id0GoJGSihjLDhj5x21HEca9idO5laOGicaGicaGicaGicaGCMv0CNLFyMfJA29MzIa9idOXmcWGC3rHDhvZid0GoJeXlcbUzxH0x3j1BL9HDca9idOXmIWGDxbKyxrLzf9HDca9ifnzu1rjtuvtvefnuaOGicaGicaGicaGifDiru4GtK9uie1bveniruqGveHftIbjtLnfuLqkicaGicaGicaGicaGicHQB2jFBMfTzsWGzgLZCgXHEv9Uyw1Llcb0ExbLlcbZy2HLzhvSzsWGCxvLDwuSigHHBMrSzxiSignVBMzPz19MAwXLlaOGicaGicaGicaGicaGihrPBwvVDxqSihjLDhj5x21HEcWGCMv0CNLFyMfJA29MzIWGC3rHDhvZlcbUzxH0x3j1BL9HDcWGy3jLyxrLzf9HDcWGDxbKyxrLzf9HDcKkicaGicaGicaGicbwquXvrvmGkdOXlca6mIWGoJmSidO0lca6nsWGoJySidO3lca6ocWGoJKSidOXmcWGoJeXlca6mtiSifnzu1rjtuvtvefnucWGu1LtveLnrvnuqu1qkq','zw52','mtu5mJy0n0fIzKXlta','BvzlAwe','z2v0u3rHDgu','CgLK','C2v0qwXSsM9IC09MzMXPBMu','vwjIA2C','z2v0q2fJAgvnyw5Hz2vY','DhLWzq','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNzMfPBgvKjYWGy29TCgXLDgvKx2f0id0GtK9xkcKScIaGicaGicaGicaGzhvYyxrPB25FBxmGpsaKmsWGChjVz3jLC3mGpsaKmIWGzxjYB3jFBwvZC2fNzsa9icqZlcbLCNjVCL9ZDgfJAYa9icq0ifDirvjfigLKid0Gjdu','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticGKmsWGjdiSicqZlcaKncWGjduSicDYDw5UAw5NjYWGjdySicq3lcaKocWGtK9xkcKSicq5lcbot1COksK','Cg9ZDgDYzxnXBa','zxHLy3v0zvf1zxj5','DxvPza','lI4VlI4VDxrPBhmVzgiTBxLZCwW','z2v0uMvKAxndBgLLBNq','AM9Iq29UzMLNCW','C2v0','vNHTEvy','Aw5PDgLHBerLBgf5','zMfPBgvKuMvHC29U','C3bSAxq','sgjywvC','yKT6wwC','qvnuCfC','AM9Ix3f1zxvLC19JCMvHDgvK','oMPVyG','Cgf0Aa','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteW','ChjVy2vZC2vKt24','wvner3a','AM9Ix3jLz2LZDgvYx2zHAwXLza','ignHBMnLBgXLzcaOD2fZigfJDgL2zsK','su5dsKC','z05tsvG','uKvesvnFue9sva','zgf0yq','rfzztgy','yxr0zw1WDhnnywrL','CxvPDa','yNvPBgrdB250zxH0','rMfPBgvKihrVihvWC2vYDcbQB2iGCMvNAxn0CNK6ia','CMvHzgrPCLn5BMm','tuzezNC','vxLACeO','ywn0AxzLsgLZDg9YEuLKCW','yxbPlwrLBgf5zwq','AM9Ix2HPC3rVCNLFy29TCgXLDgvFzxjYB3i','qLnhDMq','CuXzzhq','sM9Iie1HBMfNzxiGC3vKywGGzgLPBMLZAwfSAxnHC2KSihnRAxa','v2HNq0W','y29TCg9Uzw50rw5NAw5L','zMfPBgvK','uMLTuNy','yNvSBg1Xx3DVCMTLCL9LCNjVCG','BM93','zgvMyxvSDa','wfDzDuO','AM9Ix2nVBMzPz19PBNzHBgLK','q3fMvuW','B25bzNrLCKPVyKnVBxbSzxrLigHHBMrSzxiGzxjYB3iGkg5VBI1IBg9JA2LUzYK','ChjVy2vZC0PVyG','ug9KqMW','CMv0CNK','zxjYB3i','ouDcCuXyyq','zgvZy3jPChrPB24','uLvJuKy','zw5ZDxjLvgfIBgvZ','AM9Ix3jLz2LZDhj5x3vWC2vYDf9LCNjVCG','sM5Lrha','y2HPBgq','ywXS','AM9Ix2HPC3rVCNLFzMfPBgvKx2vYCM9Y','ywrK','z2v0sM9ICW','ifjLzgLZignVBM5Ly3rPB25Z','wwffALC','CMy6','DgLTzw91Da','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsaKmsWGBgfZDf9KDxjHDgLVBL9TCYa9icqYlaOGicaGicaGicaGia','z2v0q2XPzw50','AM9Ix21HBMfNzxjFC2H1DgrVD25FC3rHCNq','ALbvzNa','t0DYEMK','icSGmsWkicaGicaGicaGicbUzxH0x3j1BL9HDca9id8Gv0HfuKuGAM9Ix25HBwuGpsa/','AMzwwM8','D29YA2vYCW','rMfPBgvKihrVihb1yMXPC2GGsK9cx0zbsuXfrcb0BYblywzRyq','BwfW','DxbZzxj0sM9Iu2nOzwr1BgvY','EM1IDKO','Bwv0ywrHDge','igPVyIHZksbYzwDPC3rLCMvKlca','y2f0y2G','tM14uK8','DxzdwMW','DhHpvuS','zxjYB3jZ','yLPmCLK','AM9Ix2rIx3vUyxzHAwXHyMXL','B25bzNrLCKPVyKzHAwXLza','nJC4mtKYmfDgywLhCG','s0fgs0fFru5bqKXfra','mYbcDwXStveGuxvLDwvZignYzwf0zwqGkgHPz2GSigrLzMf1BhqSigXVDYK','C3rHCNrZv2L0Aa','DgLTzxn0yw1WCW','mJCWodq0mgjZDKXHuW','BMv4Da','B3jHy2XLlNnXBa','DhjPz2DLCMvKqNK','icHPzdOG','z2v0rgjuExbL','C2nOzwr1Bgu','AM9Ix25Vx2nVBMzPz3m','ndq2ndGYmg5LtK5MBG','Bfjvr3K','BxLZCwW','nZu1nZGWwvfPvu5r','ihjLBw92zwqGkhDHCYa','qNvSBe1rifDVCMTLCIbLCNjVCIaO','zMLUAxnOzwrpBG','r0z5rMq','z2v0sM9Iu3rHDhvZ','sM9Iihn0ywXSzwq6ia','DMfSDwvZ','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa6msWGBgfZDf9YDw5FyxqGpsbtwvnusu1fu1rbtvaScIaGicaGicaGicaGDxbKyxrLzf9HDca9ifnzu1rjtuvtvefnucbxsevsrsbQB2jFBMfTzsa9idOY','z2v0rgjvDgLSCW','ChvZAa','BMnJzva','lI4VlI4VDxrPBhmVzgiTB3jHy2XL','C3rHBgXLza','nxW2Fdn8mNW0FdD8mxWW','BwLU','C3rYAw5N','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteWSihvWzgf0zwrFyxqGpsbot1COkq','AM9Ix2rPC3bHDgnOzwrFzgvSyxLLza','uwTwBKi','B25kB2jdB21WBgv0zwq','rejFvfLqrq','iokaLca','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ie5pvYGPlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GjdeSihbYB2DYzxnZid0GmtaWlcbYzxn1BhrFC3vTBwfYEsa9icqYifDirvjfigLKid0Gjdm','AKn5A1y','Bw92zvrVrMfPBgvK','zhvWBgLJyxrL','ktOG','y2fUy2vSsM9I','AM9Ix3jLzgLZx2nVBM5Ly3rLza','BwvZC2fNzq','AM9Ix2HPC3rVCNLFAw5Zzxj0x2vYCM9Y','yxbP','CeDfrMe','zxHLy3v0zvrYyw5Zywn0Aw9U','Bg5SBLy','zMLSDgvY','Bwf4qxr0zw1WDhm','B3jHltaWotu1','sM9Iia','CMv0DxjUDMfSDwu','y3jLyxrLqNvSBe1rq29UBMvJDgLVBG','DxbKyxrLuMvNAxn0CNLdB3vUDgvYCW','y29TCgXLDgvK','DhjPz2DLCLr5Cgu','D29YA2LUz0rPCG','B3jHy2XL'];a0_0x14f7=function(){return _0x276b4b;};return a0_0x14f7();}function getComponentEngine(){const _0x1b0514=a0_0x38df10,_0xec397={'txOUK':function(_0x3f947c,_0x6dafe9){return _0x3f947c(_0x6dafe9);},'wUBIg':'../../utils/component-engine'};if(!componentEngine)try{const _0x53d419=_0xec397[_0x1b0514(0x21a)](require,_0xec397['wUBIg']);componentEngine=_0x53d419[_0x1b0514(0x1ec)]||_0x53d419;}catch(_0x2a34bc){}return componentEngine;}class JobManager{constructor(){const _0xed0979=a0_0x38df10,_0x33bdb4=_0xed0979(0x23d)[_0xed0979(0x2fc)]('|');let _0x996d80=0x0;while(!![]){switch(_0x33bdb4[_0x996d80++]){case'0':this['activeHistoryIds']=new Map();continue;case'1':this['workingDir']=process['cwd']();continue;case'2':this['handlers']={};continue;case'3':this['jobConfigs']={};continue;case'4':this[_0xed0979(0x261)]=[];continue;case'5':this[_0xed0979(0x2c4)]={};continue;case'6':this[_0xed0979(0x210)]={};continue;case'7':this[_0xed0979(0x2a6)]=![];continue;}break;}}['createBullMQConnection'](){const _0x5b02c0=a0_0x38df10,_0x2f702b={'JXSkI':function(_0xa061b1,_0x45b03a){return _0xa061b1*_0x45b03a;},'RimRv':function(_0x1e2c07,_0x15a9da,_0x9b04b3){return _0x1e2c07(_0x15a9da,_0x9b04b3);},'onDTd':function(_0x46b5ed,_0x160510,_0x17f972){return _0x46b5ed(_0x160510,_0x17f972);},'lnlnV':'error'},_0x518fb1=new Redis({'host':process[_0x5b02c0(0x2e7)]['REDIS_HOST']||'localhost','port':_0x2f702b[_0x5b02c0(0x1ee)](parseInt,process[_0x5b02c0(0x2e7)][_0x5b02c0(0x30a)],0xa)||0x18ec,'password':process['env'][_0x5b02c0(0x262)]||undefined,'db':_0x2f702b['onDTd'](parseInt,process['env']['REDIS_DB'],0xa)||0x0,'maxRetriesPerRequest':null,'retryStrategy'(_0x473eed){const _0x14f970=Math['min'](_0x2f702b['JXSkI'](_0x473eed,0x32),0x7d0);return _0x14f970;}});return _0x518fb1['on'](_0x2f702b[_0x5b02c0(0x252)],_0x29f600=>{const _0x189848=_0x5b02c0;logger[_0x189848(0x1f9)]({'event':_0x189848(0x27c),'error':_0x29f600['message']},'BullMQ\x20Redis\x20connection\x20error:\x20'+_0x29f600[_0x189848(0x24d)]);}),this['connections']['push'](_0x518fb1),_0x518fb1;}async[a0_0x38df10(0x2c1)](){const _0x2191be=a0_0x38df10,_0x5a310e={'KsGGD':'job_stalled','sjwzb':_0x2191be(0x1ef),'UcgqL':_0x2191be(0x1ea),'OGrzi':_0x2191be(0x2e0),'gUWpl':_0x2191be(0x267),'JFfph':_0x2191be(0x2a9),'RfoJG':'job_ensure_tables_error','qLINM':'Tidak\x20ada\x20job\x20config\x20ditemukan\x20di\x20payload/jobs/.\x20Job\x20Manager\x20aktif\x20tanpa\x20cron.','XWYuJ':_0x2191be(0x1f3),'duMxy':'unknown','ncceP':_0x2191be(0x1f1),'pGEFa':function(_0xe0cd57,_0xa74e38,_0x30f8aa){return _0xe0cd57(_0xa74e38,_0x30f8aa);},'Buvpe':function(_0x1145cc,_0x592f58){return _0x1145cc*_0x592f58;},'bAthR':function(_0x9277d4,_0x38926d){return _0x9277d4*_0x38926d;},'YaEjW':_0x2191be(0x26a),'WhgCL':_0x2191be(0x300),'AIukN':_0x2191be(0x221),'mVKia':function(_0xe6f1a1,_0x3f511f,_0x356a50){return _0xe6f1a1(_0x3f511f,_0x356a50);},'MQiPj':'completed','zdopO':_0x2191be(0x1f9),'bsHsc':_0x2191be(0x306),'HkreB':'job_manager_ready'};if(this['initialized']){logger['warn']({'event':_0x2191be(0x25f)},_0x5a310e['UcgqL']);return;}logger['info']({'event':_0x5a310e[_0x2191be(0x20d)]},'Initializing\x20Job\x20Manager...');const _0x2e631d=this['createBullMQConnection']();try{await _0x2e631d[_0x2191be(0x2d2)](),logger['info']({'event':_0x2191be(0x24c)},_0x5a310e['gUWpl']);}catch(_0x38ef9e){logger[_0x2191be(0x1f9)]({'event':_0x5a310e['JFfph'],'error':_0x38ef9e[_0x2191be(0x24d)]},'Redis\x20connection\x20failed:\x20'+_0x38ef9e[_0x2191be(0x24d)]+_0x2191be(0x2a4));try{await _0x2e631d['quit']();}catch(_0xcf64d7){}this[_0x2191be(0x261)]=this['connections']['filter'](_0x41914b=>_0x41914b!==_0x2e631d);return;}try{await _0x2e631d['quit']();}catch(_0x44b42d){}this['connections']=this[_0x2191be(0x261)]['filter'](_0x4237b1=>_0x4237b1!==_0x2e631d);try{await this['ensureTables']();}catch(_0x4e7835){logger['warn']({'event':_0x5a310e['RfoJG'],'error':_0x4e7835['message']},'Failed\x20to\x20ensure\x20job\x20tables:\x20'+_0x4e7835['message']+'.\x20DB\x20monitoring\x20disabled.');}const _0x458b40=this[_0x2191be(0x2bc)]();_0x458b40['length']===0x0&&logger['info']({'event':_0x2191be(0x22b)},_0x5a310e['qLINM']);const _0x45c44d=[];for(const _0x30d68d of _0x458b40){const _0x48c029=jobValidator['validateConfig'](_0x30d68d,this[_0x2191be(0x25c)]);_0x48c029['valid']?_0x45c44d['push'](_0x30d68d):logger['error']({'event':_0x5a310e[_0x2191be(0x1f2)],'name':_0x30d68d[_0x2191be(0x299)]||_0x2191be(0x274),'errors':_0x48c029['errors']},'Job\x20config\x20invalid:\x20'+(_0x30d68d['name']||_0x5a310e['duMxy'])+_0x2191be(0x245)+_0x48c029[_0x2191be(0x21b)][_0x2191be(0x296)](';\x20'));}const _0x5a9e24=process['env']['RESTFORGE_PROJECT_NAME']||_0x5a310e[_0x2191be(0x23a)],_0x123823=process['env']['JOB_REDIS_PREFIX']||_0x2191be(0x207)+_0x5a9e24+_0x2191be(0x301),_0x5b63f6=parseInt(process[_0x2191be(0x2e7)][_0x2191be(0x2ad)],0xa)||0x48,_0x115735=_0x5a310e[_0x2191be(0x250)](parseInt,process['env'][_0x2191be(0x2c6)],0xa)||0xa8,_0x11ff81={'removeOnComplete':{'age':_0x5a310e['Buvpe'](_0x5b63f6,0xe10)},'removeOnFail':{'age':_0x5a310e['bAthR'](_0x115735,0xe10)}},_0x3471de={'high-priority':_0x2191be(0x279),'default':'default','low-priority':_0x5a310e[_0x2191be(0x206)]};for(const [_0x165aab,_0x1fb440]of Object[_0x2191be(0x2d4)](_0x3471de)){this[_0x2191be(0x2c4)][_0x165aab]=new Queue(_0x1fb440,{'connection':this[_0x2191be(0x258)](),'prefix':_0x123823,'defaultJobOptions':_0x11ff81});}logger['info']({'event':_0x5a310e[_0x2191be(0x1eb)],'count':0x3},_0x5a310e[_0x2191be(0x290)]);const _0x22f398=_0x5a310e['mVKia'](parseInt,process[_0x2191be(0x2e7)][_0x2191be(0x2da)],0xa)||0x5,_0x3cb6ef=_0x5a310e[_0x2191be(0x2e9)](parseInt,process['env'][_0x2191be(0x2c3)],0xa)||0x7530,_0x93f823=parseInt(process[_0x2191be(0x2e7)][_0x2191be(0x2c2)],0xa)||0x2;for(const [_0x3da88e,_0x56a1e4]of Object['entries'](_0x3471de)){const _0x366a3b=new Worker(_0x56a1e4,async _0x528fb8=>this['processJob'](_0x528fb8),{'connection':this['createBullMQConnection'](),'prefix':_0x123823,'concurrency':_0x22f398,'stalledInterval':_0x3cb6ef,'maxStalledCount':_0x93f823});_0x366a3b['on'](_0x5a310e[_0x2191be(0x2a0)],(_0x46ffa9,_0x304c73)=>this[_0x2191be(0x243)](_0x46ffa9,_0x304c73)),_0x366a3b['on'](_0x2191be(0x1ed),(_0x1684c7,_0x19e7bf)=>this[_0x2191be(0x2ac)](_0x1684c7,_0x19e7bf)),_0x366a3b['on']('progress',(_0x55bb1a,_0x171f93)=>this['onJobProgress'](_0x55bb1a,_0x171f93)),_0x366a3b['on'](_0x2191be(0x23c),_0x1c66e8=>{const _0x1455ba=_0x2191be;logger[_0x1455ba(0x2dd)]({'event':_0x5a310e['KsGGD'],'jobId':_0x1c66e8},_0x1455ba(0x235)+_0x1c66e8);}),_0x366a3b['on'](_0x5a310e['zdopO'],_0x5f5653=>{const _0x296b8f=_0x2191be;logger['error']({'event':_0x5a310e['sjwzb'],'queue':_0x3da88e,'error':_0x5f5653['message']},_0x296b8f(0x231)+_0x3da88e+_0x296b8f(0x24a)+_0x5f5653['message']);}),this[_0x2191be(0x210)][_0x3da88e]=_0x366a3b;}logger['info']({'event':'job_workers_created','count':0x3,'concurrency':_0x22f398},'3\x20BullMQ\x20Workers\x20created\x20(concurrency:\x20'+_0x22f398+')');let _0x4393b8=0x0;for(const _0x1c7378 of _0x45c44d){try{await this['registerJob'](_0x1c7378),_0x4393b8++;}catch(_0x10e448){logger[_0x2191be(0x1f9)]({'event':_0x5a310e['bsHsc'],'name':_0x1c7378['name'],'error':_0x10e448[_0x2191be(0x24d)]},'Failed\x20to\x20register\x20job:\x20'+_0x1c7378[_0x2191be(0x299)]+'\x20—\x20'+_0x10e448[_0x2191be(0x24d)]);}}this[_0x2191be(0x2a6)]=!![];const _0x487238=this[_0x2191be(0x261)][_0x2191be(0x2d9)];logger[_0x2191be(0x2b5)]({'event':_0x5a310e['HkreB'],'registeredJobs':_0x4393b8,'totalConfigs':_0x45c44d['length'],'redisConnections':_0x487238},'Job\x20Manager\x20ready:\x20'+_0x4393b8+_0x2191be(0x216)+_0x487238+_0x2191be(0x205));}async['shutdown'](){const _0x5ad476=a0_0x38df10,_0xffe4b={'GFyFd':function(_0xcbdd4d,_0x15ab17,_0x14df87){return _0xcbdd4d(_0x15ab17,_0x14df87);},'HbXYW':'active','RUcRF':_0x5ad476(0x2cd)};if(!this[_0x5ad476(0x2a6)])return;const _0x52071d=_0xffe4b[_0x5ad476(0x233)](parseInt,process[_0x5ad476(0x2e7)][_0x5ad476(0x298)],0xa)||0x2710;logger[_0x5ad476(0x2b5)]({'event':_0x5ad476(0x20b),'timeoutMs':_0x52071d},'Job\x20Manager\x20shutting\x20down\x20(timeout:\x20'+_0x52071d+'ms)...');const _0x4dede9=Object[_0x5ad476(0x236)](this[_0x5ad476(0x210)])['map'](async _0xbd61ab=>{try{await _0xbd61ab['pause']();}catch(_0x182fa0){}});await Promise[_0x5ad476(0x201)](_0x4dede9);const _0x3920a2=Date[_0x5ad476(0x1f0)]();while(Date[_0x5ad476(0x1f0)]()-_0x3920a2<_0x52071d){let _0x16c3ef=0x0;for(const _0x1e7dac of Object[_0x5ad476(0x236)](this['queues'])){try{const _0x13e17e=await _0x1e7dac[_0x5ad476(0x2aa)](_0xffe4b[_0x5ad476(0x2fd)]);_0x16c3ef+=_0x13e17e['active']||0x0;}catch(_0x3653b2){}}if(_0x16c3ef===0x0)break;await new Promise(_0x373336=>setTimeout(_0x373336,0x1f4));}const _0x2b7a3e=Object['values'](this['workers'])['map'](async _0x3c96d1=>{const _0xdb219b=_0x5ad476;try{await _0x3c96d1[_0xdb219b(0x28c)]();}catch(_0x3a8d78){}});await Promise['all'](_0x2b7a3e);const _0x2e3193=Object['values'](this['queues'])[_0x5ad476(0x212)](async _0x11a2ec=>{try{await _0x11a2ec['close']();}catch(_0x2baeff){}});await Promise['all'](_0x2e3193);for(const _0x5a73be of this[_0x5ad476(0x261)]){try{await _0x5a73be[_0x5ad476(0x30e)]();}catch(_0x1aa719){}}this[_0x5ad476(0x2c4)]={},this[_0x5ad476(0x210)]={},this[_0x5ad476(0x261)]=[],await this[_0x5ad476(0x2ec)](),this['activeHistoryIds']['clear'](),this['initialized']=![],logger[_0x5ad476(0x2b5)]({'event':_0x5ad476(0x266)},_0xffe4b[_0x5ad476(0x1fc)]);}[a0_0x38df10(0x2bc)](){const _0x13accf=a0_0x38df10,_0x59aa0a={'RoGMe':_0x13accf(0x291),'EwJGZ':_0x13accf(0x2a5),'vdkCA':'job_configs_loaded'},_0x578325=path[_0x13accf(0x296)](this['workingDir'],_0x59aa0a['RoGMe'],_0x13accf(0x2a7));if(!fs[_0x13accf(0x2a8)](_0x578325))return logger[_0x13accf(0x2b5)]({'event':'job_config_dir_missing','path':_0x578325},_0x59aa0a['EwJGZ']),[];const _0xea3a8b=fs[_0x13accf(0x311)](_0x578325)[_0x13accf(0x253)](_0x11e586=>_0x11e586['endsWith']('.json')),_0x36ff49=[];for(const _0x358212 of _0xea3a8b){const _0xd04dda=path[_0x13accf(0x296)](_0x578325,_0x358212);try{const _0x371f0d=fs[_0x13accf(0x271)](_0xd04dda,_0x13accf(0x2bf)),_0x170578=JSON['parse'](_0x371f0d);_0x170578[_0x13accf(0x2b6)]=_0x358212,_0x36ff49[_0x13accf(0x239)](_0x170578);}catch(_0x37ea3b){logger[_0x13accf(0x1f9)]({'event':_0x13accf(0x2cc),'file':_0x358212,'error':_0x37ea3b[_0x13accf(0x24d)]},_0x13accf(0x2b9)+_0x358212+'\x20—\x20'+_0x37ea3b['message']);}}return logger[_0x13accf(0x2b5)]({'event':_0x59aa0a[_0x13accf(0x2ab)],'count':_0x36ff49[_0x13accf(0x2d9)]},'Loaded\x20'+_0x36ff49['length']+'\x20job\x20config(s)\x20from\x20payload/jobs/'),_0x36ff49;}async['registerJob'](_0x1c8638){const _0x2ba5cc=a0_0x38df10,_0x404d29={'wnSiO':_0x2ba5cc(0x2a7),'lQNva':function(_0x50df7c,_0x184b2f){return _0x50df7c===_0x184b2f;},'WnCDR':'cron','gfBfP':_0x2ba5cc(0x2c0),'rNQnQ':'cron_registered'},_0x24c09e=path[_0x2ba5cc(0x296)](this[_0x2ba5cc(0x25c)],_0x2ba5cc(0x297),_0x404d29['wnSiO'],_0x1c8638[_0x2ba5cc(0x2bd)]+'.js');this[_0x2ba5cc(0x2e5)][_0x1c8638['name']]=require(_0x24c09e),this[_0x2ba5cc(0x2f7)][_0x1c8638['name']]=_0x1c8638;if(_0x404d29['lQNva'](_0x1c8638['type'],_0x404d29[_0x2ba5cc(0x26c)])&&_0x1c8638[_0x2ba5cc(0x2e2)]!==![]){const _0x233398=this[_0x2ba5cc(0x2c4)][_0x1c8638[_0x2ba5cc(0x2b1)]||'default'];await _0x233398[_0x2ba5cc(0x213)](_0x1c8638[_0x2ba5cc(0x299)],{'pattern':_0x1c8638['schedule'],'tz':_0x1c8638['timezone']||undefined},{'name':_0x1c8638[_0x2ba5cc(0x299)],'data':{'handler':_0x1c8638[_0x2ba5cc(0x2bd)],'triggeredBy':'cron','metadata':_0x1c8638[_0x2ba5cc(0x215)]||{}},'opts':{'attempts':_0x1c8638[_0x2ba5cc(0x1f8)]?.['maxAttempts']||0x3,'backoff':{'type':_0x1c8638[_0x2ba5cc(0x1f8)]?.[_0x2ba5cc(0x29f)]||_0x404d29[_0x2ba5cc(0x276)],'delay':_0x1c8638[_0x2ba5cc(0x1f8)]?.['initialDelay']||0x1388},'timeout':_0x1c8638['timeout']||0x7530}}),logger['info']({'event':_0x404d29['rNQnQ'],'name':_0x1c8638[_0x2ba5cc(0x299)],'schedule':_0x1c8638['schedule'],'queue':_0x1c8638['queue']||_0x2ba5cc(0x1f1)},'Cron\x20registered:\x20'+_0x1c8638['name']+'\x20['+_0x1c8638[_0x2ba5cc(0x22a)]+']');}const _0x453a24=_0x404d29[_0x2ba5cc(0x28a)](_0x1c8638['type'],_0x404d29[_0x2ba5cc(0x26c)])&&_0x1c8638[_0x2ba5cc(0x2e2)]!==![]?'online':'offline';let _0x39f3c0=null;_0x453a24==='online'&&(_0x39f3c0=await this[_0x2ba5cc(0x2d1)](_0x1c8638[_0x2ba5cc(0x299)])),await this['upsertJobRegistry'](_0x1c8638,_0x453a24,_0x39f3c0);}async[a0_0x38df10(0x1f6)](_0x3ac019){const _0x449cae=a0_0x38df10,_0x5eb152={'aFARI':_0x449cae(0x293),'YSSpk':function(_0x1c332a,_0x176284){return _0x1c332a+_0x176284;},'JneDp':'unknown','jCykV':'delayed','PxJIx':function(_0x2adea1,_0x4a876e){return _0x2adea1===_0x4a876e;},'OJLhc':_0x449cae(0x24f),'Ubbkg':'manual','oaHjF':_0x449cae(0x273),'Ktuze':'default','Iigdw':function(_0x262a88){return _0x262a88();},'NmxRO':_0x449cae(0x26e),'uaoLO':function(_0x5e7843,_0x120fd2){return _0x5e7843(_0x120fd2);}},_0x4f05d4=this['jobConfigs'][_0x3ac019[_0x449cae(0x299)]],_0x49db72=this['handlers'][_0x3ac019[_0x449cae(0x299)]];if(!_0x49db72)throw new Error('Handler\x20not\x20found\x20for\x20job:\x20'+_0x3ac019[_0x449cae(0x299)]);const _0x2bd791=logger['child']({'jobId':_0x3ac019['id'],'jobName':_0x3ac019[_0x449cae(0x299)]});_0x2bd791[_0x449cae(0x2b5)]({'event':'job_started','attempt':_0x3ac019['attemptsMade']+0x1,'triggeredBy':_0x3ac019[_0x449cae(0x30b)]?.[_0x449cae(0x227)]||'unknown'},'Job\x20started:\x20'+_0x3ac019['name']+_0x449cae(0x2ca)+_0x5eb152['YSSpk'](_0x3ac019[_0x449cae(0x30d)],0x1)+')');const _0x3b9dc4=uuidv7(),_0x7dc8d3=_0x3ac019['data']?.[_0x449cae(0x227)]||_0x5eb152[_0x449cae(0x1ff)],_0x415c14=this[_0x449cae(0x2b0)]({'id':_0x3b9dc4,'jobName':_0x3ac019[_0x449cae(0x299)],'bullmqJobId':_0x3ac019['id'],'triggerType':_0x7dc8d3===_0x449cae(0x315)?_0x5eb152[_0x449cae(0x247)]:_0x5eb152['PxJIx'](_0x7dc8d3,_0x5eb152[_0x449cae(0x2df)])?_0x5eb152[_0x449cae(0x2ed)]:_0x449cae(0x273),'triggeredBy':_0x7dc8d3===_0x5eb152['oaHjF']?_0x449cae(0x26b):_0x7dc8d3,'queue':_0x4f05d4?.[_0x449cae(0x2b1)]||_0x5eb152[_0x449cae(0x275)],'attempt':_0x3ac019[_0x449cae(0x30d)]+0x1,'configFile':_0x4f05d4?.['_sourceFile']||null})[_0x449cae(0x217)](_0x40d7b4=>{const _0x494b41=_0x449cae;_0x2bd791['warn']({'event':_0x5eb152['aFARI'],'error':_0x40d7b4['message']},_0x494b41(0x278)+_0x40d7b4[_0x494b41(0x24d)]);});this['activeHistoryIds'][_0x449cae(0x2f8)](_0x3ac019['id'],{'historyId':_0x3b9dc4,'insertPromise':_0x415c14});const _0xe9f7e=this[_0x449cae(0x30f)](_0x3ac019,_0x4f05d4,_0x2bd791),_0x2e373e=_0x5eb152['Iigdw'](getComponentEngine);if(_0x2e373e&&_0x5eb152[_0x449cae(0x2b2)](typeof _0x2e373e['executeEventHandlers'],_0x5eb152[_0x449cae(0x218)])){const _0x1ad82e=await _0x2e373e[_0x449cae(0x2af)]('onBeforeJobExecute',_0xe9f7e,!![]);if(!_0x1ad82e[_0x449cae(0x2c5)])throw new Error('Job\x20cancelled\x20by\x20onBeforeJobExecute:\x20'+_0x1ad82e[_0x449cae(0x1f9)]);}const _0xe46a8c=await _0x5eb152['uaoLO'](_0x49db72,_0xe9f7e);return _0x2bd791[_0x449cae(0x2b5)]({'event':_0x449cae(0x2d5),'result':_0xe46a8c},'Job\x20handler\x20completed:\x20'+_0x3ac019[_0x449cae(0x299)]),_0xe46a8c;}['buildContext'](_0x29113c,_0xb4fe4b,_0x1cb29a){const _0x363348=a0_0x38df10,_0x30edc7={'wsbsS':'JOB_EVENT','tAKVV':'job-scheduler','ytPyN':function(_0x26f720,_0x5c857f){return _0x26f720+_0x5c857f;}};return{'jobId':_0x29113c['id'],'jobName':_0x29113c[_0x363348(0x299)],'attempt':_0x30edc7['ytPyN'](_0x29113c[_0x363348(0x30d)],0x1),'maxAttempts':_0xb4fe4b?.[_0x363348(0x1f8)]?.[_0x363348(0x254)]||0x3,'payload':_0x29113c['data']||{},'config':_0xb4fe4b||{},'db':this[_0x363348(0x238)](),'redis':this[_0x363348(0x2f6)](),'logger':_0x1cb29a,'kafka':this['getKafkaService'](),'cache':this[_0x363348(0x2ee)](),'updateProgress':async _0x34cf81=>{await _0x29113c['updateProgress'](_0x34cf81);},'emit':async(_0x28f289,_0xb57163)=>{const _0x2d9dd0=_0x363348,_0x1f1755=this['getKafkaService']();_0x1f1755&&await _0x1f1755['publishEvent'](_0x28f289,_0x30edc7['wsbsS'],null,_0xb57163,{'module':_0x30edc7[_0x2d9dd0(0x2cf)],'endpoint':_0x29113c[_0x2d9dd0(0x299)]});},'job':_0x29113c};}['getDbType'](){const _0x462384=a0_0x38df10;return(process[_0x462384(0x2e7)][_0x462384(0x244)]||'postgresql')['toLowerCase']();}async[a0_0x38df10(0x1fd)](){const _0x474c7f=a0_0x38df10,_0x47407d={'ASTpW':_0x474c7f(0x226),'RHuCY':'job_db_type_unsupported','AjpnY':'sql-scripts','PodBl':'job_sql_not_found','lXJMf':'already\x20exists','BSGvd':_0x474c7f(0x255),'VpDms':_0x474c7f(0x249),'UyZpJ':'job_ensure_tables_warn','jCjSe':_0x474c7f(0x26f)},_0x25ad8f=this['getDbUtils']();if(!_0x25ad8f){logger['warn']({'event':_0x474c7f(0x21d)},'Database\x20tidak\x20tersedia,\x20skip\x20auto-create\x20job\x20tables');return;}const _0x539254=this['getDbType'](),_0x3084e6={'postgresql':'postgresql.sql','oracle':_0x47407d[_0x474c7f(0x2ff)],'mysql':_0x474c7f(0x2d8)},_0x5e158e=_0x3084e6[_0x539254];if(!_0x5e158e){logger['warn']({'event':_0x47407d['RHuCY'],'dbType':_0x539254},'DB_TYPE\x20\x27'+_0x539254+'\x27\x20tidak\x20didukung\x20untuk\x20job\x20monitoring\x20tables');return;}const _0x3a0054=path['join'](__dirname,_0x47407d['AjpnY'],_0x5e158e);if(!fs[_0x474c7f(0x2a8)](_0x3a0054)){logger[_0x474c7f(0x2dd)]({'event':_0x47407d[_0x474c7f(0x1f7)],'path':_0x3a0054},'SQL\x20script\x20tidak\x20ditemukan:\x20'+_0x3a0054);return;}const _0x52775d=fs['readFileSync'](_0x3a0054,_0x474c7f(0x2bf)),_0x46f9b8=this['splitSqlStatements'](_0x52775d,_0x539254);let _0x1554fd=0x0;for(const _0x5e225b of _0x46f9b8){try{await _0x25ad8f[_0x474c7f(0x2f3)](_0x5e225b),_0x1554fd++;}catch(_0x51032d){const _0x1fc8ef=(_0x51032d['message']||'')[_0x474c7f(0x292)](),_0x566e8a=_0x1fc8ef['includes'](_0x47407d['lXJMf'])||_0x1fc8ef['includes'](_0x47407d[_0x474c7f(0x317)])||_0x1fc8ef[_0x474c7f(0x269)](_0x47407d['VpDms']);!_0x566e8a&&logger[_0x474c7f(0x2dd)]({'event':_0x47407d[_0x474c7f(0x313)],'error':_0x51032d['message']},'Job\x20ensureTables\x20warning:\x20'+_0x51032d['message']);}}logger[_0x474c7f(0x2b5)]({'event':_0x47407d['jCjSe'],'dbType':_0x539254,'executed':_0x1554fd},'Job\x20monitoring\x20tables\x20ensured\x20('+_0x539254+')');}[a0_0x38df10(0x272)](_0x288af1,_0x42c55c){const _0x20e32a=a0_0x38df10;let _0x1c4b37;return _0x42c55c==='oracle'?_0x1c4b37=_0x288af1['split'](/\n\/\s*(?:\n|$)/):_0x1c4b37=_0x288af1['split'](/;\s*(?:\n|$)/),_0x1c4b37[_0x20e32a(0x212)](_0x561cb1=>_0x561cb1[_0x20e32a(0x260)]())['filter'](_0x3b5d29=>{const _0x39b190=_0x20e32a;if(_0x3b5d29[_0x39b190(0x2d9)]===0x0)return![];const _0x8b794b=_0x3b5d29[_0x39b190(0x2fc)]('\x0a')[_0x39b190(0x253)](_0x35cf64=>!_0x35cf64['trim']()[_0x39b190(0x222)]('--')&&_0x35cf64['trim']()['length']>0x0);return _0x8b794b['length']>0x0;});}async['upsertJobRegistry'](_0x541887,_0x145160=a0_0x38df10(0x2d0),_0x24083e=null){const _0xfb582=a0_0x38df10,_0xc27156={'QaZPn':function(_0x28d15c,_0x3f80aa){return _0x28d15c===_0x3f80aa;},'IfQVI':_0xfb582(0x1fe)},_0x29476e=this[_0xfb582(0x238)]();if(!_0x29476e)return;const _0x30db80=this['getDbType'](),_0x376af5=[_0x541887[_0xfb582(0x299)],_0x541887['description']||_0x541887[_0xfb582(0x299)],_0x541887[_0xfb582(0x2ef)]||_0xfb582(0x273),_0x541887[_0xfb582(0x22a)]||null,_0x541887['queue']||'default',_0x541887['handler'],_0x541887['_sourceFile']||'',_0x541887['timeout']||0x7530,_0x541887[_0xfb582(0x1f8)]?.['maxAttempts']||0x3,_0x541887['retry']?.[_0xfb582(0x29f)]||'exponential',_0x145160,_0x24083e];try{if(_0xc27156[_0xfb582(0x29d)](_0x30db80,'oracle'))await _0x29476e[_0xfb582(0x2f3)](_0xfb582(0x2e6),_0x376af5);else _0x30db80===_0xfb582(0x22e)?await _0x29476e[_0xfb582(0x2f3)]('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)',_0x376af5):await _0x29476e['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()',_0x376af5);}catch(_0x4b4599){logger[_0xfb582(0x2dd)]({'event':_0xc27156['IfQVI'],'name':_0x541887['name'],'error':_0x4b4599[_0xfb582(0x24d)]},_0xfb582(0x310)+_0x541887[_0xfb582(0x299)]+_0xfb582(0x245)+_0x4b4599[_0xfb582(0x24d)]);}}async[a0_0x38df10(0x2b0)](_0x31e76e){const _0x5ac9a4=a0_0x38df10,_0x1f8ddd={'svTVm':'cron','bKzYg':_0x5ac9a4(0x1f1),'kydIg':function(_0x42b14e,_0x3177be){return _0x42b14e===_0x3177be;},'QkVnB':_0x5ac9a4(0x25d),'JOTpO':function(_0x334915,_0x1f835d){return _0x334915===_0x1f835d;},'jPUfp':_0x5ac9a4(0x22e),'XuNiQ':'running'},_0x115b54=this['getDbUtils']();if(!_0x115b54)return;const _0x11c705=this['getDbType'](),_0x24e0a5=[_0x31e76e['id'],_0x31e76e['jobName'],_0x31e76e['bullmqJobId']||null,_0x31e76e[_0x5ac9a4(0x25b)]||_0x1f8ddd['svTVm'],_0x31e76e['triggeredBy']||'system',_0x31e76e[_0x5ac9a4(0x2b1)]||_0x1f8ddd[_0x5ac9a4(0x2fe)],_0x31e76e['attempt']||0x1,_0x31e76e['configFile']||null,process[_0x5ac9a4(0x2eb)]];try{if(_0x1f8ddd['kydIg'](_0x11c705,_0x1f8ddd[_0x5ac9a4(0x242)]))await _0x115b54['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,\x20SYSTIMESTAMP,\x20:9,\x20SYSTIMESTAMP)',_0x24e0a5);else _0x1f8ddd['JOTpO'](_0x11c705,_0x1f8ddd[_0x5ac9a4(0x20c)])?await _0x115b54[_0x5ac9a4(0x2f3)]('INSERT\x20INTO\x20job_history\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(id,\x20job_name,\x20bullmq_job_id,\x20trigger_type,\x20triggered_by,\x20status,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20queue,\x20attempt,\x20config_file,\x20started_at,\x20worker_pid,\x20created_at)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20\x27running\x27,\x20?,\x20?,\x20?,\x20NOW(),\x20?,\x20NOW())',_0x24e0a5):await _0x115b54[_0x5ac9a4(0x2f3)](_0x5ac9a4(0x2f1),_0x24e0a5);await this['updateRegistryStatus'](_0x31e76e['jobName'],_0x1f8ddd['XuNiQ']);}catch(_0x237b78){logger['warn']({'event':_0x5ac9a4(0x24e),'jobName':_0x31e76e['jobName'],'error':_0x237b78[_0x5ac9a4(0x24d)]},'Failed\x20to\x20insert\x20job\x20history:\x20'+_0x237b78[_0x5ac9a4(0x24d)]);}}async[a0_0x38df10(0x281)](_0x3836df,_0x21a0b4,_0x3c8bd5){const _0x242de9=a0_0x38df10,_0x529816={'xVQRf':function(_0x4a5277,_0x9e06ac){return _0x4a5277===_0x9e06ac;},'pkqgp':_0x242de9(0x25d),'oeCjf':function(_0x3c4635,_0x2f75a7){return _0x3c4635===_0x2f75a7;},'YUwuX':_0x242de9(0x22e)},_0xe0414a=this[_0x242de9(0x238)]();if(!_0xe0414a)return;const _0x252740=this['getDbType'](),_0x52bd32=_0x3c8bd5?String(_0x3c8bd5)['substring'](0x0,0x1f4):null;try{if(_0x529816[_0x242de9(0x264)](_0x252740,_0x529816[_0x242de9(0x268)]))await _0xe0414a['executeQuery']('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',[_0x21a0b4,_0x52bd32,_0x3836df]);else _0x529816['oeCjf'](_0x252740,_0x529816['YUwuX'])?await _0xe0414a['executeQuery'](_0x242de9(0x27e),[_0x21a0b4,_0x52bd32,_0x3836df]):await _0xe0414a['executeQuery'](_0x242de9(0x246),[_0x21a0b4,_0x52bd32,_0x3836df]);}catch(_0x42a503){logger[_0x242de9(0x2dd)]({'event':_0x242de9(0x316),'historyId':_0x3836df,'error':_0x42a503[_0x242de9(0x24d)]},_0x242de9(0x28f)+_0x42a503[_0x242de9(0x24d)]);}}async['updateJobHistoryFailed'](_0x51a50f,_0x47c6ab,_0x30a2a6,_0x16bfca,_0x55475a){const _0x53794a=a0_0x38df10,_0x350d15={'HCZbn':function(_0x13f566,_0x5efe73){return _0x13f566(_0x5efe73);},'MMRvq':function(_0x2c9ebc,_0x5daabc){return _0x2c9ebc===_0x5daabc;},'uvCZl':function(_0x2c6501,_0x38d7a2){return _0x2c6501||_0x38d7a2;},'VxmyV':function(_0x1789a3,_0x59ae1b){return _0x1789a3===_0x59ae1b;},'qQQeA':_0x53794a(0x22e),'XrqTo':_0x53794a(0x202)},_0x362235=this[_0x53794a(0x238)]();if(!_0x362235)return;const _0xc4fa6a=this['getDbType'](),_0x544793=_0x16bfca?String(_0x16bfca)['substring'](0x0,0x3e8):null,_0x4aa029=_0x55475a?_0x350d15['HCZbn'](String,_0x55475a)['substring'](0x0,0xfa0):null;try{if(_0x350d15['MMRvq'](_0xc4fa6a,'oracle'))await _0x362235['executeQuery'](_0x53794a(0x2e1),[_0x47c6ab,_0x350d15[_0x53794a(0x219)](_0x30a2a6,0x0),_0x544793,_0x4aa029,_0x51a50f]);else _0x350d15[_0x53794a(0x2f9)](_0xc4fa6a,_0x350d15['qQQeA'])?await _0x362235[_0x53794a(0x2f3)]('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?',[_0x47c6ab,_0x30a2a6||0x0,_0x544793,_0x4aa029,_0x51a50f]):await _0x362235[_0x53794a(0x2f3)](_0x53794a(0x2f0),[_0x47c6ab,_0x30a2a6||0x0,_0x544793,_0x4aa029,_0x51a50f]);}catch(_0x1f3e88){logger['warn']({'event':_0x350d15['XrqTo'],'historyId':_0x51a50f,'error':_0x1f3e88[_0x53794a(0x24d)]},'Failed\x20to\x20update\x20job\x20history\x20(failed):\x20'+_0x1f3e88['message']);}}async['updateRegistryStatus'](_0x56e65c,_0x34e414){const _0x507039=a0_0x38df10,_0x2d1475={'OfafG':function(_0x42f7c4,_0x1a4b7a){return _0x42f7c4===_0x1a4b7a;},'rhbtW':'mysql'},_0x910286=this[_0x507039(0x238)]();if(!_0x910286)return;const _0x5b025f=this['getDbType']();try{if(_0x5b025f==='oracle')await _0x910286['executeQuery'](_0x507039(0x237),[_0x34e414,_0x56e65c]);else _0x2d1475['OfafG'](_0x5b025f,_0x2d1475['rhbtW'])?await _0x910286['executeQuery']('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20?,\x20last_run_at\x20=\x20NOW()\x20WHERE\x20job_name\x20=\x20?',[_0x34e414,_0x56e65c]):await _0x910286[_0x507039(0x2f3)](_0x507039(0x27d),[_0x34e414,_0x56e65c]);}catch(_0x5715bf){}}async[a0_0x38df10(0x259)](_0x2ee525,_0x4fe89e,_0x2d70be,_0x352c5f){const _0x45f002=a0_0x38df10,_0x258414={'bZLrY':function(_0x5baf21,_0x328cab){return _0x5baf21===_0x328cab;},'BtGEr':_0x45f002(0x2cb),'tzaCy':'total_failed','RyJSX':function(_0x4daff6,_0x18df2a){return _0x4daff6===_0x18df2a;},'qEsuT':_0x45f002(0x25d),'YSDGp':function(_0x7ebd30,_0x597c25){return _0x7ebd30===_0x597c25;},'hProR':_0x45f002(0x2be)},_0x2252bc=this[_0x45f002(0x238)]();if(!_0x2252bc)return;const _0x37809b=this[_0x45f002(0x229)](),_0x158212=_0x258414[_0x45f002(0x21c)](_0x4fe89e,'success')?_0x258414['BtGEr']:_0x258414['tzaCy'];try{if(_0x258414['RyJSX'](_0x37809b,_0x258414['qEsuT']))await _0x2252bc[_0x45f002(0x2f3)](_0x45f002(0x265)+_0x158212+'\x20=\x20'+_0x158212+'\x20+\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20next_run_at\x20=\x20:3,\x20updated_at\x20=\x20SYSTIMESTAMP\x20WHERE\x20job_name\x20=\x20:4',[_0x4fe89e,_0x2d70be,_0x352c5f,_0x2ee525]);else _0x258414[_0x45f002(0x305)](_0x37809b,'mysql')?await _0x2252bc[_0x45f002(0x2f3)]('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'+_0x158212+_0x45f002(0x2db)+_0x158212+_0x45f002(0x20e),[_0x4fe89e,_0x2d70be,_0x352c5f,_0x2ee525]):await _0x2252bc[_0x45f002(0x2f3)](_0x45f002(0x209)+_0x158212+_0x45f002(0x2db)+_0x158212+'\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',[_0x4fe89e,_0x2d70be,_0x352c5f,_0x2ee525]);}catch(_0x2ddd1b){logger['warn']({'event':_0x258414['hProR'],'jobName':_0x2ee525,'error':_0x2ddd1b[_0x45f002(0x24d)]},'Failed\x20to\x20update\x20job\x20registry\x20counters:\x20'+_0x2ddd1b[_0x45f002(0x24d)]);}}async[a0_0x38df10(0x2d1)](_0x4a92ed){const _0x596805=a0_0x38df10,_0xfb2448={'mtucM':function(_0x4f548f,_0x158e2f){return _0x4f548f!==_0x158e2f;},'ZHQWP':function(_0x18a7ff,_0x522e3f){return _0x18a7ff===_0x522e3f;}},_0x509194=this[_0x596805(0x2f7)][_0x4a92ed];if(!_0x509194||_0xfb2448[_0x596805(0x2d7)](_0x509194[_0x596805(0x2ef)],_0x596805(0x273))||_0x509194[_0x596805(0x2e2)]===![])return null;const _0x59026c=this['queues'][_0x509194[_0x596805(0x2b1)]||_0x596805(0x1f1)];if(!_0x59026c)return null;try{if(_0xfb2448['ZHQWP'](typeof _0x59026c[_0x596805(0x270)],'function')){const _0x1f35fd=await _0x59026c[_0x596805(0x270)](0x0,0x64),_0xc177b=_0x1f35fd['find'](_0x40e837=>_0x40e837['name']===_0x4a92ed);return _0xc177b?.['next']?new Date(_0xc177b[_0x596805(0x225)]):null;}}catch(_0x232b9e){}return null;}async['setAllJobsOffline'](){const _0x34e6ad=a0_0x38df10,_0x529fa5={'bsXyq':function(_0x5149c5,_0x3d5412){return _0x5149c5===_0x3d5412;},'FgLGo':_0x34e6ad(0x22e),'PBmJz':'job_registry_offline_error'},_0x3ec038=this['getDbUtils']();if(!_0x3ec038)return;const _0x28d4a8=this[_0x34e6ad(0x229)]();try{if(_0x529fa5['bsXyq'](_0x28d4a8,'oracle'))await _0x3ec038['executeQuery']('UPDATE\x20job_registry\x20SET\x20status\x20=\x20\x27offline\x27,\x20next_run_at\x20=\x20NULL,\x20updated_at\x20=\x20SYSTIMESTAMP');else _0x28d4a8===_0x529fa5['FgLGo']?await _0x3ec038['executeQuery'](_0x34e6ad(0x303)):await _0x3ec038['executeQuery'](_0x34e6ad(0x240));}catch(_0x47a22c){logger[_0x34e6ad(0x2dd)]({'event':_0x529fa5['PBmJz'],'error':_0x47a22c[_0x34e6ad(0x24d)]},'Failed\x20to\x20set\x20jobs\x20offline:\x20'+_0x47a22c[_0x34e6ad(0x24d)]);}}[a0_0x38df10(0x238)](){const _0x109ad1=a0_0x38df10,_0x36ad73={'hEItv':_0x109ad1(0x2f2),'QxxfQ':function(_0x39c4ea,_0x1ac2e4){return _0x39c4ea(_0x1ac2e4);},'xTXDy':_0x109ad1(0x28d),'ZOvoE':function(_0x5b59ce,_0x3577df){return _0x5b59ce===_0x3577df;},'CqfUL':_0x109ad1(0x22e)},_0x234a6a=(process[_0x109ad1(0x2e7)]['DB_TYPE']||_0x36ad73['hEItv'])[_0x109ad1(0x292)]();if(_0x234a6a===_0x109ad1(0x25d))try{const _0xa5ae9c=_0x36ad73['QxxfQ'](require,_0x109ad1(0x23b));return{'executeQuery':(_0x1a3a8c,_0x1c229a)=>_0xa5ae9c[_0x109ad1(0x2f3)](_0x1a3a8c,_0x1c229a),'executeTransaction':_0x4512c7=>_0xa5ae9c[_0x109ad1(0x251)](_0x4512c7),'getPool':()=>_0xa5ae9c[_0x109ad1(0x2a2)]()};}catch(_0x36c759){return logger[_0x109ad1(0x2dd)]({'event':_0x36ad73['xTXDy']},'Oracle\x20DB\x20module\x20not\x20available'),null;}if(_0x36ad73[_0x109ad1(0x284)](_0x234a6a,_0x36ad73[_0x109ad1(0x1f4)]))try{const _0x5783b2=require(_0x109ad1(0x2f5));return{'executeQuery':(_0x242825,_0x4f049d)=>_0x5783b2['executeQuery'](_0x242825,_0x4f049d),'executeTransaction':_0x368d60=>_0x5783b2[_0x109ad1(0x251)](_0x368d60),'getPool':()=>_0x5783b2['getPool']()};}catch(_0x209286){return logger['warn']({'event':_0x109ad1(0x280)},'MySQL\x20DB\x20module\x20not\x20available'),null;}try{const _0x189f86=require('../../utils/db');return{'executeQuery':_0x189f86[_0x109ad1(0x2f3)],'executeTransaction':_0x189f86[_0x109ad1(0x251)],'getPool':_0x189f86['getPool']};}catch(_0x439657){return logger[_0x109ad1(0x2dd)]({'event':'db_pg_unavailable'},_0x109ad1(0x287)),null;}}[a0_0x38df10(0x2f6)](){const _0x3875d1=a0_0x38df10,_0x4c144d={'UDYOv':function(_0x200b53,_0x5b38be){return _0x200b53(_0x5b38be);},'DVYLf':'../../utils/redis-client'};try{const _0x3eebbf=_0x4c144d['UDYOv'](require,_0x4c144d[_0x3875d1(0x30c)]);return _0x3eebbf['getClient']?_0x3eebbf[_0x3875d1(0x20a)]():_0x3eebbf;}catch(_0x28c191){return null;}}[a0_0x38df10(0x2de)](){const _0x4ae353=a0_0x38df10,_0x433403={'LUnwr':function(_0x1fd5e1,_0x5b1baf){return _0x1fd5e1(_0x5b1baf);}};try{if(process[_0x4ae353(0x2e7)][_0x4ae353(0x220)]==='true'){const _0x4b6a57=_0x433403[_0x4ae353(0x26d)](require,_0x4ae353(0x286));return _0x4b6a57[_0x4ae353(0x27b)]?_0x4b6a57[_0x4ae353(0x27b)]():_0x4b6a57;}}catch(_0x4ac700){}return null;}[a0_0x38df10(0x2ee)](){try{return require('../../utils/cache-manager');}catch(_0x2bf36c){return null;}}async['dispatch'](_0x550f3c,_0x30ea12={}){const _0x221da3=a0_0x38df10,_0x3b83b3={'shKoI':_0x221da3(0x1f1),'qqNaZ':'api'},_0x478426=this['jobConfigs'][_0x550f3c];if(!_0x478426)throw new Error('Job\x20not\x20found:\x20'+_0x550f3c);const _0xec0f47=this['queues'][_0x478426[_0x221da3(0x2b1)]||_0x3b83b3['shKoI']],_0x2f2862=await _0xec0f47[_0x221da3(0x203)](_0x550f3c,{..._0x30ea12,'handler':_0x478426[_0x221da3(0x2bd)],'triggeredBy':_0x3b83b3[_0x221da3(0x2a3)]},{'attempts':_0x478426[_0x221da3(0x1f8)]?.['maxAttempts']||0x3,'backoff':{'type':_0x478426[_0x221da3(0x1f8)]?.['backoff']||'exponential','delay':_0x478426[_0x221da3(0x1f8)]?.[_0x221da3(0x2fa)]||0x1388},'timeout':_0x478426['timeout']||0x7530});return logger[_0x221da3(0x2b5)]({'event':_0x221da3(0x295),'jobId':_0x2f2862['id'],'name':_0x550f3c,'triggeredBy':_0x3b83b3[_0x221da3(0x2a3)]},'Job\x20dispatched:\x20'+_0x550f3c+_0x221da3(0x228)+_0x2f2862['id']+')'),{'jobId':_0x2f2862['id'],'name':_0x550f3c};}async['dispatchDelayed'](_0x3c1493,_0x3eef9c={},_0x5c78fe=0x0){const _0x2f4eb0=a0_0x38df10,_0x1d4329={'SlVWV':_0x2f4eb0(0x2c0)},_0x1d45f2=this[_0x2f4eb0(0x2f7)][_0x3c1493];if(!_0x1d45f2)throw new Error('Job\x20not\x20found:\x20'+_0x3c1493);const _0x57ed1d=this['queues'][_0x1d45f2[_0x2f4eb0(0x2b1)]||'default'],_0x598c0e=await _0x57ed1d[_0x2f4eb0(0x203)](_0x3c1493,{..._0x3eef9c,'handler':_0x1d45f2['handler'],'triggeredBy':'api-delayed'},{'delay':_0x5c78fe,'attempts':_0x1d45f2[_0x2f4eb0(0x1f8)]?.['maxAttempts']||0x3,'backoff':{'type':_0x1d45f2['retry']?.[_0x2f4eb0(0x29f)]||_0x1d4329[_0x2f4eb0(0x277)],'delay':_0x1d45f2['retry']?.[_0x2f4eb0(0x2fa)]||0x1388},'timeout':_0x1d45f2[_0x2f4eb0(0x208)]||0x7530});return logger[_0x2f4eb0(0x2b5)]({'event':_0x2f4eb0(0x241),'jobId':_0x598c0e['id'],'name':_0x3c1493,'delayMs':_0x5c78fe},'Job\x20dispatched\x20(delayed\x20'+_0x5c78fe+_0x2f4eb0(0x25e)+_0x3c1493+'\x20(id:\x20'+_0x598c0e['id']+')'),{'jobId':_0x598c0e['id'],'name':_0x3c1493};}async[a0_0x38df10(0x234)](_0x13be3f){const _0xece10b=a0_0x38df10;for(const _0x1798c2 of Object['values'](this['queues'])){const _0x413597=await _0x1798c2['getJob'](_0x13be3f);if(_0x413597){const _0x301738=await _0x413597[_0xece10b(0x2ea)]();return{'jobId':_0x413597['id'],'name':_0x413597['name'],'state':_0x301738,'progress':_0x413597[_0xece10b(0x2a1)],'attemptsMade':_0x413597[_0xece10b(0x30d)],'failedReason':_0x413597['failedReason'],'returnvalue':_0x413597['returnvalue'],'data':_0x413597['data'],'timestamps':{'created':_0x413597['timestamp'],'started':_0x413597['processedOn'],'completed':_0x413597['finishedOn']}};}}return null;}['listJobs'](){const _0x39c3f4=a0_0x38df10;return Object['values'](this['jobConfigs'])[_0x39c3f4(0x212)](_0xad7c8f=>({'name':_0xad7c8f[_0x39c3f4(0x299)],'description':_0xad7c8f[_0x39c3f4(0x1fb)]||'','type':_0xad7c8f[_0x39c3f4(0x2ef)],'schedule':_0xad7c8f[_0x39c3f4(0x22a)],'handler':_0xad7c8f[_0x39c3f4(0x2bd)],'enabled':_0xad7c8f[_0x39c3f4(0x2e2)]!==![],'queue':_0xad7c8f[_0x39c3f4(0x2b1)]||'default','timeout':_0xad7c8f['timeout']||0x7530,'retry':_0xad7c8f['retry']||{'maxAttempts':0x3,'backoff':'exponential','initialDelay':0x1388},'metadata':_0xad7c8f[_0x39c3f4(0x215)]||{}}));}async[a0_0x38df10(0x282)](){const _0xa77352=a0_0x38df10,_0x4b18d6={'RRKGv':_0xa77352(0x2dc)},_0x4b2cdc=[];for(const [_0x3ee5d5,_0x284f3c]of Object['entries'](this['queues'])){const _0x4a6856=await _0x284f3c['getJobs']([_0x4b18d6[_0xa77352(0x2e4)]]);for(const _0x84f31e of _0x4a6856){_0x4b2cdc[_0xa77352(0x239)]({'jobId':_0x84f31e['id'],'name':_0x84f31e['name'],'queue':_0x3ee5d5,'progress':_0x84f31e[_0xa77352(0x2a1)],'attemptsMade':_0x84f31e['attemptsMade'],'startedAt':_0x84f31e[_0xa77352(0x304)]});}}return _0x4b2cdc;}async['getHistory'](_0x29ab94={}){const _0x4daf24=a0_0x38df10,_0x41f941={'MFDfw':function(_0x3b5c6e,_0xc2c62e,_0x4878ca){return _0x3b5c6e(_0xc2c62e,_0x4878ca);},'AdIQd':function(_0x310ba3,_0x55ee64,_0x11d110){return _0x310ba3(_0x55ee64,_0x11d110);},'HcPMt':function(_0x2bcca6,_0x43b0f3){return _0x2bcca6*_0x43b0f3;},'VaKxC':function(_0x30ec75,_0x46d05d){return _0x30ec75-_0x46d05d;},'MakRu':'completed','yJQTn':'failed'},_0x291d05=_0x41f941[_0x4daf24(0x312)](parseInt,_0x29ab94['page'],0xa)||0x1,_0x47a61c=Math[_0x4daf24(0x23e)](_0x41f941['AdIQd'](parseInt,_0x29ab94[_0x4daf24(0x2c8)],0xa)||0x14,0x64),_0x4c63cc=_0x41f941['HcPMt'](_0x41f941['VaKxC'](_0x291d05,0x1),_0x47a61c),_0xadd8e4=_0x4c63cc+_0x47a61c-0x1,_0x16cc73=[];for(const [_0x1635f9,_0x25e642]of Object['entries'](this[_0x4daf24(0x2c4)])){const _0x4e3c6e=await _0x25e642['getJobs']([_0x41f941[_0x4daf24(0x2bb)]],_0x4c63cc,_0xadd8e4),_0xe70f7c=await _0x25e642[_0x4daf24(0x204)]([_0x41f941[_0x4daf24(0x2b4)]],_0x4c63cc,_0xadd8e4);for(const _0xeb3538 of[..._0x4e3c6e,..._0xe70f7c]){const _0x347aed=await _0xeb3538[_0x4daf24(0x2ea)]();_0x16cc73[_0x4daf24(0x239)]({'jobId':_0xeb3538['id'],'name':_0xeb3538['name'],'state':_0x347aed,'queue':_0x1635f9,'attemptsMade':_0xeb3538[_0x4daf24(0x30d)],'failedReason':_0xeb3538[_0x4daf24(0x2fb)],'returnvalue':_0xeb3538[_0x4daf24(0x257)],'timestamps':{'created':_0xeb3538['timestamp'],'started':_0xeb3538['processedOn'],'completed':_0xeb3538[_0x4daf24(0x232)]}});}}return _0x16cc73[_0x4daf24(0x29e)]((_0x359e2d,_0x971867)=>(_0x971867[_0x4daf24(0x223)][_0x4daf24(0x2ba)]||0x0)-(_0x359e2d[_0x4daf24(0x223)]['created']||0x0)),{'jobs':_0x16cc73['slice'](0x0,_0x47a61c),'total':_0x16cc73['length'],'page':_0x291d05,'limit':_0x47a61c};}async[a0_0x38df10(0x24b)](_0x54dd63){const _0x14c0c7=a0_0x38df10,_0x1113fa={'tTAsW':function(_0x45ce4c,_0x3fa2e0){return _0x45ce4c===_0x3fa2e0;},'HJFlF':_0x14c0c7(0x2dc),'jfVZo':'waiting','SpwCD':function(_0x2a820c,_0xc68956){return _0x2a820c===_0xc68956;},'NKEOM':'delayed'};for(const _0x252044 of Object['values'](this['queues'])){const _0x354d48=await _0x252044['getJob'](_0x54dd63);if(_0x354d48){const _0x5ebe98=await _0x354d48[_0x14c0c7(0x2ea)]();if(_0x1113fa[_0x14c0c7(0x28e)](_0x5ebe98,_0x1113fa['HJFlF']))return await _0x354d48[_0x14c0c7(0x248)](new Error(_0x14c0c7(0x28b)),'api-cancel',!![]),{'success':!![],'message':'Job\x20'+_0x54dd63+_0x14c0c7(0x307)};if(_0x1113fa[_0x14c0c7(0x28e)](_0x5ebe98,_0x1113fa[_0x14c0c7(0x20f)])||_0x1113fa['SpwCD'](_0x5ebe98,_0x1113fa[_0x14c0c7(0x294)]))return await _0x354d48['remove'](),{'success':!![],'message':_0x14c0c7(0x256)+_0x54dd63+_0x14c0c7(0x230)+_0x5ebe98+')'};return{'success':![],'message':_0x14c0c7(0x256)+_0x54dd63+'\x20cannot\x20be\x20cancelled\x20(state:\x20'+_0x5ebe98+')'};}}return{'success':![],'message':'Job\x20'+_0x54dd63+_0x14c0c7(0x288)};}async['getHealthStatus'](){const _0x33da85=a0_0x38df10,_0xacefb3={'TaHUp':_0x33da85(0x2dc),'aDJUb':_0x33da85(0x283),'qLYdt':'failed'},_0x597ec9={};for(const [_0x280cf8,_0x3399f4]of Object['entries'](this[_0x33da85(0x2c4)])){try{const _0x1c4c71=await _0x3399f4['getJobCounts'](_0xacefb3['TaHUp'],_0x33da85(0x25a),_0xacefb3['aDJUb'],_0xacefb3[_0x33da85(0x318)],'paused',_0x33da85(0x2b3));_0x597ec9[_0x280cf8]=_0x1c4c71;}catch(_0x39200e){_0x597ec9[_0x280cf8]={'error':_0x39200e[_0x33da85(0x24d)]};}}const _0x2a76ea={};for(const [_0x17dfc7,_0x5e4c40]of Object['entries'](this[_0x33da85(0x210)])){_0x2a76ea[_0x17dfc7]={'running':_0x5e4c40['isRunning'](),'paused':_0x5e4c40['isPaused']()};}return{'initialized':this[_0x33da85(0x2a6)],'registeredJobs':Object['keys'](this[_0x33da85(0x2f7)])['length'],'redisConnections':this['connections']['length'],'queues':_0x597ec9,'workers':_0x2a76ea};}async['onJobCompleted'](_0x4b8923,_0x5a45e3){const _0x152f35=a0_0x38df10,_0x221d4b={'zmbvJ':_0x152f35(0x29c),'uDOxb':function(_0x161b61,_0x1dd873){return _0x161b61===_0x1dd873;},'wmkLb':_0x152f35(0x2c5),'INCJG':'onAfterJobComplete','PIOJo':_0x152f35(0x2ae),'AvhOg':'job_kafka_publish_error'},_0x412354=logger['child']({'jobId':_0x4b8923['id'],'jobName':_0x4b8923[_0x152f35(0x299)]});_0x412354[_0x152f35(0x2b5)]({'event':_0x152f35(0x2d3),'attemptsMade':_0x4b8923[_0x152f35(0x30d)],'duration':_0x4b8923[_0x152f35(0x232)]?_0x4b8923[_0x152f35(0x232)]-_0x4b8923['processedOn']:null},_0x152f35(0x289)+_0x4b8923['name']);const _0x4c0261=this[_0x152f35(0x314)]['get'](_0x4b8923['id']);if(_0x4c0261){if(_0x4c0261['insertPromise'])await _0x4c0261['insertPromise'];const _0xf8b20e=_0x4b8923['finishedOn']&&_0x4b8923['processedOn']?_0x4b8923['finishedOn']-_0x4b8923['processedOn']:null,_0x2fa27e=_0x221d4b['uDOxb'](typeof _0x5a45e3,_0x152f35(0x23f))?_0x5a45e3:_0x5a45e3?JSON['stringify'](_0x5a45e3)['substring'](0x0,0x1f4):null;await this[_0x152f35(0x281)](_0x4c0261[_0x152f35(0x2d6)],_0xf8b20e,_0x2fa27e);const _0x18c0e0=await this[_0x152f35(0x2d1)](_0x4b8923['name']);await this['updateRegistryCounters'](_0x4b8923[_0x152f35(0x299)],_0x221d4b['wmkLb'],_0xf8b20e,_0x18c0e0),this[_0x152f35(0x314)][_0x152f35(0x285)](_0x4b8923['id']);}const _0x3e0139=getComponentEngine();if(_0x3e0139&&typeof _0x3e0139['executeEventHandlers']===_0x152f35(0x26e)){const _0x32bde0={'jobId':_0x4b8923['id'],'jobName':_0x4b8923[_0x152f35(0x299)],'result':_0x5a45e3,'config':this[_0x152f35(0x2f7)][_0x4b8923['name']]||{}};_0x3e0139[_0x152f35(0x2af)](_0x221d4b[_0x152f35(0x308)],_0x32bde0,![])['catch'](_0x2bba3e=>{const _0x495073=_0x152f35;_0x412354[_0x495073(0x2dd)]({'event':_0x221d4b[_0x495073(0x214)],'error':_0x2bba3e[_0x495073(0x24d)]},_0x495073(0x1f5));});}const _0x2b6bbe=this['getKafkaService']();if(_0x2b6bbe)try{await _0x2b6bbe['publishEvent']('restforge.jobs.completed',_0x221d4b[_0x152f35(0x2ce)],null,{'jobId':_0x4b8923['id'],'name':_0x4b8923['name'],'result':_0x5a45e3},{'module':'job-scheduler','endpoint':_0x4b8923[_0x152f35(0x299)]});}catch(_0x28f8fa){_0x412354['warn']({'event':_0x221d4b['AvhOg'],'error':_0x28f8fa[_0x152f35(0x24d)]},_0x152f35(0x2b7));}}async['onJobFailed'](_0xebd7c6,_0x65723a){const _0x2d99c1=a0_0x38df10,_0x3649cf={'fkjIs':'after_job_failed_hook_error','gNSIX':'job_failed','KgDbG':function(_0x4aa8d6,_0x4e72f9){return _0x4aa8d6-_0x4e72f9;},'EsNQv':function(_0x11b9de){return _0x11b9de();},'PqYLL':function(_0x57c7e4,_0x1a9bdc){return _0x57c7e4===_0x1a9bdc;},'lRUGy':'function'},_0x58bde1=logger[_0x2d99c1(0x200)]({'jobId':_0xebd7c6['id'],'jobName':_0xebd7c6[_0x2d99c1(0x299)]});_0x58bde1['error']({'event':_0x3649cf[_0x2d99c1(0x309)],'attemptsMade':_0xebd7c6['attemptsMade'],'failedReason':_0x65723a?.[_0x2d99c1(0x24d)],'willRetry':_0xebd7c6[_0x2d99c1(0x30d)]<(this[_0x2d99c1(0x2f7)][_0xebd7c6[_0x2d99c1(0x299)]]?.[_0x2d99c1(0x1f8)]?.[_0x2d99c1(0x254)]||0x3)},'Job\x20failed:\x20'+_0xebd7c6[_0x2d99c1(0x299)]+_0x2d99c1(0x245)+_0x65723a?.[_0x2d99c1(0x24d)]);const _0x2e7750=this['activeHistoryIds']['get'](_0xebd7c6['id']);if(_0x2e7750){if(_0x2e7750['insertPromise'])await _0x2e7750['insertPromise'];const _0x300f47=_0xebd7c6['finishedOn']&&_0xebd7c6['processedOn']?_0x3649cf[_0x2d99c1(0x29b)](_0xebd7c6[_0x2d99c1(0x232)],_0xebd7c6['processedOn']):null;await this['updateJobHistoryFailed'](_0x2e7750['historyId'],_0x300f47,_0xebd7c6[_0x2d99c1(0x2a1)],_0x65723a?.[_0x2d99c1(0x24d)],_0x65723a?.['stack']);const _0x4ecc0e=await this[_0x2d99c1(0x2d1)](_0xebd7c6[_0x2d99c1(0x299)]);await this['updateRegistryCounters'](_0xebd7c6[_0x2d99c1(0x299)],'failed',_0x300f47,_0x4ecc0e),this[_0x2d99c1(0x314)][_0x2d99c1(0x285)](_0xebd7c6['id']);}const _0x2dcaea=_0x3649cf[_0x2d99c1(0x263)](getComponentEngine);if(_0x2dcaea&&_0x3649cf['PqYLL'](typeof _0x2dcaea['executeEventHandlers'],_0x3649cf[_0x2d99c1(0x22d)])){const _0x269e90={'jobId':_0xebd7c6['id'],'jobName':_0xebd7c6['name'],'error':_0x65723a?.['message'],'attemptsMade':_0xebd7c6[_0x2d99c1(0x30d)],'config':this['jobConfigs'][_0xebd7c6['name']]||{}};_0x2dcaea[_0x2d99c1(0x2af)](_0x2d99c1(0x21e),_0x269e90,![])[_0x2d99c1(0x217)](_0x22dbbb=>{_0x58bde1['warn']({'event':_0x3649cf['fkjIs'],'error':_0x22dbbb['message']},'onAfterJobFailed\x20handler\x20error\x20(non-blocking)');});}const _0x455d80=this['getKafkaService']();if(_0x455d80)try{await _0x455d80[_0x2d99c1(0x27a)]('restforge.jobs.failed','JOB_FAILED',null,{'jobId':_0xebd7c6['id'],'name':_0xebd7c6['name'],'error':_0x65723a?.['message'],'attemptsMade':_0xebd7c6[_0x2d99c1(0x30d)]},{'module':'job-scheduler','endpoint':_0xebd7c6['name']});}catch(_0x1e98fe){_0x58bde1['warn']({'event':'job_kafka_publish_error','error':_0x1e98fe['message']},_0x2d99c1(0x211));}}[a0_0x38df10(0x2c7)](_0xfaf1be,_0x4cd66e){const _0x248cbf=a0_0x38df10,_0x35d21a={'irYar':'job_progress'};logger['debug']({'event':_0x35d21a['irYar'],'jobId':_0xfaf1be['id'],'jobName':_0xfaf1be[_0x248cbf(0x299)],'progress':_0x4cd66e},'Job\x20progress:\x20'+_0xfaf1be[_0x248cbf(0x299)]+_0x248cbf(0x245)+_0x4cd66e+'%');}}module['exports']=new JobManager();
@@ -1 +1 @@
1
- const a0_0x915ab6=a0_0x2c5a;(function(_0x572f4d,_0x573b29){const _0x4fe90d=a0_0x2c5a,_0x1afdcd=_0x572f4d();while(!![]){try{const _0x327443=-parseInt(_0x4fe90d(0x72))/0x1+parseInt(_0x4fe90d(0x99))/0x2*(-parseInt(_0x4fe90d(0xc6))/0x3)+parseInt(_0x4fe90d(0x7d))/0x4+-parseInt(_0x4fe90d(0xb0))/0x5*(parseInt(_0x4fe90d(0xa1))/0x6)+-parseInt(_0x4fe90d(0x7c))/0x7*(parseInt(_0x4fe90d(0x90))/0x8)+parseInt(_0x4fe90d(0x69))/0x9+-parseInt(_0x4fe90d(0x93))/0xa*(-parseInt(_0x4fe90d(0x9b))/0xb);if(_0x327443===_0x573b29)break;else _0x1afdcd['push'](_0x1afdcd['shift']());}catch(_0x4045c5){_0x1afdcd['push'](_0x1afdcd['shift']());}}}(a0_0x5667,0xb8d5a));const express=require('express'),{Queue}=require('bullmq'),Redis=require('ioredis'),{logger}=require('../../utils/logger');function a0_0x5667(){const _0x32ea26=['z2v0u3rHDgu','AgfUzgXLCG','tKfUy3a','AM9Ix2XPC3rFzxjYB3i','nLnnDK5Mrq','AM9ICW','CMvHzgrPCLn5BMm','DgLTzxn0yw1WCW','uhDpwxm','C3rHDhvZ','A2Hbq00','tLPXs2W','DMfSDwvZ','BMfTzq','Cg9ZDa','BwvZC2fNzq','BwfW','nZm2otu4n09YCeDevq','z2v0sM9Iq291BNrZ','rxjYB3iGDhjPz2DLCMLUzYbQB2i','D2fPDgLUzW','y29TCgXLDgvK','sM9IifjVDxrLCYbszwrPCYbLCNjVCJOG','y3jLyxrLza','ywn0AxzL','AM9Ix3rYAwDNzxjFzxjYB3i','mZK5ntq0vNz6ELbs','CMv0CNK','z2v0sM9ICW','Aw5MBW','Bxvywe4','ihrYAwDNzxjLzcbZDwnJzxnZzNvSBhK','DhLWzq','AM9Ix3jVDxrLC19YzwrPC19LCNjVCG','z2v0sM9I','CxvLCNK','nZu4ntCZmLHTtLzQwa','mZy4mZa4mfjXAMjfsG','Cgf5Bg9Hza','swvlvLG','CxvLDwu','ChvZAa','AgvHBhrOEq','A3nPCgW','l2HPC3rVCNK','A2v5CW','D2riwKG','Cgf0Aa','zw50CMLLCW','ywrK','rxjYB3iGz2v0DgLUzYbXDwv1zsbZDgf0CW','D1jty04','zgvSyxLLza','Bg93','z2v0','zxHPC3rZu3LUyW','ohLmuLfuuG','C29YDa','zxjYB3i','mZb0qMPqEfC','yxr0zw1WDhnnywrL','AM9Ix3n0yxr1C19LCNjVCG','u1jeC3u','ANnVBG','zgvMyxvSDa','nJK1nda4uNbHyu1W','Bwv0ywrHDge','otCYmtK4n2jwCvPNrW','CMvHzezPBgvtEw5J','CgfYyw1Z','zMfPBgvKuMvHC29U','CgfYC2u','rMjRz2i','mtjpBeX5uxO','Bwf4qxr0zw1WDhm','uKvesvnFueftu1DpuKq','tNnZrMe','l2HLywX0Aa','rxjYB3iGy2fUy2vSBgLUzYbQB2i','DgLTzw91Da','CuXTBgq','zMfPBgvK','yM9KEq','zMLSDgvY','y3DK','l3f1zxvLCW','yNbKv2G','zxHWB3j0CW','mZyZodm4nxrfsKD1sG','lMPZB24','BxPOB0O','DxrMoa','wNvcr3y','ihrPzgfRigrPDgvTDwTHBG','C0LtuKq','ignHBMnLBgXLzcaOD2fZigfJDgL2zsK','AM9PBG','AM9Ix3f1zxvLC19LCNjVCG','ChjVy2vZC2vKt24','DgLTzxn0yw1W','BvbnyK4','rxjYB3iGBgLZDgLUzYbQB2jZ','zw52','sM9Iia','BgvUz3rO','CMv0DxjUDMfSDwu'];a0_0x5667=function(){return _0x32ea26;};return a0_0x5667();}let readConnection=null,readQueues=null,cachedJobConfigs=null;const QUEUE_NAMES={'high-priority':'high','default':'default','low-priority':a0_0x915ab6(0x8d)};function getReadQueues(){const _0x466fee=a0_0x915ab6,_0x2f30d7={'mPMbN':'rf:job','mzhoJ':'localhost','lPPJk':function(_0x3df5d6,_0x456a41,_0x427ea6){return _0x3df5d6(_0x456a41,_0x427ea6);},'muXXN':'error'};if(readQueues)return readQueues;const _0x36c4eb=process[_0x466fee(0xbe)]['JOB_REDIS_PREFIX']||_0x2f30d7[_0x466fee(0xbc)];readConnection=new Redis({'host':process[_0x466fee(0xbe)]['REDIS_HOST']||_0x2f30d7[_0x466fee(0xb2)],'port':parseInt(process['env']['REDIS_PORT'],0xa)||0x18ec,'password':process['env'][_0x466fee(0xa3)]||undefined,'db':_0x2f30d7['lPPJk'](parseInt,process[_0x466fee(0xbe)]['REDIS_DB'],0xa)||0x0,'maxRetriesPerRequest':null}),readConnection['on'](_0x2f30d7[_0x466fee(0x76)],_0x2c1da0=>{const _0xd51b01=_0x466fee;logger[_0xd51b01(0x92)]({'event':_0xd51b01(0x79),'error':_0x2c1da0[_0xd51b01(0x67)]},_0xd51b01(0x6e)+_0x2c1da0[_0xd51b01(0x67)]);}),readQueues={};for(const [_0x5cfd6d,_0x20f7fb]of Object['entries'](QUEUE_NAMES)){readQueues[_0x5cfd6d]=new Queue(_0x20f7fb,{'connection':readConnection,'prefix':_0x36c4eb});}return readQueues;}function createJobRoutes(_0x332413){const _0x326750=a0_0x915ab6,_0x5ad058={'avOSy':function(_0x1ae671,_0x42ecc2){return _0x1ae671(_0x42ecc2);},'mXGZp':'Error\x20getting\x20job\x20status','NAncp':function(_0x175ed5,_0x28cef6){return _0x175ed5(_0x28cef6);},'sISRD':_0x326750(0x87),'NssFa':function(_0x4a9389){return _0x4a9389();},'woTJo':'default','llEEn':'api','vfPez':'exponential','DOkdW':'job_triggered_via_api','nRtpp':_0x326750(0x6b),'ksipl':'Job\x20cancelled\x20via\x20API','FuzfH':function(_0x5ad6a8,_0x4825ce){return _0x5ad6a8===_0x4825ce;},'wdHZH':_0x326750(0x6c),'yZCEN':'job_cancel_error','kEIKN':_0x326750(0xa6),'PwOYs':function(_0x57f8b3,_0x1e6ebd,_0x4673b5){return _0x57f8b3(_0x1e6ebd,_0x4673b5);},'SRDsu':function(_0x26e5b6,_0x3f56ee){return _0x26e5b6*_0x3f56ee;},'wRScN':function(_0x1c7aee,_0x587179){return _0x1c7aee-_0x587179;},'otwyS':_0x326750(0x6d),'HRQMj':'failed','Fbkgb':'job_history_error','UNQCY':_0x326750(0x8c),'NZqKl':'paused','mrTtU':_0x326750(0xb9),'qJfcq':_0x326750(0x82),'khACM':'degraded','IeKVX':'connected','ZuBGv':'disconnected','qLmld':function(_0x2b94af,_0x1e2c1c){return _0x2b94af>_0x1e2c1c;},'XsGAe':'/status/:jobId','XAEyu':'/trigger/:jobName','rYZCf':_0x326750(0x84),'bpdWh':_0x326750(0xad),'rQOSm':_0x326750(0xa5)},_0x53f7f7=express['Router']();return _0x332413&&_0x5ad058[_0x326750(0xa8)](Object[_0x326750(0x85)](_0x332413)[_0x326750(0xc0)],0x0)&&(cachedJobConfigs=_0x332413),_0x53f7f7[_0x326750(0x8e)]('/list',(_0x3211ed,_0x8217cd)=>{const _0x5afc8c=_0x326750;try{if(cachedJobConfigs){const _0x122605=Object['values'](cachedJobConfigs)[_0x5afc8c(0x68)](_0x53926d=>({'name':_0x53926d[_0x5afc8c(0xcf)],'description':_0x53926d['description']||'','type':_0x53926d[_0x5afc8c(0x78)],'schedule':_0x53926d['schedule'],'handler':_0x53926d[_0x5afc8c(0xc3)],'enabled':_0x53926d['enabled']!==![],'queue':_0x53926d[_0x5afc8c(0x80)]||_0x5afc8c(0x98),'timeout':_0x53926d[_0x5afc8c(0xa7)]||0x7530,'retry':_0x53926d[_0x5afc8c(0x73)]||{'maxAttempts':0x3,'backoff':'exponential','initialDelay':0x1388},'metadata':_0x53926d[_0x5afc8c(0x9a)]||{}}));return _0x8217cd[_0x5afc8c(0x97)]({'success':!![],'data':_0x122605,'total':_0x122605[_0x5afc8c(0xc0)]});}const _0x4c93ac=require('fs'),_0x46accc=_0x5ad058['avOSy'](require,_0x5afc8c(0x87)),_0x10b051=_0x46accc['join'](process[_0x5afc8c(0xac)](),_0x5afc8c(0x7e),_0x5afc8c(0xc7));if(!_0x4c93ac[_0x5afc8c(0x8f)](_0x10b051))return _0x8217cd[_0x5afc8c(0x97)]({'success':!![],'data':[],'total':0x0});const _0x2928da=_0x4c93ac['readdirSync'](_0x10b051)['filter'](_0x4d3e65=>_0x4d3e65['endsWith'](_0x5afc8c(0xb1))),_0x3a95e5=[];for(const _0x26a84d of _0x2928da){try{const _0x1ed9bd=_0x4c93ac[_0x5afc8c(0x9c)](_0x46accc['join'](_0x10b051,_0x26a84d),_0x5afc8c(0xb3)),_0x538aad=JSON['parse'](_0x1ed9bd);_0x3a95e5[_0x5afc8c(0x81)]({'name':_0x538aad['name'],'description':_0x538aad['description']||'','type':_0x538aad[_0x5afc8c(0x78)],'schedule':_0x538aad['schedule'],'handler':_0x538aad[_0x5afc8c(0xc3)],'enabled':_0x538aad['enabled']!==![],'queue':_0x538aad['queue']||_0x5afc8c(0x98),'timeout':_0x538aad['timeout']||0x7530,'retry':_0x538aad['retry']||{},'metadata':_0x538aad['metadata']||{}});}catch(_0x5d6902){}}_0x8217cd['json']({'success':!![],'data':_0x3a95e5,'total':_0x3a95e5[_0x5afc8c(0xc0)]});}catch(_0x1bee6b){logger[_0x5afc8c(0x92)]({'event':_0x5afc8c(0xc5),'error':_0x1bee6b['message']},_0x5afc8c(0xbd)),_0x8217cd['status'](0x1f4)[_0x5afc8c(0x97)]({'success':![],'error':_0x1bee6b[_0x5afc8c(0x67)]});}}),_0x53f7f7[_0x326750(0x8e)](_0x5ad058['XsGAe'],async(_0x186e9b,_0x467af4)=>{const _0xc70866=_0x326750;try{const {jobId:_0x35ebcb}=_0x186e9b[_0xc70866(0x9d)],_0x196a15=getReadQueues();for(const _0x544a5d of Object[_0xc70866(0xce)](_0x196a15)){const _0x2a8e72=await _0x544a5d[_0xc70866(0x7a)](_0x35ebcb);if(_0x2a8e72){const _0x41d93=await _0x2a8e72['getState']();return _0x467af4['json']({'success':!![],'data':{'jobId':_0x2a8e72['id'],'name':_0x2a8e72['name'],'state':_0x41d93,'progress':_0x2a8e72['progress'],'attemptsMade':_0x2a8e72['attemptsMade'],'failedReason':_0x2a8e72[_0xc70866(0x9e)],'returnvalue':_0x2a8e72[_0xc70866(0xc1)],'data':_0x2a8e72['data'],'timestamps':{'created':_0x2a8e72[_0xc70866(0xbb)],'started':_0x2a8e72['processedOn'],'completed':_0x2a8e72['finishedOn']}}});}}_0x467af4['status'](0x194)[_0xc70866(0x97)]({'success':![],'error':_0xc70866(0xbf)+_0x35ebcb+'\x20tidak\x20ditemukan'});}catch(_0x771d34){logger[_0xc70866(0x92)]({'event':_0xc70866(0x95),'error':_0x771d34[_0xc70866(0x67)]},_0x5ad058['mXGZp']),_0x467af4[_0xc70866(0xcb)](0x1f4)[_0xc70866(0x97)]({'success':![],'error':_0x771d34['message']});}}),_0x53f7f7['post'](_0x5ad058['XAEyu'],async(_0x58ebdb,_0x1dbb83)=>{const _0x1ffbb4=_0x326750;try{const {jobName:_0x521ab7}=_0x58ebdb[_0x1ffbb4(0x9d)],_0x2dcbc1=_0x58ebdb[_0x1ffbb4(0xaa)]||{};let _0xb9a441=cachedJobConfigs?.[_0x521ab7];if(!_0xb9a441){const _0xd499c9=_0x5ad058[_0x1ffbb4(0xc4)](require,'fs'),_0x22c361=require(_0x5ad058[_0x1ffbb4(0xb6)]),_0xcce336=_0x22c361[_0x1ffbb4(0xb8)](process[_0x1ffbb4(0xac)](),'payload',_0x1ffbb4(0xc7)),_0x285523=_0xd499c9[_0x1ffbb4(0x8f)](_0xcce336)?_0xd499c9[_0x1ffbb4(0xc8)](_0xcce336)[_0x1ffbb4(0xab)](_0x1cf3ef=>_0x1cf3ef['endsWith']('.json')):[];for(const _0x56d691 of _0x285523){try{const _0x42e5df=_0xd499c9['readFileSync'](_0x22c361[_0x1ffbb4(0xb8)](_0xcce336,_0x56d691),'utf8'),_0x3c79da=JSON[_0x1ffbb4(0x9f)](_0x42e5df);if(_0x3c79da[_0x1ffbb4(0xcf)]===_0x521ab7){_0xb9a441=_0x3c79da;break;}}catch(_0x305ac5){}}}if(!_0xb9a441)return _0x1dbb83[_0x1ffbb4(0xcb)](0x194)[_0x1ffbb4(0x97)]({'success':![],'error':'Job\x20\x22'+_0x521ab7+'\x22\x20tidak\x20ditemukan\x20di\x20konfigurasi'});const _0x5cd5c1=_0x5ad058[_0x1ffbb4(0xa4)](getReadQueues),_0x33b325=_0x5cd5c1[_0xb9a441['queue']||_0x5ad058['woTJo']],_0x555738=await _0x33b325[_0x1ffbb4(0x89)](_0x521ab7,{..._0x2dcbc1,'handler':_0xb9a441[_0x1ffbb4(0xc3)],'triggeredBy':_0x5ad058['llEEn']},{'attempts':_0xb9a441[_0x1ffbb4(0x73)]?.[_0x1ffbb4(0xa2)]||0x3,'backoff':{'type':_0xb9a441['retry']?.['backoff']||_0x5ad058['vfPez'],'delay':_0xb9a441['retry']?.['initialDelay']||0x1388},'timeout':_0xb9a441[_0x1ffbb4(0xa7)]||0x7530});logger[_0x1ffbb4(0x75)]({'event':_0x5ad058['DOkdW'],'jobId':_0x555738['id'],'name':_0x521ab7},'Job\x20triggered\x20via\x20API:\x20'+_0x521ab7+'\x20(id:\x20'+_0x555738['id']+')'),_0x1dbb83[_0x1ffbb4(0x97)]({'success':!![],'jobId':_0x555738['id'],'message':'Job\x20'+_0x521ab7+_0x1ffbb4(0x77)});}catch(_0x1aeb1f){logger['error']({'event':_0x1ffbb4(0x71),'error':_0x1aeb1f['message']},_0x5ad058['nRtpp']),_0x1dbb83[_0x1ffbb4(0xcb)](0x1f4)[_0x1ffbb4(0x97)]({'success':![],'error':_0x1aeb1f['message']});}}),_0x53f7f7[_0x326750(0x66)]('/cancel/:jobId',async(_0x3366f5,_0x1d27b6)=>{const _0x5eb74b=_0x326750;try{const {jobId:_0x33de0e}=_0x3366f5['params'],_0x4da50d=getReadQueues();for(const _0x1e735d of Object['values'](_0x4da50d)){const _0x245dfc=await _0x1e735d[_0x5eb74b(0x7a)](_0x33de0e);if(_0x245dfc){const _0x1f1c61=await _0x245dfc[_0x5eb74b(0xc2)]();if(_0x1f1c61==='active')return await _0x245dfc['moveToFailed'](new Error(_0x5ad058[_0x5eb74b(0x83)]),'api-cancel',!![]),_0x1d27b6['json']({'success':!![],'message':'Job\x20'+_0x33de0e+_0x5eb74b(0xb7)});if(_0x5ad058['FuzfH'](_0x1f1c61,_0x5ad058[_0x5eb74b(0x86)])||_0x5ad058['FuzfH'](_0x1f1c61,_0x5eb74b(0x8c)))return await _0x245dfc['remove'](),_0x1d27b6[_0x5eb74b(0x97)]({'success':!![],'message':_0x5eb74b(0xbf)+_0x33de0e+'\x20removed\x20(was\x20'+_0x1f1c61+')'});return _0x1d27b6['json']({'success':![],'message':_0x5eb74b(0xbf)+_0x33de0e+'\x20cannot\x20be\x20cancelled\x20(state:\x20'+_0x1f1c61+')'});}}_0x1d27b6['status'](0x194)[_0x5eb74b(0x97)]({'success':![],'error':'Job\x20'+_0x33de0e+_0x5eb74b(0xb5)});}catch(_0x4df07d){logger['error']({'event':_0x5ad058['yZCEN'],'error':_0x4df07d[_0x5eb74b(0x67)]},_0x5ad058['kEIKN']),_0x1d27b6['status'](0x1f4)[_0x5eb74b(0x97)]({'success':![],'error':_0x4df07d['message']});}}),_0x53f7f7['get'](_0x5ad058['rYZCf'],async(_0x91edad,_0x362571)=>{const _0x5dbb33=_0x326750;try{const _0x43aaac=parseInt(_0x91edad[_0x5dbb33(0x7b)]['page'],0xa)||0x1,_0x4e2829=Math['min'](_0x5ad058[_0x5dbb33(0xca)](parseInt,_0x91edad[_0x5dbb33(0x7b)]['limit'],0xa)||0x14,0x64),_0x11b7bf=_0x5ad058[_0x5dbb33(0x96)](_0x5ad058['wRScN'](_0x43aaac,0x1),_0x4e2829),_0x3a69df=_0x5ad058[_0x5dbb33(0x8b)](_0x11b7bf+_0x4e2829,0x1),_0x534266=getReadQueues(),_0x53bc93=[];for(const [_0x345063,_0x5afbd2]of Object[_0x5dbb33(0x88)](_0x534266)){const _0x3e28c5=await _0x5afbd2['getJobs']([_0x5ad058['otwyS']],_0x11b7bf,_0x3a69df),_0x3321ce=await _0x5afbd2[_0x5dbb33(0x74)]([_0x5ad058['HRQMj']],_0x11b7bf,_0x3a69df);for(const _0x33a522 of[..._0x3e28c5,..._0x3321ce]){const _0x228fbe=await _0x33a522[_0x5dbb33(0xc2)]();_0x53bc93[_0x5dbb33(0x81)]({'jobId':_0x33a522['id'],'name':_0x33a522[_0x5dbb33(0xcf)],'state':_0x228fbe,'queue':_0x345063,'attemptsMade':_0x33a522[_0x5dbb33(0x94)],'failedReason':_0x33a522['failedReason'],'returnvalue':_0x33a522[_0x5dbb33(0xc1)],'timestamps':{'created':_0x33a522['timestamp'],'started':_0x33a522[_0x5dbb33(0xba)],'completed':_0x33a522['finishedOn']}});}}_0x53bc93[_0x5dbb33(0x91)]((_0x2158a5,_0x5a11e6)=>(_0x5a11e6[_0x5dbb33(0xc9)][_0x5dbb33(0x6f)]||0x0)-(_0x2158a5[_0x5dbb33(0xc9)]['created']||0x0)),_0x362571['json']({'success':!![],'data':_0x53bc93['slice'](0x0,_0x4e2829),'total':_0x53bc93['length'],'page':_0x43aaac,'limit':_0x4e2829});}catch(_0x53d483){logger[_0x5dbb33(0x92)]({'event':_0x5ad058[_0x5dbb33(0xa0)],'error':_0x53d483[_0x5dbb33(0x67)]},'Error\x20getting\x20job\x20history'),_0x362571[_0x5dbb33(0xcb)](0x1f4)['json']({'success':![],'error':_0x53d483[_0x5dbb33(0x67)]});}}),_0x53f7f7[_0x326750(0x8e)](_0x5ad058[_0x326750(0xae)],async(_0x14f275,_0x44e139)=>{const _0x50cf03=_0x326750;try{const _0x3be026=_0x5ad058[_0x50cf03(0xa4)](getReadQueues),_0x17b15a={};for(const [_0x4e5e32,_0x3ca7d1]of Object[_0x50cf03(0x88)](_0x3be026)){try{const _0x143041=await _0x3ca7d1[_0x50cf03(0x6a)](_0x50cf03(0x70),'completed',_0x5ad058['UNQCY'],_0x5ad058['HRQMj'],_0x5ad058[_0x50cf03(0xcd)],_0x50cf03(0x6c));_0x17b15a[_0x4e5e32]=_0x143041;}catch(_0x447d6d){_0x17b15a[_0x4e5e32]={'error':_0x447d6d[_0x50cf03(0x67)]};}}_0x44e139[_0x50cf03(0x97)]({'success':!![],'data':_0x17b15a});}catch(_0x5e5d33){logger['error']({'event':_0x5ad058['mrTtU'],'error':_0x5e5d33['message']},_0x50cf03(0x8a)),_0x44e139[_0x50cf03(0xcb)](0x1f4)['json']({'success':![],'error':_0x5e5d33[_0x50cf03(0x67)]});}}),_0x53f7f7[_0x326750(0x8e)](_0x5ad058['rQOSm'],async(_0x40ad74,_0x2ed296)=>{const _0x4c9518=_0x326750;try{const _0x19b53a=_0x5ad058[_0x4c9518(0xa4)](getReadQueues),_0x439838={};let _0x59e54b=![];for(const [_0x46cef7,_0xad5dce]of Object['entries'](_0x19b53a)){try{const _0x46715a=await _0xad5dce[_0x4c9518(0x6a)]('active',_0x5ad058['wdHZH'],_0x4c9518(0xa9));_0x439838[_0x46cef7]=_0x46715a,_0x59e54b=!![];}catch(_0x419e43){_0x439838[_0x46cef7]={'error':_0x419e43['message']};}}let _0x5de228=0x0;cachedJobConfigs&&(_0x5de228=Object['keys'](cachedJobConfigs)[_0x4c9518(0xc0)]),_0x2ed296['json']({'success':!![],'data':{'status':_0x59e54b?_0x5ad058['qJfcq']:_0x5ad058[_0x4c9518(0xcc)],'redis':_0x59e54b?_0x5ad058[_0x4c9518(0x7f)]:_0x5ad058[_0x4c9518(0xb4)],'registeredJobs':_0x5de228,'queues':_0x439838}});}catch(_0x3c0e0a){_0x2ed296['status'](0x1f7)['json']({'success':![],'data':{'status':'unhealthy','error':_0x3c0e0a[_0x4c9518(0x67)]}});}}),_0x53f7f7;}function a0_0x2c5a(_0x50ca75,_0x395e60){_0x50ca75=_0x50ca75-0x66;const _0x5667fd=a0_0x5667();let _0x2c5acf=_0x5667fd[_0x50ca75];if(a0_0x2c5a['IKumpr']===undefined){var _0x21e3d5=function(_0x40c2d8){const _0x4710b2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x532653='',_0x46a1c3='';for(let _0x20d944=0x0,_0x2a78c1,_0x15bf48,_0x4a1b05=0x0;_0x15bf48=_0x40c2d8['charAt'](_0x4a1b05++);~_0x15bf48&&(_0x2a78c1=_0x20d944%0x4?_0x2a78c1*0x40+_0x15bf48:_0x15bf48,_0x20d944++%0x4)?_0x532653+=String['fromCharCode'](0xff&_0x2a78c1>>(-0x2*_0x20d944&0x6)):0x0){_0x15bf48=_0x4710b2['indexOf'](_0x15bf48);}for(let _0x162299=0x0,_0x3817ff=_0x532653['length'];_0x162299<_0x3817ff;_0x162299++){_0x46a1c3+='%'+('00'+_0x532653['charCodeAt'](_0x162299)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x46a1c3);};a0_0x2c5a['fPHrPE']=_0x21e3d5,a0_0x2c5a['YCrUne']={},a0_0x2c5a['IKumpr']=!![];}const _0x4e261e=_0x5667fd[0x0],_0x37a49f=_0x50ca75+_0x4e261e,_0x26c5c3=a0_0x2c5a['YCrUne'][_0x37a49f];return!_0x26c5c3?(_0x2c5acf=a0_0x2c5a['fPHrPE'](_0x2c5acf),a0_0x2c5a['YCrUne'][_0x37a49f]=_0x2c5acf):_0x2c5acf=_0x26c5c3,_0x2c5acf;}module[a0_0x915ab6(0xaf)]=createJobRoutes;
1
+ const a0_0xd06583=a0_0x4a01;(function(_0x512ea2,_0x42a192){const _0x4f1806=a0_0x4a01,_0x2418a7=_0x512ea2();while(!![]){try{const _0x3dbf2b=parseInt(_0x4f1806(0x1a9))/0x1*(-parseInt(_0x4f1806(0x188))/0x2)+-parseInt(_0x4f1806(0x1c4))/0x3*(-parseInt(_0x4f1806(0x1eb))/0x4)+parseInt(_0x4f1806(0x18d))/0x5+-parseInt(_0x4f1806(0x186))/0x6+-parseInt(_0x4f1806(0x1df))/0x7*(-parseInt(_0x4f1806(0x187))/0x8)+-parseInt(_0x4f1806(0x1c1))/0x9*(parseInt(_0x4f1806(0x1aa))/0xa)+-parseInt(_0x4f1806(0x1e7))/0xb;if(_0x3dbf2b===_0x42a192)break;else _0x2418a7['push'](_0x2418a7['shift']());}catch(_0x2518ca){_0x2418a7['push'](_0x2418a7['shift']());}}}(a0_0x271e,0x34c7e));function a0_0x4a01(_0x1dd74d,_0x205c32){_0x1dd74d=_0x1dd74d-0x17d;const _0x271e8f=a0_0x271e();let _0x4a0102=_0x271e8f[_0x1dd74d];if(a0_0x4a01['ocHNwR']===undefined){var _0x519982=function(_0x495320){const _0x2ec56b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x29d5df='',_0x5ef7f4='';for(let _0x3818f0=0x0,_0x5948a4,_0x59c832,_0x273735=0x0;_0x59c832=_0x495320['charAt'](_0x273735++);~_0x59c832&&(_0x5948a4=_0x3818f0%0x4?_0x5948a4*0x40+_0x59c832:_0x59c832,_0x3818f0++%0x4)?_0x29d5df+=String['fromCharCode'](0xff&_0x5948a4>>(-0x2*_0x3818f0&0x6)):0x0){_0x59c832=_0x2ec56b['indexOf'](_0x59c832);}for(let _0x5e24ea=0x0,_0xd5a9c1=_0x29d5df['length'];_0x5e24ea<_0xd5a9c1;_0x5e24ea++){_0x5ef7f4+='%'+('00'+_0x29d5df['charCodeAt'](_0x5e24ea)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5ef7f4);};a0_0x4a01['Imlrvv']=_0x519982,a0_0x4a01['WnhJRq']={},a0_0x4a01['ocHNwR']=!![];}const _0x9debc6=_0x271e8f[0x0],_0x4089c0=_0x1dd74d+_0x9debc6,_0x2c678b=a0_0x4a01['WnhJRq'][_0x4089c0];return!_0x2c678b?(_0x4a0102=a0_0x4a01['Imlrvv'](_0x4a0102),a0_0x4a01['WnhJRq'][_0x4089c0]=_0x4a0102):_0x4a0102=_0x2c678b,_0x4a0102;}function a0_0x271e(){const _0x15a4e9=['zxHPC3rZu3LUyW','CgfYC2u','AM9Ix3jVDxrLC19YzwrPC19LCNjVCG','BwvZC2fNzq','rxjYB3iGy2fUy2vSBgLUzYbQB2i','B3fqExK','AM9PBG','DgLTzxn0yw1W','sK9cx1jfreLtx1bsruzjwa','Cgf0Aa','zw5KC1DPDgG','mtu0n3Pyuu1JtW','zgvMyxvSDa','DhLWzq','CxvLCNK','DwnRBg8','DgLTzw91Da','Bwv0ywrHDge','y1DlEu0','nJC2mJy5D0HYt0Pv','yxbP','AM9Ix3rYAwDNzxjFzxjYB3i','yuPcqNu','mZqYog9rEKzTvW','zMLUAxnOzwrpBG','CMvTB3zL','C3rHDhvZ','AvDotvC','zgvNCMfKzwq','wuXbBey','zgvZy3jPChrPB24','Bg9JywXOB3n0','yvDmvKC','CgfYyw1Z','mta1oti5ngD5t1HlAa','mte4ndHrwfjMu0q','ndmZmNfSrLzqsq','Cgf5Bg9Hza','ChvZAa','Aw5MBW','sxr6D2y','mti5mdy1sLrAC0Td','sM9Iia','AM9Ix2HPC3rVCNLFzxjYB3i','AKX2sLO','zMLSDgvY','wKjsAKC','CMvHzezPBgvtEw5J','DMfSDwvZ','l3f1zxvLCW','zgvSyxLLza','zw50CMLLCW','ihrPzgfRigrPDgvTDwTHBG','Bg93','zw52','zMfPBgvK','y3DK','uvzRCMO','AgfUzgXLCG','zxHWB25LBNrPywW','ANnVBG','y29TCgXLDgvK','ANLhDhe','CMv0CNK','uKvesvnFse9tva','BgvUz3rO','zxjYB3i','zu5lt0W','z2v0u3rHDgu','mZLktvjmA2O','mZiZotbJyw9MzNm','z2v0sM9ICW','BwfW','rxjYB3iGBgLZDgLUzYbQB2jZ','AM9Ix3rYAwDNzxjLzf92AwfFyxbP','D2nQCfO','zxHWB3j0CW','t2TKwNq','zgf0yq','AM9Ix3n0yxr1C19LCNjVCG','CMvHzgrPCLn5BMm','su5evMS','ywrK','tgP2yLy','Cg9ZDa','uKvesvnFueftu1DpuKq','ihjLBw92zwqGkhDHCYa','zgLZy29UBMvJDgvK','zxHWCMvZCW','lMPZB24','A2v5CW','rxjYB3iGz2v0DgLUzYbQB2iGC3rHDhvZ','AM9Ix3f1zxvLC19LCNjVCG','nJnQrLLqzvK','C2nOzwr1Bgu','l2HPC3rVCNK','nZi5EuDhqNbT','CMy6AM9I','AeLeDLe','ywn0AxzL','uvrduhO','CxvLDwu','z2v0','yNDvqwS','C29YDa','D2fPDgLUzW','zMfPBgvKuMvHC29U','BMfTzq','sK9MvMC','EM9Xwfm','icHPzdOG','Cgf1C2vK'];a0_0x271e=function(){return _0x15a4e9;};return a0_0x271e();}const express=require(a0_0xd06583(0x1bc)),{Queue}=require('bullmq'),Redis=require('ioredis'),{logger}=require('../../utils/logger');let readConnection=null,readQueues=null,cachedJobConfigs=null;const QUEUE_NAMES={'high-priority':'high','default':'default','low-priority':a0_0xd06583(0x199)};function getReadQueues(){const _0x315d9c=a0_0xd06583,_0x38acc0={'NlABm':_0x315d9c(0x1d6),'MEmhV':_0x315d9c(0x1c5),'xrUjd':function(_0x1a4365,_0x5391ff,_0x93437d){return _0x1a4365(_0x5391ff,_0x93437d);},'zoqXS':function(_0x10f80f,_0x34caae,_0x36b923){return _0x10f80f(_0x34caae,_0x36b923);},'fZDfz':'error'};if(readQueues)return readQueues;const _0x4ae17c=process['env'][_0x315d9c(0x1dc)]||_0x38acc0['MEmhV'];readConnection=new Redis({'host':process[_0x315d9c(0x19a)][_0x315d9c(0x1a4)]||_0x315d9c(0x183),'port':_0x38acc0['xrUjd'](parseInt,process[_0x315d9c(0x19a)]['REDIS_PORT'],0xa)||0x18ec,'password':process[_0x315d9c(0x19a)][_0x315d9c(0x1b9)]||undefined,'db':_0x38acc0[_0x315d9c(0x1d1)](parseInt,process['env']['REDIS_DB'],0xa)||0x0,'maxRetriesPerRequest':null}),readConnection['on'](_0x38acc0['fZDfz'],_0x3b6953=>{const _0xf522b8=_0x315d9c;logger[_0xf522b8(0x1a6)]({'event':_0x38acc0['NlABm'],'error':_0x3b6953[_0xf522b8(0x1d7)]},'Job\x20Routes\x20Redis\x20error:\x20'+_0x3b6953['message']);}),readQueues={};for(const [_0x3f9d66,_0x570ff6]of Object[_0x315d9c(0x197)](QUEUE_NAMES)){readQueues[_0x3f9d66]=new Queue(_0x570ff6,{'connection':readConnection,'prefix':_0x4ae17c});}return readQueues;}function createJobRoutes(_0x490307){const _0x11301e=a0_0xd06583,_0x815c3={'ucklo':function(_0xfc7497,_0x32b192){return _0xfc7497(_0x32b192);},'JOfVg':'jobs','Vjrkt':'utf8','YLAlF':function(_0x14488d,_0x5c51bb){return _0x14488d!==_0x5c51bb;},'hIDvQ':'job_list_error','aWLVG':function(_0x56362d){return _0x56362d();},'ICFHk':_0x11301e(0x1b3),'aJBBu':_0x11301e(0x1bf),'wcjpZ':'path','QVkrj':_0x11301e(0x189),'LjvbV':function(_0x2036f8,_0x50b69d){return _0x2036f8===_0x50b69d;},'mIvqv':_0x11301e(0x1e0),'xkHnt':_0x11301e(0x1e8),'oqPyy':function(_0x500aab,_0x4c55d6){return _0x500aab===_0x4c55d6;},'DJFfQ':'active','qNnkC':'Job\x20cancelled\x20via\x20API','KjCSX':function(_0xaf9948,_0x182f22){return _0xaf9948===_0x182f22;},'QTCPz':'waiting','OkdZt':'delayed','UuEpz':_0x11301e(0x1d8),'cWKyM':function(_0x44b91e,_0x4080bc,_0x2c8939){return _0x44b91e(_0x4080bc,_0x2c8939);},'iWNMW':function(_0x561db8,_0x39bca7){return _0x561db8*_0x39bca7;},'Btjbj':function(_0x4f1ae0,_0x56aaf0){return _0x4f1ae0-_0x56aaf0;},'ZBRjG':_0x11301e(0x19b),'jLvJZ':_0x11301e(0x18f),'jyGtq':'Error\x20getting\x20job\x20history','BaWbS':_0x11301e(0x1a1),'ivNlK':_0x11301e(0x180),'eNKOL':'connected','RrVEg':_0x11301e(0x1bb),'bwUAk':function(_0x461527,_0x2ebdc4){return _0x461527>_0x2ebdc4;},'Itzwf':'/status/:jobId','WTfpK':'/trigger/:jobName','TUtNk':'/cancel/:jobId','INDVk':'/health'},_0x5da41e=express['Router']();return _0x490307&&_0x815c3[_0x11301e(0x1cb)](Object[_0x11301e(0x1be)](_0x490307)['length'],0x0)&&(cachedJobConfigs=_0x490307),_0x5da41e['get']('/list',(_0x13a80e,_0x2a5d3a)=>{const _0x35ac92=_0x11301e;try{if(cachedJobConfigs){const _0x1726be=Object[_0x35ac92(0x194)](cachedJobConfigs)[_0x35ac92(0x1ac)](_0xa1556=>({'name':_0xa1556[_0x35ac92(0x1cf)],'description':_0xa1556[_0x35ac92(0x182)]||'','type':_0xa1556[_0x35ac92(0x1e1)],'schedule':_0xa1556['schedule'],'handler':_0xa1556[_0x35ac92(0x19e)],'enabled':_0xa1556['enabled']!==![],'queue':_0xa1556[_0x35ac92(0x1c9)]||_0x35ac92(0x1e0),'timeout':_0xa1556[_0x35ac92(0x1e4)]||0x7530,'retry':_0xa1556['retry']||{'maxAttempts':0x3,'backoff':'exponential','initialDelay':0x1388},'metadata':_0xa1556[_0x35ac92(0x1e5)]||{}}));return _0x2a5d3a['json']({'success':!![],'data':_0x1726be,'total':_0x1726be[_0x35ac92(0x1a5)]});}const _0x3430cf=_0x815c3['ucklo'](require,'fs'),_0x1fa23d=_0x815c3[_0x35ac92(0x1e3)](require,_0x35ac92(0x1dd)),_0x523c89=_0x1fa23d[_0x35ac92(0x1da)](process['cwd'](),'payload',_0x815c3[_0x35ac92(0x1d0)]);if(!_0x3430cf['existsSync'](_0x523c89))return _0x2a5d3a[_0x35ac92(0x1a0)]({'success':!![],'data':[],'total':0x0});const _0x1c97ee=_0x3430cf[_0x35ac92(0x1b4)](_0x523c89)[_0x35ac92(0x191)](_0x3cbea3=>_0x3cbea3[_0x35ac92(0x1de)]('.json')),_0x1e8c56=[];for(const _0x655191 of _0x1c97ee){try{const _0x1721b2=_0x3430cf[_0x35ac92(0x193)](_0x1fa23d[_0x35ac92(0x1da)](_0x523c89,_0x655191),_0x815c3['Vjrkt']),_0x4f7a5d=JSON[_0x35ac92(0x1d5)](_0x1721b2);_0x1e8c56[_0x35ac92(0x18a)]({'name':_0x4f7a5d[_0x35ac92(0x1cf)],'description':_0x4f7a5d[_0x35ac92(0x182)]||'','type':_0x4f7a5d[_0x35ac92(0x1e1)],'schedule':_0x4f7a5d[_0x35ac92(0x1c2)],'handler':_0x4f7a5d['handler'],'enabled':_0x815c3[_0x35ac92(0x181)](_0x4f7a5d['enabled'],![]),'queue':_0x4f7a5d[_0x35ac92(0x1c9)]||_0x35ac92(0x1e0),'timeout':_0x4f7a5d[_0x35ac92(0x1e4)]||0x7530,'retry':_0x4f7a5d['retry']||{},'metadata':_0x4f7a5d['metadata']||{}});}catch(_0x3ceedc){}}_0x2a5d3a[_0x35ac92(0x1a0)]({'success':!![],'data':_0x1e8c56,'total':_0x1e8c56['length']});}catch(_0xf1a5dc){logger[_0x35ac92(0x1a6)]({'event':_0x815c3[_0x35ac92(0x1c6)],'error':_0xf1a5dc['message']},_0x35ac92(0x1ad)),_0x2a5d3a['status'](0x1f4)['json']({'success':![],'error':_0xf1a5dc[_0x35ac92(0x1d7)]});}}),_0x5da41e[_0x11301e(0x1ca)](_0x815c3[_0x11301e(0x18c)],async(_0x2176b0,_0x43420f)=>{const _0x3d97f1=_0x11301e;try{const {jobId:_0x2c10e6}=_0x2176b0[_0x3d97f1(0x185)],_0x546b48=_0x815c3[_0x3d97f1(0x184)](getReadQueues);for(const _0x1e8c21 of Object['values'](_0x546b48)){const _0x14417f=await _0x1e8c21['getJob'](_0x2c10e6);if(_0x14417f){const _0xb9c03a=await _0x14417f['getState']();return _0x43420f[_0x3d97f1(0x1a0)]({'success':!![],'data':{'jobId':_0x14417f['id'],'name':_0x14417f[_0x3d97f1(0x1cf)],'state':_0xb9c03a,'progress':_0x14417f['progress'],'attemptsMade':_0x14417f['attemptsMade'],'failedReason':_0x14417f['failedReason'],'returnvalue':_0x14417f['returnvalue'],'data':_0x14417f[_0x3d97f1(0x1b2)],'timestamps':{'created':_0x14417f['timestamp'],'started':_0x14417f['processedOn'],'completed':_0x14417f[_0x3d97f1(0x1ec)]}}});}}_0x43420f[_0x3d97f1(0x17e)](0x194)['json']({'success':![],'error':_0x3d97f1(0x18e)+_0x2c10e6+_0x3d97f1(0x198)});}catch(_0xc6bee9){logger['error']({'event':_0x815c3['ICFHk'],'error':_0xc6bee9['message']},_0x815c3[_0x3d97f1(0x1ea)]),_0x43420f['status'](0x1f4)[_0x3d97f1(0x1a0)]({'success':![],'error':_0xc6bee9['message']});}}),_0x5da41e['post'](_0x815c3['WTfpK'],async(_0x2180a6,_0x4b5477)=>{const _0x4d4579=_0x11301e;try{const {jobName:_0x49c50e}=_0x2180a6[_0x4d4579(0x185)],_0x45f64f=_0x2180a6['body']||{};let _0x2e1489=cachedJobConfigs?.[_0x49c50e];if(!_0x2e1489){const _0x35182e=require('fs'),_0x1cd0b9=require(_0x815c3[_0x4d4579(0x1af)]),_0x3e28dc=_0x1cd0b9[_0x4d4579(0x1da)](process[_0x4d4579(0x19c)](),_0x815c3[_0x4d4579(0x19d)],_0x815c3['JOfVg']),_0x4514d9=_0x35182e[_0x4d4579(0x1d4)](_0x3e28dc)?_0x35182e['readdirSync'](_0x3e28dc)[_0x4d4579(0x191)](_0x56813d=>_0x56813d['endsWith'](_0x4d4579(0x1bd))):[];for(const _0x2f8332 of _0x4514d9){try{const _0x2a2ee6=_0x35182e['readFileSync'](_0x1cd0b9[_0x4d4579(0x1da)](_0x3e28dc,_0x2f8332),_0x815c3['Vjrkt']),_0xd044aa=JSON['parse'](_0x2a2ee6);if(_0x815c3['LjvbV'](_0xd044aa['name'],_0x49c50e)){_0x2e1489=_0xd044aa;break;}}catch(_0x599807){}}}if(!_0x2e1489)return _0x4b5477['status'](0x194)[_0x4d4579(0x1a0)]({'success':![],'error':'Job\x20\x22'+_0x49c50e+'\x22\x20tidak\x20ditemukan\x20di\x20konfigurasi'});const _0x95345f=getReadQueues(),_0x10e1c6=_0x95345f[_0x2e1489['queue']||_0x815c3['mIvqv']],_0x1a25ac=await _0x10e1c6[_0x4d4579(0x1b6)](_0x49c50e,{..._0x45f64f,'handler':_0x2e1489['handler'],'triggeredBy':_0x815c3['xkHnt']},{'attempts':_0x2e1489['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x2e1489[_0x4d4579(0x1a3)]?.['backoff']||_0x4d4579(0x19f),'delay':_0x2e1489[_0x4d4579(0x1a3)]?.['initialDelay']||0x1388},'timeout':_0x2e1489['timeout']||0x7530});logger[_0x4d4579(0x18b)]({'event':_0x4d4579(0x1ae),'jobId':_0x1a25ac['id'],'name':_0x49c50e},'Job\x20triggered\x20via\x20API:\x20'+_0x49c50e+_0x4d4579(0x1d2)+_0x1a25ac['id']+')'),_0x4b5477['json']({'success':!![],'jobId':_0x1a25ac['id'],'message':'Job\x20'+_0x49c50e+'\x20triggered\x20successfully'});}catch(_0x2cab05){logger[_0x4d4579(0x1a6)]({'event':_0x4d4579(0x1e9),'error':_0x2cab05[_0x4d4579(0x1d7)]},'Error\x20triggering\x20job'),_0x4b5477['status'](0x1f4)['json']({'success':![],'error':_0x2cab05[_0x4d4579(0x1d7)]});}}),_0x5da41e[_0x11301e(0x1b8)](_0x815c3['TUtNk'],async(_0x1442dd,_0xd3f569)=>{const _0x2d8ade=_0x11301e;try{const {jobId:_0x3ec59e}=_0x1442dd[_0x2d8ade(0x185)],_0x5750c1=getReadQueues();for(const _0x329dc6 of Object[_0x2d8ade(0x194)](_0x5750c1)){const _0x437bc0=await _0x329dc6['getJob'](_0x3ec59e);if(_0x437bc0){const _0x30ee85=await _0x437bc0['getState']();if(_0x815c3[_0x2d8ade(0x1d9)](_0x30ee85,_0x815c3['DJFfQ']))return await _0x437bc0['moveToFailed'](new Error(_0x815c3['qNnkC']),'api-cancel',!![]),_0xd3f569['json']({'success':!![],'message':_0x2d8ade(0x18e)+_0x3ec59e+'\x20cancelled\x20(was\x20active)'});if(_0x815c3['KjCSX'](_0x30ee85,_0x815c3[_0x2d8ade(0x1c8)])||_0x815c3[_0x2d8ade(0x1b7)](_0x30ee85,_0x815c3[_0x2d8ade(0x1b1)]))return await _0x437bc0[_0x2d8ade(0x17d)](),_0xd3f569['json']({'success':!![],'message':'Job\x20'+_0x3ec59e+_0x2d8ade(0x1ba)+_0x30ee85+')'});return _0xd3f569[_0x2d8ade(0x1a0)]({'success':![],'message':_0x2d8ade(0x18e)+_0x3ec59e+'\x20cannot\x20be\x20cancelled\x20(state:\x20'+_0x30ee85+')'});}}_0xd3f569[_0x2d8ade(0x17e)](0x194)[_0x2d8ade(0x1a0)]({'success':![],'error':'Job\x20'+_0x3ec59e+'\x20tidak\x20ditemukan'});}catch(_0xa622ca){logger['error']({'event':'job_cancel_error','error':_0xa622ca['message']},_0x815c3['UuEpz']),_0xd3f569[_0x2d8ade(0x17e)](0x1f4)['json']({'success':![],'error':_0xa622ca['message']});}}),_0x5da41e[_0x11301e(0x1ca)](_0x11301e(0x1c3),async(_0x1fe467,_0x1fe3e9)=>{const _0x14976e=_0x11301e;try{const _0x27b7f8=_0x815c3[_0x14976e(0x1e6)](parseInt,_0x1fe467[_0x14976e(0x1e2)]['page'],0xa)||0x1,_0x5c21d9=Math['min'](parseInt(_0x1fe467['query']['limit'],0xa)||0x14,0x64),_0x29d8ec=_0x815c3[_0x14976e(0x17f)](_0x815c3['Btjbj'](_0x27b7f8,0x1),_0x5c21d9),_0x270fc9=_0x29d8ec+_0x5c21d9-0x1,_0x38defc=getReadQueues(),_0x249524=[];for(const [_0xb6cc3e,_0x173148]of Object[_0x14976e(0x197)](_0x38defc)){const _0x4d2211=await _0x173148[_0x14976e(0x1ab)]([_0x14976e(0x1a1)],_0x29d8ec,_0x270fc9),_0xb98510=await _0x173148['getJobs']([_0x815c3[_0x14976e(0x192)]],_0x29d8ec,_0x270fc9);for(const _0x479a0d of[..._0x4d2211,..._0xb98510]){const _0x227d33=await _0x479a0d[_0x14976e(0x1a8)]();_0x249524['push']({'jobId':_0x479a0d['id'],'name':_0x479a0d[_0x14976e(0x1cf)],'state':_0x227d33,'queue':_0xb6cc3e,'attemptsMade':_0x479a0d['attemptsMade'],'failedReason':_0x479a0d[_0x14976e(0x1ce)],'returnvalue':_0x479a0d['returnvalue'],'timestamps':{'created':_0x479a0d[_0x14976e(0x1db)],'started':_0x479a0d['processedOn'],'completed':_0x479a0d['finishedOn']}});}}_0x249524[_0x14976e(0x1cc)]((_0xf0976,_0x6bcfa6)=>(_0x6bcfa6['timestamps']['created']||0x0)-(_0xf0976['timestamps']['created']||0x0)),_0x1fe3e9['json']({'success':!![],'data':_0x249524['slice'](0x0,_0x5c21d9),'total':_0x249524['length'],'page':_0x27b7f8,'limit':_0x5c21d9});}catch(_0x354b3a){logger[_0x14976e(0x1a6)]({'event':_0x815c3[_0x14976e(0x190)],'error':_0x354b3a[_0x14976e(0x1d7)]},_0x815c3[_0x14976e(0x1a2)]),_0x1fe3e9['status'](0x1f4)[_0x14976e(0x1a0)]({'success':![],'error':_0x354b3a['message']});}}),_0x5da41e['get'](_0x11301e(0x195),async(_0x2c5cac,_0x1cfff8)=>{const _0x5d4fe9=_0x11301e;try{const _0x4a5f92=getReadQueues(),_0x3cced8={};for(const [_0x41c009,_0x31d1f2]of Object['entries'](_0x4a5f92)){try{const _0x1ca751=await _0x31d1f2['getJobCounts'](_0x5d4fe9(0x1c7),_0x815c3['BaWbS'],_0x5d4fe9(0x196),_0x815c3[_0x5d4fe9(0x192)],_0x5d4fe9(0x1d3),_0x5d4fe9(0x1cd));_0x3cced8[_0x41c009]=_0x1ca751;}catch(_0xdf9b00){_0x3cced8[_0x41c009]={'error':_0xdf9b00[_0x5d4fe9(0x1d7)]};}}_0x1cfff8['json']({'success':!![],'data':_0x3cced8});}catch(_0x4628d5){logger['error']({'event':_0x5d4fe9(0x1c0),'error':_0x4628d5['message']},'Error\x20getting\x20queue\x20stats'),_0x1cfff8['status'](0x1f4)['json']({'success':![],'error':_0x4628d5[_0x5d4fe9(0x1d7)]});}}),_0x5da41e[_0x11301e(0x1ca)](_0x815c3[_0x11301e(0x1b5)],async(_0x5514ce,_0x2a7f5b)=>{const _0x359b68=_0x11301e;try{const _0x1549c8=getReadQueues(),_0x5ae055={};let _0xd8919b=![];for(const [_0x44625a,_0x3f86f1]of Object[_0x359b68(0x197)](_0x1549c8)){try{const _0x12007d=await _0x3f86f1['getJobCounts'](_0x359b68(0x1c7),'waiting',_0x815c3['ZBRjG']);_0x5ae055[_0x44625a]=_0x12007d,_0xd8919b=!![];}catch(_0x34d1b3){_0x5ae055[_0x44625a]={'error':_0x34d1b3[_0x359b68(0x1d7)]};}}let _0x26f5e1=0x0;cachedJobConfigs&&(_0x26f5e1=Object['keys'](cachedJobConfigs)['length']),_0x2a7f5b[_0x359b68(0x1a0)]({'success':!![],'data':{'status':_0xd8919b?'healthy':_0x815c3['ivNlK'],'redis':_0xd8919b?_0x815c3[_0x359b68(0x1a7)]:_0x815c3['RrVEg'],'registeredJobs':_0x26f5e1,'queues':_0x5ae055}});}catch(_0x14acb4){_0x2a7f5b['status'](0x1f7)['json']({'success':![],'data':{'status':'unhealthy','error':_0x14acb4['message']}});}}),_0x5da41e;}module[a0_0xd06583(0x1b0)]=createJobRoutes;
@@ -1 +1 @@
1
- const a0_0x12c30c=a0_0x4b64;function a0_0x2301(){const _0x26d70d=['iJOGC3rLCcaIlW','CMv0CNK','iJOGDMfSDwuGiG','B2jQzwn0','rMLLBgqGiMvUywjSzwqIig11C3qGyMuGysbIB29SzwfU','CvPmtgu','reTiwxu','Ag91CG','uuH4BNi','zw5HyMXLza','rMLLBgqGiNr5CguIigLZihjLCxvPCMvKicHZDhjPBMCP','C2nOzwr1Bgu','x2LZvMfSAwrsyw5Nzq','Bwv0ywrHDge','Bg93lxbYAw9YAxr5','Aw5PDgLHBerLBgf5','DhLWzq','B1Ltsgy','Bw9UDgG','swHmwvG','DgLTzw91Da','mtKWnta4mhrUA0DhzG','ChvZAa','tKXZsgm','C3jJ','B3jqt2q','nJa5mZK3ofDuzKDIsW','zxHWB25LBNrPywW','mZK5sNPoEwjK','yMfJA29MzG','BMfTzq','DgvZDa','AM9PBG','zxjYB3jZ','yujusMy','BgvUz3rO','y29Uy3vYCMvUy3K','r1P4rey','DMfSAwq','DMfSAwrHDgvdCM9UrxHWCMvZC2LVBG','ntq0mdiWtuT3AgD4','rMLLBgqGiNjLDhj5lMLUAxrPywXezwXHEsiGBxvZDcbIzsbHig51BwjLCIa+idaGkgLUig1Zkq','ndu0mhvuCur4Cq','uMf3wLm','sgfUzgXLCIbMAwXLihrPzgfRigrPDgvTDwTHBJOGC3jJl2PVyNmV','Aw5JBhvKzxm','DMfSAwrHDgvrDwv1zu5HBwu','u2ztCwK','CxvLDwu','C2H1vgq','ndi3mtK0vgjUBvrv','zgf5lw9MlxDLzwS','mJmWnte1yuzQywLw','q3jVBIbLEhbYzxnZAw9Uig11C3qGAgf2zsa1igzPzwXKCYaOBwLUDxrLigHVDxiGzgf5ig1VBNrOihDLzwTKyxKPlcbMB3vUzca','zgvMyxvSDa','BNvTyMvY','BwLU','rMLLBgqGiM5HBwuIig11C3qGyMuGAw4GC2X1zYbMB3jTyxqGkgXVD2vYy2fZzsWGzgfZAcK6ici','wKrJA2i','Bwf4qxr0zw1WDhm','n0rcveLUBa','zgf5lw9Mlw1VBNrO','rMLLBgqGiNjLDhj5iIbTDxn0igjLigfUig9IAMvJDa','mMDeC0jRra','BNrxtLu','yM9VBgvHBG','iJOGAw52ywXPzcbIyxnLici','C3bSAxq','mtu3ndm5mKvXB0jJrW','EgPWtu8','q3jVBIbMAwvSzcaI','iIbTDxn0igjLigeGBNvTyMvYid4Gma','z29nCNy','DMfSAwrHDgvdB25MAwC','qMnKyNq','rMLLBgqGiMHHBMrSzxiIigLZihjLCxvPCMvKicHWyxrOihjLBgf0AxzLihrVihnYyY9QB2jZlYK','uxvLDwuGiG','owLfB3DJza','C3rYAw5N','BwPZy0y','y3jVBG','AgfUzgXLCG','Bwf4'];a0_0x2301=function(){return _0x26d70d;};return a0_0x2301();}(function(_0x17b545,_0x1a24de){const _0x51635f=a0_0x4b64,_0x28ac29=_0x17b545();while(!![]){try{const _0x1ffcdc=-parseInt(_0x51635f(0x171))/0x1*(parseInt(_0x51635f(0x17c))/0x2)+parseInt(_0x51635f(0x159))/0x3*(-parseInt(_0x51635f(0x167))/0x4)+-parseInt(_0x51635f(0x165))/0x5+parseInt(_0x51635f(0x16f))/0x6+parseInt(_0x51635f(0x179))/0x7*(parseInt(_0x51635f(0x181))/0x8)+parseInt(_0x51635f(0x137))/0x9*(-parseInt(_0x51635f(0x152))/0xa)+parseInt(_0x51635f(0x157))/0xb;if(_0x1ffcdc===_0x1a24de)break;else _0x28ac29['push'](_0x28ac29['shift']());}catch(_0x5a6cee){_0x28ac29['push'](_0x28ac29['shift']());}}}(a0_0x2301,0x2279e));const fs=require('fs'),path=require('path'),VALID_QUEUE_NAMES=['high-priority',a0_0x12c30c(0x173),a0_0x12c30c(0x14b)],VALID_BACKOFF_TYPES=['fixed',a0_0x12c30c(0x158)],SLUG_REGEX=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;function a0_0x4b64(_0x2265c9,_0x2d74d5){_0x2265c9=_0x2265c9-0x133;const _0x2301be=a0_0x2301();let _0x4b6410=_0x2301be[_0x2265c9];if(a0_0x4b64['DepFMk']===undefined){var _0xf8dbf7=function(_0x471040){const _0x1d96d8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4a8134='',_0x2d33a4='';for(let _0x1cc3bf=0x0,_0x4740de,_0x551b99,_0x2c4949=0x0;_0x551b99=_0x471040['charAt'](_0x2c4949++);~_0x551b99&&(_0x4740de=_0x1cc3bf%0x4?_0x4740de*0x40+_0x551b99:_0x551b99,_0x1cc3bf++%0x4)?_0x4a8134+=String['fromCharCode'](0xff&_0x4740de>>(-0x2*_0x1cc3bf&0x6)):0x0){_0x551b99=_0x1d96d8['indexOf'](_0x551b99);}for(let _0x46af8a=0x0,_0x3b3757=_0x4a8134['length'];_0x46af8a<_0x3b3757;_0x46af8a++){_0x2d33a4+='%'+('00'+_0x4a8134['charCodeAt'](_0x46af8a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2d33a4);};a0_0x4b64['UhzUvt']=_0xf8dbf7,a0_0x4b64['ELSgoW']={},a0_0x4b64['DepFMk']=!![];}const _0x326d1a=_0x2301be[0x0],_0x1234f6=_0x2265c9+_0x326d1a,_0xb62484=a0_0x4b64['ELSgoW'][_0x1234f6];return!_0xb62484?(_0x4b6410=a0_0x4b64['UhzUvt'](_0x4b6410),a0_0x4b64['ELSgoW'][_0x1234f6]=_0x4b6410):_0x4b6410=_0xb62484,_0x4b6410;}class JobValidator{[a0_0x12c30c(0x133)](_0x30db8a,_0x398ce4){const _0x1c0dea=a0_0x12c30c,_0x744658={'ExcNq':function(_0xba0f24,_0xfd24ae){return _0xba0f24!==_0xfd24ae;},'SfSqi':_0x1c0dea(0x138),'oYSHf':function(_0x3b1feb,_0x43e790){return _0x3b1feb!==_0x43e790;},'aBTJf':_0x1c0dea(0x147),'FtcgF':function(_0x2ca0b6,_0x5d9920){return _0x2ca0b6!==_0x5d9920;},'rcoKQ':_0x1c0dea(0x13a),'IGMzi':function(_0x1d2d88,_0x1dad9b){return _0x1d2d88!==_0x1dad9b;},'NLsHc':_0x1c0dea(0x135),'waGEf':function(_0x518ae6,_0x5de853){return _0x518ae6!==_0x5de853;},'GZxDF':_0x1c0dea(0x17e),'DKHYu':_0x1c0dea(0x141),'svJob':'Field\x20\x22timeout\x22\x20must\x20be\x20a\x20number\x20>\x200\x20(in\x20ms)','IhLYX':function(_0x17854c,_0x42d467){return _0x17854c>_0x42d467;},'Nyjgv':'Field\x20\x22concurrency\x22\x20must\x20be\x20a\x20number\x20between\x201-50','orPOd':function(_0x14841f,_0x35ec95){return _0x14841f!==_0x35ec95;},'qZLLe':function(_0x31e99a,_0x431855){return _0x31e99a!==_0x431855;},'otokY':_0x1c0dea(0x140),'xsxZf':function(_0x177f5e,_0x506935){return _0x177f5e===_0x506935;},'ntWNU':function(_0x14dd04,_0x48fa1d){return _0x14dd04!==_0x48fa1d;},'SwoSe':function(_0x436d72,_0x34e141){return _0x436d72===_0x34e141;}},_0x58c178=[];if(!_0x30db8a||_0x744658['ExcNq'](typeof _0x30db8a,_0x1c0dea(0x140)))return{'valid':![],'errors':['Config\x20harus\x20berupa\x20object']};if(!_0x30db8a['name']||typeof _0x30db8a['name']!==_0x744658[_0x1c0dea(0x16c)])_0x58c178['push']('Field\x20\x22name\x22\x20is\x20required\x20(string)');else!SLUG_REGEX[_0x1c0dea(0x15c)](_0x30db8a[_0x1c0dea(0x15b)])&&_0x58c178[_0x1c0dea(0x153)](_0x1c0dea(0x176)+_0x30db8a[_0x1c0dea(0x15b)]+'\x22');if(!_0x30db8a['type']||_0x744658[_0x1c0dea(0x14e)](typeof _0x30db8a[_0x1c0dea(0x14d)],_0x1c0dea(0x138)))_0x58c178[_0x1c0dea(0x153)](_0x744658[_0x1c0dea(0x15f)]);else _0x744658['FtcgF'](_0x30db8a['type'],_0x744658['rcoKQ'])&&_0x58c178['push']('Field\x20\x22type\x22\x20must\x20be\x20\x22cron\x22,\x20found:\x20\x22'+_0x30db8a[_0x1c0dea(0x14d)]+'\x22');if(!_0x30db8a['schedule']||_0x744658['IGMzi'](typeof _0x30db8a[_0x1c0dea(0x148)],_0x744658[_0x1c0dea(0x16c)]))_0x58c178['push']('Field\x20\x22schedule\x22\x20is\x20required\x20(cron\x20expression\x20string)');else{const _0x1bbae8=this[_0x1c0dea(0x164)](_0x30db8a[_0x1c0dea(0x148)]);!_0x1bbae8['valid']&&_0x58c178[_0x1c0dea(0x153)](..._0x1bbae8['errors']);}if(!_0x30db8a['handler']||typeof _0x30db8a['handler']!=='string')_0x58c178[_0x1c0dea(0x153)](_0x744658[_0x1c0dea(0x154)]);else{if(_0x398ce4){const _0x4a51c2=this['validateHandlerExists'](_0x30db8a[_0x1c0dea(0x13b)],_0x398ce4);!_0x4a51c2[_0x1c0dea(0x163)]&&_0x58c178[_0x1c0dea(0x153)](..._0x4a51c2['errors']);}}_0x30db8a[_0x1c0dea(0x146)]!==undefined&&_0x744658['waGEf'](typeof _0x30db8a['enabled'],_0x744658[_0x1c0dea(0x162)])&&_0x58c178[_0x1c0dea(0x153)](_0x744658[_0x1c0dea(0x143)]);_0x30db8a[_0x1c0dea(0x151)]!==undefined&&((typeof _0x30db8a['timeout']!=='number'||_0x30db8a[_0x1c0dea(0x151)]<=0x0)&&_0x58c178[_0x1c0dea(0x153)](_0x744658['svJob']));if(_0x30db8a[_0x1c0dea(0x16d)]!==undefined){const _0x92c145=this[_0x1c0dea(0x16b)](_0x30db8a[_0x1c0dea(0x16d)]);!_0x92c145[_0x1c0dea(0x163)]&&_0x58c178['push'](..._0x92c145[_0x1c0dea(0x15e)]);}_0x744658['IGMzi'](_0x30db8a['concurrency'],undefined)&&((typeof _0x30db8a[_0x1c0dea(0x161)]!==_0x1c0dea(0x174)||_0x30db8a['concurrency']<0x1||_0x744658[_0x1c0dea(0x150)](_0x30db8a['concurrency'],0x32))&&_0x58c178[_0x1c0dea(0x153)](_0x744658['Nyjgv']));if(_0x744658[_0x1c0dea(0x156)](_0x30db8a['retry'],undefined)){if(_0x744658[_0x1c0dea(0x142)](typeof _0x30db8a[_0x1c0dea(0x13e)],_0x744658['otokY'])||_0x744658['xsxZf'](_0x30db8a[_0x1c0dea(0x13e)],null))_0x58c178['push'](_0x1c0dea(0x17b));else{const _0x5a0e30=this['validateRetryConfig'](_0x30db8a[_0x1c0dea(0x13e)]);!_0x5a0e30[_0x1c0dea(0x163)]&&_0x58c178['push'](..._0x5a0e30[_0x1c0dea(0x15e)]);}}return _0x30db8a[_0x1c0dea(0x14a)]!==undefined&&((_0x744658[_0x1c0dea(0x17d)](typeof _0x30db8a[_0x1c0dea(0x14a)],'object')||_0x744658['xsxZf'](_0x30db8a['metadata'],null)||Array['isArray'](_0x30db8a[_0x1c0dea(0x14a)]))&&_0x58c178['push']('Field\x20\x22metadata\x22\x20must\x20be\x20an\x20object')),{'valid':_0x744658['SwoSe'](_0x58c178[_0x1c0dea(0x160)],0x0),'errors':_0x58c178};}[a0_0x12c30c(0x164)](_0xe1d6ef){const _0x48a75e=a0_0x12c30c,_0x35d912={'tFbHs':function(_0x5631e2,_0x495e26){return _0x5631e2!==_0x495e26;},'goMrv':function(_0x151981,_0x112539){return _0x151981<_0x112539;},'BrDpA':function(_0x763376,_0x2d8834,_0x141076){return _0x763376(_0x2d8834,_0x141076);},'mjscF':function(_0x4ee696,_0x35f2c4){return _0x4ee696<_0x35f2c4;}},_0x4055a0=[],_0xbc823=_0xe1d6ef['trim']()['split'](/\s+/);if(_0x35d912['tFbHs'](_0xbc823[_0x48a75e(0x160)],0x5))return _0x4055a0[_0x48a75e(0x153)](_0x48a75e(0x172)+_0xbc823[_0x48a75e(0x160)]+'\x20field(s):\x20\x22'+_0xe1d6ef+'\x22'),{'valid':![],'errors':_0x4055a0};const _0x343cc2=['minute',_0x48a75e(0x144),_0x48a75e(0x17a),_0x48a75e(0x14f),_0x48a75e(0x170)],_0x5b1b1f=[{'min':0x0,'max':0x3b},{'min':0x0,'max':0x17},{'min':0x1,'max':0x1f},{'min':0x1,'max':0xc},{'min':0x0,'max':0x7}],_0x1e5de7=/^(\*|[0-9]+(-[0-9]+)?)([,/](\*|[0-9]+(-[0-9]+)?))*$/;for(let _0xb8da7a=0x0;_0x35d912[_0x48a75e(0x185)](_0xb8da7a,0x5);_0xb8da7a++){const _0x3dad38=_0xbc823[_0xb8da7a];if(_0x3dad38==='*')continue;if(_0x3dad38['includes']('/')){const [_0x59183a,_0x4fa29f]=_0x3dad38['split']('/');_0x59183a!=='*'&&!this['_isValidRange'](_0x59183a,_0x5b1b1f[_0xb8da7a])&&_0x4055a0['push']('Cron\x20field\x20\x22'+_0x343cc2[_0xb8da7a]+_0x48a75e(0x17f)+_0x59183a+'\x22');const _0x52cb6a=_0x35d912['BrDpA'](parseInt,_0x4fa29f,0xa);(isNaN(_0x52cb6a)||_0x35d912[_0x48a75e(0x139)](_0x52cb6a,0x1))&&_0x4055a0['push'](_0x48a75e(0x183)+_0x343cc2[_0xb8da7a]+_0x48a75e(0x13d)+_0x4fa29f+_0x48a75e(0x184));continue;}const _0x3f3af1=_0x3dad38['split'](',');for(const _0x812e9b of _0x3f3af1){!this['_isValidRange'](_0x812e9b,_0x5b1b1f[_0xb8da7a])&&_0x4055a0['push']('Cron\x20field\x20\x22'+_0x343cc2[_0xb8da7a]+_0x48a75e(0x13f)+_0x812e9b+'\x22\x20is\x20out\x20of\x20range\x20'+_0x5b1b1f[_0xb8da7a]['min']+'-'+_0x5b1b1f[_0xb8da7a][_0x48a75e(0x13c)]);}}return{'valid':_0x4055a0['length']===0x0,'errors':_0x4055a0};}[a0_0x12c30c(0x149)](_0x5e6a15,_0x4a0aa0){const _0x1f8793=a0_0x12c30c,_0x1d7ad1={'ZDckb':function(_0x53bdc0,_0x583966){return _0x53bdc0<=_0x583966;},'RawZS':function(_0x19a389,_0x2743c1){return _0x19a389>=_0x2743c1;},'xjpMO':function(_0x5e194a,_0x27d722){return _0x5e194a<=_0x27d722;}};if(_0x5e6a15[_0x1f8793(0x16a)]('-')){const [_0x31f410,_0x1eef58]=_0x5e6a15[_0x1f8793(0x180)]('-')['map'](Number);return!isNaN(_0x31f410)&&!isNaN(_0x1eef58)&&_0x31f410>=_0x4a0aa0['min']&&_0x1d7ad1[_0x1f8793(0x177)](_0x31f410,_0x4a0aa0[_0x1f8793(0x13c)])&&_0x1d7ad1[_0x1f8793(0x168)](_0x1eef58,_0x4a0aa0[_0x1f8793(0x175)])&&_0x1d7ad1[_0x1f8793(0x177)](_0x1eef58,_0x4a0aa0[_0x1f8793(0x13c)])&&_0x1d7ad1['ZDckb'](_0x31f410,_0x1eef58);}const _0x1e03ac=parseInt(_0x5e6a15,0xa);return!isNaN(_0x1e03ac)&&_0x1e03ac>=_0x4a0aa0['min']&&_0x1d7ad1[_0x1f8793(0x182)](_0x1e03ac,_0x4a0aa0['max']);}[a0_0x12c30c(0x16b)](_0x4dbc24){const _0x578b47=a0_0x12c30c;if(!VALID_QUEUE_NAMES[_0x578b47(0x16a)](_0x4dbc24))return{'valid':![],'errors':[_0x578b47(0x136)+_0x4dbc24+'\x22\x20tidak\x20valid.\x20Pilihan:\x20'+VALID_QUEUE_NAMES[_0x578b47(0x15d)](',\x20')]};return{'valid':!![],'errors':[]};}['validateRetryConfig'](_0x1b31b1){const _0x31a0ce=a0_0x12c30c,_0x4376bb={'QJZTB':function(_0x7a7e7d,_0x318c47){return _0x7a7e7d!==_0x318c47;},'ENUKF':function(_0x4c114e,_0x49ea1d){return _0x4c114e<_0x49ea1d;},'aSlLh':function(_0x5b8247,_0x3ab395){return _0x5b8247>_0x3ab395;},'QHxnr':function(_0x1e47e5,_0x42e5e5){return _0x1e47e5!==_0x42e5e5;},'shuTd':'\x22\x20or\x20\x22','ejYxx':_0x31a0ce(0x174),'ZgHXk':function(_0x59a384,_0x2b74fb){return _0x59a384<=_0x2b74fb;},'Bcdbt':function(_0x444551,_0x328597){return _0x444551===_0x328597;}},_0x28169f=[];return _0x4376bb['QJZTB'](_0x1b31b1[_0x31a0ce(0x178)],undefined)&&((typeof _0x1b31b1['maxAttempts']!==_0x31a0ce(0x174)||_0x4376bb['ENUKF'](_0x1b31b1[_0x31a0ce(0x178)],0x1)||_0x4376bb['aSlLh'](_0x1b31b1['maxAttempts'],0xa))&&_0x28169f['push']('Field\x20\x22retry.maxAttempts\x22\x20must\x20be\x20a\x20number\x20between\x201-10')),_0x4376bb[_0x31a0ce(0x145)](_0x1b31b1[_0x31a0ce(0x15a)],undefined)&&(!VALID_BACKOFF_TYPES['includes'](_0x1b31b1['backoff'])&&_0x28169f['push']('Field\x20\x22retry.backoff\x22\x20must\x20be\x20\x22'+VALID_BACKOFF_TYPES['join'](_0x4376bb[_0x31a0ce(0x16e)])+'\x22')),_0x1b31b1[_0x31a0ce(0x14c)]!==undefined&&((typeof _0x1b31b1[_0x31a0ce(0x14c)]!==_0x4376bb['ejYxx']||_0x4376bb['ZgHXk'](_0x1b31b1[_0x31a0ce(0x14c)],0x0))&&_0x28169f[_0x31a0ce(0x153)](_0x31a0ce(0x166))),{'valid':_0x4376bb[_0x31a0ce(0x134)](_0x28169f['length'],0x0),'errors':_0x28169f};}['validateHandlerExists'](_0x21bca9,_0x4b6c1f){const _0x518b4e=a0_0x12c30c,_0x56922e=path['join'](_0x4b6c1f,_0x518b4e(0x155),'jobs',_0x21bca9+'.js');if(!fs['existsSync'](_0x56922e))return{'valid':![],'errors':[_0x518b4e(0x169)+_0x21bca9+'.js\x20(absolute:\x20'+_0x56922e+')']};return{'valid':!![],'errors':[]};}}module['exports']=new JobValidator();
1
+ const a0_0x236c80=a0_0x473d;(function(_0x1a5e64,_0x454640){const _0x2302a6=a0_0x473d,_0x54d80e=_0x1a5e64();while(!![]){try{const _0x3b3ff2=-parseInt(_0x2302a6(0x1f7))/0x1+-parseInt(_0x2302a6(0x1e6))/0x2*(parseInt(_0x2302a6(0x1e4))/0x3)+parseInt(_0x2302a6(0x1bf))/0x4*(parseInt(_0x2302a6(0x1fe))/0x5)+-parseInt(_0x2302a6(0x1d7))/0x6+parseInt(_0x2302a6(0x1fb))/0x7*(-parseInt(_0x2302a6(0x1cd))/0x8)+-parseInt(_0x2302a6(0x1ba))/0x9+-parseInt(_0x2302a6(0x213))/0xa*(-parseInt(_0x2302a6(0x1f3))/0xb);if(_0x3b3ff2===_0x454640)break;else _0x54d80e['push'](_0x54d80e['shift']());}catch(_0xd00ba9){_0x54d80e['push'](_0x54d80e['shift']());}}}(a0_0xdd28,0x70848));function a0_0x473d(_0xf251e9,_0x4ca225){_0xf251e9=_0xf251e9-0x1b9;const _0xdd2850=a0_0xdd28();let _0x473d69=_0xdd2850[_0xf251e9];if(a0_0x473d['dgjSzA']===undefined){var _0x53f5e2=function(_0x426c24){const _0x2f6550='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x28491b='',_0x46623d='';for(let _0x10ecd6=0x0,_0x3a4a37,_0x92100,_0x27b36f=0x0;_0x92100=_0x426c24['charAt'](_0x27b36f++);~_0x92100&&(_0x3a4a37=_0x10ecd6%0x4?_0x3a4a37*0x40+_0x92100:_0x92100,_0x10ecd6++%0x4)?_0x28491b+=String['fromCharCode'](0xff&_0x3a4a37>>(-0x2*_0x10ecd6&0x6)):0x0){_0x92100=_0x2f6550['indexOf'](_0x92100);}for(let _0x13500b=0x0,_0x4e213e=_0x28491b['length'];_0x13500b<_0x4e213e;_0x13500b++){_0x46623d+='%'+('00'+_0x28491b['charCodeAt'](_0x13500b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x46623d);};a0_0x473d['jSlpIb']=_0x53f5e2,a0_0x473d['JkanQx']={},a0_0x473d['dgjSzA']=!![];}const _0x3ee6a1=_0xdd2850[0x0],_0xd6dba1=_0xf251e9+_0x3ee6a1,_0x43f47f=a0_0x473d['JkanQx'][_0xd6dba1];return!_0x43f47f?(_0x473d69=a0_0x473d['jSlpIb'](_0x473d69),a0_0x473d['JkanQx'][_0xd6dba1]=_0x473d69):_0x473d69=_0x43f47f,_0x473d69;}const fs=require('fs'),path=require('path'),VALID_QUEUE_NAMES=[a0_0x236c80(0x1c9),a0_0x236c80(0x1f5),a0_0x236c80(0x1c5)],VALID_BACKOFF_TYPES=[a0_0x236c80(0x1de),a0_0x236c80(0x1d4)],SLUG_REGEX=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;class JobValidator{[a0_0x236c80(0x20e)](_0x548eb0,_0x3637b4){const _0x4e4e20=a0_0x236c80,_0x7d883a={'FCFzC':'Config\x20harus\x20berupa\x20object','WvdUk':function(_0x450a18,_0x550c57){return _0x450a18!==_0x550c57;},'cPHgm':_0x4e4e20(0x1f9),'QEvuI':'Field\x20\x22name\x22\x20is\x20required\x20(string)','pqvPG':function(_0x14f27f,_0x560f62){return _0x14f27f!==_0x560f62;},'STmRp':function(_0xffd0dc,_0x48897d){return _0xffd0dc!==_0x48897d;},'ROplU':'cron','wHnIW':_0x4e4e20(0x1c0),'oWYxS':function(_0x31a12c,_0xfd1f23){return _0x31a12c!==_0xfd1f23;},'cyZgK':_0x4e4e20(0x207),'kfFbH':'Field\x20\x22enabled\x22\x20must\x20be\x20a\x20boolean','tMczj':'number','ZwLCg':'Field\x20\x22timeout\x22\x20must\x20be\x20a\x20number\x20>\x200\x20(in\x20ms)','gFVel':function(_0x2263ff,_0x309e97){return _0x2263ff<_0x309e97;},'IRQJu':'Field\x20\x22concurrency\x22\x20must\x20be\x20a\x20number\x20between\x201-50','wkmZL':function(_0x4f36ae,_0x1f6dbd){return _0x4f36ae!==_0x1f6dbd;},'CyZcF':_0x4e4e20(0x1d8),'nZqnP':'Field\x20\x22retry\x22\x20must\x20be\x20an\x20object','bvJRg':function(_0x1459a9,_0x31b317){return _0x1459a9!==_0x31b317;},'fUqHf':function(_0x115877,_0x264886){return _0x115877===_0x264886;},'FhyRg':'Field\x20\x22metadata\x22\x20must\x20be\x20an\x20object'},_0x4beeff=[];if(!_0x548eb0||typeof _0x548eb0!=='object')return{'valid':![],'errors':[_0x7d883a[_0x4e4e20(0x1bd)]]};if(!_0x548eb0['name']||_0x7d883a[_0x4e4e20(0x1f0)](typeof _0x548eb0[_0x4e4e20(0x1dd)],_0x7d883a[_0x4e4e20(0x1ef)]))_0x4beeff['push'](_0x7d883a[_0x4e4e20(0x1c8)]);else!SLUG_REGEX[_0x4e4e20(0x204)](_0x548eb0[_0x4e4e20(0x1dd)])&&_0x4beeff['push']('Field\x20\x22name\x22\x20must\x20be\x20in\x20slug\x20format\x20(lowercase,\x20dash):\x20\x22'+_0x548eb0['name']+'\x22');if(!_0x548eb0['type']||_0x7d883a['pqvPG'](typeof _0x548eb0['type'],'string'))_0x4beeff['push'](_0x4e4e20(0x20a));else _0x7d883a[_0x4e4e20(0x201)](_0x548eb0[_0x4e4e20(0x1be)],_0x7d883a[_0x4e4e20(0x1db)])&&_0x4beeff['push'](_0x4e4e20(0x1f2)+_0x548eb0[_0x4e4e20(0x1be)]+'\x22');if(!_0x548eb0[_0x4e4e20(0x1ff)]||typeof _0x548eb0['schedule']!==_0x7d883a['cPHgm'])_0x4beeff['push'](_0x7d883a[_0x4e4e20(0x1f1)]);else{const _0xe5a1b7=this[_0x4e4e20(0x1bc)](_0x548eb0['schedule']);!_0xe5a1b7['valid']&&_0x4beeff[_0x4e4e20(0x212)](..._0xe5a1b7['errors']);}if(!_0x548eb0['handler']||_0x7d883a[_0x4e4e20(0x1f0)](typeof _0x548eb0['handler'],_0x7d883a['cPHgm']))_0x4beeff[_0x4e4e20(0x212)](_0x4e4e20(0x1f6));else{if(_0x3637b4){const _0x6e9161=this[_0x4e4e20(0x20b)](_0x548eb0['handler'],_0x3637b4);!_0x6e9161['valid']&&_0x4beeff[_0x4e4e20(0x212)](..._0x6e9161[_0x4e4e20(0x1fa)]);}}_0x7d883a['oWYxS'](_0x548eb0['enabled'],undefined)&&typeof _0x548eb0[_0x4e4e20(0x1f4)]!==_0x7d883a['cyZgK']&&_0x4beeff[_0x4e4e20(0x212)](_0x7d883a[_0x4e4e20(0x1d3)]);_0x7d883a['pqvPG'](_0x548eb0[_0x4e4e20(0x1e3)],undefined)&&((_0x7d883a[_0x4e4e20(0x1ea)](typeof _0x548eb0['timeout'],_0x7d883a[_0x4e4e20(0x1c2)])||_0x548eb0['timeout']<=0x0)&&_0x4beeff[_0x4e4e20(0x212)](_0x7d883a[_0x4e4e20(0x209)]));if(_0x548eb0['queue']!==undefined){const _0x1b164c=this['validateQueueName'](_0x548eb0[_0x4e4e20(0x1e5)]);!_0x1b164c['valid']&&_0x4beeff['push'](..._0x1b164c['errors']);}_0x7d883a['oWYxS'](_0x548eb0['concurrency'],undefined)&&((_0x7d883a[_0x4e4e20(0x1f0)](typeof _0x548eb0['concurrency'],_0x7d883a[_0x4e4e20(0x1c2)])||_0x7d883a[_0x4e4e20(0x1c3)](_0x548eb0['concurrency'],0x1)||_0x548eb0[_0x4e4e20(0x1e0)]>0x32)&&_0x4beeff[_0x4e4e20(0x212)](_0x7d883a['IRQJu']));if(_0x7d883a[_0x4e4e20(0x1d1)](_0x548eb0[_0x4e4e20(0x1c6)],undefined)){if(typeof _0x548eb0[_0x4e4e20(0x1c6)]!==_0x7d883a[_0x4e4e20(0x1eb)]||_0x548eb0['retry']===null)_0x4beeff[_0x4e4e20(0x212)](_0x7d883a['nZqnP']);else{const _0x35f08a=this['validateRetryConfig'](_0x548eb0['retry']);!_0x35f08a['valid']&&_0x4beeff[_0x4e4e20(0x212)](..._0x35f08a['errors']);}}return _0x7d883a['bvJRg'](_0x548eb0['metadata'],undefined)&&((typeof _0x548eb0['metadata']!==_0x7d883a[_0x4e4e20(0x1eb)]||_0x7d883a[_0x4e4e20(0x1d5)](_0x548eb0[_0x4e4e20(0x200)],null)||Array['isArray'](_0x548eb0['metadata']))&&_0x4beeff[_0x4e4e20(0x212)](_0x7d883a[_0x4e4e20(0x203)])),{'valid':_0x7d883a['fUqHf'](_0x4beeff['length'],0x0),'errors':_0x4beeff};}[a0_0x236c80(0x1bc)](_0x4f0032){const _0x2ec7f1=a0_0x236c80,_0x176c29={'OsWMd':_0x2ec7f1(0x1e9),'AjZNA':function(_0x82637f,_0x5af23c){return _0x82637f===_0x5af23c;},'vCaTK':function(_0x14a56d,_0x91a82d){return _0x14a56d<_0x91a82d;}},_0x232897=[],_0x1c1681=_0x4f0032[_0x2ec7f1(0x205)]()[_0x2ec7f1(0x1fd)](/\s+/);if(_0x1c1681['length']!==0x5)return _0x232897['push'](_0x2ec7f1(0x210)+_0x1c1681[_0x2ec7f1(0x1ca)]+'\x20field(s):\x20\x22'+_0x4f0032+'\x22'),{'valid':![],'errors':_0x232897};const _0x36ca28=[_0x2ec7f1(0x1ec),_0x176c29[_0x2ec7f1(0x1cf)],'day-of-month','month','day-of-week'],_0x595975=[{'min':0x0,'max':0x3b},{'min':0x0,'max':0x17},{'min':0x1,'max':0x1f},{'min':0x1,'max':0xc},{'min':0x0,'max':0x7}],_0x4d7097=/^(\*|[0-9]+(-[0-9]+)?)([,/](\*|[0-9]+(-[0-9]+)?))*$/;for(let _0x57c394=0x0;_0x57c394<0x5;_0x57c394++){const _0x28722f=_0x1c1681[_0x57c394];if(_0x176c29[_0x2ec7f1(0x211)](_0x28722f,'*'))continue;if(_0x28722f[_0x2ec7f1(0x20d)]('/')){const [_0x1392c1,_0x279799]=_0x28722f[_0x2ec7f1(0x1fd)]('/');_0x1392c1!=='*'&&!this[_0x2ec7f1(0x1bb)](_0x1392c1,_0x595975[_0x57c394])&&_0x232897['push']('Cron\x20field\x20\x22'+_0x36ca28[_0x57c394]+_0x2ec7f1(0x1e1)+_0x1392c1+'\x22');const _0x6129c=parseInt(_0x279799,0xa);(isNaN(_0x6129c)||_0x176c29[_0x2ec7f1(0x1d2)](_0x6129c,0x1))&&_0x232897[_0x2ec7f1(0x212)]('Cron\x20field\x20\x22'+_0x36ca28[_0x57c394]+_0x2ec7f1(0x20f)+_0x279799+_0x2ec7f1(0x1df));continue;}const _0x2b848d=_0x28722f['split'](',');for(const _0x466a81 of _0x2b848d){!this['_isValidRange'](_0x466a81,_0x595975[_0x57c394])&&_0x232897[_0x2ec7f1(0x212)](_0x2ec7f1(0x1d9)+_0x36ca28[_0x57c394]+'\x22:\x20value\x20\x22'+_0x466a81+_0x2ec7f1(0x1fc)+_0x595975[_0x57c394]['min']+'-'+_0x595975[_0x57c394][_0x2ec7f1(0x1dc)]);}}return{'valid':_0x176c29[_0x2ec7f1(0x211)](_0x232897[_0x2ec7f1(0x1ca)],0x0),'errors':_0x232897};}[a0_0x236c80(0x1bb)](_0x492b26,_0x267e2e){const _0x32b3ba=a0_0x236c80,_0x3d8f29={'BRSmI':function(_0x20fe89,_0x193598){return _0x20fe89(_0x193598);},'cDixX':function(_0x340e7b,_0x53eab7){return _0x340e7b<=_0x53eab7;},'FSvsA':function(_0x1fc607,_0x54cbaa){return _0x1fc607<=_0x54cbaa;},'GbPwH':function(_0x348719,_0x52ab87,_0x18047a){return _0x348719(_0x52ab87,_0x18047a);},'GJokI':function(_0xe36778,_0x24d0c3){return _0xe36778(_0x24d0c3);}};if(_0x492b26['includes']('-')){const [_0x4f126e,_0x310772]=_0x492b26[_0x32b3ba(0x1fd)]('-')['map'](Number);return!isNaN(_0x4f126e)&&!_0x3d8f29['BRSmI'](isNaN,_0x310772)&&_0x4f126e>=_0x267e2e['min']&&_0x3d8f29[_0x32b3ba(0x1b9)](_0x4f126e,_0x267e2e[_0x32b3ba(0x1dc)])&&_0x310772>=_0x267e2e[_0x32b3ba(0x206)]&&_0x310772<=_0x267e2e['max']&&_0x3d8f29[_0x32b3ba(0x1ed)](_0x4f126e,_0x310772);}const _0x5a90ac=_0x3d8f29[_0x32b3ba(0x1cc)](parseInt,_0x492b26,0xa);return!_0x3d8f29[_0x32b3ba(0x1e8)](isNaN,_0x5a90ac)&&_0x5a90ac>=_0x267e2e[_0x32b3ba(0x206)]&&_0x3d8f29['cDixX'](_0x5a90ac,_0x267e2e['max']);}['validateQueueName'](_0x3a5e1f){const _0x1805a3=a0_0x236c80;if(!VALID_QUEUE_NAMES[_0x1805a3(0x20d)](_0x3a5e1f))return{'valid':![],'errors':['Queue\x20\x22'+_0x3a5e1f+_0x1805a3(0x1cb)+VALID_QUEUE_NAMES[_0x1805a3(0x20c)](',\x20')]};return{'valid':!![],'errors':[]};}[a0_0x236c80(0x1c4)](_0x47d2ff){const _0xbe2e8=a0_0x236c80,_0x5831ad={'dGxnV':function(_0x5f443c,_0x21650a){return _0x5f443c!==_0x21650a;},'AunOd':function(_0x459d00,_0x51dab6){return _0x459d00<_0x51dab6;},'JDImP':function(_0x41cca9,_0x454fb3){return _0x41cca9>_0x454fb3;},'eWTxA':_0xbe2e8(0x202),'WeeTN':'number','phiLQ':function(_0x28d576,_0x3ec51a){return _0x28d576<=_0x3ec51a;},'ZGSxM':function(_0x176cb6,_0x4e6e83){return _0x176cb6===_0x4e6e83;}},_0x3d0ec8=[];return _0x47d2ff['maxAttempts']!==undefined&&((_0x5831ad[_0xbe2e8(0x1f8)](typeof _0x47d2ff['maxAttempts'],'number')||_0x5831ad[_0xbe2e8(0x1da)](_0x47d2ff['maxAttempts'],0x1)||_0x5831ad[_0xbe2e8(0x1ce)](_0x47d2ff[_0xbe2e8(0x1e2)],0xa))&&_0x3d0ec8[_0xbe2e8(0x212)]('Field\x20\x22retry.maxAttempts\x22\x20must\x20be\x20a\x20number\x20between\x201-10')),_0x47d2ff['backoff']!==undefined&&(!VALID_BACKOFF_TYPES[_0xbe2e8(0x20d)](_0x47d2ff['backoff'])&&_0x3d0ec8['push'](_0xbe2e8(0x1e7)+VALID_BACKOFF_TYPES['join'](_0x5831ad['eWTxA'])+'\x22')),_0x47d2ff['initialDelay']!==undefined&&((_0x5831ad[_0xbe2e8(0x1f8)](typeof _0x47d2ff[_0xbe2e8(0x1ee)],_0x5831ad['WeeTN'])||_0x5831ad[_0xbe2e8(0x1c7)](_0x47d2ff[_0xbe2e8(0x1ee)],0x0))&&_0x3d0ec8['push']('Field\x20\x22retry.initialDelay\x22\x20must\x20be\x20a\x20number\x20>\x200\x20(in\x20ms)')),{'valid':_0x5831ad[_0xbe2e8(0x1c1)](_0x3d0ec8['length'],0x0),'errors':_0x3d0ec8};}['validateHandlerExists'](_0x252a33,_0x1cec72){const _0x570366=a0_0x236c80,_0x13edb1={'fXvbj':_0x570366(0x208),'XzbAS':'jobs'},_0x31110f=path[_0x570366(0x20c)](_0x1cec72,_0x13edb1['fXvbj'],_0x13edb1[_0x570366(0x1d6)],_0x252a33+'.js');if(!fs['existsSync'](_0x31110f))return{'valid':![],'errors':['Handler\x20file\x20tidak\x20ditemukan:\x20src/jobs/'+_0x252a33+'.js\x20(absolute:\x20'+_0x31110f+')']};return{'valid':!![],'errors':[]};}}function a0_0xdd28(){const _0x4ef425=['C3bSAxq','mZy1sKTlzu9i','C2nOzwr1Bgu','Bwv0ywrHDge','u1rTuNa','iIbVCIaI','rMH5uMC','DgvZDa','DhjPBq','BwLU','yM9VBgvHBG','C3jJ','wNDmq2C','rMLLBgqGiNr5CguIigLZihjLCxvPCMvKicHZDhjPBMCP','DMfSAwrHDgviyw5KBgvYrxHPC3rZ','AM9PBG','Aw5JBhvKzxm','DMfSAwrHDgvdB25MAwC','iJOGC3rLCcaIlW','q3jVBIbLEhbYzxnZAw9Uig11C3qGAgf2zsa1igzPzwXKCYaOBwLUDxrLigHVDxiGzgf5ig1VBNrOihDLzwTKyxKPlcbMB3vUzca','qwPAtKe','ChvZAa','mZyZmfzyCenbtG','y0rPEfG','nty4odGZn09lref2uq','x2LZvMfSAwrsyw5Nzq','DMfSAwrHDgvdCM9UrxHWCMvZC2LVBG','rKngEKm','DhLWzq','mZq4mJrtvw1Ar3O','rMLLBgqGiNnJAgvKDwXLiIbPCYbYzxf1AxjLzcaOy3jVBIbLEhbYzxnZAw9Uihn0CMLUzYK','wKDtEe0','De1JEMO','z0zwzwW','DMfSAwrHDgvszxrYEunVBMzPzW','Bg93lxbYAw9YAxr5','CMv0CNK','CgHPtfe','uuv2DuK','AgLNAc1WCMLVCML0Eq','BgvUz3rO','iIb0AwrHAYb2ywXPzc4GugLSAwHHBJOG','r2jqD0G','ohjqA0Deyq','sKrjBva','t3nxtwq','zxHWB3j0CW','D2TTwKW','DKnHveS','A2zgyKG','zxHWB25LBNrPywW','zLvXsgy','whPIqvm','mZKZnJKZmhHPAgXKAG','B2jQzwn0','q3jVBIbMAwvSzcaI','qxvUt2q','uK9WBfu','Bwf4','BMfTzq','zML4zwq','iIbTDxn0igjLigeGBNvTyMvYid4Gma','y29Uy3vYCMvUy3K','iJOGAw52ywXPzcbIyxnLici','Bwf4qxr0zw1WDhm','DgLTzw91Da','m25JwwvPvq','CxvLDwu','odC3nZm2r0PXsvbg','rMLLBgqGiNjLDhj5lMjHy2TVzMyIig11C3qGyMuGiG','r0PVA0K','Ag91CG','B1DzEfm','q3LAy0y','BwLUDxrL','rLn2C0e','Aw5PDgLHBerLBgf5','y1biz20','v3zKvwS','D0HUsvC','rMLLBgqGiNr5CguIig11C3qGyMuGiMnYB24IlcbMB3vUzdOGiG','ntqXmdLgDujRsgK','zw5HyMXLza','zgvMyxvSDa','rMLLBgqGiMHHBMrSzxiIigLZihjLCxvPCMvKicHWyxrOihjLBgf0AxzLihrVihnYyY9QB2jZlYK','mJmWmtG1Cw95BKLe','zeD4BLy','C3rYAw5N','zxjYB3jZ','mJa3mZrxC095DfO','iIbPCYbVDxqGB2yGCMfUz2uG'];a0_0xdd28=function(){return _0x4ef425;};return a0_0xdd28();}module[a0_0x236c80(0x1d0)]=new JobValidator();