@restforgejs/platform 4.3.4 → 4.3.8

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 (178) 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/payload/migrate.js +96 -0
  5. package/generators/lib/migrate/backend-payload-migrator.js +221 -0
  6. package/generators/lib/migrate/field-type-resolver.js +319 -0
  7. package/generators/lib/migrate/label-generator.js +38 -0
  8. package/generators/lib/migrate/migrate-runner.js +187 -0
  9. package/generators/lib/migrate/naming.js +43 -0
  10. package/generators/lib/migrate/sql-parser.js +124 -0
  11. package/generators/lib/payload/endpoint-schema-validator.js +181 -181
  12. package/generators/lib/payload/payload-runner.js +1313 -1218
  13. package/generators/lib/payload/schema-diff.js +460 -460
  14. package/generators/lib/templates/dashboard-catalog.js +1 -1
  15. package/generators/lib/templates/db-connection-env.js +1 -1
  16. package/generators/lib/templates/dbschema-catalog.js +1 -1
  17. package/generators/lib/templates/field-validation-catalog.js +1 -1
  18. package/generators/lib/templates/mysql-template.js +1 -1
  19. package/generators/lib/templates/oracle-template.js +1 -1
  20. package/generators/lib/templates/postgres-template.js +1 -1
  21. package/generators/lib/templates/query-declarative-catalog.js +1 -1
  22. package/generators/lib/templates/sqlite-template.js +1 -1
  23. package/integrity-manifest.json +18 -18
  24. package/node_modules/readdir-glob/node_modules/brace-expansion/index.js +1 -1
  25. package/node_modules/readdir-glob/node_modules/brace-expansion/package.json +1 -1
  26. package/package.json +1 -1
  27. package/scripts/verify-integrity.js +1 -1
  28. package/server.js +1 -1
  29. package/src/components/handlers/adjust_handler.js +1 -1
  30. package/src/components/handlers/audit_handler.js +1 -1
  31. package/src/components/handlers/delete_handler.js +1 -1
  32. package/src/components/handlers/export_handler.js +1 -1
  33. package/src/components/handlers/import_handler.js +1 -1
  34. package/src/components/handlers/insert_handler.js +1 -1
  35. package/src/components/handlers/update_handler.js +1 -1
  36. package/src/components/handlers/upload_handler.js +1 -1
  37. package/src/components/handlers/workflow_handler.js +1 -1
  38. package/src/components/integrations/webhook.js +1 -1
  39. package/src/consumers/baseConsumer.js +1 -1
  40. package/src/consumers/declarativeMapper.js +1 -1
  41. package/src/consumers/handlers/apiHandler.js +1 -1
  42. package/src/consumers/handlers/consoleHandler.js +1 -1
  43. package/src/consumers/handlers/databaseHandler.js +1 -1
  44. package/src/consumers/handlers/index.js +1 -1
  45. package/src/consumers/handlers/kafkaHandler.js +1 -1
  46. package/src/consumers/index.js +1 -1
  47. package/src/consumers/messageTransformer.js +1 -1
  48. package/src/consumers/validator.js +1 -1
  49. package/src/core/db/dialect/base-dialect.js +1 -1
  50. package/src/core/db/dialect/index.js +1 -1
  51. package/src/core/db/dialect/mysql-dialect.js +1 -1
  52. package/src/core/db/dialect/oracle-dialect.js +1 -1
  53. package/src/core/db/dialect/postgres-dialect.js +1 -1
  54. package/src/core/db/dialect/sqlite-dialect.js +1 -1
  55. package/src/core/db/flatten-helper.js +1 -1
  56. package/src/core/db/query-builder-error.js +1 -1
  57. package/src/core/db/query-builder.js +1 -1
  58. package/src/core/db/relation-helper.js +1 -1
  59. package/src/core/handlers/delete_handler.js +1 -1
  60. package/src/core/handlers/insert_handler.js +1 -1
  61. package/src/core/handlers/update_handler.js +1 -1
  62. package/src/core/models/base-model.js +1 -1
  63. package/src/core/utils/cache-manager.js +1 -1
  64. package/src/core/utils/component-engine.js +1 -1
  65. package/src/core/utils/context-builder.js +1 -1
  66. package/src/core/utils/datetime-formatter.js +1 -1
  67. package/src/core/utils/datetime-parser.js +1 -1
  68. package/src/core/utils/db.js +1 -1
  69. package/src/core/utils/logger.js +1 -1
  70. package/src/core/utils/payload-loader.js +1 -1
  71. package/src/core/utils/security-checks.js +1 -1
  72. package/src/middleware/body-options.js +1 -1
  73. package/src/middleware/cors.js +1 -1
  74. package/src/middleware/idempotency.js +1 -1
  75. package/src/middleware/rate-limiter.js +1 -1
  76. package/src/middleware/request-logger.js +1 -1
  77. package/src/middleware/security-headers.js +1 -1
  78. package/src/models/base-model-mysql.js +1 -1
  79. package/src/models/base-model-oracle.js +1 -1
  80. package/src/models/base-model-sqlite.js +1 -1
  81. package/src/models/base-model.js +1 -1
  82. package/src/pro/caching/redis-client.js +1 -1
  83. package/src/pro/caching/redis-helper.js +1 -1
  84. package/src/pro/consumers/baseConsumer.js +1 -1
  85. package/src/pro/consumers/declarativeMapper.js +1 -1
  86. package/src/pro/consumers/handlers/apiHandler.js +1 -1
  87. package/src/pro/consumers/handlers/consoleHandler.js +1 -1
  88. package/src/pro/consumers/handlers/databaseHandler.js +1 -1
  89. package/src/pro/consumers/handlers/index.js +1 -1
  90. package/src/pro/consumers/handlers/kafkaHandler.js +1 -1
  91. package/src/pro/consumers/index.js +1 -1
  92. package/src/pro/consumers/messageTransformer.js +1 -1
  93. package/src/pro/consumers/validator.js +1 -1
  94. package/src/pro/database/base-model-mysql.js +1 -1
  95. package/src/pro/database/base-model-oracle.js +1 -1
  96. package/src/pro/database/base-model-sqlite.js +1 -1
  97. package/src/pro/database/db-mysql.js +1 -1
  98. package/src/pro/database/db-oracle.js +1 -1
  99. package/src/pro/database/db-sqlite.js +1 -1
  100. package/src/pro/excel/excel-generator.js +1 -1
  101. package/src/pro/excel/excel-parser.js +1 -1
  102. package/src/pro/excel/export-service.js +1 -1
  103. package/src/pro/excel/export_handler.js +1 -1
  104. package/src/pro/excel/import-service.js +1 -1
  105. package/src/pro/excel/import-validator.js +1 -1
  106. package/src/pro/excel/import_handler.js +1 -1
  107. package/src/pro/excel/upsert-builder.js +1 -1
  108. package/src/pro/idgen/idgen-routes.js +1 -1
  109. package/src/pro/integrations/lookup-resolver.js +1 -1
  110. package/src/pro/integrations/upload-handler-v2.js +1 -1
  111. package/src/pro/integrations/upload-handler.js +1 -1
  112. package/src/pro/integrations/webhook.js +1 -1
  113. package/src/pro/locking/lock-routes.js +1 -1
  114. package/src/pro/locking/resource-lock-manager.js +1 -1
  115. package/src/pro/messaging/kafkaConsumerService.js +1 -1
  116. package/src/pro/messaging/kafkaService.js +1 -1
  117. package/src/pro/messaging/messagehubService.js +1 -1
  118. package/src/pro/messaging/rabbitmqService.js +1 -1
  119. package/src/pro/scheduler/job-manager.js +1 -1
  120. package/src/pro/scheduler/job-routes.js +1 -1
  121. package/src/pro/scheduler/job-validator.js +1 -1
  122. package/src/pro/storage/base-storage-provider.js +1 -1
  123. package/src/pro/storage/file-metadata-helper.js +1 -1
  124. package/src/pro/storage/index.js +1 -1
  125. package/src/pro/storage/local-storage-provider.js +1 -1
  126. package/src/pro/storage/s3-storage-provider.js +1 -1
  127. package/src/pro/storage/upload-cleanup-job.js +1 -1
  128. package/src/pro/storage/upload-cleanup-scheduler.js +1 -1
  129. package/src/pro/storage/upload-pending-tracker.js +1 -1
  130. package/src/pro/websocket/broadcast-helper.js +1 -1
  131. package/src/pro/websocket/index.js +1 -1
  132. package/src/pro/websocket/livesync-server.js +1 -1
  133. package/src/pro/websocket/ws-broadcaster.js +1 -1
  134. package/src/services/export-service.js +1 -1
  135. package/src/services/import-service.js +1 -1
  136. package/src/services/kafkaConsumerService.js +1 -1
  137. package/src/services/kafkaService.js +1 -1
  138. package/src/services/messagehubService.js +1 -1
  139. package/src/services/rabbitmqService.js +1 -1
  140. package/src/utils/cache-invalidation-registry.js +1 -1
  141. package/src/utils/cache-manager.js +1 -1
  142. package/src/utils/component-engine.js +1 -1
  143. package/src/utils/config-extractor.js +1 -1
  144. package/src/utils/consumerLogger.js +1 -1
  145. package/src/utils/context-builder.js +1 -1
  146. package/src/utils/dashboard-helpers.js +1 -1
  147. package/src/utils/dateHelper.js +1 -1
  148. package/src/utils/datetime-formatter.js +1 -1
  149. package/src/utils/datetime-parser.js +1 -1
  150. package/src/utils/db-bootstrap.js +1 -1
  151. package/src/utils/db-mysql.js +1 -1
  152. package/src/utils/db-oracle.js +1 -1
  153. package/src/utils/db-sqlite.js +1 -1
  154. package/src/utils/db.js +1 -1
  155. package/src/utils/demo-generator.js +1 -1
  156. package/src/utils/excel-generator.js +1 -1
  157. package/src/utils/excel-parser.js +1 -1
  158. package/src/utils/file-watcher.js +1 -1
  159. package/src/utils/id-generator.js +1 -1
  160. package/src/utils/idempotency-manager.js +1 -1
  161. package/src/utils/import-validator.js +1 -1
  162. package/src/utils/license-client.js +1 -1
  163. package/src/utils/lock-manager.js +1 -1
  164. package/src/utils/logger.js +1 -1
  165. package/src/utils/lookup-resolver.js +1 -1
  166. package/src/utils/payload-loader.js +1 -1
  167. package/src/utils/processor-response.js +1 -1
  168. package/src/utils/rabbitmq.js +1 -1
  169. package/src/utils/redis-client.js +1 -1
  170. package/src/utils/redis-helper.js +1 -1
  171. package/src/utils/request-scope.js +1 -1
  172. package/src/utils/security-checks.js +1 -1
  173. package/src/utils/service-resolver.js +1 -1
  174. package/src/utils/shutdown-coordinator.js +1 -1
  175. package/src/utils/trusted-keys.js +1 -1
  176. package/src/utils/upload-handler.js +1 -1
  177. package/src/utils/upsert-builder.js +1 -1
  178. package/src/utils/workflow-hook-executor.js +1 -1
