@restforgejs/platform 4.3.2 → 4.3.4

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 (176) 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/generators/cli/dashboard/create.js +0 -1
  5. package/generators/cli/endpoint/create.js +1 -1
  6. package/generators/lib/generators/model-generator.js +1 -1
  7. package/generators/lib/payload/endpoint-schema-validator.js +11 -1
  8. package/generators/lib/payload/payload-runner.js +3 -3
  9. package/generators/lib/payload/schema-diff.js +186 -3
  10. package/generators/lib/templates/dashboard-catalog.js +1 -1
  11. package/generators/lib/templates/db-connection-env.js +1 -1
  12. package/generators/lib/templates/dbschema-catalog.js +1 -1
  13. package/generators/lib/templates/field-validation-catalog.js +1 -1
  14. package/generators/lib/templates/mysql-template.js +1 -1
  15. package/generators/lib/templates/oracle-template.js +1 -1
  16. package/generators/lib/templates/postgres-template.js +1 -1
  17. package/generators/lib/templates/query-declarative-catalog.js +1 -1
  18. package/generators/lib/templates/sqlite-template.js +1 -1
  19. package/generators/lib/utils/conflict-checker.js +9 -57
  20. package/generators/lib/utils/database-introspector.js +84 -0
  21. package/generators/lib/utils/file-utils.js +0 -159
  22. package/generators/lib/utils/payload-processor.js +21 -112
  23. package/integrity-manifest.json +18 -18
  24. package/package.json +1 -1
  25. package/scripts/verify-integrity.js +1 -1
  26. package/server.js +1 -1
  27. package/src/components/handlers/adjust_handler.js +1 -1
  28. package/src/components/handlers/audit_handler.js +1 -1
  29. package/src/components/handlers/delete_handler.js +1 -1
  30. package/src/components/handlers/export_handler.js +1 -1
  31. package/src/components/handlers/import_handler.js +1 -1
  32. package/src/components/handlers/insert_handler.js +1 -1
  33. package/src/components/handlers/update_handler.js +1 -1
  34. package/src/components/handlers/upload_handler.js +1 -1
  35. package/src/components/handlers/workflow_handler.js +1 -1
  36. package/src/components/integrations/webhook.js +1 -1
  37. package/src/consumers/baseConsumer.js +1 -1
  38. package/src/consumers/declarativeMapper.js +1 -1
  39. package/src/consumers/handlers/apiHandler.js +1 -1
  40. package/src/consumers/handlers/consoleHandler.js +1 -1
  41. package/src/consumers/handlers/databaseHandler.js +1 -1
  42. package/src/consumers/handlers/index.js +1 -1
  43. package/src/consumers/handlers/kafkaHandler.js +1 -1
  44. package/src/consumers/index.js +1 -1
  45. package/src/consumers/messageTransformer.js +1 -1
  46. package/src/consumers/validator.js +1 -1
  47. package/src/core/db/dialect/base-dialect.js +1 -1
  48. package/src/core/db/dialect/index.js +1 -1
  49. package/src/core/db/dialect/mysql-dialect.js +1 -1
  50. package/src/core/db/dialect/oracle-dialect.js +1 -1
  51. package/src/core/db/dialect/postgres-dialect.js +1 -1
  52. package/src/core/db/dialect/sqlite-dialect.js +1 -1
  53. package/src/core/db/flatten-helper.js +1 -1
  54. package/src/core/db/query-builder-error.js +1 -1
  55. package/src/core/db/query-builder.js +1 -1
  56. package/src/core/db/relation-helper.js +1 -1
  57. package/src/core/handlers/delete_handler.js +1 -1
  58. package/src/core/handlers/insert_handler.js +1 -1
  59. package/src/core/handlers/update_handler.js +1 -1
  60. package/src/core/models/base-model.js +1 -1
  61. package/src/core/utils/cache-manager.js +1 -1
  62. package/src/core/utils/component-engine.js +1 -1
  63. package/src/core/utils/context-builder.js +1 -1
  64. package/src/core/utils/datetime-formatter.js +1 -1
  65. package/src/core/utils/datetime-parser.js +1 -1
  66. package/src/core/utils/db.js +1 -1
  67. package/src/core/utils/logger.js +1 -1
  68. package/src/core/utils/payload-loader.js +1 -1
  69. package/src/core/utils/security-checks.js +1 -1
  70. package/src/middleware/body-options.js +1 -1
  71. package/src/middleware/cors.js +1 -1
  72. package/src/middleware/idempotency.js +1 -1
  73. package/src/middleware/rate-limiter.js +1 -1
  74. package/src/middleware/request-logger.js +1 -1
  75. package/src/middleware/security-headers.js +1 -1
  76. package/src/models/base-model-mysql.js +1 -1
  77. package/src/models/base-model-oracle.js +1 -1
  78. package/src/models/base-model-sqlite.js +1 -1
  79. package/src/models/base-model.js +1 -1
  80. package/src/pro/caching/redis-client.js +1 -1
  81. package/src/pro/caching/redis-helper.js +1 -1
  82. package/src/pro/consumers/baseConsumer.js +1 -1
  83. package/src/pro/consumers/declarativeMapper.js +1 -1
  84. package/src/pro/consumers/handlers/apiHandler.js +1 -1
  85. package/src/pro/consumers/handlers/consoleHandler.js +1 -1
  86. package/src/pro/consumers/handlers/databaseHandler.js +1 -1
  87. package/src/pro/consumers/handlers/index.js +1 -1
  88. package/src/pro/consumers/handlers/kafkaHandler.js +1 -1
  89. package/src/pro/consumers/index.js +1 -1
  90. package/src/pro/consumers/messageTransformer.js +1 -1
  91. package/src/pro/consumers/validator.js +1 -1
  92. package/src/pro/database/base-model-mysql.js +1 -1
  93. package/src/pro/database/base-model-oracle.js +1 -1
  94. package/src/pro/database/base-model-sqlite.js +1 -1
  95. package/src/pro/database/db-mysql.js +1 -1
  96. package/src/pro/database/db-oracle.js +1 -1
  97. package/src/pro/database/db-sqlite.js +1 -1
  98. package/src/pro/excel/excel-generator.js +1 -1
  99. package/src/pro/excel/excel-parser.js +1 -1
  100. package/src/pro/excel/export-service.js +1 -1
  101. package/src/pro/excel/export_handler.js +1 -1
  102. package/src/pro/excel/import-service.js +1 -1
  103. package/src/pro/excel/import-validator.js +1 -1
  104. package/src/pro/excel/import_handler.js +1 -1
  105. package/src/pro/excel/upsert-builder.js +1 -1
  106. package/src/pro/idgen/idgen-routes.js +1 -1
  107. package/src/pro/integrations/lookup-resolver.js +1 -1
  108. package/src/pro/integrations/upload-handler-v2.js +1 -1
  109. package/src/pro/integrations/upload-handler.js +1 -1
  110. package/src/pro/integrations/webhook.js +1 -1
  111. package/src/pro/locking/lock-routes.js +1 -1
  112. package/src/pro/locking/resource-lock-manager.js +1 -1
  113. package/src/pro/messaging/kafkaConsumerService.js +1 -1
  114. package/src/pro/messaging/kafkaService.js +1 -1
  115. package/src/pro/messaging/messagehubService.js +1 -1
  116. package/src/pro/messaging/rabbitmqService.js +1 -1
  117. package/src/pro/scheduler/job-manager.js +1 -1
  118. package/src/pro/scheduler/job-routes.js +1 -1
  119. package/src/pro/scheduler/job-validator.js +1 -1
  120. package/src/pro/storage/base-storage-provider.js +1 -1
  121. package/src/pro/storage/file-metadata-helper.js +1 -1
  122. package/src/pro/storage/index.js +1 -1
  123. package/src/pro/storage/local-storage-provider.js +1 -1
  124. package/src/pro/storage/s3-storage-provider.js +1 -1
  125. package/src/pro/storage/upload-cleanup-job.js +1 -1
  126. package/src/pro/storage/upload-cleanup-scheduler.js +1 -1
  127. package/src/pro/storage/upload-pending-tracker.js +1 -1
  128. package/src/pro/websocket/broadcast-helper.js +1 -1
  129. package/src/pro/websocket/index.js +1 -1
  130. package/src/pro/websocket/livesync-server.js +1 -1
  131. package/src/pro/websocket/ws-broadcaster.js +1 -1
  132. package/src/services/export-service.js +1 -1
  133. package/src/services/import-service.js +1 -1
  134. package/src/services/kafkaConsumerService.js +1 -1
  135. package/src/services/kafkaService.js +1 -1
  136. package/src/services/messagehubService.js +1 -1
  137. package/src/services/rabbitmqService.js +1 -1
  138. package/src/utils/cache-invalidation-registry.js +1 -1
  139. package/src/utils/cache-manager.js +1 -1
  140. package/src/utils/component-engine.js +1 -1
  141. package/src/utils/config-extractor.js +1 -1
  142. package/src/utils/consumerLogger.js +1 -1
  143. package/src/utils/context-builder.js +1 -1
  144. package/src/utils/dashboard-helpers.js +1 -1
  145. package/src/utils/dateHelper.js +1 -1
  146. package/src/utils/datetime-formatter.js +1 -1
  147. package/src/utils/datetime-parser.js +1 -1
  148. package/src/utils/db-bootstrap.js +1 -1
  149. package/src/utils/db-mysql.js +1 -1
  150. package/src/utils/db-oracle.js +1 -1
  151. package/src/utils/db-sqlite.js +1 -1
  152. package/src/utils/db.js +1 -1
  153. package/src/utils/demo-generator.js +1 -1
  154. package/src/utils/excel-generator.js +1 -1
  155. package/src/utils/excel-parser.js +1 -1
  156. package/src/utils/file-watcher.js +1 -1
  157. package/src/utils/id-generator.js +1 -1
  158. package/src/utils/idempotency-manager.js +1 -1
  159. package/src/utils/import-validator.js +1 -1
  160. package/src/utils/license-client.js +1 -1
  161. package/src/utils/lock-manager.js +1 -1
  162. package/src/utils/logger.js +1 -1
  163. package/src/utils/lookup-resolver.js +1 -1
  164. package/src/utils/payload-loader.js +1 -1
  165. package/src/utils/processor-response.js +1 -1
  166. package/src/utils/rabbitmq.js +1 -1
  167. package/src/utils/redis-client.js +1 -1
  168. package/src/utils/redis-helper.js +1 -1
  169. package/src/utils/request-scope.js +1 -1
  170. package/src/utils/security-checks.js +1 -1
  171. package/src/utils/service-resolver.js +1 -1
  172. package/src/utils/shutdown-coordinator.js +1 -1
  173. package/src/utils/trusted-keys.js +1 -1
  174. package/src/utils/upload-handler.js +1 -1
  175. package/src/utils/upsert-builder.js +1 -1
  176. package/src/utils/workflow-hook-executor.js +1 -1
@@ -1 +1 @@
1
- const a0_0x49ca7a=a0_0x14b5;(function(_0x219f3a,_0x8863af){const _0x282af8=a0_0x14b5,_0xc0c24e=_0x219f3a();while(!![]){try{const _0x3695ff=parseInt(_0x282af8(0x215))/0x1+parseInt(_0x282af8(0x217))/0x2+parseInt(_0x282af8(0x232))/0x3+parseInt(_0x282af8(0x225))/0x4+parseInt(_0x282af8(0x20e))/0x5+-parseInt(_0x282af8(0x21e))/0x6+-parseInt(_0x282af8(0x237))/0x7;if(_0x3695ff===_0x8863af)break;else _0xc0c24e['push'](_0xc0c24e['shift']());}catch(_0xf87f03){_0xc0c24e['push'](_0xc0c24e['shift']());}}}(a0_0x3509,0xbe864));const {createConnection,createChannel,setupInfrastructure,closeConnection,getConfig}=require(a0_0x49ca7a(0x239)),{formatDate}=require(a0_0x49ca7a(0x227));class RabbitMQService{constructor(){const _0x1867e1=a0_0x49ca7a,_0x3185c9={'FImNw':_0x1867e1(0x1e8)},_0x5ae558=_0x3185c9[_0x1867e1(0x202)]['split']('|');let _0x33d262=0x0;while(!![]){switch(_0x5ae558[_0x33d262++]){case'0':this['config']=getConfig();continue;case'1':this[_0x1867e1(0x207)]=null;continue;case'2':this['messageHandlers']=[];continue;case'3':this['channel']=null;continue;case'4':this[_0x1867e1(0x208)]=![];continue;}break;}}async[a0_0x49ca7a(0x219)](){const _0xd61fd6=a0_0x49ca7a,_0x35e0db={'qBZMD':function(_0x245469,_0x254e5c){return _0x245469(_0x254e5c);},'EbLzB':function(_0x160a46,_0x13e7ec,_0xae6beb){return _0x160a46(_0x13e7ec,_0xae6beb);},'uNNdy':function(_0x4ecf63,_0x2beb70){return _0x4ecf63(_0x2beb70);},'ynGTq':function(_0x2701fb,_0x49068c){return _0x2701fb(_0x49068c);},'byhuA':_0xd61fd6(0x1e7)};try{return this['connection']=await createConnection(),this['channel']=await _0x35e0db[_0xd61fd6(0x1ff)](createChannel,this[_0xd61fd6(0x207)]),await this[_0xd61fd6(0x20d)]['prefetch'](0x1),console[_0xd61fd6(0x223)]('['+_0x35e0db['uNNdy'](formatDate,new Date())+_0xd61fd6(0x22f)),await _0x35e0db['ynGTq'](setupInfrastructure,this[_0xd61fd6(0x20d)]),this[_0xd61fd6(0x208)]=!![],this['connection']['on'](_0x35e0db['byhuA'],()=>{const _0x14b646=_0xd61fd6;console['error']('['+_0x35e0db[_0x14b646(0x220)](formatDate,new Date())+']\x20Koneksi\x20RabbitMQ\x20terputus'),this['isConnected']=![],_0x35e0db['EbLzB'](setTimeout,()=>this[_0x14b646(0x1e6)](),0x1388);}),!![];}catch(_0x5228b6){return console['error']('['+_0x35e0db['uNNdy'](formatDate,new Date())+']\x20Failed\x20to\x20initialize\x20RabbitMQ:\x20'+_0x5228b6['message']),this['isConnected']=![],![];}}async[a0_0x49ca7a(0x1e6)](){const _0x305be4=a0_0x49ca7a,_0x1b7ab3={'xCDeU':function(_0x53a04d,_0x5e46e3){return _0x53a04d(_0x5e46e3);},'nPxcq':function(_0x52616e,_0x481284){return _0x52616e(_0x481284);}};console['log']('['+_0x1b7ab3['xCDeU'](formatDate,new Date())+']\x20Attempting\x20to\x20reconnect\x20to\x20RabbitMQ...');try{await this['initialize'](),this['isConnected']&&(console['log']('['+formatDate(new Date())+_0x305be4(0x21d)),await this[_0x305be4(0x21c)]());}catch(_0x5e2982){console['error']('['+_0x1b7ab3['nPxcq'](formatDate,new Date())+']\x20Failed\x20to\x20reconnect\x20to\x20RabbitMQ:\x20'+_0x5e2982[_0x305be4(0x1ee)]),setTimeout(()=>this[_0x305be4(0x1e6)](),0x1388);}}async[a0_0x49ca7a(0x233)](_0x56dc1b){const _0x1f5a74=a0_0x49ca7a,_0x2d85ba={'bZiaW':function(_0x3045bc){return _0x3045bc();},'zdWeK':'created/ready','etJMW':function(_0x30efa2,_0x127f3e){return _0x30efa2(_0x127f3e);},'gSIrE':_0x1f5a74(0x238),'qUFlu':function(_0x47e0db,_0x590009){return _0x47e0db(_0x590009);},'iRiBu':function(_0x592106,_0x5a59e3){return _0x592106(_0x5a59e3);}};try{!this['isConnected']&&(this[_0x1f5a74(0x207)]=await _0x2d85ba[_0x1f5a74(0x20f)](createConnection),this['channel']=await createChannel(this[_0x1f5a74(0x207)]),this['isConnected']=!![]);const _0x607c2=process[_0x1f5a74(0x1e5)]['RESTFORGE_PROJECT_NAME']||_0x1f5a74(0x212),_0x2ad914=_0x607c2+_0x1f5a74(0x236);await this['channel']['assertExchange'](_0x2ad914,'direct',{'durable':!![],'autoDelete':![]}),console[_0x1f5a74(0x223)]('['+formatDate(new Date())+_0x1f5a74(0x1f4)+_0x2ad914+'\x20created/ready'),await this[_0x1f5a74(0x20d)]['assertExchange'](_0x56dc1b[_0x1f5a74(0x1eb)],'direct',{'durable':!![],'autoDelete':![]}),console['log']('['+formatDate(new Date())+_0x1f5a74(0x213)+_0x56dc1b['exchange']+'\x20created/ready');const _0x2d3f50=_0x56dc1b[_0x1f5a74(0x224)]+'_retry',_0x134f7c={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':_0x56dc1b[_0x1f5a74(0x1eb)],'x-dead-letter-routing-key':_0x56dc1b['routingKey']}};await this['channel']['assertQueue'](_0x2d3f50,_0x134f7c),console[_0x1f5a74(0x223)]('['+formatDate(new Date())+']\x20Retry\x20queue\x20'+_0x2d3f50+'\x20created/ready'),await this['channel']['bindQueue'](_0x2d3f50,_0x2ad914,_0x56dc1b['routingKey']),console['log']('['+formatDate(new Date())+']\x20Retry\x20binding\x20for\x20'+_0x56dc1b[_0x1f5a74(0x224)]+_0x1f5a74(0x211));const _0x346e6a={'durable':!![],'arguments':{'x-dead-letter-exchange':_0x2ad914,'x-dead-letter-routing-key':_0x56dc1b['routingKey']}};try{const _0x3bdf9f=await this['channel'][_0x1f5a74(0x22d)](_0x56dc1b[_0x1f5a74(0x1f7)],_0x346e6a);console['log']('['+formatDate(new Date())+_0x1f5a74(0x206)+_0x56dc1b[_0x1f5a74(0x1f7)]+'\x20'+(_0x3bdf9f['queue']===_0x56dc1b[_0x1f5a74(0x1f7)]?_0x2d85ba[_0x1f5a74(0x230)]:'found')+_0x1f5a74(0x205)),await this['channel'][_0x1f5a74(0x221)](_0x56dc1b[_0x1f5a74(0x1f7)],_0x56dc1b[_0x1f5a74(0x1eb)],_0x56dc1b[_0x1f5a74(0x224)]),console[_0x1f5a74(0x223)]('['+_0x2d85ba[_0x1f5a74(0x20a)](formatDate,new Date())+']\x20Binding\x20'+_0x56dc1b['exchange']+_0x1f5a74(0x1fd)+_0x56dc1b[_0x1f5a74(0x1f7)]+'\x20('+_0x56dc1b['routingKey']+')\x20created');}catch(_0xcd1c4f){if(_0xcd1c4f[_0x1f5a74(0x1ee)]['includes'](_0x2d85ba[_0x1f5a74(0x222)])&&_0xcd1c4f[_0x1f5a74(0x1ee)][_0x1f5a74(0x23b)](_0x1f5a74(0x22e))){console['error']('\x0a['+formatDate(new Date())+']\x20ERROR:\x20Queue\x20'+_0x56dc1b[_0x1f5a74(0x1f7)]+'\x20is\x20already\x20in\x20use\x20with\x20a\x20different\x20routing\x20key.'),console[_0x1f5a74(0x1fb)]('Trying\x20alternative\x20queue\x20name...');const _0x386e57=_0x56dc1b[_0x1f5a74(0x224)]+_0x1f5a74(0x1fc),_0x4c2323=await this[_0x1f5a74(0x20d)][_0x1f5a74(0x22d)](_0x386e57,_0x346e6a);console['log']('['+formatDate(new Date())+']\x20Alternative\x20queue\x20'+_0x386e57+_0x1f5a74(0x229)),await this[_0x1f5a74(0x20d)][_0x1f5a74(0x221)](_0x386e57,_0x56dc1b[_0x1f5a74(0x1eb)],_0x56dc1b[_0x1f5a74(0x224)]),console[_0x1f5a74(0x223)]('['+_0x2d85ba[_0x1f5a74(0x204)](formatDate,new Date())+_0x1f5a74(0x1ea)+_0x56dc1b[_0x1f5a74(0x1eb)]+_0x1f5a74(0x1fd)+_0x386e57+'\x20('+_0x56dc1b['routingKey']+_0x1f5a74(0x1f3)),_0x56dc1b[_0x1f5a74(0x1f7)]=_0x386e57;}else{console[_0x1f5a74(0x1fb)]('['+_0x2d85ba[_0x1f5a74(0x1fe)](formatDate,new Date())+_0x1f5a74(0x234)+_0x56dc1b['queue']+':',_0xcd1c4f[_0x1f5a74(0x1ee)]);throw _0xcd1c4f;}}return!![];}catch(_0xe9f4ef){return console['error']('['+formatDate(new Date())+']\x20Error\x20saat\x20setup\x20infrastruktur:\x20'+_0xe9f4ef['message']),![];}}async[a0_0x49ca7a(0x21b)](_0xd8e8d6,_0x367493){const _0x10aa93=a0_0x49ca7a,_0x221ec3={'xausv':_0x10aa93(0x209),'shbkm':function(_0x289e9a,_0xdc15ad){return _0x289e9a(_0xdc15ad);},'LRDnO':'Failed\x20to\x20send\x20message\x20to\x20RabbitMQ'};if(!this['isConnected'])try{await this['initialize']();}catch(_0xbc5863){return{'success':![],'message':'Cannot\x20connect\x20to\x20RabbitMQ:\x20'+_0xbc5863['message'],'data':null};}try{const _0x40bf3c=_0x367493[_0x10aa93(0x1f5)]!==undefined?_0x367493[_0x10aa93(0x1f5)]:![],_0x17fd23=_0x367493[_0x10aa93(0x1f6)]||0x3,_0x1f5a9d={'rabbitmq':{'exchange':_0x367493['exchange'],'queue':_0x367493['queue'],'routing_key':_0x367493['routingKey'],'auto_retry':_0x40bf3c,'max_retries':_0x17fd23},'message':_0xd8e8d6};await this['setupCollectorInfrastructure'](_0x367493);const _0x29d32d=new Date(),_0x3cd322={'timestamp':_0x29d32d['toISOString'](),'content':JSON[_0x10aa93(0x1ec)](_0x1f5a9d)},_0x58a61c=this['channel'][_0x10aa93(0x201)](_0x367493[_0x10aa93(0x1eb)],_0x367493['routingKey'],Buffer['from'](JSON['stringify'](_0x3cd322)),{'persistent':!![],'contentType':_0x221ec3['xausv'],'timestamp':_0x29d32d[_0x10aa93(0x214)](),'messageId':_0x29d32d[_0x10aa93(0x214)]()+'-'+Math[_0x10aa93(0x23a)]()[_0x10aa93(0x203)](0x24)['substring'](0x7),'headers':{'x-auto-retry':_0x40bf3c,'x-max-retry':_0x17fd23,'x-retry-count':0x0,'x-retry-interval':0x2710}});if(_0x58a61c){console['log']('['+_0x221ec3['shbkm'](formatDate,_0x29d32d)+_0x10aa93(0x216),{'exchange':_0x367493['exchange'],'routing_key':_0x367493['routingKey'],'queue':_0x367493['queue'],'sendAt':_0x29d32d[_0x10aa93(0x1e9)]()});const _0x5d6898='queue-'+_0x29d32d['getTime']()+'-'+Math[_0x10aa93(0x23a)]()[_0x10aa93(0x203)](0x24)['substring'](0x7);return{'success':!![],'message':_0x10aa93(0x235),'data':{'id':_0x5d6898,'queueInfo':{'exchange':_0x367493['exchange'],'queue':_0x367493['queue'],'routingKey':_0x367493[_0x10aa93(0x224)]}}};}else throw new Error(_0x221ec3['LRDnO']);}catch(_0x4d46e1){return console[_0x10aa93(0x1fb)]('['+formatDate(new Date())+']\x20Error\x20sending\x20to\x20RabbitMQ:\x20'+_0x4d46e1[_0x10aa93(0x1ee)]),{'success':![],'message':'Error:\x20'+_0x4d46e1[_0x10aa93(0x1ee)],'data':null};}}['registerMessageHandler'](_0x5a01e3){const _0x1562e3=a0_0x49ca7a,_0x337df4={'nLXtK':function(_0xbe5d09,_0x5be240){return _0xbe5d09===_0x5be240;},'PJRNw':function(_0x47069c,_0x1d1f73){return _0x47069c(_0x1d1f73);}};_0x337df4[_0x1562e3(0x1f8)](typeof _0x5a01e3,'function')?(this[_0x1562e3(0x20b)][_0x1562e3(0x218)](_0x5a01e3),console['log']('['+_0x337df4[_0x1562e3(0x226)](formatDate,new Date())+']\x20Message\x20handler\x20registered')):console[_0x1562e3(0x1fb)]('['+formatDate(new Date())+']\x20Message\x20handler\x20must\x20be\x20a\x20function');}async['processMessage'](_0x335cb1){const _0x2e07bc=a0_0x49ca7a,_0xde5c8e={'PcALg':function(_0x469aa9,_0xcdc3d9){return _0x469aa9===_0xcdc3d9;},'ghlaL':function(_0x12810b,_0x59e284){return _0x12810b(_0x59e284);}};if(_0xde5c8e['PcALg'](this[_0x2e07bc(0x20b)][_0x2e07bc(0x1ed)],0x0))return console[_0x2e07bc(0x21a)]('['+_0xde5c8e['ghlaL'](formatDate,new Date())+_0x2e07bc(0x22c)),!![];try{for(const _0x275549 of this['messageHandlers']){await _0xde5c8e[_0x2e07bc(0x1f9)](_0x275549,_0x335cb1);}return!![];}catch(_0x298327){return console[_0x2e07bc(0x1fb)]('['+formatDate(new Date())+_0x2e07bc(0x1f1)+_0x298327[_0x2e07bc(0x1ee)]),![];}}async['startConsume'](){const _0x2cba54=a0_0x49ca7a,_0xcc68db={'YQuEq':function(_0x1d3899,_0x1d3136){return _0x1d3899!==_0x1d3136;},'Qhdca':function(_0x4ba34d,_0x1112e1){return _0x4ba34d(_0x1112e1);},'efhNr':function(_0x4f7cf3,_0x29b132){return _0x4f7cf3(_0x29b132);},'aylxr':function(_0x21ba57,_0x4533a6){return _0x21ba57(_0x4533a6);}};if(!this[_0x2cba54(0x208)])return console[_0x2cba54(0x1fb)]('['+_0xcc68db['Qhdca'](formatDate,new Date())+_0x2cba54(0x231)),![];try{return console[_0x2cba54(0x223)]('['+_0xcc68db['aylxr'](formatDate,new Date())+_0x2cba54(0x22b)+this['config'][_0x2cba54(0x1f7)]+_0x2cba54(0x22a)),this['channel'][_0x2cba54(0x1f0)](this['config']['queue'],async _0x4c6d7b=>{const _0x2467dc=_0x2cba54;if(_0xcc68db['YQuEq'](_0x4c6d7b,null)){const _0x2c576c=new Date();let _0x9a4429;try{_0x9a4429=JSON['parse'](_0x4c6d7b[_0x2467dc(0x228)][_0x2467dc(0x203)]());}catch(_0x30032a){console['error']('['+_0xcc68db['Qhdca'](formatDate,_0x2c576c)+']\x20Failed\x20to\x20parse\x20message:\x20'+_0x30032a['message']),console[_0x2467dc(0x1fb)]('Message\x20content:\x20'+_0x4c6d7b['content'][_0x2467dc(0x203)]()),this[_0x2467dc(0x20d)]['ack'](_0x4c6d7b);return;}const _0x305fe7=_0x4c6d7b[_0x2467dc(0x20c)][_0x2467dc(0x1f2)]?new Date(_0x4c6d7b['properties']['timestamp']):new Date(),_0xc51e34=await this[_0x2467dc(0x1ef)](_0x9a4429);_0xc51e34?(console[_0x2467dc(0x223)]('['+_0xcc68db[_0x2467dc(0x21f)](formatDate,new Date())+_0x2467dc(0x1fa)),this['channel']['ack'](_0x4c6d7b)):(console[_0x2467dc(0x1fb)]('['+_0xcc68db[_0x2467dc(0x200)](formatDate,new Date())+']\x20Failed\x20to\x20process\x20message,\x20requeuing'),this['channel']['nack'](_0x4c6d7b,![],!![])),console['log'](_0x2467dc(0x210));}},{'noAck':![]}),!![];}catch(_0x587fc5){return console['error']('['+formatDate(new Date())+']\x20Failed\x20to\x20start\x20consuming:\x20'+_0x587fc5['message']),![];}}async['close'](){const _0x3407b4=a0_0x49ca7a,_0x5a0ef5={'mxPdz':function(_0x3682bd,_0xfbc7c1){return _0x3682bd(_0xfbc7c1);}};this[_0x3407b4(0x207)]&&(await _0x5a0ef5['mxPdz'](closeConnection,this[_0x3407b4(0x207)]),this[_0x3407b4(0x208)]=![]);}}let instance=null;function a0_0x14b5(_0x59c720,_0x46a224){_0x59c720=_0x59c720-0x1e5;const _0x3509fb=a0_0x3509();let _0x14b5a4=_0x3509fb[_0x59c720];if(a0_0x14b5['lvCdTJ']===undefined){var _0x21b19c=function(_0x3b384b){const _0x347300='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x14f969='',_0x4962c5='';for(let _0x1cc22d=0x0,_0x363e49,_0x1edb10,_0x4b4efb=0x0;_0x1edb10=_0x3b384b['charAt'](_0x4b4efb++);~_0x1edb10&&(_0x363e49=_0x1cc22d%0x4?_0x363e49*0x40+_0x1edb10:_0x1edb10,_0x1cc22d++%0x4)?_0x14f969+=String['fromCharCode'](0xff&_0x363e49>>(-0x2*_0x1cc22d&0x6)):0x0){_0x1edb10=_0x347300['indexOf'](_0x1edb10);}for(let _0xb694ef=0x0,_0x26c8a2=_0x14f969['length'];_0xb694ef<_0x26c8a2;_0xb694ef++){_0x4962c5+='%'+('00'+_0x14f969['charCodeAt'](_0xb694ef)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4962c5);};a0_0x14b5['txSXZr']=_0x21b19c,a0_0x14b5['qbSKxS']={},a0_0x14b5['lvCdTJ']=!![];}const _0x4b80d3=_0x3509fb[0x0],_0x1075d2=_0x59c720+_0x4b80d3,_0x2ff589=a0_0x14b5['qbSKxS'][_0x1075d2];return!_0x2ff589?(_0x14b5a4=a0_0x14b5['txSXZr'](_0x14b5a4),a0_0x14b5['qbSKxS'][_0x1075d2]=_0x14b5a4):_0x14b5a4=_0x2ff589,_0x14b5a4;}function a0_0x3509(){const _0x1fb291=['Dg9tDhjPBMC','CvvgBhu','ihDPDgGGreXy','xsbrDwv1zsa','y29UBMvJDgLVBG','AxndB25Uzwn0zwq','yxbWBgLJyxrPB24VANnVBG','zxrktvC','BwvZC2fNzuHHBMrSzxjZ','ChjVCgvYDgLLCW','y2HHBM5LBa','ntqYmtmWmgrVqKzyua','yLPPyvC','ls0T','ignYzwf0zwq','zgvMyxvSDa','xsbfEgnOyw5Nzsa','z2v0vgLTzq','mtm1otaWn0L1yuvADG','xsbnzxnZywDLihnLBNqGDg8GuMfIyML0tveGC3vJy2vZC2z1BgX5oG','mtCXmdeWmMTmD2vcCW','ChvZAa','Aw5PDgLHBgL6zq','D2fYBG','C2vUzfrVuxvLDwu','C3rHCNrdB25ZDw1L','xsbtDwnJzxnZzNvSBhKGCMvJB25Uzwn0zwqGDg8GuMfIyML0tve','mZa0mdy3nefuwgPSCq','uwHKy2e','CujAtuq','yMLUzff1zxvL','z1njCKu','Bg9N','CM91DgLUz0TLEq','mZC3mtaYogjHyxPqBa','uePstNC','lI4VDxrPBhmVzgf0zuHLBhbLCG','y29UDgvUDa','ignYzwf0zwqGD2L0AcbetfG','iI4UlG','xsbtDgfYDcbJB25ZDw1PBMCGBwvZC2fNzxmGzNjVBsbXDwv1zsaI','xsboBYbOyw5KBgvYCYbYzwDPC3rLCMvKihrVihbYB2nLC3mGBwvZC2fNzxm','yxnZzxj0uxvLDwu','Ec1KzwfKlwXLDhrLCI1YB3v0Aw5NlwTLEq','xsbqCMvMzxrJAcbKAwf0DxiGA2uGmq','EMrxzuS','xsbdyw5UB3qGC3rHCNqGy29UC3vTAw5NoIbUB3qGy29UBMvJDgvKihrVifjHyMjPDe1r','ndiYndaYn3Dhv1bHsG','C2v0DxbdB2XSzwn0B3jjBMzYyxn0CNvJDhvYzq','xsbfCNjVCIbJCMvHDgLUzYbXDwv1zsa','rgf0ysbZzw50ihrVihf1zxvLihn1y2nLC3nMDwXSEq','lxjLDhj5lwv4y2HHBMDL','mZa1mZm0mtLQDvviz2O','Aw5LCxvPDMfSzw50igfYzW','lI4VDxrPBhmVCMfIyML0Bxe','CMfUzg9T','Aw5JBhvKzxm','zw52','CMvJB25Uzwn0','y2XVC2u','mxWZFdb8nhWY','Dg9ju09tDhjPBMC','xsbcAw5KAw5Nia','zxHJAgfUz2u','C3rYAw5NAwz5','BgvUz3rO','BwvZC2fNzq','ChjVy2vZC01LC3nHz2u','y29UC3vTzq','xsbfCNjVCIbWCM9JzxnZAw5Nig1LC3nHz2u6ia','DgLTzxn0yw1W','ksbJCMvHDgvK','xsbszxrYEsbLEgnOyw5Nzsa','yxv0B19YzxrYEq','Bwf4x3jLDhjPzxm','CxvLDwu','BKXyDeS','z2HSyuW','xsbnzxnZywDLihbYB2nLC3nLzcbZDwnJzxnZzNvSBhK','zxjYB3i','x3f1zxvL','ic0+ia','AvjPqNu','Du5ozhK','zwzOtNi','ChvIBgLZAa','rKLTtNC'];a0_0x3509=function(){return _0x1fb291;};return a0_0x3509();}function getInstance(){return!instance&&(instance=new RabbitMQService()),instance;}module['exports']={'getInstance':getInstance};
1
+ const a0_0x383731=a0_0x5399;(function(_0xb1a103,_0x1b119f){const _0x44d6cd=a0_0x5399,_0x3d540b=_0xb1a103();while(!![]){try{const _0x7e2bd1=-parseInt(_0x44d6cd(0x1f8))/0x1*(-parseInt(_0x44d6cd(0x1b6))/0x2)+parseInt(_0x44d6cd(0x1c3))/0x3+parseInt(_0x44d6cd(0x1db))/0x4+parseInt(_0x44d6cd(0x1fb))/0x5*(-parseInt(_0x44d6cd(0x1ed))/0x6)+-parseInt(_0x44d6cd(0x1c6))/0x7*(-parseInt(_0x44d6cd(0x1c0))/0x8)+-parseInt(_0x44d6cd(0x1b7))/0x9+parseInt(_0x44d6cd(0x1ca))/0xa;if(_0x7e2bd1===_0x1b119f)break;else _0x3d540b['push'](_0x3d540b['shift']());}catch(_0x220364){_0x3d540b['push'](_0x3d540b['shift']());}}}(a0_0x2690,0xca5e8));const {createConnection,createChannel,setupInfrastructure,closeConnection,getConfig}=require(a0_0x383731(0x1ef)),{formatDate}=require('../utils/dateHelper');class RabbitMQService{constructor(){const _0x46cc08=a0_0x383731,_0x1d8df7={'HpLfx':function(_0x484956){return _0x484956();}};this['connection']=null,this[_0x46cc08(0x1fd)]=null,this[_0x46cc08(0x1e2)]=_0x1d8df7[_0x46cc08(0x1ac)](getConfig),this[_0x46cc08(0x1bd)]=![],this['messageHandlers']=[];}async['initialize'](){const _0xb881fe=a0_0x383731,_0xe0d972={'qQpad':function(_0x37377a,_0x4986ca,_0x3cd922){return _0x37377a(_0x4986ca,_0x3cd922);},'wcOHe':'6|0|3|5|7|2|4|1','AHpDW':function(_0x6014f8,_0x148c89){return _0x6014f8(_0x148c89);},'tiFFw':function(_0x3c26b1,_0x388617){return _0x3c26b1(_0x388617);},'argyB':function(_0x51bc50){return _0x51bc50();}};try{const _0x2323e7=_0xe0d972['wcOHe'][_0xb881fe(0x1bb)]('|');let _0x12276e=0x0;while(!![]){switch(_0x2323e7[_0x12276e++]){case'0':this['channel']=await _0xe0d972[_0xb881fe(0x1f9)](createChannel,this['connection']);continue;case'1':return!![];case'2':this[_0xb881fe(0x1bd)]=!![];continue;case'3':await this['channel']['prefetch'](0x1);continue;case'4':this[_0xb881fe(0x1ff)]['on'](_0xb881fe(0x1ad),()=>{const _0x7d2073=_0xb881fe;console[_0x7d2073(0x1a7)]('['+formatDate(new Date())+']\x20Koneksi\x20RabbitMQ\x20terputus'),this['isConnected']=![],_0xe0d972['qQpad'](setTimeout,()=>this['reconnect'](),0x1388);});continue;case'5':console['log']('['+_0xe0d972['tiFFw'](formatDate,new Date())+_0xb881fe(0x1c5));continue;case'6':this[_0xb881fe(0x1ff)]=await _0xe0d972[_0xb881fe(0x1e9)](createConnection);continue;case'7':await _0xe0d972['AHpDW'](setupInfrastructure,this[_0xb881fe(0x1fd)]);continue;}break;}}catch(_0x1d0741){return console[_0xb881fe(0x1a7)]('['+formatDate(new Date())+_0xb881fe(0x1eb)+_0x1d0741[_0xb881fe(0x1d8)]),this['isConnected']=![],![];}}async['reconnect'](){const _0x4ad89b=a0_0x383731;console['log']('['+formatDate(new Date())+_0x4ad89b(0x1ee));try{await this['initialize'](),this[_0x4ad89b(0x1bd)]&&(console[_0x4ad89b(0x1c7)]('['+formatDate(new Date())+_0x4ad89b(0x1e6)),await this[_0x4ad89b(0x1bc)]());}catch(_0x187fe1){console[_0x4ad89b(0x1a7)]('['+formatDate(new Date())+']\x20Failed\x20to\x20reconnect\x20to\x20RabbitMQ:\x20'+_0x187fe1['message']),setTimeout(()=>this['reconnect'](),0x1388);}}async[a0_0x383731(0x1b8)](_0x2714c3){const _0x5b38e5=a0_0x383731,_0x26627e={'uVcpB':function(_0x4d83f5){return _0x4d83f5();},'uIgXw':'default','yVoKF':_0x5b38e5(0x1be),'ZvCgI':function(_0x2175c3,_0x5cc6f6){return _0x2175c3(_0x5cc6f6);},'TraKi':function(_0x340522,_0x3a3394){return _0x340522(_0x3a3394);},'yTJsj':function(_0x56c7d9,_0x586506){return _0x56c7d9===_0x586506;},'xbXBC':_0x5b38e5(0x1fe),'DdYct':_0x5b38e5(0x1f1),'jXzfB':function(_0x47e1b1,_0x95a0fc){return _0x47e1b1(_0x95a0fc);},'VBEIW':function(_0x3fa461,_0x522277){return _0x3fa461(_0x522277);},'XeAGG':function(_0x113599,_0x119d0c){return _0x113599(_0x119d0c);}};try{!this[_0x5b38e5(0x1bd)]&&(this[_0x5b38e5(0x1ff)]=await _0x26627e[_0x5b38e5(0x1ae)](createConnection),this[_0x5b38e5(0x1fd)]=await createChannel(this[_0x5b38e5(0x1ff)]),this[_0x5b38e5(0x1bd)]=!![]);const _0x3f2004=process['env']['RESTFORGE_PROJECT_NAME']||_0x26627e['uIgXw'],_0x21ca46=_0x3f2004+_0x5b38e5(0x1d4);await this[_0x5b38e5(0x1fd)]['assertExchange'](_0x21ca46,_0x26627e[_0x5b38e5(0x1c9)],{'durable':!![],'autoDelete':![]}),console['log']('['+_0x26627e['ZvCgI'](formatDate,new Date())+']\x20Retry\x20exchange\x20'+_0x21ca46+'\x20created/ready'),await this['channel'][_0x5b38e5(0x1cd)](_0x2714c3[_0x5b38e5(0x1e3)],'direct',{'durable':!![],'autoDelete':![]}),console['log']('['+_0x26627e[_0x5b38e5(0x1b3)](formatDate,new Date())+_0x5b38e5(0x1f4)+_0x2714c3['exchange']+'\x20created/ready');const _0xb49f16=_0x2714c3[_0x5b38e5(0x1aa)]+'_retry',_0x3667a0={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':_0x2714c3[_0x5b38e5(0x1e3)],'x-dead-letter-routing-key':_0x2714c3[_0x5b38e5(0x1aa)]}};await this['channel']['assertQueue'](_0xb49f16,_0x3667a0),console['log']('['+_0x26627e['TraKi'](formatDate,new Date())+_0x5b38e5(0x1f3)+_0xb49f16+_0x5b38e5(0x1ab)),await this['channel'][_0x5b38e5(0x204)](_0xb49f16,_0x21ca46,_0x2714c3[_0x5b38e5(0x1aa)]),console['log']('['+formatDate(new Date())+_0x5b38e5(0x1e5)+_0x2714c3['routingKey']+_0x5b38e5(0x1af));const _0x24b608={'durable':!![],'arguments':{'x-dead-letter-exchange':_0x21ca46,'x-dead-letter-routing-key':_0x2714c3[_0x5b38e5(0x1aa)]}};try{const _0x5fbeaa=await this[_0x5b38e5(0x1fd)]['assertQueue'](_0x2714c3['queue'],_0x24b608);console[_0x5b38e5(0x1c7)]('['+formatDate(new Date())+']\x20Queue\x20'+_0x2714c3['queue']+'\x20'+(_0x26627e['yTJsj'](_0x5fbeaa[_0x5b38e5(0x1cf)],_0x2714c3['queue'])?_0x26627e['xbXBC']:_0x26627e['DdYct'])+_0x5b38e5(0x1b0)),await this['channel']['bindQueue'](_0x2714c3['queue'],_0x2714c3[_0x5b38e5(0x1e3)],_0x2714c3['routingKey']),console['log']('['+_0x26627e[_0x5b38e5(0x1d6)](formatDate,new Date())+_0x5b38e5(0x1d2)+_0x2714c3['exchange']+_0x5b38e5(0x1dc)+_0x2714c3['queue']+'\x20('+_0x2714c3['routingKey']+')\x20created');}catch(_0x2dc979){if(_0x2dc979[_0x5b38e5(0x1d8)][_0x5b38e5(0x1de)]('inequivalent\x20arg')&&_0x2dc979['message']['includes']('x-dead-letter-routing-key')){console['error']('\x0a['+formatDate(new Date())+']\x20ERROR:\x20Queue\x20'+_0x2714c3['queue']+_0x5b38e5(0x1c4)),console['error']('Trying\x20alternative\x20queue\x20name...');const _0x1b40e2=_0x2714c3['routingKey']+_0x5b38e5(0x1b4),_0x1842e3=await this['channel'][_0x5b38e5(0x1ec)](_0x1b40e2,_0x24b608);console[_0x5b38e5(0x1c7)]('['+formatDate(new Date())+']\x20Alternative\x20queue\x20'+_0x1b40e2+'\x20created\x20with\x20DLX'),await this[_0x5b38e5(0x1fd)][_0x5b38e5(0x204)](_0x1b40e2,_0x2714c3[_0x5b38e5(0x1e3)],_0x2714c3[_0x5b38e5(0x1aa)]),console[_0x5b38e5(0x1c7)]('['+formatDate(new Date())+_0x5b38e5(0x1d2)+_0x2714c3[_0x5b38e5(0x1e3)]+_0x5b38e5(0x1dc)+_0x1b40e2+'\x20('+_0x2714c3['routingKey']+_0x5b38e5(0x1a5)),_0x2714c3[_0x5b38e5(0x1cf)]=_0x1b40e2;}else{console['error']('['+_0x26627e[_0x5b38e5(0x1c2)](formatDate,new Date())+']\x20Error\x20creating\x20queue\x20'+_0x2714c3[_0x5b38e5(0x1cf)]+':',_0x2dc979[_0x5b38e5(0x1d8)]);throw _0x2dc979;}}return!![];}catch(_0x2636e6){return console[_0x5b38e5(0x1a7)]('['+_0x26627e[_0x5b38e5(0x1f2)](formatDate,new Date())+']\x20Error\x20saat\x20setup\x20infrastruktur:\x20'+_0x2636e6[_0x5b38e5(0x1d8)]),![];}}async[a0_0x383731(0x1cb)](_0x4aa521,_0x16becb){const _0x5e178c=a0_0x383731,_0x3a0467={'XTsgR':function(_0x2c4702,_0x4f171e){return _0x2c4702!==_0x4f171e;},'TIyEZ':'application/json','YvxvX':'Data\x20sent\x20to\x20queue\x20successfully','ZZeIt':'Failed\x20to\x20send\x20message\x20to\x20RabbitMQ','BWFAP':function(_0x1969da,_0x4f4f13){return _0x1969da(_0x4f4f13);}};if(!this[_0x5e178c(0x1bd)])try{await this['initialize']();}catch(_0x18efde){return{'success':![],'message':'Cannot\x20connect\x20to\x20RabbitMQ:\x20'+_0x18efde[_0x5e178c(0x1d8)],'data':null};}try{const _0x5232de=_0x3a0467['XTsgR'](_0x16becb['auto_retry'],undefined)?_0x16becb[_0x5e178c(0x1d9)]:![],_0x1f95f1=_0x16becb[_0x5e178c(0x1d7)]||0x3,_0x4e606a={'rabbitmq':{'exchange':_0x16becb[_0x5e178c(0x1e3)],'queue':_0x16becb['queue'],'routing_key':_0x16becb['routingKey'],'auto_retry':_0x5232de,'max_retries':_0x1f95f1},'message':_0x4aa521};await this[_0x5e178c(0x1b8)](_0x16becb);const _0x43376d=new Date(),_0x45f53c={'timestamp':_0x43376d[_0x5e178c(0x1a6)](),'content':JSON['stringify'](_0x4e606a)},_0x4ced86=this[_0x5e178c(0x1fd)][_0x5e178c(0x1f7)](_0x16becb['exchange'],_0x16becb['routingKey'],Buffer[_0x5e178c(0x1b1)](JSON[_0x5e178c(0x1b2)](_0x45f53c)),{'persistent':!![],'contentType':_0x3a0467['TIyEZ'],'timestamp':_0x43376d[_0x5e178c(0x1d5)](),'messageId':_0x43376d['getTime']()+'-'+Math['random']()['toString'](0x24)[_0x5e178c(0x1f0)](0x7),'headers':{'x-auto-retry':_0x5232de,'x-max-retry':_0x1f95f1,'x-retry-count':0x0,'x-retry-interval':0x2710}});if(_0x4ced86){console['log']('['+formatDate(_0x43376d)+']\x20Message\x20sent\x20to\x20RabbitMQ\x20successfully:',{'exchange':_0x16becb['exchange'],'routing_key':_0x16becb[_0x5e178c(0x1aa)],'queue':_0x16becb['queue'],'sendAt':_0x43376d['toISOString']()});const _0x2cf22c='queue-'+_0x43376d['getTime']()+'-'+Math[_0x5e178c(0x201)]()[_0x5e178c(0x1fc)](0x24)['substring'](0x7);return{'success':!![],'message':_0x3a0467[_0x5e178c(0x1bf)],'data':{'id':_0x2cf22c,'queueInfo':{'exchange':_0x16becb[_0x5e178c(0x1e3)],'queue':_0x16becb[_0x5e178c(0x1cf)],'routingKey':_0x16becb['routingKey']}}};}else throw new Error(_0x3a0467[_0x5e178c(0x1b9)]);}catch(_0x28ffcd){return console['error']('['+_0x3a0467[_0x5e178c(0x1e1)](formatDate,new Date())+']\x20Error\x20sending\x20to\x20RabbitMQ:\x20'+_0x28ffcd[_0x5e178c(0x1d8)]),{'success':![],'message':_0x5e178c(0x200)+_0x28ffcd[_0x5e178c(0x1d8)],'data':null};}}['registerMessageHandler'](_0xfc6c1f){const _0x19b23e=a0_0x383731,_0x53628c={'xFqvm':function(_0x1e9e35,_0x27650c){return _0x1e9e35===_0x27650c;}};_0x53628c[_0x19b23e(0x1b5)](typeof _0xfc6c1f,_0x19b23e(0x1ce))?(this['messageHandlers'][_0x19b23e(0x1d1)](_0xfc6c1f),console[_0x19b23e(0x1c7)]('['+formatDate(new Date())+_0x19b23e(0x1e4))):console['error']('['+formatDate(new Date())+']\x20Message\x20handler\x20must\x20be\x20a\x20function');}async['processMessage'](_0x3a7776){const _0x1a80a3=a0_0x383731,_0x581f6d={'hWrHs':function(_0x14e8d4,_0x40dd40){return _0x14e8d4(_0x40dd40);},'SfxJR':function(_0x54d3d4,_0x5ae798){return _0x54d3d4(_0x5ae798);}};if(this[_0x1a80a3(0x203)][_0x1a80a3(0x1ea)]===0x0)return console[_0x1a80a3(0x1fa)]('['+_0x581f6d[_0x1a80a3(0x1a8)](formatDate,new Date())+']\x20No\x20handlers\x20registered\x20to\x20process\x20messages'),!![];try{for(const _0x353831 of this[_0x1a80a3(0x203)]){await _0x581f6d[_0x1a80a3(0x1df)](_0x353831,_0x3a7776);}return!![];}catch(_0x4bb032){return console['error']('['+_0x581f6d['hWrHs'](formatDate,new Date())+_0x1a80a3(0x1ba)+_0x4bb032[_0x1a80a3(0x1d8)]),![];}}async[a0_0x383731(0x1bc)](){const _0x393874=a0_0x383731,_0xa51083={'SwaRZ':function(_0x3e4e00,_0x587659){return _0x3e4e00!==_0x587659;},'Usbkn':'---','ZzTaW':function(_0x5818f9,_0x1df62c){return _0x5818f9(_0x1df62c);}};if(!this[_0x393874(0x1bd)])return console['error']('['+formatDate(new Date())+_0x393874(0x1e0)),![];try{return console[_0x393874(0x1c7)]('['+_0xa51083['ZzTaW'](formatDate,new Date())+_0x393874(0x1c1)+this['config']['queue']+_0x393874(0x1f6)),this['channel'][_0x393874(0x1cc)](this['config']['queue'],async _0x1bf71b=>{const _0x485277=_0x393874;if(_0xa51083[_0x485277(0x1c8)](_0x1bf71b,null)){const _0x1b86bb=new Date();let _0x264f19;try{_0x264f19=JSON['parse'](_0x1bf71b['content']['toString']());}catch(_0x26daec){console['error']('['+formatDate(_0x1b86bb)+_0x485277(0x1e7)+_0x26daec['message']),console[_0x485277(0x1a7)](_0x485277(0x1da)+_0x1bf71b['content'][_0x485277(0x1fc)]()),this[_0x485277(0x1fd)][_0x485277(0x1dd)](_0x1bf71b);return;}const _0x1360bc=_0x1bf71b[_0x485277(0x1d3)]['timestamp']?new Date(_0x1bf71b['properties'][_0x485277(0x202)]):new Date(),_0x4182c2=await this['processMessage'](_0x264f19);_0x4182c2?(console[_0x485277(0x1c7)]('['+formatDate(new Date())+']\x20Message\x20processed\x20successfully'),this['channel']['ack'](_0x1bf71b)):(console['error']('['+formatDate(new Date())+']\x20Failed\x20to\x20process\x20message,\x20requeuing'),this[_0x485277(0x1fd)][_0x485277(0x1e8)](_0x1bf71b,![],!![])),console[_0x485277(0x1c7)](_0xa51083[_0x485277(0x1a9)]);}},{'noAck':![]}),!![];}catch(_0x331d51){return console['error']('['+_0xa51083['ZzTaW'](formatDate,new Date())+']\x20Failed\x20to\x20start\x20consuming:\x20'+_0x331d51[_0x393874(0x1d8)]),![];}}async[a0_0x383731(0x1ad)](){const _0x35e4f3=a0_0x383731,_0x3eafcd={'iHuQs':function(_0x592524,_0x228fce){return _0x592524(_0x228fce);}};this[_0x35e4f3(0x1ff)]&&(await _0x3eafcd[_0x35e4f3(0x1f5)](closeConnection,this[_0x35e4f3(0x1ff)]),this[_0x35e4f3(0x1bd)]=![]);}}let instance=null;function a0_0x2690(){const _0x44b786=['mtm5mZeZmJbjDfn3vfu','C2vUzfrVuxvLDwu','y29UC3vTzq','yxnZzxj0rxHJAgfUz2u','zNvUy3rPB24','CxvLDwu','zxHWB3j0CW','ChvZAa','xsbcAw5KAw5Nia','ChjVCgvYDgLLCW','lxjLDhj5lwv4y2HHBMDL','z2v0vgLTzq','ALH6zKi','Bwf4x3jLDhjPzxm','BwvZC2fNzq','yxv0B19YzxrYEq','twvZC2fNzsbJB250zw50oIa','mteWmtiXmLniuwPoDq','ic0+ia','ywnR','Aw5JBhvKzxm','u2z4sLi','xsbdyw5UB3qGC3rHCNqGy29UC3vTAw5NoIbUB3qGy29UBMvJDgvKihrVifjHyMjPDe1r','qLDgqva','y29UzMLN','zxHJAgfUz2u','xsbnzxnZywDLigHHBMrSzxiGCMvNAxn0zxjLza','xsbszxrYEsbIAw5KAw5NigzVCIa','xsbtDwnJzxnZzNvSBhKGCMvJB25Uzwn0zwqGDg8GuMfIyML0tve','xsbgywLSzwqGDg8GCgfYC2uGBwvZC2fNztOG','BMfJAW','yxjNEui','BgvUz3rO','xsbgywLSzwqGDg8GAw5PDgLHBgL6zsbsywjIAxrnutOG','yxnZzxj0uxvLDwu','nMvRB3PvrG','xsbbDhrLBxb0Aw5NihrVihjLy29UBMvJDcb0BYbsywjIAxrnus4UlG','lI4VDxrPBhmVCMfIyML0Bxe','C3vIC3rYAw5N','zM91BMq','wgvbr0C','xsbszxrYEsbXDwv1zsa','xsbfEgnOyw5Nzsa','AuH1uxm','iI4UlG','ChvIBgLZAa','muvAzM5eDa','quHWrfC','D2fYBG','oda0mZG5nw9crhrYwq','Dg9tDhjPBMC','y2HHBM5LBa','y3jLyxrLzc9YzwfKEq','y29UBMvJDgLVBG','rxjYB3i6ia','CMfUzg9T','DgLTzxn0yw1W','BwvZC2fNzuHHBMrSzxjZ','yMLUzff1zxvL','ksbJCMvHDgvK','Dg9ju09tDhjPBMC','zxjYB3i','AfDYshm','vxnIA24','CM91DgLUz0TLEq','ignYzwf0zwqVCMvHzhK','shbmzNG','y2XVC2u','DvzJCei','ignYzwf0zwq','ihDPDgGGreXy','zNjVBq','C3rYAw5NAwz5','wNzdz0K','x3f1zxvL','EezXDM0','ntu3otyYDuzUugTu','ndqWodm4ovjQDM9zAa','C2v0DxbdB2XSzwn0B3jjBMzYyxn0CNvJDhvYzq','wLPLsxq','xsbfCNjVCIbWCM9JzxnZAw5Nig1LC3nHz2u6ia','C3bSAxq','C3rHCNrdB25ZDw1L','AxndB25Uzwn0zwq','zgLYzwn0','wxz4DLG','mZaZmML6EvvVva','xsbtDgfYDcbJB25ZDw1PBMCGBwvZC2fNzxmGzNjVBsbXDwv1zsaI','vKjfsvC','nJeYodi1wgjUtLL0','igLZigfSCMvHzhKGAw4GDxnLihDPDgGGysbKAwzMzxjLBNqGCM91DgLUzYbRzxKU','xsbqCMvMzxrJAcbKAwf0DxiGA2uGmq','mtqZmJLLA0vzqMG','Bg9N','u3DHuLO','EvzVs0y'];a0_0x2690=function(){return _0x44b786;};return a0_0x2690();}function a0_0x5399(_0x76d888,_0x4823cc){_0x76d888=_0x76d888-0x1a5;const _0x269013=a0_0x2690();let _0x5399ca=_0x269013[_0x76d888];if(a0_0x5399['GYzWvn']===undefined){var _0x54bec2=function(_0x54d002){const _0x52a620='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3bc1a5='',_0x3f6409='';for(let _0x596047=0x0,_0x211894,_0x492bc3,_0x573776=0x0;_0x492bc3=_0x54d002['charAt'](_0x573776++);~_0x492bc3&&(_0x211894=_0x596047%0x4?_0x211894*0x40+_0x492bc3:_0x492bc3,_0x596047++%0x4)?_0x3bc1a5+=String['fromCharCode'](0xff&_0x211894>>(-0x2*_0x596047&0x6)):0x0){_0x492bc3=_0x52a620['indexOf'](_0x492bc3);}for(let _0x2b8b73=0x0,_0x54a697=_0x3bc1a5['length'];_0x2b8b73<_0x54a697;_0x2b8b73++){_0x3f6409+='%'+('00'+_0x3bc1a5['charCodeAt'](_0x2b8b73)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3f6409);};a0_0x5399['khcJUT']=_0x54bec2,a0_0x5399['FabmFo']={},a0_0x5399['GYzWvn']=!![];}const _0x3d02ff=_0x269013[0x0],_0x13e5cd=_0x76d888+_0x3d02ff,_0x1abb53=a0_0x5399['FabmFo'][_0x13e5cd];return!_0x1abb53?(_0x5399ca=a0_0x5399['khcJUT'](_0x5399ca),a0_0x5399['FabmFo'][_0x13e5cd]=_0x5399ca):_0x5399ca=_0x1abb53,_0x5399ca;}function getInstance(){return!instance&&(instance=new RabbitMQService()),instance;}module[a0_0x383731(0x1d0)]={'getInstance':getInstance};
@@ -1 +1 @@
1
- const a0_0x41c21b=a0_0x592e;(function(_0x726184,_0xb66513){const _0x18ae78=a0_0x592e,_0x3c9d34=_0x726184();while(!![]){try{const _0x4db355=-parseInt(_0x18ae78(0x2f6))/0x1+parseInt(_0x18ae78(0x2b1))/0x2+parseInt(_0x18ae78(0x2f3))/0x3*(parseInt(_0x18ae78(0x235))/0x4)+parseInt(_0x18ae78(0x281))/0x5+-parseInt(_0x18ae78(0x276))/0x6*(-parseInt(_0x18ae78(0x2d4))/0x7)+parseInt(_0x18ae78(0x277))/0x8+-parseInt(_0x18ae78(0x336))/0x9;if(_0x4db355===_0xb66513)break;else _0x3c9d34['push'](_0x3c9d34['shift']());}catch(_0x5b2023){_0x3c9d34['push'](_0x3c9d34['shift']());}}}(a0_0x5e0b,0xd7626));const {Queue,Worker}=require('bullmq'),Redis=require(a0_0x41c21b(0x2c3)),crypto=require('crypto'),{v7:uuidv7}=require('uuid'),fs=require('fs'),path=require(a0_0x41c21b(0x213)),{logger}=require(a0_0x41c21b(0x222)),jobValidator=require(a0_0x41c21b(0x246));function a0_0x5e0b(){const _0x33faf2=['zKDmEfa','zgvIDwC','AKHMD2O','zgvSyxLLza','sM9Iig1VBML0B3jPBMCGDgfIBgvZigvUC3vYzwqGka','mYbcDwXStveGuxvLDwvZignYzwf0zwqGkgHPz2GSigrLzMf1BhqSigXVDYK','C3fSlxnJCMLWDhm','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ie5pvYGPlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GjdeSihbYB2DYzxnZid0GmtaWlcbYzxn1BhrFC3vTBwfYEsa9icqYifDirvjfigLKid0Gjdm','mtaZntGWneLvzMforq','AwfnDvq','txLtuuWGreiGBw9KDwXLig5VDcbHDMfPBgfIBgu','y2HPBgq','sM9Iie1HBMfNzxiGCMvHzhK6ia','uMvKAxmGy29UBMvJDgLVBIbMywLSzwq6ia','rMfPBgvKihrVihvWzgf0zsbQB2iGAgLZDg9YEsaOzMfPBgvKktOG','Dhj1zq','z2v0sM9Iu2nOzwr1BgvYCW','sM9IigrPC3bHDgnOzwq6ia','lI4VlI4VC2vYDMLJzxmVA2fMA2ftzxj2AwnL','D2fYBG','te1hrNq','qNLbu0u','B25bzNrLCKPVyKnVBxbSzxrLigHHBMrSzxiGzxjYB3iGkg5VBI1IBg9JA2LUzYK','zMLUza','sM9Iihn0ywXSzwq6ia','BMv4Da','Aw9YzwrPCW','AgLNAa','rMfPBgvKihrVihjLz2LZDgvYigPVyJOG','zNvUy3rPB24','AM9Ix3jLz2LZDhj5x2nVDw50zxjFzxjYB3i','sK9cx0zbsuXfrf9srvrftLrjt05Fse9vuLm','DMzmCwy','ChjVy2vZC2vKt24','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa/lcbSyxn0x2r1CMf0Aw9Ux21Zid0GpYWkicaGicaGicaGica','rMfPBgvKihrVihvWzgf0zsbQB2iGCMvNAxn0CNKGy291BNrLCNm6ia','qunnwfm','Aw5JBhvKzxm','uKvesvnFueftu1DpuKq','zMfPBgvK','rKj4zhu','igPVyIbJB25MAwCOCYKGzNjVBsbWyxLSB2fKl2PVyNmV','zKDKEeG','mta0m2rnuwrXsq','AM9Ix2nVBMzPz19PBNzHBgLK','q3jVBIbYzwDPC3rLCMvKoIa','y29UBMvJDgLVBNm','yNvSBg1XsM9Iswq','C0LMCxq','AM9ItMfTzq','AgfUzgXLCNm','DMfSAwq','yxbPlwrLBgf5zwq','uNzSDfK','zxHLy3v0zvf1zxj5','Cw9jyxy','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa6msWGBgfZDf9KDxjHDgLVBL9TCYa9idOYlaOGicaGicaGicaGia','AM9Ix3jLz2LZDhj5x29MzMXPBMvFzxjYB3i','reXnuw0','BxLZCwW','y3jLyxrLza','teDKsw4','sK9cx0zbsuXfra','ChjVy2vZC0PVyG','vLLQsva','Dg90ywXFzMfPBgvK','sxjxEhu','z2v0tMv4Dfj1BKzYB21cDwXStve','yKj0rhu','sM9IihrPzgfRigrPDgvTDwTHBJOG','B2zMBgLUzq','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNzMfPBgvKjYWGy29TCgXLDgvKx2f0id0GtK9xkcKScIaGicaGicaGicaGzhvYyxrPB25FBxmGpsa/lcbWCM9NCMvZCYa9id8SigvYCM9Yx21LC3nHz2uGpsa/lcbLCNjVCL9ZDgfJAYa9id8Gv0HfuKuGAwqGpsa/','z2v0rgjuExbL','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteWSihvWzgf0zwrFyxqGpsbtwvnusu1fu1rbtva','mtiZmZnQCNvZqMi','CxvLDwu','zgLZCgf0y2HezwXHEwvK','mty4ndeYzKzst0jt','A0f5vgi','rhfTzvC','yNvSBg1Xx3jLzgLZx2vYCM9Y','CwjOsgy','u3riyum','C3rYAw5NAwz5','AM9PBG','BM1gtLq','lI4VlI4VDxrPBhmVzgiTBxLZCwW','q0ndwLK','Aw5PDgLHBgL6zwq','EvvWuwe','AM9Ix3n0ywXSzwq','BwvrAMq','z2v0sw5ZDgfUy2u','rMfPBgvKihrVihb1yMXPC2GGsK9cx0nptvbmrvrfrcb0BYblywzRyq','rufRqM4','C1LlwKm','CgfYC2u','BgvUz3rO','uMjQtwq','sM9Iia','CvHpAxy','oMPVyG','BwfUDwfS','BM93','Cgf1C2u','qNvSBe1rifjLzgLZignVBM5Ly3rPB24GDMvYAwzPzwq','zxHWB3j0CW','ChjVz3jLC3m','Du1Jy3m','B25kB2jgywLSzwq','Bwf4qxr0zw1WDhm','z2v0rgjvDgLSCW','rMzuDem','DMfSDwvZ','zxHLy3v0zuv2zw50sgfUzgXLCNm','mYbcDwXStveGv29YA2vYCYbJCMvHDgvKicHJB25JDxjYzw5JEtOG','Du9ewhi','ue1VELa','C2nOzwr1Bgu','wNznEg8','twX3ExG','DhjPBq','ywXS','rMfPBgvKihrVihbHCNnLigPVyIbJB25MAwC6ia','ChvZAa','vxnfBKG','C3LZDgvT','lI4VlI4VDxrPBhmVzgi','rM9SzgvYihbHEwXVywqVAM9ICY8GDgLKywSGzgL0zw11A2fU','BgLZDePVyNm','B25kB2jdB21WBgv0zwq','zgvZy3jPChrPB24','q1H2zxy','sxnIz2y','yvjfuLG','sK9cx1nivvret1Dox1rjtuvpvvq','EMHOuue','sxPpzg0','zgvSzxrL','AM9IlxnJAgvKDwXLCG','vhbKtwC','mtC2nZG2mtLxuvLnz2G','y29TCgXLDgvK','BxmPlI4U','Bg9JywXOB3n0','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa6msWGBgfZDf9YDw5FyxqGpsbtwvnusu1fu1rbtvaScIaGicaGicaGicaGDxbKyxrLzf9HDca9ifnzu1rjtuvtvefnucbxsevsrsbQB2jFBMfTzsa9idOY','DNHlBu8','q0DVDhC','v1L1s1G','AM9Ix2rIx3vUyxzHAwXHyMXL','ywn0AxzLsgLZDg9YEuLKCW','zxHWB25LBNrPywW','B1rVEgS','z2v0u3rHDgu','zw5ZDxjLvgfIBgvZ','Dg9mB3DLCKnHC2u','vLbMsw8','Bw92zvrVrMfPBgvK','zxHuu0m','rejFvfLqrq','AxnsDw5UAw5N','ihrPzgfRigjPC2eGzgKTy2fUy2vSicHZDgf0ztOG','icSGmsWkicaGicaGicaGicbUzxH0x3j1BL9HDca9idOZlcb1CgrHDgvKx2f0id0Gu1LtveLnrvnuqu1qifDirvjfigPVyL9Uyw1Lid0GoJq','vuHpChm','DhjPz2DLCMvKqNK','sM9IignHBMnLBgXLzcbIEsbVBKjLzM9YzuPVyKv4zwn1Dgu6ia','AwHwtue','DxbKyxrLsM9IsgLZDg9YEunVBxbSzxrLza','yxbPlwnHBMnLBa','DgLTzw91Da','B3jHy2XL','C3vJy2vZCW','BwLU','DxrMoa','zw50CMLLCW','zgLZCgf0y2G','AM9Ix21HBMfNzxjFC2H1DgrVD25FC3rHCNq','AM9Ix21HBMfNzxjFywXYzwfKEv9PBML0AwfSAxPLza','qur1qva','ANrpAKm','AgfUzgXLCG','lIbkB2iGu2nOzwr1BgvYihrPzgfRigfRyw4GywT0AwyU','BwzWtxy','lI4VlI4VDxrPBhmVCMvKAxmTy2XPzw50','zgvMyxvSDa','zMLUAxnOzwrpBG','BwvZC2fNzq','sM9Iie1HBMfNzxiGC2H1DhrPBMCGzg93BIaODgLTzw91DdOG','Cgf0Aa','zg1zuMi','r3Hizu0','CgLK','z2v0ug9VBa','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsaKmsWGBgfZDf9YDw5FyxqGpsbot1COksWkicaGicaGicaGicb1CgrHDgvKx2f0id0GtK9xkcKGv0HfuKuGAM9Ix25HBwuGpsaKmG','sK9cx0vwru5u','z2v0sgvHBhrOu3rHDhvZ','zgjFB3jHy2XLx3vUyxzHAwXHyMXL','D2fPDgLUzW','tezNvwG','CxvLDwvZ','y3jVBG','lI4VlI4VDxrPBhmVzgiTB3jHy2XL','Dw5RBM93BG','lI4VlI4VDxrPBhmVBg9Nz2vY','CxvPDa','BxmPoIa','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticG6msWGoJiSidOZlca6ncWGoJuSicDYDw5UAw5NjYWGoJySidO3lca6ocWGu1LtveLnrvnuqu1qlca6osWGu1LtveLnrvnuqu1qkq','AMrmsMS','ywn0AxzL','AM9ICW','Du1fzvi','BwfW','y3DK','C2v0qwXSsM9IC09MzMXPBMu','BgLZDfj1BM5PBMC','y3jVBL9YzwDPC3rLCMvK','EwvKyvi','CMvZDgzVCMDLlMPVyNmUy29TCgXLDgvK','icHPzdOG','vxD5qu8','z2v0sM9ICW','BMfTzq','mteWohDHyKnZAG','Cgf5Bg9Hza','icHHDhrLBxb0ia','y29TCg9Uzw50rw5NAw5L','AxnqyxvZzwq','Aw5PDgLHBerLBgf5','CMvHzgrPCLn5BMm','rMfPBgvKihrVihvWzgf0zsbQB2iGAgLZDg9YEsaOy29TCgXLDgvKktOG','iokaLca','sM9IigrPC3bHDgnOzwqGkgrLBgf5zwqG','y2f0y2G','qNzmtvO','A1ftBuK','sfLmA20','Evfowwu','yxr0zw1WDhnnywrL','quncuLK','lI9QB2iTDMfSAwrHDg9Y','DgrLrM4','AM9Ix21HBMfNzxjFCMvHzhK','zxjYB3i','DxbZzxj0sM9Iu2nOzwr1BgvY','ihjLBw92zwqGkhDHCYa','C3rHBgXLza','sM9IihbYB2DYzxnZoIa','sM9IigHHBMrSzxiGy29TCgXLDgvKoIa','B25bzNrLCKPVyKzHAwXLzcbOyw5KBgvYigvYCM9YicHUB24TyMXVy2TPBMCP','ywz0zxjFAM9Ix2nVBxbSzxrLx2HVB2TFzxjYB3i','ktOG','rMfPBgvKihrVigvUC3vYzsbQB2iGDgfIBgvZoIa','zgjFBxLZCwXFDw5HDMfPBgfIBgu','CwvctvC','zxHPC3rZu3LUyW','B25bzNrLCKPVyKzHAwXLza','AM9Ix2nVBMzPz19WyxjZzv9LCNjVCG','z2v0s2fMA2ftzxj2AwnL','AM9Ix2nVBxbSzxrLza','vezQu1O','ywXYzwfKEsbLEgLZDhm','wun5vxK','CgfNzq','z2v0','wffAvfq','tezRwuS','zw52','DxbKyxrLsM9IsgLZDg9YEuzHAwXLza','qKHVBeO','rMz0s2q','C2H1DgrVD24','uKvesvnFse9tva','y2XVC2u','zhvWBgLJyxrL','CMv0CNK','zvPdwwW','B25czwzVCMvkB2jfEgvJDxrL','rejFvfLqrsaN','jYb0AwrHAYbKAwr1A3vUzYb1BNr1AYbQB2iGBw9UAxrVCMLUzYb0ywjSzxm','C3bSAxrtCwXtDgf0zw1LBNrZ','rMfPBgvKihrVigLUC2vYDcbQB2iGAgLZDg9YEtOG','CMvHzezPBgvtEw5J','wfPRww8','zxjYB3jZ','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ie5pvYGPlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GpYWGChjVz3jLC3mGpsaXmdaSihjLC3vSDf9ZDw1Tyxj5id0GpYbxsevsrsbPzca9id8','CgLUzW','CMv0DxjUDMfSDwu','ndiWnZHjtePOCxa','nJe4mJGWzLjHALnw','A2v5CW','zxHLy3v0zvrYyw5Zywn0Aw9U','qwvSDM0','CenWq0G','AM9Ix2vUC3vYzv90ywjSzxnFD2fYBG','B25kB2jqCM9NCMvZCW','vMHLC28','B3nQy1u','zMLSDgvY','mte4mdiZmgTlu29WyW','DgLTzxn0yw1W','EKfMwNq','yMfJA29MzG','D29YA2LUz0rPCG','sgfUzgXLCIb0AwrHAYbKAxrLBxvRyw4GDw50DwSGAM9IoIa','C3vIC3rYAw5N','Aw5MBW','id0G','C3bSAxq','CMvNAxn0zxjkB2i','x3nVDxjJzuzPBgu','Cg9ZDgDYzxnXBc5ZCwW','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsaKmsWGBgfZDf9KDxjHDgLVBL9TCYa9icqYlaOGicaGicaGicaGia','y2fUy2vSsM9I','z2v0q2fJAgvnyw5Hz2vY','y3jLyxrLqNvSBe1rq29UBMvJDgLVBG','BwLNzuS','D29YA2vYCW','Eg5UyMO','ChvIBgLZAev2zw50','Aw5PDgLHBgL6zq','Cg9ZDgDYzxnXBa','CMy6','DgLTzxn0yw1WCW','rNDdtwG','qNvSBe1rifjLzgLZignVBM5Ly3rPB24GzxjYB3i6ia','DxbKyxrLuhjVz3jLC3m','wxzeBe8','zLburNu','AM9Ix2rPC3bHDgnOzwrFzgvSyxLLza','AM9Ix3DVCMTLCNnFy3jLyxrLza','zgf0yq','AM9Ix2HPC3rVCNLFzMfPBgvKx2vYCM9Y','Bg9HzePVyKnVBMzPz3m','z2v0sM9Iq291BNrZ','DxbKyxrLuMvNAxn0CNLdB3vUDgvYCW','s0vttxK','yxbP','AM9Iq29UzMLNCW'];a0_0x5e0b=function(){return _0x33faf2;};return a0_0x5e0b();}let componentEngine=null;function a0_0x592e(_0x2ce35e,_0x3b1718){_0x2ce35e=_0x2ce35e-0x1e7;const _0x5e0bfb=a0_0x5e0b();let _0x592e31=_0x5e0bfb[_0x2ce35e];if(a0_0x592e['cIWufA']===undefined){var _0x4184f1=function(_0x4ea78e){const _0x1cb60b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2e7a07='',_0x3bd0bb='';for(let _0x5dc0ba=0x0,_0x1215db,_0x4f84e1,_0xe97f22=0x0;_0x4f84e1=_0x4ea78e['charAt'](_0xe97f22++);~_0x4f84e1&&(_0x1215db=_0x5dc0ba%0x4?_0x1215db*0x40+_0x4f84e1:_0x4f84e1,_0x5dc0ba++%0x4)?_0x2e7a07+=String['fromCharCode'](0xff&_0x1215db>>(-0x2*_0x5dc0ba&0x6)):0x0){_0x4f84e1=_0x1cb60b['indexOf'](_0x4f84e1);}for(let _0x54124b=0x0,_0x1cca58=_0x2e7a07['length'];_0x54124b<_0x1cca58;_0x54124b++){_0x3bd0bb+='%'+('00'+_0x2e7a07['charCodeAt'](_0x54124b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3bd0bb);};a0_0x592e['moBIGC']=_0x4184f1,a0_0x592e['JdLxTa']={},a0_0x592e['cIWufA']=!![];}const _0x46e40e=_0x5e0bfb[0x0],_0x39c5c3=_0x2ce35e+_0x46e40e,_0x4c5d52=a0_0x592e['JdLxTa'][_0x39c5c3];return!_0x4c5d52?(_0x592e31=a0_0x592e['moBIGC'](_0x592e31),a0_0x592e['JdLxTa'][_0x39c5c3]=_0x592e31):_0x592e31=_0x4c5d52,_0x592e31;}function getComponentEngine(){const _0x29272d=a0_0x41c21b,_0x4e99ce={'pCBbz':function(_0xc75ac2,_0x1ab6ae){return _0xc75ac2(_0x1ab6ae);},'XZkYo':'../../utils/component-engine'};if(!componentEngine)try{const _0x4fc837=_0x4e99ce['pCBbz'](require,_0x4e99ce[_0x29272d(0x271)]);componentEngine=_0x4fc837[_0x29272d(0x238)]||_0x4fc837;}catch(_0x4c3e50){}return componentEngine;}class JobManager{constructor(){const _0x30b2e2=a0_0x41c21b,_0x39f89d={'vfLqf':'2|0|7|1|6|4|5|3'},_0x538c85=_0x39f89d[_0x30b2e2(0x2c9)][_0x30b2e2(0x28a)]('|');let _0xecd940=0x0;while(!![]){switch(_0x538c85[_0xecd940++]){case'0':this[_0x30b2e2(0x293)]={};continue;case'1':this['handlers']={};continue;case'2':this['queues']={};continue;case'3':this['activeHistoryIds']=new Map();continue;case'4':this[_0x30b2e2(0x301)]=![];continue;case'5':this['workingDir']=process[_0x30b2e2(0x22b)]();continue;case'6':this['connections']=[];continue;case'7':this['jobConfigs']={};continue;}break;}}['createBullMQConnection'](){const _0x5cccff=a0_0x41c21b,_0x14f79b={'yVPUm':_0x5cccff(0x2f9),'AIptC':_0x5cccff(0x1e7),'zWYDA':_0x5cccff(0x249)},_0x5c7a76=new Redis({'host':process[_0x5cccff(0x261)][_0x5cccff(0x266)]||_0x14f79b['AIptC'],'port':parseInt(process[_0x5cccff(0x261)]['REDIS_PORT'],0xa)||0x18ec,'password':process[_0x5cccff(0x261)][_0x5cccff(0x2cf)]||undefined,'db':parseInt(process['env']['REDIS_DB'],0xa)||0x0,'maxRetriesPerRequest':null,'retryStrategy'(_0x55b0a7){const _0x57569b=_0x5cccff,_0x2d8325=Math[_0x57569b(0x203)](_0x55b0a7*0x32,0x7d0);return _0x2d8325;}});return _0x5c7a76['on'](_0x14f79b['zWYDA'],_0x251a3f=>{const _0x5c0e7b=_0x5cccff;logger['error']({'event':_0x14f79b['yVPUm'],'error':_0x251a3f[_0x5c0e7b(0x211)]},_0x5c0e7b(0x29b)+_0x251a3f[_0x5c0e7b(0x211)]);}),this[_0x5cccff(0x2d7)]['push'](_0x5c7a76),_0x5c7a76;}async[a0_0x41c21b(0x296)](){const _0x4119f3=a0_0x41c21b,_0x3616d1={'BvLMZ':'Job\x20Manager\x20sudah\x20diinisialisasi,\x20skip','yedaR':_0x4119f3(0x312),'osjcU':'job_ensure_tables_error','nuMGl':'job_no_configs','VPfIo':'Tidak\x20ada\x20job\x20config\x20ditemukan\x20di\x20payload/jobs/.\x20Job\x20Manager\x20aktif\x20tanpa\x20cron.','zhhQA':_0x4119f3(0x221),'ZvMxo':function(_0x2bcfbf,_0x3f799a,_0x37239d){return _0x2bcfbf(_0x3f799a,_0x37239d);},'EAkBn':function(_0x5b0ab0,_0x5a17ab){return _0x5b0ab0*_0x5a17ab;},'DqmeW':_0x4119f3(0x2c4),'WAjYq':'low','MpvIT':function(_0x509ec7,_0x23b35f,_0x45bd6e){return _0x509ec7(_0x23b35f,_0x45bd6e);},'XbgTG':function(_0xbbee3c,_0x463ae5,_0x487943){return _0xbbee3c(_0x463ae5,_0x487943);},'ADuAP':'completed','fGLxP':_0x4119f3(0x2d0),'WClhc':_0x4119f3(0x314),'uMccs':'error','mfhXv':'job_register_failed'};if(this['initialized']){logger[_0x4119f3(0x2bc)]({'event':_0x4119f3(0x208)},_0x3616d1[_0x4119f3(0x240)]);return;}logger['info']({'event':'job_manager_init_start'},'Initializing\x20Job\x20Manager...');const _0x238b87=this[_0x4119f3(0x291)]();try{await _0x238b87[_0x4119f3(0x274)](),logger['info']({'event':'job_redis_connected'},_0x3616d1[_0x4119f3(0x22f)]);}catch(_0x2cb0f2){logger[_0x4119f3(0x249)]({'event':'job_redis_failed','error':_0x2cb0f2[_0x4119f3(0x211)]},_0x4119f3(0x2b6)+_0x2cb0f2[_0x4119f3(0x211)]+_0x4119f3(0x20c));try{await _0x238b87['quit']();}catch(_0x2e7266){}this['connections']=this[_0x4119f3(0x2d7)]['filter'](_0x2f1b92=>_0x2f1b92!==_0x238b87);return;}try{await _0x238b87['quit']();}catch(_0xa420d2){}this[_0x4119f3(0x2d7)]=this['connections'][_0x4119f3(0x280)](_0x259e05=>_0x259e05!==_0x238b87);try{await this[_0x4119f3(0x1f1)]();}catch(_0x3ce189){logger[_0x4119f3(0x2bc)]({'event':_0x3616d1[_0x4119f3(0x27f)],'error':_0x3ce189[_0x4119f3(0x211)]},_0x4119f3(0x252)+_0x3ce189[_0x4119f3(0x211)]+'.\x20DB\x20monitoring\x20disabled.');}const _0x2d5804=this['loadJobConfigs']();_0x2d5804[_0x4119f3(0x30a)]===0x0&&logger[_0x4119f3(0x288)]({'event':_0x3616d1['nuMGl']},_0x3616d1[_0x4119f3(0x1f3)]);const _0x66e655=[];for(const _0x420483 of _0x2d5804){const _0x4ed1d1=jobValidator['validateConfig'](_0x420483,this[_0x4119f3(0x285)]);_0x4ed1d1[_0x4119f3(0x2dc)]?_0x66e655['push'](_0x420483):logger[_0x4119f3(0x249)]({'event':_0x4119f3(0x2d5),'name':_0x420483['name']||_0x3616d1[_0x4119f3(0x331)],'errors':_0x4ed1d1[_0x4119f3(0x272)]},'Job\x20config\x20invalid:\x20'+(_0x420483['name']||_0x4119f3(0x221))+_0x4119f3(0x23d)+_0x4ed1d1[_0x4119f3(0x272)]['join'](';\x20'));}const _0xcf6e01=process['env']['RESTFORGE_PROJECT_NAME']||'default',_0x553fbb=process['env']['JOB_REDIS_PREFIX']||_0x4119f3(0x298)+_0xcf6e01+_0x4119f3(0x30e),_0x10f73c=_0x3616d1['ZvMxo'](parseInt,process[_0x4119f3(0x261)]['JOB_RETENTION_HOURS'],0xa)||0x48,_0x5e79a7=_0x3616d1[_0x4119f3(0x320)](parseInt,process['env'][_0x4119f3(0x2c8)],0xa)||0xa8,_0x459b71={'removeOnComplete':{'age':_0x3616d1[_0x4119f3(0x307)](_0x10f73c,0xe10)},'removeOnFail':{'age':_0x5e79a7*0xe10}},_0x214f76={'high-priority':_0x3616d1[_0x4119f3(0x2f8)],'default':'default','low-priority':_0x3616d1['WAjYq']};for(const [_0x5007b4,_0x218603]of Object['entries'](_0x214f76)){this[_0x4119f3(0x21e)][_0x5007b4]=new Queue(_0x218603,{'connection':this['createBullMQConnection'](),'prefix':_0x553fbb,'defaultJobOptions':_0x459b71});}logger[_0x4119f3(0x288)]({'event':'job_queues_created','count':0x3},_0x4119f3(0x2ae));const _0x423831=_0x3616d1[_0x4119f3(0x320)](parseInt,process['env']['JOB_CONCURRENCY'],0xa)||0x5,_0x2ccffa=_0x3616d1['MpvIT'](parseInt,process['env']['JOB_STALLED_INTERVAL'],0xa)||0x7530,_0x50034c=_0x3616d1['XbgTG'](parseInt,process[_0x4119f3(0x261)]['JOB_MAX_STALLED_COUNT'],0xa)||0x2;for(const [_0x585d0e,_0x409f78]of Object['entries'](_0x214f76)){const _0x27e2a6=new Worker(_0x409f78,async _0x3b340d=>this['processJob'](_0x3b340d),{'connection':this['createBullMQConnection'](),'prefix':_0x553fbb,'concurrency':_0x423831,'stalledInterval':_0x2ccffa,'maxStalledCount':_0x50034c});_0x27e2a6['on'](_0x3616d1[_0x4119f3(0x209)],(_0xaa53a5,_0x206a03)=>this[_0x4119f3(0x32b)](_0xaa53a5,_0x206a03)),_0x27e2a6['on'](_0x3616d1[_0x4119f3(0x2a9)],(_0x452397,_0x2b297d)=>this[_0x4119f3(0x316)](_0x452397,_0x2b297d)),_0x27e2a6['on'](_0x3616d1['WClhc'],(_0x74071f,_0x452e78)=>this[_0x4119f3(0x27d)](_0x74071f,_0x452e78)),_0x27e2a6['on'](_0x4119f3(0x24c),_0x2f1967=>{const _0xfe9dd8=_0x4119f3;logger['warn']({'event':_0xfe9dd8(0x303),'jobId':_0x2f1967},_0xfe9dd8(0x2c1)+_0x2f1967);}),_0x27e2a6['on'](_0x3616d1[_0x4119f3(0x315)],_0x4c5243=>{const _0x4ec387=_0x4119f3;logger['error']({'event':'bullmq_worker_error','queue':_0x585d0e,'error':_0x4c5243['message']},'BullMQ\x20Worker\x20error\x20('+_0x585d0e+_0x4ec387(0x251)+_0x4c5243[_0x4ec387(0x211)]);}),this[_0x4119f3(0x293)][_0x585d0e]=_0x27e2a6;}logger['info']({'event':_0x4119f3(0x2a0),'count':0x3,'concurrency':_0x423831},_0x4119f3(0x31c)+_0x423831+')');let _0x1c8eee=0x0;for(const _0xddf0f0 of _0x66e655){try{await this[_0x4119f3(0x28b)](_0xddf0f0),_0x1c8eee++;}catch(_0x43d9b1){logger['error']({'event':_0x3616d1['mfhXv'],'name':_0xddf0f0['name'],'error':_0x43d9b1[_0x4119f3(0x211)]},_0x4119f3(0x2c5)+_0xddf0f0['name']+'\x20—\x20'+_0x43d9b1['message']);}}this[_0x4119f3(0x301)]=!![];const _0x51da9b=this[_0x4119f3(0x2d7)][_0x4119f3(0x30a)];logger['info']({'event':_0x4119f3(0x248),'registeredJobs':_0x1c8eee,'totalConfigs':_0x66e655[_0x4119f3(0x30a)],'redisConnections':_0x51da9b},_0x4119f3(0x2b5)+_0x1c8eee+'\x20job(s)\x20registered,\x20'+_0x51da9b+'\x20Redis\x20connections');}async[a0_0x41c21b(0x265)](){const _0x3f3f86=a0_0x41c21b,_0x5d8449={'WYuKX':function(_0x152dd0,_0x2c8ccc,_0x56b9d8){return _0x152dd0(_0x2c8ccc,_0x56b9d8);},'iaMuT':_0x3f3f86(0x207),'ACBRY':function(_0x22175a,_0x518119){return _0x22175a<_0x518119;},'ZvQKu':function(_0x2c69a3,_0x528c3a){return _0x2c69a3===_0x528c3a;},'VqtvN':'Job\x20Manager\x20shutdown\x20complete'};if(!this[_0x3f3f86(0x301)])return;const _0x2f9b38=_0x5d8449[_0x3f3f86(0x1eb)](parseInt,process['env'][_0x3f3f86(0x330)],0xa)||0x2710;logger[_0x3f3f86(0x288)]({'event':_0x5d8449[_0x3f3f86(0x2b2)],'timeoutMs':_0x2f9b38},_0x3f3f86(0x212)+_0x2f9b38+_0x3f3f86(0x338));const _0x4dc683=Object['values'](this['workers'])[_0x3f3f86(0x22a)](async _0xfbdd67=>{const _0x46d330=_0x3f3f86;try{await _0xfbdd67[_0x46d330(0x311)]();}catch(_0x59838d){}});await Promise['all'](_0x4dc683);const _0x493828=Date[_0x3f3f86(0x310)]();while(_0x5d8449[_0x3f3f86(0x245)](Date[_0x3f3f86(0x310)]()-_0x493828,_0x2f9b38)){let _0x2ae597=0x0;for(const _0x3e8e02 of Object['values'](this['queues'])){try{const _0x3f8a02=await _0x3e8e02['getJobCounts'](_0x3f3f86(0x227));_0x2ae597+=_0x3f8a02['active']||0x0;}catch(_0x371aed){}}if(_0x5d8449['ZvQKu'](_0x2ae597,0x0))break;await new Promise(_0x3868e3=>setTimeout(_0x3868e3,0x1f4));}const _0xe4726=Object['values'](this['workers'])[_0x3f3f86(0x22a)](async _0x42607a=>{const _0x47c9dc=_0x3f3f86;try{await _0x42607a[_0x47c9dc(0x267)]();}catch(_0x106eb2){}});await Promise[_0x3f3f86(0x323)](_0xe4726);const _0x29effa=Object[_0x3f3f86(0x31a)](this['queues'])[_0x3f3f86(0x22a)](async _0x39d165=>{try{await _0x39d165['close']();}catch(_0x24d936){}});await Promise['all'](_0x29effa);for(const _0x57b3f6 of this[_0x3f3f86(0x2d7)]){try{await _0x57b3f6[_0x3f3f86(0x223)]();}catch(_0x38aa38){}}this['queues']={},this['workers']={},this['connections']=[],await this[_0x3f3f86(0x22c)](),this[_0x3f3f86(0x1ed)]['clear'](),this['initialized']=![],logger['info']({'event':'job_manager_shutdown_complete'},_0x5d8449['VqtvN']);}[a0_0x41c21b(0x2a3)](){const _0x40c171=a0_0x41c21b,_0x31de32={'TFjSZ':'job_config_dir_missing','VOBgM':_0x40c171(0x257),'oToxk':'job_configs_loaded'},_0x55552c=path[_0x40c171(0x2fd)](this[_0x40c171(0x285)],_0x40c171(0x236),'jobs');if(!fs['existsSync'](_0x55552c))return logger[_0x40c171(0x288)]({'event':_0x31de32[_0x40c171(0x25a)],'path':_0x55552c},_0x40c171(0x329)),[];const _0x2abbde=fs[_0x40c171(0x23b)](_0x55552c)[_0x40c171(0x280)](_0x28fc5b=>_0x28fc5b['endsWith']('.json')),_0x33046d=[];for(const _0x4f709c of _0x2abbde){const _0x3ef018=path[_0x40c171(0x2fd)](_0x55552c,_0x4f709c);try{const _0x363f0e=fs['readFileSync'](_0x3ef018,_0x40c171(0x204)),_0x263cdb=JSON[_0x40c171(0x309)](_0x363f0e);_0x263cdb['_sourceFile']=_0x4f709c,_0x33046d['push'](_0x263cdb);}catch(_0x3069ea){logger['error']({'event':_0x31de32['VOBgM'],'file':_0x4f709c,'error':_0x3069ea[_0x40c171(0x211)]},_0x40c171(0x324)+_0x4f709c+_0x40c171(0x23d)+_0x3069ea['message']);}}return logger['info']({'event':_0x31de32[_0x40c171(0x1ef)],'count':_0x33046d['length']},'Loaded\x20'+_0x33046d['length']+_0x40c171(0x2d2)),_0x33046d;}async['registerJob'](_0x29eed8){const _0x11256f=a0_0x41c21b,_0x36cf43={'sIfqt':function(_0x46ef8b,_0x4f7424){return _0x46ef8b!==_0x4f7424;},'XQZTT':'default','FfTtC':'cron','ihVMA':_0x11256f(0x1ee),'WdNhP':function(_0x5910df,_0x4c043b){return _0x5910df===_0x4c043b;},'YBPVA':function(_0x111724,_0x592402){return _0x111724===_0x592402;},'yBJrX':'online'},_0x2435ae=path[_0x11256f(0x2fd)](this[_0x11256f(0x285)],'src',_0x11256f(0x228),_0x29eed8['handler']+'.js');this[_0x11256f(0x2db)][_0x29eed8['name']]=require(_0x2435ae),this['jobConfigs'][_0x29eed8[_0x11256f(0x234)]]=_0x29eed8;if(_0x29eed8['type']==='cron'&&_0x36cf43['sIfqt'](_0x29eed8['enabled'],![])){const _0x399130=this['queues'][_0x29eed8['queue']||_0x36cf43[_0x11256f(0x25f)]];await _0x399130[_0x11256f(0x24a)](_0x29eed8[_0x11256f(0x234)],{'pattern':_0x29eed8['schedule'],'tz':_0x29eed8['timezone']||undefined},{'name':_0x29eed8[_0x11256f(0x234)],'data':{'handler':_0x29eed8['handler'],'triggeredBy':_0x36cf43[_0x11256f(0x319)],'metadata':_0x29eed8['metadata']||{}},'opts':{'attempts':_0x29eed8['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x29eed8[_0x11256f(0x269)]?.[_0x11256f(0x284)]||_0x36cf43[_0x11256f(0x1fd)],'delay':_0x29eed8['retry']?.[_0x11256f(0x23a)]||0x1388},'timeout':_0x29eed8['timeout']||0x7530}}),logger[_0x11256f(0x288)]({'event':_0x11256f(0x22e),'name':_0x29eed8['name'],'schedule':_0x29eed8['schedule'],'queue':_0x29eed8['queue']||_0x36cf43[_0x11256f(0x25f)]},_0x11256f(0x2d6)+_0x29eed8['name']+'\x20['+_0x29eed8[_0x11256f(0x31f)]+']');}const _0x9ec54a=_0x36cf43['WdNhP'](_0x29eed8['type'],_0x36cf43[_0x11256f(0x319)])&&_0x36cf43[_0x11256f(0x2d9)](_0x29eed8['enabled'],![])?'online':_0x11256f(0x2ef);let _0x177ab9=null;_0x36cf43['YBPVA'](_0x9ec54a,_0x36cf43['yBJrX'])&&(_0x177ab9=await this['getNextRunFromBullMQ'](_0x29eed8['name'])),await this['upsertJobRegistry'](_0x29eed8,_0x9ec54a,_0x177ab9);}async[a0_0x41c21b(0x2e8)](_0x49e29c){const _0xd4116a=a0_0x41c21b,_0x3be1f1={'FftKd':'job_history_insert_bg_error','mfpMv':function(_0x63e02c,_0x481ed4){return _0x63e02c+_0x481ed4;},'vxKmO':function(_0x5e6608,_0x21a1ab){return _0x5e6608===_0x21a1ab;},'Aelvm':_0xd4116a(0x2dd),'CXvev':function(_0x53aea1,_0x44b309){return _0x53aea1===_0x44b309;},'BHolJ':_0xd4116a(0x2a7),'fGdxH':_0xd4116a(0x30f),'YCyUy':'cron','yQNYe':_0xd4116a(0x20f),'VXoPR':function(_0x2fc5e6,_0x270495){return _0x2fc5e6+_0x270495;},'tdeFn':function(_0x30fd4e){return _0x30fd4e();},'zAfZt':function(_0xb9d29e,_0x446bf3){return _0xb9d29e===_0x446bf3;},'ACMXS':_0xd4116a(0x2c6),'eOhuk':function(_0x5fd163,_0x26554e){return _0x5fd163(_0x26554e);},'RbjMd':'job_handler_done'},_0x33de58=this[_0xd4116a(0x2a8)][_0x49e29c[_0xd4116a(0x234)]],_0x1b2399=this['handlers'][_0x49e29c[_0xd4116a(0x234)]];if(!_0x1b2399)throw new Error(_0xd4116a(0x286)+_0x49e29c['name']);const _0x1242fe=logger['child']({'jobId':_0x49e29c['id'],'jobName':_0x49e29c[_0xd4116a(0x234)]});_0x1242fe['info']({'event':'job_started','attempt':_0x49e29c['attemptsMade']+0x1,'triggeredBy':_0x49e29c[_0xd4116a(0x2a1)]?.[_0xd4116a(0x1fb)]||_0xd4116a(0x221)},'Job\x20started:\x20'+_0x49e29c[_0xd4116a(0x234)]+_0xd4116a(0x237)+_0x3be1f1[_0xd4116a(0x20d)](_0x49e29c[_0xd4116a(0x244)],0x1)+')');const _0x288139=uuidv7(),_0x57297e=_0x49e29c['data']?.['triggeredBy']||'unknown',_0x3586a9=this['insertJobHistory']({'id':_0x288139,'jobName':_0x49e29c[_0xd4116a(0x234)],'bullmqJobId':_0x49e29c['id'],'triggerType':_0x3be1f1[_0xd4116a(0x1e9)](_0x57297e,_0x3be1f1[_0xd4116a(0x27a)])?'delayed':_0x3be1f1[_0xd4116a(0x32d)](_0x57297e,_0x3be1f1[_0xd4116a(0x263)])?_0x3be1f1[_0xd4116a(0x2d3)]:_0x3be1f1['YCyUy'],'triggeredBy':_0x57297e===_0x3be1f1[_0xd4116a(0x25c)]?'system':_0x57297e,'queue':_0x33de58?.['queue']||_0x3be1f1[_0xd4116a(0x243)],'attempt':_0x3be1f1['VXoPR'](_0x49e29c['attemptsMade'],0x1),'configFile':_0x33de58?.['_sourceFile']||null})['catch'](_0x377f7a=>{const _0x37d46e=_0xd4116a;_0x1242fe['warn']({'event':_0x3be1f1[_0x37d46e(0x264)],'error':_0x377f7a['message']},'Background\x20insert\x20job\x20history\x20failed:\x20'+_0x377f7a[_0x37d46e(0x211)]);});this[_0xd4116a(0x1ed)]['set'](_0x49e29c['id'],{'historyId':_0x288139,'insertPromise':_0x3586a9});const _0x11f667=this['buildContext'](_0x49e29c,_0x33de58,_0x1242fe),_0x379252=_0x3be1f1[_0xd4116a(0x247)](getComponentEngine);if(_0x379252&&_0x3be1f1[_0xd4116a(0x283)](typeof _0x379252['executeEventHandlers'],_0x3be1f1[_0xd4116a(0x2cd)])){const _0x250520=await _0x379252['executeEventHandlers'](_0xd4116a(0x26b),_0x11f667,!![]);if(!_0x250520[_0xd4116a(0x202)])throw new Error(_0xd4116a(0x1fc)+_0x250520['error']);}const _0x498da9=await _0x3be1f1['eOhuk'](_0x1b2399,_0x11f667);return _0x1242fe[_0xd4116a(0x288)]({'event':_0x3be1f1[_0xd4116a(0x30b)],'result':_0x498da9},_0xd4116a(0x24e)+_0x49e29c[_0xd4116a(0x234)]),_0x498da9;}['buildContext'](_0x50d57c,_0x5641d3,_0x4f3f6a){const _0x231fcf=a0_0x41c21b,_0x971eca={'LGdIn':_0x231fcf(0x219),'CGotw':'job-scheduler'};return{'jobId':_0x50d57c['id'],'jobName':_0x50d57c[_0x231fcf(0x234)],'attempt':_0x50d57c[_0x231fcf(0x244)]+0x1,'maxAttempts':_0x5641d3?.['retry']?.[_0x231fcf(0x317)]||0x3,'payload':_0x50d57c['data']||{},'config':_0x5641d3||{},'db':this['getDbUtils'](),'redis':this['getRedisClient'](),'logger':_0x4f3f6a,'kafka':this['getKafkaService'](),'cache':this[_0x231fcf(0x290)](),'updateProgress':async _0x6124bf=>{const _0x57c1c8=_0x231fcf;await _0x50d57c[_0x57c1c8(0x29c)](_0x6124bf);},'emit':async(_0x16a167,_0x296303)=>{const _0x56bf76=_0x231fcf,_0x1f359e=this[_0x56bf76(0x258)]();_0x1f359e&&await _0x1f359e[_0x56bf76(0x295)](_0x16a167,_0x971eca[_0x56bf76(0x2e6)],null,_0x296303,{'module':_0x971eca[_0x56bf76(0x1ea)],'endpoint':_0x50d57c[_0x56bf76(0x234)]});},'job':_0x50d57c};}['getDbType'](){const _0x5b1019=a0_0x41c21b,_0x337297={'IzOdm':_0x5b1019(0x297)};return(process[_0x5b1019(0x261)][_0x5b1019(0x1f6)]||_0x337297[_0x5b1019(0x332)])[_0x5b1019(0x1f2)]();}async[a0_0x41c21b(0x1f1)](){const _0x574135=a0_0x41c21b,_0x10d63f={'KtufJ':'Database\x20tidak\x20tersedia,\x20skip\x20auto-create\x20job\x20tables','zyAqE':_0x574135(0x28d),'uMcnd':'oracle.sql','dQYih':_0x574135(0x2af),'mtBVm':'utf8','jHfwj':_0x574135(0x25b)},_0x4abc47=this['getDbUtils']();if(!_0x4abc47){logger['warn']({'event':_0x574135(0x1ec)},_0x10d63f['KtufJ']);return;}const _0x5674fc=this['getDbType'](),_0x3a9e1e={'postgresql':_0x10d63f['zyAqE'],'oracle':_0x10d63f['uMcnd'],'mysql':'mysql.sql'},_0x4adca7=_0x3a9e1e[_0x5674fc];if(!_0x4adca7){logger[_0x574135(0x2bc)]({'event':'job_db_type_unsupported','dbType':_0x5674fc},_0x574135(0x26c)+_0x5674fc+_0x574135(0x26d));return;}const _0x3c9e2d=path['join'](__dirname,_0x10d63f['dQYih'],_0x4adca7);if(!fs[_0x574135(0x255)](_0x3c9e2d)){logger[_0x574135(0x2bc)]({'event':'job_sql_not_found','path':_0x3c9e2d},'SQL\x20script\x20tidak\x20ditemukan:\x20'+_0x3c9e2d);return;}const _0x62a33c=fs[_0x574135(0x270)](_0x3c9e2d,_0x10d63f['mtBVm']),_0x5c1656=this['splitSqlStatements'](_0x62a33c,_0x5674fc);let _0x2c6b97=0x0;for(const _0x428cca of _0x5c1656){try{await _0x4abc47[_0x574135(0x2df)](_0x428cca),_0x2c6b97++;}catch(_0x3a6989){const _0x26c703=(_0x3a6989['message']||'')[_0x574135(0x1f2)](),_0x27c6d3=_0x26c703['includes'](_0x10d63f[_0x574135(0x2ab)])||_0x26c703[_0x574135(0x2ce)]('ora-00955')||_0x26c703[_0x574135(0x2ce)](_0x574135(0x268));!_0x27c6d3&&logger[_0x574135(0x2bc)]({'event':_0x574135(0x27c),'error':_0x3a6989['message']},'Job\x20ensureTables\x20warning:\x20'+_0x3a6989[_0x574135(0x211)]);}}logger[_0x574135(0x288)]({'event':'job_tables_ensured','dbType':_0x5674fc,'executed':_0x2c6b97},_0x574135(0x2ad)+_0x5674fc+')');}[a0_0x41c21b(0x26e)](_0x5b2d64,_0x2c0f1e){const _0x4ce0d6=a0_0x41c21b,_0x1bd232={'CCCZY':function(_0x5ed460,_0x20e6ec){return _0x5ed460===_0x20e6ec;},'yijPP':'oracle'};let _0x1239ad;return _0x1bd232[_0x4ce0d6(0x300)](_0x2c0f1e,_0x1bd232['yijPP'])?_0x1239ad=_0x5b2d64[_0x4ce0d6(0x28a)](/\n\/\s*(?:\n|$)/):_0x1239ad=_0x5b2d64[_0x4ce0d6(0x28a)](/;\s*(?:\n|$)/),_0x1239ad['map'](_0x5772a4=>_0x5772a4[_0x4ce0d6(0x322)]())[_0x4ce0d6(0x280)](_0x3dea76=>{const _0x39db48=_0x4ce0d6;if(_0x3dea76['length']===0x0)return![];const _0x274624=_0x3dea76[_0x39db48(0x28a)]('\x0a')[_0x39db48(0x280)](_0x232d64=>!_0x232d64[_0x39db48(0x322)]()['startsWith']('--')&&_0x232d64[_0x39db48(0x322)]()[_0x39db48(0x30a)]>0x0);return _0x274624[_0x39db48(0x30a)]>0x0;});}async['upsertJobRegistry'](_0x265ca4,_0x365bfb='online',_0x1608f6=null){const _0x63c89a=a0_0x41c21b,_0x30165a={'UAQnM':_0x63c89a(0x1ee),'exTSC':function(_0x12eca6,_0x33836a){return _0x12eca6===_0x33836a;},'ByASE':_0x63c89a(0x2e4)},_0x1f556a=this['getDbUtils']();if(!_0x1f556a)return;const _0x50678f=this['getDbType'](),_0x9d25ad=[_0x265ca4[_0x63c89a(0x234)],_0x265ca4['description']||_0x265ca4[_0x63c89a(0x234)],_0x265ca4['type']||'cron',_0x265ca4[_0x63c89a(0x31f)]||null,_0x265ca4['queue']||'default',_0x265ca4['handler'],_0x265ca4[_0x63c89a(0x28c)]||'',_0x265ca4[_0x63c89a(0x200)]||0x7530,_0x265ca4[_0x63c89a(0x269)]?.[_0x63c89a(0x317)]||0x3,_0x265ca4[_0x63c89a(0x269)]?.['backoff']||_0x30165a['UAQnM'],_0x365bfb,_0x1608f6];try{if(_0x30165a[_0x63c89a(0x1f5)](_0x50678f,'oracle'))await _0x1f556a['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)',_0x9d25ad);else _0x50678f===_0x30165a[_0x63c89a(0x2be)]?await _0x1f556a[_0x63c89a(0x2df)]('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)',_0x9d25ad):await _0x1f556a[_0x63c89a(0x2df)]('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()',_0x9d25ad);}catch(_0x5722b8){logger['warn']({'event':'job_registry_upsert_error','name':_0x265ca4[_0x63c89a(0x234)],'error':_0x5722b8[_0x63c89a(0x211)]},'Failed\x20to\x20upsert\x20job\x20registry:\x20'+_0x265ca4['name']+'\x20—\x20'+_0x5722b8[_0x63c89a(0x211)]);}}async['insertJobHistory'](_0x1abda0){const _0x4670a2=a0_0x41c21b,_0x40604f={'UHOps':_0x4670a2(0x327),'nrLzM':_0x4670a2(0x20f),'qoIav':function(_0x379cad,_0x3cdbce){return _0x379cad===_0x3cdbce;},'Isbgf':'oracle','LMGFt':_0x4670a2(0x2e4),'itlDn':'running'},_0x52a5aa=this['getDbUtils']();if(!_0x52a5aa)return;const _0x4a70c4=this[_0x4670a2(0x2f1)](),_0xd81020=[_0x1abda0['id'],_0x1abda0[_0x4670a2(0x2da)],_0x1abda0[_0x4670a2(0x2d8)]||null,_0x1abda0['triggerType']||_0x4670a2(0x21f),_0x1abda0['triggeredBy']||_0x40604f[_0x4670a2(0x1fa)],_0x1abda0['queue']||_0x40604f['nrLzM'],_0x1abda0['attempt']||0x1,_0x1abda0['configFile']||null,process[_0x4670a2(0x216)]];try{if(_0x40604f[_0x4670a2(0x2e0)](_0x4a70c4,_0x40604f[_0x4670a2(0x32e)]))await _0x52a5aa[_0x4670a2(0x2df)](_0x4670a2(0x225),_0xd81020);else _0x40604f[_0x4670a2(0x2e0)](_0x4a70c4,_0x40604f[_0x4670a2(0x2bd)])?await _0x52a5aa['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(?,\x20?,\x20?,\x20?,\x20?,\x20\x27running\x27,\x20?,\x20?,\x20?,\x20NOW(),\x20?,\x20NOW())',_0xd81020):await _0x52a5aa[_0x4670a2(0x2df)]('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())',_0xd81020);await this['updateRegistryStatus'](_0x1abda0['jobName'],_0x40604f['itlDn']);}catch(_0x25b039){logger['warn']({'event':'job_history_insert_error','jobName':_0x1abda0['jobName'],'error':_0x25b039['message']},_0x4670a2(0x26f)+_0x25b039['message']);}}async[a0_0x41c21b(0x1fe)](_0x3ccc9d,_0x369375,_0x1f9f7c){const _0x4279d2=a0_0x41c21b,_0x488558={'jtOjC':function(_0x391c4b,_0x387869){return _0x391c4b===_0x387869;},'IGAFV':function(_0x2cf6d4,_0x307932){return _0x2cf6d4===_0x307932;},'PMozP':'job_history_complete_error'},_0xc63511=this['getDbUtils']();if(!_0xc63511)return;const _0x3ed161=this[_0x4279d2(0x2f1)](),_0x5badfe=_0x1f9f7c?String(_0x1f9f7c)['substring'](0x0,0x1f4):null;try{if(_0x488558[_0x4279d2(0x20a)](_0x3ed161,_0x4279d2(0x201)))await _0xc63511[_0x4279d2(0x2df)]('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',[_0x369375,_0x5badfe,_0x3ccc9d]);else _0x488558['IGAFV'](_0x3ed161,_0x4279d2(0x2e4))?await _0xc63511[_0x4279d2(0x2df)](_0x4279d2(0x273),[_0x369375,_0x5badfe,_0x3ccc9d]):await _0xc63511['executeQuery'](_0x4279d2(0x2b0),[_0x369375,_0x5badfe,_0x3ccc9d]);}catch(_0x41a398){logger[_0x4279d2(0x2bc)]({'event':_0x488558[_0x4279d2(0x31e)],'historyId':_0x3ccc9d,'error':_0x41a398[_0x4279d2(0x211)]},_0x4279d2(0x23c)+_0x41a398[_0x4279d2(0x211)]);}}async[a0_0x41c21b(0x262)](_0x448935,_0x30cec6,_0x422a76,_0x4eeda9,_0x284a45){const _0x1ba06b=a0_0x41c21b,_0x425098={'VYjIP':function(_0x193020,_0x493ef4){return _0x193020===_0x493ef4;},'LFgUh':function(_0x1ef4b2,_0xfd8868){return _0x1ef4b2===_0xfd8868;},'owGzn':function(_0x3ae9a0,_0x30384e){return _0x3ae9a0||_0x30384e;}},_0x50ed9f=this[_0x1ba06b(0x318)]();if(!_0x50ed9f)return;const _0x550811=this[_0x1ba06b(0x2f1)](),_0x12ef97=_0x4eeda9?String(_0x4eeda9)['substring'](0x0,0x3e8):null,_0x11aa11=_0x284a45?String(_0x284a45)[_0x1ba06b(0x287)](0x0,0xfa0):null;try{if(_0x425098[_0x1ba06b(0x2e9)](_0x550811,'oracle'))await _0x50ed9f[_0x1ba06b(0x2df)]('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',[_0x30cec6,_0x422a76||0x0,_0x12ef97,_0x11aa11,_0x448935]);else _0x425098[_0x1ba06b(0x21d)](_0x550811,_0x1ba06b(0x2e4))?await _0x50ed9f['executeQuery'](_0x1ba06b(0x2f0),[_0x30cec6,_0x422a76||0x0,_0x12ef97,_0x11aa11,_0x448935]):await _0x50ed9f[_0x1ba06b(0x2df)]('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',[_0x30cec6,_0x425098['owGzn'](_0x422a76,0x0),_0x12ef97,_0x11aa11,_0x448935]);}catch(_0x5850b1){logger['warn']({'event':_0x1ba06b(0x2a2),'historyId':_0x448935,'error':_0x5850b1['message']},_0x1ba06b(0x2b7)+_0x5850b1[_0x1ba06b(0x211)]);}}async['updateRegistryStatus'](_0x2d65df,_0x4d82b9){const _0x588ace=a0_0x41c21b,_0x18587e={'GxHeM':_0x588ace(0x2e4)},_0x3fb8cd=this[_0x588ace(0x318)]();if(!_0x3fb8cd)return;const _0x5d7913=this[_0x588ace(0x2f1)]();try{if(_0x5d7913===_0x588ace(0x201))await _0x3fb8cd[_0x588ace(0x2df)](_0x588ace(0x1e8),[_0x4d82b9,_0x2d65df]);else _0x5d7913===_0x18587e[_0x588ace(0x215)]?await _0x3fb8cd[_0x588ace(0x2df)]('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20?,\x20last_run_at\x20=\x20NOW()\x20WHERE\x20job_name\x20=\x20?',[_0x4d82b9,_0x2d65df]):await _0x3fb8cd[_0x588ace(0x2df)](_0x588ace(0x218),[_0x4d82b9,_0x2d65df]);}catch(_0x1d11c0){}}async[a0_0x41c21b(0x2a5)](_0x49b8ab,_0x3e20ea,_0x39e2cf,_0x3f8a74){const _0x116be0=a0_0x41c21b,_0xe39fe5={'HYLkm':function(_0x2d34b3,_0x5845a0){return _0x2d34b3===_0x5845a0;},'KESMy':'success','bBtDu':_0x116be0(0x2ea),'IrWxu':'mysql','RvltY':_0x116be0(0x2c7)},_0x54aa0a=this['getDbUtils']();if(!_0x54aa0a)return;const _0x41795d=this['getDbType'](),_0x4f11f9=_0xe39fe5[_0x116be0(0x242)](_0x3e20ea,_0xe39fe5[_0x116be0(0x2a6)])?'total_success':_0xe39fe5[_0x116be0(0x2ed)];try{if(_0xe39fe5[_0x116be0(0x242)](_0x41795d,'oracle'))await _0x54aa0a['executeQuery'](_0x116be0(0x2e1)+_0x4f11f9+_0x116be0(0x289)+_0x4f11f9+_0x116be0(0x1f9),[_0x3e20ea,_0x39e2cf,_0x3f8a74,_0x49b8ab]);else _0x41795d===_0xe39fe5[_0x116be0(0x2eb)]?await _0x54aa0a['executeQuery'](_0x116be0(0x2cb)+_0x4f11f9+_0x116be0(0x289)+_0x4f11f9+'\x20+\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20next_run_at\x20=\x20?\x20WHERE\x20job_name\x20=\x20?',[_0x3e20ea,_0x39e2cf,_0x3f8a74,_0x49b8ab]):await _0x54aa0a['executeQuery'](_0x116be0(0x28e)+_0x4f11f9+_0x116be0(0x289)+_0x4f11f9+'\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',[_0x3e20ea,_0x39e2cf,_0x3f8a74,_0x49b8ab]);}catch(_0x2042d2){logger['warn']({'event':_0xe39fe5[_0x116be0(0x2de)],'jobName':_0x49b8ab,'error':_0x2042d2['message']},_0x116be0(0x2cc)+_0x2042d2[_0x116be0(0x211)]);}}async['getNextRunFromBullMQ'](_0x5deb5c){const _0x3218dd=a0_0x41c21b,_0x5d9311={'qeBMW':function(_0x4befd6,_0xb0824e){return _0x4befd6===_0xb0824e;},'nHraV':'default','StHaC':_0x3218dd(0x2c6)},_0x4181ee=this['jobConfigs'][_0x5deb5c];if(!_0x4181ee||_0x4181ee['type']!=='cron'||_0x5d9311[_0x3218dd(0x254)](_0x4181ee['enabled'],![]))return null;const _0x2cf846=this['queues'][_0x4181ee[_0x3218dd(0x2f4)]||_0x5d9311['nHraV']];if(!_0x2cf846)return null;try{if(typeof _0x2cf846[_0x3218dd(0x2b9)]===_0x5d9311[_0x3218dd(0x2fb)]){const _0x85ef74=await _0x2cf846['getJobSchedulers'](0x0,0x64),_0x2381f1=_0x85ef74[_0x3218dd(0x2c0)](_0x5b091a=>_0x5b091a['name']===_0x5deb5c);return _0x2381f1?.['next']?new Date(_0x2381f1[_0x3218dd(0x2c2)]):null;}}catch(_0x1bfb52){}return null;}async[a0_0x41c21b(0x22c)](){const _0x553e4b=a0_0x41c21b,_0x41d026={'ZRjGW':_0x553e4b(0x201),'GdIko':_0x553e4b(0x2e2)},_0x4bf8ba=this['getDbUtils']();if(!_0x4bf8ba)return;const _0x34b3d5=this['getDbType']();try{if(_0x34b3d5===_0x41d026['ZRjGW'])await _0x4bf8ba[_0x553e4b(0x2df)](_0x553e4b(0x2f2));else _0x34b3d5===_0x553e4b(0x2e4)?await _0x4bf8ba[_0x553e4b(0x2df)]('UPDATE\x20job_registry\x20SET\x20status\x20=\x20\x27offline\x27,\x20next_run_at\x20=\x20NULL'):await _0x4bf8ba[_0x553e4b(0x2df)]('UPDATE\x20job_registry\x20SET\x20status\x20=\x20\x27offline\x27,\x20next_run_at\x20=\x20NULL,\x20updated_at\x20=\x20NOW()');}catch(_0x3207a3){logger[_0x553e4b(0x2bc)]({'event':_0x41d026['GdIko'],'error':_0x3207a3['message']},'Failed\x20to\x20set\x20jobs\x20offline:\x20'+_0x3207a3[_0x553e4b(0x211)]);}}[a0_0x41c21b(0x318)](){const _0x91498d=a0_0x41c21b,_0x36ae9e={'VDRXJ':function(_0x277953,_0x3ed75f){return _0x277953(_0x3ed75f);},'FBxdu':function(_0x43769f,_0x33cd72){return _0x43769f===_0x33cd72;},'xQgJW':'mysql','JbKYz':function(_0x38c0fa,_0x32b166){return _0x38c0fa(_0x32b166);},'uODXr':_0x91498d(0x328),'eZCYl':'db_pg_unavailable'},_0x5737aa=(process[_0x91498d(0x261)][_0x91498d(0x1f6)]||'postgresql')[_0x91498d(0x1f2)]();if(_0x5737aa===_0x91498d(0x201))try{const _0x8ed86=_0x36ae9e['VDRXJ'](require,_0x91498d(0x220));return{'executeQuery':(_0x29b91f,_0x1c0ffe)=>_0x8ed86['executeQuery'](_0x29b91f,_0x1c0ffe),'executeTransaction':_0x405e68=>_0x8ed86['executeTransaction'](_0x405e68),'getPool':()=>_0x8ed86['getPool']()};}catch(_0x33de46){return logger[_0x91498d(0x2bc)]({'event':_0x91498d(0x21b)},'Oracle\x20DB\x20module\x20not\x20available'),null;}if(_0x36ae9e[_0x91498d(0x2d1)](_0x5737aa,_0x36ae9e['xQgJW']))try{const _0x28fa9a=require(_0x91498d(0x2ff));return{'executeQuery':(_0xc9a72c,_0x21b948)=>_0x28fa9a[_0x91498d(0x2df)](_0xc9a72c,_0x21b948),'executeTransaction':_0x5af4f4=>_0x28fa9a[_0x91498d(0x279)](_0x5af4f4),'getPool':()=>_0x28fa9a['getPool']()};}catch(_0x277b41){return logger['warn']({'event':_0x91498d(0x253)},_0x91498d(0x2b3)),null;}try{const _0x4e7eb5=_0x36ae9e['JbKYz'](require,_0x36ae9e[_0x91498d(0x31d)]);return{'executeQuery':_0x4e7eb5['executeQuery'],'executeTransaction':_0x4e7eb5['executeTransaction'],'getPool':_0x4e7eb5[_0x91498d(0x217)]};}catch(_0x136aa7){return logger[_0x91498d(0x2bc)]({'event':_0x36ae9e[_0x91498d(0x26a)]},'PostgreSQL\x20DB\x20module\x20not\x20available'),null;}}['getRedisClient'](){const _0x54d8b8=a0_0x41c21b;try{const _0x4232c5=require(_0x54d8b8(0x20e));return _0x4232c5['getClient']?_0x4232c5['getClient']():_0x4232c5;}catch(_0x5c7014){return null;}}[a0_0x41c21b(0x258)](){const _0x54ab62=a0_0x41c21b,_0x5aa7ae={'qbhHf':_0x54ab62(0x2bb)};try{if(process[_0x54ab62(0x261)]['KAFKA_ENABLED']===_0x54ab62(0x2b8)){const _0x3983fc=require(_0x5aa7ae[_0x54ab62(0x2fa)]);return _0x3983fc[_0x54ab62(0x305)]?_0x3983fc['getInstance']():_0x3983fc;}}catch(_0x5c0127){}return null;}[a0_0x41c21b(0x290)](){const _0x267f75=a0_0x41c21b,_0x3041aa={'aRERX':function(_0x72fd7e,_0x5c5e17){return _0x72fd7e(_0x5c5e17);},'fPTFu':'../../utils/cache-manager'};try{return _0x3041aa[_0x267f75(0x32f)](require,_0x3041aa[_0x267f75(0x29e)]);}catch(_0x40d3a6){return null;}}async[a0_0x41c21b(0x206)](_0x58bc36,_0x1831ff={}){const _0x1a7fb2=a0_0x41c21b,_0x394487={'kAyTb':_0x1a7fb2(0x2a7)},_0x13210c=this[_0x1a7fb2(0x2a8)][_0x58bc36];if(!_0x13210c)throw new Error(_0x1a7fb2(0x2ee)+_0x58bc36);const _0x3a7a6=this[_0x1a7fb2(0x21e)][_0x13210c[_0x1a7fb2(0x2f4)]||'default'],_0x1fc2d1=await _0x3a7a6['add'](_0x58bc36,{..._0x1831ff,'handler':_0x13210c['handler'],'triggeredBy':_0x394487[_0x1a7fb2(0x2f7)]},{'attempts':_0x13210c['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x13210c[_0x1a7fb2(0x269)]?.[_0x1a7fb2(0x284)]||_0x1a7fb2(0x1ee),'delay':_0x13210c['retry']?.['initialDelay']||0x1388},'timeout':_0x13210c[_0x1a7fb2(0x200)]||0x7530});return logger[_0x1a7fb2(0x288)]({'event':'job_dispatched','jobId':_0x1fc2d1['id'],'name':_0x58bc36,'triggeredBy':_0x394487[_0x1a7fb2(0x2f7)]},_0x1a7fb2(0x2ba)+_0x58bc36+'\x20(id:\x20'+_0x1fc2d1['id']+')'),{'jobId':_0x1fc2d1['id'],'name':_0x58bc36};}async[a0_0x41c21b(0x2f5)](_0x2b80d0,_0x9faad={},_0x18b8ab=0x0){const _0x5f3db6=a0_0x41c21b,_0x12f51f={'yUpQa':'default'},_0xbdaf5c=this['jobConfigs'][_0x2b80d0];if(!_0xbdaf5c)throw new Error(_0x5f3db6(0x2ee)+_0x2b80d0);const _0x5a4725=this['queues'][_0xbdaf5c['queue']||_0x12f51f[_0x5f3db6(0x302)]],_0x406a8d=await _0x5a4725['add'](_0x2b80d0,{..._0x9faad,'handler':_0xbdaf5c[_0x5f3db6(0x20b)],'triggeredBy':_0x5f3db6(0x2dd)},{'delay':_0x18b8ab,'attempts':_0xbdaf5c[_0x5f3db6(0x269)]?.['maxAttempts']||0x3,'backoff':{'type':_0xbdaf5c['retry']?.['backoff']||_0x5f3db6(0x1ee),'delay':_0xbdaf5c[_0x5f3db6(0x269)]?.[_0x5f3db6(0x23a)]||0x1388},'timeout':_0xbdaf5c['timeout']||0x7530});return logger[_0x5f3db6(0x288)]({'event':_0x5f3db6(0x29f),'jobId':_0x406a8d['id'],'name':_0x2b80d0,'delayMs':_0x18b8ab},_0x5f3db6(0x23e)+_0x18b8ab+_0x5f3db6(0x224)+_0x2b80d0+_0x5f3db6(0x231)+_0x406a8d['id']+')'),{'jobId':_0x406a8d['id'],'name':_0x2b80d0};}async['getJobStatus'](_0x49fa8f){const _0x41e4a3=a0_0x41c21b;for(const _0x9ded05 of Object[_0x41e4a3(0x31a)](this['queues'])){const _0x3b424a=await _0x9ded05['getJob'](_0x49fa8f);if(_0x3b424a){const _0x5ee248=await _0x3b424a[_0x41e4a3(0x1f0)]();return{'jobId':_0x3b424a['id'],'name':_0x3b424a[_0x41e4a3(0x234)],'state':_0x5ee248,'progress':_0x3b424a['progress'],'attemptsMade':_0x3b424a[_0x41e4a3(0x244)],'failedReason':_0x3b424a['failedReason'],'returnvalue':_0x3b424a[_0x41e4a3(0x275)],'data':_0x3b424a[_0x41e4a3(0x2a1)],'timestamps':{'created':_0x3b424a[_0x41e4a3(0x282)],'started':_0x3b424a['processedOn'],'completed':_0x3b424a['finishedOn']}};}}return null;}[a0_0x41c21b(0x32a)](){const _0x497326=a0_0x41c21b;return Object[_0x497326(0x31a)](this[_0x497326(0x2a8)])['map'](_0x1cc441=>({'name':_0x1cc441[_0x497326(0x234)],'description':_0x1cc441[_0x497326(0x32c)]||'','type':_0x1cc441['type'],'schedule':_0x1cc441['schedule'],'handler':_0x1cc441[_0x497326(0x20b)],'enabled':_0x1cc441['enabled']!==![],'queue':_0x1cc441['queue']||'default','timeout':_0x1cc441['timeout']||0x7530,'retry':_0x1cc441[_0x497326(0x269)]||{'maxAttempts':0x3,'backoff':'exponential','initialDelay':0x1388},'metadata':_0x1cc441['metadata']||{}}));}async[a0_0x41c21b(0x22d)](){const _0x2e23ec=a0_0x41c21b,_0x264a79=[];for(const [_0x1a100d,_0x3563ab]of Object['entries'](this['queues'])){const _0x430351=await _0x3563ab[_0x2e23ec(0x233)]([_0x2e23ec(0x227)]);for(const _0x5e30fb of _0x430351){_0x264a79[_0x2e23ec(0x325)]({'jobId':_0x5e30fb['id'],'name':_0x5e30fb[_0x2e23ec(0x234)],'queue':_0x1a100d,'progress':_0x5e30fb['progress'],'attemptsMade':_0x5e30fb[_0x2e23ec(0x244)],'startedAt':_0x5e30fb[_0x2e23ec(0x2ca)]});}}return _0x264a79;}async['getHistory'](_0x2331b7={}){const _0x3904f7=a0_0x41c21b,_0x510243={'TpdMg':function(_0x596476,_0x47d2e0,_0x41184e){return _0x596476(_0x47d2e0,_0x41184e);},'UwyAO':function(_0x5ecf53,_0x216992,_0x5dd4af){return _0x5ecf53(_0x216992,_0x5dd4af);},'uMEeR':function(_0xf34aed,_0x52a19b){return _0xf34aed*_0x52a19b;},'jdLJk':function(_0x5295d5,_0x4b0bab){return _0x5295d5-_0x4b0bab;}},_0x198283=_0x510243[_0x3904f7(0x335)](parseInt,_0x2331b7[_0x3904f7(0x25d)],0xa)||0x1,_0x4ba85b=Math['min'](_0x510243[_0x3904f7(0x232)](parseInt,_0x2331b7['limit'],0xa)||0x14,0x64),_0x2bd382=_0x510243[_0x3904f7(0x229)](_0x198283-0x1,_0x4ba85b),_0x3ab7df=_0x510243[_0x3904f7(0x226)](_0x2bd382+_0x4ba85b,0x1),_0xc1d20e=[];for(const [_0x2b212c,_0x379937]of Object[_0x3904f7(0x205)](this['queues'])){const _0x401aae=await _0x379937[_0x3904f7(0x233)]([_0x3904f7(0x337)],_0x2bd382,_0x3ab7df),_0x72774c=await _0x379937['getJobs']([_0x3904f7(0x2d0)],_0x2bd382,_0x3ab7df);for(const _0x31bec1 of[..._0x401aae,..._0x72774c]){const _0x1ca375=await _0x31bec1[_0x3904f7(0x1f0)]();_0xc1d20e[_0x3904f7(0x325)]({'jobId':_0x31bec1['id'],'name':_0x31bec1[_0x3904f7(0x234)],'state':_0x1ca375,'queue':_0x2b212c,'attemptsMade':_0x31bec1['attemptsMade'],'failedReason':_0x31bec1['failedReason'],'returnvalue':_0x31bec1['returnvalue'],'timestamps':{'created':_0x31bec1[_0x3904f7(0x282)],'started':_0x31bec1[_0x3904f7(0x2ca)],'completed':_0x31bec1[_0x3904f7(0x210)]}});}}return _0xc1d20e['sort']((_0x43749c,_0x3a8e12)=>(_0x3a8e12[_0x3904f7(0x299)][_0x3904f7(0x2e5)]||0x0)-(_0x43749c[_0x3904f7(0x299)]['created']||0x0)),{'jobs':_0xc1d20e['slice'](0x0,_0x4ba85b),'total':_0xc1d20e['length'],'page':_0x198283,'limit':_0x4ba85b};}async[a0_0x41c21b(0x28f)](_0x1856a8){const _0x1d8de2=a0_0x41c21b,_0x571080={'dmYRb':function(_0x48b3b4,_0x3c1ec1){return _0x48b3b4===_0x3c1ec1;},'Vheso':_0x1d8de2(0x227),'UsEnH':'Job\x20cancelled\x20via\x20API','DLMQm':_0x1d8de2(0x1ff),'XKmcM':function(_0x4cdbed,_0x1ef4c7){return _0x4cdbed===_0x1ef4c7;},'FwCMh':'waiting','VNwDR':'delayed'};for(const _0x166796 of Object[_0x1d8de2(0x31a)](this['queues'])){const _0x82344e=await _0x166796['getJob'](_0x1856a8);if(_0x82344e){const _0x330840=await _0x82344e[_0x1d8de2(0x1f0)]();if(_0x571080[_0x1d8de2(0x214)](_0x330840,_0x571080[_0x1d8de2(0x27e)]))return await _0x82344e[_0x1d8de2(0x1f4)](new Error(_0x571080[_0x1d8de2(0x326)]),_0x571080[_0x1d8de2(0x2e3)],!![]),{'success':!![],'message':_0x1d8de2(0x30c)+_0x1856a8+'\x20cancelled\x20(was\x20active)'};if(_0x571080['XKmcM'](_0x330840,_0x571080[_0x1d8de2(0x29a)])||_0x571080['dmYRb'](_0x330840,_0x571080['VNwDR']))return await _0x82344e['remove'](),{'success':!![],'message':_0x1d8de2(0x30c)+_0x1856a8+_0x1d8de2(0x24b)+_0x330840+')'};return{'success':![],'message':'Job\x20'+_0x1856a8+_0x1d8de2(0x1f8)+_0x330840+')'};}}return{'success':![],'message':'Job\x20'+_0x1856a8+'\x20tidak\x20ditemukan'};}async[a0_0x41c21b(0x21a)](){const _0x37faad=a0_0x41c21b,_0x56601e={'YvDlO':_0x37faad(0x227),'jwnHe':_0x37faad(0x2ac),'xnnbj':'paused','pYGRX':_0x37faad(0x21c)},_0x6ba6bd={};for(const [_0x297e10,_0x8b39c0]of Object[_0x37faad(0x205)](this[_0x37faad(0x21e)])){try{const _0x5cc23b=await _0x8b39c0[_0x37faad(0x2a4)](_0x56601e[_0x37faad(0x29d)],'completed',_0x56601e['jwnHe'],_0x37faad(0x2d0),_0x56601e[_0x37faad(0x294)],_0x56601e['pYGRX']);_0x6ba6bd[_0x297e10]=_0x5cc23b;}catch(_0x11b39a){_0x6ba6bd[_0x297e10]={'error':_0x11b39a['message']};}}const _0x3c4c48={};for(const [_0x3c1efe,_0x3e51e1]of Object['entries'](this['workers'])){_0x3c4c48[_0x3c1efe]={'running':_0x3e51e1[_0x37faad(0x1f7)](),'paused':_0x3e51e1[_0x37faad(0x239)]()};}return{'initialized':this[_0x37faad(0x301)],'registeredJobs':Object[_0x37faad(0x278)](this[_0x37faad(0x2a8)])['length'],'redisConnections':this[_0x37faad(0x2d7)]['length'],'queues':_0x6ba6bd,'workers':_0x3c4c48};}async[a0_0x41c21b(0x32b)](_0x26477b,_0x237bff){const _0x575e61=a0_0x41c21b,_0x4e46e2={'meQjd':_0x575e61(0x2bf),'LFkYK':_0x575e61(0x259),'sYKZC':function(_0x4cd6c8,_0x560b7d){return _0x4cd6c8-_0x560b7d;},'BeoQs':function(_0x25cb30,_0x3e9682){return _0x25cb30-_0x3e9682;},'qSVdY':'string','WbYUu':_0x575e61(0x202),'HvXTo':_0x575e61(0x2c6),'qXOiv':'onAfterJobComplete'},_0x4ef491=logger[_0x575e61(0x2b4)]({'jobId':_0x26477b['id'],'jobName':_0x26477b[_0x575e61(0x234)]});_0x4ef491[_0x575e61(0x288)]({'event':_0x4e46e2[_0x575e61(0x260)],'attemptsMade':_0x26477b['attemptsMade'],'duration':_0x26477b[_0x575e61(0x210)]?_0x4e46e2[_0x575e61(0x308)](_0x26477b['finishedOn'],_0x26477b[_0x575e61(0x2ca)]):null},'Job\x20completed:\x20'+_0x26477b['name']);const _0x558a3a=this['activeHistoryIds']['get'](_0x26477b['id']);if(_0x558a3a){if(_0x558a3a['insertPromise'])await _0x558a3a['insertPromise'];const _0x43ac46=_0x26477b[_0x575e61(0x210)]&&_0x26477b[_0x575e61(0x2ca)]?_0x4e46e2['BeoQs'](_0x26477b['finishedOn'],_0x26477b[_0x575e61(0x2ca)]):null,_0x511142=typeof _0x237bff===_0x4e46e2['qSVdY']?_0x237bff:_0x237bff?JSON[_0x575e61(0x2fc)](_0x237bff)[_0x575e61(0x287)](0x0,0x1f4):null;await this['updateJobHistoryCompleted'](_0x558a3a['historyId'],_0x43ac46,_0x511142);const _0x53aeca=await this[_0x575e61(0x2ec)](_0x26477b['name']);await this['updateRegistryCounters'](_0x26477b['name'],_0x4e46e2['WbYUu'],_0x43ac46,_0x53aeca),this[_0x575e61(0x1ed)]['delete'](_0x26477b['id']);}const _0xc3bb1d=getComponentEngine();if(_0xc3bb1d&&typeof _0xc3bb1d['executeEventHandlers']===_0x4e46e2['HvXTo']){const _0x28dc1c={'jobId':_0x26477b['id'],'jobName':_0x26477b['name'],'result':_0x237bff,'config':this['jobConfigs'][_0x26477b['name']]||{}};_0xc3bb1d[_0x575e61(0x31b)](_0x4e46e2[_0x575e61(0x30d)],_0x28dc1c,![])[_0x575e61(0x23f)](_0x4e8a24=>{const _0x3cc714=_0x575e61;_0x4ef491[_0x3cc714(0x2bc)]({'event':_0x3cc714(0x250),'error':_0x4e8a24[_0x3cc714(0x211)]},_0x4e46e2[_0x3cc714(0x304)]);});}const _0x10dec9=this[_0x575e61(0x258)]();if(_0x10dec9)try{await _0x10dec9['publishEvent'](_0x575e61(0x230),'JOB_COMPLETED',null,{'jobId':_0x26477b['id'],'name':_0x26477b['name'],'result':_0x237bff},{'module':'job-scheduler','endpoint':_0x26477b['name']});}catch(_0x32df75){_0x4ef491[_0x575e61(0x2bc)]({'event':'job_kafka_publish_error','error':_0x32df75['message']},_0x575e61(0x306));}}async[a0_0x41c21b(0x316)](_0xbb1fdd,_0x476b26){const _0x516fcf=a0_0x41c21b,_0x4d751a={'pCpCH':'after_job_failed_hook_error','fhDby':function(_0x2f429a,_0x49b17f){return _0x2f429a<_0x49b17f;},'migeK':function(_0x289f9e,_0x561bff){return _0x289f9e-_0x561bff;},'nmFNT':'failed','kQSmI':_0x516fcf(0x256),'Mlwyx':_0x516fcf(0x334)},_0x48ce02=logger[_0x516fcf(0x2b4)]({'jobId':_0xbb1fdd['id'],'jobName':_0xbb1fdd['name']});_0x48ce02[_0x516fcf(0x249)]({'event':'job_failed','attemptsMade':_0xbb1fdd[_0x516fcf(0x244)],'failedReason':_0x476b26?.[_0x516fcf(0x211)],'willRetry':_0x4d751a['fhDby'](_0xbb1fdd['attemptsMade'],this[_0x516fcf(0x2a8)][_0xbb1fdd[_0x516fcf(0x234)]]?.[_0x516fcf(0x269)]?.[_0x516fcf(0x317)]||0x3)},'Job\x20failed:\x20'+_0xbb1fdd[_0x516fcf(0x234)]+_0x516fcf(0x23d)+_0x476b26?.[_0x516fcf(0x211)]);const _0x5a50bc=this['activeHistoryIds'][_0x516fcf(0x25e)](_0xbb1fdd['id']);if(_0x5a50bc){if(_0x5a50bc['insertPromise'])await _0x5a50bc['insertPromise'];const _0x118d0a=_0xbb1fdd['finishedOn']&&_0xbb1fdd['processedOn']?_0x4d751a[_0x516fcf(0x292)](_0xbb1fdd['finishedOn'],_0xbb1fdd[_0x516fcf(0x2ca)]):null;await this[_0x516fcf(0x262)](_0x5a50bc['historyId'],_0x118d0a,_0xbb1fdd[_0x516fcf(0x314)],_0x476b26?.['message'],_0x476b26?.['stack']);const _0xe9982c=await this[_0x516fcf(0x2ec)](_0xbb1fdd['name']);await this['updateRegistryCounters'](_0xbb1fdd[_0x516fcf(0x234)],_0x4d751a[_0x516fcf(0x2fe)],_0x118d0a,_0xe9982c),this['activeHistoryIds'][_0x516fcf(0x333)](_0xbb1fdd['id']);}const _0x2684f1=getComponentEngine();if(_0x2684f1&&typeof _0x2684f1['executeEventHandlers']==='function'){const _0x23e784={'jobId':_0xbb1fdd['id'],'jobName':_0xbb1fdd['name'],'error':_0x476b26?.[_0x516fcf(0x211)],'attemptsMade':_0xbb1fdd[_0x516fcf(0x244)],'config':this['jobConfigs'][_0xbb1fdd['name']]||{}};_0x2684f1[_0x516fcf(0x31b)](_0x4d751a[_0x516fcf(0x241)],_0x23e784,![])[_0x516fcf(0x23f)](_0x14af3d=>{const _0x1fdb59=_0x516fcf;_0x48ce02[_0x1fdb59(0x2bc)]({'event':_0x4d751a[_0x1fdb59(0x27b)],'error':_0x14af3d['message']},_0x1fdb59(0x24f));});}const _0x254f4f=this[_0x516fcf(0x258)]();if(_0x254f4f)try{await _0x254f4f['publishEvent']('restforge.jobs.failed',_0x516fcf(0x2e7),null,{'jobId':_0xbb1fdd['id'],'name':_0xbb1fdd['name'],'error':_0x476b26?.[_0x516fcf(0x211)],'attemptsMade':_0xbb1fdd['attemptsMade']},{'module':_0x4d751a[_0x516fcf(0x321)],'endpoint':_0xbb1fdd['name']});}catch(_0x45940b){_0x48ce02[_0x516fcf(0x2bc)]({'event':'job_kafka_publish_error','error':_0x45940b[_0x516fcf(0x211)]},'Failed\x20to\x20publish\x20JOB_FAILED\x20to\x20Kafka');}}[a0_0x41c21b(0x27d)](_0x13a43a,_0x165ad0){const _0x8c0cf1=a0_0x41c21b,_0x4671ed={'antjD':'job_progress'};logger[_0x8c0cf1(0x2aa)]({'event':_0x4671ed['antjD'],'jobId':_0x13a43a['id'],'jobName':_0x13a43a[_0x8c0cf1(0x234)],'progress':_0x165ad0},_0x8c0cf1(0x24d)+_0x13a43a[_0x8c0cf1(0x234)]+_0x8c0cf1(0x23d)+_0x165ad0+'%');}}module[a0_0x41c21b(0x313)]=new JobManager();
1
+ const a0_0x5d31c2=a0_0x3edc;(function(_0x5a8ec1,_0x44405e){const _0x4f2713=a0_0x3edc,_0x4d7688=_0x5a8ec1();while(!![]){try{const _0x2e3a06=parseInt(_0x4f2713(0x288))/0x1+-parseInt(_0x4f2713(0x2a7))/0x2+parseInt(_0x4f2713(0x2b1))/0x3*(parseInt(_0x4f2713(0x266))/0x4)+-parseInt(_0x4f2713(0x2b7))/0x5*(-parseInt(_0x4f2713(0x24f))/0x6)+-parseInt(_0x4f2713(0x314))/0x7*(parseInt(_0x4f2713(0x2ea))/0x8)+parseInt(_0x4f2713(0x214))/0x9+-parseInt(_0x4f2713(0x1f5))/0xa;if(_0x2e3a06===_0x44405e)break;else _0x4d7688['push'](_0x4d7688['shift']());}catch(_0x2a2d70){_0x4d7688['push'](_0x4d7688['shift']());}}}(a0_0x31ad,0xc93c4));function a0_0x31ad(){const _0x30f1d9=['DxbZzxj0sM9IuMvNAxn0CNK','rMfPBgvKihrVihjLz2LZDgvYigPVyJOG','yxbP','C2nOzwr1Bgu','zgLZCgf0y2G','sKXOs2q','C3vJy2vZCW','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa/lcbSyxn0x2r1CMf0Aw9Ux21Zid0GpYWkicaGicaGicaGica','EvPpwMO','AM9Ix3n0ywXSzwq','ALr5u2e','iokaLca','z2v0','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ie5pvYGPlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GjdeSihbYB2DYzxnZid0GmtaWlcbYzxn1BhrFC3vTBwfYEsa9icqYifDirvjfigLKid0Gjdm','lI4VlI4VDxrPBhmVzgiTB3jHy2XL','CMvHzgrPCLn5BMm','AM9Ix3bYB2DYzxnZ','D29YA2vYCW','zw5HyMXLza','q3jVBIbYzwDPC3rLCMvKoIa','D3fnyvO','ywXS','y3jVBG','zgvMyxvSDa','C2v0qwXSsM9IC09MzMXPBMu','wNLprhu','y3zKAum','Bwv0ywrHDge','AM9Ix3n0yxj0zwq','Aw5JBhvKzxm','BwfW','Cg9ZDgDYzxnXBa','B25bzNrLCKPVyKzHAwXLzcbOyw5KBgvYigvYCM9YicHUB24TyMXVy2TPBMCP','zxHWB25LBNrPywW','EKngu3K','y2fUy2vSsM9I','id0G','AuXwr2u','BKzLyMq','odGXnte3zLHUAfrl','qw9Wwve','Bw92zvrVrMfPBgvK','sMzYyNa','CMv0CNK','rMfPBgvKihrVihvWzgf0zsbQB2iGAgLZDg9YEsaOzMfPBgvKktOG','yxbPlwrLBgf5zwq','y2XLyxi','uKzlCKy','igPVyIbJB25MAwCOCYKGzNjVBsbWyxLSB2fKl2PVyNmV','Dw5RBM93BG','C2H1DgrVD24','z2v0ug9VBa','zMLUAxnOzwrpBG','sK9cx0vwru5u','CgfYC2u','yNvSBg1XsM9Iswq','ChjVrhG','y29UBMvJDgLVBNm','mtC4nteXmJb4u3n2uwm','sK9cx01bwf9tvefmtevex0npvu5u','Dg90ywXFC3vJy2vZCW','B25SAw5L','B25kB2jdB21WBgv0zwq','ug9ZDgDYzvnrtcbeqIbTB2r1BguGBM90igf2ywLSywjSzq','lI4VlI4VDxrPBhmVzgiTBxLZCwW','ihjLBw92zwqGkhDHCYa','zgvZy3jPChrPB24','AM9Ix3jLzgLZx2zHAwXLza','rfDMAxO','z2v0sM9Iq291BNrZ','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','zxHWB3j0CW','y29TCgXLDgvK','AM9Ix2vUC3vYzv90ywjSzxnFzxjYB3i','Cgf0Aa','C29YDa','C1nQtem','q0XfEeG','sK9cx0zbsuXfrf9srvrftLrjt05Fse9vuLm','ChvZAa','zxHLy3v0zuv2zw50sgfUzgXLCNm','zgjFB3jHy2XLx3vUyxzHAwXHyMXL','u2DAr2e','z2v0sgvHBhrOu3rHDhvZ','BMzjEKK','ChjVy2vZC0PVyG','zgf0yq','B29Rwgi','zKfKDMm','oteZntm2mhr1t3PxvG','BM93','EKzzv1i','tg1AAuG','AM9ICW','rMfPBgvKihrVigvUC3vYzsbQB2iGDgfIBgvZoIa','A25QA1y','icHPzdOG','D2fPDgLUzW','DMfSAwq','yMfJA29MzG','D2fYBG','zMLSDgvY','Aw5Zzxj0sM9IsgLZDg9YEq','z2v0q2XPzw50','zfnqsM4','Bg9JywXOB3n0','BxLZCwW','sK9cx0zbsuXfra','sffcwMy','lIbeqIbTB25PDg9YAw5NigrPC2fIBgvKlG','sMftqKO','DhjPz2DLCLr5Cgu','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteWSihvWzgf0zwrFyxqGpsbot1COkq','yNvPBgrdB250zxH0','rMjTr04','AM9Ix3jLz2LZDhj5x2nVDw50zxjFzxjYB3i','AM9Ix3jLz2LZDhj5x3vWC2vYDf9LCNjVCG','CM1wzgS','uLj6q3O','mYbcDwXStveGuxvLDwvZignYzwf0zwqGkgHPz2GSigrLzMf1BhqSigXVDYK','qMfJA2DYB3vUzcbPBNnLCNqGAM9IigHPC3rVCNKGzMfPBgvKoIa','AM9Ix2zHAwXLza','DxbKyxrLsM9IsgLZDg9YEunVBxbSzxrLza','sM9IihrPzgfRigrPDgvTDwTHBJOG','B25bzNrLCKPVyKzHAwXLza','zw50CMLLCW','ywz0zxjFAM9Ix2nVBxbSzxrLx2HVB2TFzxjYB3i','zgvSyxLLza','y3jLyxrLza','t3jHy2XLiercig1VzhvSzsbUB3qGyxzHAwXHyMXL','B3jHltaWotu1','sM9IigrPC3bHDgnOzwqGkgrLBgf5zwqG','x3nVDxjJzuzPBgu','C3rHBgXLza','zLv6EfO','z2v0q2fJAgvnyw5Hz2vY','weXbBMu','ywrK','zgjFBxLZCwXFDw5HDMfPBgfIBgu','AgfUzgXLCNm','wLHXzxK','B3jHy2XLlNnXBa','u1rkz2S','sM9Iia','sM9IignHBMnLBgXLzcbIEsbVBKjLzM9YzuPVyKv4zwn1Dgu6ia','y2f0y2G','zxjYB3jZ','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsaKmsWGBgfZDf9YDw5FyxqGpsbot1COksWkicaGicaGicaGicb1CgrHDgvKx2f0id0GtK9xkcKGv0HfuKuGAM9Ix25HBwuGpsaKmG','ntC1odm4rNrVEvrm','BxmPlI4U','zhvIz0y','DgLTzxn0yw1WCW','C3bSAxrtCwXtDgf0zw1LBNrZ','ywn0AxzL','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticG/lca/lca/lca/lca/lcaNCNvUBMLUzYCSid8Sid8Sid8Sie5pvYGPlca/lcbot1COksK','rhb0ww4','Aw5PDgLHBerLBgf5','DgLTzw91Da','y0jtA3C','DxvPza','z2v0sM9Iu2nOzwr1BgvYCW','BgvUz3rO','DgLTzxPVBMu','ywn0AxzLsgLZDg9YEuLKCW','sM9IignVBxbSzxrLzdOG','ChjVz3jLC3m','ruXTq08','z2v0sw5ZDgfUy2u','zMfPBgvK','D1PUu2u','t1bfCvi','mtqZmJiYofnrEwjeyW','Aw5Zzxj0uhjVBwLZzq','z2v0rgjvDgLSCW','y3j5ChrV','sK9cx1jfreLtx1bsruzjwa','lI4VlI4VDxrPBhmVzgi','C2v0','uKvesvnFrei','zw5ZDxjLvgfIBgvZ','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa/lcbSyxn0x3j1BL9HDca9ie5pvYGPifDirvjfigPVyL9Uyw1Lid0GpW','q3jNtvu','C3bSAxq','y1HwDgq','zMLyz0u','su5trvjuieLove8GAM9Ix3jLz2LZDhj5cIaGicaGicaGicaGkgPVyL9Uyw1LlcbKAxnWBgf5x25HBwuSihr5CguSihnJAgvKDwXLlcbXDwv1zsWGAgfUzgXLCIWGy29UzMLNx2zPBguScIaGicaGicaGicaGihrPBwvVDxqSihjLDhj5x21HEcWGCMv0CNLFyMfJA29MzIWGC3rHDhvZlcbUzxH0x3j1BL9HDcWGy3jLyxrLzf9HDcWGDxbKyxrLzf9HDcKkicaGicaGicaGicbwquXvrvmGkcqXlcaKmIWGjdmSicq0lcaKnsWGjdySicq3lcaKocWGjdKSicqXmcWGjdeXlcaKmtiSie5pvYGPlcbot1COksKkicaGicaGicaGicbptIbdt05gteLdvcaOAM9Ix25HBwuPierpifvqrefursbtrvqkicaGicaGicaGicaGigrPC3bSyxLFBMfTzsa9ievyq0XvrevelMrPC3bSyxLFBMfTzsWGDhLWzsa9ievyq0XvrevelNr5CguScIaGicaGicaGicaGicbZy2HLzhvSzsa9ievyq0XvrevelNnJAgvKDwXLlcbXDwv1zsa9ievyq0XvrevelNf1zxvLlaOGicaGicaGicaGicaGAgfUzgXLCIa9ievyq0XvrevelMHHBMrSzxiSignVBMzPz19MAwXLid0GrvHdtfveruqUy29UzMLNx2zPBguScIaGicaGicaGicaGicb0Aw1LB3v0id0GrvHdtfveruqUDgLTzw91DcWGCMv0CNLFBwf4id0GrvHdtfveruqUCMv0CNLFBwf4laOGicaGicaGicaGicaGCMv0CNLFyMfJA29MzIa9ievyq0XvrevelNjLDhj5x2jHy2TVzMySihn0yxr1CYa9ievyq0XvrevelNn0yxr1CYWkicaGicaGicaGicaGig5LEhrFCNvUx2f0id0GrvHdtfveruqUBMv4Df9YDw5FyxqSihvWzgf0zwrFyxqGpsbot1COkq','sM9Iig1VBML0B3jPBMCGDgfIBgvZigvUC3vYzwqGka','jYb0AwrHAYbKAwr1A3vUzYb1BNr1AYbQB2iGBw9UAxrVCMLUzYb0ywjSzxm','yNflsue','u1bvB00','AgLZDg9YEuLK','vMrKs1m','z2v0s2fMA2ftzxj2AwnL','AxnsDw5UAw5N','CMvNAxn0zxjkB2i','B2Xts2i','uKvesvnFue9sva','yNvSBg1X','Bwf4qxr0zw1WDhm','DxvArfG','BwfUDwfS','tuz3wuu','B3jHy2XL','zxHLy3v0zvf1zxj5','zgLZCgf0y2HezwXHEwvK','mtaZmJG0owXyuKPlEG','zMfPBgvKuMvHC29U','B2zMBgLUzq','AM9Ix3jLz2LZDhj5x29MzMXPBMvFzxjYB3i','zxjYB3i','A2v5CW','rejFvfLqrq','C3LZDgvT','rMfPBgvKihrVihvWzgf0zsbQB2iGCMvNAxn0CNKGy291BNrLCNm6ia','y2HPBgq','sK9cx1jfvevoveLptL9it1vsuW','icHHDhrLBxb0ia','yvfmAKO','DLjJs1i','DxrMoa','Aw5MBW','AM9IlxnJAgvKDwXLCG','DhjPz2DLCMvKqNK','z2v0tMv4Dfj1BKzYB21cDwXStve','AM9Ix3nXBf9UB3rFzM91BMq','C2XPy2u','ktOG','AM9Ix2HPC3rVCNLFAw5Zzxj0x2vYCM9Y','D2DRvwm','tgv5rfa','Aw5PDgLHBgL6zwq','DgLTzxn0yw1W','tMTkCMS','B2jztuW','BxLZCwWUC3fS','tgDOy2S','mJq5mZq2Ag5dwgD1','lI4VlI4VC2vYDMLJzxmVA2fMA2ftzxj2AwnL','qNvSBe1rifjLzgLZignVBM5Ly3rPB24GzxjYB3i6ia','icSGmsWkicaGicaGicaGicbUzxH0x3j1BL9HDca9id8Gv0HfuKuGAM9Ix25HBwuGpsa/','Dhj1zq','ihrPzgfRigjPC2eGzgKTy2fUy2vSicHZDgf0ztOG','BwvZC2fNzq','vvvcweO','AgfUzgXLCG','C3rHy2S','nMPxEKLtAa','Bg9HzePVyKnVBMzPz3m','zxHLy3v0zvrYyw5Zywn0Aw9U','u1rID2y','z2v0uMvKAxndBgLLBNq','z2v0u3rHDgu','nvz0wKrjDq','zNzit2W','AM9Iq29UzMLNCW','B25kB2jqCM9NCMvZCW','rwvkwM8','DxbKyxrLsM9IsgLZDg9YEuzHAwXLza','BMfTzq','zgvSzxrL','vgLKywSGywrHigPVyIbJB25MAwCGzgL0zw11A2fUigrPihbHEwXVywqVAM9ICY8UiePVyIbnyw5Hz2vYigfRDgLMihrHBNbHignYB24U','v1zmA04','EvLtvLO','sM9IignHBMnLBgXLzcb2AweGqvbj','DxbKyxrLuMvNAxn0CNLtDgf0Dxm','Aw9YzwrPCW','BwLU','CMvHzezPBgvtEw5J','AM9Ix21HBMfNzxjFAw5PDf9ZDgfYDa','uMLhtuO','y3jLyxrLqNvSBe1rq29UBMvJDgLVBG','DMfSDwvZ','D29YA2LUz0rPCG','CMvZDgzVCMDLlMPVyNmUy29TCgXLDgvK','z2v0rgjuExbL','lI9QB2iTDMfSAwrHDg9Y','zMvYA1a','zw52','Dfz6sw0','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteW','reXMquq','C3jJ','rejFvfLqrsaN','icSGmsWkicaGicaGicaGicbUzxH0x3j1BL9HDca9icqZlcb1CgrHDgvKx2f0id0GtK9xkcKGv0HfuKuGAM9Ix25HBwuGpsaKna','y2XVC2u','AwvPsM8','ChjVy2vZC2vKt24','CxvLDwvZ','sM9Iie1HBMfNzxiGC2H1DgrVD24Gy29TCgXLDgu','yxr0zw1WDhnnywrL','CMv0DxjUDMfSDwu','lIbkB2iGu2nOzwr1BgvYihrPzgfRigfRyw4GywT0AwyU','DhLWzq','CxvLDwu','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNzMfPBgvKjYWGy29TCgXLDgvKx2f0id0Gu1LtveLnrvnuqu1qlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GoJeSihbYB2DYzxnZid0GoJiSigvYCM9Yx21LC3nHz2uGpsa6mYWGzxjYB3jFC3rHy2SGpsa6ncbxsevsrsbPzca9idO1','ifjLzgLZignVBM5Ly3rPB25Z','DxbKyxrLuMvNAxn0CNLdB3vUDgvYCW','DhjPBq','C3rHCNrZv2L0Aa','AM9Ix2THzMTHx3b1yMXPC2HFzxjYB3i','zNvUy3rPB24','z2v0sM9ICW','C3vIC3rYAw5N','ogLoAu5wEq','yNHQwvu','v0jqDLa'];a0_0x31ad=function(){return _0x30f1d9;};return a0_0x31ad();}const {Queue,Worker}=require(a0_0x5d31c2(0x280)),Redis=require(a0_0x5d31c2(0x2c4)),crypto=require(a0_0x5d31c2(0x269)),{v7:uuidv7}=require(a0_0x5d31c2(0x25a)),fs=require('fs'),path=require(a0_0x5d31c2(0x205)),{logger}=require('../../utils/logger'),jobValidator=require(a0_0x5d31c2(0x2ce));function a0_0x3edc(_0xf1fc,_0x35bebb){_0xf1fc=_0xf1fc-0x1e4;const _0x31ad2a=a0_0x31ad();let _0x3edc98=_0x31ad2a[_0xf1fc];if(a0_0x3edc['mvXeIe']===undefined){var _0x442ba4=function(_0x23c5cb){const _0x20e2a8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4b3ce4='',_0x14e5ed='';for(let _0x4be472=0x0,_0xf42925,_0x3c42c0,_0x74e2c=0x0;_0x3c42c0=_0x23c5cb['charAt'](_0x74e2c++);~_0x3c42c0&&(_0xf42925=_0x4be472%0x4?_0xf42925*0x40+_0x3c42c0:_0x3c42c0,_0x4be472++%0x4)?_0x4b3ce4+=String['fromCharCode'](0xff&_0xf42925>>(-0x2*_0x4be472&0x6)):0x0){_0x3c42c0=_0x20e2a8['indexOf'](_0x3c42c0);}for(let _0x4d0384=0x0,_0x4dd5cc=_0x4b3ce4['length'];_0x4d0384<_0x4dd5cc;_0x4d0384++){_0x14e5ed+='%'+('00'+_0x4b3ce4['charCodeAt'](_0x4d0384)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x14e5ed);};a0_0x3edc['DFHxIz']=_0x442ba4,a0_0x3edc['vFtRKl']={},a0_0x3edc['mvXeIe']=!![];}const _0x568e39=_0x31ad2a[0x0],_0x1a2f7f=_0xf1fc+_0x568e39,_0x53851c=a0_0x3edc['vFtRKl'][_0x1a2f7f];return!_0x53851c?(_0x3edc98=a0_0x3edc['DFHxIz'](_0x3edc98),a0_0x3edc['vFtRKl'][_0x1a2f7f]=_0x3edc98):_0x3edc98=_0x53851c,_0x3edc98;}let componentEngine=null;function getComponentEngine(){const _0x38c99c={'LJyHE':function(_0x45680f,_0x51f9c2){return _0x45680f(_0x51f9c2);}};if(!componentEngine)try{const _0x3951d5=_0x38c99c['LJyHE'](require,'../../utils/component-engine');componentEngine=_0x3951d5['componentEngine']||_0x3951d5;}catch(_0x3fbb5f){}return componentEngine;}class JobManager{constructor(){const _0x54d58d=a0_0x5d31c2,_0xb14bdb={'zzVYJ':'0|5|6|7|1|2|3|4'},_0x268af8=_0xb14bdb['zzVYJ'][_0x54d58d(0x271)]('|');let _0x5606c1=0x0;while(!![]){switch(_0x268af8[_0x5606c1++]){case'0':this['queues']={};continue;case'1':this[_0x54d58d(0x1f4)]=[];continue;case'2':this['initialized']=![];continue;case'3':this[_0x54d58d(0x2cb)]=process['cwd']();continue;case'4':this[_0x54d58d(0x25e)]=new Map();continue;case'5':this[_0x54d58d(0x2fe)]={};continue;case'6':this['jobConfigs']={};continue;case'7':this[_0x54d58d(0x246)]={};continue;}break;}}[a0_0x5d31c2(0x2c9)](){const _0x4b3d1c=a0_0x5d31c2,_0xb9079e=new Redis({'host':process['env']['REDIS_HOST']||_0x4b3d1c(0x224),'port':parseInt(process[_0x4b3d1c(0x2d0)][_0x4b3d1c(0x27f)],0xa)||0x18ec,'password':process['env']['REDIS_PASSWORD']||undefined,'db':parseInt(process['env'][_0x4b3d1c(0x26d)],0xa)||0x0,'maxRetriesPerRequest':null,'retryStrategy'(_0x22233d){const _0x5c24c1=_0x4b3d1c,_0x48bb62=Math[_0x5c24c1(0x2c5)](_0x22233d*0x32,0x7d0);return _0x48bb62;}});return _0xb9079e['on'](_0x4b3d1c(0x28c),_0x5c996b=>{const _0x50c70c=_0x4b3d1c;logger['error']({'event':'bullmq_redis_error','error':_0x5c996b['message']},_0x50c70c(0x2a9)+_0x5c996b[_0x50c70c(0x2ad)]);}),this[_0x4b3d1c(0x1f4)]['push'](_0xb9079e),_0xb9079e;}async['initialize'](){const _0xea8566=a0_0x5d31c2,_0x4db9b2={'sgkQb':_0xea8566(0x2f6),'qugvQ':'bullmq_worker_error','HByuG':'job_manager_already_initialized','yZOZj':'Job\x20Manager\x20sudah\x20diinisialisasi,\x20skip','xGOZT':_0xea8566(0x2c7),'fvHOl':'job_redis_connected','OPEqR':function(_0x203726,_0x511ee9){return _0x203726===_0x511ee9;},'aQLjJ':_0xea8566(0x2bf),'rmVdk':_0xea8566(0x1ec),'dubgF':'default','wqMaZ':function(_0x2a992a,_0x5b17cb,_0x4efba3){return _0x2a992a(_0x5b17cb,_0x4efba3);},'GQdvf':'high','uSkKz':'low','cvdiC':'job_queues_created','diAWq':'completed','HQBZf':'failed','RRzCz':_0xea8566(0x260),'CLExH':_0xea8566(0x240),'JaSBJ':_0xea8566(0x28c),'JPdNg':'job_register_failed','Cclsd':'job_manager_ready'};if(this['initialized']){logger[_0xea8566(0x21f)]({'event':_0x4db9b2['HByuG']},_0x4db9b2[_0xea8566(0x2f5)]);return;}logger['info']({'event':_0x4db9b2['xGOZT']},'Initializing\x20Job\x20Manager...');const _0xf738bf=this['createBullMQConnection']();try{await _0xf738bf['ping'](),logger['info']({'event':_0x4db9b2[_0xea8566(0x2b8)]},'BullMQ\x20Redis\x20connection\x20verified');}catch(_0x458998){logger['error']({'event':_0xea8566(0x1fe),'error':_0x458998[_0xea8566(0x2ad)]},'Redis\x20connection\x20failed:\x20'+_0x458998[_0xea8566(0x2ad)]+_0xea8566(0x2de));try{await _0xf738bf['quit']();}catch(_0x25ecc1){}this['connections']=this['connections'][_0xea8566(0x220)](_0x471d94=>_0x471d94!==_0xf738bf);return;}try{await _0xf738bf['quit']();}catch(_0x2067ea){}this['connections']=this[_0xea8566(0x1f4)]['filter'](_0x214812=>_0x214812!==_0xf738bf);try{await this[_0xea8566(0x26e)]();}catch(_0x38a1d5){logger['warn']({'event':_0xea8566(0x204),'error':_0x38a1d5['message']},_0xea8566(0x219)+_0x38a1d5[_0xea8566(0x2ad)]+_0xea8566(0x228));}const _0x1d5906=this[_0xea8566(0x2b2)]();_0x4db9b2[_0xea8566(0x265)](_0x1d5906[_0xea8566(0x25c)],0x0)&&logger['info']({'event':'job_no_configs'},_0x4db9b2[_0xea8566(0x294)]);const _0x3473a4=[];for(const _0x1f6875 of _0x1d5906){const _0x3d0c17=jobValidator['validateConfig'](_0x1f6875,this[_0xea8566(0x2cb)]);_0x3d0c17[_0xea8566(0x21d)]?_0x3473a4[_0xea8566(0x20a)](_0x1f6875):logger['error']({'event':'job_config_invalid','name':_0x1f6875['name']||'unknown','errors':_0x3d0c17[_0xea8566(0x24d)]},'Job\x20config\x20invalid:\x20'+(_0x1f6875['name']||_0x4db9b2[_0xea8566(0x230)])+_0xea8566(0x2f8)+_0x3d0c17[_0xea8566(0x24d)]['join'](';\x20'));}const _0x1a8040=process[_0xea8566(0x2d0)][_0xea8566(0x201)]||_0x4db9b2[_0xea8566(0x251)],_0x46f87f=process[_0xea8566(0x2d0)][_0xea8566(0x26a)]||'rf:'+_0x1a8040+':job',_0x52791b=_0x4db9b2['wqMaZ'](parseInt,process[_0xea8566(0x2d0)][_0xea8566(0x292)],0xa)||0x48,_0x905742=parseInt(process['env'][_0xea8566(0x209)],0xa)||0xa8,_0xd247ac={'removeOnComplete':{'age':_0x52791b*0xe10},'removeOnFail':{'age':_0x905742*0xe10}},_0x41efc9={'high-priority':_0x4db9b2['GQdvf'],'default':_0x4db9b2['dubgF'],'low-priority':_0x4db9b2['uSkKz']};for(const [_0x1f23cc,_0x18c1c0]of Object['entries'](_0x41efc9)){this[_0xea8566(0x2da)][_0x1f23cc]=new Queue(_0x18c1c0,{'connection':this[_0xea8566(0x2c9)](),'prefix':_0x46f87f,'defaultJobOptions':_0xd247ac});}logger[_0xea8566(0x297)]({'event':_0x4db9b2[_0xea8566(0x307)],'count':0x3},_0xea8566(0x232));const _0x2c6062=_0x4db9b2[_0xea8566(0x301)](parseInt,process['env']['JOB_CONCURRENCY'],0xa)||0x5,_0x5126a6=parseInt(process[_0xea8566(0x2d0)]['JOB_STALLED_INTERVAL'],0xa)||0x7530,_0x1336f7=parseInt(process[_0xea8566(0x2d0)][_0xea8566(0x1f6)],0xa)||0x2;for(const [_0x3ec51d,_0x15292f]of Object['entries'](_0x41efc9)){const _0x5d1742=new Worker(_0x15292f,async _0x25fa6a=>this['processJob'](_0x25fa6a),{'connection':this['createBullMQConnection'](),'prefix':_0x46f87f,'concurrency':_0x2c6062,'stalledInterval':_0x5126a6,'maxStalledCount':_0x1336f7});_0x5d1742['on'](_0x4db9b2['diAWq'],(_0x3350a9,_0x48f0e3)=>this['onJobCompleted'](_0x3350a9,_0x48f0e3)),_0x5d1742['on'](_0x4db9b2[_0xea8566(0x227)],(_0x2004c4,_0x4a3b54)=>this['onJobFailed'](_0x2004c4,_0x4a3b54)),_0x5d1742['on'](_0x4db9b2[_0xea8566(0x231)],(_0x2bd77e,_0x3ea917)=>this['onJobProgress'](_0x2bd77e,_0x3ea917)),_0x5d1742['on'](_0x4db9b2[_0xea8566(0x208)],_0x5c771b=>{const _0x241916=_0xea8566;logger[_0x241916(0x21f)]({'event':_0x4db9b2['sgkQb'],'jobId':_0x5c771b},'Job\x20stalled:\x20'+_0x5c771b);}),_0x5d1742['on'](_0x4db9b2[_0xea8566(0x229)],_0xedfe5d=>{const _0x53feba=_0xea8566;logger['error']({'event':_0x4db9b2['qugvQ'],'queue':_0x3ec51d,'error':_0xedfe5d['message']},'BullMQ\x20Worker\x20error\x20('+_0x3ec51d+_0x53feba(0x29d)+_0xedfe5d['message']);}),this[_0xea8566(0x2fe)][_0x3ec51d]=_0x5d1742;}logger[_0xea8566(0x297)]({'event':'job_workers_created','count':0x3,'concurrency':_0x2c6062},'3\x20BullMQ\x20Workers\x20created\x20(concurrency:\x20'+_0x2c6062+')');let _0x3b872a=0x0;for(const _0x2ab2d3 of _0x3473a4){try{await this[_0xea8566(0x27d)](_0x2ab2d3),_0x3b872a++;}catch(_0x3bbb1f){logger['error']({'event':_0x4db9b2['JPdNg'],'name':_0x2ab2d3[_0xea8566(0x2bd)],'error':_0x3bbb1f[_0xea8566(0x2ad)]},_0xea8566(0x2ee)+_0x2ab2d3[_0xea8566(0x2bd)]+_0xea8566(0x2f8)+_0x3bbb1f[_0xea8566(0x2ad)]);}}this[_0xea8566(0x2a1)]=!![];const _0x5c2138=this[_0xea8566(0x1f4)][_0xea8566(0x25c)];logger['info']({'event':_0x4db9b2['Cclsd'],'registeredJobs':_0x3b872a,'totalConfigs':_0x3473a4[_0xea8566(0x25c)],'redisConnections':_0x5c2138},'Job\x20Manager\x20ready:\x20'+_0x3b872a+'\x20job(s)\x20registered,\x20'+_0x5c2138+_0xea8566(0x2e2));}async[a0_0x5d31c2(0x1ed)](){const _0x3bfb2c=a0_0x5d31c2,_0x8c8141={'NFtMm':function(_0x23b28b,_0x3f7037,_0x5d024f){return _0x23b28b(_0x3f7037,_0x5d024f);},'YAyfM':'job_manager_shutdown_complete','QiKra':_0x3bfb2c(0x2db)};if(!this[_0x3bfb2c(0x2a1)])return;const _0x5d0907=_0x8c8141['NFtMm'](parseInt,process['env']['JOB_SHUTDOWN_TIMEOUT'],0xa)||0x2710;logger[_0x3bfb2c(0x297)]({'event':'job_manager_shutdown_start','timeoutMs':_0x5d0907},'Job\x20Manager\x20shutting\x20down\x20(timeout:\x20'+_0x5d0907+_0x3bfb2c(0x250));const _0x318005=Object['values'](this['workers'])[_0x3bfb2c(0x30b)](async _0x1f32b6=>{try{await _0x1f32b6['pause']();}catch(_0x5ea364){}});await Promise[_0x3bfb2c(0x302)](_0x318005);const _0x20a4c1=Date[_0x3bfb2c(0x215)]();while(Date[_0x3bfb2c(0x215)]()-_0x20a4c1<_0x5d0907){let _0x28b214=0x0;for(const _0x3dac08 of Object[_0x3bfb2c(0x2ca)](this[_0x3bfb2c(0x2da)])){try{const _0x2fdc69=await _0x3dac08['getJobCounts'](_0x3bfb2c(0x254));_0x28b214+=_0x2fdc69[_0x3bfb2c(0x254)]||0x0;}catch(_0x144eb1){}}if(_0x28b214===0x0)break;await new Promise(_0x3a67f9=>setTimeout(_0x3a67f9,0x1f4));}const _0x168992=Object['values'](this['workers'])[_0x3bfb2c(0x30b)](async _0xb8f5de=>{const _0x4760f2=_0x3bfb2c;try{await _0xb8f5de[_0x4760f2(0x2d7)]();}catch(_0x4d71b0){}});await Promise['all'](_0x168992);const _0x2cf5ec=Object[_0x3bfb2c(0x2ca)](this['queues'])['map'](async _0x5679f4=>{const _0xd08a3f=_0x3bfb2c;try{await _0x5679f4[_0xd08a3f(0x2d7)]();}catch(_0x3227ac){}});await Promise[_0x3bfb2c(0x302)](_0x2cf5ec);for(const _0x4afc30 of this['connections']){try{await _0x4afc30['quit']();}catch(_0x22d1f1){}}this[_0x3bfb2c(0x2da)]={},this['workers']={},this['connections']=[],await this[_0x3bfb2c(0x305)](),this[_0x3bfb2c(0x25e)][_0x3bfb2c(0x1e9)](),this['initialized']=![],logger[_0x3bfb2c(0x297)]({'event':_0x8c8141['YAyfM']},_0x8c8141['QiKra']);}[a0_0x5d31c2(0x2b2)](){const _0x2358f3=a0_0x5d31c2,_0x32e6e9={'dSPJn':'job_config_dir_missing','Lghck':'Folder\x20payload/jobs/\x20tidak\x20ditemukan','UUBXJ':'job_config_parse_error'},_0x21597b=path['join'](this[_0x2358f3(0x2cb)],'payload',_0x2358f3(0x218));if(!fs['existsSync'](_0x21597b))return logger[_0x2358f3(0x297)]({'event':_0x32e6e9[_0x2358f3(0x223)],'path':_0x21597b},_0x32e6e9[_0x2358f3(0x2a6)]),[];const _0x1ed89a=fs[_0x2358f3(0x2fc)](_0x21597b)['filter'](_0x5f2eba=>_0x5f2eba['endsWith']('.json')),_0x2fcfb0=[];for(const _0x219b5d of _0x1ed89a){const _0xf35b3f=path['join'](_0x21597b,_0x219b5d);try{const _0x38ffb2=fs[_0x2358f3(0x2c6)](_0xf35b3f,'utf8'),_0x10d14d=JSON[_0x2358f3(0x1f1)](_0x38ffb2);_0x10d14d[_0x2358f3(0x23f)]=_0x219b5d,_0x2fcfb0['push'](_0x10d14d);}catch(_0x1d665b){logger['error']({'event':_0x32e6e9[_0x2358f3(0x2ae)],'file':_0x219b5d,'error':_0x1d665b['message']},'Failed\x20to\x20parse\x20job\x20config:\x20'+_0x219b5d+'\x20—\x20'+_0x1d665b[_0x2358f3(0x2ad)]);}}return logger[_0x2358f3(0x297)]({'event':'job_configs_loaded','count':_0x2fcfb0['length']},'Loaded\x20'+_0x2fcfb0['length']+_0x2358f3(0x1eb)),_0x2fcfb0;}async[a0_0x5d31c2(0x27d)](_0x9d3168){const _0x49643a=a0_0x5d31c2,_0x4a8db9={'cXVtd':_0x49643a(0x2d4),'WJYfP':'jobs','RFKrF':'cron','JLhKd':'cron_registered','bxjYU':function(_0x3b763d,_0x1c8798){return _0x3b763d===_0x1c8798;},'wgkUc':function(_0x34449a,_0x257db5){return _0x34449a!==_0x257db5;},'DWfiz':_0x49643a(0x1f8),'XLAne':_0x49643a(0x28a)},_0x4d6b05=path['join'](this['workingDir'],_0x4a8db9[_0x49643a(0x272)],_0x4a8db9['WJYfP'],_0x9d3168['handler']+'.js');this['handlers'][_0x9d3168['name']]=require(_0x4d6b05),this[_0x49643a(0x2b9)][_0x9d3168['name']]=_0x9d3168;if(_0x9d3168['type']===_0x49643a(0x303)&&_0x9d3168[_0x49643a(0x2ff)]!==![]){const _0x10bdb6=this['queues'][_0x9d3168[_0x49643a(0x2e0)]||_0x49643a(0x304)];await _0x10bdb6['upsertJobScheduler'](_0x9d3168['name'],{'pattern':_0x9d3168[_0x49643a(0x2f0)],'tz':_0x9d3168[_0x49643a(0x25d)]||undefined},{'name':_0x9d3168[_0x49643a(0x2bd)],'data':{'handler':_0x9d3168['handler'],'triggeredBy':_0x4a8db9[_0x49643a(0x1ea)],'metadata':_0x9d3168['metadata']||{}},'opts':{'attempts':_0x9d3168[_0x49643a(0x1e6)]?.[_0x49643a(0x281)]||0x3,'backoff':{'type':_0x9d3168[_0x49643a(0x1e6)]?.[_0x49643a(0x21e)]||_0x49643a(0x30e),'delay':_0x9d3168[_0x49643a(0x1e6)]?.[_0x49643a(0x257)]||0x1388},'timeout':_0x9d3168[_0x49643a(0x258)]||0x7530}}),logger['info']({'event':_0x4a8db9[_0x49643a(0x2f2)],'name':_0x9d3168[_0x49643a(0x2bd)],'schedule':_0x9d3168['schedule'],'queue':_0x9d3168[_0x49643a(0x2e0)]||_0x49643a(0x304)},_0x49643a(0x300)+_0x9d3168[_0x49643a(0x2bd)]+'\x20['+_0x9d3168[_0x49643a(0x2f0)]+']');}const _0x545bc7=_0x4a8db9[_0x49643a(0x2eb)](_0x9d3168['type'],'cron')&&_0x4a8db9[_0x49643a(0x29f)](_0x9d3168['enabled'],![])?_0x4a8db9[_0x49643a(0x1ff)]:_0x4a8db9[_0x49643a(0x243)];let _0x4be5a8=null;_0x545bc7===_0x49643a(0x1f8)&&(_0x4be5a8=await this['getNextRunFromBullMQ'](_0x9d3168[_0x49643a(0x2bd)])),await this['upsertJobRegistry'](_0x9d3168,_0x545bc7,_0x4be5a8);}async[a0_0x5d31c2(0x210)](_0x1da492){const _0x1a355b=a0_0x5d31c2,_0x1ad37c={'JtcPx':_0x1a355b(0x309),'nFebd':'unknown','tVzIm':function(_0x452fc4,_0x3bab7d){return _0x452fc4+_0x3bab7d;},'ieiJo':function(_0x54344b,_0x1dda86){return _0x54344b===_0x1dda86;},'giCax':_0x1a355b(0x1e8),'WVLkN':'cron','xObjg':_0x1a355b(0x28f),'ZyODu':_0x1a355b(0x304),'yYSVZ':_0x1a355b(0x2e7),'zFYWR':'job_handler_done'},_0x3d61ee=this[_0x1a355b(0x2b9)][_0x1da492[_0x1a355b(0x2bd)]],_0x4268d7=this['handlers'][_0x1da492['name']];if(!_0x4268d7)throw new Error('Handler\x20tidak\x20ditemukan\x20untuk\x20job:\x20'+_0x1da492['name']);const _0x39cdaa=logger[_0x1a355b(0x291)]({'jobId':_0x1da492['id'],'jobName':_0x1da492[_0x1a355b(0x2bd)]});_0x39cdaa[_0x1a355b(0x297)]({'event':_0x1ad37c['JtcPx'],'attempt':_0x1da492['attemptsMade']+0x1,'triggeredBy':_0x1da492[_0x1a355b(0x211)]?.['triggeredBy']||_0x1ad37c[_0x1a355b(0x313)]},'Job\x20started:\x20'+_0x1da492['name']+_0x1a355b(0x293)+_0x1ad37c[_0x1a355b(0x2d1)](_0x1da492['attemptsMade'],0x1)+')');const _0x3dc11e=uuidv7(),_0x1321ae=_0x1da492[_0x1a355b(0x211)]?.['triggeredBy']||'unknown',_0x90b0a5=this['insertJobHistory']({'id':_0x3dc11e,'jobName':_0x1da492[_0x1a355b(0x2bd)],'bullmqJobId':_0x1da492['id'],'triggerType':_0x1ad37c[_0x1a355b(0x2d8)](_0x1321ae,_0x1ad37c['giCax'])?'delayed':_0x1321ae==='api'?_0x1a355b(0x283):_0x1a355b(0x303),'triggeredBy':_0x1ad37c[_0x1a355b(0x2d8)](_0x1321ae,_0x1ad37c[_0x1a355b(0x2c0)])?_0x1ad37c['xObjg']:_0x1321ae,'queue':_0x3d61ee?.['queue']||_0x1ad37c[_0x1a355b(0x306)],'attempt':_0x1da492['attemptsMade']+0x1,'configFile':_0x3d61ee?.['_sourceFile']||null})['catch'](_0x15cbf5=>{const _0x43dca7=_0x1a355b;_0x39cdaa[_0x43dca7(0x21f)]({'event':'job_history_insert_bg_error','error':_0x15cbf5[_0x43dca7(0x2ad)]},_0x43dca7(0x233)+_0x15cbf5[_0x43dca7(0x2ad)]);});this[_0x1a355b(0x25e)][_0x1a355b(0x26c)](_0x1da492['id'],{'historyId':_0x3dc11e,'insertPromise':_0x90b0a5});const _0x414fe3=this[_0x1a355b(0x22c)](_0x1da492,_0x3d61ee,_0x39cdaa),_0x67025b=getComponentEngine();if(_0x67025b&&typeof _0x67025b[_0x1a355b(0x20b)]===_0x1ad37c[_0x1a355b(0x2c1)]){const _0x52a356=await _0x67025b[_0x1a355b(0x20b)]('onBeforeJobExecute',_0x414fe3,!![]);if(!_0x52a356[_0x1a355b(0x2f3)])throw new Error(_0x1a355b(0x24b)+_0x52a356['error']);}const _0x574bea=await _0x4268d7(_0x414fe3);return _0x39cdaa[_0x1a355b(0x297)]({'event':_0x1ad37c[_0x1a355b(0x216)],'result':_0x574bea},'Job\x20handler\x20completed:\x20'+_0x1da492[_0x1a355b(0x2bd)]),_0x574bea;}['buildContext'](_0x278339,_0x3b4626,_0x40355d){const _0x5262a6=a0_0x5d31c2,_0x297161={'BBuxc':_0x5262a6(0x1f0),'LqMuF':function(_0x568a85,_0x4eae26){return _0x568a85+_0x4eae26;},'LeyDP':function(_0x58a5be,_0x3ea079){return _0x58a5be||_0x3ea079;}};return{'jobId':_0x278339['id'],'jobName':_0x278339[_0x5262a6(0x2bd)],'attempt':_0x297161['LqMuF'](_0x278339['attemptsMade'],0x1),'maxAttempts':_0x3b4626?.[_0x5262a6(0x1e6)]?.['maxAttempts']||0x3,'payload':_0x278339['data']||{},'config':_0x297161[_0x5262a6(0x2a0)](_0x3b4626,{}),'db':this['getDbUtils'](),'redis':this['getRedisClient'](),'logger':_0x40355d,'kafka':this['getKafkaService'](),'cache':this[_0x5262a6(0x242)](),'updateProgress':async _0x1b73ff=>{await _0x278339['updateProgress'](_0x1b73ff);},'emit':async(_0x1517ba,_0x42aad3)=>{const _0x185de7=_0x5262a6,_0x1ca6a9=this['getKafkaService']();_0x1ca6a9&&await _0x1ca6a9['publishEvent'](_0x1517ba,_0x297161['BBuxc'],null,_0x42aad3,{'module':'job-scheduler','endpoint':_0x278339[_0x185de7(0x2bd)]});},'job':_0x278339};}['getDbType'](){const _0x2bbd42=a0_0x5d31c2;return(process[_0x2bbd42(0x2d0)][_0x2bbd42(0x28e)]||'postgresql')['toLowerCase']();}async['ensureTables'](){const _0x6df02d=a0_0x5d31c2,_0x84fe4c={'sBkkF':'job_db_unavailable','WRvFY':_0x6df02d(0x248),'hbSRR':'job_db_type_unsupported','SgZGa':_0x6df02d(0x29b),'nEAkf':_0x6df02d(0x23d),'DptYn':'duplicate','cBSkw':'job_ensure_tables_warn'},_0x510786=this['getDbUtils']();if(!_0x510786){logger['warn']({'event':_0x84fe4c['sBkkF']},'Database\x20tidak\x20tersedia,\x20skip\x20auto-create\x20job\x20tables');return;}const _0x32c417=this[_0x6df02d(0x2cd)](),_0x1ce800={'postgresql':'postgresql.sql','oracle':_0x84fe4c['WRvFY'],'mysql':_0x6df02d(0x2a5)},_0x196792=_0x1ce800[_0x32c417];if(!_0x196792){logger[_0x6df02d(0x21f)]({'event':_0x84fe4c['hbSRR'],'dbType':_0x32c417},_0x6df02d(0x2d5)+_0x32c417+_0x6df02d(0x276));return;}const _0x4fc3f4=path['join'](__dirname,'sql-scripts',_0x196792);if(!fs['existsSync'](_0x4fc3f4)){logger[_0x6df02d(0x21f)]({'event':_0x84fe4c[_0x6df02d(0x20d)],'path':_0x4fc3f4},'SQL\x20script\x20tidak\x20ditemukan:\x20'+_0x4fc3f4);return;}const _0x52f054=fs['readFileSync'](_0x4fc3f4,_0x6df02d(0x296)),_0x54d2e1=this['splitSqlStatements'](_0x52f054,_0x32c417);let _0x115621=0x0;for(const _0x5d2297 of _0x54d2e1){try{await _0x510786[_0x6df02d(0x286)](_0x5d2297),_0x115621++;}catch(_0x3e5360){const _0x57d432=(_0x3e5360['message']||'')['toLowerCase'](),_0x1a3596=_0x57d432['includes']('already\x20exists')||_0x57d432[_0x6df02d(0x30a)](_0x84fe4c['nEAkf'])||_0x57d432[_0x6df02d(0x30a)](_0x84fe4c[_0x6df02d(0x256)]);!_0x1a3596&&logger[_0x6df02d(0x21f)]({'event':_0x84fe4c[_0x6df02d(0x259)],'error':_0x3e5360[_0x6df02d(0x2ad)]},'Job\x20ensureTables\x20warning:\x20'+_0x3e5360['message']);}}logger['info']({'event':'job_tables_ensured','dbType':_0x32c417,'executed':_0x115621},_0x6df02d(0x275)+_0x32c417+')');}[a0_0x5d31c2(0x253)](_0x434ebc,_0x21d0ad){const _0x42d349=a0_0x5d31c2,_0x4c2ef6={'Bcdvn':function(_0x4f7c8b,_0x6724f8){return _0x4f7c8b===_0x6724f8;},'UuXCI':function(_0x15cefc,_0x1a4db2){return _0x15cefc>_0x1a4db2;},'wwvkM':_0x42d349(0x285)};let _0xe3eae2;return _0x21d0ad===_0x4c2ef6['wwvkM']?_0xe3eae2=_0x434ebc[_0x42d349(0x271)](/\n\/\s*(?:\n|$)/):_0xe3eae2=_0x434ebc['split'](/;\s*(?:\n|$)/),_0xe3eae2['map'](_0x46b3c4=>_0x46b3c4[_0x42d349(0x2e4)]())['filter'](_0x189d2b=>{const _0x5c8c26=_0x42d349;if(_0x4c2ef6['Bcdvn'](_0x189d2b['length'],0x0))return![];const _0x74105d=_0x189d2b[_0x5c8c26(0x271)]('\x0a')['filter'](_0x4d041e=>!_0x4d041e['trim']()[_0x5c8c26(0x2e5)]('--')&&_0x4d041e['trim']()['length']>0x0);return _0x4c2ef6['UuXCI'](_0x74105d['length'],0x0);});}async[a0_0x5d31c2(0x2ed)](_0x1b322b,_0x1856d0=a0_0x5d31c2(0x1f8),_0x25b550=null){const _0x25cd4b=a0_0x5d31c2,_0x208dc9={'AopYQ':_0x25cd4b(0x304),'sVSfz':_0x25cd4b(0x285)},_0x337d0a=this[_0x25cd4b(0x268)]();if(!_0x337d0a)return;const _0x97feda=this[_0x25cd4b(0x2cd)](),_0x3761c1=[_0x1b322b['name'],_0x1b322b[_0x25cd4b(0x1fd)]||_0x1b322b['name'],_0x1b322b[_0x25cd4b(0x2df)]||'cron',_0x1b322b['schedule']||null,_0x1b322b['queue']||_0x208dc9[_0x25cd4b(0x315)],_0x1b322b[_0x25cd4b(0x2af)],_0x1b322b['_sourceFile']||'',_0x1b322b['timeout']||0x7530,_0x1b322b[_0x25cd4b(0x1e6)]?.[_0x25cd4b(0x281)]||0x3,_0x1b322b['retry']?.[_0x25cd4b(0x21e)]||'exponential',_0x1856d0,_0x25b550];try{if(_0x97feda===_0x208dc9['sVSfz'])await _0x337d0a[_0x25cd4b(0x286)]('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)',_0x3761c1);else _0x97feda==='mysql'?await _0x337d0a[_0x25cd4b(0x286)]('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)',_0x3761c1):await _0x337d0a[_0x25cd4b(0x286)](_0x25cd4b(0x274),_0x3761c1);}catch(_0x275a79){logger[_0x25cd4b(0x21f)]({'event':_0x25cd4b(0x22f),'name':_0x1b322b[_0x25cd4b(0x2bd)],'error':_0x275a79['message']},'Failed\x20to\x20upsert\x20job\x20registry:\x20'+_0x1b322b['name']+_0x25cd4b(0x2f8)+_0x275a79[_0x25cd4b(0x2ad)]);}}async[a0_0x5d31c2(0x221)](_0x32a7b7){const _0x217168=a0_0x5d31c2,_0x36ded2={'xAyYv':'cron','TxBqu':'default','bqKIA':function(_0x4e4dff,_0x19ff68){return _0x4e4dff===_0x19ff68;},'STbwf':'oracle','STJgk':'mysql','knjkV':'running','dUYyG':_0x217168(0x29e)},_0x485d90=this[_0x217168(0x268)]();if(!_0x485d90)return;const _0x16c209=this[_0x217168(0x2cd)](),_0x292674=[_0x32a7b7['id'],_0x32a7b7['jobName'],_0x32a7b7[_0x217168(0x1f2)]||null,_0x32a7b7[_0x217168(0x22a)]||_0x36ded2['xAyYv'],_0x32a7b7[_0x217168(0x299)]||'system',_0x32a7b7[_0x217168(0x2e0)]||_0x36ded2['TxBqu'],_0x32a7b7['attempt']||0x1,_0x32a7b7['configFile']||null,process['pid']];try{if(_0x36ded2[_0x217168(0x277)](_0x16c209,_0x36ded2[_0x217168(0x2b4)]))await _0x485d90[_0x217168(0x286)]('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)',_0x292674);else _0x16c209===_0x36ded2[_0x217168(0x249)]?await _0x485d90[_0x217168(0x286)](_0x217168(0x255),_0x292674):await _0x485d90[_0x217168(0x286)]('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())',_0x292674);await this['updateRegistryStatus'](_0x32a7b7['jobName'],_0x36ded2[_0x217168(0x21a)]);}catch(_0xdef24d){logger['warn']({'event':_0x36ded2['dUYyG'],'jobName':_0x32a7b7['jobName'],'error':_0xdef24d['message']},'Failed\x20to\x20insert\x20job\x20history:\x20'+_0xdef24d['message']);}}async[a0_0x5d31c2(0x235)](_0x3b5f5b,_0x387a50,_0xf3b65d){const _0x475bb5=a0_0x5d31c2,_0x1ce16a={'uuZDX':function(_0x180aa,_0x4ed709){return _0x180aa(_0x4ed709);},'mTpJg':'oracle','iLVGe':function(_0xa832a4,_0x2ad059){return _0xa832a4===_0x2ad059;},'nfIzI':'job_history_complete_error'},_0x4f6fd9=this[_0x475bb5(0x268)]();if(!_0x4f6fd9)return;const _0x28c9d3=this['getDbType'](),_0x38fb3a=_0xf3b65d?_0x1ce16a[_0x475bb5(0x282)](String,_0xf3b65d)['substring'](0x0,0x1f4):null;try{if(_0x28c9d3===_0x1ce16a['mTpJg'])await _0x4f6fd9['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',[_0x387a50,_0x38fb3a,_0x3b5f5b]);else _0x1ce16a[_0x475bb5(0x312)](_0x28c9d3,_0x475bb5(0x225))?await _0x4f6fd9['executeQuery']('UPDATE\x20job_history\x20SET\x20status\x20=\x20\x27success\x27,\x20completed_at\x20=\x20NOW(),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20duration_ms\x20=\x20?,\x20progress\x20=\x20100,\x20result_summary\x20=\x20?\x20WHERE\x20id\x20=\x20?',[_0x387a50,_0x38fb3a,_0x3b5f5b]):await _0x4f6fd9['executeQuery'](_0x475bb5(0x2fa),[_0x387a50,_0x38fb3a,_0x3b5f5b]);}catch(_0x18f075){logger['warn']({'event':_0x1ce16a[_0x475bb5(0x20f)],'historyId':_0x3b5f5b,'error':_0x18f075['message']},'Failed\x20to\x20update\x20job\x20history\x20(completed):\x20'+_0x18f075['message']);}}async['updateJobHistoryFailed'](_0x2b15e3,_0x539100,_0x440a80,_0x4fc614,_0x5e4ee1){const _0x3452d0=a0_0x5d31c2,_0x1849fe={'UKRzd':function(_0x4a5f5f,_0x1cf2d0){return _0x4a5f5f(_0x1cf2d0);},'WYLvd':_0x3452d0(0x285),'PktBr':_0x3452d0(0x225),'EeJZo':'job_history_failed_error'},_0x5128ee=this[_0x3452d0(0x268)]();if(!_0x5128ee)return;const _0x5f14dd=this[_0x3452d0(0x2cd)](),_0x2db0d9=_0x4fc614?String(_0x4fc614)['substring'](0x0,0x3e8):null,_0xc784c4=_0x5e4ee1?_0x1849fe['UKRzd'](String,_0x5e4ee1)[_0x3452d0(0x2e9)](0x0,0xfa0):null;try{if(_0x5f14dd===_0x1849fe['WYLvd'])await _0x5128ee['executeQuery'](_0x3452d0(0x2e1),[_0x539100,_0x440a80||0x0,_0x2db0d9,_0xc784c4,_0x2b15e3]);else _0x5f14dd===_0x1849fe['PktBr']?await _0x5128ee[_0x3452d0(0x286)]('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?',[_0x539100,_0x440a80||0x0,_0x2db0d9,_0xc784c4,_0x2b15e3]):await _0x5128ee[_0x3452d0(0x286)]('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',[_0x539100,_0x440a80||0x0,_0x2db0d9,_0xc784c4,_0x2b15e3]);}catch(_0x1a231c){logger[_0x3452d0(0x21f)]({'event':_0x1849fe[_0x3452d0(0x2bb)],'historyId':_0x2b15e3,'error':_0x1a231c[_0x3452d0(0x2ad)]},_0x3452d0(0x1e7)+_0x1a231c[_0x3452d0(0x2ad)]);}}async[a0_0x5d31c2(0x2c3)](_0x1ff11e,_0x2e3595){const _0x177239=a0_0x5d31c2,_0x17ffb5={'gsILy':'mysql'},_0x3c5f30=this['getDbUtils']();if(!_0x3c5f30)return;const _0x57370d=this[_0x177239(0x2cd)]();try{if(_0x57370d==='oracle')await _0x3c5f30[_0x177239(0x286)]('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',[_0x2e3595,_0x1ff11e]);else _0x57370d===_0x17ffb5['gsILy']?await _0x3c5f30['executeQuery'](_0x177239(0x26f),[_0x2e3595,_0x1ff11e]):await _0x3c5f30[_0x177239(0x286)](_0x177239(0x24e),[_0x2e3595,_0x1ff11e]);}catch(_0x3696cb){}}async[a0_0x5d31c2(0x2e3)](_0x55d9,_0x236fb1,_0x2265f8,_0x3e57b4){const _0x39da8a=a0_0x5d31c2,_0x31a7e7={'hGjAw':'total_failed','ozTFd':function(_0x2f01cd,_0x176204){return _0x2f01cd===_0x176204;},'WBPvP':'oracle','FbmGN':'mysql','xdHDx':_0x39da8a(0x22e)},_0x4ea0b2=this[_0x39da8a(0x268)]();if(!_0x4ea0b2)return;const _0x3db4a9=this['getDbType'](),_0x23b123=_0x236fb1===_0x39da8a(0x2f3)?_0x39da8a(0x1f7):_0x31a7e7['hGjAw'];try{if(_0x31a7e7['ozTFd'](_0x3db4a9,_0x31a7e7[_0x39da8a(0x2ec)]))await _0x4ea0b2[_0x39da8a(0x286)]('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20:1,\x20last_duration_ms\x20=\x20:2,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x23b123+_0x39da8a(0x311)+_0x23b123+'\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',[_0x236fb1,_0x2265f8,_0x3e57b4,_0x55d9]);else _0x3db4a9===_0x31a7e7[_0x39da8a(0x22d)]?await _0x4ea0b2['executeQuery'](_0x39da8a(0x2f4)+_0x23b123+_0x39da8a(0x311)+_0x23b123+_0x39da8a(0x2aa),[_0x236fb1,_0x2265f8,_0x3e57b4,_0x55d9]):await _0x4ea0b2['executeQuery']('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20$1,\x20last_duration_ms\x20=\x20$2,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x23b123+'\x20=\x20'+_0x23b123+_0x39da8a(0x2d6),[_0x236fb1,_0x2265f8,_0x3e57b4,_0x55d9]);}catch(_0x2532fb){logger['warn']({'event':_0x31a7e7['xdHDx'],'jobName':_0x55d9,'error':_0x2532fb['message']},_0x39da8a(0x290)+_0x2532fb['message']);}}async[a0_0x5d31c2(0x29a)](_0x282179){const _0x4729fb=a0_0x5d31c2,_0x1e630f={'jTySa':_0x4729fb(0x303),'NXBMn':_0x4729fb(0x304),'xQcYq':function(_0x495b4c,_0x535428){return _0x495b4c===_0x535428;},'lZRgf':_0x4729fb(0x2e7)},_0x5bf1df=this[_0x4729fb(0x2b9)][_0x282179];if(!_0x5bf1df||_0x5bf1df[_0x4729fb(0x2df)]!==_0x1e630f[_0x4729fb(0x2f7)]||_0x5bf1df[_0x4729fb(0x2ff)]===![])return null;const _0x49761c=this[_0x4729fb(0x2da)][_0x5bf1df[_0x4729fb(0x2e0)]||_0x1e630f['NXBMn']];if(!_0x49761c)return null;try{if(_0x1e630f['xQcYq'](typeof _0x49761c[_0x4729fb(0x25b)],_0x1e630f['lZRgf'])){const _0x4ff5fa=await _0x49761c['getJobSchedulers'](0x0,0x64),_0xa656ba=_0x4ff5fa['find'](_0x43d59d=>_0x43d59d['name']===_0x282179);return _0xa656ba?.['next']?new Date(_0xa656ba['next']):null;}}catch(_0x19345d){}return null;}async['setAllJobsOffline'](){const _0x4535ea=a0_0x5d31c2,_0x28f020={'CjXnR':function(_0x440558,_0x277cad){return _0x440558===_0x277cad;},'ferkP':'mysql','mJmiH':_0x4535ea(0x28b)},_0xd44be2=this['getDbUtils']();if(!_0xd44be2)return;const _0x91dabe=this[_0x4535ea(0x2cd)]();try{if(_0x91dabe===_0x4535ea(0x285))await _0xd44be2['executeQuery']('UPDATE\x20job_registry\x20SET\x20status\x20=\x20\x27offline\x27,\x20next_run_at\x20=\x20NULL,\x20updated_at\x20=\x20SYSTIMESTAMP');else _0x28f020['CjXnR'](_0x91dabe,_0x28f020[_0x4535ea(0x2cf)])?await _0xd44be2[_0x4535ea(0x286)](_0x4535ea(0x2d2)):await _0xd44be2[_0x4535ea(0x286)](_0x4535ea(0x22b));}catch(_0x71474a){logger[_0x4535ea(0x21f)]({'event':_0x28f020['mJmiH'],'error':_0x71474a[_0x4535ea(0x2ad)]},'Failed\x20to\x20set\x20jobs\x20offline:\x20'+_0x71474a['message']);}}['getDbUtils'](){const _0x49309c=a0_0x5d31c2,_0x4976c5={'mAtWn':function(_0x191ba9,_0x264f9f){return _0x191ba9(_0x264f9f);},'olSKb':function(_0x123bfc,_0x284b0c){return _0x123bfc===_0x284b0c;},'ZFLNb':'mysql','DLfAD':function(_0x3ccc7d,_0x3f24bb){return _0x3ccc7d(_0x3f24bb);},'nZLND':_0x49309c(0x245),'zCFSy':function(_0x3e4553,_0x543730){return _0x3e4553(_0x543730);},'rALrV':_0x49309c(0x1fa)},_0x28c8f1=(process[_0x49309c(0x2d0)]['DB_TYPE']||_0x49309c(0x30c))['toLowerCase']();if(_0x28c8f1===_0x49309c(0x285))try{const _0x191bd4=_0x4976c5['mAtWn'](require,_0x49309c(0x2fb));return{'executeQuery':(_0x514fdc,_0x48a748)=>_0x191bd4['executeQuery'](_0x514fdc,_0x48a748),'executeTransaction':_0x449d61=>_0x191bd4['executeTransaction'](_0x449d61),'getPool':()=>_0x191bd4[_0x49309c(0x1ee)]()};}catch(_0x321f0e){return logger['warn']({'event':_0x49309c(0x20c)},_0x49309c(0x23c)),null;}if(_0x4976c5[_0x49309c(0x27e)](_0x28c8f1,_0x4976c5['ZFLNb']))try{const _0x4b79ea=_0x4976c5[_0x49309c(0x2d3)](require,_0x49309c(0x1fb));return{'executeQuery':(_0x4a710c,_0x1d210a)=>_0x4b79ea['executeQuery'](_0x4a710c,_0x1d210a),'executeTransaction':_0x37bd04=>_0x4b79ea[_0x49309c(0x2b3)](_0x37bd04),'getPool':()=>_0x4b79ea[_0x49309c(0x1ee)]()};}catch(_0x36c354){return logger['warn']({'event':_0x4976c5['nZLND']},'MySQL\x20DB\x20module\x20not\x20available'),null;}try{const _0x1460c2=_0x4976c5[_0x49309c(0x30f)](require,_0x49309c(0x26b));return{'executeQuery':_0x1460c2['executeQuery'],'executeTransaction':_0x1460c2[_0x49309c(0x2b3)],'getPool':_0x1460c2[_0x49309c(0x1ee)]};}catch(_0x212778){return logger['warn']({'event':'db_pg_unavailable'},_0x4976c5['rALrV']),null;}}[a0_0x5d31c2(0x2b5)](){const _0x2061e6=a0_0x5d31c2,_0x1d7bd9={'ykIio':function(_0x300f61,_0x3826cc){return _0x300f61(_0x3826cc);}};try{const _0x22a053=_0x1d7bd9['ykIio'](require,'../../utils/redis-client');return _0x22a053[_0x2061e6(0x222)]?_0x22a053[_0x2061e6(0x222)]():_0x22a053;}catch(_0xc4f5b3){return null;}}['getKafkaService'](){const _0x14eff7=a0_0x5d31c2,_0x3a3cf7={'WNpVB':function(_0x304b04,_0x4485aa){return _0x304b04===_0x4485aa;},'ELmCO':_0x14eff7(0x2ab),'rxDGM':function(_0x56a057,_0x38df37){return _0x56a057(_0x38df37);}};try{if(_0x3a3cf7['WNpVB'](process['env']['KAFKA_ENABLED'],_0x3a3cf7[_0x14eff7(0x261)])){const _0x5c6b37=_0x3a3cf7['rxDGM'](require,_0x14eff7(0x2a8));return _0x5c6b37['getInstance']?_0x5c6b37[_0x14eff7(0x262)]():_0x5c6b37;}}catch(_0x3b0679){}return null;}['getCacheManager'](){const _0x3d200d=a0_0x5d31c2,_0x79cda9={'kWbDi':function(_0x363bc7,_0x33bc54){return _0x363bc7(_0x33bc54);},'fiXgE':'../../utils/cache-manager'};try{return _0x79cda9['kWbDi'](require,_0x79cda9[_0x3d200d(0x273)]);}catch(_0x331bf4){return null;}}async[a0_0x5d31c2(0x2f1)](_0x303b11,_0x5bf3ad={}){const _0x2468c7=a0_0x5d31c2,_0x4e274a={'MFwYE':'default','rtWod':_0x2468c7(0x2ef),'rqWnF':'job_dispatched'},_0x2f2351=this[_0x2468c7(0x2b9)][_0x303b11];if(!_0x2f2351)throw new Error(_0x2468c7(0x236)+_0x303b11);const _0x8452f5=this['queues'][_0x2f2351[_0x2468c7(0x2e0)]||_0x4e274a[_0x2468c7(0x284)]],_0x406ab3=await _0x8452f5[_0x2468c7(0x244)](_0x303b11,{..._0x5bf3ad,'handler':_0x2f2351['handler'],'triggeredBy':_0x4e274a['rtWod']},{'attempts':_0x2f2351['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x2f2351['retry']?.['backoff']||'exponential','delay':_0x2f2351['retry']?.[_0x2468c7(0x257)]||0x1388},'timeout':_0x2f2351[_0x2468c7(0x258)]||0x7530});return logger[_0x2468c7(0x297)]({'event':_0x4e274a['rqWnF'],'jobId':_0x406ab3['id'],'name':_0x303b11,'triggeredBy':'api'},'Job\x20dispatched:\x20'+_0x303b11+_0x2468c7(0x21b)+_0x406ab3['id']+')'),{'jobId':_0x406ab3['id'],'name':_0x303b11};}async[a0_0x5d31c2(0x287)](_0x1ccd27,_0x58ddb9={},_0x408a61=0x0){const _0x2a296d=a0_0x5d31c2,_0x38cce4={'ookXb':_0x2a296d(0x304),'uavQl':_0x2a296d(0x30e),'eSYzy':'job_dispatched_delayed'},_0x8e1d92=this['jobConfigs'][_0x1ccd27];if(!_0x8e1d92)throw new Error(_0x2a296d(0x236)+_0x1ccd27);const _0x23b574=this['queues'][_0x8e1d92[_0x2a296d(0x2e0)]||_0x38cce4[_0x2a296d(0x212)]],_0x3325ac=await _0x23b574['add'](_0x1ccd27,{..._0x58ddb9,'handler':_0x8e1d92[_0x2a296d(0x2af)],'triggeredBy':_0x2a296d(0x1e8)},{'delay':_0x408a61,'attempts':_0x8e1d92[_0x2a296d(0x1e6)]?.[_0x2a296d(0x281)]||0x3,'backoff':{'type':_0x8e1d92['retry']?.[_0x2a296d(0x21e)]||_0x38cce4['uavQl'],'delay':_0x8e1d92['retry']?.[_0x2a296d(0x257)]||0x1388},'timeout':_0x8e1d92['timeout']||0x7530});return logger[_0x2a296d(0x297)]({'event':_0x38cce4['eSYzy'],'jobId':_0x3325ac['id'],'name':_0x1ccd27,'delayMs':_0x408a61},_0x2a296d(0x23e)+_0x408a61+'ms):\x20'+_0x1ccd27+'\x20(id:\x20'+_0x3325ac['id']+')'),{'jobId':_0x3325ac['id'],'name':_0x1ccd27};}async['getJobStatus'](_0x227857){const _0x5f09c2=a0_0x5d31c2;for(const _0xf1a1ce of Object[_0x5f09c2(0x2ca)](this['queues'])){const _0x695bfb=await _0xf1a1ce['getJob'](_0x227857);if(_0x695bfb){const _0x438288=await _0x695bfb[_0x5f09c2(0x2b6)]();return{'jobId':_0x695bfb['id'],'name':_0x695bfb[_0x5f09c2(0x2bd)],'state':_0x438288,'progress':_0x695bfb['progress'],'attemptsMade':_0x695bfb['attemptsMade'],'failedReason':_0x695bfb[_0x5f09c2(0x289)],'returnvalue':_0x695bfb['returnvalue'],'data':_0x695bfb[_0x5f09c2(0x211)],'timestamps':{'created':_0x695bfb[_0x5f09c2(0x2a2)],'started':_0x695bfb[_0x5f09c2(0x2d9)],'completed':_0x695bfb['finishedOn']}};}}return null;}['listJobs'](){const _0x1636f9=a0_0x5d31c2;return Object['values'](this[_0x1636f9(0x2b9)])['map'](_0x3d2897=>({'name':_0x3d2897['name'],'description':_0x3d2897[_0x1636f9(0x1fd)]||'','type':_0x3d2897['type'],'schedule':_0x3d2897['schedule'],'handler':_0x3d2897[_0x1636f9(0x2af)],'enabled':_0x3d2897[_0x1636f9(0x2ff)]!==![],'queue':_0x3d2897[_0x1636f9(0x2e0)]||_0x1636f9(0x304),'timeout':_0x3d2897[_0x1636f9(0x258)]||0x7530,'retry':_0x3d2897[_0x1636f9(0x1e6)]||{'maxAttempts':0x3,'backoff':_0x1636f9(0x30e),'initialDelay':0x1388},'metadata':_0x3d2897[_0x1636f9(0x308)]||{}}));}async['listRunning'](){const _0xe8cd96=a0_0x5d31c2,_0x4a2b89={'HLKRi':_0xe8cd96(0x254)},_0x35cc69=[];for(const [_0x53f03e,_0x5d6131]of Object['entries'](this[_0xe8cd96(0x2da)])){const _0x1f3f23=await _0x5d6131[_0xe8cd96(0x2e8)]([_0x4a2b89['HLKRi']]);for(const _0x57f712 of _0x1f3f23){_0x35cc69[_0xe8cd96(0x20a)]({'jobId':_0x57f712['id'],'name':_0x57f712['name'],'queue':_0x53f03e,'progress':_0x57f712['progress'],'attemptsMade':_0x57f712[_0xe8cd96(0x2dc)],'startedAt':_0x57f712['processedOn']});}}return _0x35cc69;}async['getHistory'](_0x1e00ec={}){const _0x20d092=a0_0x5d31c2,_0x4f74fb={'tuWmI':function(_0x3febad,_0x60b431,_0x1a400d){return _0x3febad(_0x60b431,_0x1a400d);},'VddKS':function(_0x334ba4,_0x34779f,_0x208b9a){return _0x334ba4(_0x34779f,_0x208b9a);},'Jfrbp':function(_0x295171,_0x4cc068){return _0x295171*_0x4cc068;},'vRcKR':'completed'},_0x8aa915=_0x4f74fb['tuWmI'](parseInt,_0x1e00ec['page'],0xa)||0x1,_0x1cd835=Math[_0x20d092(0x2c5)](_0x4f74fb[_0x20d092(0x27a)](parseInt,_0x1e00ec['limit'],0xa)||0x14,0x64),_0x21d66e=_0x4f74fb[_0x20d092(0x1e5)](_0x8aa915-0x1,_0x1cd835),_0x38691d=_0x21d66e+_0x1cd835-0x1,_0x5215d5=[];for(const [_0x38736f,_0x12122c]of Object[_0x20d092(0x238)](this[_0x20d092(0x2da)])){const _0x5bcf72=await _0x12122c['getJobs']([_0x4f74fb[_0x20d092(0x295)]],_0x21d66e,_0x38691d),_0x130ce6=await _0x12122c[_0x20d092(0x2e8)]([_0x20d092(0x263)],_0x21d66e,_0x38691d);for(const _0x2ea16a of[..._0x5bcf72,..._0x130ce6]){const _0x53ad77=await _0x2ea16a[_0x20d092(0x2b6)]();_0x5215d5[_0x20d092(0x20a)]({'jobId':_0x2ea16a['id'],'name':_0x2ea16a['name'],'state':_0x53ad77,'queue':_0x38736f,'attemptsMade':_0x2ea16a[_0x20d092(0x2dc)],'failedReason':_0x2ea16a[_0x20d092(0x289)],'returnvalue':_0x2ea16a[_0x20d092(0x2dd)],'timestamps':{'created':_0x2ea16a[_0x20d092(0x2a2)],'started':_0x2ea16a[_0x20d092(0x2d9)],'completed':_0x2ea16a[_0x20d092(0x1ef)]}});}}return _0x5215d5[_0x20d092(0x206)]((_0x366de2,_0x379f06)=>(_0x379f06['timestamps'][_0x20d092(0x23b)]||0x0)-(_0x366de2[_0x20d092(0x252)][_0x20d092(0x23b)]||0x0)),{'jobs':_0x5215d5[_0x20d092(0x29c)](0x0,_0x1cd835),'total':_0x5215d5[_0x20d092(0x25c)],'page':_0x8aa915,'limit':_0x1cd835};}async[a0_0x5d31c2(0x310)](_0x2fafbd){const _0x2c0364=a0_0x5d31c2,_0x440d52={'FJodZ':_0x2c0364(0x254),'proDx':_0x2c0364(0x2c2),'jzMsS':function(_0x189ff1,_0x1c2464){return _0x189ff1===_0x1c2464;},'NkJrk':'waiting','SPUoM':function(_0x31817c,_0x491677){return _0x31817c===_0x491677;},'fUzxZ':_0x2c0364(0x23a)};for(const _0x11e2ff of Object['values'](this[_0x2c0364(0x2da)])){const _0x2457e9=await _0x11e2ff['getJob'](_0x2fafbd);if(_0x2457e9){const _0x32023f=await _0x2457e9['getState']();if(_0x32023f===_0x440d52['FJodZ'])return await _0x2457e9[_0x2c0364(0x1e4)](new Error(_0x440d52[_0x2c0364(0x1f3)]),'api-cancel',!![]),{'success':!![],'message':_0x2c0364(0x24a)+_0x2fafbd+'\x20cancelled\x20(was\x20active)'};if(_0x440d52['jzMsS'](_0x32023f,_0x440d52[_0x2c0364(0x2a3)])||_0x440d52[_0x2c0364(0x278)](_0x32023f,_0x440d52[_0x2c0364(0x241)]))return await _0x2457e9['remove'](),{'success':!![],'message':'Job\x20'+_0x2fafbd+_0x2c0364(0x1fc)+_0x32023f+')'};return{'success':![],'message':'Job\x20'+_0x2fafbd+_0x2c0364(0x2ac)+_0x32023f+')'};}}return{'success':![],'message':'Job\x20'+_0x2fafbd+'\x20tidak\x20ditemukan'};}async[a0_0x5d31c2(0x20e)](){const _0x3e5008=a0_0x5d31c2,_0x41b671={'ZaXBd':'delayed','KnWSh':'paused','sSjLC':_0x3e5008(0x21c)},_0x5db2b0={};for(const [_0x4feb5c,_0x951f98]of Object['entries'](this['queues'])){try{const _0xff232e=await _0x951f98[_0x3e5008(0x200)](_0x3e5008(0x254),_0x3e5008(0x203),_0x41b671['ZaXBd'],_0x3e5008(0x263),_0x41b671['KnWSh'],_0x41b671[_0x3e5008(0x207)]);_0x5db2b0[_0x4feb5c]=_0xff232e;}catch(_0x14c167){_0x5db2b0[_0x4feb5c]={'error':_0x14c167['message']};}}const _0x2cbf8e={};for(const [_0xfca617,_0x26e1b4]of Object['entries'](this['workers'])){_0x2cbf8e[_0xfca617]={'running':_0x26e1b4[_0x3e5008(0x27c)](),'paused':_0x26e1b4['isPaused']()};}return{'initialized':this[_0x3e5008(0x2a1)],'registeredJobs':Object[_0x3e5008(0x28d)](this[_0x3e5008(0x2b9)])[_0x3e5008(0x25c)],'redisConnections':this['connections']['length'],'queues':_0x5db2b0,'workers':_0x2cbf8e};}async[a0_0x5d31c2(0x1f9)](_0x3690c1,_0xd5b19){const _0x10175b=a0_0x5d31c2,_0x18fb55={'rKHwW':'job_completed','EzrQn':function(_0x4d63bf,_0x706a6e){return _0x4d63bf-_0x706a6e;},'CrgMU':function(_0x47ab75,_0x1d8269){return _0x47ab75-_0x1d8269;},'gCBkh':'success','zzMif':function(_0x46514d,_0x4ebc88){return _0x46514d===_0x4ebc88;},'ZXqey':_0x10175b(0x2e7),'GyUpJ':'onAfterJobComplete','avUiJ':_0x10175b(0x2e6)},_0x264de7=logger['child']({'jobId':_0x3690c1['id'],'jobName':_0x3690c1[_0x10175b(0x2bd)]});_0x264de7[_0x10175b(0x297)]({'event':_0x18fb55['rKHwW'],'attemptsMade':_0x3690c1[_0x10175b(0x2dc)],'duration':_0x3690c1['finishedOn']?_0x18fb55['EzrQn'](_0x3690c1[_0x10175b(0x1ef)],_0x3690c1[_0x10175b(0x2d9)]):null},_0x10175b(0x25f)+_0x3690c1['name']);const _0x409755=this[_0x10175b(0x25e)][_0x10175b(0x2f9)](_0x3690c1['id']);if(_0x409755){if(_0x409755[_0x10175b(0x267)])await _0x409755['insertPromise'];const _0x4f2527=_0x3690c1[_0x10175b(0x1ef)]&&_0x3690c1['processedOn']?_0x18fb55[_0x10175b(0x270)](_0x3690c1[_0x10175b(0x1ef)],_0x3690c1['processedOn']):null,_0x54a9a5=typeof _0xd5b19==='string'?_0xd5b19:_0xd5b19?JSON['stringify'](_0xd5b19)[_0x10175b(0x2e9)](0x0,0x1f4):null;await this[_0x10175b(0x235)](_0x409755['historyId'],_0x4f2527,_0x54a9a5);const _0x54d69c=await this['getNextRunFromBullMQ'](_0x3690c1['name']);await this[_0x10175b(0x2e3)](_0x3690c1['name'],_0x18fb55['gCBkh'],_0x4f2527,_0x54d69c),this[_0x10175b(0x25e)][_0x10175b(0x2be)](_0x3690c1['id']);}const _0x4cfc6e=getComponentEngine();if(_0x4cfc6e&&_0x18fb55['zzMif'](typeof _0x4cfc6e['executeEventHandlers'],_0x18fb55[_0x10175b(0x247)])){const _0x3cfaf0={'jobId':_0x3690c1['id'],'jobName':_0x3690c1['name'],'result':_0xd5b19,'config':this[_0x10175b(0x2b9)][_0x3690c1['name']]||{}};_0x4cfc6e[_0x10175b(0x20b)](_0x18fb55['GyUpJ'],_0x3cfaf0,![])[_0x10175b(0x24c)](_0x2fa9d4=>{const _0x4ff642=_0x10175b;_0x264de7[_0x4ff642(0x21f)]({'event':_0x4ff642(0x239),'error':_0x2fa9d4['message']},'onAfterJobComplete\x20handler\x20error\x20(non-blocking)');});}const _0x3e598e=this['getKafkaService']();if(_0x3e598e)try{await _0x3e598e['publishEvent'](_0x10175b(0x2cc),'JOB_COMPLETED',null,{'jobId':_0x3690c1['id'],'name':_0x3690c1['name'],'result':_0xd5b19},{'module':'job-scheduler','endpoint':_0x3690c1['name']});}catch(_0x33fcdf){_0x264de7['warn']({'event':_0x18fb55['avUiJ'],'error':_0x33fcdf['message']},'Failed\x20to\x20publish\x20JOB_COMPLETED\x20to\x20Kafka');}}async['onJobFailed'](_0x3330a0,_0x294a31){const _0x3142d9=a0_0x5d31c2,_0x42d16a={'tYPLj':_0x3142d9(0x30d),'RiGMJ':function(_0x1fdadb,_0x2692bd){return _0x1fdadb<_0x2692bd;},'LmZiH':function(_0x5ba2ea,_0x39ab89){return _0x5ba2ea-_0x39ab89;},'wZnSe':'failed','YnBbq':function(_0x66b7e3,_0x35a796){return _0x66b7e3===_0x35a796;},'fAdvc':_0x3142d9(0x226)},_0x22e1eb=logger['child']({'jobId':_0x3330a0['id'],'jobName':_0x3330a0[_0x3142d9(0x2bd)]});_0x22e1eb['error']({'event':_0x3142d9(0x234),'attemptsMade':_0x3330a0['attemptsMade'],'failedReason':_0x294a31?.[_0x3142d9(0x2ad)],'willRetry':_0x42d16a[_0x3142d9(0x2c8)](_0x3330a0[_0x3142d9(0x2dc)],this['jobConfigs'][_0x3330a0['name']]?.[_0x3142d9(0x1e6)]?.[_0x3142d9(0x281)]||0x3)},'Job\x20failed:\x20'+_0x3330a0[_0x3142d9(0x2bd)]+'\x20—\x20'+_0x294a31?.['message']);const _0x433c10=this['activeHistoryIds'][_0x3142d9(0x2f9)](_0x3330a0['id']);if(_0x433c10){if(_0x433c10['insertPromise'])await _0x433c10['insertPromise'];const _0x1a711f=_0x3330a0['finishedOn']&&_0x3330a0['processedOn']?_0x42d16a[_0x3142d9(0x217)](_0x3330a0[_0x3142d9(0x1ef)],_0x3330a0[_0x3142d9(0x2d9)]):null;await this[_0x3142d9(0x2bc)](_0x433c10[_0x3142d9(0x279)],_0x1a711f,_0x3330a0[_0x3142d9(0x260)],_0x294a31?.[_0x3142d9(0x2ad)],_0x294a31?.[_0x3142d9(0x2b0)]);const _0x47d005=await this[_0x3142d9(0x29a)](_0x3330a0['name']);await this['updateRegistryCounters'](_0x3330a0[_0x3142d9(0x2bd)],_0x42d16a[_0x3142d9(0x264)],_0x1a711f,_0x47d005),this[_0x3142d9(0x25e)]['delete'](_0x3330a0['id']);}const _0x575f60=getComponentEngine();if(_0x575f60&&_0x42d16a['YnBbq'](typeof _0x575f60['executeEventHandlers'],'function')){const _0x2a4178={'jobId':_0x3330a0['id'],'jobName':_0x3330a0['name'],'error':_0x294a31?.[_0x3142d9(0x2ad)],'attemptsMade':_0x3330a0['attemptsMade'],'config':this['jobConfigs'][_0x3330a0[_0x3142d9(0x2bd)]]||{}};_0x575f60[_0x3142d9(0x20b)](_0x3142d9(0x237),_0x2a4178,![])[_0x3142d9(0x24c)](_0x4982fa=>{const _0x22aac4=_0x3142d9;_0x22e1eb[_0x22aac4(0x21f)]({'event':'after_job_failed_hook_error','error':_0x4982fa['message']},_0x42d16a['tYPLj']);});}const _0xbaf471=this[_0x3142d9(0x27b)]();if(_0xbaf471)try{await _0xbaf471['publishEvent']('restforge.jobs.failed',_0x42d16a[_0x3142d9(0x213)],null,{'jobId':_0x3330a0['id'],'name':_0x3330a0[_0x3142d9(0x2bd)],'error':_0x294a31?.['message'],'attemptsMade':_0x3330a0[_0x3142d9(0x2dc)]},{'module':_0x3142d9(0x298),'endpoint':_0x3330a0['name']});}catch(_0x492dee){_0x22e1eb['warn']({'event':_0x3142d9(0x2e6),'error':_0x492dee['message']},'Failed\x20to\x20publish\x20JOB_FAILED\x20to\x20Kafka');}}[a0_0x5d31c2(0x2ba)](_0x5a0bbc,_0x2780fd){const _0x56667e=a0_0x5d31c2,_0x218cd8={'obYML':_0x56667e(0x2fd)};logger['debug']({'event':_0x218cd8[_0x56667e(0x2a4)],'jobId':_0x5a0bbc['id'],'jobName':_0x5a0bbc['name'],'progress':_0x2780fd},'Job\x20progress:\x20'+_0x5a0bbc['name']+_0x56667e(0x2f8)+_0x2780fd+'%');}}module[a0_0x5d31c2(0x202)]=new JobManager();
@@ -1 +1 @@
1
- const a0_0x5baa58=a0_0x351d;(function(_0x11b82a,_0x264e5e){const _0x454b1a=a0_0x351d,_0xc8631a=_0x11b82a();while(!![]){try{const _0xd1b28d=parseInt(_0x454b1a(0x163))/0x1*(parseInt(_0x454b1a(0x171))/0x2)+-parseInt(_0x454b1a(0x162))/0x3+-parseInt(_0x454b1a(0x15c))/0x4*(parseInt(_0x454b1a(0x164))/0x5)+-parseInt(_0x454b1a(0x131))/0x6*(parseInt(_0x454b1a(0x18b))/0x7)+parseInt(_0x454b1a(0x15d))/0x8+-parseInt(_0x454b1a(0x16c))/0x9+parseInt(_0x454b1a(0x179))/0xa;if(_0xd1b28d===_0x264e5e)break;else _0xc8631a['push'](_0xc8631a['shift']());}catch(_0x43c02b){_0xc8631a['push'](_0xc8631a['shift']());}}}(a0_0x306b,0x30635));const express=require(a0_0x5baa58(0x16e)),{Queue}=require(a0_0x5baa58(0x14d)),Redis=require(a0_0x5baa58(0x14b)),{logger}=require(a0_0x5baa58(0x165));let readConnection=null,readQueues=null,cachedJobConfigs=null;const QUEUE_NAMES={'high-priority':'high','default':'default','low-priority':a0_0x5baa58(0x150)};function getReadQueues(){const _0x6f6d4c=a0_0x5baa58,_0x103d7b={'TLafR':'localhost','WFgQR':'error'};if(readQueues)return readQueues;const _0x54748e=process[_0x6f6d4c(0x148)]['JOB_REDIS_PREFIX']||'rf:job';readConnection=new Redis({'host':process['env'][_0x6f6d4c(0x178)]||_0x103d7b[_0x6f6d4c(0x14f)],'port':parseInt(process[_0x6f6d4c(0x148)]['REDIS_PORT'],0xa)||0x18ec,'password':process[_0x6f6d4c(0x148)][_0x6f6d4c(0x18a)]||undefined,'db':parseInt(process[_0x6f6d4c(0x148)][_0x6f6d4c(0x16b)],0xa)||0x0,'maxRetriesPerRequest':null}),readConnection['on'](_0x103d7b['WFgQR'],_0x44bbd1=>{const _0x44560e=_0x6f6d4c;logger[_0x44560e(0x161)]({'event':_0x44560e(0x13d),'error':_0x44bbd1[_0x44560e(0x15e)]},'Job\x20Routes\x20Redis\x20error:\x20'+_0x44bbd1['message']);}),readQueues={};for(const [_0x1fc02f,_0x1b96fe]of Object['entries'](QUEUE_NAMES)){readQueues[_0x1fc02f]=new Queue(_0x1b96fe,{'connection':readConnection,'prefix':_0x54748e});}return readQueues;}function a0_0x351d(_0x54f7ea,_0x531997){_0x54f7ea=_0x54f7ea-0x127;const _0x306bf4=a0_0x306b();let _0x351d6c=_0x306bf4[_0x54f7ea];if(a0_0x351d['aoCZIp']===undefined){var _0x5e14ca=function(_0x38347e){const _0x3538ea='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x464cc7='',_0x4c8c78='';for(let _0x1d2077=0x0,_0x5911f1,_0x499caa,_0x468308=0x0;_0x499caa=_0x38347e['charAt'](_0x468308++);~_0x499caa&&(_0x5911f1=_0x1d2077%0x4?_0x5911f1*0x40+_0x499caa:_0x499caa,_0x1d2077++%0x4)?_0x464cc7+=String['fromCharCode'](0xff&_0x5911f1>>(-0x2*_0x1d2077&0x6)):0x0){_0x499caa=_0x3538ea['indexOf'](_0x499caa);}for(let _0x43c523=0x0,_0x580a69=_0x464cc7['length'];_0x43c523<_0x580a69;_0x43c523++){_0x4c8c78+='%'+('00'+_0x464cc7['charCodeAt'](_0x43c523)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4c8c78);};a0_0x351d['ajfjsy']=_0x5e14ca,a0_0x351d['EVUBfJ']={},a0_0x351d['aoCZIp']=!![];}const _0x38d4c6=_0x306bf4[0x0],_0x40f757=_0x54f7ea+_0x38d4c6,_0x57da70=a0_0x351d['EVUBfJ'][_0x40f757];return!_0x57da70?(_0x351d6c=a0_0x351d['ajfjsy'](_0x351d6c),a0_0x351d['EVUBfJ'][_0x40f757]=_0x351d6c):_0x351d6c=_0x57da70,_0x351d6c;}function createJobRoutes(_0x1cc14c){const _0x396fd4=a0_0x5baa58,_0x6b4547={'MOrxB':function(_0x203edb,_0x10807b){return _0x203edb(_0x10807b);},'VoDfp':_0x396fd4(0x185),'irMoT':_0x396fd4(0x13f),'kzrOL':_0x396fd4(0x147),'xUzYL':'default','mmPDF':_0x396fd4(0x18f),'EzBDV':function(_0x40c3ab){return _0x40c3ab();},'fjLQx':'Error\x20getting\x20job\x20status','LQPcO':function(_0x30bfc6){return _0x30bfc6();},'fWTAG':'exponential','Xjixj':_0x396fd4(0x133),'sTyED':function(_0x315ccd){return _0x315ccd();},'EKiNX':function(_0x576844,_0x1e0c6f){return _0x576844===_0x1e0c6f;},'iuwDd':_0x396fd4(0x143),'BUCjl':_0x396fd4(0x184),'pSLAA':_0x396fd4(0x132),'ZoBGC':'Error\x20cancelling\x20job','vrnCg':function(_0x575f5e,_0x5bfa61,_0xff6528){return _0x575f5e(_0x5bfa61,_0xff6528);},'sUgve':function(_0x5e5cb5,_0x33fed0){return _0x5e5cb5*_0x33fed0;},'cMqZI':function(_0x5c8abd,_0x4e40a2){return _0x5c8abd-_0x4e40a2;},'eCral':function(_0x5c8219,_0x3ff0f9){return _0x5c8219+_0x3ff0f9;},'nvBRY':'completed','oCAAN':'job_history_error','CNUDZ':_0x396fd4(0x156),'fjyyM':_0x396fd4(0x14e),'lImDD':_0x396fd4(0x183),'oUUNN':'paused','onHNi':'job_queues_error','EkMWA':_0x396fd4(0x12b),'hgQXK':'unhealthy','KYTYN':function(_0xd0e975,_0xafdb85){return _0xd0e975>_0xafdb85;},'UfqDu':'/cancel/:jobId','fcKkC':_0x396fd4(0x18d)},_0x1d453d=express[_0x396fd4(0x17f)]();return _0x1cc14c&&_0x6b4547[_0x396fd4(0x13a)](Object[_0x396fd4(0x12f)](_0x1cc14c)['length'],0x0)&&(cachedJobConfigs=_0x1cc14c),_0x1d453d[_0x396fd4(0x16d)](_0x396fd4(0x188),(_0x2e91cd,_0x257575)=>{const _0x7df0ff=_0x396fd4;try{if(cachedJobConfigs){const _0x3c2a49=Object['values'](cachedJobConfigs)['map'](_0x5958bc=>({'name':_0x5958bc[_0x7df0ff(0x130)],'description':_0x5958bc['description']||'','type':_0x5958bc['type'],'schedule':_0x5958bc[_0x7df0ff(0x168)],'handler':_0x5958bc['handler'],'enabled':_0x5958bc['enabled']!==![],'queue':_0x5958bc['queue']||'default','timeout':_0x5958bc['timeout']||0x7530,'retry':_0x5958bc['retry']||{'maxAttempts':0x3,'backoff':_0x7df0ff(0x177),'initialDelay':0x1388},'metadata':_0x5958bc[_0x7df0ff(0x134)]||{}}));return _0x257575[_0x7df0ff(0x127)]({'success':!![],'data':_0x3c2a49,'total':_0x3c2a49[_0x7df0ff(0x151)]});}const _0x279354=_0x6b4547['MOrxB'](require,'fs'),_0x21e09b=_0x6b4547['MOrxB'](require,_0x6b4547[_0x7df0ff(0x153)]),_0x53892e=_0x21e09b[_0x7df0ff(0x182)](process['cwd'](),_0x7df0ff(0x18c),_0x6b4547['irMoT']);if(!_0x279354['existsSync'](_0x53892e))return _0x257575[_0x7df0ff(0x127)]({'success':!![],'data':[],'total':0x0});const _0x385210=_0x279354['readdirSync'](_0x53892e)[_0x7df0ff(0x159)](_0x4a2789=>_0x4a2789['endsWith']('.json')),_0x4bc7b9=[];for(const _0x4196ad of _0x385210){try{const _0x47016a=_0x279354['readFileSync'](_0x21e09b[_0x7df0ff(0x182)](_0x53892e,_0x4196ad),_0x6b4547[_0x7df0ff(0x141)]),_0x2a6d28=JSON['parse'](_0x47016a);_0x4bc7b9[_0x7df0ff(0x145)]({'name':_0x2a6d28[_0x7df0ff(0x130)],'description':_0x2a6d28['description']||'','type':_0x2a6d28['type'],'schedule':_0x2a6d28[_0x7df0ff(0x168)],'handler':_0x2a6d28['handler'],'enabled':_0x2a6d28['enabled']!==![],'queue':_0x2a6d28['queue']||_0x6b4547['xUzYL'],'timeout':_0x2a6d28[_0x7df0ff(0x158)]||0x7530,'retry':_0x2a6d28['retry']||{},'metadata':_0x2a6d28['metadata']||{}});}catch(_0x1a3a0d){}}_0x257575[_0x7df0ff(0x127)]({'success':!![],'data':_0x4bc7b9,'total':_0x4bc7b9['length']});}catch(_0x2fd5d6){logger[_0x7df0ff(0x161)]({'event':_0x6b4547['mmPDF'],'error':_0x2fd5d6[_0x7df0ff(0x15e)]},'Error\x20listing\x20jobs'),_0x257575[_0x7df0ff(0x166)](0x1f4)[_0x7df0ff(0x127)]({'success':![],'error':_0x2fd5d6[_0x7df0ff(0x15e)]});}}),_0x1d453d['get'](_0x396fd4(0x17b),async(_0x3144a7,_0x1eca57)=>{const _0x464b91=_0x396fd4;try{const {jobId:_0xcb3590}=_0x3144a7['params'],_0x1d38db=_0x6b4547[_0x464b91(0x13b)](getReadQueues);for(const _0x259099 of Object['values'](_0x1d38db)){const _0x1f653a=await _0x259099[_0x464b91(0x14a)](_0xcb3590);if(_0x1f653a){const _0x1d19c8=await _0x1f653a[_0x464b91(0x172)]();return _0x1eca57[_0x464b91(0x127)]({'success':!![],'data':{'jobId':_0x1f653a['id'],'name':_0x1f653a[_0x464b91(0x130)],'state':_0x1d19c8,'progress':_0x1f653a[_0x464b91(0x17d)],'attemptsMade':_0x1f653a['attemptsMade'],'failedReason':_0x1f653a[_0x464b91(0x17a)],'returnvalue':_0x1f653a[_0x464b91(0x13c)],'data':_0x1f653a[_0x464b91(0x174)],'timestamps':{'created':_0x1f653a['timestamp'],'started':_0x1f653a['processedOn'],'completed':_0x1f653a['finishedOn']}}});}}_0x1eca57[_0x464b91(0x166)](0x194)[_0x464b91(0x127)]({'success':![],'error':_0x464b91(0x12c)+_0xcb3590+'\x20tidak\x20ditemukan'});}catch(_0x5a9233){logger[_0x464b91(0x161)]({'event':'job_status_error','error':_0x5a9233['message']},_0x6b4547[_0x464b91(0x157)]),_0x1eca57[_0x464b91(0x166)](0x1f4)['json']({'success':![],'error':_0x5a9233['message']});}}),_0x1d453d['post']('/trigger/:jobName',async(_0x13f71e,_0x2da7ae)=>{const _0x6e6956=_0x396fd4;try{const {jobName:_0x2c50d7}=_0x13f71e['params'],_0x395475=_0x13f71e[_0x6e6956(0x12e)]||{};let _0x5694a8=cachedJobConfigs?.[_0x2c50d7];if(!_0x5694a8){const _0xe3fb7f=require('fs'),_0x272c1f=_0x6b4547[_0x6e6956(0x155)](require,_0x6e6956(0x185)),_0x23173f=_0x272c1f['join'](process['cwd'](),'payload',_0x6b4547[_0x6e6956(0x139)]),_0x37b5f4=_0xe3fb7f['existsSync'](_0x23173f)?_0xe3fb7f[_0x6e6956(0x142)](_0x23173f)[_0x6e6956(0x159)](_0x3bfe02=>_0x3bfe02['endsWith']('.json')):[];for(const _0x1ebea7 of _0x37b5f4){try{const _0x27ea50=_0xe3fb7f['readFileSync'](_0x272c1f[_0x6e6956(0x182)](_0x23173f,_0x1ebea7),_0x6b4547[_0x6e6956(0x141)]),_0x413498=JSON['parse'](_0x27ea50);if(_0x413498[_0x6e6956(0x130)]===_0x2c50d7){_0x5694a8=_0x413498;break;}}catch(_0x2d13b6){}}}if(!_0x5694a8)return _0x2da7ae[_0x6e6956(0x166)](0x194)['json']({'success':![],'error':_0x6e6956(0x154)+_0x2c50d7+'\x22\x20tidak\x20ditemukan\x20di\x20konfigurasi'});const _0x411df5=_0x6b4547['LQPcO'](getReadQueues),_0x59357c=_0x411df5[_0x5694a8['queue']||_0x6b4547['xUzYL']],_0x2920e9=await _0x59357c[_0x6e6956(0x18e)](_0x2c50d7,{..._0x395475,'handler':_0x5694a8[_0x6e6956(0x149)],'triggeredBy':'api'},{'attempts':_0x5694a8[_0x6e6956(0x191)]?.['maxAttempts']||0x3,'backoff':{'type':_0x5694a8['retry']?.[_0x6e6956(0x15b)]||_0x6b4547['fWTAG'],'delay':_0x5694a8['retry']?.[_0x6e6956(0x152)]||0x1388},'timeout':_0x5694a8[_0x6e6956(0x158)]||0x7530});logger[_0x6e6956(0x15a)]({'event':_0x6b4547['Xjixj'],'jobId':_0x2920e9['id'],'name':_0x2c50d7},_0x6e6956(0x12d)+_0x2c50d7+'\x20(id:\x20'+_0x2920e9['id']+')'),_0x2da7ae['json']({'success':!![],'jobId':_0x2920e9['id'],'message':_0x6e6956(0x12c)+_0x2c50d7+'\x20berhasil\x20di-trigger'});}catch(_0x1a0f84){logger['error']({'event':'job_trigger_error','error':_0x1a0f84['message']},'Error\x20triggering\x20job'),_0x2da7ae['status'](0x1f4)['json']({'success':![],'error':_0x1a0f84['message']});}}),_0x1d453d['post'](_0x6b4547['UfqDu'],async(_0x2f527c,_0xa49b1c)=>{const _0x36793e=_0x396fd4;try{const {jobId:_0x1c6415}=_0x2f527c['params'],_0x51dcf0=_0x6b4547[_0x36793e(0x190)](getReadQueues);for(const _0x2132ce of Object['values'](_0x51dcf0)){const _0x7ed427=await _0x2132ce[_0x36793e(0x14a)](_0x1c6415);if(_0x7ed427){const _0x43b0ee=await _0x7ed427['getState']();if(_0x6b4547['EKiNX'](_0x43b0ee,_0x36793e(0x14e)))return await _0x7ed427['moveToFailed'](new Error(_0x6b4547['iuwDd']),_0x36793e(0x16f),!![]),_0xa49b1c['json']({'success':!![],'message':_0x36793e(0x12c)+_0x1c6415+'\x20cancelled\x20(was\x20active)'});if(_0x43b0ee===_0x6b4547[_0x36793e(0x173)]||_0x43b0ee==='delayed')return await _0x7ed427[_0x36793e(0x137)](),_0xa49b1c[_0x36793e(0x127)]({'success':!![],'message':_0x36793e(0x12c)+_0x1c6415+_0x36793e(0x12a)+_0x43b0ee+')'});return _0xa49b1c['json']({'success':![],'message':'Job\x20'+_0x1c6415+_0x36793e(0x14c)+_0x43b0ee+')'});}}_0xa49b1c[_0x36793e(0x166)](0x194)[_0x36793e(0x127)]({'success':![],'error':'Job\x20'+_0x1c6415+'\x20tidak\x20ditemukan'});}catch(_0x3791d5){logger['error']({'event':_0x6b4547['pSLAA'],'error':_0x3791d5[_0x36793e(0x15e)]},_0x6b4547['ZoBGC']),_0xa49b1c[_0x36793e(0x166)](0x1f4)['json']({'success':![],'error':_0x3791d5[_0x36793e(0x15e)]});}}),_0x1d453d[_0x396fd4(0x16d)]('/history',async(_0x35d174,_0x23bc7b)=>{const _0x475f8b=_0x396fd4;try{const _0x353d1c=parseInt(_0x35d174[_0x475f8b(0x128)][_0x475f8b(0x129)],0xa)||0x1,_0x5218ad=Math[_0x475f8b(0x136)](_0x6b4547[_0x475f8b(0x189)](parseInt,_0x35d174[_0x475f8b(0x128)]['limit'],0xa)||0x14,0x64),_0xb310d5=_0x6b4547[_0x475f8b(0x186)](_0x353d1c-0x1,_0x5218ad),_0x4adc6a=_0x6b4547['cMqZI'](_0x6b4547['eCral'](_0xb310d5,_0x5218ad),0x1),_0x22889a=getReadQueues(),_0x14bdda=[];for(const [_0x3b5793,_0x162b1e]of Object[_0x475f8b(0x175)](_0x22889a)){const _0x344972=await _0x162b1e['getJobs']([_0x6b4547[_0x475f8b(0x181)]],_0xb310d5,_0x4adc6a),_0x1de230=await _0x162b1e[_0x475f8b(0x17e)]([_0x475f8b(0x15f)],_0xb310d5,_0x4adc6a);for(const _0x9ff3d6 of[..._0x344972,..._0x1de230]){const _0x919c8c=await _0x9ff3d6[_0x475f8b(0x172)]();_0x14bdda[_0x475f8b(0x145)]({'jobId':_0x9ff3d6['id'],'name':_0x9ff3d6[_0x475f8b(0x130)],'state':_0x919c8c,'queue':_0x3b5793,'attemptsMade':_0x9ff3d6[_0x475f8b(0x160)],'failedReason':_0x9ff3d6['failedReason'],'returnvalue':_0x9ff3d6['returnvalue'],'timestamps':{'created':_0x9ff3d6['timestamp'],'started':_0x9ff3d6[_0x475f8b(0x17c)],'completed':_0x9ff3d6[_0x475f8b(0x138)]}});}}_0x14bdda[_0x475f8b(0x16a)]((_0x189eec,_0x53febe)=>(_0x53febe[_0x475f8b(0x146)]['created']||0x0)-(_0x189eec['timestamps'][_0x475f8b(0x140)]||0x0)),_0x23bc7b[_0x475f8b(0x127)]({'success':!![],'data':_0x14bdda['slice'](0x0,_0x5218ad),'total':_0x14bdda['length'],'page':_0x353d1c,'limit':_0x5218ad});}catch(_0x38d313){logger['error']({'event':_0x6b4547['oCAAN'],'error':_0x38d313[_0x475f8b(0x15e)]},_0x6b4547[_0x475f8b(0x135)]),_0x23bc7b[_0x475f8b(0x166)](0x1f4)['json']({'success':![],'error':_0x38d313[_0x475f8b(0x15e)]});}}),_0x1d453d['get'](_0x396fd4(0x169),async(_0xb2d8e0,_0x5e2ba7)=>{const _0x22f8f5=_0x396fd4;try{const _0x142e74=getReadQueues(),_0x56fafc={};for(const [_0x1dab14,_0x2dc4fb]of Object[_0x22f8f5(0x175)](_0x142e74)){try{const _0x5f1a64=await _0x2dc4fb[_0x22f8f5(0x167)](_0x6b4547[_0x22f8f5(0x176)],_0x6b4547[_0x22f8f5(0x181)],_0x6b4547['lImDD'],_0x22f8f5(0x15f),_0x6b4547[_0x22f8f5(0x13e)],_0x22f8f5(0x184));_0x56fafc[_0x1dab14]=_0x5f1a64;}catch(_0x40fe67){_0x56fafc[_0x1dab14]={'error':_0x40fe67['message']};}}_0x5e2ba7['json']({'success':!![],'data':_0x56fafc});}catch(_0x43da1c){logger['error']({'event':_0x6b4547[_0x22f8f5(0x170)],'error':_0x43da1c[_0x22f8f5(0x15e)]},'Error\x20getting\x20queue\x20stats'),_0x5e2ba7['status'](0x1f4)['json']({'success':![],'error':_0x43da1c[_0x22f8f5(0x15e)]});}}),_0x1d453d['get'](_0x6b4547[_0x396fd4(0x187)],async(_0x1b4972,_0x443713)=>{const _0x3cbb7c=_0x396fd4;try{const _0x4eb6b0=getReadQueues(),_0x4ef076={};let _0x34052d=![];for(const [_0xe8454d,_0x5a8ee7]of Object['entries'](_0x4eb6b0)){try{const _0xc5e832=await _0x5a8ee7['getJobCounts'](_0x6b4547['fjyyM'],_0x6b4547['BUCjl'],'failed');_0x4ef076[_0xe8454d]=_0xc5e832,_0x34052d=!![];}catch(_0x121707){_0x4ef076[_0xe8454d]={'error':_0x121707['message']};}}let _0x24ce72=0x0;cachedJobConfigs&&(_0x24ce72=Object[_0x3cbb7c(0x12f)](cachedJobConfigs)['length']),_0x443713[_0x3cbb7c(0x127)]({'success':!![],'data':{'status':_0x34052d?'healthy':_0x3cbb7c(0x180),'redis':_0x34052d?_0x3cbb7c(0x144):_0x6b4547['EkMWA'],'registeredJobs':_0x24ce72,'queues':_0x4ef076}});}catch(_0x308574){_0x443713['status'](0x1f7)[_0x3cbb7c(0x127)]({'success':![],'data':{'status':_0x6b4547['hgQXK'],'error':_0x308574[_0x3cbb7c(0x15e)]}});}}),_0x1d453d;}module['exports']=createJobRoutes;function a0_0x306b(){const _0x4de883=['yNvSBg1X','ywn0AxzL','veXHzLi','Bg93','BgvUz3rO','Aw5PDgLHBerLBgf5','vM9ezNa','sM9Iici','tu9YEei','rxjYB3iGz2v0DgLUzYbQB2iGAgLZDg9YEq','zMPmuxG','DgLTzw91Da','zMLSDgvY','Aw5MBW','yMfJA29MzG','mZCXmdeYALHurgrp','odKYmtC2AgD5shPz','BwvZC2fNzq','zMfPBgvK','yxr0zw1WDhnnywrL','zxjYB3i','mJqZotm2ywTTsNn4','nxbTrfzTsW','mtb6Bg1VBMi','lI4VlI4VDxrPBhmVBg9Nz2vY','C3rHDhvZ','z2v0sM9Iq291BNrZ','C2nOzwr1Bgu','l3f1zxvLCW','C29YDa','uKvesvnFrei','mJG0mtq4rLrdCvjv','z2v0','zxHWCMvZCW','yxbPlwnHBMnLBa','B25itMK','mti4nduWrLjgvvrd','z2v0u3rHDgu','qLvdAMW','zgf0yq','zw50CMLLCW','zMP5Eu0','zxHWB25LBNrPywW','uKvesvnFse9tva','odu1nJyWsefvB2H3','zMfPBgvKuMvHC29U','l3n0yxr1CY86AM9Iswq','ChjVy2vZC2vKt24','ChjVz3jLC3m','z2v0sM9ICW','uM91DgvY','zgvNCMfKzwq','BNzcuLK','AM9PBG','zgvSyxLLza','D2fPDgLUzW','Cgf0Aa','C1vNDMu','zMnlA0m','l2XPC3q','DNjUq2C','uKvesvnFueftu1DpuKq','mtu0q0vfsxLA','Cgf5Bg9Hza','l2HLywX0Aa','ywrK','AM9Ix2XPC3rFzxjYB3i','C1r5ruq','CMv0CNK','ANnVBG','CxvLCNK','CgfNzq','ihjLBw92zwqGkhDHCYa','zgLZy29UBMvJDgvK','sM9Iia','sM9IihrYAwDNzxjLzcb2AweGqvbjoIa','yM9KEq','A2v5CW','BMfTzq','ntG5ogDcDg5uuG','AM9Ix2nHBMnLBf9LCNjVCG','AM9Ix3rYAwDNzxjLzf92AwfFyxbP','Bwv0ywrHDge','q05vrfO','BwLU','CMvTB3zL','zMLUAxnOzwrpBG','AxjnB1q','s1Luwu4','rxPcrfy','CMv0DxjUDMfSDwu','AM9Ix3jVDxrLC19YzwrPC19LCNjVCG','B1vvtK4','AM9ICW','y3jLyxrLza','A3PYt0W','CMvHzgrPCLn5BMm','sM9IignHBMnLBgXLzcb2AweGqvbj','y29UBMvJDgvK','ChvZAa','DgLTzxn0yw1WCW','DxrMoa','zw52','AgfUzgXLCG','z2v0sM9I','Aw9YzwrPCW','ihrPzgfRigjPC2eGzgKTy2fUy2vSicHZDgf0ztOG'];a0_0x306b=function(){return _0x4de883;};return a0_0x306b();}
1
+ const a0_0xa4710c=a0_0x1fa5;(function(_0x2432f1,_0xf0a6c1){const _0x2fc3c9=a0_0x1fa5,_0x49700f=_0x2432f1();while(!![]){try{const _0x5299ff=-parseInt(_0x2fc3c9(0x11d))/0x1+-parseInt(_0x2fc3c9(0x11b))/0x2+-parseInt(_0x2fc3c9(0xe2))/0x3*(-parseInt(_0x2fc3c9(0xfb))/0x4)+parseInt(_0x2fc3c9(0x10a))/0x5+-parseInt(_0x2fc3c9(0x118))/0x6*(-parseInt(_0x2fc3c9(0xc3))/0x7)+parseInt(_0x2fc3c9(0xf3))/0x8*(-parseInt(_0x2fc3c9(0xe4))/0x9)+-parseInt(_0x2fc3c9(0x107))/0xa;if(_0x5299ff===_0xf0a6c1)break;else _0x49700f['push'](_0x49700f['shift']());}catch(_0x38221e){_0x49700f['push'](_0x49700f['shift']());}}}(a0_0x2a5f,0xb49d1));function a0_0x2a5f(){const _0x35d531=['uMv4rKG','ndK4odLeENbKwK0','zxHWB3j0CW','zMLSDgvY','BNvRA0u','zgvSyxLLza','C29YDa','DgLTzw91Da','AgfUzgXLCG','zxHWB25LBNrPywW','CxvLCNK','uM91DgvY','BwfW','AM9ICW','BgLTAxq','yxbPlwnHBMnLBa','z2v0sM9I','uKvesvnFrei','y29TCgXLDgvK','AM9Ix3rYAwDNzxjFzxjYB3i','D2fPDgLUzW','CxvLDwu','wxLYq04','CMvHzgrPCLn5BMm','DhLWzq','A2v5CW','Cev6zgC','z2v0sM9ICW','Cg9ZDa','l3f1zxvLCW','y3jLyxrLza','q0fHq0y','nMPzCMfKEa','sK9cx1jfreLtx1bsruzjwa','mJDbAeTxrKS','AgvHBhrOEq','CgfYyw1Z','zMfPBgvK','yxbP','Aw5PDgLHBerLBgf5','AM9Ix3n0yxr1C19LCNjVCG','zNrMs1i','DgLTzxn0yw1W','zgLZy29UBMvJDgvK','D25dwxC','twXUBMq','rw1WAKK','DMfSDwvZ','yNvSBg1X','mZu3mZiWC09jEwPi','Bwv0ywrHDge','zgvZy3jPChrPB24','ywrK','l3n0yxr1CY86AM9Iswq','zxHPC3rZu3LUyW','BMfTzq','sKXrtM8','mti4odm5mMXRz1nVtq','C2nOzwr1Bgu','ANnVBG','sM9IifjVDxrLCYbszwrPCYbLCNjVCJOG','BgvUz3rO','AM9Ix3rYAwDNzxjLzf92AwfFyxbP','zxjYB3i','zgvMyxvSDa','uKvesvnFueftu1DpuKq','sM9Iici','s1LZC1C','CgfYC2u','mJu0mty3meDqsNrZra','Dw5OzwfSDgH5','sM9IihrYAwDNzxjLzcb2AweGqvbjoIa','mty5ntCWnxz2z0rtBG','uKvesvnFue9sva','CMv0DxjUDMfSDwu','yxr0zw1WDhnnywrL','zgf0yq','CMvTB3zL','Bg93','z2v0','ChvZAa','Cgf0Aa','zMLUAxnOzwrpBG','zw50CMLLCW','ihrPzgfRigjPC2eGzgKTy2fUy2vSicHZDgf0ztOG','sM9Iia','mte4mLfitgLmCW','yMfJA29MzG','zunPrLq','mJi5nZCWmgf3B21mvq','DxrMoa','mteWntuXr0HrtvvT','ywn0AxzL','Cgf1C2vK','C3rHDhvZ','swvqB20','DgLTzxn0yw1WCW','zMfPBgvKuMvHC29U','zw52','rxjYB3iGy2fUy2vSBgLUzYbQB2i','BwvZC2fNzq','AM9PBG','ruDpt0S','CMv0CNK','tev3BKe','zw5KC1DPDgG'];a0_0x2a5f=function(){return _0x35d531;};return a0_0x2a5f();}const express=require('express'),{Queue}=require(a0_0xa4710c(0xf2)),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_0xa4710c(0x110)};function a0_0x1fa5(_0x485c3d,_0x2d8977){_0x485c3d=_0x485c3d-0xbd;const _0x2a5f0c=a0_0x2a5f();let _0x1fa5bc=_0x2a5f0c[_0x485c3d];if(a0_0x1fa5['NjWfyB']===undefined){var _0x328b39=function(_0xb065b0){const _0x24adaf='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x16aa19='',_0x3e3869='';for(let _0x1594ad=0x0,_0x1dc1cc,_0x5bdf21,_0x504d13=0x0;_0x5bdf21=_0xb065b0['charAt'](_0x504d13++);~_0x5bdf21&&(_0x1dc1cc=_0x1594ad%0x4?_0x1dc1cc*0x40+_0x5bdf21:_0x5bdf21,_0x1594ad++%0x4)?_0x16aa19+=String['fromCharCode'](0xff&_0x1dc1cc>>(-0x2*_0x1594ad&0x6)):0x0){_0x5bdf21=_0x24adaf['indexOf'](_0x5bdf21);}for(let _0x5254de=0x0,_0x5db653=_0x16aa19['length'];_0x5254de<_0x5db653;_0x5254de++){_0x3e3869+='%'+('00'+_0x16aa19['charCodeAt'](_0x5254de)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3e3869);};a0_0x1fa5['fwIPFa']=_0x328b39,a0_0x1fa5['Qwdpwl']={},a0_0x1fa5['NjWfyB']=!![];}const _0x381079=_0x2a5f0c[0x0],_0x3f608b=_0x485c3d+_0x381079,_0x2fdc5a=a0_0x1fa5['Qwdpwl'][_0x3f608b];return!_0x2fdc5a?(_0x1fa5bc=a0_0x1fa5['fwIPFa'](_0x1fa5bc),a0_0x1fa5['Qwdpwl'][_0x3f608b]=_0x1fa5bc):_0x1fa5bc=_0x2fdc5a,_0x1fa5bc;}function getReadQueues(){const _0x44b784=a0_0xa4710c,_0x1fb405={'wnCYw':'job_routes_redis_error','KYssW':_0x44b784(0x101)};if(readQueues)return readQueues;const _0x3873d6=process['env'][_0x44b784(0xe3)]||'rf:job';readConnection=new Redis({'host':process['env']['REDIS_HOST']||'localhost','port':parseInt(process[_0x44b784(0x124)][_0x44b784(0x10b)],0xa)||0x18ec,'password':process['env'][_0x44b784(0x103)]||undefined,'db':parseInt(process[_0x44b784(0x124)][_0x44b784(0xd3)],0xa)||0x0,'maxRetriesPerRequest':null}),readConnection['on'](_0x1fb405[_0x44b784(0x105)],_0x4c4412=>{const _0x34cbad=_0x44b784;logger[_0x34cbad(0x101)]({'event':_0x1fb405[_0x34cbad(0xee)],'error':_0x4c4412['message']},_0x34cbad(0xfe)+_0x4c4412[_0x34cbad(0x126)]);}),readQueues={};for(const [_0x3e9a82,_0x23d8cd]of Object['entries'](QUEUE_NAMES)){readQueues[_0x3e9a82]=new Queue(_0x23d8cd,{'connection':readConnection,'prefix':_0x3873d6});}return readQueues;}function createJobRoutes(_0x4badc2){const _0x4d51df=a0_0xa4710c,_0x3cd1f1={'OgaXK':function(_0x2bae6e,_0x1c47a9){return _0x2bae6e(_0x1c47a9);},'EmpjI':function(_0x32b1fa,_0x1e7afb){return _0x32b1fa(_0x1e7afb);},'eCiFT':function(_0x58c9bf,_0x129fa8){return _0x58c9bf!==_0x129fa8;},'YyrCN':function(_0x63c0dc){return _0x63c0dc();},'RexFH':_0x4d51df(0xea),'iqqAf':'Error\x20getting\x20job\x20status','bzShO':'payload','CAaCF':function(_0x583958,_0x437775){return _0x583958===_0x437775;},'JLQNo':'active','Mlnnd':_0x4d51df(0xc7),'iiHHQ':'job_cancel_error','WxbUv':function(_0x2ffbd3,_0x1616c1,_0x582fd9){return _0x2ffbd3(_0x1616c1,_0x582fd9);},'YBoHd':function(_0x630a94,_0xe19972){return _0x630a94*_0xe19972;},'ftfKR':function(_0x3961ae,_0x43f053){return _0x3961ae-_0x43f053;},'kFxPS':_0x4d51df(0xe7),'IePom':function(_0x2225f5){return _0x2225f5();},'KSwWh':_0x4d51df(0xd6),'LEwnA':'degraded','pEzdg':'connected','EGOOK':_0x4d51df(0xed),'CJNog':_0x4d51df(0x108),'nukkE':function(_0x1d3877,_0x2f4db7){return _0x1d3877>_0x2f4db7;},'pelsc':'/list','wRoHB':'/health'},_0x3d38fa=express[_0x4d51df(0xcd)]();return _0x4badc2&&_0x3cd1f1[_0x4d51df(0xc6)](Object['keys'](_0x4badc2)['length'],0x0)&&(cachedJobConfigs=_0x4badc2),_0x3d38fa['get'](_0x3cd1f1['pelsc'],(_0x45108f,_0x5970de)=>{const _0x2e40f3=_0x4d51df;try{if(cachedJobConfigs){const _0x2c6bb8=Object['values'](cachedJobConfigs)[_0x2e40f3(0xce)](_0x3a4992=>({'name':_0x3a4992[_0x2e40f3(0xf9)],'description':_0x3a4992['description']||'','type':_0x3a4992['type'],'schedule':_0x3a4992[_0x2e40f3(0xfc)],'handler':_0x3a4992['handler'],'enabled':_0x3a4992['enabled']!==![],'queue':_0x3a4992['queue']||_0x2e40f3(0x102),'timeout':_0x3a4992[_0x2e40f3(0xc9)]||0x7530,'retry':_0x3a4992['retry']||{'maxAttempts':0x3,'backoff':'exponential','initialDelay':0x1388},'metadata':_0x3a4992[_0x2e40f3(0xf4)]||{}}));return _0x5970de['json']({'success':!![],'data':_0x2c6bb8,'total':_0x2c6bb8[_0x2e40f3(0xff)]});}const _0x3d3e9f=_0x3cd1f1['OgaXK'](require,'fs'),_0x533334=_0x3cd1f1[_0x2e40f3(0xf0)](require,'path'),_0x3c1374=_0x533334['join'](process['cwd'](),'payload','jobs');if(!_0x3d3e9f[_0x2e40f3(0xf8)](_0x3c1374))return _0x5970de[_0x2e40f3(0xfd)]({'success':!![],'data':[],'total':0x0});const _0x52d03e=_0x3d3e9f[_0x2e40f3(0xd9)](_0x3c1374)[_0x2e40f3(0xc5)](_0x4237d7=>_0x4237d7[_0x2e40f3(0xc1)]('.json')),_0x220df2=[];for(const _0x1e42e7 of _0x52d03e){try{const _0x214241=_0x3d3e9f['readFileSync'](_0x533334[_0x2e40f3(0xbd)](_0x3c1374,_0x1e42e7),_0x2e40f3(0x11c)),_0x454cf4=JSON['parse'](_0x214241);_0x220df2[_0x2e40f3(0x112)]({'name':_0x454cf4[_0x2e40f3(0xf9)],'description':_0x454cf4[_0x2e40f3(0xf5)]||'','type':_0x454cf4[_0x2e40f3(0xda)],'schedule':_0x454cf4[_0x2e40f3(0xfc)],'handler':_0x454cf4[_0x2e40f3(0xca)],'enabled':_0x3cd1f1[_0x2e40f3(0x11a)](_0x454cf4['enabled'],![]),'queue':_0x454cf4[_0x2e40f3(0xd7)]||_0x2e40f3(0x102),'timeout':_0x454cf4['timeout']||0x7530,'retry':_0x454cf4[_0x2e40f3(0xbf)]||{},'metadata':_0x454cf4[_0x2e40f3(0xf4)]||{}});}catch(_0x2d17ef){}}_0x5970de['json']({'success':!![],'data':_0x220df2,'total':_0x220df2[_0x2e40f3(0xff)]});}catch(_0x16da5b){logger['error']({'event':'job_list_error','error':_0x16da5b['message']},'Error\x20listing\x20jobs'),_0x5970de[_0x2e40f3(0x120)](0x1f4)[_0x2e40f3(0xfd)]({'success':![],'error':_0x16da5b['message']});}}),_0x3d38fa['get'](_0x4d51df(0xf7),async(_0x3e0187,_0x159646)=>{const _0x23d578=_0x4d51df;try{const {jobId:_0x55b0f9}=_0x3e0187['params'],_0x533571=_0x3cd1f1['YyrCN'](getReadQueues);for(const _0x58e59c of Object[_0x23d578(0xf1)](_0x533571)){const _0x450497=await _0x58e59c['getJob'](_0x55b0f9);if(_0x450497){const _0x379b3f=await _0x450497['getState']();return _0x159646[_0x23d578(0xfd)]({'success':!![],'data':{'jobId':_0x450497['id'],'name':_0x450497['name'],'state':_0x379b3f,'progress':_0x450497['progress'],'attemptsMade':_0x450497['attemptsMade'],'failedReason':_0x450497['failedReason'],'returnvalue':_0x450497['returnvalue'],'data':_0x450497[_0x23d578(0x10e)],'timestamps':{'created':_0x450497[_0x23d578(0xec)],'started':_0x450497['processedOn'],'completed':_0x450497[_0x23d578(0x114)]}}});}}_0x159646['status'](0x194)[_0x23d578(0xfd)]({'success':![],'error':'Job\x20'+_0x55b0f9+'\x20tidak\x20ditemukan'});}catch(_0x20ad11){logger[_0x23d578(0x101)]({'event':_0x3cd1f1[_0x23d578(0xc2)],'error':_0x20ad11[_0x23d578(0x126)]},_0x3cd1f1['iqqAf']),_0x159646['status'](0x1f4)['json']({'success':![],'error':_0x20ad11['message']});}}),_0x3d38fa[_0x4d51df(0xde)]('/trigger/:jobName',async(_0x44da02,_0x1cbffa)=>{const _0x32cbef=_0x4d51df;try{const {jobName:_0x567433}=_0x44da02['params'],_0x2d8aa3=_0x44da02['body']||{};let _0x195906=cachedJobConfigs?.[_0x567433];if(!_0x195906){const _0x5d81cd=require('fs'),_0x3cb355=require(_0x32cbef(0x113)),_0x4b6ae7=_0x3cb355[_0x32cbef(0xbd)](process['cwd'](),_0x3cd1f1['bzShO'],_0x32cbef(0xcf)),_0x2c52ca=_0x5d81cd['existsSync'](_0x4b6ae7)?_0x5d81cd['readdirSync'](_0x4b6ae7)['filter'](_0x8ba6be=>_0x8ba6be[_0x32cbef(0xc1)]('.json')):[];for(const _0x4e1d2b of _0x2c52ca){try{const _0x1308a9=_0x5d81cd['readFileSync'](_0x3cb355[_0x32cbef(0xbd)](_0x4b6ae7,_0x4e1d2b),'utf8'),_0x31733e=JSON[_0x32cbef(0x106)](_0x1308a9);if(_0x3cd1f1['CAaCF'](_0x31733e[_0x32cbef(0xf9)],_0x567433)){_0x195906=_0x31733e;break;}}catch(_0x33cc5a){}}}if(!_0x195906)return _0x1cbffa['status'](0x194)[_0x32cbef(0xfd)]({'success':![],'error':_0x32cbef(0x104)+_0x567433+'\x22\x20tidak\x20ditemukan\x20di\x20konfigurasi'});const _0x4e4f00=_0x3cd1f1[_0x32cbef(0xd8)](getReadQueues),_0x340f63=_0x4e4f00[_0x195906['queue']||_0x32cbef(0x102)],_0x4e2c9f=await _0x340f63[_0x32cbef(0xf6)](_0x567433,{..._0x2d8aa3,'handler':_0x195906['handler'],'triggeredBy':_0x32cbef(0xe8)},{'attempts':_0x195906['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x195906['retry']?.[_0x32cbef(0x119)]||_0x32cbef(0xcb),'delay':_0x195906[_0x32cbef(0xbf)]?.[_0x32cbef(0xe9)]||0x1388},'timeout':_0x195906['timeout']||0x7530});logger['info']({'event':_0x32cbef(0x100),'jobId':_0x4e2c9f['id'],'name':_0x567433},_0x32cbef(0x109)+_0x567433+'\x20(id:\x20'+_0x4e2c9f['id']+')'),_0x1cbffa['json']({'success':!![],'jobId':_0x4e2c9f['id'],'message':'Job\x20'+_0x567433+'\x20berhasil\x20di-trigger'});}catch(_0x49e2ca){logger[_0x32cbef(0x101)]({'event':_0x32cbef(0xd5),'error':_0x49e2ca[_0x32cbef(0x126)]},'Error\x20triggering\x20job'),_0x1cbffa['status'](0x1f4)[_0x32cbef(0xfd)]({'success':![],'error':_0x49e2ca['message']});}}),_0x3d38fa[_0x4d51df(0xde)]('/cancel/:jobId',async(_0x30dbd0,_0x3bc7fe)=>{const _0x265c7f=_0x4d51df;try{const {jobId:_0x575858}=_0x30dbd0[_0x265c7f(0xe6)],_0x535412=getReadQueues();for(const _0x1b25cb of Object[_0x265c7f(0xf1)](_0x535412)){const _0x69182e=await _0x1b25cb[_0x265c7f(0xd2)](_0x575858);if(_0x69182e){const _0x517f5c=await _0x69182e['getState']();if(_0x3cd1f1['CAaCF'](_0x517f5c,_0x3cd1f1[_0x265c7f(0xfa)]))return await _0x69182e['moveToFailed'](new Error('Job\x20cancelled\x20via\x20API'),_0x265c7f(0xd1),!![]),_0x3bc7fe[_0x265c7f(0xfd)]({'success':!![],'message':'Job\x20'+_0x575858+'\x20cancelled\x20(was\x20active)'});if(_0x517f5c==='waiting'||_0x3cd1f1[_0x265c7f(0xe1)](_0x517f5c,_0x3cd1f1[_0x265c7f(0xef)]))return await _0x69182e[_0x265c7f(0x10f)](),_0x3bc7fe['json']({'success':!![],'message':'Job\x20'+_0x575858+'\x20removed\x20(was\x20'+_0x517f5c+')'});return _0x3bc7fe['json']({'success':![],'message':_0x265c7f(0x117)+_0x575858+_0x265c7f(0x116)+_0x517f5c+')'});}}_0x3bc7fe[_0x265c7f(0x120)](0x194)[_0x265c7f(0xfd)]({'success':![],'error':'Job\x20'+_0x575858+'\x20tidak\x20ditemukan'});}catch(_0x2252fc){logger['error']({'event':_0x3cd1f1['iiHHQ'],'error':_0x2252fc[_0x265c7f(0x126)]},_0x265c7f(0x125)),_0x3bc7fe['status'](0x1f4)[_0x265c7f(0xfd)]({'success':![],'error':_0x2252fc['message']});}}),_0x3d38fa[_0x4d51df(0x111)]('/history',async(_0x35cd03,_0x340dfc)=>{const _0x3b7814=_0x4d51df;try{const _0x369d70=_0x3cd1f1['WxbUv'](parseInt,_0x35cd03['query']['page'],0xa)||0x1,_0x50feed=Math['min'](parseInt(_0x35cd03[_0x3b7814(0xcc)][_0x3b7814(0xd0)],0xa)||0x14,0x64),_0x580191=_0x3cd1f1['YBoHd'](_0x3cd1f1[_0x3b7814(0xeb)](_0x369d70,0x1),_0x50feed),_0x1b29f8=_0x580191+_0x50feed-0x1,_0x301ce1=getReadQueues(),_0x429ee7=[];for(const [_0x3a792b,_0x3b3912]of Object[_0x3b7814(0x115)](_0x301ce1)){const _0x5c0c97=await _0x3b3912[_0x3b7814(0xdd)]([_0x3b7814(0xd4)],_0x580191,_0x1b29f8),_0x3fcd48=await _0x3b3912['getJobs']([_0x3cd1f1['kFxPS']],_0x580191,_0x1b29f8);for(const _0x329805 of[..._0x5c0c97,..._0x3fcd48]){const _0x3c4221=await _0x329805['getState']();_0x429ee7['push']({'jobId':_0x329805['id'],'name':_0x329805['name'],'state':_0x3c4221,'queue':_0x3a792b,'attemptsMade':_0x329805[_0x3b7814(0x10d)],'failedReason':_0x329805[_0x3b7814(0x123)],'returnvalue':_0x329805[_0x3b7814(0x10c)],'timestamps':{'created':_0x329805['timestamp'],'started':_0x329805['processedOn'],'completed':_0x329805[_0x3b7814(0x114)]}});}}_0x429ee7[_0x3b7814(0xc8)]((_0x6222d5,_0x2b97d4)=>(_0x2b97d4[_0x3b7814(0x122)][_0x3b7814(0xe0)]||0x0)-(_0x6222d5[_0x3b7814(0x122)]['created']||0x0)),_0x340dfc[_0x3b7814(0xfd)]({'success':!![],'data':_0x429ee7['slice'](0x0,_0x50feed),'total':_0x429ee7[_0x3b7814(0xff)],'page':_0x369d70,'limit':_0x50feed});}catch(_0x1ccbdf){logger['error']({'event':'job_history_error','error':_0x1ccbdf[_0x3b7814(0x126)]},'Error\x20getting\x20job\x20history'),_0x340dfc[_0x3b7814(0x120)](0x1f4)[_0x3b7814(0xfd)]({'success':![],'error':_0x1ccbdf[_0x3b7814(0x126)]});}}),_0x3d38fa[_0x4d51df(0x111)](_0x4d51df(0xdf),async(_0x191f81,_0x4ab16a)=>{const _0x223c21=_0x4d51df;try{const _0x5b326e=_0x3cd1f1[_0x223c21(0x121)](getReadQueues),_0x4f2b86={};for(const [_0xc9fd3e,_0x5a3cc6]of Object[_0x223c21(0x115)](_0x5b326e)){try{const _0x16a87d=await _0x5a3cc6['getJobCounts'](_0x223c21(0x11e),_0x223c21(0xd4),'delayed','failed',_0x223c21(0x11f),_0x3cd1f1['KSwWh']);_0x4f2b86[_0xc9fd3e]=_0x16a87d;}catch(_0x3a5c10){_0x4f2b86[_0xc9fd3e]={'error':_0x3a5c10[_0x223c21(0x126)]};}}_0x4ab16a[_0x223c21(0xfd)]({'success':!![],'data':_0x4f2b86});}catch(_0x5bcbc2){logger['error']({'event':'job_queues_error','error':_0x5bcbc2[_0x223c21(0x126)]},'Error\x20getting\x20queue\x20stats'),_0x4ab16a['status'](0x1f4)[_0x223c21(0xfd)]({'success':![],'error':_0x5bcbc2['message']});}}),_0x3d38fa['get'](_0x3cd1f1['wRoHB'],async(_0x5478cc,_0x210c32)=>{const _0x2698c0=_0x4d51df;try{const _0x1b5e9e=getReadQueues(),_0x559829={};let _0x42bd5c=![];for(const [_0x28ad3d,_0x1ff643]of Object['entries'](_0x1b5e9e)){try{const _0x2b038b=await _0x1ff643['getJobCounts']('active',_0x3cd1f1['KSwWh'],'failed');_0x559829[_0x28ad3d]=_0x2b038b,_0x42bd5c=!![];}catch(_0x244754){_0x559829[_0x28ad3d]={'error':_0x244754['message']};}}let _0x37ed6d=0x0;cachedJobConfigs&&(_0x37ed6d=Object[_0x2698c0(0xdb)](cachedJobConfigs)['length']),_0x210c32[_0x2698c0(0xfd)]({'success':!![],'data':{'status':_0x42bd5c?_0x2698c0(0xe5):_0x3cd1f1[_0x2698c0(0xc0)],'redis':_0x42bd5c?_0x3cd1f1[_0x2698c0(0xdc)]:_0x3cd1f1[_0x2698c0(0xbe)],'registeredJobs':_0x37ed6d,'queues':_0x559829}});}catch(_0x55df4f){_0x210c32['status'](0x1f7)['json']({'success':![],'data':{'status':_0x3cd1f1['CJNog'],'error':_0x55df4f[_0x2698c0(0x126)]}});}}),_0x3d38fa;}module[a0_0xa4710c(0xc4)]=createJobRoutes;
@@ -1 +1 @@
1
- const a0_0x35dc8f=a0_0x1e91;function a0_0x254a(){const _0x3c8726=['se9kC04','wxHMDLi','iJOGC3rLCcaIlW','DhLWzq','ndriywHjsLy','Bwv0ywrHDge','rfnuzMO','Bg93lxbYAw9YAxr5','rMLLBgqGiMHHBMrSzxiIihDHAMLIigrPAxnPicHWyxrOihjLBgf0AwyGzgfYAsbZCMmVAM9ICY8P','weTLBKy','mtG0qLfxDxnm','BMfTzq','B05eDvG','wKvLBM0','DMfSAwrHDgvdB25MAwC','mZj5A0vtENG','BwLU','CxvLDwu','AM9ICW','mZzbueHLqMm','Aw5JBhvKzxm','lMPZ','mZy2mdiXmgvzvM9IyW','AgfUzgXLCG','mtzUvwPyy0i','ANnSCMK','BgvUz3rO','mJqZnJm4mxjJsfjbBW','zML4zwq','CMv0CNK','y29Uy3vYCMvUy3K','ChLnz1G','rhHKDKi','tNviwuq','mtrvAerdre4','rMLLBgqGiNjLDhj5lMjHy2TVzMyIigHHCNvZici','x2LZvMfSAwrsyw5Nzq','Chn2t0q','DMfSAwq','C3jJ','zxjYB3jZ','Aw5PDgLHBerLBgf5','zxHPC3rZu3LUyW','BwfW','Bwf4','DeHUA0e','CufUzKO','DMfSAwrHDgvszxrYEunVBMzPzW','AxnbCNjHEq','Bwf4qxr0zw1WDhm','iIb0AwrHAYb2ywXPza','yM9VBgvHBG','mZK5odKWzKDiD1rv','mtK4ntG1meXnv3npzq','AgLNAc1WCMLVCML0Eq','C2nOzwr1Bgu','mti3ndjlu29svuS','BwLUDxrL','mtqWmZq2ndrItejhyKW','q29UzMLNigHHCNvZigjLCNvWysbVyMPLy3q','zw5HyMXLza','ChvZAa','mZq3mdmWwfnkqKjh','B2jQzwn0','zgf5lw9MlxDLzwS','t3v6BKG','C3rYAw5N','rK14q1a','DgLTzw91Da','rMLLBgqGiM5HBwuIihDHAMLIigrPAxnPicHZDhjPBMCP','yMfJA29MzG','Au9nCei','q3jVBIbMAwvSzcaI','rMLLBgqGiNjLDhj5lM1HEef0DgvTChrZiIbOyxj1CYbUDw1IzxiGyw50yxjHideTmta','iIb0AwrHAYb2ywXPzc4GugLSAwHHBJOG','lMPZicHHyNnVBhv0ztOG','sgfUzgXLCIbMAwXLihrPzgfRigrPDgvTDwTHBJOGC3jJl2PVyNmV','BNvTyMvY','AM9PBG','iIbOyxj1CYbHBMDRysa+ida','tLbYuLq'];a0_0x254a=function(){return _0x3c8726;};return a0_0x254a();}function a0_0x1e91(_0x1f6839,_0x17157c){_0x1f6839=_0x1f6839-0x1a4;const _0x254ad4=a0_0x254a();let _0x1e91b2=_0x254ad4[_0x1f6839];if(a0_0x1e91['dnfRiE']===undefined){var _0x35c81f=function(_0x2e7be8){const _0x3c36b0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x32a08d='',_0x54f10e='';for(let _0x7c4244=0x0,_0x4418fc,_0x277c61,_0x5b6f74=0x0;_0x277c61=_0x2e7be8['charAt'](_0x5b6f74++);~_0x277c61&&(_0x4418fc=_0x7c4244%0x4?_0x4418fc*0x40+_0x277c61:_0x277c61,_0x7c4244++%0x4)?_0x32a08d+=String['fromCharCode'](0xff&_0x4418fc>>(-0x2*_0x7c4244&0x6)):0x0){_0x277c61=_0x3c36b0['indexOf'](_0x277c61);}for(let _0x486c4e=0x0,_0x477bc1=_0x32a08d['length'];_0x486c4e<_0x477bc1;_0x486c4e++){_0x54f10e+='%'+('00'+_0x32a08d['charCodeAt'](_0x486c4e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x54f10e);};a0_0x1e91['XZjOHX']=_0x35c81f,a0_0x1e91['LiIXer']={},a0_0x1e91['dnfRiE']=!![];}const _0x309632=_0x254ad4[0x0],_0x5af88a=_0x1f6839+_0x309632,_0x4d4a84=a0_0x1e91['LiIXer'][_0x5af88a];return!_0x4d4a84?(_0x1e91b2=a0_0x1e91['XZjOHX'](_0x1e91b2),a0_0x1e91['LiIXer'][_0x5af88a]=_0x1e91b2):_0x1e91b2=_0x4d4a84,_0x1e91b2;}(function(_0x55c135,_0x393781){const _0x1d5ccc=a0_0x1e91,_0xfb24db=_0x55c135();while(!![]){try{const _0x13a808=-parseInt(_0x1d5ccc(0x1e7))/0x1*(-parseInt(_0x1d5ccc(0x1c4))/0x2)+parseInt(_0x1d5ccc(0x1f3))/0x3+-parseInt(_0x1d5ccc(0x1a4))/0x4*(parseInt(_0x1d5ccc(0x1c0))/0x5)+-parseInt(_0x1d5ccc(0x1c1))/0x6*(-parseInt(_0x1d5ccc(0x1ae))/0x7)+parseInt(_0x1d5ccc(0x1ec))/0x8*(parseInt(_0x1d5ccc(0x1a7))/0x9)+-parseInt(_0x1d5ccc(0x1ca))/0xa*(-parseInt(_0x1d5ccc(0x1e1))/0xb)+-parseInt(_0x1d5ccc(0x1f0))/0xc*(parseInt(_0x1d5ccc(0x1c6))/0xd);if(_0x13a808===_0x393781)break;else _0xfb24db['push'](_0xfb24db['shift']());}catch(_0x3ccf5f){_0xfb24db['push'](_0xfb24db['shift']());}}}(a0_0x254a,0xaf1c8));const fs=require('fs'),path=require('path'),VALID_QUEUE_NAMES=[a0_0x35dc8f(0x1c2),'default',a0_0x35dc8f(0x1e4)],VALID_BACKOFF_TYPES=[a0_0x35dc8f(0x1a8),'exponential'],SLUG_REGEX=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;class JobValidator{[a0_0x35dc8f(0x1eb)](_0x183ff7,_0xe14bb2){const _0x5be01d=a0_0x35dc8f,_0x39c1d7={'LaYAQ':_0x5be01d(0x1c7),'DxdvB':'string','FMxCP':function(_0x2b8ef6,_0x8951d9){return _0x2b8ef6!==_0x8951d9;},'oNDuX':'Field\x20\x22schedule\x22\x20wajib\x20diisi\x20(cron\x20expression\x20string)','EYizZ':_0x5be01d(0x1e5),'XKenF':_0x5be01d(0x1bf),'nXDXy':'Field\x20\x22enabled\x22\x20harus\x20boolean','Tggjz':function(_0xdb5193,_0x187a93){return _0xdb5193!==_0x187a93;},'fytTl':'number','DSTfj':function(_0x15dc03,_0x45230d){return _0x15dc03<=_0x45230d;},'EcPnW':'Field\x20\x22timeout\x22\x20harus\x20number\x20>\x200\x20(dalam\x20ms)','NuHYD':function(_0x168da2,_0x5b10dd){return _0x168da2!==_0x5b10dd;},'qIIyi':function(_0x448356,_0x2eddec){return _0x448356!==_0x2eddec;},'tHnkA':function(_0x22aaac,_0x5c87b6){return _0x22aaac!==_0x5c87b6;},'OuznH':'Field\x20\x22retry\x22\x20harus\x20berupa\x20object','HOJsN':function(_0x21d758,_0x20abb3){return _0x21d758===_0x20abb3;},'iOMpB':'Field\x20\x22metadata\x22\x20harus\x20berupa\x20object'},_0x1b381e=[];if(!_0x183ff7||typeof _0x183ff7!=='object')return{'valid':![],'errors':[_0x39c1d7['LaYAQ']]};if(!_0x183ff7[_0x5be01d(0x1e8)]||typeof _0x183ff7['name']!==_0x39c1d7['DxdvB'])_0x1b381e[_0x5be01d(0x1c9)](_0x5be01d(0x1d1));else!SLUG_REGEX['test'](_0x183ff7[_0x5be01d(0x1e8)])&&_0x1b381e[_0x5be01d(0x1c9)]('Field\x20\x22name\x22\x20harus\x20slug\x20format\x20(lowercase,\x20dash):\x20\x22'+_0x183ff7['name']+'\x22');if(!_0x183ff7[_0x5be01d(0x1e0)]||typeof _0x183ff7['type']!==_0x5be01d(0x1ce))_0x1b381e[_0x5be01d(0x1c9)]('Field\x20\x22type\x22\x20wajib\x20diisi\x20(string)');else _0x39c1d7[_0x5be01d(0x1cf)](_0x183ff7[_0x5be01d(0x1e0)],'cron')&&_0x1b381e[_0x5be01d(0x1c9)]('Field\x20\x22type\x22\x20harus\x20\x22cron\x22,\x20ditemukan:\x20\x22'+_0x183ff7[_0x5be01d(0x1e0)]+'\x22');if(!_0x183ff7[_0x5be01d(0x1c3)]||typeof _0x183ff7['schedule']!==_0x39c1d7[_0x5be01d(0x1ac)])_0x1b381e[_0x5be01d(0x1c9)](_0x39c1d7[_0x5be01d(0x1e9)]);else{const _0x56d29b=this['validateCronExpression'](_0x183ff7[_0x5be01d(0x1c3)]);!_0x56d29b['valid']&&_0x1b381e['push'](..._0x56d29b['errors']);}if(!_0x183ff7[_0x5be01d(0x1f4)]||_0x39c1d7[_0x5be01d(0x1cf)](typeof _0x183ff7['handler'],_0x39c1d7[_0x5be01d(0x1ac)]))_0x1b381e['push'](_0x39c1d7['EYizZ']);else{if(_0xe14bb2){const _0x131b29=this['validateHandlerExists'](_0x183ff7[_0x5be01d(0x1f4)],_0xe14bb2);!_0x131b29[_0x5be01d(0x1b2)]&&_0x1b381e[_0x5be01d(0x1c9)](..._0x131b29[_0x5be01d(0x1b4)]);}}_0x183ff7[_0x5be01d(0x1c8)]!==undefined&&_0x39c1d7[_0x5be01d(0x1cf)](typeof _0x183ff7['enabled'],_0x39c1d7[_0x5be01d(0x1e6)])&&_0x1b381e['push'](_0x39c1d7['nXDXy']);_0x183ff7[_0x5be01d(0x1d0)]!==undefined&&((_0x39c1d7['Tggjz'](typeof _0x183ff7[_0x5be01d(0x1d0)],_0x39c1d7['fytTl'])||_0x39c1d7[_0x5be01d(0x1e3)](_0x183ff7['timeout'],0x0))&&_0x1b381e['push'](_0x39c1d7['EcPnW']));if(_0x39c1d7[_0x5be01d(0x1ad)](_0x183ff7['queue'],undefined)){const _0x5cfefb=this['validateQueueName'](_0x183ff7[_0x5be01d(0x1ee)]);!_0x5cfefb[_0x5be01d(0x1b2)]&&_0x1b381e['push'](..._0x5cfefb['errors']);}_0x39c1d7['FMxCP'](_0x183ff7['concurrency'],undefined)&&((_0x39c1d7[_0x5be01d(0x1cf)](typeof _0x183ff7[_0x5be01d(0x1aa)],_0x5be01d(0x1d9))||_0x183ff7['concurrency']<0x1||_0x183ff7[_0x5be01d(0x1aa)]>0x32)&&_0x1b381e['push']('Field\x20\x22concurrency\x22\x20harus\x20number\x20antara\x201-50'));if(_0x39c1d7['qIIyi'](_0x183ff7['retry'],undefined)){if(_0x39c1d7[_0x5be01d(0x1b9)](typeof _0x183ff7[_0x5be01d(0x1a9)],_0x5be01d(0x1cb))||_0x183ff7['retry']===null)_0x1b381e[_0x5be01d(0x1c9)](_0x39c1d7[_0x5be01d(0x1cd)]);else{const _0x5574c3=this[_0x5be01d(0x1bb)](_0x183ff7['retry']);!_0x5574c3['valid']&&_0x1b381e[_0x5be01d(0x1c9)](..._0x5574c3[_0x5be01d(0x1b4)]);}}return _0x183ff7[_0x5be01d(0x1e2)]!==undefined&&((typeof _0x183ff7['metadata']!==_0x5be01d(0x1cb)||_0x39c1d7['HOJsN'](_0x183ff7['metadata'],null)||Array[_0x5be01d(0x1bc)](_0x183ff7[_0x5be01d(0x1e2)]))&&_0x1b381e['push'](_0x39c1d7[_0x5be01d(0x1d3)])),{'valid':_0x39c1d7[_0x5be01d(0x1dd)](_0x1b381e[_0x5be01d(0x1a6)],0x0),'errors':_0x1b381e};}['validateCronExpression'](_0x4604a4){const _0x649f41=a0_0x35dc8f,_0xbdea43={'YVQPz':'day-of-month','HSFDh':'month','jslri':_0x649f41(0x1cc),'UWaBd':function(_0x4862c4,_0x4e1e6f){return _0x4862c4===_0x4e1e6f;}},_0x37b824=[],_0x2432b3=_0x4604a4['trim']()['split'](/\s+/);if(_0x2432b3['length']!==0x5)return _0x37b824[_0x649f41(0x1c9)]('Cron\x20expression\x20harus\x205\x20field\x20(minute\x20hour\x20day\x20month\x20weekday),\x20ditemukan\x20'+_0x2432b3[_0x649f41(0x1a6)]+'\x20field:\x20\x22'+_0x4604a4+'\x22'),{'valid':![],'errors':_0x37b824};const _0x1bc617=[_0x649f41(0x1c5),'hour',_0xbdea43['YVQPz'],_0xbdea43['HSFDh'],_0xbdea43[_0x649f41(0x1a5)]],_0x523070=[{'min':0x0,'max':0x3b},{'min':0x0,'max':0x17},{'min':0x1,'max':0x1f},{'min':0x1,'max':0xc},{'min':0x0,'max':0x7}],_0x5ddaf3=/^(\*|[0-9]+(-[0-9]+)?)([,/](\*|[0-9]+(-[0-9]+)?))*$/;for(let _0x53a054=0x0;_0x53a054<0x5;_0x53a054++){const _0x4d43cc=_0x2432b3[_0x53a054];if(_0xbdea43['UWaBd'](_0x4d43cc,'*'))continue;if(_0x4d43cc[_0x649f41(0x1f1)]('/')){const [_0x1a2b50,_0x395e38]=_0x4d43cc['split']('/');_0x1a2b50!=='*'&&!this[_0x649f41(0x1b0)](_0x1a2b50,_0x523070[_0x53a054])&&_0x37b824[_0x649f41(0x1c9)]('Cron\x20field\x20\x22'+_0x1bc617[_0x53a054]+'\x22:\x20base\x20\x22'+_0x1a2b50+_0x649f41(0x1be));const _0x191142=parseInt(_0x395e38,0xa);(isNaN(_0x191142)||_0x191142<0x1)&&_0x37b824['push'](_0x649f41(0x1d4)+_0x1bc617[_0x53a054]+_0x649f41(0x1df)+_0x395e38+_0x649f41(0x1db));continue;}const _0x4dd740=_0x4d43cc['split'](',');for(const _0xc5ced9 of _0x4dd740){!this['_isValidRange'](_0xc5ced9,_0x523070[_0x53a054])&&_0x37b824['push']('Cron\x20field\x20\x22'+_0x1bc617[_0x53a054]+'\x22:\x20nilai\x20\x22'+_0xc5ced9+'\x22\x20di\x20luar\x20range\x20'+_0x523070[_0x53a054][_0x649f41(0x1ed)]+'-'+_0x523070[_0x53a054][_0x649f41(0x1b8)]);}}return{'valid':_0x37b824['length']===0x0,'errors':_0x37b824};}[a0_0x35dc8f(0x1b0)](_0x2f6c78,_0x4480c2){const _0x323640=a0_0x35dc8f,_0x5b74e6={'LJRbd':function(_0x3b29d3,_0x186dca){return _0x3b29d3(_0x186dca);},'pyMgX':function(_0xcb39ad,_0x264a2c){return _0xcb39ad>=_0x264a2c;},'ZzWlR':function(_0x5da773,_0x839a5d,_0x18cfaf){return _0x5da773(_0x839a5d,_0x18cfaf);},'mJMpj':function(_0x2f278a,_0x52336c){return _0x2f278a(_0x52336c);},'qAnfJ':function(_0x151531,_0x5bb406){return _0x151531<=_0x5bb406;}};if(_0x2f6c78['includes']('-')){const [_0x157283,_0x26b4d7]=_0x2f6c78['split']('-')[_0x323640(0x1b7)](Number);return!isNaN(_0x157283)&&!_0x5b74e6['LJRbd'](isNaN,_0x26b4d7)&&_0x5b74e6[_0x323640(0x1ab)](_0x157283,_0x4480c2[_0x323640(0x1ed)])&&_0x157283<=_0x4480c2['max']&&_0x5b74e6['pyMgX'](_0x26b4d7,_0x4480c2['min'])&&_0x26b4d7<=_0x4480c2['max']&&_0x157283<=_0x26b4d7;}const _0x10e541=_0x5b74e6['ZzWlR'](parseInt,_0x2f6c78,0xa);return!_0x5b74e6['mJMpj'](isNaN,_0x10e541)&&_0x10e541>=_0x4480c2['min']&&_0x5b74e6[_0x323640(0x1ba)](_0x10e541,_0x4480c2['max']);}['validateQueueName'](_0x1b7a50){const _0x4f1116=a0_0x35dc8f;if(!VALID_QUEUE_NAMES[_0x4f1116(0x1f1)](_0x1b7a50))return{'valid':![],'errors':['Queue\x20\x22'+_0x1b7a50+_0x4f1116(0x1d6)+VALID_QUEUE_NAMES['join'](',\x20')]};return{'valid':!![],'errors':[]};}['validateRetryConfig'](_0x2d3d15){const _0x16a71c=a0_0x35dc8f,_0x59ef06={'psvOD':function(_0x2b20b2,_0x22d8f4){return _0x2b20b2!==_0x22d8f4;},'YxfvR':_0x16a71c(0x1d9),'rqzVl':function(_0xb96f29,_0x39ca6c){return _0xb96f29<_0x39ca6c;},'ZEenm':function(_0x10a140,_0x2c4330){return _0x10a140>_0x2c4330;},'EtZbJ':'\x22\x20atau\x20\x22','KJqlL':function(_0x154f2f,_0x523d46){return _0x154f2f!==_0x523d46;}},_0x4ec599=[];return _0x2d3d15[_0x16a71c(0x1bd)]!==undefined&&((_0x59ef06[_0x16a71c(0x1b1)](typeof _0x2d3d15[_0x16a71c(0x1bd)],_0x59ef06[_0x16a71c(0x1de)])||_0x59ef06['rqzVl'](_0x2d3d15[_0x16a71c(0x1bd)],0x1)||_0x59ef06[_0x16a71c(0x1ea)](_0x2d3d15[_0x16a71c(0x1bd)],0xa))&&_0x4ec599[_0x16a71c(0x1c9)](_0x16a71c(0x1d5))),_0x2d3d15[_0x16a71c(0x1d2)]!==undefined&&(!VALID_BACKOFF_TYPES['includes'](_0x2d3d15[_0x16a71c(0x1d2)])&&_0x4ec599['push'](_0x16a71c(0x1af)+VALID_BACKOFF_TYPES['join'](_0x59ef06['EtZbJ'])+'\x22')),_0x59ef06[_0x16a71c(0x1b1)](_0x2d3d15['initialDelay'],undefined)&&((_0x59ef06['KJqlL'](typeof _0x2d3d15['initialDelay'],_0x59ef06[_0x16a71c(0x1de)])||_0x2d3d15[_0x16a71c(0x1b5)]<=0x0)&&_0x4ec599[_0x16a71c(0x1c9)]('Field\x20\x22retry.initialDelay\x22\x20harus\x20number\x20>\x200\x20(dalam\x20ms)')),{'valid':_0x4ec599[_0x16a71c(0x1a6)]===0x0,'errors':_0x4ec599};}['validateHandlerExists'](_0x4db57a,_0x477498){const _0x3e5df8=a0_0x35dc8f,_0x4bca84={'NPrRT':_0x3e5df8(0x1b3),'qtSbw':_0x3e5df8(0x1ef)},_0x36e9b=path[_0x3e5df8(0x1da)](_0x477498,_0x4bca84[_0x3e5df8(0x1dc)],_0x4bca84['qtSbw'],_0x4db57a+_0x3e5df8(0x1f2));if(!fs[_0x3e5df8(0x1b6)](_0x36e9b))return{'valid':![],'errors':[_0x3e5df8(0x1d8)+_0x4db57a+_0x3e5df8(0x1d7)+_0x36e9b+')']};return{'valid':!![],'errors':[]};}}module['exports']=new JobValidator();
1
+ const a0_0x3a7c0c=a0_0x51b8;function a0_0x51b8(_0x47eff6,_0x2aac13){_0x47eff6=_0x47eff6-0x66;const _0x1c4ce9=a0_0x1c4c();let _0x51b811=_0x1c4ce9[_0x47eff6];if(a0_0x51b8['ecvXWj']===undefined){var _0x553f1c=function(_0xf916ba){const _0x30c727='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x55ab13='',_0x1be432='';for(let _0xd4499b=0x0,_0x57fa30,_0x43dc8d,_0x355cff=0x0;_0x43dc8d=_0xf916ba['charAt'](_0x355cff++);~_0x43dc8d&&(_0x57fa30=_0xd4499b%0x4?_0x57fa30*0x40+_0x43dc8d:_0x43dc8d,_0xd4499b++%0x4)?_0x55ab13+=String['fromCharCode'](0xff&_0x57fa30>>(-0x2*_0xd4499b&0x6)):0x0){_0x43dc8d=_0x30c727['indexOf'](_0x43dc8d);}for(let _0x570403=0x0,_0x58cf4d=_0x55ab13['length'];_0x570403<_0x58cf4d;_0x570403++){_0x1be432+='%'+('00'+_0x55ab13['charCodeAt'](_0x570403)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1be432);};a0_0x51b8['sSzLQl']=_0x553f1c,a0_0x51b8['PTNqMa']={},a0_0x51b8['ecvXWj']=!![];}const _0x44776f=_0x1c4ce9[0x0],_0x49a0e0=_0x47eff6+_0x44776f,_0x419d2e=a0_0x51b8['PTNqMa'][_0x49a0e0];return!_0x419d2e?(_0x51b811=a0_0x51b8['sSzLQl'](_0x51b811),a0_0x51b8['PTNqMa'][_0x49a0e0]=_0x51b811):_0x51b811=_0x419d2e,_0x51b811;}function a0_0x1c4c(){const _0x619132=['nhLvwg1uwG','lMPZ','DMfSAwrHDgvszxrYEunVBMzPzW','nta0zuXlAwzH','x2LZvMfSAwrsyw5Nzq','rMLLBgqGiMnVBMn1CNjLBMn5iIbOyxj1CYbUDw1IzxiGyw50yxjHideTnta','DMfSAwq','END3r20','BuLTv1e','uxvLDwuGiG','mtK3mtK2tKvZAMjV','C2nOzwr1Bgu','mZe1mZeYm2jgzg12DW','mvryuvbcvG','AxnbCNjHEq','mJK5nty4nLrdsfv1Bq','y2rAu24','rMLLBgqGiM5HBwuIihDHAMLIigrPAxnPicHZDhjPBMCP','DhLWzq','yM9VBgvHBG','Bwf4','BwLU','nJqYodm3ohzOqxbZCG','t2X4yNi','iIb0AwrHAYb2ywXPzc4GugLSAwHHBJOG','zgf5lw9Mlw1VBNrO','DMfSAwrHDgvdCM9UrxHWCMvZC2LVBG','mtbrzLLRv2u','zxjYB3jZ','AgLNAc1WCMLVCML0Eq','t1jOvKO','qNfttvu','sgfUzgXLCIbMAwXLihrPzgfRigrPDgvTDwTHBJOGC3jJl2PVyNmV','AM9PBG','sgrst0m','BgvUz3rO','D255s3q','iIbHDgf1ici','BNvTyMvY','rMLLBgqGiNr5CguIihDHAMLIigrPAxnPicHZDhjPBMCP','DhzPquy','B2jQzwn0','Aw5JBhvKzxm','wwnOr1u','s2PsBgO','BhLIuLa','Bw9UDgG','AgfUzgXLCG','yMfJA29MzG','DMfSAwrHDgviyw5KBgvYrxHPC3rZ','lMPZicHHyNnVBhv0ztOG','BwLUDxrL','rMLLBgqGiNjLDhj5lM1HEef0DgvTChrZiIbOyxj1CYbUDw1IzxiGyw50yxjHideTmta','thj5uxy','ChvZAa','Aw5PDgLHBerLBgf5','Ag50u0e','DgLTzw91Da','DgvZDa','C3bSAxq','zxHWB3j0CW','rMLLBgqGiNr5CguIigHHCNvZicjJCM9UiIWGzgL0zw11A2fUoIaI','y29Uy3vYCMvUy3K','BuXnBu0','rMLLBgqGiMvUywjSzwqIigHHCNvZigjVB2XLyw4','vejnCve','AM9ICW','C3rYAw5N','mtm1nZe1neH5A0v1uq','CMv0CNK','BMfTzq','rMLLBgqGiNrPBwvVDxqIigHHCNvZig51BwjLCIa+idaGkgrHBgfTig1Zkq','Bwf4qxr0zw1WDhm','t3LIs24','zML4zwq','ndi0mJeWnxrOuuHbAa','zxHWB25LBNrPywW','DMfSAwrHDgvrDwv1zu5HBwu','EvzJt3K','igzPzwXKoIaI','DMfSAwrHDgvdB25MAwC','CKv5thK','rKDmuuq','q3jVBIbMAwvSzcaI','zxHPC3rZu3LUyW','otC2mJLiqxHgvw8'];a0_0x1c4c=function(){return _0x619132;};return a0_0x1c4c();}(function(_0x53cadb,_0x44d848){const _0x139b99=a0_0x51b8,_0x3ab7a8=_0x53cadb();while(!![]){try{const _0xd8ce98=-parseInt(_0x139b99(0x9d))/0x1*(-parseInt(_0x139b99(0x7e))/0x2)+-parseInt(_0x139b99(0x9a))/0x3*(-parseInt(_0x139b99(0x90))/0x4)+parseInt(_0x139b99(0x85))/0x5+-parseInt(_0x139b99(0x9f))/0x6+parseInt(_0x139b99(0x8f))/0x7*(-parseInt(_0x139b99(0x93))/0x8)+parseInt(_0x139b99(0x9c))/0x9*(-parseInt(_0x139b99(0xab))/0xa)+parseInt(_0x139b99(0xa6))/0xb;if(_0xd8ce98===_0x44d848)break;else _0x3ab7a8['push'](_0x3ab7a8['shift']());}catch(_0x5dee56){_0x3ab7a8['push'](_0x3ab7a8['shift']());}}}(a0_0x1c4c,0x6d947));const fs=require('fs'),path=require('path'),VALID_QUEUE_NAMES=[a0_0x3a7c0c(0xad),'default','low-priority'],VALID_BACKOFF_TYPES=[a0_0x3a7c0c(0x84),a0_0x3a7c0c(0x86)],SLUG_REGEX=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;class JobValidator{[a0_0x3a7c0c(0x8a)](_0x3bb981,_0xb2eb6){const _0x4693e6=a0_0x3a7c0c,_0x88ee47={'vnLkT':function(_0x506f9b,_0x284626){return _0x506f9b!==_0x284626;},'TBMqQ':function(_0x1c37d1,_0x348d3c){return _0x1c37d1!==_0x348d3c;},'KPAph':_0x4693e6(0xa1),'zwwGm':'cron','jkLTK':function(_0x245a31,_0x190f29){return _0x245a31!==_0x190f29;},'wnyKt':'Field\x20\x22schedule\x22\x20wajib\x20diisi\x20(cron\x20expression\x20string)','hqKpK':function(_0x4782b6,_0x1516f1){return _0x4782b6!==_0x1516f1;},'YchGU':'string','EzTmr':_0x4693e6(0xa3),'zRHtn':_0x4693e6(0xb6),'FGLQD':_0x4693e6(0x81),'OybKn':function(_0x10c04d,_0x357e2d){return _0x10c04d!==_0x357e2d;},'cdZSn':function(_0x55adc9,_0x16a3c0){return _0x55adc9!==_0x16a3c0;},'TYtQz':function(_0x34d51f,_0x40c32f){return _0x34d51f<_0x40c32f;},'ZHjMi':function(_0x13f9bb,_0x5b8c22){return _0x13f9bb>_0x5b8c22;},'BqSMU':_0x4693e6(0x95),'mLMmM':function(_0x21936b,_0x4422f0){return _0x21936b!==_0x4422f0;},'tviAF':_0x4693e6(0xb9),'lybRP':'Field\x20\x22metadata\x22\x20harus\x20berupa\x20object','rEyLy':function(_0x5216b0,_0x4ae120){return _0x5216b0===_0x4ae120;}},_0x1c9747=[];if(!_0x3bb981||_0x88ee47['vnLkT'](typeof _0x3bb981,'object'))return{'valid':![],'errors':['Config\x20harus\x20berupa\x20object']};if(!_0x3bb981[_0x4693e6(0x80)]||_0x88ee47[_0x4693e6(0x7b)](typeof _0x3bb981['name'],_0x4693e6(0x7d)))_0x1c9747[_0x4693e6(0x70)](_0x88ee47['KPAph']);else!SLUG_REGEX[_0x4693e6(0x74)](_0x3bb981['name'])&&_0x1c9747['push']('Field\x20\x22name\x22\x20harus\x20slug\x20format\x20(lowercase,\x20dash):\x20\x22'+_0x3bb981['name']+'\x22');if(!_0x3bb981['type']||typeof _0x3bb981[_0x4693e6(0xa2)]!=='string')_0x1c9747['push'](_0x4693e6(0xb7));else _0x3bb981[_0x4693e6(0xa2)]!==_0x88ee47[_0x4693e6(0x97)]&&_0x1c9747[_0x4693e6(0x70)](_0x4693e6(0x77)+_0x3bb981[_0x4693e6(0xa2)]+'\x22');if(!_0x3bb981[_0x4693e6(0x9b)]||_0x88ee47['jkLTK'](typeof _0x3bb981[_0x4693e6(0x9b)],'string'))_0x1c9747[_0x4693e6(0x70)](_0x88ee47[_0x4693e6(0xb4)]);else{const _0x37aa56=this[_0x4693e6(0xaa)](_0x3bb981['schedule']);!_0x37aa56['valid']&&_0x1c9747['push'](..._0x37aa56[_0x4693e6(0xac)]);}if(!_0x3bb981[_0x4693e6(0x69)]||_0x88ee47['hqKpK'](typeof _0x3bb981['handler'],_0x88ee47[_0x4693e6(0xbb)]))_0x1c9747[_0x4693e6(0x70)]('Field\x20\x22handler\x22\x20wajib\x20diisi\x20(path\x20relatif\x20dari\x20src/jobs/)');else{if(_0xb2eb6){const _0x4cdb0b=this[_0x4693e6(0x6b)](_0x3bb981[_0x4693e6(0x69)],_0xb2eb6);!_0x4cdb0b[_0x4693e6(0x96)]&&_0x1c9747[_0x4693e6(0x70)](..._0x4cdb0b[_0x4693e6(0xac)]);}}_0x3bb981['enabled']!==undefined&&typeof _0x3bb981['enabled']!==_0x88ee47['EzTmr']&&_0x1c9747['push'](_0x4693e6(0x7a));_0x3bb981['timeout']!==undefined&&((typeof _0x3bb981[_0x4693e6(0x73)]!==_0x88ee47['zRHtn']||_0x3bb981[_0x4693e6(0x73)]<=0x0)&&_0x1c9747[_0x4693e6(0x70)](_0x88ee47[_0x4693e6(0x8c)]));if(_0x88ee47[_0x4693e6(0x83)](_0x3bb981['queue'],undefined)){const _0xd08403=this[_0x4693e6(0x87)](_0x3bb981['queue']);!_0xd08403['valid']&&_0x1c9747[_0x4693e6(0x70)](..._0xd08403['errors']);}_0x3bb981[_0x4693e6(0x78)]!==undefined&&((_0x88ee47[_0x4693e6(0xa0)](typeof _0x3bb981['concurrency'],_0x4693e6(0xb6))||_0x88ee47['TYtQz'](_0x3bb981['concurrency'],0x1)||_0x88ee47['ZHjMi'](_0x3bb981['concurrency'],0x32))&&_0x1c9747[_0x4693e6(0x70)](_0x88ee47[_0x4693e6(0xaf)]));if(_0x88ee47[_0x4693e6(0x79)](_0x3bb981['retry'],undefined)){if(typeof _0x3bb981['retry']!=='object'||_0x3bb981[_0x4693e6(0x7f)]===null)_0x1c9747[_0x4693e6(0x70)]('Field\x20\x22retry\x22\x20harus\x20berupa\x20object');else{const _0x2518ec=this['validateRetryConfig'](_0x3bb981[_0x4693e6(0x7f)]);!_0x2518ec[_0x4693e6(0x96)]&&_0x1c9747['push'](..._0x2518ec['errors']);}}return _0x88ee47['OybKn'](_0x3bb981['metadata'],undefined)&&((typeof _0x3bb981['metadata']!==_0x88ee47[_0x4693e6(0xb8)]||_0x3bb981['metadata']===null||Array[_0x4693e6(0x9e)](_0x3bb981['metadata']))&&_0x1c9747[_0x4693e6(0x70)](_0x88ee47[_0x4693e6(0x67)])),{'valid':_0x88ee47[_0x4693e6(0x8b)](_0x1c9747[_0x4693e6(0xb3)],0x0),'errors':_0x1c9747};}['validateCronExpression'](_0x34e728){const _0x5a6b88=a0_0x3a7c0c,_0x213d56={'Hymzs':function(_0x518ae4,_0x3312b6){return _0x518ae4!==_0x3312b6;},'mQwrA':'hour','lpYOI':function(_0x15737c,_0x192f0f){return _0x15737c<_0x192f0f;},'XTciq':function(_0x1bf833,_0x45d0e8){return _0x1bf833===_0x45d0e8;},'ORhVJ':function(_0x46607d,_0xd1625b,_0x4380d1){return _0x46607d(_0xd1625b,_0x4380d1);}},_0xd654b=[],_0x212b0f=_0x34e728['trim']()[_0x5a6b88(0x75)](/\s+/);if(_0x213d56['Hymzs'](_0x212b0f[_0x5a6b88(0xb3)],0x5))return _0xd654b[_0x5a6b88(0x70)]('Cron\x20expression\x20harus\x205\x20field\x20(minute\x20hour\x20day\x20month\x20weekday),\x20ditemukan\x20'+_0x212b0f['length']+_0x5a6b88(0x89)+_0x34e728+'\x22'),{'valid':![],'errors':_0xd654b};const _0x4f042e=[_0x5a6b88(0x6d),_0x213d56['mQwrA'],_0x5a6b88(0xa9),_0x5a6b88(0x68),'day-of-week'],_0x49ef91=[{'min':0x0,'max':0x3b},{'min':0x0,'max':0x17},{'min':0x1,'max':0x1f},{'min':0x1,'max':0xc},{'min':0x0,'max':0x7}],_0x501083=/^(\*|[0-9]+(-[0-9]+)?)([,/](\*|[0-9]+(-[0-9]+)?))*$/;for(let _0x1a24b9=0x0;_0x213d56['lpYOI'](_0x1a24b9,0x5);_0x1a24b9++){const _0x2a3dee=_0x212b0f[_0x1a24b9];if(_0x213d56['XTciq'](_0x2a3dee,'*'))continue;if(_0x2a3dee[_0x5a6b88(0xba)]('/')){const [_0x55eb24,_0x41d319]=_0x2a3dee[_0x5a6b88(0x75)]('/');_0x55eb24!=='*'&&!this[_0x5a6b88(0x94)](_0x55eb24,_0x49ef91[_0x1a24b9])&&_0xd654b['push']('Cron\x20field\x20\x22'+_0x4f042e[_0x1a24b9]+'\x22:\x20base\x20\x22'+_0x55eb24+'\x22\x20tidak\x20valid');const _0x41c3ae=_0x213d56[_0x5a6b88(0xae)](parseInt,_0x41d319,0xa);(isNaN(_0x41c3ae)||_0x41c3ae<0x1)&&_0xd654b[_0x5a6b88(0x70)](_0x5a6b88(0x8d)+_0x4f042e[_0x1a24b9]+'\x22:\x20step\x20\x22/'+_0x41d319+'\x22\x20harus\x20angka\x20>\x200');continue;}const _0x3e076c=_0x2a3dee['split'](',');for(const _0x31508f of _0x3e076c){!this['_isValidRange'](_0x31508f,_0x49ef91[_0x1a24b9])&&_0xd654b[_0x5a6b88(0x70)]('Cron\x20field\x20\x22'+_0x4f042e[_0x1a24b9]+'\x22:\x20nilai\x20\x22'+_0x31508f+'\x22\x20di\x20luar\x20range\x20'+_0x49ef91[_0x1a24b9][_0x5a6b88(0xa5)]+'-'+_0x49ef91[_0x1a24b9][_0x5a6b88(0xa4)]);}}return{'valid':_0xd654b[_0x5a6b88(0xb3)]===0x0,'errors':_0xd654b};}['_isValidRange'](_0x51344e,_0xc87d4f){const _0x1dcd7d=a0_0x3a7c0c,_0x54c657={'RxGVS':function(_0x46af09,_0x48e17e){return _0x46af09(_0x48e17e);},'yVcOy':function(_0x189997,_0x1c0a77){return _0x189997>=_0x1c0a77;},'ZOtKe':function(_0x3a02af,_0x5df1d1){return _0x3a02af<=_0x5df1d1;},'HdROC':function(_0x2b5474,_0xc56207,_0x9d50c7){return _0x2b5474(_0xc56207,_0x9d50c7);},'deVuE':function(_0x2a096f,_0x13ca7c){return _0x2a096f(_0x13ca7c);},'LryQv':function(_0x4a627c,_0x1fdee9){return _0x4a627c>=_0x1fdee9;}};if(_0x51344e[_0x1dcd7d(0xba)]('-')){const [_0x2aa521,_0x5a68df]=_0x51344e['split']('-')['map'](Number);return!isNaN(_0x2aa521)&&!_0x54c657['RxGVS'](isNaN,_0x5a68df)&&_0x2aa521>=_0xc87d4f['min']&&_0x2aa521<=_0xc87d4f[_0x1dcd7d(0xa4)]&&_0x54c657[_0x1dcd7d(0x88)](_0x5a68df,_0xc87d4f[_0x1dcd7d(0xa5)])&&_0x5a68df<=_0xc87d4f['max']&&_0x54c657['ZOtKe'](_0x2aa521,_0x5a68df);}const _0x485040=_0x54c657[_0x1dcd7d(0xb2)](parseInt,_0x51344e,0xa);return!_0x54c657['deVuE'](isNaN,_0x485040)&&_0x54c657[_0x1dcd7d(0x6f)](_0x485040,_0xc87d4f['min'])&&_0x54c657['ZOtKe'](_0x485040,_0xc87d4f[_0x1dcd7d(0xa4)]);}[a0_0x3a7c0c(0x87)](_0x5a12fa){const _0x18681a=a0_0x3a7c0c;if(!VALID_QUEUE_NAMES[_0x18681a(0xba)](_0x5a12fa))return{'valid':![],'errors':[_0x18681a(0x99)+_0x5a12fa+_0x18681a(0xa8)+VALID_QUEUE_NAMES['join'](',\x20')]};return{'valid':!![],'errors':[]};}[a0_0x3a7c0c(0x92)](_0x3f29bd){const _0x280e13=a0_0x3a7c0c,_0x3af35c={'nLEaZ':function(_0x2cfd67,_0x44ca97){return _0x2cfd67!==_0x44ca97;},'NMrWF':_0x280e13(0xb6),'CDxul':function(_0x5f4d86,_0x1ed6f9){return _0x5f4d86<_0x1ed6f9;},'mImWQ':_0x280e13(0x6e),'hntSA':function(_0xbb5f1a,_0x253b3e){return _0xbb5f1a!==_0x253b3e;},'Olxbr':'Field\x20\x22retry.initialDelay\x22\x20harus\x20number\x20>\x200\x20(dalam\x20ms)'},_0x34c2c4=[];return _0x3af35c['nLEaZ'](_0x3f29bd[_0x280e13(0x82)],undefined)&&((typeof _0x3f29bd['maxAttempts']!==_0x3af35c['NMrWF']||_0x3af35c['CDxul'](_0x3f29bd['maxAttempts'],0x1)||_0x3f29bd['maxAttempts']>0xa)&&_0x34c2c4[_0x280e13(0x70)](_0x3af35c[_0x280e13(0x98)])),_0x3f29bd[_0x280e13(0x6a)]!==undefined&&(!VALID_BACKOFF_TYPES['includes'](_0x3f29bd['backoff'])&&_0x34c2c4['push']('Field\x20\x22retry.backoff\x22\x20harus\x20\x22'+VALID_BACKOFF_TYPES[_0x280e13(0xb1)](_0x280e13(0xb5))+'\x22')),_0x3f29bd[_0x280e13(0x71)]!==undefined&&((_0x3af35c[_0x280e13(0x72)](typeof _0x3f29bd[_0x280e13(0x71)],_0x280e13(0xb6))||_0x3f29bd['initialDelay']<=0x0)&&_0x34c2c4[_0x280e13(0x70)](_0x3af35c[_0x280e13(0xa7)])),{'valid':_0x34c2c4['length']===0x0,'errors':_0x34c2c4};}[a0_0x3a7c0c(0x6b)](_0x36b4a5,_0xaa5a29){const _0x45af84=a0_0x3a7c0c,_0xc32b5e={'KjRlj':_0x45af84(0x7c)},_0x1d67ea=path[_0x45af84(0xb1)](_0xaa5a29,'src',_0xc32b5e[_0x45af84(0x66)],_0x36b4a5+_0x45af84(0x91));if(!fs[_0x45af84(0x8e)](_0x1d67ea))return{'valid':![],'errors':[_0x45af84(0xb0)+_0x36b4a5+_0x45af84(0x6c)+_0x1d67ea+')']};return{'valid':!![],'errors':[]};}}module[a0_0x3a7c0c(0x76)]=new JobValidator();