@@ -1 +1 @@
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
+ const a0_0x7718f0=a0_0x44ec;function a0_0x4a7e(){const _0x1b45b9=['xsbcAw5KAw5Nia','otrVEMTbzgi','x3jLDhj5','wM14Dxu','mte1nZi2nen0rwPKrG','zxHJAgfUz2u','Ec1KzwfKlwXLDhrLCI1YB3v0Aw5NlwTLEq','lxjLDhj5lwv4y2HHBMDL','CxvLDwu','yxnZzxj0rxHJAgfUz2u','A1Hywgm','Awz3rLu','Dg9tDhjPBMC','BwvZC2fNzuHHBMrSzxjZ','C3vIC3rYAw5N','qMHwzLG','y29UDgvUDa','uMnWAxy','C3rHCNrdB25ZDw1L','C2v0DxbdB2XSzwn0B3jjBMzYyxn0CNvJDhvYzq','xsbgywLSzwqGDg8GCMvJB25Uzwn0ihrVifjHyMjPDe1roIa','yxnZzxj0uxvLDwu','y3jLyxrLzc9YzwfKEq','xsbfCNjVCIbWCM9JzxnZAw5Nig1LC3nHz2u6ia','ywnR','AxndB25Uzwn0zwq','y2HHBM5LBa','xsbrDwv1zsa','y29UzMLN','sKzosKm','m3WXFdj8n3W1Fdz8nhWW','C3rYAw5NAwz5','CwHiwxu','twvZC2fNzsbJB250zw50oIa','lI4VDxrPBhmVzgf0zuHLBhbLCG','r3fMr1a','ouXzrNLMtW','CMfUzg9T','y2XVC2u','ihDPDgGGreXy','y29UBMvJDgLVBG','nJaWnJeYrLDUsxL0','xsbnzxnZywDLihnLBNqGDg8GuMfIyML0tveGC3vJy2vZC2z1BgX5oG','qxPUyxq','zxjYB3i','Aw5JBhvKzxm','BfvfCxO','xsbgywLSzwqGDg8GC3rHCNqGy29UC3vTAw5NoIa','rxjYB3i6ia','ChvIBgLZAa','veLYEKm','BgvUz3rO','CMvJB25Uzwn0','xsbgywLSzwqGDg8GCgfYC2uGBwvZC2fNztOG','ignYzwf0zwqVCMvHzhK','C1rUDwq','BwvZC2fNzq','mtC1mdHzz0zMDfq','mtbHyunOyLO','AM1gs3K','y1virKu','ignYzwf0zwq','CMvNAxn0zxjnzxnZywDLsgfUzgXLCG','oda1yML2AuvK','mtG1mdK5nunyy29itq','ChjVCgvYDgLLCW','xsbtDwnJzxnZzNvSBhKGCMvJB25Uzwn0zwqGDg8GuMfIyML0tve','xsbszxrYEsbLEgnOyw5Nzsa','xsbbBhrLCM5HDgL2zsbXDwv1zsa','rhj3rue','uezRt3C','xsbnzxnZywDLigHHBMrSzxiGBxvZDcbIzsbHigz1BMn0Aw9U','ngPIvenzEa','EMjUve4','nJu0murKwMvjwq','BMfJAW','yMLUzff1zxvL','lI4VDxrPBhmVCMfIyML0Bxe','xsbfEgnOyw5Nzsa','ChjVy2vZC01LC3nHz2u','xsboBYbOyw5KBgvYCYbYzwDPC3rLCMvKihrVihbYB2nLC3mGBwvZC2fNzxm','C2vUzfrVuxvLDwu','ChjLzMv0y2G','mZe0mJa1nLL6vg9XDG','xsbnzxnZywDLigHHBMrSzxiGCMvNAxn0zxjLza','CM91DgLUz0TLEq','CNLuA0C','BxLJCvy','xsbfCNjVCIbJCMvHDgLUzYbXDwv1zsa','zNjVBq','nJK4mti0oujpyKHHyG','vhj5Aw5NigfSDgvYBMf0AxzLihf1zxvLig5HBwuUlI4','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','Bg9N','Aw5PDgLHBgL6zq','CgfYC2u','Dg9ju09tDhjPBMC','xsbbDhrLBxb0Aw5NihrVihjLy29UBMvJDcb0BYbsywjIAxrnus4UlG','xsbnzxnZywDLihbYB2nLC3nLzcbZDwnJzxnZzNvSBhK'];a0_0x4a7e=function(){return _0x1b45b9;};return a0_0x4a7e();}(function(_0x3136b0,_0x432980){const _0x9d5f2e=a0_0x44ec,_0x3929d6=_0x3136b0();while(!![]){try{const _0x312a62=parseInt(_0x9d5f2e(0x105))/0x1*(parseInt(_0x9d5f2e(0x11f))/0x2)+-parseInt(_0x9d5f2e(0x10e))/0x3*(-parseInt(_0x9d5f2e(0x103))/0x4)+-parseInt(_0x9d5f2e(0xfb))/0x5+-parseInt(_0x9d5f2e(0xf4))/0x6*(-parseInt(_0x9d5f2e(0xfa))/0x7)+-parseInt(_0x9d5f2e(0x122))/0x8*(parseInt(_0x9d5f2e(0xdf))/0x9)+-parseInt(_0x9d5f2e(0xf5))/0xa*(parseInt(_0x9d5f2e(0x115))/0xb)+parseInt(_0x9d5f2e(0xe4))/0xc;if(_0x312a62===_0x432980)break;else _0x3929d6['push'](_0x3929d6['shift']());}catch(_0x4a58ed){_0x3929d6['push'](_0x3929d6['shift']());}}}(a0_0x4a7e,0x90424));const {createConnection,createChannel,setupInfrastructure,closeConnection,getConfig}=require(a0_0x7718f0(0x108)),{formatDate}=require(a0_0x7718f0(0xdd));class RabbitMQService{constructor(){const _0xefcba=a0_0x7718f0,_0xa60424={'DrwEA':function(_0xa2bcfe){return _0xa2bcfe();}};this[_0xefcba(0xe3)]=null,this[_0xefcba(0xd5)]=null,this[_0xefcba(0xd7)]=_0xa60424[_0xefcba(0x100)](getConfig),this['isConnected']=![],this[_0xefcba(0x12b)]=[];}async[a0_0x7718f0(0x119)](){const _0x21f9ea=a0_0x7718f0,_0xf424ca={'BhVfX':function(_0x45839b,_0x5da43a){return _0x45839b(_0x5da43a);},'Aznat':_0x21f9ea(0xd9),'slvwa':_0x21f9ea(0xe1),'cUHFE':function(_0x42c899,_0x203b83){return _0x42c899(_0x203b83);},'mycqV':function(_0x50fc04,_0x15a751){return _0x50fc04(_0x15a751);}};try{const _0xc36f35=_0xf424ca[_0x21f9ea(0xe6)]['split']('|');let _0x427ad8=0x0;while(!![]){switch(_0xc36f35[_0x427ad8++]){case'0':return!![];case'1':this[_0x21f9ea(0xd5)]=await _0xf424ca[_0x21f9ea(0x12d)](createChannel,this['connection']);continue;case'2':await this['channel'][_0x21f9ea(0x10d)](0x1);continue;case'3':this[_0x21f9ea(0xe3)]=await createConnection();continue;case'4':this['connection']['on'](_0xf424ca['slvwa'],()=>{const _0xcb115e=_0x21f9ea;console['error']('['+_0xf424ca[_0xcb115e(0x12d)](formatDate,new Date())+']\x20Koneksi\x20RabbitMQ\x20terputus'),this['isConnected']=![],setTimeout(()=>this['reconnect'](),0x1388);});continue;case'5':await _0xf424ca['cUHFE'](setupInfrastructure,this['channel']);continue;case'6':this[_0x21f9ea(0xd4)]=!![];continue;case'7':console[_0x21f9ea(0x118)]('['+_0xf424ca[_0x21f9ea(0xf7)](formatDate,new Date())+']\x20Prefetch\x20diatur\x20ke\x201');continue;}break;}}catch(_0xbcaf84){return console['error']('['+_0xf424ca[_0x21f9ea(0x112)](formatDate,new Date())+']\x20Failed\x20to\x20initialize\x20RabbitMQ:\x20'+_0xbcaf84[_0x21f9ea(0xf3)]),this[_0x21f9ea(0xd4)]=![],![];}}async['reconnect'](){const _0x354b62=a0_0x7718f0,_0x4e5355={'Rcpiv':function(_0x4bb272,_0x49e8d5){return _0x4bb272(_0x49e8d5);},'TIrzC':function(_0x2119a7,_0x52ddb8,_0x485383){return _0x2119a7(_0x52ddb8,_0x485383);}};console['log']('['+formatDate(new Date())+_0x354b62(0x11c));try{await this['initialize'](),this[_0x354b62(0xd4)]&&(console[_0x354b62(0x118)]('['+_0x4e5355[_0x354b62(0x12f)](formatDate,new Date())+_0x354b62(0xfd)),await this[_0x354b62(0x130)]());}catch(_0x2617c0){console['error']('['+_0x4e5355[_0x354b62(0x12f)](formatDate,new Date())+_0x354b62(0x132)+_0x2617c0['message']),_0x4e5355[_0x354b62(0xed)](setTimeout,()=>this[_0x354b62(0xef)](),0x1388);}}async[a0_0x7718f0(0x131)](_0x2b8029){const _0x25d0ec=a0_0x7718f0,_0x62bcac={'ifwFU':function(_0x22f11f){return _0x22f11f();},'Zmxuu':function(_0x10bd06,_0x656c7){return _0x10bd06(_0x656c7);},'KLYBT':'direct','KLZbd':function(_0xe60cf3,_0xd8d08d){return _0xe60cf3===_0xd8d08d;},'PKhjx':'found','PFkOw':'inequivalent\x20arg','qhHYu':_0x25d0ec(0x124),'kXXXc':function(_0x530287,_0x30756d){return _0x530287(_0x30756d);}};try{!this[_0x25d0ec(0xd4)]&&(this['connection']=await _0x62bcac[_0x25d0ec(0x129)](createConnection),this['channel']=await createChannel(this[_0x25d0ec(0xe3)]),this['isConnected']=!![]);const _0x445851=process['env'][_0x25d0ec(0x117)]||'default',_0x3ba796=_0x445851+_0x25d0ec(0x125);await this['channel'][_0x25d0ec(0x127)](_0x3ba796,'direct',{'durable':!![],'autoDelete':![]}),console['log']('['+_0x62bcac[_0x25d0ec(0x121)](formatDate,new Date())+_0x25d0ec(0xfe)+_0x3ba796+'\x20created/ready'),await this[_0x25d0ec(0xd5)][_0x25d0ec(0x127)](_0x2b8029[_0x25d0ec(0x123)],_0x62bcac['KLYBT'],{'durable':!![],'autoDelete':![]}),console[_0x25d0ec(0x118)]('['+formatDate(new Date())+_0x25d0ec(0x109)+_0x2b8029['exchange']+_0x25d0ec(0xf1));const _0xfd4c00=_0x2b8029[_0x25d0ec(0x110)]+_0x25d0ec(0x120),_0x439796={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':_0x2b8029['exchange'],'x-dead-letter-routing-key':_0x2b8029['routingKey']}};await this[_0x25d0ec(0xd5)]['assertQueue'](_0xfd4c00,_0x439796),console[_0x25d0ec(0x118)]('['+formatDate(new Date())+']\x20Retry\x20queue\x20'+_0xfd4c00+'\x20created/ready'),await this['channel'][_0x25d0ec(0x107)](_0xfd4c00,_0x3ba796,_0x2b8029[_0x25d0ec(0x110)]),console[_0x25d0ec(0x118)]('['+_0x62bcac[_0x25d0ec(0x121)](formatDate,new Date())+']\x20Retry\x20binding\x20for\x20'+_0x2b8029['routingKey']+_0x25d0ec(0xf8));const _0xef41ee={'durable':!![],'arguments':{'x-dead-letter-exchange':_0x3ba796,'x-dead-letter-routing-key':_0x2b8029['routingKey']}};try{const _0x34e6e7=await this[_0x25d0ec(0xd5)][_0x25d0ec(0xd0)](_0x2b8029['queue'],_0xef41ee);console['log']('['+_0x62bcac['Zmxuu'](formatDate,new Date())+_0x25d0ec(0xd6)+_0x2b8029[_0x25d0ec(0x126)]+'\x20'+(_0x62bcac['KLZbd'](_0x34e6e7['queue'],_0x2b8029[_0x25d0ec(0x126)])?_0x25d0ec(0xd1):_0x62bcac['PKhjx'])+_0x25d0ec(0xe2)),await this[_0x25d0ec(0xd5)][_0x25d0ec(0x107)](_0x2b8029['queue'],_0x2b8029['exchange'],_0x2b8029['routingKey']),console[_0x25d0ec(0x118)]('['+_0x62bcac[_0x25d0ec(0x121)](formatDate,new Date())+_0x25d0ec(0x11e)+_0x2b8029[_0x25d0ec(0x123)]+'\x20->\x20'+_0x2b8029['queue']+'\x20('+_0x2b8029['routingKey']+')\x20created');}catch(_0x57670a){if(_0x57670a[_0x25d0ec(0xf3)][_0x25d0ec(0xe8)](_0x62bcac[_0x25d0ec(0x101)])&&_0x57670a['message']['includes'](_0x62bcac[_0x25d0ec(0xdb)])){console['error']('\x0a['+formatDate(new Date())+']\x20ERROR:\x20Queue\x20'+_0x2b8029['queue']+'\x20is\x20already\x20in\x20use\x20with\x20a\x20different\x20routing\x20key.'),console[_0x25d0ec(0xe7)](_0x25d0ec(0x116));const _0x5d6aa0=_0x2b8029['routingKey']+'_queue',_0xc7baa7=await this[_0x25d0ec(0xd5)][_0x25d0ec(0xd0)](_0x5d6aa0,_0xef41ee);console[_0x25d0ec(0x118)]('['+formatDate(new Date())+_0x25d0ec(0xff)+_0x5d6aa0+'\x20created\x20with\x20DLX'),await this[_0x25d0ec(0xd5)]['bindQueue'](_0x5d6aa0,_0x2b8029[_0x25d0ec(0x123)],_0x2b8029[_0x25d0ec(0x110)]),console[_0x25d0ec(0x118)]('['+_0x62bcac[_0x25d0ec(0x128)](formatDate,new Date())+_0x25d0ec(0x11e)+_0x2b8029[_0x25d0ec(0x123)]+'\x20->\x20'+_0x5d6aa0+'\x20('+_0x2b8029['routingKey']+')\x20created'),_0x2b8029[_0x25d0ec(0x126)]=_0x5d6aa0;}else{console[_0x25d0ec(0xe7)]('['+formatDate(new Date())+_0x25d0ec(0x113)+_0x2b8029['queue']+':',_0x57670a[_0x25d0ec(0xf3)]);throw _0x57670a;}}return!![];}catch(_0x339c60){return console['error']('['+formatDate(new Date())+']\x20Error\x20saat\x20setup\x20infrastruktur:\x20'+_0x339c60['message']),![];}}async[a0_0x7718f0(0x10c)](_0x4b2990,_0x369daa){const _0x135425=a0_0x7718f0,_0x4df202={'jmFKy':function(_0x4d2014,_0x3ecd02){return _0x4d2014!==_0x3ecd02;},'cnVGI':function(_0x3752ee,_0x1f7a90){return _0x3752ee(_0x1f7a90);},'zbnTN':'Data\x20sent\x20to\x20queue\x20successfully','ryTkG':function(_0x1ff5d5,_0x4fcf71){return _0x1ff5d5(_0x4fcf71);}};if(!this[_0x135425(0xd4)])try{await this[_0x135425(0x119)]();}catch(_0x2ab30c){return{'success':![],'message':'Cannot\x20connect\x20to\x20RabbitMQ:\x20'+_0x2ab30c[_0x135425(0xf3)],'data':null};}try{const _0x403613=_0x4df202[_0x135425(0xf6)](_0x369daa['auto_retry'],undefined)?_0x369daa['auto_retry']:![],_0x47e672=_0x369daa['max_retries']||0x3,_0x567648={'rabbitmq':{'exchange':_0x369daa['exchange'],'queue':_0x369daa[_0x135425(0x126)],'routing_key':_0x369daa[_0x135425(0x110)],'auto_retry':_0x403613,'max_retries':_0x47e672},'message':_0x4b2990};await this['setupCollectorInfrastructure'](_0x369daa);const _0x3b8aea=new Date(),_0x448080={'timestamp':_0x3b8aea[_0x135425(0x11b)](),'content':JSON[_0x135425(0xda)](_0x567648)},_0x2b28b9=this['channel'][_0x135425(0xec)](_0x369daa[_0x135425(0x123)],_0x369daa['routingKey'],Buffer[_0x135425(0x114)](JSON[_0x135425(0xda)](_0x448080)),{'persistent':!![],'contentType':'application/json','timestamp':_0x3b8aea['getTime'](),'messageId':_0x3b8aea['getTime']()+'-'+Math[_0x135425(0xe0)]()['toString'](0x24)[_0x135425(0x12c)](0x7),'headers':{'x-auto-retry':_0x403613,'x-max-retry':_0x47e672,'x-retry-count':0x0,'x-retry-interval':0x2710}});if(_0x2b28b9){console[_0x135425(0x118)]('['+_0x4df202['cnVGI'](formatDate,_0x3b8aea)+_0x135425(0xe5),{'exchange':_0x369daa[_0x135425(0x123)],'routing_key':_0x369daa[_0x135425(0x110)],'queue':_0x369daa[_0x135425(0x126)],'sendAt':_0x3b8aea[_0x135425(0x11b)]()});const _0x48d20b='queue-'+_0x3b8aea['getTime']()+'-'+Math['random']()[_0x135425(0x12a)](0x24)['substring'](0x7);return{'success':!![],'message':_0x4df202[_0x135425(0x104)],'data':{'id':_0x48d20b,'queueInfo':{'exchange':_0x369daa['exchange'],'queue':_0x369daa[_0x135425(0x126)],'routingKey':_0x369daa[_0x135425(0x110)]}}};}else throw new Error('Failed\x20to\x20send\x20message\x20to\x20RabbitMQ');}catch(_0x132264){return console['error']('['+_0x4df202[_0x135425(0x111)](formatDate,new Date())+']\x20Error\x20sending\x20to\x20RabbitMQ:\x20'+_0x132264['message']),{'success':![],'message':_0x135425(0xeb)+_0x132264[_0x135425(0xf3)],'data':null};}}[a0_0x7718f0(0xf9)](_0xcb5040){const _0x472aed=a0_0x7718f0,_0x38d155={'aRFwe':function(_0x40eee3,_0xfd7fe1){return _0x40eee3===_0xfd7fe1;},'jEraU':'function','JFNJC':function(_0x2e3bff,_0x404431){return _0x2e3bff(_0x404431);}};_0x38d155['aRFwe'](typeof _0xcb5040,_0x38d155['jEraU'])?(this['messageHandlers']['push'](_0xcb5040),console[_0x472aed(0x118)]('['+_0x38d155['JFNJC'](formatDate,new Date())+_0x472aed(0x10f))):console['error']('['+_0x38d155[_0x472aed(0xd8)](formatDate,new Date())+_0x472aed(0x102));}async[a0_0x7718f0(0x10a)](_0x4a7772){const _0x1ca00e=a0_0x7718f0,_0x41bae3={'lUEqz':function(_0x5726b6,_0x1fea95){return _0x5726b6===_0x1fea95;},'sTnud':function(_0x98874c,_0x560f72){return _0x98874c(_0x560f72);}};if(_0x41bae3[_0x1ca00e(0xe9)](this[_0x1ca00e(0x12b)][_0x1ca00e(0xee)],0x0))return console['warn']('['+_0x41bae3['sTnud'](formatDate,new Date())+_0x1ca00e(0x10b)),!![];try{for(const _0x1f9c74 of this['messageHandlers']){await _0x1f9c74(_0x4a7772);}return!![];}catch(_0x2156bd){return console['error']('['+_0x41bae3[_0x1ca00e(0xf2)](formatDate,new Date())+_0x1ca00e(0xd2)+_0x2156bd[_0x1ca00e(0xf3)]),![];}}async['startConsume'](){const _0x30fc2e=a0_0x7718f0,_0x45ad6c={'GqfGP':function(_0x51d92c,_0x167093){return _0x51d92c(_0x167093);},'SnpBJ':function(_0x3e1d44,_0x1f9d62){return _0x3e1d44(_0x1f9d62);},'EsAWg':'---'};if(!this['isConnected'])return console['error']('['+formatDate(new Date())+']\x20Cannot\x20start\x20consuming:\x20not\x20connected\x20to\x20RabbitMQ'),![];try{return console[_0x30fc2e(0x118)]('['+_0x45ad6c[_0x30fc2e(0xde)](formatDate,new Date())+']\x20Start\x20consuming\x20messages\x20from\x20queue\x20\x22'+this[_0x30fc2e(0xd7)]['queue']+'\x22...'),this['channel']['consume'](this[_0x30fc2e(0xd7)][_0x30fc2e(0x126)],async _0x424549=>{const _0x1a6852=_0x30fc2e;if(_0x424549!==null){const _0x17f212=new Date();let _0x5d4484;try{_0x5d4484=JSON[_0x1a6852(0x11a)](_0x424549[_0x1a6852(0x12e)][_0x1a6852(0x12a)]());}catch(_0x5e1c08){console['error']('['+_0x45ad6c[_0x1a6852(0xde)](formatDate,_0x17f212)+_0x1a6852(0xf0)+_0x5e1c08['message']),console[_0x1a6852(0xe7)](_0x1a6852(0xdc)+_0x424549[_0x1a6852(0x12e)][_0x1a6852(0x12a)]()),this[_0x1a6852(0xd5)][_0x1a6852(0xd3)](_0x424549);return;}const _0x1891d6=_0x424549[_0x1a6852(0xfc)]['timestamp']?new Date(_0x424549[_0x1a6852(0xfc)]['timestamp']):new Date(),_0x4cdc8c=await this['processMessage'](_0x5d4484);_0x4cdc8c?(console['log']('['+formatDate(new Date())+_0x1a6852(0x11d)),this[_0x1a6852(0xd5)][_0x1a6852(0xd3)](_0x424549)):(console['error']('['+_0x45ad6c['SnpBJ'](formatDate,new Date())+']\x20Failed\x20to\x20process\x20message,\x20requeuing'),this['channel'][_0x1a6852(0x106)](_0x424549,![],!![])),console[_0x1a6852(0x118)](_0x45ad6c['EsAWg']);}},{'noAck':![]}),!![];}catch(_0x29fe19){return console[_0x30fc2e(0xe7)]('['+formatDate(new Date())+_0x30fc2e(0xea)+_0x29fe19['message']),![];}}async['close'](){this['connection']&&(await closeConnection(this['connection']),this['isConnected']=![]);}}function a0_0x44ec(_0x46bf60,_0x53cac8){_0x46bf60=_0x46bf60-0xd0;const _0x4a7e3c=a0_0x4a7e();let _0x44ec47=_0x4a7e3c[_0x46bf60];if(a0_0x44ec['ZKimmL']===undefined){var _0x21046f=function(_0x58377e){const _0x5b911d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x308878='',_0x3bc700='';for(let _0x2dd771=0x0,_0x2c758f,_0x463b0b,_0x1c1b83=0x0;_0x463b0b=_0x58377e['charAt'](_0x1c1b83++);~_0x463b0b&&(_0x2c758f=_0x2dd771%0x4?_0x2c758f*0x40+_0x463b0b:_0x463b0b,_0x2dd771++%0x4)?_0x308878+=String['fromCharCode'](0xff&_0x2c758f>>(-0x2*_0x2dd771&0x6)):0x0){_0x463b0b=_0x5b911d['indexOf'](_0x463b0b);}for(let _0x40b06b=0x0,_0x1e3d2e=_0x308878['length'];_0x40b06b<_0x1e3d2e;_0x40b06b++){_0x3bc700+='%'+('00'+_0x308878['charCodeAt'](_0x40b06b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3bc700);};a0_0x44ec['DfvztB']=_0x21046f,a0_0x44ec['wfBBdo']={},a0_0x44ec['ZKimmL']=!![];}const _0x41cfd0=_0x4a7e3c[0x0],_0x1e154a=_0x46bf60+_0x41cfd0,_0x1312ea=a0_0x44ec['wfBBdo'][_0x1e154a];return!_0x1312ea?(_0x44ec47=a0_0x44ec['DfvztB'](_0x44ec47),a0_0x44ec['wfBBdo'][_0x1e154a]=_0x44ec47):_0x44ec47=_0x1312ea,_0x44ec47;}let instance=null;function getInstance(){return!instance&&(instance=new RabbitMQService()),instance;}module['exports']={'getInstance':getInstance};
@@ -1 +1 @@
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
+ const a0_0x3e2f79=a0_0x1aad;(function(_0x386bfd,_0x3b184d){const _0x44297a=a0_0x1aad,_0x5a289d=_0x386bfd();while(!![]){try{const _0xda6e93=parseInt(_0x44297a(0x19d))/0x1*(parseInt(_0x44297a(0x1ec))/0x2)+-parseInt(_0x44297a(0xee))/0x3+-parseInt(_0x44297a(0x1ca))/0x4*(-parseInt(_0x44297a(0x177))/0x5)+parseInt(_0x44297a(0x1b3))/0x6*(parseInt(_0x44297a(0x153))/0x7)+parseInt(_0x44297a(0xe1))/0x8*(parseInt(_0x44297a(0x1d1))/0x9)+-parseInt(_0x44297a(0xda))/0xa+-parseInt(_0x44297a(0x1e6))/0xb;if(_0xda6e93===_0x3b184d)break;else _0x5a289d['push'](_0x5a289d['shift']());}catch(_0x1da5d8){_0x5a289d['push'](_0x5a289d['shift']());}}}(a0_0x4f59,0x2475b));function a0_0x4f59(){const _0x54f54c=['zxHPC3rZu3LUyW','z2v0rgjvDgLSCW','zMfPBgvKuMvHC29U','igPVyIbJB25MAwCOCYKGzNjVBsbWyxLSB2fKl2PVyNmV','DgLTzxn0yw1W','C2v0','B25SAw5L','BwfW','sM9IignHBMnLBgXLzcb2AweGqvbj','y29UzMLNrMLSzq','AM9Ix3jLz2LZDhj5x29MzMXPBMvFzxjYB3i','DxbKyxrLuMvNAxn0CNLtDgf0Dxm','vK1uCNm','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteWSihvWzgf0zwrFyxqGpsbtwvnusu1fu1rbtva','CuvmwgC','sK9cx1nuquXmrurFsu5urvjwquW','s2DOBvu','B3jHy2XL','DMfSAwq','Be1dyMm','BMv4Da','sM9Iie1HBMfNzxiGC3vKywGGzgLPBMLZAwfSAxnHC2KSihnRAxa','AwvnDuC','C3vIC3rYAw5N','Cgf1C2u','z2v0q2fJAgvnyw5Hz2vY','q2vsAum','rMveCg8','rKXZrfy','AM9Ix2vUC3vYzv90ywjSzxnFD2fYBG','zgvZy3jPChrPB24','AM9Ix3bYB2DYzxnZ','nZq1mZuZtgn4zuzy','B25kB2jgywLSzwq','y2f0y2G','z2v0q2XPzw50','Aw5JBhvKzxm','zxHLy3v0zuv2zw50sgfUzgXLCNm','BMfTzq','zhD3sgu','DgLTzxPVBMu','ywn0AxzL','y2XVC2u','rejFvfLqrq','Aw5PDgLHBgL6zwq','AM9Ix3DVCMTLCNnFy3jLyxrLza','B25kB2jqCM9NCMvZCW','BM93','Dw5RBM93BG','zw52','DLLeve8','u1fmihnJCMLWDcb0AwrHAYbKAxrLBxvRyw46ia','AM9Ix2HPC3rVCNLFzMfPBgvKx2vYCM9Y','qMTXr24','z2v0u3rHDgu','AM9Ix3jLz2LZDgvYx2zHAwXLza','AM9Ix21HBMfNzxjFywXYzwfKEv9PBML0AwfSAxPLza','igPVyIHZksbYzwDPC3rLCMvKlca','z1LoC1u','D2fYBG','CMy6','BxmPoIa','vezAvhu','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticG/lca/lca/lca/lca/lcaNCNvUBMLUzYCSid8Sid8Sid8Sie5pvYGPlca/lcbot1COksK','CxvPDa','uePhvNa','Aw5PDgLHBerLBgf5','AM9PBG','mtm0mduWs3z5Agfs','Aw5Zzxj0uhjVBwLZzq','DMfSAwrHDgvdB25MAwC','Bwf4qxr0zw1WDhm','AgLZDg9YEuLK','A09vuxi','sM9Iie1HBMfNzxiGCMvHzhK6ia','ChjVy2vZC2vKt24','uMvKAxmGy29UBMvJDgLVBIbMywLSzwq6ia','C29YDa','ifjLzgLZignVBM5Ly3rPB25Z','y3DK','AM9ICW','C3b0Ee8','wvvSr0m','yMfJA29MzG','AM9Ix2nVBxbSzxrLza','CxvLDwu','BxLZCwWUC3fS','y29TCgXLDgvK','sM9IihrPzgfRigrPDgvTDwTHBJOG','Aw5Zzxj0sM9IsgLZDg9YEq','ChjVz3jLC3m','DgLTzw91Da','sM9IigrPC3bHDgnOzwqGkgrLBgf5zwqG','qNDJDwy','zxHLy3v0zvrYyw5Zywn0Aw9U','BwLU','vhHQy1a','x3nVDxjJzuzPBgu','sM9IignVBxbSzxrLzdOG','AM9Iq29UzMLNCW','zgjFCgDFDw5HDMfPBgfIBgu','rMfPBgvKihrVihvWzgf0zsbQB2iGAgLZDg9YEsaOzMfPBgvKktOG','zw5ZDxjLvgfIBgvZ','AgfUzgXLCNm','ChvZAa','yM16rfK','mxrNqwnjwq','zwzLA2q','zgvSzxrL','zMLUAxnOzwrpBG','iokaLca','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNzMfPBgvKjYWGy29TCgXLDgvKx2f0id0GtK9xkcKScIaGicaGicaGicaGzhvYyxrPB25FBxmGpsa/lcbWCM9NCMvZCYa9id8SigvYCM9Yx21LC3nHz2uGpsa/lcbLCNjVCL9ZDgfJAYa9id8Gv0HfuKuGAwqGpsa/','q0Drrhe','Awf3Egi','ChvIBgLZAev2zw50','rMfPBgvKihrVihvWC2vYDcbQB2iGCMvNAxn0CNK6ia','zw5HyMXLza','AM9Ix3n0ywXSzwq','z2v0ug9VBa','rMfPBgvKihrVihb1yMXPC2GGsK9cx0nptvbmrvrfrcb0BYblywzRyq','yxr0zw1WDhnnywrL','yNvSBg1Xx3jLzgLZx2vYCM9Y','ywn0AxzLsgLZDg9YEuLKCW','B3jHy2XLlNnXBa','tMv5qvC','zgvMyxvSDa','rgzAzK4','r2TAt3G','nNzns2LXyq','lIbkB2iGu2nOzwr1BgvYihrPzgfRigfRyw4GywT0AwyU','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa/lcbSyxn0x2r1CMf0Aw9Ux21Zid0GpYWkicaGicaGicaGica','BwfUDwfS','uKvesvnFueftu1DpuKq','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticGKmsWGjdiSicqZlcaKncWGjduSicDYDw5UAw5NjYWGjdySicq3lcaKocWGtK9xkcKSicq5lcbot1COksK','sgfUzgXLCIb0AwrHAYbKAxrLBxvRyw4GDw50DwSGAM9IoIa','CMvHzezPBgvtEw5J','lI4VlI4VC2vYDMLJzxmVA2fMA2ftzxj2AwnL','y29UBMvJDgLVBNm','z2v0s2fMA2ftzxj2AwnL','AM9Ix3jLzgLZx2nVBM5Ly3rLza','CgHQtgS','ywrK','sK9cx0zbsuXfrf9srvrftLrjt05Fse9vuLm','z2v0uMvKAxndBgLLBNq','z2v0rgjuExbL','vgPcDwi','DxbZzxj0sM9IuMvNAxn0CNK','BgLZDfj1BM5PBMC','icHHDhrLBxb0ia','r0nuAuG','Aw5MBW','mJHVy1zYt0u','ihjLBw92zwqGkhDHCYa','vgrPDxC','q0zWr2O','zgvSyxLLza','y29TCg9Uzw50rw5NAw5L','zNvUy3rPB24','ou9tuvvmuG','zw50CMLLCW','sK9cx0nptKnvuLjftKnz','u1bgEhq','id0G','EuTzuKm','reflsxe','uKvesvnFue9sva','z2v0sM9ICW','CxvLDwvZ','txLtuuWGreiGBw9KDwXLig5VDcbHDMfPBgfIBgu','DxvPza','sM9Iihn0ywXSzwq6ia','CMv0CNK','Dvj3C0O','AM9Ix2rPC3bHDgnOzwq','wuvzB0q','Bg93','q3jVBIbYzwDPC3rLCMvKoIa','D29YA2LUz0rPCG','zwrZue0','mJe2mdy4nKHeqwvTrG','z2vPt2e','ChjVy2vZC0PVyG','zgf0yq','zMLSDgvY','zxHWB25LBNrPywW','ntiXmti0AM9dvKny','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa6msWGBgfZDf9YDw5FyxqGpsbtwvnusu1fu1rbtvaScIaGicaGicaGicaGDxbKyxrLzf9HDca9ifnzu1rjtuvtvefnucbxsevsrsbQB2jFBMfTzsa9idOY','vvLOtKu','sujPBuW','AM9Ix3jLzgLZx2zHAwXLza','AM9Ix3jLz2LZDhj5x2nVDw50zxjFzxjYB3i','rMfPBgvKihrVihnLDcbQB2jZig9MzMXPBMu6ia','Aw5PDgLHBgL6zq','DxbKyxrLuMvNAxn0CNLdB3vUDgvYCW','CgLK','v3HfzKi','Dg90ywXFC3vJy2vZCW','AxnsDw5UAw5N','ywz0zxjFAM9Ix2zHAwXLzf9OB29Rx2vYCM9Y','y3jLyxrLqNvSBe1rq29UBMvJDgLVBG','mZCYntaWAvzssgfg','Cgf0Aa','C3rHBgXLza','z2v0sgvHBhrOu3rHDhvZ','DxbKyxrLuhjVz3jLC3m','lI4VlI4VDxrPBhmVzgiTB3jHy2XL','lI4VlI4VDxrPBhmVzgiTBxLZCwW','mZiWnJr1AMnZweC','B3DxsNm','zw5KC1DPDgG','Bwv0ywrHDge','sK9cx0vwru5u','rM9SzgvYihbHEwXVywqVAM9ICY8GDgLKywSGzgL0zw11A2fU','Cvvuv3O','z2v0sM9Iu2nOzwr1BgvYCW','BgLMD00','wMz2BeC','AgfUzgXLCG','zxjYB3jZ','C3vJy2vZCW','nti3mteYDgzwueTA','t0Doufm','C3fSlxnJCMLWDhm','y3jVBG','DhLWzq','rvnYCgy','rMfPBgvKihrVihbHCNnLigPVyIbJB25MAwC6ia','BMT2the','sK9cx1jfvevoveLptL9it1vsuW','DgLTzxn0yw1WCW','Chzlq2S','yxbPlwrLBgf5zwq','BwvZC2fNzq','D2fPDgLUzW','CMv0DxjUDMfSDwu','DMfSDwvZ','mYbcDwXStveGv29YA2vYCYbJCMvHDgvKicHJB25JDxjYzw5JEtOG','CgLUzW','z2v0tMv4Dfj1BKzYB21cDwXStve','y2HPBgq','zMfPBgvK','C3bSAxq','EvveEwW','rejFvfLqrsaN','CMvNAxn0zxjkB2i','y0zyBha','ignHBMnLBgXLzcaOD2fZigfJDgL2zsK','t0P0qK4','DxbKyxrLsM9IsgLZDg9YEuzHAwXLza','AM9Ix2nVBMzPz19PBNzHBgLK','qMfJA2DYB3vUzcbPBNnLCNqGAM9IigHPC3rVCNKGzMfPBgvKoIa','B2zMBgLUzq','icHPzdOG','CMzXueq','B25bzNrLCKPVyKzHAwXLzcbOyw5KBgvYigvYCM9YicHUB24TyMXVy2TPBMCP','zxjYB3i','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','A0vJBfC','qNvSBe1rifjLzgLZignVBM5Ly3rPB24GzxjYB3i6ia','C2nOzwr1Bgu','lMPZ','C0fxzxG','B25bzNrLCKPVyKzHAwXLza','z2v0sgLZDg9YEq','sM9Iia','zxHLy3v0zvf1zxj5','BxLZCwW','BeDKwvm','sM9IignHBMnLBgXLzcbIEsbVBKjLzM9YzuPVyKv4zwn1Dgu6ia','AM9ItMfTzq','suLUzeC','D29YA2vYCW','yxr0zw1WDa','BgvUz3rO','tNrwrvu','AM9Ix2HPC3rVCNLFAw5Zzxj0x2vYCM9Y','BgLZDePVyNm','AM9Ix3f1zxvLC19JCMvHDgvK','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ie5pvYGPlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GjdeSihbYB2DYzxnZid0GmtaWlcbYzxn1BhrFC3vTBwfYEsa9icqYifDirvjfigLKid0Gjdm','DhjPBq','yxbP','AM9Ix2vUC3vYzv90ywjSzxnFzxjYB3i','C3jJ','Buryv3K','svHxwLO','lI4VlI4VDxrPBhmVy2fJAguTBwfUywDLCG','qNvSBe1rifjLzgLZignVBM5Ly3rPB24GDMvYAwzPzwq','DxrMoa','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsaKmsWGBgfZDf9YDw5FyxqGpsbot1COksWkicaGicaGicaGicb1CgrHDgvKx2f0id0GtK9xkcKGv0HfuKuGAM9Ix25HBwuGpsaKmG'];a0_0x4f59=function(){return _0x54f54c;};return a0_0x4f59();}const {Queue,Worker}=require('bullmq'),Redis=require('ioredis'),crypto=require('crypto'),{v7:uuidv7}=require(a0_0x3e2f79(0x1dc)),fs=require('fs'),path=require(a0_0x3e2f79(0xdb)),{logger}=require('../../utils/logger'),jobValidator=require('./job-validator');let componentEngine=null;function getComponentEngine(){const _0x94e953=a0_0x3e2f79,_0x4c3caf={'WxEfB':'../../utils/component-engine'};if(!componentEngine)try{const _0xf81587=require(_0x4c3caf[_0x94e953(0x1f6)]);componentEngine=_0xf81587[_0x94e953(0x1cf)]||_0xf81587;}catch(_0x381f79){}return componentEngine;}function a0_0x1aad(_0x1cfb0a,_0x30a244){_0x1cfb0a=_0x1cfb0a-0xd8;const _0x4f5941=a0_0x4f59();let _0x1aad94=_0x4f5941[_0x1cfb0a];if(a0_0x1aad['RQuxQe']===undefined){var _0x4976ff=function(_0x9f64ba){const _0x309aff='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xff2bb='',_0x48680e='';for(let _0x5a0c34=0x0,_0x5546e4,_0x1ecff0,_0x425a91=0x0;_0x1ecff0=_0x9f64ba['charAt'](_0x425a91++);~_0x1ecff0&&(_0x5546e4=_0x5a0c34%0x4?_0x5546e4*0x40+_0x1ecff0:_0x1ecff0,_0x5a0c34++%0x4)?_0xff2bb+=String['fromCharCode'](0xff&_0x5546e4>>(-0x2*_0x5a0c34&0x6)):0x0){_0x1ecff0=_0x309aff['indexOf'](_0x1ecff0);}for(let _0x3a1e9b=0x0,_0x5b9723=_0xff2bb['length'];_0x3a1e9b<_0x5b9723;_0x3a1e9b++){_0x48680e+='%'+('00'+_0xff2bb['charCodeAt'](_0x3a1e9b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x48680e);};a0_0x1aad['CHJVpc']=_0x4976ff,a0_0x1aad['xzlKzs']={},a0_0x1aad['RQuxQe']=!![];}const _0xb778ab=_0x4f5941[0x0],_0x3fb03f=_0x1cfb0a+_0xb778ab,_0x323423=a0_0x1aad['xzlKzs'][_0x3fb03f];return!_0x323423?(_0x1aad94=a0_0x1aad['CHJVpc'](_0x1aad94),a0_0x1aad['xzlKzs'][_0x3fb03f]=_0x1aad94):_0x1aad94=_0x323423,_0x1aad94;}class JobManager{constructor(){const _0x1103a0=a0_0x3e2f79,_0x3bf969={'qELXg':'4|1|5|0|3|6|2|7'},_0x55d982=_0x3bf969[_0x1103a0(0x141)]['split']('|');let _0x314ac8=0x0;while(!![]){switch(_0x55d982[_0x314ac8++]){case'0':this['handlers']={};continue;case'1':this['workers']={};continue;case'2':this[_0x1103a0(0x1e4)]=process[_0x1103a0(0x182)]();continue;case'3':this['connections']=[];continue;case'4':this['queues']={};continue;case'5':this['jobConfigs']={};continue;case'6':this['initialized']=![];continue;case'7':this[_0x1103a0(0x1ad)]=new Map();continue;}break;}}[a0_0x3e2f79(0xd9)](){const _0x151723=a0_0x3e2f79,_0x4052ae={'BUFEG':function(_0x16c42f,_0x3302aa,_0x3d8259){return _0x16c42f(_0x3302aa,_0x3d8259);},'KghmU':_0x151723(0x111)},_0x4ebe18=new Redis({'host':process[_0x151723(0x164)]['REDIS_HOST']||'localhost','port':_0x4052ae['BUFEG'](parseInt,process['env'][_0x151723(0x1d8)],0xa)||0x18ec,'password':process[_0x151723(0x164)][_0x151723(0x1b7)]||undefined,'db':_0x4052ae['BUFEG'](parseInt,process[_0x151723(0x164)]['REDIS_DB'],0xa)||0x0,'maxRetriesPerRequest':null,'retryStrategy'(_0x4a93da){const _0x19fe12=Math['min'](_0x4a93da*0x32,0x7d0);return _0x19fe12;}});return _0x4ebe18['on'](_0x4052ae[_0x151723(0x143)],_0x282055=>{const _0x24bcfa=_0x151723;logger['error']({'event':_0x24bcfa(0x1ac),'error':_0x282055[_0x24bcfa(0xfa)]},_0x24bcfa(0x114)+_0x282055['message']);}),this['connections'][_0x151723(0x19b)](_0x4ebe18),_0x4ebe18;}async[a0_0x3e2f79(0x1f3)](){const _0x3237c1=a0_0x3e2f79,_0x1c8dc1={'Tikds':_0x3237c1(0x1a8),'DfZfN':'bullmq_worker_error','JAfeV':_0x3237c1(0x16b),'Lwbax':_0x3237c1(0x148),'MbDQk':'job_manager_init_start','gThhK':'unknown','TxjcP':'default','TjBub':function(_0x317ecc,_0x53c774,_0x11fb41){return _0x317ecc(_0x53c774,_0x11fb41);},'igePj':function(_0x912e5a,_0x92ff94){return _0x912e5a*_0x92ff94;},'XPwEw':'high','POnQQ':'3\x20BullMQ\x20Queues\x20created\x20(high,\x20default,\x20low)','lhSfW':function(_0x2fbc20,_0x4b5a32,_0x121192){return _0x2fbc20(_0x4b5a32,_0x121192);},'lMCbc':'failed','NeyAW':'progress','NtVEU':_0x3237c1(0xdc),'YUlGC':_0x3237c1(0x160),'yKYRC':_0x3237c1(0x16a),'RzKFU':'job_manager_ready'};if(this[_0x3237c1(0x15f)]){logger['warn']({'event':_0x1c8dc1['JAfeV']},_0x1c8dc1['Lwbax']);return;}logger['info']({'event':_0x1c8dc1['MbDQk']},'Initializing\x20Job\x20Manager...');const _0x2af6fb=this[_0x3237c1(0xd9)]();try{await _0x2af6fb[_0x3237c1(0xff)](),logger[_0x3237c1(0x1c9)]({'event':_0x3237c1(0x1be)},_0x3237c1(0x130));}catch(_0x27828f){logger['error']({'event':_0x3237c1(0x1f0),'error':_0x27828f['message']},_0x3237c1(0x17f)+_0x27828f['message']+_0x3237c1(0x1b4));try{await _0x2af6fb[_0x3237c1(0x173)]();}catch(_0x2f508b){}this[_0x3237c1(0x1bc)]=this[_0x3237c1(0x1bc)]['filter'](_0x9cb274=>_0x9cb274!==_0x2af6fb);return;}try{await _0x2af6fb[_0x3237c1(0x173)]();}catch(_0x38dc58){}this[_0x3237c1(0x1bc)]=this['connections'][_0x3237c1(0x1ea)](_0x19c04b=>_0x19c04b!==_0x2af6fb);try{await this[_0x3237c1(0x199)]();}catch(_0x404267){logger['warn']({'event':_0x3237c1(0x12b),'error':_0x404267[_0x3237c1(0xfa)]},'Failed\x20to\x20ensure\x20job\x20tables:\x20'+_0x404267[_0x3237c1(0xfa)]+'.\x20DB\x20monitoring\x20disabled.');}const _0x4e3f1a=this['loadJobConfigs']();_0x4e3f1a['length']===0x0&&logger['info']({'event':'job_no_configs'},'Tidak\x20ada\x20job\x20config\x20ditemukan\x20di\x20payload/jobs/.\x20Job\x20Manager\x20aktif\x20tanpa\x20cron.');const _0x579883=[];for(const _0x28677b of _0x4e3f1a){const _0x4a61aa=jobValidator[_0x3237c1(0x179)](_0x28677b,this[_0x3237c1(0x1e4)]);_0x4a61aa[_0x3237c1(0x145)]?_0x579883['push'](_0x28677b):logger[_0x3237c1(0x111)]({'event':_0x3237c1(0x10b),'name':_0x28677b['name']||_0x1c8dc1['gThhK'],'errors':_0x4a61aa[_0x3237c1(0xec)]},'Job\x20config\x20invalid:\x20'+(_0x28677b[_0x3237c1(0x159)]||_0x3237c1(0x163))+'\x20—\x20'+_0x4a61aa[_0x3237c1(0xec)]['join'](';\x20'));}const _0x152e8b=process[_0x3237c1(0x164)][_0x3237c1(0x112)]||_0x1c8dc1[_0x3237c1(0x193)],_0x24a528=process['env']['JOB_REDIS_PREFIX']||_0x3237c1(0x16f)+_0x152e8b+':job',_0x243d80=parseInt(process[_0x3237c1(0x164)][_0x3237c1(0xf6)],0xa)||0x48,_0x353330=_0x1c8dc1[_0x3237c1(0x1c4)](parseInt,process['env'][_0x3237c1(0x1c1)],0xa)||0xa8,_0x43be6e={'removeOnComplete':{'age':_0x243d80*0xe10},'removeOnFail':{'age':_0x1c8dc1['igePj'](_0x353330,0xe10)}},_0x56be78={'high-priority':_0x1c8dc1['XPwEw'],'default':_0x3237c1(0x1b0),'low-priority':_0x3237c1(0x1e2)};for(const [_0x1e7018,_0x4cac18]of Object['entries'](_0x56be78)){this[_0x3237c1(0x1da)][_0x1e7018]=new Queue(_0x4cac18,{'connection':this[_0x3237c1(0xd9)](),'prefix':_0x24a528,'defaultJobOptions':_0x43be6e});}logger['info']({'event':_0x3237c1(0x127),'count':0x3},_0x1c8dc1['POnQQ']);const _0x54c359=_0x1c8dc1['TjBub'](parseInt,process[_0x3237c1(0x164)][_0x3237c1(0x1d3)],0xa)||0x5,_0x1b8ad7=_0x1c8dc1['lhSfW'](parseInt,process[_0x3237c1(0x164)][_0x3237c1(0x142)],0xa)||0x7530,_0x2bc8ec=parseInt(process[_0x3237c1(0x164)]['JOB_MAX_STALLED_COUNT'],0xa)||0x2;for(const [_0x571f4e,_0x57f7a1]of Object['entries'](_0x56be78)){const _0xb235db=new Worker(_0x57f7a1,async _0x47d897=>this['processJob'](_0x47d897),{'connection':this['createBullMQConnection'](),'prefix':_0x24a528,'concurrency':_0x54c359,'stalledInterval':_0x1b8ad7,'maxStalledCount':_0x2bc8ec});_0xb235db['on']('completed',(_0x2d79df,_0x2c7492)=>this['onJobCompleted'](_0x2d79df,_0x2c7492)),_0xb235db['on'](_0x1c8dc1[_0x3237c1(0x146)],(_0x32776a,_0x384179)=>this['onJobFailed'](_0x32776a,_0x384179)),_0xb235db['on'](_0x1c8dc1[_0x3237c1(0x1af)],(_0x3f026a,_0xc94e92)=>this[_0x3237c1(0x161)](_0x3f026a,_0xc94e92)),_0xb235db['on'](_0x1c8dc1[_0x3237c1(0x124)],_0x507e04=>{const _0x561174=_0x3237c1;logger['warn']({'event':_0x1c8dc1['Tikds'],'jobId':_0x507e04},_0x561174(0x1dd)+_0x507e04);}),_0xb235db['on'](_0x3237c1(0x111),_0x42adeb=>{const _0x3f2cfb=_0x3237c1;logger[_0x3f2cfb(0x111)]({'event':_0x1c8dc1[_0x3f2cfb(0x1b1)],'queue':_0x571f4e,'error':_0x42adeb['message']},'BullMQ\x20Worker\x20error\x20('+_0x571f4e+'):\x20'+_0x42adeb[_0x3f2cfb(0xfa)]);}),this[_0x3237c1(0x121)][_0x571f4e]=_0xb235db;}logger[_0x3237c1(0x1c9)]({'event':_0x1c8dc1[_0x3237c1(0x185)],'count':0x3,'concurrency':_0x54c359},_0x3237c1(0xfe)+_0x54c359+')');let _0x11e31e=0x0;for(const _0x2db26e of _0x579883){try{await this[_0x3237c1(0x106)](_0x2db26e),_0x11e31e++;}catch(_0x4a2600){logger[_0x3237c1(0x111)]({'event':_0x1c8dc1[_0x3237c1(0x1d6)],'name':_0x2db26e['name'],'error':_0x4a2600[_0x3237c1(0xfa)]},'Failed\x20to\x20register\x20job:\x20'+_0x2db26e[_0x3237c1(0x159)]+'\x20—\x20'+_0x4a2600['message']);}}this['initialized']=!![];const _0xad9908=this['connections']['length'];logger[_0x3237c1(0x1c9)]({'event':_0x1c8dc1['RzKFU'],'registeredJobs':_0x11e31e,'totalConfigs':_0x579883['length'],'redisConnections':_0xad9908},_0x3237c1(0x17d)+_0x11e31e+_0x3237c1(0x16c)+_0xad9908+_0x3237c1(0x181));}async['shutdown'](){const _0x5f432d=a0_0x3e2f79,_0x4eb835={'RqbKS':function(_0x3eccb8,_0x1ce2da,_0x2b931b){return _0x3eccb8(_0x1ce2da,_0x2b931b);},'MXrPm':_0x5f432d(0x15c)};if(!this[_0x5f432d(0x15f)])return;const _0x1cd988=_0x4eb835['RqbKS'](parseInt,process[_0x5f432d(0x164)]['JOB_SHUTDOWN_TIMEOUT'],0xa)||0x2710;logger['info']({'event':'job_manager_shutdown_start','timeoutMs':_0x1cd988},'Job\x20Manager\x20shutting\x20down\x20(timeout:\x20'+_0x1cd988+'ms)...');const _0x34c228=Object['values'](this[_0x5f432d(0x121)])[_0x5f432d(0x13a)](async _0x41bcdd=>{const _0x5f1a1a=_0x5f432d;try{await _0x41bcdd[_0x5f1a1a(0x14b)]();}catch(_0x2bb34e){}});await Promise['all'](_0x34c228);const _0x5f4293=Date[_0x5f432d(0x162)]();while(Date['now']()-_0x5f4293<_0x1cd988){let _0x1d9853=0x0;for(const _0x6b11aa of Object[_0x5f432d(0xfd)](this['queues'])){try{const _0x23e152=await _0x6b11aa['getJobCounts'](_0x4eb835['MXrPm']);_0x1d9853+=_0x23e152['active']||0x0;}catch(_0x4b0eba){}}if(_0x1d9853===0x0)break;await new Promise(_0x192243=>setTimeout(_0x192243,0x1f4));}const _0x5469fa=Object['values'](this['workers'])['map'](async _0xe841af=>{try{await _0xe841af['close']();}catch(_0x41b257){}});await Promise['all'](_0x5469fa);const _0x3d1418=Object['values'](this[_0x5f432d(0x1da)])['map'](async _0x8415ad=>{const _0x169fc2=_0x5f432d;try{await _0x8415ad[_0x169fc2(0x15d)]();}catch(_0x1c7d1a){}});await Promise['all'](_0x3d1418);for(const _0x2d189d of this[_0x5f432d(0x1bc)]){try{await _0x2d189d['quit']();}catch(_0x259e57){}}this[_0x5f432d(0x1da)]={},this['workers']={},this[_0x5f432d(0x1bc)]=[],await this['setAllJobsOffline'](),this['activeHistoryIds']['clear'](),this['initialized']=![],logger['info']({'event':'job_manager_shutdown_complete'},'Job\x20Manager\x20shutdown\x20complete');}['loadJobConfigs'](){const _0x35a899=a0_0x3e2f79,_0x2d2375={'ttocY':'payload','lQahE':'utf8'},_0x33f4d3=path[_0x35a899(0x176)](this['workingDir'],_0x2d2375['ttocY'],'jobs');if(!fs['existsSync'](_0x33f4d3))return logger['info']({'event':'job_config_dir_missing','path':_0x33f4d3},_0x35a899(0xe6)),[];const _0x362978=fs['readdirSync'](_0x33f4d3)['filter'](_0x43525c=>_0x43525c[_0x35a899(0xe3)]('.json')),_0x121b3a=[];for(const _0x37fadf of _0x362978){const _0x5805c4=path['join'](_0x33f4d3,_0x37fadf);try{const _0x4c0bd6=fs[_0x35a899(0x1ba)](_0x5805c4,_0x2d2375['lQahE']),_0xe1d9a2=JSON['parse'](_0x4c0bd6);_0xe1d9a2['_sourceFile']=_0x37fadf,_0x121b3a[_0x35a899(0x19b)](_0xe1d9a2);}catch(_0x107d38){logger[_0x35a899(0x111)]({'event':'job_config_parse_error','file':_0x37fadf,'error':_0x107d38[_0x35a899(0xfa)]},_0x35a899(0xf4)+_0x37fadf+_0x35a899(0x1a1)+_0x107d38['message']);}}return logger[_0x35a899(0x1c9)]({'event':'job_configs_loaded','count':_0x121b3a['length']},'Loaded\x20'+_0x121b3a['length']+_0x35a899(0x136)),_0x121b3a;}async[a0_0x3e2f79(0x106)](_0x2fd6f1){const _0x2d4eda=a0_0x3e2f79,_0x4843d3={'bGcCe':_0x2d4eda(0x12c),'FAaJC':function(_0x34ec2c,_0x38b1ed){return _0x34ec2c(_0x38b1ed);},'qmeuw':function(_0x21bbc6,_0x11a448){return _0x21bbc6===_0x11a448;},'rfqPD':_0x2d4eda(0xf1),'WsNWy':function(_0xc8e4a2,_0x3bd981){return _0xc8e4a2!==_0x3bd981;},'YRaSi':'default','GSVdk':function(_0xe92d78,_0x4108c6){return _0xe92d78!==_0x4108c6;},'qUTWz':_0x2d4eda(0x139),'EbBKY':_0x2d4eda(0x10d)},_0x4d70f0=path[_0x2d4eda(0x176)](this[_0x2d4eda(0x1e4)],_0x4843d3['bGcCe'],_0x2d4eda(0x183),_0x2fd6f1['handler']+_0x2d4eda(0x116));this[_0x2d4eda(0x19a)][_0x2fd6f1[_0x2d4eda(0x159)]]=_0x4843d3['FAaJC'](require,_0x4d70f0),this[_0x2d4eda(0x196)][_0x2fd6f1['name']]=_0x2fd6f1;if(_0x4843d3['qmeuw'](_0x2fd6f1[_0x2d4eda(0xf2)],_0x4843d3[_0x2d4eda(0x10f)])&&_0x4843d3['WsNWy'](_0x2fd6f1['enabled'],![])){const _0xb0855e=this[_0x2d4eda(0x1da)][_0x2fd6f1[_0x2d4eda(0x188)]||'default'];await _0xb0855e['upsertJobScheduler'](_0x2fd6f1['name'],{'pattern':_0x2fd6f1['schedule'],'tz':_0x2fd6f1[_0x2d4eda(0x15b)]||undefined},{'name':_0x2fd6f1[_0x2d4eda(0x159)],'data':{'handler':_0x2fd6f1[_0x2d4eda(0xeb)],'triggeredBy':_0x2d4eda(0xf1),'metadata':_0x2fd6f1[_0x2d4eda(0xe4)]||{}},'opts':{'attempts':_0x2fd6f1[_0x2d4eda(0x1de)]?.['maxAttempts']||0x3,'backoff':{'type':_0x2fd6f1['retry']?.['backoff']||_0x2d4eda(0x1eb),'delay':_0x2fd6f1['retry']?.[_0x2d4eda(0x175)]||0x1388},'timeout':_0x2fd6f1['timeout']||0x7530}}),logger['info']({'event':'cron_registered','name':_0x2fd6f1[_0x2d4eda(0x159)],'schedule':_0x2fd6f1['schedule'],'queue':_0x2fd6f1['queue']||_0x4843d3['YRaSi']},_0x2d4eda(0x1e3)+_0x2fd6f1['name']+'\x20['+_0x2fd6f1[_0x2d4eda(0x115)]+']');}const _0xb0a8ba=_0x2fd6f1['type']==='cron'&&_0x4843d3['GSVdk'](_0x2fd6f1['enabled'],![])?_0x4843d3['qUTWz']:_0x4843d3['EbBKY'];let _0x4123da=null;_0x4843d3['qmeuw'](_0xb0a8ba,_0x4843d3[_0x2d4eda(0xe7)])&&(_0x4123da=await this['getNextRunFromBullMQ'](_0x2fd6f1[_0x2d4eda(0x159)])),await this['upsertJobRegistry'](_0x2fd6f1,_0xb0a8ba,_0x4123da);}async[a0_0x3e2f79(0x1e8)](_0x23876e){const _0x19af03=a0_0x3e2f79,_0x38e45f={'UYhNE':function(_0x21b1e5,_0x388932){return _0x21b1e5+_0x388932;},'mDXWy':'unknown','bmzDY':function(_0x1fca56){return _0x1fca56();},'Sbkuv':_0x19af03(0xf9),'cpPTy':'delayed','GAcSW':function(_0x48f031,_0x294504){return _0x48f031===_0x294504;},'fVoMl':function(_0x4df3b6,_0x5052eb){return _0x4df3b6===_0x5052eb;},'xLZat':function(_0x424f68){return _0x424f68();},'edsPM':function(_0x3588dd,_0x3c3293){return _0x3588dd===_0x3c3293;},'BkqGn':_0x19af03(0x1d0),'geiOa':'onBeforeJobExecute','VMTrs':function(_0xa744b8,_0x50c00a){return _0xa744b8(_0x50c00a);}},_0x2f67ee=this[_0x19af03(0x196)][_0x23876e[_0x19af03(0x159)]],_0x4ace22=this['handlers'][_0x23876e[_0x19af03(0x159)]];if(!_0x4ace22)throw new Error(_0x19af03(0x1b9)+_0x23876e[_0x19af03(0x159)]);const _0x2df705=logger[_0x19af03(0x101)]({'jobId':_0x23876e['id'],'jobName':_0x23876e[_0x19af03(0x159)]});_0x2df705['info']({'event':'job_started','attempt':_0x38e45f[_0x19af03(0x1ee)](_0x23876e[_0x19af03(0x1ab)],0x1),'triggeredBy':_0x23876e[_0x19af03(0x1e9)]?.['triggeredBy']||_0x38e45f[_0x19af03(0x12d)]},'Job\x20started:\x20'+_0x23876e[_0x19af03(0x159)]+_0x19af03(0x1c7)+(_0x23876e[_0x19af03(0x1ab)]+0x1)+')');const _0x1a162e=_0x38e45f[_0x19af03(0x19c)](uuidv7),_0x4c6377=_0x23876e[_0x19af03(0x1e9)]?.['triggeredBy']||_0x38e45f['mDXWy'],_0x5951ea=this[_0x19af03(0x18c)]({'id':_0x1a162e,'jobName':_0x23876e['name'],'bullmqJobId':_0x23876e['id'],'triggerType':_0x4c6377===_0x38e45f['Sbkuv']?_0x38e45f['cpPTy']:_0x38e45f['GAcSW'](_0x4c6377,_0x19af03(0x12a))?_0x19af03(0x1b6):'cron','triggeredBy':_0x38e45f['fVoMl'](_0x4c6377,_0x19af03(0xf1))?'system':_0x4c6377,'queue':_0x2f67ee?.['queue']||_0x19af03(0x1b0),'attempt':_0x23876e['attemptsMade']+0x1,'configFile':_0x2f67ee?.[_0x19af03(0x194)]||null})['catch'](_0x390faa=>{const _0x392441=_0x19af03;_0x2df705[_0x392441(0x16e)]({'event':'job_history_insert_bg_error','error':_0x390faa[_0x392441(0xfa)]},_0x392441(0x10c)+_0x390faa['message']);});this['activeHistoryIds'][_0x19af03(0x138)](_0x23876e['id'],{'historyId':_0x1a162e,'insertPromise':_0x5951ea});const _0x8eeaa9=this['buildContext'](_0x23876e,_0x2f67ee,_0x2df705),_0x41fff4=_0x38e45f['xLZat'](getComponentEngine);if(_0x41fff4&&_0x38e45f[_0x19af03(0x1e5)](typeof _0x41fff4['executeEventHandlers'],_0x38e45f[_0x19af03(0x168)])){const _0x1470b4=await _0x41fff4[_0x19af03(0x158)](_0x38e45f[_0x19af03(0x1e7)],_0x8eeaa9,!![]);if(!_0x1470b4[_0x19af03(0xed)])throw new Error(_0x19af03(0x11e)+_0x1470b4[_0x19af03(0x111)]);}const _0x21299f=await _0x38e45f[_0x19af03(0x13f)](_0x4ace22,_0x8eeaa9);return _0x2df705['info']({'event':'job_handler_done','result':_0x21299f},'Job\x20handler\x20completed:\x20'+_0x23876e[_0x19af03(0x159)]),_0x21299f;}['buildContext'](_0x24351b,_0x4a6cf5,_0x43a9b2){const _0x62e169=a0_0x3e2f79,_0x205399={'kEclW':_0x62e169(0xe5),'lGdYS':function(_0x1b95fd,_0x5f2e19){return _0x1b95fd+_0x5f2e19;},'xzZPP':function(_0x202be1,_0x183548){return _0x202be1||_0x183548;}};return{'jobId':_0x24351b['id'],'jobName':_0x24351b['name'],'attempt':_0x205399[_0x62e169(0x11d)](_0x24351b[_0x62e169(0x1ab)],0x1),'maxAttempts':_0x4a6cf5?.[_0x62e169(0x1de)]?.['maxAttempts']||0x3,'payload':_0x24351b['data']||{},'config':_0x205399['xzZPP'](_0x4a6cf5,{}),'db':this['getDbUtils'](),'redis':this['getRedisClient'](),'logger':_0x43a9b2,'kafka':this[_0x62e169(0x1bd)](),'cache':this['getCacheManager'](),'updateProgress':async _0x4d6d05=>{const _0x5e9c9d=_0x62e169;await _0x24351b[_0x5e9c9d(0xde)](_0x4d6d05);},'emit':async(_0x4d146f,_0x47e598)=>{const _0x12f76a=_0x62e169,_0x8f2d61=this[_0x12f76a(0x1bd)]();_0x8f2d61&&await _0x8f2d61[_0x12f76a(0x1a5)](_0x4d146f,_0x205399[_0x12f76a(0x113)],null,_0x47e598,{'module':'job-scheduler','endpoint':_0x24351b['name']});},'job':_0x24351b};}['getDbType'](){const _0x183cda=a0_0x3e2f79,_0x43ac2f={'TFZTu':'postgresql'};return(process['env'][_0x183cda(0x15e)]||_0x43ac2f[_0x183cda(0x171)])['toLowerCase']();}async['ensureTables'](){const _0x2a9464=a0_0x3e2f79,_0x496493={'ESrpf':'job_db_unavailable','CGQDq':_0x2a9464(0x1ae),'ZfvlG':'job_db_type_unsupported','phjLk':'job_sql_not_found','KfDEX':'ora-00955','owWJs':'duplicate'},_0x3795be=this[_0x2a9464(0x134)]();if(!_0x3795be){logger['warn']({'event':_0x496493[_0x2a9464(0xf3)]},'Database\x20tidak\x20tersedia,\x20skip\x20auto-create\x20job\x20tables');return;}const _0x925141=this[_0x2a9464(0x1c3)](),_0x2d25f8={'postgresql':'postgresql.sql','oracle':_0x496493[_0x2a9464(0x1a3)],'mysql':_0x2a9464(0x189)},_0x2e36e6=_0x2d25f8[_0x925141];if(!_0x2e36e6){logger[_0x2a9464(0x16e)]({'event':_0x496493[_0x2a9464(0xea)],'dbType':_0x925141},_0x2a9464(0x105)+_0x925141+'\x27\x20tidak\x20didukung\x20untuk\x20job\x20monitoring\x20tables');return;}const _0x195627=path['join'](__dirname,_0x2a9464(0xf0),_0x2e36e6);if(!fs[_0x2a9464(0x133)](_0x195627)){logger[_0x2a9464(0x16e)]({'event':_0x496493[_0x2a9464(0x1bf)],'path':_0x195627},_0x2a9464(0x166)+_0x195627);return;}const _0x4641e1=fs['readFileSync'](_0x195627,_0x2a9464(0x131)),_0x5b56fb=this['splitSqlStatements'](_0x4641e1,_0x925141);let _0x187d60=0x0;for(const _0x23ccdf of _0x5b56fb){try{await _0x3795be[_0x2a9464(0x11b)](_0x23ccdf),_0x187d60++;}catch(_0xbe027c){const _0x4a4b83=(_0xbe027c['message']||'')['toLowerCase'](),_0x4c41b7=_0x4a4b83['includes']('already\x20exists')||_0x4a4b83['includes'](_0x496493['KfDEX'])||_0x4a4b83[_0x2a9464(0x157)](_0x496493[_0x2a9464(0xe2)]);!_0x4c41b7&&logger['warn']({'event':_0x2a9464(0x150),'error':_0xbe027c[_0x2a9464(0xfa)]},'Job\x20ensureTables\x20warning:\x20'+_0xbe027c[_0x2a9464(0xfa)]);}}logger['info']({'event':'job_tables_ensured','dbType':_0x925141,'executed':_0x187d60},'Job\x20monitoring\x20tables\x20ensured\x20('+_0x925141+')');}['splitSqlStatements'](_0x291ce3,_0x26ab8b){const _0x381465={'aBlnd':function(_0x49e640,_0xce593c){return _0x49e640===_0xce593c;},'HWPDy':function(_0x566c21,_0x3af412){return _0x566c21>_0x3af412;}};let _0xceabf;return _0x26ab8b==='oracle'?_0xceabf=_0x291ce3['split'](/\n\/\s*(?:\n|$)/):_0xceabf=_0x291ce3['split'](/;\s*(?:\n|$)/),_0xceabf['map'](_0x107c7a=>_0x107c7a['trim']())['filter'](_0xe7e978=>{const _0x12094f=a0_0x1aad;if(_0x381465['aBlnd'](_0xe7e978['length'],0x0))return![];const _0x5e25b0=_0xe7e978[_0x12094f(0x103)]('\x0a')['filter'](_0x23482b=>!_0x23482b[_0x12094f(0x129)]()['startsWith']('--')&&_0x23482b[_0x12094f(0x129)]()['length']>0x0);return _0x381465['HWPDy'](_0x5e25b0['length'],0x0);});}async[a0_0x3e2f79(0x1c5)](_0x4cc42d,_0xc1a1d='online',_0x21aea4=null){const _0x724dc=a0_0x3e2f79,_0x2cba37={'IXWZZ':_0x724dc(0x1eb),'iawxb':function(_0x1115d2,_0x54fcc2){return _0x1115d2===_0x54fcc2;}},_0x261f6b=this['getDbUtils']();if(!_0x261f6b)return;const _0x48adfc=this[_0x724dc(0x1c3)](),_0x5a6076=[_0x4cc42d[_0x724dc(0x159)],_0x4cc42d['description']||_0x4cc42d['name'],_0x4cc42d['type']||_0x724dc(0xf1),_0x4cc42d['schedule']||null,_0x4cc42d[_0x724dc(0x188)]||_0x724dc(0x1b0),_0x4cc42d[_0x724dc(0xeb)],_0x4cc42d['_sourceFile']||'',_0x4cc42d['timeout']||0x7530,_0x4cc42d[_0x724dc(0x1de)]?.['maxAttempts']||0x3,_0x4cc42d['retry']?.['backoff']||_0x2cba37[_0x724dc(0x12e)],_0xc1a1d,_0x21aea4];try{if(_0x48adfc===_0x724dc(0x144))await _0x261f6b[_0x724dc(0x11b)]('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)',_0x5a6076);else _0x2cba37[_0x724dc(0x1a4)](_0x48adfc,_0x724dc(0x11c))?await _0x261f6b['executeQuery']('INSERT\x20INTO\x20job_registry\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(job_name,\x20display_name,\x20type,\x20schedule,\x20queue,\x20handler,\x20config_file,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20timeout,\x20retry_max,\x20retry_backoff,\x20status,\x20next_run_at,\x20created_at,\x20updated_at)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20NOW(),\x20NOW())\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20DUPLICATE\x20KEY\x20UPDATE\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display_name\x20=\x20VALUES(display_name),\x20type\x20=\x20VALUES(type),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20schedule\x20=\x20VALUES(schedule),\x20queue\x20=\x20VALUES(queue),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20handler\x20=\x20VALUES(handler),\x20config_file\x20=\x20VALUES(config_file),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20timeout\x20=\x20VALUES(timeout),\x20retry_max\x20=\x20VALUES(retry_max),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20retry_backoff\x20=\x20VALUES(retry_backoff),\x20status\x20=\x20VALUES(status),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20next_run_at\x20=\x20VALUES(next_run_at)',_0x5a6076):await _0x261f6b['executeQuery']('INSERT\x20INTO\x20job_registry\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(job_name,\x20display_name,\x20type,\x20schedule,\x20queue,\x20handler,\x20config_file,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20timeout,\x20retry_max,\x20retry_backoff,\x20status,\x20next_run_at,\x20created_at,\x20updated_at)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$5,\x20$6,\x20$7,\x20$8,\x20$9,\x20$10,\x20$11,\x20$12,\x20NOW(),\x20NOW())\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20CONFLICT\x20(job_name)\x20DO\x20UPDATE\x20SET\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display_name\x20=\x20EXCLUDED.display_name,\x20type\x20=\x20EXCLUDED.type,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20schedule\x20=\x20EXCLUDED.schedule,\x20queue\x20=\x20EXCLUDED.queue,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20handler\x20=\x20EXCLUDED.handler,\x20config_file\x20=\x20EXCLUDED.config_file,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20timeout\x20=\x20EXCLUDED.timeout,\x20retry_max\x20=\x20EXCLUDED.retry_max,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20retry_backoff\x20=\x20EXCLUDED.retry_backoff,\x20status\x20=\x20EXCLUDED.status,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20next_run_at\x20=\x20EXCLUDED.next_run_at,\x20updated_at\x20=\x20NOW()',_0x5a6076);}catch(_0x5e40d0){logger['warn']({'event':'job_registry_upsert_error','name':_0x4cc42d[_0x724dc(0x159)],'error':_0x5e40d0[_0x724dc(0xfa)]},_0x724dc(0x1a6)+_0x4cc42d[_0x724dc(0x159)]+_0x724dc(0x1a1)+_0x5e40d0['message']);}}async[a0_0x3e2f79(0x18c)](_0x45ae28){const _0x5b27eb=a0_0x3e2f79,_0x385a36={'gYNsU':'cron','hXaAe':function(_0x5a2778,_0x1f776d){return _0x5a2778===_0x1f776d;},'EPtfy':_0x5b27eb(0x11c),'iVFtF':_0x5b27eb(0x125)},_0x3f084d=this[_0x5b27eb(0x134)]();if(!_0x3f084d)return;const _0x3dbfa0=this['getDbType'](),_0x2dbfc4=[_0x45ae28['id'],_0x45ae28[_0x5b27eb(0x11f)],_0x45ae28['bullmqJobId']||null,_0x45ae28['triggerType']||_0x385a36[_0x5b27eb(0x16d)],_0x45ae28['triggeredBy']||'system',_0x45ae28['queue']||_0x5b27eb(0x1b0),_0x45ae28[_0x5b27eb(0x122)]||0x1,_0x45ae28[_0x5b27eb(0x13c)]||null,process[_0x5b27eb(0x1f5)]];try{if(_0x385a36['hXaAe'](_0x3dbfa0,_0x5b27eb(0x144)))await _0x3f084d['executeQuery']('INSERT\x20INTO\x20job_history\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(id,\x20job_name,\x20bullmq_job_id,\x20trigger_type,\x20triggered_by,\x20status,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20queue,\x20attempt,\x20config_file,\x20started_at,\x20worker_pid,\x20created_at)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(:1,\x20:2,\x20:3,\x20:4,\x20:5,\x20\x27running\x27,\x20:6,\x20:7,\x20:8,\x20SYSTIMESTAMP,\x20:9,\x20SYSTIMESTAMP)',_0x2dbfc4);else _0x3dbfa0===_0x385a36['EPtfy']?await _0x3f084d[_0x5b27eb(0x11b)](_0x5b27eb(0x172),_0x2dbfc4):await _0x3f084d['executeQuery'](_0x5b27eb(0x1b8),_0x2dbfc4);await this[_0x5b27eb(0x13e)](_0x45ae28['jobName'],'running');}catch(_0x116ec1){logger['warn']({'event':_0x385a36['iVFtF'],'jobName':_0x45ae28['jobName'],'error':_0x116ec1[_0x5b27eb(0xfa)]},'Failed\x20to\x20insert\x20job\x20history:\x20'+_0x116ec1['message']);}}async['updateJobHistoryCompleted'](_0x43cc5c,_0x56c92f,_0x323895){const _0x5aee66=a0_0x3e2f79,_0x24954c={'lcVeV':'mysql'},_0xf1e471=this[_0x5aee66(0x134)]();if(!_0xf1e471)return;const _0x37644b=this[_0x5aee66(0x1c3)](),_0x478133=_0x323895?String(_0x323895)[_0x5aee66(0x14a)](0x0,0x1f4):null;try{if(_0x37644b==='oracle')await _0xf1e471[_0x5aee66(0x11b)]('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',[_0x56c92f,_0x478133,_0x43cc5c]);else _0x37644b===_0x24954c['lcVeV']?await _0xf1e471[_0x5aee66(0x11b)]('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?',[_0x56c92f,_0x478133,_0x43cc5c]):await _0xf1e471['executeQuery'](_0x5aee66(0x128),[_0x56c92f,_0x478133,_0x43cc5c]);}catch(_0x1b50b8){logger[_0x5aee66(0x16e)]({'event':'job_history_complete_error','historyId':_0x43cc5c,'error':_0x1b50b8[_0x5aee66(0xfa)]},'Failed\x20to\x20update\x20job\x20history\x20(completed):\x20'+_0x1b50b8[_0x5aee66(0xfa)]);}}async[a0_0x3e2f79(0x10a)](_0x5d9468,_0x2891f1,_0xbb1d07,_0x1671a5,_0x356f8e){const _0x1c9253=a0_0x3e2f79,_0x53157b={'UbgFv':function(_0xa2a2ba,_0x4a9dc3){return _0xa2a2ba===_0x4a9dc3;},'jhPIZ':'oracle','uRwsJ':function(_0x4a1265,_0x4bf10a){return _0x4a1265||_0x4bf10a;},'SPOcb':_0x1c9253(0x11c),'lifwM':_0x1c9253(0x167)},_0x2f8ce4=this[_0x1c9253(0x134)]();if(!_0x2f8ce4)return;const _0x32cdb5=this['getDbType'](),_0x540abd=_0x1671a5?String(_0x1671a5)[_0x1c9253(0x14a)](0x0,0x3e8):null,_0x20cabd=_0x356f8e?String(_0x356f8e)['substring'](0x0,0xfa0):null;try{if(_0x53157b['UbgFv'](_0x32cdb5,_0x53157b['jhPIZ']))await _0x2f8ce4[_0x1c9253(0x11b)]('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',[_0x2891f1,_0x53157b[_0x1c9253(0x1df)](_0xbb1d07,0x0),_0x540abd,_0x20cabd,_0x5d9468]);else _0x32cdb5===_0x53157b['SPOcb']?await _0x2f8ce4[_0x1c9253(0x11b)](_0x1c9253(0x1a2),[_0x2891f1,_0x53157b['uRwsJ'](_0xbb1d07,0x0),_0x540abd,_0x20cabd,_0x5d9468]):await _0x2f8ce4[_0x1c9253(0x11b)]('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',[_0x2891f1,_0xbb1d07||0x0,_0x540abd,_0x20cabd,_0x5d9468]);}catch(_0x4432d3){logger[_0x1c9253(0x16e)]({'event':_0x53157b[_0x1c9253(0xe9)],'historyId':_0x5d9468,'error':_0x4432d3['message']},_0x1c9253(0x198)+_0x4432d3['message']);}}async[a0_0x3e2f79(0x13e)](_0x3b52b3,_0x2282af){const _0x5d95e3=a0_0x3e2f79,_0x11a33a={'SHiAT':_0x5d95e3(0x144)},_0x29c034=this[_0x5d95e3(0x134)]();if(!_0x29c034)return;const _0x3ca2e3=this[_0x5d95e3(0x1c3)]();try{if(_0x3ca2e3===_0x11a33a['SHiAT'])await _0x29c034[_0x5d95e3(0x11b)](_0x5d95e3(0x1ed),[_0x2282af,_0x3b52b3]);else _0x3ca2e3===_0x5d95e3(0x11c)?await _0x29c034[_0x5d95e3(0x11b)]('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20?,\x20last_run_at\x20=\x20NOW()\x20WHERE\x20job_name\x20=\x20?',[_0x2282af,_0x3b52b3]):await _0x29c034[_0x5d95e3(0x11b)](_0x5d95e3(0x132),[_0x2282af,_0x3b52b3]);}catch(_0x3ed47e){}}async[a0_0x3e2f79(0x1f4)](_0x369c7f,_0x25a9e2,_0x2114f8,_0x2dac57){const _0x1723b6=a0_0x3e2f79,_0x56d712={'IBimL':_0x1723b6(0xed),'gzmiV':_0x1723b6(0x1f7),'DAKIq':function(_0x17200a,_0x357b9d){return _0x17200a===_0x357b9d;},'eOyjX':function(_0x173163,_0x3d9be9){return _0x173163===_0x3d9be9;},'vYDTO':'mysql','CeRiC':_0x1723b6(0x1f1)},_0xa0e28f=this[_0x1723b6(0x134)]();if(!_0xa0e28f)return;const _0x454075=this['getDbType'](),_0x2f7786=_0x25a9e2===_0x56d712[_0x1723b6(0x1ef)]?_0x56d712['gzmiV']:'total_failed';try{if(_0x56d712[_0x1723b6(0x1d7)](_0x454075,_0x1723b6(0x144)))await _0xa0e28f['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'+_0x2f7786+_0x1723b6(0x1d5)+_0x2f7786+'\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',[_0x25a9e2,_0x2114f8,_0x2dac57,_0x369c7f]);else _0x56d712['eOyjX'](_0x454075,_0x56d712[_0x1723b6(0x165)])?await _0xa0e28f['executeQuery'](_0x1723b6(0x1b5)+_0x2f7786+'\x20=\x20'+_0x2f7786+'\x20+\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20next_run_at\x20=\x20?\x20WHERE\x20job_name\x20=\x20?',[_0x25a9e2,_0x2114f8,_0x2dac57,_0x369c7f]):await _0xa0e28f['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'+_0x2f7786+'\x20=\x20'+_0x2f7786+'\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',[_0x25a9e2,_0x2114f8,_0x2dac57,_0x369c7f]);}catch(_0x32b30b){logger[_0x1723b6(0x16e)]({'event':_0x56d712[_0x1723b6(0x14d)],'jobName':_0x369c7f,'error':_0x32b30b[_0x1723b6(0xfa)]},'Failed\x20to\x20update\x20job\x20registry\x20counters:\x20'+_0x32b30b[_0x1723b6(0xfa)]);}}async['getNextRunFromBullMQ'](_0x52656f){const _0xe09e16=a0_0x3e2f79,_0x3857f1={'PJGVp':function(_0x1327a2,_0x28d848){return _0x1327a2!==_0x28d848;},'XOcmX':function(_0x167068,_0x53c8eb){return _0x167068===_0x53c8eb;},'nkvLq':'function'},_0x5ec65a=this[_0xe09e16(0x196)][_0x52656f];if(!_0x5ec65a||_0x3857f1[_0xe09e16(0x174)](_0x5ec65a['type'],_0xe09e16(0xf1))||_0x3857f1['XOcmX'](_0x5ec65a['enabled'],![]))return null;const _0x33f427=this['queues'][_0x5ec65a[_0xe09e16(0x188)]||_0xe09e16(0x1b0)];if(!_0x33f427)return null;try{if(typeof _0x33f427['getJobSchedulers']===_0x3857f1[_0xe09e16(0xf5)]){const _0x5c3450=await _0x33f427[_0xe09e16(0xe8)](0x0,0x64),_0x1149c5=_0x5c3450['find'](_0x4e0723=>_0x4e0723['name']===_0x52656f);return _0x1149c5?.[_0xe09e16(0x147)]?new Date(_0x1149c5['next']):null;}}catch(_0x6ead04){}return null;}async['setAllJobsOffline'](){const _0x2981a4=a0_0x3e2f79,_0x2238c5={'sptxO':function(_0x1cccf6,_0x2f4bb3){return _0x1cccf6===_0x2f4bb3;},'yvZEt':function(_0x2ab0b2,_0x57cda5){return _0x2ab0b2===_0x57cda5;},'YEYoD':_0x2981a4(0x11c)},_0x329ebd=this['getDbUtils']();if(!_0x329ebd)return;const _0x58a4d9=this['getDbType']();try{if(_0x2238c5[_0x2981a4(0x184)](_0x58a4d9,'oracle'))await _0x329ebd[_0x2981a4(0x11b)](_0x2981a4(0x140));else _0x2238c5['yvZEt'](_0x58a4d9,_0x2238c5[_0x2981a4(0x1e1)])?await _0x329ebd[_0x2981a4(0x11b)]('UPDATE\x20job_registry\x20SET\x20status\x20=\x20\x27offline\x27,\x20next_run_at\x20=\x20NULL'):await _0x329ebd[_0x2981a4(0x11b)]('UPDATE\x20job_registry\x20SET\x20status\x20=\x20\x27offline\x27,\x20next_run_at\x20=\x20NULL,\x20updated_at\x20=\x20NOW()');}catch(_0x1ee373){logger[_0x2981a4(0x16e)]({'event':_0x2981a4(0x13d),'error':_0x1ee373[_0x2981a4(0xfa)]},_0x2981a4(0x1f2)+_0x1ee373['message']);}}[a0_0x3e2f79(0x134)](){const _0x33f2ac=a0_0x3e2f79,_0xa60137={'fCBus':'postgresql','GkZOx':function(_0x22dff6,_0x3385d9){return _0x22dff6===_0x3385d9;},'KeEOU':_0x33f2ac(0xdf),'SPFxt':'db_oracle_unavailable','Dphgu':'Oracle\x20DB\x20module\x20not\x20available','ErDAl':function(_0x3dbdb1,_0x2da247){return _0x3dbdb1(_0x2da247);},'jeYMs':function(_0x12cc93,_0xc0af53){return _0x12cc93(_0xc0af53);},'Bwcuf':_0x33f2ac(0x197)},_0x2ea8bd=(process['env'][_0x33f2ac(0x15e)]||_0xa60137['fCBus'])['toLowerCase']();if(_0xa60137[_0x33f2ac(0x1b2)](_0x2ea8bd,'oracle'))try{const _0x25e58d=require(_0xa60137['KeEOU']);return{'executeQuery':(_0x4cbbca,_0x54e630)=>_0x25e58d['executeQuery'](_0x4cbbca,_0x54e630),'executeTransaction':_0x2ee39f=>_0x25e58d['executeTransaction'](_0x2ee39f),'getPool':()=>_0x25e58d['getPool']()};}catch(_0x41246a){return logger[_0x33f2ac(0x16e)]({'event':_0xa60137[_0x33f2ac(0x1d4)]},_0xa60137['Dphgu']),null;}if(_0x2ea8bd==='mysql')try{const _0x55c3cd=_0xa60137['ErDAl'](require,_0x33f2ac(0xe0));return{'executeQuery':(_0x1fc9c7,_0x16e2d8)=>_0x55c3cd['executeQuery'](_0x1fc9c7,_0x16e2d8),'executeTransaction':_0x24782b=>_0x55c3cd['executeTransaction'](_0x24782b),'getPool':()=>_0x55c3cd[_0x33f2ac(0x1a9)]()};}catch(_0x36c89e){return logger['warn']({'event':'db_mysql_unavailable'},_0x33f2ac(0x1db)),null;}try{const _0x3f1f2f=_0xa60137['jeYMs'](require,'../../utils/db');return{'executeQuery':_0x3f1f2f[_0x33f2ac(0x11b)],'executeTransaction':_0x3f1f2f[_0x33f2ac(0x191)],'getPool':_0x3f1f2f[_0x33f2ac(0x1a9)]};}catch(_0x30527c){return logger['warn']({'event':_0xa60137[_0x33f2ac(0x190)]},'PostgreSQL\x20DB\x20module\x20not\x20available'),null;}}[a0_0x3e2f79(0x1c2)](){const _0x2fff0d=a0_0x3e2f79;try{const _0x6d63e3=require('../../utils/redis-client');return _0x6d63e3[_0x2fff0d(0x156)]?_0x6d63e3['getClient']():_0x6d63e3;}catch(_0x36603c){return null;}}['getKafkaService'](){const _0x1eaf63=a0_0x3e2f79,_0xa594b0={'efekd':'true'};try{if(process['env']['KAFKA_ENABLED']===_0xa594b0[_0x1eaf63(0x19e)]){const _0x4ce5ae=require(_0x1eaf63(0x1bb));return _0x4ce5ae['getInstance']?_0x4ce5ae['getInstance']():_0x4ce5ae;}}catch(_0xbc4769){}return null;}[a0_0x3e2f79(0x14c)](){const _0x281d5f=a0_0x3e2f79,_0x3eea9c={'yUDyl':_0x281d5f(0x12f)};try{return require(_0x3eea9c[_0x281d5f(0x104)]);}catch(_0x294914){return null;}}async['dispatch'](_0x1aa7d9,_0x505b19={}){const _0x27886d=a0_0x3e2f79,_0x5405ff={'qtUSk':_0x27886d(0x1eb),'OGNPS':'api'},_0x59c690=this['jobConfigs'][_0x1aa7d9];if(!_0x59c690)throw new Error(_0x27886d(0x18b)+_0x1aa7d9);const _0x496643=this[_0x27886d(0x1da)][_0x59c690['queue']||_0x27886d(0x1b0)],_0x5c54c0=await _0x496643[_0x27886d(0x1c0)](_0x1aa7d9,{..._0x505b19,'handler':_0x59c690[_0x27886d(0xeb)],'triggeredBy':_0x27886d(0x12a)},{'attempts':_0x59c690['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x59c690['retry']?.[_0x27886d(0x186)]||_0x5405ff['qtUSk'],'delay':_0x59c690[_0x27886d(0x1de)]?.[_0x27886d(0x175)]||0x1388},'timeout':_0x59c690[_0x27886d(0x18e)]||0x7530});return logger['info']({'event':_0x27886d(0x1e0),'jobId':_0x5c54c0['id'],'name':_0x1aa7d9,'triggeredBy':_0x5405ff[_0x27886d(0xef)]},'Job\x20dispatched:\x20'+_0x1aa7d9+_0x27886d(0x10e)+_0x5c54c0['id']+')'),{'jobId':_0x5c54c0['id'],'name':_0x1aa7d9};}async['dispatchDelayed'](_0x37c48f,_0x4ef5df={},_0x5a99f3=0x0){const _0x5a7392=a0_0x3e2f79,_0x1bf54d={'KaCNI':'default','fdwRC':_0x5a7392(0xf9)},_0x25b826=this['jobConfigs'][_0x37c48f];if(!_0x25b826)throw new Error(_0x5a7392(0x18b)+_0x37c48f);const _0x48719a=this[_0x5a7392(0x1da)][_0x25b826['queue']||_0x1bf54d['KaCNI']],_0x10c99b=await _0x48719a[_0x5a7392(0x1c0)](_0x37c48f,{..._0x4ef5df,'handler':_0x25b826[_0x5a7392(0xeb)],'triggeredBy':_0x1bf54d['fdwRC']},{'delay':_0x5a99f3,'attempts':_0x25b826['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x25b826['retry']?.['backoff']||_0x5a7392(0x1eb),'delay':_0x25b826['retry']?.['initialDelay']||0x1388},'timeout':_0x25b826[_0x5a7392(0x18e)]||0x7530});return logger[_0x5a7392(0x1c9)]({'event':'job_dispatched_delayed','jobId':_0x10c99b['id'],'name':_0x37c48f,'delayMs':_0x5a99f3},_0x5a7392(0x18f)+_0x5a99f3+_0x5a7392(0x170)+_0x37c48f+_0x5a7392(0x10e)+_0x10c99b['id']+')'),{'jobId':_0x10c99b['id'],'name':_0x37c48f};}async['getJobStatus'](_0x23d105){const _0x3d0066=a0_0x3e2f79;for(const _0x5389aa of Object[_0x3d0066(0xfd)](this['queues'])){const _0x2dda33=await _0x5389aa['getJob'](_0x23d105);if(_0x2dda33){const _0x5a6180=await _0x2dda33['getState']();return{'jobId':_0x2dda33['id'],'name':_0x2dda33[_0x3d0066(0x159)],'state':_0x5a6180,'progress':_0x2dda33[_0x3d0066(0x18d)],'attemptsMade':_0x2dda33['attemptsMade'],'failedReason':_0x2dda33['failedReason'],'returnvalue':_0x2dda33[_0x3d0066(0xfc)],'data':_0x2dda33['data'],'timestamps':{'created':_0x2dda33[_0x3d0066(0x137)],'started':_0x2dda33['processedOn'],'completed':_0x2dda33['finishedOn']}};}}return null;}[a0_0x3e2f79(0x126)](){const _0x30bdf2=a0_0x3e2f79;return Object[_0x30bdf2(0xfd)](this['jobConfigs'])[_0x30bdf2(0x13a)](_0xb7bf56=>({'name':_0xb7bf56[_0x30bdf2(0x159)],'description':_0xb7bf56[_0x30bdf2(0x151)]||'','type':_0xb7bf56[_0x30bdf2(0xf2)],'schedule':_0xb7bf56[_0x30bdf2(0x115)],'handler':_0xb7bf56[_0x30bdf2(0xeb)],'enabled':_0xb7bf56[_0x30bdf2(0x1a7)]!==![],'queue':_0xb7bf56[_0x30bdf2(0x188)]||_0x30bdf2(0x1b0),'timeout':_0xb7bf56['timeout']||0x7530,'retry':_0xb7bf56[_0x30bdf2(0x1de)]||{'maxAttempts':0x3,'backoff':_0x30bdf2(0x1eb),'initialDelay':0x1388},'metadata':_0xb7bf56['metadata']||{}}));}async[a0_0x3e2f79(0x1c6)](){const _0x1d913a=a0_0x3e2f79,_0x2e8d5b={'FeDpo':_0x1d913a(0x15c)},_0x380ec4=[];for(const [_0x14282b,_0xcc0989]of Object[_0x1d913a(0x1d2)](this[_0x1d913a(0x1da)])){const _0x4b4504=await _0xcc0989[_0x1d913a(0x1d9)]([_0x2e8d5b[_0x1d913a(0x14e)]]);for(const _0x51ec1b of _0x4b4504){_0x380ec4[_0x1d913a(0x19b)]({'jobId':_0x51ec1b['id'],'name':_0x51ec1b[_0x1d913a(0x159)],'queue':_0x14282b,'progress':_0x51ec1b['progress'],'attemptsMade':_0x51ec1b['attemptsMade'],'startedAt':_0x51ec1b['processedOn']});}}return _0x380ec4;}async[a0_0x3e2f79(0x119)](_0x1590f5={}){const _0x5291a0=a0_0x3e2f79,_0x162974={'VQiDi':_0x5291a0(0x18a),'cFXlp':_0x5291a0(0x102)},_0x5b1e8d=parseInt(_0x1590f5['page'],0xa)||0x1,_0x32b1b9=Math[_0x5291a0(0x192)](parseInt(_0x1590f5['limit'],0xa)||0x14,0x64),_0x4eb0e7=(_0x5b1e8d-0x1)*_0x32b1b9,_0x212c14=_0x4eb0e7+_0x32b1b9-0x1,_0x53fab2=[];for(const [_0x239f8c,_0x5c6fcf]of Object[_0x5291a0(0x1d2)](this[_0x5291a0(0x1da)])){const _0x4f0bd7=await _0x5c6fcf[_0x5291a0(0x1d9)]([_0x162974['VQiDi']],_0x4eb0e7,_0x212c14),_0x645b84=await _0x5c6fcf[_0x5291a0(0x1d9)]([_0x162974[_0x5291a0(0x107)]],_0x4eb0e7,_0x212c14);for(const _0x1a0980 of[..._0x4f0bd7,..._0x645b84]){const _0x9c066d=await _0x1a0980[_0x5291a0(0x169)]();_0x53fab2[_0x5291a0(0x19b)]({'jobId':_0x1a0980['id'],'name':_0x1a0980[_0x5291a0(0x159)],'state':_0x9c066d,'queue':_0x239f8c,'attemptsMade':_0x1a0980[_0x5291a0(0x1ab)],'failedReason':_0x1a0980[_0x5291a0(0x135)],'returnvalue':_0x1a0980['returnvalue'],'timestamps':{'created':_0x1a0980[_0x5291a0(0x137)],'started':_0x1a0980['processedOn'],'completed':_0x1a0980['finishedOn']}});}}return _0x53fab2[_0x5291a0(0x180)]((_0x1587e8,_0x39bb47)=>(_0x39bb47[_0x5291a0(0xf7)]['created']||0x0)-(_0x1587e8[_0x5291a0(0xf7)]['created']||0x0)),{'jobs':_0x53fab2['slice'](0x0,_0x32b1b9),'total':_0x53fab2['length'],'page':_0x5b1e8d,'limit':_0x32b1b9};}async['cancelJob'](_0x87e51e){const _0x2ab304=a0_0x3e2f79,_0x2d96e2={'HBdmC':_0x2ab304(0x15c),'dwwHe':function(_0x5459d4,_0x34328d){return _0x5459d4===_0x34328d;},'xQPBJ':_0x2ab304(0xfb)};for(const _0x17fba8 of Object['values'](this[_0x2ab304(0x1da)])){const _0x616d46=await _0x17fba8['getJob'](_0x87e51e);if(_0x616d46){const _0x5b387b=await _0x616d46[_0x2ab304(0x169)]();if(_0x5b387b===_0x2d96e2['HBdmC'])return await _0x616d46['moveToFailed'](new Error(_0x2ab304(0x13b)),'api-cancel',!![]),{'success':!![],'message':_0x2ab304(0x11a)+_0x87e51e+_0x2ab304(0x108)};if(_0x2d96e2[_0x2ab304(0x15a)](_0x5b387b,_0x2d96e2['xQPBJ'])||_0x5b387b===_0x2ab304(0x1ce))return await _0x616d46['remove'](),{'success':!![],'message':'Job\x20'+_0x87e51e+_0x2ab304(0x1cb)+_0x5b387b+')'};return{'success':![],'message':'Job\x20'+_0x87e51e+'\x20tidak\x20bisa\x20di-cancel\x20(state:\x20'+_0x5b387b+')'};}}return{'success':![],'message':_0x2ab304(0x11a)+_0x87e51e+'\x20tidak\x20ditemukan'};}async[a0_0x3e2f79(0xdd)](){const _0x2cb806=a0_0x3e2f79,_0x42381d={'CFpGj':_0x2cb806(0x15c),'oaYnG':'completed','ieMuG':'failed','kOUQr':'waiting'},_0x346c22={};for(const [_0x1d54f1,_0xd04610]of Object[_0x2cb806(0x1d2)](this[_0x2cb806(0x1da)])){try{const _0x12b083=await _0xd04610['getJobCounts'](_0x42381d[_0x2cb806(0x1cd)],_0x42381d['oaYnG'],_0x2cb806(0x1ce),_0x42381d[_0x2cb806(0x149)],'paused',_0x42381d[_0x2cb806(0x17c)]);_0x346c22[_0x1d54f1]=_0x12b083;}catch(_0x342d02){_0x346c22[_0x1d54f1]={'error':_0x342d02[_0x2cb806(0xfa)]};}}const _0x3a4b21={};for(const [_0x38f2ce,_0x1a2d41]of Object['entries'](this['workers'])){_0x3a4b21[_0x38f2ce]={'running':_0x1a2d41[_0x2cb806(0x1f8)](),'paused':_0x1a2d41['isPaused']()};}return{'initialized':this['initialized'],'registeredJobs':Object['keys'](this[_0x2cb806(0x196)])[_0x2cb806(0x123)],'redisConnections':this[_0x2cb806(0x1bc)]['length'],'queues':_0x346c22,'workers':_0x3a4b21};}async['onJobCompleted'](_0x785373,_0xe484f6){const _0x1f4e19=a0_0x3e2f79,_0x26c973={'GCTiH':_0x1f4e19(0x187),'Tdiuw':function(_0x508499,_0x22ba37){return _0x508499-_0x22ba37;},'OJtBN':function(_0x2f6699,_0x279615){return _0x2f6699===_0x279615;},'izMiS':_0x1f4e19(0x1d0),'FLsDV':'onAfterJobComplete','IIndG':_0x1f4e19(0x1aa)},_0x3f1996=logger['child']({'jobId':_0x785373['id'],'jobName':_0x785373['name']});_0x3f1996[_0x1f4e19(0x1c9)]({'event':_0x26c973[_0x1f4e19(0x1c8)],'attemptsMade':_0x785373['attemptsMade'],'duration':_0x785373['finishedOn']?_0x785373['finishedOn']-_0x785373['processedOn']:null},_0x1f4e19(0x195)+_0x785373[_0x1f4e19(0x159)]);const _0x3ed3a0=this['activeHistoryIds']['get'](_0x785373['id']);if(_0x3ed3a0){if(_0x3ed3a0['insertPromise'])await _0x3ed3a0['insertPromise'];const _0x35ccc1=_0x785373['finishedOn']&&_0x785373['processedOn']?_0x26c973[_0x1f4e19(0x1cc)](_0x785373['finishedOn'],_0x785373[_0x1f4e19(0x17e)]):null,_0x28d2da=_0x26c973[_0x1f4e19(0x109)](typeof _0xe484f6,'string')?_0xe484f6:_0xe484f6?JSON['stringify'](_0xe484f6)[_0x1f4e19(0x14a)](0x0,0x1f4):null;await this['updateJobHistoryCompleted'](_0x3ed3a0[_0x1f4e19(0x17b)],_0x35ccc1,_0x28d2da);const _0x4895e4=await this[_0x1f4e19(0x100)](_0x785373[_0x1f4e19(0x159)]);await this[_0x1f4e19(0x1f4)](_0x785373['name'],'success',_0x35ccc1,_0x4895e4),this[_0x1f4e19(0x1ad)]['delete'](_0x785373['id']);}const _0x3a782c=getComponentEngine();if(_0x3a782c&&typeof _0x3a782c['executeEventHandlers']===_0x26c973['izMiS']){const _0x181aba={'jobId':_0x785373['id'],'jobName':_0x785373[_0x1f4e19(0x159)],'result':_0xe484f6,'config':this['jobConfigs'][_0x785373[_0x1f4e19(0x159)]]||{}};_0x3a782c[_0x1f4e19(0x158)](_0x26c973[_0x1f4e19(0x14f)],_0x181aba,![])[_0x1f4e19(0x155)](_0x19397f=>{const _0x3b7803=_0x1f4e19;_0x3f1996[_0x3b7803(0x16e)]({'event':'after_job_complete_hook_error','error':_0x19397f[_0x3b7803(0xfa)]},'onAfterJobComplete\x20handler\x20error\x20(non-blocking)');});}const _0x6cd9c8=this['getKafkaService']();if(_0x6cd9c8)try{await _0x6cd9c8[_0x1f4e19(0x1a5)]('restforge.jobs.completed','JOB_COMPLETED',null,{'jobId':_0x785373['id'],'name':_0x785373[_0x1f4e19(0x159)],'result':_0xe484f6},{'module':'job-scheduler','endpoint':_0x785373[_0x1f4e19(0x159)]});}catch(_0x5aea33){_0x3f1996['warn']({'event':'job_kafka_publish_error','error':_0x5aea33['message']},_0x26c973[_0x1f4e19(0x120)]);}}async[a0_0x3e2f79(0x154)](_0x5d33e9,_0x5815d2){const _0x502d62=a0_0x3e2f79,_0x136d5a={'mZsEk':_0x502d62(0xd8),'wVJWh':'job_failed','sAWex':function(_0x47b519,_0x1f4ba8){return _0x47b519<_0x1f4ba8;},'pFBLr':function(_0x4af0f2,_0x5be3e9){return _0x4af0f2-_0x5be3e9;},'ZKXdv':function(_0x3fc15b){return _0x3fc15b();},'kWewQ':_0x502d62(0x1d0),'pvKCk':'job-scheduler'},_0x235422=logger[_0x502d62(0x101)]({'jobId':_0x5d33e9['id'],'jobName':_0x5d33e9[_0x502d62(0x159)]});_0x235422[_0x502d62(0x111)]({'event':_0x136d5a['wVJWh'],'attemptsMade':_0x5d33e9['attemptsMade'],'failedReason':_0x5815d2?.['message'],'willRetry':_0x136d5a[_0x502d62(0x117)](_0x5d33e9[_0x502d62(0x1ab)],this[_0x502d62(0x196)][_0x5d33e9['name']]?.[_0x502d62(0x1de)]?.[_0x502d62(0x17a)]||0x3)},'Job\x20failed:\x20'+_0x5d33e9['name']+'\x20—\x20'+_0x5815d2?.[_0x502d62(0xfa)]);const _0x55a1d6=this['activeHistoryIds']['get'](_0x5d33e9['id']);if(_0x55a1d6){if(_0x55a1d6['insertPromise'])await _0x55a1d6[_0x502d62(0x178)];const _0x364ebc=_0x5d33e9[_0x502d62(0x1a0)]&&_0x5d33e9['processedOn']?_0x136d5a['pFBLr'](_0x5d33e9['finishedOn'],_0x5d33e9['processedOn']):null;await this['updateJobHistoryFailed'](_0x55a1d6['historyId'],_0x364ebc,_0x5d33e9['progress'],_0x5815d2?.[_0x502d62(0xfa)],_0x5815d2?.['stack']);const _0x21835d=await this['getNextRunFromBullMQ'](_0x5d33e9[_0x502d62(0x159)]);await this['updateRegistryCounters'](_0x5d33e9['name'],_0x502d62(0x102),_0x364ebc,_0x21835d),this['activeHistoryIds'][_0x502d62(0x19f)](_0x5d33e9['id']);}const _0x219f84=_0x136d5a['ZKXdv'](getComponentEngine);if(_0x219f84&&typeof _0x219f84[_0x502d62(0x158)]===_0x136d5a['kWewQ']){const _0x554bb1={'jobId':_0x5d33e9['id'],'jobName':_0x5d33e9[_0x502d62(0x159)],'error':_0x5815d2?.[_0x502d62(0xfa)],'attemptsMade':_0x5d33e9['attemptsMade'],'config':this['jobConfigs'][_0x5d33e9[_0x502d62(0x159)]]||{}};_0x219f84['executeEventHandlers'](_0x502d62(0x118),_0x554bb1,![])[_0x502d62(0x155)](_0x5646e8=>{const _0x41665d=_0x502d62;_0x235422[_0x41665d(0x16e)]({'event':_0x136d5a['mZsEk'],'error':_0x5646e8[_0x41665d(0xfa)]},_0x41665d(0x110));});}const _0x21cbbe=this['getKafkaService']();if(_0x21cbbe)try{await _0x21cbbe[_0x502d62(0x1a5)]('restforge.jobs.failed','JOB_FAILED',null,{'jobId':_0x5d33e9['id'],'name':_0x5d33e9['name'],'error':_0x5815d2?.[_0x502d62(0xfa)],'attemptsMade':_0x5d33e9['attemptsMade']},{'module':_0x136d5a[_0x502d62(0xf8)],'endpoint':_0x5d33e9['name']});}catch(_0x35eb55){_0x235422['warn']({'event':'job_kafka_publish_error','error':_0x35eb55[_0x502d62(0xfa)]},'Failed\x20to\x20publish\x20JOB_FAILED\x20to\x20Kafka');}}['onJobProgress'](_0x40f93f,_0x530cea){const _0x3df307=a0_0x3e2f79;logger['debug']({'event':_0x3df307(0x152),'jobId':_0x40f93f['id'],'jobName':_0x40f93f[_0x3df307(0x159)],'progress':_0x530cea},'Job\x20progress:\x20'+_0x40f93f[_0x3df307(0x159)]+_0x3df307(0x1a1)+_0x530cea+'%');}}module['exports']=new JobManager();
@@ -1 +1 @@
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
+ const a0_0x260f63=a0_0x270c;(function(_0x37f963,_0x51ea83){const _0x49f18c=a0_0x270c,_0x24c68b=_0x37f963();while(!![]){try{const _0x5cdcde=parseInt(_0x49f18c(0x100))/0x1+parseInt(_0x49f18c(0x10c))/0x2*(parseInt(_0x49f18c(0x112))/0x3)+-parseInt(_0x49f18c(0xf0))/0x4+parseInt(_0x49f18c(0x11b))/0x5*(-parseInt(_0x49f18c(0x10e))/0x6)+parseInt(_0x49f18c(0xf6))/0x7+-parseInt(_0x49f18c(0x119))/0x8*(-parseInt(_0x49f18c(0xea))/0x9)+parseInt(_0x49f18c(0x135))/0xa*(-parseInt(_0x49f18c(0x12a))/0xb);if(_0x5cdcde===_0x51ea83)break;else _0x24c68b['push'](_0x24c68b['shift']());}catch(_0x4ed0a5){_0x24c68b['push'](_0x24c68b['shift']());}}}(a0_0x49ab,0x67fae));function a0_0x49ab(){const _0x38ce4c=['ANnVBG','CgfYC2u','zxjYB3i','odmXody2BgTuve1N','z2v0sM9ICW','CMv0CNK','tvnpwgK','t3DUyM8','zw5KC1DPDgG','zgvZy3jPChrPB24','zMLUAxnOzwrpBG','zgLZy29UBMvJDgvK','BMfTzq','D2fPDgLUzW','sM9IihrYAwDNzxjLzcb2AweGqvbjoIa','ogj3D0fNtG','rxjYB3iGz2v0DgLUzYbXDwv1zsbZDgf0CW','mZaWtLr3ruHh','z2v0','sM9Iia','ihrPzgfRigrPDgvTDwTHBG','ndi0mdu2rgnQAff6','zw52','zxHWB25LBNrPywW','Cgf5Bg9Hza','l3f1zxvLCW','AM9Ix2HPC3rVCNLFzxjYB3i','BwfW','nJu4mJaXnNrurwvPwa','AM9Ix3rYAwDNzxjLzf92AwfFyxbP','nZyYnZv1BNzWz2m','AM9PBG','AgLNAa','BwvZC2fNzq','y3jLyxrLza','BuvPwuW','z1bpAve','l2HPC3rVCNK','z2v0u3rHDgu','ELbgEK8','Cg9ZDa','uKvesvnFrei','zgvSyxLLza','uKvesvnFueftu1DpuKq','B3nsyvu','mJa5DwD0DMTt','icHPzdOG','qKrYCvq','zxHPC3rZu3LUyW','AM9Ix3n0yxr1C19LCNjVCG','ChjVz3jLC3m','zgvNCMfKzwq','CMy6AM9I','DMfSDwvZ','Bg93','yNvSBg1X','nZCYotmWsKHAAwn5','BgLTAxq','CgfYyw1Z','zgvMyxvSDa','C29YDa','rNPeCgW','yxbP','ChvZAa','iIb0AwrHAYbKAxrLBxvRyw4GzgKGA29UzMLNDxjHC2K','uKvesvnFse9tva','CxvLCNK','zMLSDgvY','z2v0sM9I','txn5q20','AM9Ix3jVDxrLC19YzwrPC19LCNjVCG','ywn0AxzL','y3nWt1G','zgf0yq','Bw92zvrVrMfPBgvK','CMvHzgrPCLn5BMm','Bg9JywXOB3n0','rhjrzKC','sK9cx1jfreLtx1bsruzjwa','y2Dczge','AgfUzgXLCG','DgLTzw91Da','rxjYB3iGBgLZDgLUzYbQB2jZ','v2r3Dfa','sM9IignHBMnLBgXLzcb2AweGqvbj','Bxjkt1i','C3rHDhvZ','Bwf4qxr0zw1WDhm','DxrMoa','Bwv0ywrHDge','t2jzywG','ChjVy2vZC2vKt24','ouLUEMHfvW','BgvUz3rO','zgTkC1q','DgLTzxn0yw1WCW','l2HLywX0Aa','BwLU','mtu3mZy2ngrTAu1AtW','z2v0sM9Iq291BNrZ','lMPZB24','zw5HyMXLza','zMjJsNe','uKvesvnFue9sva','ntGXndi2m1rQrhLnBG','zMfPBgvKuMvHC29U','AM9Ix3rYAwDNzxjFzxjYB3i','sM9IifjVDxrLCYbszwrPCYbLCNjVCJOG','l2XPC3q','zxHWB3j0CW','ihjLBw92zwqGkhDHCYa'];a0_0x49ab=function(){return _0x38ce4c;};return a0_0x49ab();}const express=require('express'),{Queue}=require(a0_0x260f63(0x134)),Redis=require('ioredis'),{logger}=require('../../utils/logger');let readConnection=null,readQueues=null,cachedJobConfigs=null;const QUEUE_NAMES={'high-priority':a0_0x260f63(0x11d),'default':'default','low-priority':a0_0x260f63(0x133)};function getReadQueues(){const _0x387e11=a0_0x260f63,_0x5f3982={'BnrwF':_0x387e11(0xda),'RIlMl':function(_0x45e427,_0x9acd7f,_0x2a3199){return _0x45e427(_0x9acd7f,_0x2a3199);},'Ownbo':'error'};if(readQueues)return readQueues;const _0x145f2f=process['env'][_0x387e11(0xdc)]||_0x387e11(0x131);readConnection=new Redis({'host':process[_0x387e11(0x113)][_0x387e11(0x13e)]||_0x5f3982['BnrwF'],'port':_0x5f3982['RIlMl'](parseInt,process['env'][_0x387e11(0xf5)],0xa)||0x18ec,'password':process['env'][_0x387e11(0x128)]||undefined,'db':_0x5f3982['RIlMl'](parseInt,process['env'][_0x387e11(0x126)],0xa)||0x0,'maxRetriesPerRequest':null}),readConnection['on'](_0x5f3982[_0x387e11(0x104)],_0xbba1c8=>{const _0x279c79=_0x387e11;logger['error']({'event':_0x279c79(0x143),'error':_0xbba1c8['message']},_0x279c79(0xf9)+_0xbba1c8['message']);}),readQueues={};for(const [_0xf4e498,_0x926333]of Object['entries'](QUEUE_NAMES)){readQueues[_0xf4e498]=new Queue(_0x926333,{'connection':readConnection,'prefix':_0x145f2f});}return readQueues;}function createJobRoutes(_0x79830d){const _0x3150b9=a0_0x260f63,_0x545f96={'fbcJq':function(_0x248b9d,_0xab4b1e){return _0x248b9d(_0xab4b1e);},'FzDpl':'utf8','gPOiQ':'default','jgUZb':function(_0x4f7b66){return _0x4f7b66();},'MsyCm':'Error\x20getting\x20job\x20status','BDrqT':'jobs','YRgek':function(_0x1122a3,_0x6aceb4){return _0x1122a3===_0x6aceb4;},'PRDfI':function(_0x1e49d5){return _0x1e49d5();},'cspOX':_0x3150b9(0x114),'osRaU':_0x3150b9(0xf8),'TeBNw':function(_0x41e223){return _0x41e223();},'NVlDK':_0x3150b9(0xe2),'haQap':'api-cancel','mrJOR':'waiting','aKCCv':function(_0xbd34c4,_0x7bac82){return _0xbd34c4===_0x7bac82;},'ObYah':function(_0x88f772,_0x3060ae,_0x1c4cd7){return _0x88f772(_0x3060ae,_0x1c4cd7);},'dkJsT':function(_0x3bf528,_0x823e2a){return _0x3bf528-_0x823e2a;},'MtAQN':function(_0x44155f,_0x142e89){return _0x44155f+_0x142e89;},'cgBda':'failed','lKUCw':'active','zPFzO':'completed','mEiYL':function(_0x20aadd){return _0x20aadd();},'qpfFG':'healthy','DrQfG':_0x3150b9(0x130),'YKWmS':'unhealthy','VfeUY':'/status/:jobId','MSOXi':'/trigger/:jobName','WdwtP':_0x3150b9(0x116),'xzsUL':_0x3150b9(0xee)},_0x26991a=express['Router']();return _0x79830d&&Object['keys'](_0x79830d)[_0x3150b9(0xeb)]>0x0&&(cachedJobConfigs=_0x79830d),_0x26991a[_0x3150b9(0x10f)](_0x3150b9(0xfa),(_0xc124e9,_0x3eb9b7)=>{const _0x1d6264=_0x3150b9;try{if(cachedJobConfigs){const _0x2d4c13=Object[_0x1d6264(0x132)](cachedJobConfigs)[_0x1d6264(0x118)](_0x2632ac=>({'name':_0x2632ac['name'],'description':_0x2632ac['description']||'','type':_0x2632ac['type'],'schedule':_0x2632ac['schedule'],'handler':_0x2632ac[_0x1d6264(0xde)],'enabled':_0x2632ac['enabled']!==![],'queue':_0x2632ac['queue']||'default','timeout':_0x2632ac[_0x1d6264(0xdf)]||0x7530,'retry':_0x2632ac[_0x1d6264(0x102)]||{'maxAttempts':0x3,'backoff':'exponential','initialDelay':0x1388},'metadata':_0x2632ac[_0x1d6264(0xe7)]||{}}));return _0x3eb9b7['json']({'success':!![],'data':_0x2d4c13,'total':_0x2d4c13['length']});}const _0x2a5b8e=_0x545f96[_0x1d6264(0xf4)](require,'fs'),_0x482435=require('path'),_0x29d7e9=_0x482435['join'](process['cwd'](),'payload','jobs');if(!_0x2a5b8e[_0x1d6264(0x12d)](_0x29d7e9))return _0x3eb9b7['json']({'success':!![],'data':[],'total':0x0});const _0x9f4103=_0x2a5b8e[_0x1d6264(0x148)](_0x29d7e9)['filter'](_0x377895=>_0x377895[_0x1d6264(0x105)](_0x1d6264(0xf2))),_0x6dc259=[];for(const _0x100e51 of _0x9f4103){try{const _0x31a6ea=_0x2a5b8e['readFileSync'](_0x482435[_0x1d6264(0x11c)](_0x29d7e9,_0x100e51),_0x545f96[_0x1d6264(0x13a)]),_0x272699=JSON[_0x1d6264(0xfe)](_0x31a6ea);_0x6dc259[_0x1d6264(0x13c)]({'name':_0x272699[_0x1d6264(0x109)],'description':_0x272699[_0x1d6264(0x106)]||'','type':_0x272699['type'],'schedule':_0x272699['schedule'],'handler':_0x272699[_0x1d6264(0xde)],'enabled':_0x272699[_0x1d6264(0xf3)]!==![],'queue':_0x272699['queue']||_0x545f96[_0x1d6264(0x121)],'timeout':_0x272699['timeout']||0x7530,'retry':_0x272699['retry']||{},'metadata':_0x272699['metadata']||{}});}catch(_0x23fa10){}}_0x3eb9b7[_0x1d6264(0xfd)]({'success':!![],'data':_0x6dc259,'total':_0x6dc259['length']});}catch(_0x1d3771){logger['error']({'event':'job_list_error','error':_0x1d3771['message']},_0x1d6264(0xe0)),_0x3eb9b7[_0x1d6264(0xe4)](0x1f4)['json']({'success':![],'error':_0x1d3771[_0x1d6264(0x11e)]});}}),_0x26991a['get'](_0x545f96['VfeUY'],async(_0x4127b8,_0xcb24dc)=>{const _0x3d7b5b=_0x3150b9;try{const {jobId:_0x1ebb2f}=_0x4127b8[_0x3d7b5b(0x137)],_0x4cac9a=_0x545f96['jgUZb'](getReadQueues);for(const _0x5bcbae of Object['values'](_0x4cac9a)){const _0x43b4f8=await _0x5bcbae[_0x3d7b5b(0x141)](_0x1ebb2f);if(_0x43b4f8){const _0x350d90=await _0x43b4f8[_0x3d7b5b(0x123)]();return _0xcb24dc['json']({'success':!![],'data':{'jobId':_0x43b4f8['id'],'name':_0x43b4f8['name'],'state':_0x350d90,'progress':_0x43b4f8[_0x3d7b5b(0x12f)],'attemptsMade':_0x43b4f8['attemptsMade'],'failedReason':_0x43b4f8['failedReason'],'returnvalue':_0x43b4f8['returnvalue'],'data':_0x43b4f8[_0x3d7b5b(0x146)],'timestamps':{'created':_0x43b4f8['timestamp'],'started':_0x43b4f8[_0x3d7b5b(0xe9)],'completed':_0x43b4f8[_0x3d7b5b(0x107)]}}});}}_0xcb24dc[_0x3d7b5b(0xe4)](0x194)[_0x3d7b5b(0xfd)]({'success':![],'error':_0x3d7b5b(0x110)+_0x1ebb2f+'\x20tidak\x20ditemukan'});}catch(_0x25e8be){logger[_0x3d7b5b(0xff)]({'event':_0x3d7b5b(0x12e),'error':_0x25e8be['message']},_0x545f96[_0x3d7b5b(0x142)]),_0xcb24dc['status'](0x1f4)[_0x3d7b5b(0xfd)]({'success':![],'error':_0x25e8be[_0x3d7b5b(0x11e)]});}}),_0x26991a[_0x3150b9(0x125)](_0x545f96[_0x3150b9(0x103)],async(_0xf4ebaa,_0x4cc59f)=>{const _0x4b1e6b=_0x3150b9;try{const {jobName:_0x233bc1}=_0xf4ebaa[_0x4b1e6b(0x137)],_0x3cdb9c=_0xf4ebaa['body']||{};let _0x49e250=cachedJobConfigs?.[_0x233bc1];if(!_0x49e250){const _0x5d3c34=require('fs'),_0x6fcd10=require('path'),_0x9308a=_0x6fcd10[_0x4b1e6b(0x11c)](process['cwd'](),_0x4b1e6b(0x115),_0x545f96[_0x4b1e6b(0x12c)]),_0x2f4562=_0x5d3c34['existsSync'](_0x9308a)?_0x5d3c34[_0x4b1e6b(0x148)](_0x9308a)[_0x4b1e6b(0x140)](_0x5ce8c1=>_0x5ce8c1['endsWith'](_0x4b1e6b(0xf2))):[];for(const _0x342fe3 of _0x2f4562){try{const _0xd703be=_0x5d3c34['readFileSync'](_0x6fcd10[_0x4b1e6b(0x11c)](_0x9308a,_0x342fe3),_0x4b1e6b(0xe6)),_0x3d928a=JSON['parse'](_0xd703be);if(_0x545f96['YRgek'](_0x3d928a[_0x4b1e6b(0x109)],_0x233bc1)){_0x49e250=_0x3d928a;break;}}catch(_0xed66e7){}}}if(!_0x49e250)return _0x4cc59f[_0x4b1e6b(0xe4)](0x194)[_0x4b1e6b(0xfd)]({'success':![],'error':'Job\x20\x22'+_0x233bc1+_0x4b1e6b(0x13d)});const _0x1c05ac=_0x545f96['PRDfI'](getReadQueues),_0x25c889=_0x1c05ac[_0x49e250['queue']||_0x4b1e6b(0x138)],_0x4ea11f=await _0x25c889['add'](_0x233bc1,{..._0x3cdb9c,'handler':_0x49e250[_0x4b1e6b(0xde)],'triggeredBy':_0x4b1e6b(0x13b)},{'attempts':_0x49e250['retry']?.[_0x4b1e6b(0xe5)]||0x3,'backoff':{'type':_0x49e250['retry']?.['backoff']||_0x545f96[_0x4b1e6b(0x145)],'delay':_0x49e250[_0x4b1e6b(0x102)]?.['initialDelay']||0x1388},'timeout':_0x49e250[_0x4b1e6b(0xdf)]||0x7530});logger['info']({'event':_0x4b1e6b(0x11a),'jobId':_0x4ea11f['id'],'name':_0x233bc1},_0x4b1e6b(0x10b)+_0x233bc1+_0x4b1e6b(0x12b)+_0x4ea11f['id']+')'),_0x4cc59f[_0x4b1e6b(0xfd)]({'success':!![],'jobId':_0x4ea11f['id'],'message':_0x4b1e6b(0x110)+_0x233bc1+'\x20berhasil\x20di-trigger'});}catch(_0x281a23){logger['error']({'event':_0x545f96[_0x4b1e6b(0x129)],'error':_0x281a23[_0x4b1e6b(0x11e)]},'Error\x20triggering\x20job'),_0x4cc59f[_0x4b1e6b(0xe4)](0x1f4)[_0x4b1e6b(0xfd)]({'success':![],'error':_0x281a23[_0x4b1e6b(0x11e)]});}}),_0x26991a['post']('/cancel/:jobId',async(_0x6ab01e,_0x36759c)=>{const _0xf6f027=_0x3150b9;try{const {jobId:_0x57d01d}=_0x6ab01e[_0xf6f027(0x137)],_0x4d5051=_0x545f96['TeBNw'](getReadQueues);for(const _0x1180d1 of Object[_0xf6f027(0x132)](_0x4d5051)){const _0x375db2=await _0x1180d1['getJob'](_0x57d01d);if(_0x375db2){const _0x1303fa=await _0x375db2['getState']();if(_0x1303fa===_0xf6f027(0x144))return await _0x375db2[_0xf6f027(0x147)](new Error(_0x545f96['NVlDK']),_0x545f96['haQap'],!![]),_0x36759c[_0xf6f027(0xfd)]({'success':!![],'message':'Job\x20'+_0x57d01d+'\x20cancelled\x20(was\x20active)'});if(_0x1303fa===_0x545f96[_0xf6f027(0xe3)]||_0x545f96['aKCCv'](_0x1303fa,_0xf6f027(0x127)))return await _0x375db2['remove'](),_0x36759c[_0xf6f027(0xfd)]({'success':!![],'message':'Job\x20'+_0x57d01d+_0xf6f027(0xfc)+_0x1303fa+')'});return _0x36759c['json']({'success':![],'message':_0xf6f027(0x110)+_0x57d01d+'\x20tidak\x20bisa\x20di-cancel\x20(state:\x20'+_0x1303fa+')'});}}_0x36759c['status'](0x194)[_0xf6f027(0xfd)]({'success':![],'error':_0xf6f027(0x110)+_0x57d01d+_0xf6f027(0x111)});}catch(_0x490593){logger[_0xf6f027(0xff)]({'event':'job_cancel_error','error':_0x490593['message']},'Error\x20cancelling\x20job'),_0x36759c[_0xf6f027(0xe4)](0x1f4)[_0xf6f027(0xfd)]({'success':![],'error':_0x490593['message']});}}),_0x26991a[_0x3150b9(0x10f)](_0x3150b9(0x122),async(_0xc7e768,_0x2e9dae)=>{const _0x6a9d56=_0x3150b9;try{const _0x5e6f3b=_0x545f96[_0x6a9d56(0xe8)](parseInt,_0xc7e768[_0x6a9d56(0x13f)]['page'],0xa)||0x1,_0x51b1ef=Math[_0x6a9d56(0xef)](parseInt(_0xc7e768[_0x6a9d56(0x13f)][_0x6a9d56(0x136)],0xa)||0x14,0x64),_0x157901=_0x545f96[_0x6a9d56(0xec)](_0x5e6f3b,0x1)*_0x51b1ef,_0x380339=_0x545f96['MtAQN'](_0x157901,_0x51b1ef)-0x1,_0x522d31=getReadQueues(),_0x926043=[];for(const [_0x511e75,_0xdddd37]of Object['entries'](_0x522d31)){const _0x579a1a=await _0xdddd37['getJobs'](['completed'],_0x157901,_0x380339),_0x11bfe0=await _0xdddd37[_0x6a9d56(0x101)]([_0x545f96['cgBda']],_0x157901,_0x380339);for(const _0x56cb6d of[..._0x579a1a,..._0x11bfe0]){const _0x3d514b=await _0x56cb6d['getState']();_0x926043[_0x6a9d56(0x13c)]({'jobId':_0x56cb6d['id'],'name':_0x56cb6d['name'],'state':_0x3d514b,'queue':_0x511e75,'attemptsMade':_0x56cb6d['attemptsMade'],'failedReason':_0x56cb6d[_0x6a9d56(0xf7)],'returnvalue':_0x56cb6d['returnvalue'],'timestamps':{'created':_0x56cb6d['timestamp'],'started':_0x56cb6d['processedOn'],'completed':_0x56cb6d[_0x6a9d56(0x107)]}});}}_0x926043[_0x6a9d56(0x139)]((_0x2a328d,_0x4116fd)=>(_0x4116fd[_0x6a9d56(0xed)][_0x6a9d56(0x11f)]||0x0)-(_0x2a328d['timestamps'][_0x6a9d56(0x11f)]||0x0)),_0x2e9dae[_0x6a9d56(0xfd)]({'success':!![],'data':_0x926043['slice'](0x0,_0x51b1ef),'total':_0x926043[_0x6a9d56(0xeb)],'page':_0x5e6f3b,'limit':_0x51b1ef});}catch(_0x44f95c){logger['error']({'event':_0x6a9d56(0x117),'error':_0x44f95c[_0x6a9d56(0x11e)]},'Error\x20getting\x20job\x20history'),_0x2e9dae[_0x6a9d56(0xe4)](0x1f4)[_0x6a9d56(0xfd)]({'success':![],'error':_0x44f95c['message']});}}),_0x26991a[_0x3150b9(0x10f)](_0x545f96[_0x3150b9(0xe1)],async(_0x297ed4,_0x44717a)=>{const _0x2a5e55=_0x3150b9;try{const _0x1827ea=getReadQueues(),_0x69a8d8={};for(const [_0x4b624c,_0x5cdacb]of Object['entries'](_0x1827ea)){try{const _0x148e2e=await _0x5cdacb['getJobCounts'](_0x545f96['lKUCw'],_0x545f96[_0x2a5e55(0x124)],'delayed',_0x545f96['cgBda'],'paused',_0x2a5e55(0x10a));_0x69a8d8[_0x4b624c]=_0x148e2e;}catch(_0x237a1b){_0x69a8d8[_0x4b624c]={'error':_0x237a1b[_0x2a5e55(0x11e)]};}}_0x44717a['json']({'success':!![],'data':_0x69a8d8});}catch(_0x41685c){logger[_0x2a5e55(0xff)]({'event':'job_queues_error','error':_0x41685c['message']},_0x2a5e55(0x10d)),_0x44717a[_0x2a5e55(0xe4)](0x1f4)[_0x2a5e55(0xfd)]({'success':![],'error':_0x41685c['message']});}}),_0x26991a['get'](_0x545f96['xzsUL'],async(_0x4ba408,_0x30eb5b)=>{const _0x565a86=_0x3150b9;try{const _0x1ca9ca=_0x545f96[_0x565a86(0x120)](getReadQueues),_0x297e20={};let _0x24a1f6=![];for(const [_0x172823,_0x22897c]of Object['entries'](_0x1ca9ca)){try{const _0x195a91=await _0x22897c[_0x565a86(0xf1)](_0x545f96['lKUCw'],_0x565a86(0x10a),_0x545f96[_0x565a86(0xdd)]);_0x297e20[_0x172823]=_0x195a91,_0x24a1f6=!![];}catch(_0x2bc0d1){_0x297e20[_0x172823]={'error':_0x2bc0d1[_0x565a86(0x11e)]};}}let _0x534ca0=0x0;cachedJobConfigs&&(_0x534ca0=Object['keys'](cachedJobConfigs)['length']),_0x30eb5b[_0x565a86(0xfd)]({'success':!![],'data':{'status':_0x24a1f6?_0x545f96['qpfFG']:_0x545f96[_0x565a86(0xdb)],'redis':_0x24a1f6?'connected':_0x565a86(0x108),'registeredJobs':_0x534ca0,'queues':_0x297e20}});}catch(_0x49e232){_0x30eb5b['status'](0x1f7)[_0x565a86(0xfd)]({'success':![],'data':{'status':_0x545f96['YKWmS'],'error':_0x49e232['message']}});}}),_0x26991a;}function a0_0x270c(_0x549b02,_0x22e907){_0x549b02=_0x549b02-0xda;const _0x49abe0=a0_0x49ab();let _0x270c3d=_0x49abe0[_0x549b02];if(a0_0x270c['ZDZyqa']===undefined){var _0x4bf222=function(_0x2bc4cd){const _0x515a9d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2d6924='',_0x39ef38='';for(let _0x272e82=0x0,_0x22bffc,_0x3b7616,_0x23f361=0x0;_0x3b7616=_0x2bc4cd['charAt'](_0x23f361++);~_0x3b7616&&(_0x22bffc=_0x272e82%0x4?_0x22bffc*0x40+_0x3b7616:_0x3b7616,_0x272e82++%0x4)?_0x2d6924+=String['fromCharCode'](0xff&_0x22bffc>>(-0x2*_0x272e82&0x6)):0x0){_0x3b7616=_0x515a9d['indexOf'](_0x3b7616);}for(let _0x5adf83=0x0,_0x21b113=_0x2d6924['length'];_0x5adf83<_0x21b113;_0x5adf83++){_0x39ef38+='%'+('00'+_0x2d6924['charCodeAt'](_0x5adf83)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x39ef38);};a0_0x270c['OEZZxm']=_0x4bf222,a0_0x270c['ZUXNja']={},a0_0x270c['ZDZyqa']=!![];}const _0x4d0220=_0x49abe0[0x0],_0x69008d=_0x549b02+_0x4d0220,_0xed674a=a0_0x270c['ZUXNja'][_0x69008d];return!_0xed674a?(_0x270c3d=a0_0x270c['OEZZxm'](_0x270c3d),a0_0x270c['ZUXNja'][_0x69008d]=_0x270c3d):_0x270c3d=_0xed674a,_0x270c3d;}module[a0_0x260f63(0xfb)]=createJobRoutes;
@@ -1 +1 @@
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();
1
+ function a0_0x39fc(_0x476aad,_0x59912c){_0x476aad=_0x476aad-0x17d;const _0x48eeb9=a0_0x48ee();let _0x39fcab=_0x48eeb9[_0x476aad];if(a0_0x39fc['VjcfML']===undefined){var _0x8957ea=function(_0x52e619){const _0x2e2f9d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x9340d4='',_0x2a89eb='';for(let _0x2a9063=0x0,_0x45e95b,_0x1ae4d0,_0x35e4f4=0x0;_0x1ae4d0=_0x52e619['charAt'](_0x35e4f4++);~_0x1ae4d0&&(_0x45e95b=_0x2a9063%0x4?_0x45e95b*0x40+_0x1ae4d0:_0x1ae4d0,_0x2a9063++%0x4)?_0x9340d4+=String['fromCharCode'](0xff&_0x45e95b>>(-0x2*_0x2a9063&0x6)):0x0){_0x1ae4d0=_0x2e2f9d['indexOf'](_0x1ae4d0);}for(let _0x1f542b=0x0,_0x74bb01=_0x9340d4['length'];_0x1f542b<_0x74bb01;_0x1f542b++){_0x2a89eb+='%'+('00'+_0x9340d4['charCodeAt'](_0x1f542b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2a89eb);};a0_0x39fc['zReCGk']=_0x8957ea,a0_0x39fc['qgObzo']={},a0_0x39fc['VjcfML']=!![];}const _0x315865=_0x48eeb9[0x0],_0x302186=_0x476aad+_0x315865,_0x542c7b=a0_0x39fc['qgObzo'][_0x302186];return!_0x542c7b?(_0x39fcab=a0_0x39fc['zReCGk'](_0x39fcab),a0_0x39fc['qgObzo'][_0x302186]=_0x39fcab):_0x39fcab=_0x542c7b,_0x39fcab;}const a0_0x13a87d=a0_0x39fc;(function(_0x1fcbe2,_0x422151){const _0x2399b3=a0_0x39fc,_0x216a5f=_0x1fcbe2();while(!![]){try{const _0x18c926=-parseInt(_0x2399b3(0x183))/0x1+-parseInt(_0x2399b3(0x18e))/0x2*(-parseInt(_0x2399b3(0x1c7))/0x3)+parseInt(_0x2399b3(0x19d))/0x4+parseInt(_0x2399b3(0x1ca))/0x5*(parseInt(_0x2399b3(0x189))/0x6)+-parseInt(_0x2399b3(0x1cb))/0x7*(parseInt(_0x2399b3(0x1c2))/0x8)+parseInt(_0x2399b3(0x19b))/0x9+parseInt(_0x2399b3(0x1b0))/0xa*(-parseInt(_0x2399b3(0x1aa))/0xb);if(_0x18c926===_0x422151)break;else _0x216a5f['push'](_0x216a5f['shift']());}catch(_0x4ee340){_0x216a5f['push'](_0x216a5f['shift']());}}}(a0_0x48ee,0x675fc));const fs=require('fs'),path=require(a0_0x13a87d(0x17f)),VALID_QUEUE_NAMES=['high-priority',a0_0x13a87d(0x1c3),'low-priority'],VALID_BACKOFF_TYPES=[a0_0x13a87d(0x1ac),a0_0x13a87d(0x188)],SLUG_REGEX=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;class JobValidator{['validateConfig'](_0x17c475,_0x4dcb13){const _0x214382=a0_0x13a87d,_0x232ba5={'Fysid':'object','xEajv':function(_0x19088c,_0x4c8b58){return _0x19088c!==_0x4c8b58;},'imZxj':'Field\x20\x22name\x22\x20wajib\x20diisi\x20(string)','GnvYP':_0x214382(0x19c),'fRdKo':'Field\x20\x22type\x22\x20wajib\x20diisi\x20(string)','iUbKR':'cron','NglUO':function(_0x2bf037,_0x181490){return _0x2bf037!==_0x181490;},'bHyJo':_0x214382(0x1b6),'tQKSC':function(_0x4e5c03,_0x8e8efb){return _0x4e5c03!==_0x8e8efb;},'UauGr':function(_0x17ad48,_0x542121){return _0x17ad48!==_0x542121;},'IOchl':_0x214382(0x1b3),'uSHgQ':'Field\x20\x22enabled\x22\x20harus\x20boolean','ZboKE':function(_0x4fe06e,_0x35d0f2){return _0x4fe06e!==_0x35d0f2;},'PsHAu':'number','pSGVC':function(_0x5b6db8,_0x1e8ea7){return _0x5b6db8<=_0x1e8ea7;},'hHPhn':_0x214382(0x1ab),'WBfaf':function(_0xa9db5f,_0x49a0c8){return _0xa9db5f<_0x49a0c8;},'ujPjr':function(_0x3d4946,_0xf23fac){return _0x3d4946>_0xf23fac;},'daLRA':function(_0xcd70c0,_0x4dfe70){return _0xcd70c0===_0x4dfe70;},'ZeQiD':function(_0x5893a4,_0x1362f9){return _0x5893a4===_0x1362f9;},'Cqyda':_0x214382(0x1a5)},_0x4842db=[];if(!_0x17c475||typeof _0x17c475!==_0x232ba5[_0x214382(0x196)])return{'valid':![],'errors':['Config\x20harus\x20berupa\x20object']};if(!_0x17c475['name']||_0x232ba5['xEajv'](typeof _0x17c475[_0x214382(0x1b2)],_0x214382(0x19c)))_0x4842db[_0x214382(0x18d)](_0x232ba5[_0x214382(0x1cf)]);else!SLUG_REGEX['test'](_0x17c475['name'])&&_0x4842db['push'](_0x214382(0x1a8)+_0x17c475[_0x214382(0x1b2)]+'\x22');if(!_0x17c475[_0x214382(0x182)]||typeof _0x17c475['type']!==_0x232ba5['GnvYP'])_0x4842db['push'](_0x232ba5['fRdKo']);else _0x17c475['type']!==_0x232ba5[_0x214382(0x1c5)]&&_0x4842db[_0x214382(0x18d)](_0x214382(0x1bc)+_0x17c475[_0x214382(0x182)]+'\x22');if(!_0x17c475[_0x214382(0x1d3)]||_0x232ba5['xEajv'](typeof _0x17c475[_0x214382(0x1d3)],'string'))_0x4842db['push']('Field\x20\x22schedule\x22\x20wajib\x20diisi\x20(cron\x20expression\x20string)');else{const _0x535a8d=this[_0x214382(0x1ba)](_0x17c475['schedule']);!_0x535a8d['valid']&&_0x4842db['push'](..._0x535a8d[_0x214382(0x1a7)]);}if(!_0x17c475['handler']||_0x232ba5[_0x214382(0x1be)](typeof _0x17c475['handler'],_0x214382(0x19c)))_0x4842db['push'](_0x232ba5['bHyJo']);else{if(_0x4dcb13){const _0x336819=this['validateHandlerExists'](_0x17c475['handler'],_0x4dcb13);!_0x336819['valid']&&_0x4842db[_0x214382(0x18d)](..._0x336819[_0x214382(0x1a7)]);}}_0x232ba5[_0x214382(0x17e)](_0x17c475[_0x214382(0x1c9)],undefined)&&_0x232ba5['UauGr'](typeof _0x17c475[_0x214382(0x1c9)],_0x232ba5[_0x214382(0x1cd)])&&_0x4842db[_0x214382(0x18d)](_0x232ba5[_0x214382(0x1bb)]);_0x17c475['timeout']!==undefined&&((_0x232ba5[_0x214382(0x1a1)](typeof _0x17c475[_0x214382(0x1b4)],_0x232ba5[_0x214382(0x1bf)])||_0x232ba5[_0x214382(0x1a3)](_0x17c475['timeout'],0x0))&&_0x4842db['push'](_0x232ba5[_0x214382(0x1a6)]));if(_0x17c475[_0x214382(0x18b)]!==undefined){const _0x43d7a9=this[_0x214382(0x194)](_0x17c475['queue']);!_0x43d7a9[_0x214382(0x195)]&&_0x4842db['push'](..._0x43d7a9['errors']);}_0x17c475[_0x214382(0x1ad)]!==undefined&&((_0x232ba5['UauGr'](typeof _0x17c475['concurrency'],_0x232ba5['PsHAu'])||_0x232ba5[_0x214382(0x180)](_0x17c475[_0x214382(0x1ad)],0x1)||_0x232ba5[_0x214382(0x1d4)](_0x17c475['concurrency'],0x32))&&_0x4842db['push']('Field\x20\x22concurrency\x22\x20harus\x20number\x20antara\x201-50'));if(_0x17c475[_0x214382(0x1c1)]!==undefined){if(typeof _0x17c475['retry']!==_0x214382(0x1b5)||_0x232ba5[_0x214382(0x1b9)](_0x17c475[_0x214382(0x1c1)],null))_0x4842db['push']('Field\x20\x22retry\x22\x20harus\x20berupa\x20object');else{const _0x5e17a3=this[_0x214382(0x1c6)](_0x17c475[_0x214382(0x1c1)]);!_0x5e17a3['valid']&&_0x4842db['push'](..._0x5e17a3[_0x214382(0x1a7)]);}}return _0x232ba5[_0x214382(0x184)](_0x17c475['metadata'],undefined)&&((typeof _0x17c475[_0x214382(0x19f)]!==_0x232ba5['Fysid']||_0x232ba5['ZeQiD'](_0x17c475[_0x214382(0x19f)],null)||Array[_0x214382(0x198)](_0x17c475['metadata']))&&_0x4842db['push'](_0x232ba5[_0x214382(0x193)])),{'valid':_0x4842db['length']===0x0,'errors':_0x4842db};}['validateCronExpression'](_0x4cbff0){const _0x4a6c55=a0_0x13a87d,_0x785b07={'fczpq':function(_0x40388e,_0x4de17e){return _0x40388e!==_0x4de17e;},'wJFPM':'hour','JoIUj':'day-of-month','dqqNT':_0x4a6c55(0x1d1),'UwMWt':'day-of-week','IeYtv':function(_0x4928b4,_0x8e17d3){return _0x4928b4<_0x8e17d3;},'pKpMq':function(_0x1df9ad,_0x3e9d75){return _0x1df9ad===_0x3e9d75;},'gmjHM':function(_0x1f1915,_0x33ca47){return _0x1f1915!==_0x33ca47;},'KjMle':function(_0x55e8e1,_0x2671e6,_0x33ae63){return _0x55e8e1(_0x2671e6,_0x33ae63);}},_0x3e85e2=[],_0x1b755e=_0x4cbff0[_0x4a6c55(0x186)]()[_0x4a6c55(0x187)](/\s+/);if(_0x785b07[_0x4a6c55(0x1c0)](_0x1b755e[_0x4a6c55(0x1c8)],0x5))return _0x3e85e2['push'](_0x4a6c55(0x1b1)+_0x1b755e[_0x4a6c55(0x1c8)]+'\x20field:\x20\x22'+_0x4cbff0+'\x22'),{'valid':![],'errors':_0x3e85e2};const _0x349e13=['minute',_0x785b07['wJFPM'],_0x785b07[_0x4a6c55(0x1d0)],_0x785b07['dqqNT'],_0x785b07['UwMWt']],_0x1c4303=[{'min':0x0,'max':0x3b},{'min':0x0,'max':0x17},{'min':0x1,'max':0x1f},{'min':0x1,'max':0xc},{'min':0x0,'max':0x7}],_0xe804d=/^(\*|[0-9]+(-[0-9]+)?)([,/](\*|[0-9]+(-[0-9]+)?))*$/;for(let _0x3bef37=0x0;_0x785b07['IeYtv'](_0x3bef37,0x5);_0x3bef37++){const _0x232640=_0x1b755e[_0x3bef37];if(_0x785b07[_0x4a6c55(0x191)](_0x232640,'*'))continue;if(_0x232640['includes']('/')){const [_0x504626,_0x44752f]=_0x232640['split']('/');_0x785b07[_0x4a6c55(0x197)](_0x504626,'*')&&!this['_isValidRange'](_0x504626,_0x1c4303[_0x3bef37])&&_0x3e85e2['push'](_0x4a6c55(0x19a)+_0x349e13[_0x3bef37]+_0x4a6c55(0x190)+_0x504626+_0x4a6c55(0x1d6));const _0x2a4406=_0x785b07[_0x4a6c55(0x1b7)](parseInt,_0x44752f,0xa);(isNaN(_0x2a4406)||_0x785b07['IeYtv'](_0x2a4406,0x1))&&_0x3e85e2['push']('Cron\x20field\x20\x22'+_0x349e13[_0x3bef37]+'\x22:\x20step\x20\x22/'+_0x44752f+_0x4a6c55(0x1bd));continue;}const _0x9176a3=_0x232640[_0x4a6c55(0x187)](',');for(const _0x33c24b of _0x9176a3){!this['_isValidRange'](_0x33c24b,_0x1c4303[_0x3bef37])&&_0x3e85e2[_0x4a6c55(0x18d)](_0x4a6c55(0x19a)+_0x349e13[_0x3bef37]+'\x22:\x20nilai\x20\x22'+_0x33c24b+_0x4a6c55(0x1d8)+_0x1c4303[_0x3bef37][_0x4a6c55(0x1d5)]+'-'+_0x1c4303[_0x3bef37][_0x4a6c55(0x18c)]);}}return{'valid':_0x785b07[_0x4a6c55(0x191)](_0x3e85e2[_0x4a6c55(0x1c8)],0x0),'errors':_0x3e85e2};}['_isValidRange'](_0x3abcd5,_0xbf2c63){const _0x1fc08b=a0_0x13a87d,_0x3909ea={'TnwSA':function(_0x1e5748,_0x5553c6){return _0x1e5748>=_0x5553c6;},'goPGn':function(_0x114668,_0x4c8c3f){return _0x114668<=_0x4c8c3f;},'LzVFX':function(_0x3545a3,_0x269561){return _0x3545a3>=_0x269561;}};if(_0x3abcd5[_0x1fc08b(0x1a0)]('-')){const [_0x2fbeba,_0x1c4740]=_0x3abcd5['split']('-')['map'](Number);return!isNaN(_0x2fbeba)&&!isNaN(_0x1c4740)&&_0x2fbeba>=_0xbf2c63['min']&&_0x2fbeba<=_0xbf2c63[_0x1fc08b(0x18c)]&&_0x3909ea[_0x1fc08b(0x1cc)](_0x1c4740,_0xbf2c63[_0x1fc08b(0x1d5)])&&_0x3909ea[_0x1fc08b(0x192)](_0x1c4740,_0xbf2c63[_0x1fc08b(0x18c)])&&_0x2fbeba<=_0x1c4740;}const _0xdf8956=parseInt(_0x3abcd5,0xa);return!isNaN(_0xdf8956)&&_0x3909ea[_0x1fc08b(0x1c4)](_0xdf8956,_0xbf2c63[_0x1fc08b(0x1d5)])&&_0xdf8956<=_0xbf2c63[_0x1fc08b(0x18c)];}[a0_0x13a87d(0x194)](_0x2df2d5){const _0x5a1092=a0_0x13a87d;if(!VALID_QUEUE_NAMES['includes'](_0x2df2d5))return{'valid':![],'errors':[_0x5a1092(0x1af)+_0x2df2d5+'\x22\x20tidak\x20valid.\x20Pilihan:\x20'+VALID_QUEUE_NAMES[_0x5a1092(0x199)](',\x20')]};return{'valid':!![],'errors':[]};}['validateRetryConfig'](_0x1c71d2){const _0x27c7b5=a0_0x13a87d,_0xcad908={'jIUHQ':function(_0x40357d,_0x3a676e){return _0x40357d!==_0x3a676e;},'ckNSH':_0x27c7b5(0x1ce),'guGSD':function(_0x4b15fb,_0x59ceb9){return _0x4b15fb<_0x59ceb9;},'WTUJq':function(_0xf6ccca,_0x2575a7){return _0xf6ccca>_0x2575a7;},'Bjahl':'Field\x20\x22retry.maxAttempts\x22\x20harus\x20number\x20antara\x201-10','mTxFK':function(_0xf0b21,_0x567668){return _0xf0b21<=_0x567668;},'yGdCE':'Field\x20\x22retry.initialDelay\x22\x20harus\x20number\x20>\x200\x20(dalam\x20ms)','rHHyD':function(_0x49ccc9,_0x1c9eb5){return _0x49ccc9===_0x1c9eb5;}},_0x3e46b7=[];return _0xcad908[_0x27c7b5(0x185)](_0x1c71d2['maxAttempts'],undefined)&&((_0xcad908[_0x27c7b5(0x185)](typeof _0x1c71d2[_0x27c7b5(0x1d7)],_0xcad908['ckNSH'])||_0xcad908['guGSD'](_0x1c71d2[_0x27c7b5(0x1d7)],0x1)||_0xcad908['WTUJq'](_0x1c71d2[_0x27c7b5(0x1d7)],0xa))&&_0x3e46b7[_0x27c7b5(0x18d)](_0xcad908[_0x27c7b5(0x1d2)])),_0x1c71d2['backoff']!==undefined&&(!VALID_BACKOFF_TYPES['includes'](_0x1c71d2[_0x27c7b5(0x1a9)])&&_0x3e46b7['push']('Field\x20\x22retry.backoff\x22\x20harus\x20\x22'+VALID_BACKOFF_TYPES['join'](_0x27c7b5(0x18a))+'\x22')),_0x1c71d2['initialDelay']!==undefined&&((typeof _0x1c71d2[_0x27c7b5(0x19e)]!==_0xcad908['ckNSH']||_0xcad908[_0x27c7b5(0x1a2)](_0x1c71d2[_0x27c7b5(0x19e)],0x0))&&_0x3e46b7[_0x27c7b5(0x18d)](_0xcad908[_0x27c7b5(0x1b8)])),{'valid':_0xcad908['rHHyD'](_0x3e46b7['length'],0x0),'errors':_0x3e46b7};}['validateHandlerExists'](_0x171136,_0x31a9ad){const _0x2c5899=a0_0x13a87d,_0x2da66c={'zFHlz':'src'},_0x1bcf86=path[_0x2c5899(0x199)](_0x31a9ad,_0x2da66c[_0x2c5899(0x181)],_0x2c5899(0x17d),_0x171136+_0x2c5899(0x1ae));if(!fs[_0x2c5899(0x1a4)](_0x1bcf86))return{'valid':![],'errors':[_0x2c5899(0x18f)+_0x171136+'.js\x20(absolute:\x20'+_0x1bcf86+')']};return{'valid':!![],'errors':[]};}}module['exports']=new JobValidator();function a0_0x48ee(){const _0x5645d1=['EevHANy','AKLvsfe','DhjPBq','C3bSAxq','zxHWB25LBNrPywW','nK5Pu0HHDG','iIbHDgf1ici','CxvLDwu','Bwf4','ChvZAa','mtqZntrSru9hr0y','sgfUzgXLCIbMAwXLihrPzgfRigrPDgvTDwTHBJOGC3jJl2PVyNmV','iJOGyMfZzsaI','CeTWtxe','z29qr24','q3f5zge','DMfSAwrHDgvrDwv1zu5HBwu','DMfSAwq','rNLZAwq','z21Qse0','AxnbCNjHEq','AM9PBG','q3jVBIbMAwvSzcaI','nJKWmti5mgntA2zdvW','C3rYAw5N','oti4mdq0CKzRA1fd','Aw5PDgLHBerLBgf5','Bwv0ywrHDge','Aw5JBhvKzxm','wMjVs0u','Bvr4rKS','CfnhvKm','zxHPC3rZu3LUyW','rMLLBgqGiM1LDgfKyxrHiIbOyxj1CYbIzxj1CgeGB2jQzwn0','AeHqAg4','zxjYB3jZ','rMLLBgqGiM5HBwuIigHHCNvZihnSDwCGzM9YBwf0icHSB3DLCMnHC2uSigrHC2GPoIaI','yMfJA29MzG','mtC0ou9AyLLxrG','rMLLBgqGiNrPBwvVDxqIigHHCNvZig51BwjLCIa+idaGkgrHBgfTig1Zkq','zML4zwq','y29Uy3vYCMvUy3K','lMPZ','uxvLDwuGiG','nZK3odbgr2vHEva','q3jVBIbLEhbYzxnZAw9UigHHCNvZiduGzMLLBgqGkg1PBNv0zsbOB3vYigrHEsbTB250Acb3zwvRzgf5ksWGzgL0zw11A2fUia','BMfTzq','yM9VBgvHBG','DgLTzw91Da','B2jQzwn0','rMLLBgqGiMHHBMrSzxiIihDHAMLIigrPAxnPicHWyxrOihjLBgf0AwyGzgfYAsbZCMmVAM9ICY8P','s2PnBgu','EuDKq0u','zgfmuKe','DMfSAwrHDgvdCM9UrxHWCMvZC2LVBG','Dvniz1e','rMLLBgqGiNr5CguIigHHCNvZicjJCM9UiIWGzgL0zw11A2fUoIaI','iIbOyxj1CYbHBMDRysa+ida','tMDSvu8','uhniqxu','zMn6Che','CMv0CNK','mtu0odG1nLPLtNf3uG','zgvMyxvSDa','thPwrLG','AvvIs1i','DMfSAwrHDgvszxrYEunVBMzPzW','mJy3zMPqCgPj','BgvUz3rO','zw5HyMXLza','mZaYmZmWnxLSBK9zza','n0Tvv1fKAq','vg53u0e','su9JAgW','BNvTyMvY','Aw1AEgO','sM9jvwO','Bw9UDgG','qMPHAgW','C2nOzwr1Bgu','DwPqANi','BwLU','iIb0AwrHAYb2ywXPza','Bwf4qxr0zw1WDhm','iIbKAsbSDwfYihjHBMDLia','AM9ICW','Dfflu0m','Cgf0Aa','v0jMywy','EKziBhO','DhLWzq','mZu2nZa2CxvWCNz5'];a0_0x48ee=function(){return _0x5645d1;};return a0_0x48ee();}