@restforgejs/platform 5.1.16 → 5.1.21

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 (179) 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/catalog/dbschema.js +2 -1
  5. package/generators/cli/endpoint/list.js +264 -0
  6. package/generators/cli/fast-track.js +395 -37
  7. package/generators/cli/processor/create.js +7 -7
  8. package/generators/cli/processor/list.js +229 -0
  9. package/generators/lib/dbschema-kit/apply-executor.js +20 -0
  10. package/generators/lib/generators/dashboard-generator.js +5 -5
  11. package/generators/lib/generators/processor-validation-generator.js +4 -1
  12. package/generators/lib/migrate/field-type-resolver.js +23 -0
  13. package/generators/lib/payload/payload-runner.js +80 -3
  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/package.json +1 -1
  25. package/scripts/check-install.js +8 -8
  26. package/scripts/verify-integrity.js +1 -1
  27. package/server.js +1 -1
  28. package/src/components/handlers/adjust_handler.js +1 -1
  29. package/src/components/handlers/audit_handler.js +1 -1
  30. package/src/components/handlers/delete_handler.js +1 -1
  31. package/src/components/handlers/export_handler.js +1 -1
  32. package/src/components/handlers/import_handler.js +1 -1
  33. package/src/components/handlers/insert_handler.js +1 -1
  34. package/src/components/handlers/update_handler.js +1 -1
  35. package/src/components/handlers/upload_handler.js +1 -1
  36. package/src/components/handlers/workflow_handler.js +1 -1
  37. package/src/components/integrations/webhook.js +1 -1
  38. package/src/consumers/baseConsumer.js +1 -1
  39. package/src/consumers/declarativeMapper.js +1 -1
  40. package/src/consumers/handlers/apiHandler.js +1 -1
  41. package/src/consumers/handlers/consoleHandler.js +1 -1
  42. package/src/consumers/handlers/databaseHandler.js +1 -1
  43. package/src/consumers/handlers/index.js +1 -1
  44. package/src/consumers/handlers/kafkaHandler.js +1 -1
  45. package/src/consumers/index.js +1 -1
  46. package/src/consumers/messageTransformer.js +1 -1
  47. package/src/consumers/validator.js +1 -1
  48. package/src/core/db/dialect/base-dialect.js +1 -1
  49. package/src/core/db/dialect/index.js +1 -1
  50. package/src/core/db/dialect/mysql-dialect.js +1 -1
  51. package/src/core/db/dialect/oracle-dialect.js +1 -1
  52. package/src/core/db/dialect/postgres-dialect.js +1 -1
  53. package/src/core/db/dialect/sqlite-dialect.js +1 -1
  54. package/src/core/db/flatten-helper.js +1 -1
  55. package/src/core/db/query-builder-error.js +1 -1
  56. package/src/core/db/query-builder.js +1 -1
  57. package/src/core/db/relation-helper.js +1 -1
  58. package/src/core/handlers/delete_handler.js +1 -1
  59. package/src/core/handlers/insert_handler.js +1 -1
  60. package/src/core/handlers/update_handler.js +1 -1
  61. package/src/core/models/base-model.js +1 -1
  62. package/src/core/utils/cache-manager.js +1 -1
  63. package/src/core/utils/component-engine.js +1 -1
  64. package/src/core/utils/context-builder.js +1 -1
  65. package/src/core/utils/datetime-formatter.js +1 -1
  66. package/src/core/utils/datetime-parser.js +1 -1
  67. package/src/core/utils/db.js +1 -1
  68. package/src/core/utils/logger.js +1 -1
  69. package/src/core/utils/payload-loader.js +1 -1
  70. package/src/core/utils/security-checks.js +1 -1
  71. package/src/middleware/body-options.js +1 -1
  72. package/src/middleware/cors.js +1 -1
  73. package/src/middleware/idempotency.js +1 -1
  74. package/src/middleware/rate-limiter.js +1 -1
  75. package/src/middleware/request-logger.js +1 -1
  76. package/src/middleware/security-headers.js +1 -1
  77. package/src/models/base-model-mysql.js +1 -1
  78. package/src/models/base-model-oracle.js +1 -1
  79. package/src/models/base-model-sqlite.js +1 -1
  80. package/src/models/base-model.js +1 -1
  81. package/src/pro/caching/redis-client.js +1 -1
  82. package/src/pro/caching/redis-helper.js +1 -1
  83. package/src/pro/consumers/baseConsumer.js +1 -1
  84. package/src/pro/consumers/declarativeMapper.js +1 -1
  85. package/src/pro/consumers/handlers/apiHandler.js +1 -1
  86. package/src/pro/consumers/handlers/consoleHandler.js +1 -1
  87. package/src/pro/consumers/handlers/databaseHandler.js +1 -1
  88. package/src/pro/consumers/handlers/index.js +1 -1
  89. package/src/pro/consumers/handlers/kafkaHandler.js +1 -1
  90. package/src/pro/consumers/index.js +1 -1
  91. package/src/pro/consumers/messageTransformer.js +1 -1
  92. package/src/pro/consumers/validator.js +1 -1
  93. package/src/pro/database/base-model-mysql.js +1 -1
  94. package/src/pro/database/base-model-oracle.js +1 -1
  95. package/src/pro/database/base-model-sqlite.js +1 -1
  96. package/src/pro/database/db-mysql.js +1 -1
  97. package/src/pro/database/db-oracle.js +1 -1
  98. package/src/pro/database/db-sqlite.js +1 -1
  99. package/src/pro/excel/excel-generator.js +1 -1
  100. package/src/pro/excel/excel-parser.js +1 -1
  101. package/src/pro/excel/export-service.js +1 -1
  102. package/src/pro/excel/export_handler.js +1 -1
  103. package/src/pro/excel/import-service.js +1 -1
  104. package/src/pro/excel/import-validator.js +1 -1
  105. package/src/pro/excel/import_handler.js +1 -1
  106. package/src/pro/excel/upsert-builder.js +1 -1
  107. package/src/pro/idgen/idgen-routes.js +1 -1
  108. package/src/pro/integrations/lookup-resolver.js +1 -1
  109. package/src/pro/integrations/upload-handler-v2.js +1 -1
  110. package/src/pro/integrations/upload-handler.js +1 -1
  111. package/src/pro/integrations/webhook.js +1 -1
  112. package/src/pro/locking/lock-routes.js +1 -1
  113. package/src/pro/locking/resource-lock-manager.js +1 -1
  114. package/src/pro/messaging/kafkaConsumerService.js +1 -1
  115. package/src/pro/messaging/kafkaService.js +1 -1
  116. package/src/pro/messaging/messagehubService.js +1 -1
  117. package/src/pro/messaging/rabbitmqService.js +1 -1
  118. package/src/pro/scheduler/job-manager.js +1 -1
  119. package/src/pro/scheduler/job-routes.js +1 -1
  120. package/src/pro/scheduler/job-validator.js +1 -1
  121. package/src/pro/storage/base-storage-provider.js +1 -1
  122. package/src/pro/storage/file-metadata-helper.js +1 -1
  123. package/src/pro/storage/index.js +1 -1
  124. package/src/pro/storage/local-storage-provider.js +1 -1
  125. package/src/pro/storage/s3-storage-provider.js +1 -1
  126. package/src/pro/storage/upload-cleanup-job.js +1 -1
  127. package/src/pro/storage/upload-cleanup-scheduler.js +1 -1
  128. package/src/pro/storage/upload-pending-tracker.js +1 -1
  129. package/src/pro/websocket/broadcast-helper.js +1 -1
  130. package/src/pro/websocket/index.js +1 -1
  131. package/src/pro/websocket/livesync-server.js +1 -1
  132. package/src/pro/websocket/ws-broadcaster.js +1 -1
  133. package/src/services/export-service.js +1 -1
  134. package/src/services/import-service.js +1 -1
  135. package/src/services/kafkaConsumerService.js +1 -1
  136. package/src/services/kafkaService.js +1 -1
  137. package/src/services/messagehubService.js +1 -1
  138. package/src/services/rabbitmqService.js +1 -1
  139. package/src/utils/cache-invalidation-registry.js +1 -1
  140. package/src/utils/cache-manager.js +1 -1
  141. package/src/utils/component-engine.js +1 -1
  142. package/src/utils/config-extractor.js +1 -1
  143. package/src/utils/consumerLogger.js +1 -1
  144. package/src/utils/context-builder.js +1 -1
  145. package/src/utils/dashboard-helpers.js +1 -1
  146. package/src/utils/dateHelper.js +1 -1
  147. package/src/utils/datetime-formatter.js +1 -1
  148. package/src/utils/datetime-parser.js +1 -1
  149. package/src/utils/db-bootstrap.js +1 -1
  150. package/src/utils/db-mysql.js +1 -1
  151. package/src/utils/db-oracle.js +1 -1
  152. package/src/utils/db-sqlite.js +1 -1
  153. package/src/utils/db.js +1 -1
  154. package/src/utils/demo-generator.js +1 -1
  155. package/src/utils/excel-generator.js +1 -1
  156. package/src/utils/excel-parser.js +1 -1
  157. package/src/utils/file-watcher.js +1 -1
  158. package/src/utils/id-generator.js +1 -1
  159. package/src/utils/idempotency-manager.js +1 -1
  160. package/src/utils/import-validator.js +1 -1
  161. package/src/utils/license-client.js +1 -1
  162. package/src/utils/lock-manager.js +1 -1
  163. package/src/utils/logger.js +1 -1
  164. package/src/utils/lookup-resolver.js +1 -1
  165. package/src/utils/payload-loader.js +1 -1
  166. package/src/utils/processor-response.js +1 -1
  167. package/src/utils/rabbitmq.js +1 -1
  168. package/src/utils/redis-client.js +1 -1
  169. package/src/utils/redis-helper.js +1 -1
  170. package/src/utils/request-scope.js +1 -1
  171. package/src/utils/security-checks.js +1 -1
  172. package/src/utils/service-resolver.js +1 -1
  173. package/src/utils/shutdown-coordinator.js +1 -1
  174. package/src/utils/soft-delete-dashboard-guard.js +1 -1
  175. package/src/utils/sql-table-extractor.js +1 -1
  176. package/src/utils/trusted-keys.js +1 -1
  177. package/src/utils/upload-handler.js +1 -1
  178. package/src/utils/upsert-builder.js +1 -1
  179. package/src/utils/workflow-hook-executor.js +1 -1
@@ -1 +1 @@
1
- const a0_0x342f17=a0_0x4e7e;function a0_0x2dd4(){const _0x53865e=['AxndB25Uzwn0zwq','C3rYAw5NAwz5','CMfUzg9T','CxvLDwu','xsbbDhrLBxb0Aw5NihrVihjLy29UBMvJDcb0BYbsywjIAxrnus4UlG','ic0+ia','xsbfuLjpuJOGuxvLDwuG','xsblB25LA3nPifjHyMjPDe1rihrLCNb1DhvZ','yxnZzxj0uxvLDwu','y3jLyxrLzc9YzwfKEq','ndrqt0feAvy','CM91DgLUz0TLEq','BwvZC2fNzuHHBMrSzxjZ','yMLUzff1zxvL','u0LsDvC','ota4nZiXoxHlq3zyAG','BwvZC2fNzq','xsbszxrYEsbLEgnOyw5Nzsa','x3f1zxvL','ogPZzgniEG','lI4VDxrPBhmVzgf0zuHLBhbLCG','ntG2nJaWzKTLv3jW','y2HHBM5LBa','EvrJExi','lxjLDhj5lwv4y2HHBMDL','CMvNAxn0zxjnzxnZywDLsgfUzgXLCG','Exbzsey','Dg9ju09tDhjPBMC','C2v0DxbdB2XSzwn0B3jjBMzYyxn0CNvJDhvYzq','zNjVBq','ksbJCMvHDgvK','ChjVCgvYDgLLCW','zxHJAgfUz2u','nNbcv2L2Da','y29UzMLN','zxjYB3i','Dg9tDhjPBMC','C2vUzfrVuxvLDwu','rgf0ysbZzw50ihrVihf1zxvLihn1y2nLC3nMDwXSEq','ywnR','xsbbBhrLCM5HDgL2zsbXDwv1zsa','xsbcAw5KAw5Nia','y29UDgvUDa','ls0T','xsbgywLSzwqGDg8GCMvJB25Uzwn0ihrVifjHyMjPDe1roIa','ChjLzMv0y2G','Ewf6tK0','uKTAywe','xsbszxrYEsbIAw5KAw5NigzVCIa','BMfJAW','yxbWBgLJyxrPB24VANnVBG','ignYzwf0zwqGD2L0AcbetfG','ndGZodC4ngvpA2rQra','zNHLzvG','mtaXnZC2m0jItu50ra','xsbtDgfYDcbJB25ZDw1PBMCGBwvZC2fNzxmGzNjVBsbXDwv1zsaI','txvWv3u','xsboBYbOyw5KBgvYCYbYzwDPC3rLCMvKihrVihbYB2nLC3mGBwvZC2fNzxm','zgLYzwn0','CMvJB25Uzwn0','ota1odq0rK5jz0f4','Aw5JBhvKzxm','rxP4v0u','rMfPBgvKihrVihnLBMqGBwvZC2fNzsb0BYbsywjIAxrnuq','zgvMyxvSDa','z2v0vgLTzq','nJe0nJi1oxPJCNP5qG','C3rHCNrdB25ZDw1L','yxv0B19YzxrYEq','y29UBMvJDgLVBG','zM91BMq','Bg9N','mKXgANzvsW','z2n4qM8','tw1Zq2m','C3bSAxq','xsbfCNjVCIbWCM9JzxnZAw5Nig1LC3nHz2u6ia','igLZigfSCMvHzhKGAw4GDxnLihDPDgGGysbKAwzMzxjLBNqGCM91DgLUzYbRzxKU','xsbfCNjVCIbZzw5KAw5NihrVifjHyMjPDe1roIa','ignYzwf0zwq','twvZC2fNzsbJB250zw50oIa','ChjVy2vZC01LC3nHz2u','mZi5ndG1nuTtAu5cBG','DgLTzxn0yw1W','xsbnzxnZywDLihnLBNqGDg8GuMfIyML0tveGC3vJy2vZC2z1BgX5oG','mtbwAejosvK','A2j6Avm','Aw5PDgLHBgL6zq','C3vIC3rYAw5N','zxHWB3j0CW','DezzqKi','Cg9yywq','xsbrDwv1zsa','xsbnzxnZywDLigHHBMrSzxiGCMvNAxn0zxjLza'];a0_0x2dd4=function(){return _0x53865e;};return a0_0x2dd4();}(function(_0x5eae24,_0x1c6935){const _0x453ad9=a0_0x4e7e,_0x3b3add=_0x5eae24();while(!![]){try{const _0x2a6270=parseInt(_0x453ad9(0xce))/0x1*(parseInt(_0x453ad9(0xe0))/0x2)+-parseInt(_0x453ad9(0xd4))/0x3*(-parseInt(_0x453ad9(0xab))/0x4)+-parseInt(_0x453ad9(0x8c))/0x5+-parseInt(_0x453ad9(0xb9))/0x6*(parseInt(_0x453ad9(0xda))/0x7)+-parseInt(_0x453ad9(0xad))/0x8+-parseInt(_0x453ad9(0xa7))/0x9*(parseInt(_0x453ad9(0x8f))/0xa)+parseInt(_0x453ad9(0xa2))/0xb*(parseInt(_0x453ad9(0xcc))/0xc);if(_0x2a6270===_0x1c6935)break;else _0x3b3add['push'](_0x3b3add['shift']());}catch(_0x28f19c){_0x3b3add['push'](_0x3b3add['shift']());}}}(a0_0x2dd4,0x960a3));const {createConnection,createChannel,setupInfrastructure,closeConnection,getConfig}=require('../utils/rabbitmq'),{formatDate}=require(a0_0x342f17(0xac));class RabbitMQService{constructor(){const _0xf06348=a0_0x342f17,_0x21d0ab={'NkDme':function(_0x823b32){return _0x823b32();}},_0x2448ad='1|3|4|2|0'[_0xf06348(0xe3)]('|');let _0x42b2e0=0x0;while(!![]){switch(_0x2448ad[_0x42b2e0++]){case'0':this[_0xf06348(0xa4)]=[];continue;case'1':this[_0xf06348(0xdd)]=null;continue;case'2':this[_0xf06348(0x98)]=![];continue;case'3':this[_0xf06348(0xae)]=null;continue;case'4':this[_0xf06348(0xba)]=_0x21d0ab['NkDme'](getConfig);continue;}break;}}async[a0_0x342f17(0x91)](){const _0x34dcae=a0_0x342f17,_0x535d8d={'qWTFe':function(_0x1ab758,_0x497e58){return _0x1ab758(_0x497e58);},'RKZaa':function(_0x49b41f,_0x49b7dc,_0x40c769){return _0x49b41f(_0x49b7dc,_0x40c769);},'poXad':function(_0x289d03){return _0x289d03();}};try{const _0x2f51bb='7|4|3|0|2|1|5|6'[_0x34dcae(0xe3)]('|');let _0x1cfd7e=0x0;while(!![]){switch(_0x2f51bb[_0x1cfd7e++]){case'0':console[_0x34dcae(0xdf)]('['+formatDate(new Date())+']\x20Prefetch\x20diatur\x20ke\x201');continue;case'1':this[_0x34dcae(0x98)]=!![];continue;case'2':await setupInfrastructure(this['channel']);continue;case'3':await this['channel'][_0x34dcae(0xc5)](0x1);continue;case'4':this['channel']=await _0x535d8d['qWTFe'](createChannel,this['connection']);continue;case'5':this[_0x34dcae(0xdd)]['on']('close',()=>{const _0x3c0d40=_0x34dcae;console[_0x3c0d40(0xbb)]('['+_0x535d8d['qWTFe'](formatDate,new Date())+_0x3c0d40(0x9f)),this['isConnected']=![],_0x535d8d[_0x3c0d40(0xc7)](setTimeout,()=>this[_0x3c0d40(0xd3)](),0x1388);});continue;case'6':return!![];case'7':this['connection']=await _0x535d8d[_0x34dcae(0x95)](createConnection);continue;}break;}}catch(_0x2b5927){return console['error']('['+formatDate(new Date())+']\x20Failed\x20to\x20initialize\x20RabbitMQ:\x20'+_0x2b5927[_0x34dcae(0xa8)]),this[_0x34dcae(0x98)]=![],![];}}async[a0_0x342f17(0xd3)](){const _0x12b3f6=a0_0x342f17,_0x418a0c={'cAOZG':function(_0x4b38bf,_0x2f3a41){return _0x4b38bf(_0x2f3a41);},'tFYBB':function(_0x491229,_0x653218){return _0x491229(_0x653218);},'fxeeX':function(_0x53c1ec,_0x5df8a9){return _0x53c1ec(_0x5df8a9);}};console[_0x12b3f6(0xdf)]('['+_0x418a0c['cAOZG'](formatDate,new Date())+_0x12b3f6(0x9c));try{await this['initialize'](),this['isConnected']&&(console[_0x12b3f6(0xdf)]('['+_0x418a0c[_0x12b3f6(0x94)](formatDate,new Date())+']\x20Successfully\x20reconnected\x20to\x20RabbitMQ'),await this[_0x12b3f6(0xdb)]());}catch(_0x17e4c8){console['error']('['+_0x418a0c[_0x12b3f6(0xcd)](formatDate,new Date())+_0x12b3f6(0xc4)+_0x17e4c8['message']),setTimeout(()=>this['reconnect'](),0x1388);}}async[a0_0x342f17(0xb4)](_0x4e5e84){const _0x3f6179=a0_0x342f17,_0x248c06={'yazNM':function(_0x840f99){return _0x840f99();},'qyvEq':function(_0x54d799,_0x40acb1){return _0x54d799(_0x40acb1);},'ZWSbp':_0x3f6179(0xd8),'lSWyP':_0x3f6179(0xd2),'nzjqA':function(_0x570ac7,_0x3ca96e){return _0x570ac7(_0x3ca96e);},'SIRuW':function(_0x3d9dbe,_0x29615f){return _0x3d9dbe(_0x29615f);},'dsNEH':function(_0x4c4a46,_0x442442){return _0x4c4a46(_0x442442);},'MmsCc':function(_0x30386d,_0x2dcdf9){return _0x30386d===_0x2dcdf9;},'hupaa':_0x3f6179(0xa1),'xskPO':_0x3f6179(0xde),'ypYHF':function(_0x112381,_0x466820){return _0x112381(_0x466820);},'Rfhpj':function(_0x5535be,_0x3bf9dc){return _0x5535be(_0x3bf9dc);}};try{!this[_0x3f6179(0x98)]&&(this['connection']=await _0x248c06[_0x3f6179(0xc6)](createConnection),this[_0x3f6179(0xae)]=await _0x248c06['qyvEq'](createChannel,this[_0x3f6179(0xdd)]),this[_0x3f6179(0x98)]=!![]);const _0xf11806=process['env']['RESTFORGE_PROJECT_NAME']||_0x248c06['ZWSbp'],_0x19663c=_0xf11806+_0x3f6179(0xb0);await this[_0x3f6179(0xae)]['assertExchange'](_0x19663c,_0x248c06['lSWyP'],{'durable':!![],'autoDelete':![]}),console['log']('['+_0x248c06['nzjqA'](formatDate,new Date())+_0x3f6179(0xa9)+_0x19663c+'\x20created/ready'),await this[_0x3f6179(0xae)]['assertExchange'](_0x4e5e84['exchange'],_0x3f6179(0xd2),{'durable':!![],'autoDelete':![]}),console[_0x3f6179(0xdf)]('['+formatDate(new Date())+']\x20Exchange\x20'+_0x4e5e84['exchange']+'\x20created/ready');const _0x239d28=_0x4e5e84['routingKey']+'_retry',_0x16c613={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':_0x4e5e84['exchange'],'x-dead-letter-routing-key':_0x4e5e84[_0x3f6179(0xa3)]}};await this['channel']['assertQueue'](_0x239d28,_0x16c613),console[_0x3f6179(0xdf)]('['+_0x248c06[_0x3f6179(0xa6)](formatDate,new Date())+']\x20Retry\x20queue\x20'+_0x239d28+'\x20created/ready'),await this[_0x3f6179(0xae)]['bindQueue'](_0x239d28,_0x19663c,_0x4e5e84[_0x3f6179(0xa3)]),console[_0x3f6179(0xdf)]('['+_0x248c06['dsNEH'](formatDate,new Date())+_0x3f6179(0xc8)+_0x4e5e84[_0x3f6179(0xa3)]+_0x3f6179(0xe7));const _0x106e43={'durable':!![],'arguments':{'x-dead-letter-exchange':_0x19663c,'x-dead-letter-routing-key':_0x4e5e84['routingKey']}};try{const _0x2f13bd=await this[_0x3f6179(0xae)][_0x3f6179(0xa0)](_0x4e5e84['queue'],_0x106e43);console['log']('['+formatDate(new Date())+_0x3f6179(0x96)+_0x4e5e84['queue']+'\x20'+(_0x248c06[_0x3f6179(0xe2)](_0x2f13bd['queue'],_0x4e5e84['queue'])?_0x248c06['hupaa']:_0x248c06['xskPO'])+'\x20with\x20DLX'),await this['channel']['bindQueue'](_0x4e5e84['queue'],_0x4e5e84[_0x3f6179(0xb8)],_0x4e5e84[_0x3f6179(0xa3)]),console['log']('['+formatDate(new Date())+_0x3f6179(0xc1)+_0x4e5e84['exchange']+'\x20->\x20'+_0x4e5e84['queue']+'\x20('+_0x4e5e84[_0x3f6179(0xa3)]+_0x3f6179(0xb6));}catch(_0x886b78){if(_0x886b78['message'][_0x3f6179(0xd5)]('inequivalent\x20arg')&&_0x886b78['message'][_0x3f6179(0xd5)]('x-dead-letter-routing-key')){console[_0x3f6179(0xbb)]('\x0a['+formatDate(new Date())+_0x3f6179(0x9e)+_0x4e5e84['queue']+_0x3f6179(0xe5)),console[_0x3f6179(0xbb)]('Trying\x20alternative\x20queue\x20name...');const _0x1a6a6d=_0x4e5e84['routingKey']+_0x3f6179(0xaa),_0x5ddffd=await this[_0x3f6179(0xae)][_0x3f6179(0xa0)](_0x1a6a6d,_0x106e43);console[_0x3f6179(0xdf)]('['+_0x248c06[_0x3f6179(0xb2)](formatDate,new Date())+_0x3f6179(0xc0)+_0x1a6a6d+_0x3f6179(0xcb)),await this[_0x3f6179(0xae)][_0x3f6179(0xa5)](_0x1a6a6d,_0x4e5e84['exchange'],_0x4e5e84['routingKey']),console[_0x3f6179(0xdf)]('['+formatDate(new Date())+']\x20Binding\x20'+_0x4e5e84['exchange']+_0x3f6179(0x9d)+_0x1a6a6d+'\x20('+_0x4e5e84[_0x3f6179(0xa3)]+_0x3f6179(0xb6)),_0x4e5e84['queue']=_0x1a6a6d;}else{console['error']('['+formatDate(new Date())+']\x20Error\x20creating\x20queue\x20'+_0x4e5e84['queue']+':',_0x886b78['message']);throw _0x886b78;}}return!![];}catch(_0x52026b){return console[_0x3f6179(0xbb)]('['+_0x248c06['Rfhpj'](formatDate,new Date())+']\x20Error\x20saat\x20setup\x20infrastruktur:\x20'+_0x52026b[_0x3f6179(0xa8)]),![];}}async[a0_0x342f17(0xbd)](_0x38ccb9,_0x81537b){const _0x269bea=a0_0x342f17,_0x56e8b8={'yTcyr':function(_0x4efdea,_0x3fe6b4){return _0x4efdea!==_0x3fe6b4;},'kbziS':_0x269bea(0xbe),'EzxWE':_0x269bea(0xd7)};if(!this[_0x269bea(0x98)])try{await this['initialize']();}catch(_0x52a172){return{'success':![],'message':'Cannot\x20connect\x20to\x20RabbitMQ:\x20'+_0x52a172[_0x269bea(0xa8)],'data':null};}try{const _0x37f52d=_0x56e8b8[_0x269bea(0xaf)](_0x81537b[_0x269bea(0xdc)],undefined)?_0x81537b[_0x269bea(0xdc)]:![],_0x1dc929=_0x81537b['max_retries']||0x3,_0x309f75={'rabbitmq':{'exchange':_0x81537b['exchange'],'queue':_0x81537b['queue'],'routing_key':_0x81537b[_0x269bea(0xa3)],'auto_retry':_0x37f52d,'max_retries':_0x1dc929},'message':_0x38ccb9};await this[_0x269bea(0xb4)](_0x81537b);const _0x3438a5=new Date(),_0x5d039c={'timestamp':_0x3438a5['toISOString'](),'content':JSON[_0x269bea(0x99)](_0x309f75)},_0x41a7e3=this[_0x269bea(0xae)]['publish'](_0x81537b['exchange'],_0x81537b['routingKey'],Buffer[_0x269bea(0xb5)](JSON[_0x269bea(0x99)](_0x5d039c)),{'persistent':!![],'contentType':_0x269bea(0xca),'timestamp':_0x3438a5['getTime'](),'messageId':_0x3438a5[_0x269bea(0xd9)]()+'-'+Math[_0x269bea(0x9a)]()[_0x269bea(0xbc)](0x24)[_0x269bea(0x92)](0x7),'headers':{'x-auto-retry':_0x37f52d,'x-max-retry':_0x1dc929,'x-retry-count':0x0,'x-retry-interval':0x2710}});if(_0x41a7e3){console['log']('['+formatDate(_0x3438a5)+_0x269bea(0x8e),{'exchange':_0x81537b[_0x269bea(0xb8)],'routing_key':_0x81537b['routingKey'],'queue':_0x81537b['queue'],'sendAt':_0x3438a5[_0x269bea(0xb3)]()});const _0x2fa056='queue-'+_0x3438a5[_0x269bea(0xd9)]()+'-'+Math[_0x269bea(0x9a)]()[_0x269bea(0xbc)](0x24)['substring'](0x7);return{'success':!![],'message':_0x56e8b8[_0x269bea(0x90)],'data':{'id':_0x2fa056,'queueInfo':{'exchange':_0x81537b[_0x269bea(0xb8)],'queue':_0x81537b[_0x269bea(0x9b)],'routingKey':_0x81537b[_0x269bea(0xa3)]}}};}else throw new Error(_0x56e8b8[_0x269bea(0xd6)]);}catch(_0x33021f){return console['error']('['+formatDate(new Date())+_0x269bea(0xe6)+_0x33021f[_0x269bea(0xa8)]),{'success':![],'message':'Error:\x20'+_0x33021f[_0x269bea(0xa8)],'data':null};}}[a0_0x342f17(0xb1)](_0xde6e35){const _0x7c6544=a0_0x342f17,_0x379b26={'rTbnY':'function'};typeof _0xde6e35===_0x379b26['rTbnY']?(this['messageHandlers']['push'](_0xde6e35),console[_0x7c6544(0xdf)]('['+formatDate(new Date())+_0x7c6544(0x97))):console['error']('['+formatDate(new Date())+']\x20Message\x20handler\x20must\x20be\x20a\x20function');}async[a0_0x342f17(0x8b)](_0x2ed849){const _0x3adf2a=a0_0x342f17,_0x283996={'AgOIq':function(_0x40ccbb,_0x4da694){return _0x40ccbb(_0x4da694);}};if(this[_0x3adf2a(0xa4)]['length']===0x0)return console['warn']('['+formatDate(new Date())+_0x3adf2a(0xd1)),!![];try{for(const _0x131e36 of this[_0x3adf2a(0xa4)]){await _0x131e36(_0x2ed849);}return!![];}catch(_0x3e5e94){return console[_0x3adf2a(0xbb)]('['+_0x283996['AgOIq'](formatDate,new Date())+_0x3adf2a(0xe4)+_0x3e5e94['message']),![];}}async[a0_0x342f17(0xdb)](){const _0x37930b=a0_0x342f17,_0x59be65={'XpSVS':function(_0x2b5b99,_0x591613){return _0x2b5b99!==_0x591613;},'gcxBo':function(_0x501dc2,_0x57bda0){return _0x501dc2(_0x57bda0);},'MupWu':function(_0x6ff9cd,_0x1ed151){return _0x6ff9cd(_0x1ed151);}};if(!this[_0x37930b(0x98)])return console[_0x37930b(0xbb)]('['+formatDate(new Date())+']\x20Cannot\x20start\x20consuming:\x20not\x20connected\x20to\x20RabbitMQ'),![];try{return console['log']('['+_0x59be65[_0x37930b(0xd0)](formatDate,new Date())+_0x37930b(0xcf)+this['config']['queue']+'\x22...'),this['channel']['consume'](this['config']['queue'],async _0x5544c7=>{const _0x3e9f7f=_0x37930b;if(_0x59be65['XpSVS'](_0x5544c7,null)){const _0x56eb94=new Date();let _0x803be2;try{_0x803be2=JSON['parse'](_0x5544c7[_0x3e9f7f(0xc2)][_0x3e9f7f(0xbc)]());}catch(_0x5ed85a){console['error']('['+_0x59be65[_0x3e9f7f(0xe1)](formatDate,_0x56eb94)+']\x20Failed\x20to\x20parse\x20message:\x20'+_0x5ed85a['message']),console[_0x3e9f7f(0xbb)](_0x3e9f7f(0xe8)+_0x5544c7[_0x3e9f7f(0xc2)]['toString']()),this[_0x3e9f7f(0xae)][_0x3e9f7f(0xbf)](_0x5544c7);return;}const _0x3618cb=_0x5544c7['properties'][_0x3e9f7f(0x8d)]?new Date(_0x5544c7[_0x3e9f7f(0xb7)]['timestamp']):new Date(),_0xbe8aba=await this[_0x3e9f7f(0x8b)](_0x803be2);_0xbe8aba?(console['log']('['+_0x59be65['MupWu'](formatDate,new Date())+']\x20Message\x20processed\x20successfully'),this[_0x3e9f7f(0xae)]['ack'](_0x5544c7)):(console[_0x3e9f7f(0xbb)]('['+formatDate(new Date())+']\x20Failed\x20to\x20process\x20message,\x20requeuing'),this['channel'][_0x3e9f7f(0xc9)](_0x5544c7,![],!![])),console['log'](_0x3e9f7f(0xc3));}},{'noAck':![]}),!![];}catch(_0x47993d){return console[_0x37930b(0xbb)]('['+formatDate(new Date())+']\x20Failed\x20to\x20start\x20consuming:\x20'+_0x47993d['message']),![];}}async['close'](){const _0x31a792=a0_0x342f17;this[_0x31a792(0xdd)]&&(await closeConnection(this['connection']),this['isConnected']=![]);}}let instance=null;function getInstance(){return!instance&&(instance=new RabbitMQService()),instance;}function a0_0x4e7e(_0x41f89c,_0x179fbf){_0x41f89c=_0x41f89c-0x8b;const _0x2dd4f2=a0_0x2dd4();let _0x4e7e96=_0x2dd4f2[_0x41f89c];if(a0_0x4e7e['UXuUeJ']===undefined){var _0x451bd0=function(_0x2d3735){const _0x13ad5d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x14fd27='',_0x2969cc='';for(let _0x180fdb=0x0,_0x374d82,_0x1dd999,_0x1554e1=0x0;_0x1dd999=_0x2d3735['charAt'](_0x1554e1++);~_0x1dd999&&(_0x374d82=_0x180fdb%0x4?_0x374d82*0x40+_0x1dd999:_0x1dd999,_0x180fdb++%0x4)?_0x14fd27+=String['fromCharCode'](0xff&_0x374d82>>(-0x2*_0x180fdb&0x6)):0x0){_0x1dd999=_0x13ad5d['indexOf'](_0x1dd999);}for(let _0x37ebaf=0x0,_0x32f246=_0x14fd27['length'];_0x37ebaf<_0x32f246;_0x37ebaf++){_0x2969cc+='%'+('00'+_0x14fd27['charCodeAt'](_0x37ebaf)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2969cc);};a0_0x4e7e['IIapYD']=_0x451bd0,a0_0x4e7e['IQnxfK']={},a0_0x4e7e['UXuUeJ']=!![];}const _0x3926ea=_0x2dd4f2[0x0],_0x4a3dc2=_0x41f89c+_0x3926ea,_0x11e074=a0_0x4e7e['IQnxfK'][_0x4a3dc2];return!_0x11e074?(_0x4e7e96=a0_0x4e7e['IIapYD'](_0x4e7e96),a0_0x4e7e['IQnxfK'][_0x4a3dc2]=_0x4e7e96):_0x4e7e96=_0x11e074,_0x4e7e96;}module[a0_0x342f17(0x93)]={'getInstance':getInstance};
1
+ const a0_0xd01213=a0_0x3bbf;(function(_0x3c2e60,_0x28402c){const _0x21ab9b=a0_0x3bbf,_0x46a8cc=_0x3c2e60();while(!![]){try{const _0x274953=-parseInt(_0x21ab9b(0xab))/0x1*(parseInt(_0x21ab9b(0xbe))/0x2)+-parseInt(_0x21ab9b(0xa8))/0x3*(-parseInt(_0x21ab9b(0xcf))/0x4)+parseInt(_0x21ab9b(0xcb))/0x5*(parseInt(_0x21ab9b(0xc7))/0x6)+parseInt(_0x21ab9b(0xc3))/0x7+parseInt(_0x21ab9b(0x82))/0x8+-parseInt(_0x21ab9b(0x7b))/0x9+parseInt(_0x21ab9b(0x94))/0xa;if(_0x274953===_0x28402c)break;else _0x46a8cc['push'](_0x46a8cc['shift']());}catch(_0x57ca20){_0x46a8cc['push'](_0x46a8cc['shift']());}}}(a0_0x2e9b,0x78a43));const {createConnection,createChannel,setupInfrastructure,closeConnection,getConfig}=require('../utils/rabbitmq'),{formatDate}=require(a0_0xd01213(0x97));class RabbitMQService{constructor(){const _0x2656a8=a0_0xd01213,_0x477562={'SCZFI':'0|1|2|4|3','AWDtg':function(_0x161e13){return _0x161e13();}},_0xc4e649=_0x477562['SCZFI'][_0x2656a8(0x96)]('|');let _0x5775cd=0x0;while(!![]){switch(_0xc4e649[_0x5775cd++]){case'0':this[_0x2656a8(0x8c)]=null;continue;case'1':this['channel']=null;continue;case'2':this[_0x2656a8(0x87)]=_0x477562['AWDtg'](getConfig);continue;case'3':this['messageHandlers']=[];continue;case'4':this[_0x2656a8(0x99)]=![];continue;}break;}}async['initialize'](){const _0x552e84=a0_0xd01213,_0x1adf5d={'HmDxb':function(_0x349623,_0x6bd3c8){return _0x349623(_0x6bd3c8);},'XyYDi':function(_0x12af78,_0x13d6f3,_0x42088a){return _0x12af78(_0x13d6f3,_0x42088a);},'ewIWZ':function(_0x413063,_0x2bb8ef){return _0x413063(_0x2bb8ef);},'MiNUN':function(_0x5a7d8e,_0x45ebed){return _0x5a7d8e(_0x45ebed);}};try{return this[_0x552e84(0x8c)]=await createConnection(),this[_0x552e84(0x8f)]=await _0x1adf5d['HmDxb'](createChannel,this['connection']),await this[_0x552e84(0x8f)][_0x552e84(0xc8)](0x1),console['log']('['+_0x1adf5d['ewIWZ'](formatDate,new Date())+']\x20Prefetch\x20diatur\x20ke\x201'),await _0x1adf5d['HmDxb'](setupInfrastructure,this[_0x552e84(0x8f)]),this['isConnected']=!![],this[_0x552e84(0x8c)]['on']('close',()=>{const _0x384fe7=_0x552e84;console['error']('['+_0x1adf5d['HmDxb'](formatDate,new Date())+_0x384fe7(0xb0)),this[_0x384fe7(0x99)]=![],_0x1adf5d[_0x384fe7(0x9c)](setTimeout,()=>this[_0x384fe7(0xd3)](),0x1388);}),!![];}catch(_0x2c724b){return console[_0x552e84(0xaf)]('['+_0x1adf5d[_0x552e84(0xbd)](formatDate,new Date())+']\x20Failed\x20to\x20initialize\x20RabbitMQ:\x20'+_0x2c724b[_0x552e84(0x7c)]),this['isConnected']=![],![];}}async['reconnect'](){const _0x5ad216=a0_0xd01213,_0x569bc1={'EseeD':function(_0x174a9e,_0x41f1a0){return _0x174a9e(_0x41f1a0);}};console[_0x5ad216(0xba)]('['+formatDate(new Date())+']\x20Attempting\x20to\x20reconnect\x20to\x20RabbitMQ...');try{await this[_0x5ad216(0x81)](),this['isConnected']&&(console[_0x5ad216(0xba)]('['+formatDate(new Date())+']\x20Successfully\x20reconnected\x20to\x20RabbitMQ'),await this[_0x5ad216(0x91)]());}catch(_0x48a8d3){console['error']('['+_0x569bc1['EseeD'](formatDate,new Date())+_0x5ad216(0xbf)+_0x48a8d3['message']),setTimeout(()=>this['reconnect'](),0x1388);}}async[a0_0xd01213(0xce)](_0xaf4f4f){const _0x4cde84=a0_0xd01213,_0x222bd3={'PvhiB':function(_0x54c5e9){return _0x54c5e9();},'gLMMP':_0x4cde84(0xc1),'MtOoW':function(_0x569ad7,_0x260f68){return _0x569ad7(_0x260f68);},'cgCPk':'inequivalent\x20arg','CyDUb':function(_0x4150a1,_0x1de0d3){return _0x4150a1(_0x1de0d3);},'oaKsB':function(_0x53a550,_0x2ac5da){return _0x53a550(_0x2ac5da);},'HqEgY':function(_0x38e65a,_0x2c51cc){return _0x38e65a(_0x2c51cc);}};try{!this['isConnected']&&(this['connection']=await _0x222bd3[_0x4cde84(0xd1)](createConnection),this['channel']=await createChannel(this['connection']),this['isConnected']=!![]);const _0x11ea55=process[_0x4cde84(0xbb)][_0x4cde84(0x7f)]||'default',_0x553d1b=_0x11ea55+'-retry-exchange';await this[_0x4cde84(0x8f)][_0x4cde84(0x9d)](_0x553d1b,_0x222bd3[_0x4cde84(0xc9)],{'durable':!![],'autoDelete':![]}),console[_0x4cde84(0xba)]('['+formatDate(new Date())+_0x4cde84(0xb8)+_0x553d1b+'\x20created/ready'),await this['channel']['assertExchange'](_0xaf4f4f[_0x4cde84(0xac)],_0x222bd3['gLMMP'],{'durable':!![],'autoDelete':![]}),console[_0x4cde84(0xba)]('['+formatDate(new Date())+_0x4cde84(0x74)+_0xaf4f4f['exchange']+_0x4cde84(0x98));const _0xaf46a8=_0xaf4f4f['routingKey']+'_retry',_0x269328={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':_0xaf4f4f[_0x4cde84(0xac)],'x-dead-letter-routing-key':_0xaf4f4f['routingKey']}};await this['channel'][_0x4cde84(0xb5)](_0xaf46a8,_0x269328),console[_0x4cde84(0xba)]('['+_0x222bd3['MtOoW'](formatDate,new Date())+_0x4cde84(0xbc)+_0xaf46a8+_0x4cde84(0x98)),await this['channel'][_0x4cde84(0x9a)](_0xaf46a8,_0x553d1b,_0xaf4f4f['routingKey']),console['log']('['+_0x222bd3[_0x4cde84(0xcc)](formatDate,new Date())+']\x20Retry\x20binding\x20for\x20'+_0xaf4f4f[_0x4cde84(0xb7)]+_0x4cde84(0xc2));const _0x2471f4={'durable':!![],'arguments':{'x-dead-letter-exchange':_0x553d1b,'x-dead-letter-routing-key':_0xaf4f4f['routingKey']}};try{const _0x56dcf2=await this['channel'][_0x4cde84(0xb5)](_0xaf4f4f[_0x4cde84(0x77)],_0x2471f4);console[_0x4cde84(0xba)]('['+_0x222bd3['MtOoW'](formatDate,new Date())+']\x20Queue\x20'+_0xaf4f4f[_0x4cde84(0x77)]+'\x20'+(_0x56dcf2[_0x4cde84(0x77)]===_0xaf4f4f['queue']?'created/ready':'found')+'\x20with\x20DLX'),await this['channel'][_0x4cde84(0x9a)](_0xaf4f4f[_0x4cde84(0x77)],_0xaf4f4f['exchange'],_0xaf4f4f[_0x4cde84(0xb7)]),console['log']('['+formatDate(new Date())+']\x20Binding\x20'+_0xaf4f4f['exchange']+_0x4cde84(0x9b)+_0xaf4f4f[_0x4cde84(0x77)]+'\x20('+_0xaf4f4f[_0x4cde84(0xb7)]+')\x20created');}catch(_0x1b0591){if(_0x1b0591['message']['includes'](_0x222bd3['cgCPk'])&&_0x1b0591[_0x4cde84(0x7c)][_0x4cde84(0x76)](_0x4cde84(0xb2))){console['error']('\x0a['+_0x222bd3[_0x4cde84(0xa5)](formatDate,new Date())+_0x4cde84(0x86)+_0xaf4f4f[_0x4cde84(0x77)]+_0x4cde84(0x90)),console['error'](_0x4cde84(0xd2));const _0x4908b3=_0xaf4f4f[_0x4cde84(0xb7)]+'_queue',_0x54585e=await this['channel'][_0x4cde84(0xb5)](_0x4908b3,_0x2471f4);console['log']('['+formatDate(new Date())+_0x4cde84(0xc6)+_0x4908b3+'\x20created\x20with\x20DLX'),await this['channel']['bindQueue'](_0x4908b3,_0xaf4f4f[_0x4cde84(0xac)],_0xaf4f4f['routingKey']),console[_0x4cde84(0xba)]('['+_0x222bd3['oaKsB'](formatDate,new Date())+']\x20Binding\x20'+_0xaf4f4f[_0x4cde84(0xac)]+_0x4cde84(0x9b)+_0x4908b3+'\x20('+_0xaf4f4f[_0x4cde84(0xb7)]+_0x4cde84(0x85)),_0xaf4f4f['queue']=_0x4908b3;}else{console[_0x4cde84(0xaf)]('['+_0x222bd3[_0x4cde84(0x7a)](formatDate,new Date())+']\x20Error\x20creating\x20queue\x20'+_0xaf4f4f[_0x4cde84(0x77)]+':',_0x1b0591['message']);throw _0x1b0591;}}return!![];}catch(_0x46aa2d){return console[_0x4cde84(0xaf)]('['+formatDate(new Date())+_0x4cde84(0xc0)+_0x46aa2d['message']),![];}}async['sendToQueue'](_0x40da2d,_0x31e50a){const _0x1001e3=a0_0xd01213,_0x24880d={'mTsnq':function(_0x36ad5a,_0x157d1f){return _0x36ad5a!==_0x157d1f;},'cKxGg':'application/json','tLuME':function(_0x3c1e42,_0x3c0541){return _0x3c1e42(_0x3c0541);},'cZQSg':'Data\x20sent\x20to\x20queue\x20successfully'};if(!this['isConnected'])try{await this[_0x1001e3(0x81)]();}catch(_0x39fe67){return{'success':![],'message':_0x1001e3(0xc5)+_0x39fe67[_0x1001e3(0x7c)],'data':null};}try{const _0x228263=_0x24880d[_0x1001e3(0x8a)](_0x31e50a['auto_retry'],undefined)?_0x31e50a[_0x1001e3(0xb6)]:![],_0x27f309=_0x31e50a[_0x1001e3(0x78)]||0x3,_0x421749={'rabbitmq':{'exchange':_0x31e50a['exchange'],'queue':_0x31e50a[_0x1001e3(0x77)],'routing_key':_0x31e50a[_0x1001e3(0xb7)],'auto_retry':_0x228263,'max_retries':_0x27f309},'message':_0x40da2d};await this['setupCollectorInfrastructure'](_0x31e50a);const _0x138905=new Date(),_0x27f181={'timestamp':_0x138905['toISOString'](),'content':JSON[_0x1001e3(0x93)](_0x421749)},_0x4e872c=this[_0x1001e3(0x8f)][_0x1001e3(0xa1)](_0x31e50a[_0x1001e3(0xac)],_0x31e50a['routingKey'],Buffer[_0x1001e3(0xa4)](JSON['stringify'](_0x27f181)),{'persistent':!![],'contentType':_0x24880d[_0x1001e3(0xb3)],'timestamp':_0x138905[_0x1001e3(0x8e)](),'messageId':_0x138905[_0x1001e3(0x8e)]()+'-'+Math['random']()[_0x1001e3(0x95)](0x24)['substring'](0x7),'headers':{'x-auto-retry':_0x228263,'x-max-retry':_0x27f309,'x-retry-count':0x0,'x-retry-interval':0x2710}});if(_0x4e872c){console['log']('['+_0x24880d[_0x1001e3(0xa7)](formatDate,_0x138905)+_0x1001e3(0x9f),{'exchange':_0x31e50a[_0x1001e3(0xac)],'routing_key':_0x31e50a['routingKey'],'queue':_0x31e50a['queue'],'sendAt':_0x138905[_0x1001e3(0xa3)]()});const _0x309d42=_0x1001e3(0x79)+_0x138905[_0x1001e3(0x8e)]()+'-'+Math[_0x1001e3(0xa0)]()[_0x1001e3(0x95)](0x24)[_0x1001e3(0x75)](0x7);return{'success':!![],'message':_0x24880d['cZQSg'],'data':{'id':_0x309d42,'queueInfo':{'exchange':_0x31e50a['exchange'],'queue':_0x31e50a['queue'],'routingKey':_0x31e50a['routingKey']}}};}else throw new Error(_0x1001e3(0x88));}catch(_0x1795cf){return console['error']('['+formatDate(new Date())+_0x1001e3(0x83)+_0x1795cf[_0x1001e3(0x7c)]),{'success':![],'message':'Error:\x20'+_0x1795cf['message'],'data':null};}}[a0_0xd01213(0x84)](_0x1e6427){const _0x590a33=a0_0xd01213,_0x4fdc85={'xsvpM':_0x590a33(0xcd),'pMEOZ':function(_0x389d39,_0x2f3bd5){return _0x389d39(_0x2f3bd5);}};typeof _0x1e6427===_0x4fdc85[_0x590a33(0xb9)]?(this[_0x590a33(0xa2)][_0x590a33(0x8d)](_0x1e6427),console['log']('['+_0x4fdc85['pMEOZ'](formatDate,new Date())+_0x590a33(0xaa))):console['error']('['+formatDate(new Date())+']\x20Message\x20handler\x20must\x20be\x20a\x20function');}async[a0_0xd01213(0xa9)](_0x4c42c8){const _0x3b756f=a0_0xd01213,_0x25aba2={'jAoUn':function(_0x4a0ad2,_0x1965c6){return _0x4a0ad2(_0x1965c6);}};if(this[_0x3b756f(0xa2)]['length']===0x0)return console[_0x3b756f(0xae)]('['+formatDate(new Date())+']\x20No\x20handlers\x20registered\x20to\x20process\x20messages'),!![];try{for(const _0x41ed8b of this['messageHandlers']){await _0x41ed8b(_0x4c42c8);}return!![];}catch(_0x5661f2){return console['error']('['+_0x25aba2[_0x3b756f(0x80)](formatDate,new Date())+']\x20Error\x20processing\x20message:\x20'+_0x5661f2[_0x3b756f(0x7c)]),![];}}async[a0_0xd01213(0x91)](){const _0x2d0c57=a0_0xd01213,_0x3c56c5={'zLVSb':function(_0xcebf6,_0x2736fb){return _0xcebf6!==_0x2736fb;},'VOWtv':function(_0x491e36,_0xb3e6be){return _0x491e36(_0xb3e6be);},'muNAv':function(_0x20f46c,_0x2d1cfb){return _0x20f46c(_0x2d1cfb);}};if(!this[_0x2d0c57(0x99)])return console['error']('['+_0x3c56c5[_0x2d0c57(0x89)](formatDate,new Date())+_0x2d0c57(0xc4)),![];try{return console['log']('['+_0x3c56c5[_0x2d0c57(0xd0)](formatDate,new Date())+']\x20Start\x20consuming\x20messages\x20from\x20queue\x20\x22'+this[_0x2d0c57(0x87)][_0x2d0c57(0x77)]+_0x2d0c57(0x7d)),this['channel']['consume'](this['config']['queue'],async _0x2fbd77=>{const _0x1496c7=_0x2d0c57;if(_0x3c56c5[_0x1496c7(0xa6)](_0x2fbd77,null)){const _0x49c255=new Date();let _0x1bbce2;try{_0x1bbce2=JSON[_0x1496c7(0x7e)](_0x2fbd77['content'][_0x1496c7(0x95)]());}catch(_0xed3f23){console['error']('['+_0x3c56c5['VOWtv'](formatDate,_0x49c255)+_0x1496c7(0xb4)+_0xed3f23['message']),console['error']('Message\x20content:\x20'+_0x2fbd77[_0x1496c7(0xca)]['toString']()),this[_0x1496c7(0x8f)]['ack'](_0x2fbd77);return;}const _0x3c1580=_0x2fbd77[_0x1496c7(0xad)]['timestamp']?new Date(_0x2fbd77['properties']['timestamp']):new Date(),_0x55ed19=await this[_0x1496c7(0xa9)](_0x1bbce2);_0x55ed19?(console['log']('['+formatDate(new Date())+']\x20Message\x20processed\x20successfully'),this[_0x1496c7(0x8f)]['ack'](_0x2fbd77)):(console[_0x1496c7(0xaf)]('['+_0x3c56c5['VOWtv'](formatDate,new Date())+_0x1496c7(0x9e)),this[_0x1496c7(0x8f)][_0x1496c7(0xb1)](_0x2fbd77,![],!![])),console[_0x1496c7(0xba)](_0x1496c7(0x8b));}},{'noAck':![]}),!![];}catch(_0x35e585){return console[_0x2d0c57(0xaf)]('['+formatDate(new Date())+']\x20Failed\x20to\x20start\x20consuming:\x20'+_0x35e585[_0x2d0c57(0x7c)]),![];}}async[a0_0xd01213(0x92)](){this['connection']&&(await closeConnection(this['connection']),this['isConnected']=![]);}}function a0_0x3bbf(_0x30f3e2,_0xdf2e0e){_0x30f3e2=_0x30f3e2-0x74;const _0x2e9b88=a0_0x2e9b();let _0x3bbfea=_0x2e9b88[_0x30f3e2];if(a0_0x3bbf['WeEZQZ']===undefined){var _0x1991b8=function(_0x322b92){const _0x505648='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x12be20='',_0x406316='';for(let _0x5a2e77=0x0,_0x4798a4,_0x45c3ab,_0x378026=0x0;_0x45c3ab=_0x322b92['charAt'](_0x378026++);~_0x45c3ab&&(_0x4798a4=_0x5a2e77%0x4?_0x4798a4*0x40+_0x45c3ab:_0x45c3ab,_0x5a2e77++%0x4)?_0x12be20+=String['fromCharCode'](0xff&_0x4798a4>>(-0x2*_0x5a2e77&0x6)):0x0){_0x45c3ab=_0x505648['indexOf'](_0x45c3ab);}for(let _0x301bd0=0x0,_0x24c129=_0x12be20['length'];_0x301bd0<_0x24c129;_0x301bd0++){_0x406316+='%'+('00'+_0x12be20['charCodeAt'](_0x301bd0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x406316);};a0_0x3bbf['KPQySf']=_0x1991b8,a0_0x3bbf['rRAZUz']={},a0_0x3bbf['WeEZQZ']=!![];}const _0x3643a7=_0x2e9b88[0x0],_0x5c18dc=_0x30f3e2+_0x3643a7,_0x39c508=a0_0x3bbf['rRAZUz'][_0x5c18dc];return!_0x39c508?(_0x3bbfea=a0_0x3bbf['KPQySf'](_0x3bbfea),a0_0x3bbf['rRAZUz'][_0x5c18dc]=_0x3bbfea):_0x3bbfea=_0x39c508,_0x3bbfea;}let instance=null;function getInstance(){return!instance&&(instance=new RabbitMQService()),instance;}module['exports']={'getInstance':getInstance};function a0_0x2e9b(){const _0x5f059a=['CMvNAxn0zxjnzxnZywDLsgfUzgXLCG','ksbJCMvHDgvK','xsbfuLjpuJOGuxvLDwuG','y29UzMLN','rMfPBgvKihrVihnLBMqGBwvZC2fNzsb0BYbsywjIAxrnuq','vK9xDhy','BvrZBNe','ls0T','y29UBMvJDgLVBG','ChvZAa','z2v0vgLTzq','y2HHBM5LBa','igLZigfSCMvHzhKGAw4GDxnLihDPDgGGysbKAwzMzxjLBNqGCM91DgLUzYbRzxKU','C3rHCNrdB25ZDw1L','y2XVC2u','C3rYAw5NAwz5','otq1mdaYmgLbq091tq','Dg9tDhjPBMC','C3bSAxq','lI4VDxrPBhmVzgf0zuHLBhbLCG','ignYzwf0zwqVCMvHzhK','AxndB25Uzwn0zwq','yMLUzff1zxvL','ic0+ia','whLzrgK','yxnZzxj0rxHJAgfUz2u','xsbgywLSzwqGDg8GChjVy2vZCYbTzxnZywDLlcbYzxf1zxvPBMC','xsbnzxnZywDLihnLBNqGDg8GuMfIyML0tveGC3vJy2vZC2z1BgX5oG','CMfUzg9T','ChvIBgLZAa','BwvZC2fNzuHHBMrSzxjZ','Dg9ju09tDhjPBMC','zNjVBq','q3Levwi','EKXwu2i','DeX1tuu','mti5EM5ODfDm','ChjVy2vZC01LC3nHz2u','xsbnzxnZywDLigHHBMrSzxiGCMvNAxn0zxjLza','ndq4mezbyKHMta','zxHJAgfUz2u','ChjVCgvYDgLLCW','D2fYBG','zxjYB3i','xsblB25LA3nPifjHyMjPDe1rihrLCNb1DhvZ','BMfJAW','Ec1KzwfKlwXLDhrLCI1YB3v0Aw5NlwTLEq','y0T4r2C','xsbgywLSzwqGDg8GCgfYC2uGBwvZC2fNztOG','yxnZzxj0uxvLDwu','yxv0B19YzxrYEq','CM91DgLUz0TLEq','xsbszxrYEsbLEgnOyw5Nzsa','Ehn2Ce0','Bg9N','zw52','xsbszxrYEsbXDwv1zsa','twLovu4','mZK0EK9MALbs','xsbgywLSzwqGDg8GCMvJB25Uzwn0ihrVifjHyMjPDe1roIa','xsbfCNjVCIbZywf0ihnLDhvWigLUzNjHC3rYDwT0Dxi6ia','zgLYzwn0','ignYzwf0zwq','mtmYnJi3nMPSBerUyG','xsbdyw5UB3qGC3rHCNqGy29UC3vTAw5NoIbUB3qGy29UBMvJDgvKihrVifjHyMjPDe1r','q2fUBM90ignVBM5Ly3qGDg8GuMfIyML0tve6ia','xsbbBhrLCM5HDgL2zsbXDwv1zsa','mZaZode2DxfKCNDr','ChjLzMv0y2G','z0Xntva','y29UDgvUDa','mJvWEM5Kzxq','txrpB1C','zNvUy3rPB24','C2v0DxbdB2XSzwn0B3jjBMzYyxn0CNvJDhvYzq','mZy0odHcvej2r1y','Bxvoqxy','uhzOAui','vhj5Aw5NigfSDgvYBMf0AxzLihf1zxvLig5HBwuUlI4','CMvJB25Uzwn0','xsbfEgnOyw5Nzsa','C3vIC3rYAw5N','Aw5JBhvKzxm','CxvLDwu','Bwf4x3jLDhjPzxm','CxvLDwuT','shffz1K','nty5mti0owzqDgP6Ba','BwvZC2fNzq','iI4UlG','CgfYC2u','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','AKfVvw4','Aw5PDgLHBgL6zq','mtGZmZm3nMrktKTmzW','xsbfCNjVCIbZzw5KAw5NihrVifjHyMjPDe1roIa'];a0_0x2e9b=function(){return _0x5f059a;};return a0_0x2e9b();}
@@ -1 +1 @@
1
- const a0_0x3c965a=a0_0x4a85;(function(_0x58f978,_0x5377cc){const _0x373557=a0_0x4a85,_0x4e527b=_0x58f978();while(!![]){try{const _0xe09613=-parseInt(_0x373557(0xac))/0x1*(-parseInt(_0x373557(0x8d))/0x2)+parseInt(_0x373557(0xad))/0x3*(-parseInt(_0x373557(0x173))/0x4)+-parseInt(_0x373557(0x14d))/0x5*(-parseInt(_0x373557(0x13c))/0x6)+parseInt(_0x373557(0x155))/0x7*(-parseInt(_0x373557(0x165))/0x8)+parseInt(_0x373557(0xe6))/0x9*(-parseInt(_0x373557(0xd1))/0xa)+parseInt(_0x373557(0x17d))/0xb+parseInt(_0x373557(0xb6))/0xc*(-parseInt(_0x373557(0x156))/0xd);if(_0xe09613===_0x5377cc)break;else _0x4e527b['push'](_0x4e527b['shift']());}catch(_0x4fc767){_0x4e527b['push'](_0x4e527b['shift']());}}}(a0_0x2127,0x66cb5));const {Queue,Worker}=require('bullmq'),Redis=require('ioredis'),crypto=require('crypto'),{v7:uuidv7}=require('uuid'),fs=require('fs'),path=require('path'),{logger}=require('../../utils/logger'),jobValidator=require('./job-validator');let componentEngine=null;function a0_0x4a85(_0x25ba0f,_0x1ed40d){_0x25ba0f=_0x25ba0f-0x74;const _0x212742=a0_0x2127();let _0x4a8564=_0x212742[_0x25ba0f];if(a0_0x4a85['HoFpKs']===undefined){var _0x409f91=function(_0x4a55c1){const _0x1358e6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x17b700='',_0x2dd487='';for(let _0xf608b8=0x0,_0x44d1aa,_0x34468d,_0x1bda4a=0x0;_0x34468d=_0x4a55c1['charAt'](_0x1bda4a++);~_0x34468d&&(_0x44d1aa=_0xf608b8%0x4?_0x44d1aa*0x40+_0x34468d:_0x34468d,_0xf608b8++%0x4)?_0x17b700+=String['fromCharCode'](0xff&_0x44d1aa>>(-0x2*_0xf608b8&0x6)):0x0){_0x34468d=_0x1358e6['indexOf'](_0x34468d);}for(let _0x166402=0x0,_0x292bfd=_0x17b700['length'];_0x166402<_0x292bfd;_0x166402++){_0x2dd487+='%'+('00'+_0x17b700['charCodeAt'](_0x166402)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2dd487);};a0_0x4a85['hTzrPb']=_0x409f91,a0_0x4a85['zdatfO']={},a0_0x4a85['HoFpKs']=!![];}const _0x4c9b86=_0x212742[0x0],_0xf81f6a=_0x25ba0f+_0x4c9b86,_0x5eb8ba=a0_0x4a85['zdatfO'][_0xf81f6a];return!_0x5eb8ba?(_0x4a8564=a0_0x4a85['hTzrPb'](_0x4a8564),a0_0x4a85['zdatfO'][_0xf81f6a]=_0x4a8564):_0x4a8564=_0x5eb8ba,_0x4a8564;}function getComponentEngine(){const _0x42245d=a0_0x4a85,_0x1ed8e2={'fJmcn':function(_0x5a051b,_0x232dcb){return _0x5a051b(_0x232dcb);},'tjnwf':'../../utils/component-engine'};if(!componentEngine)try{const _0x1de650=_0x1ed8e2['fJmcn'](require,_0x1ed8e2[_0x42245d(0xfd)]);componentEngine=_0x1de650[_0x42245d(0x115)]||_0x1de650;}catch(_0x1bd184){}return componentEngine;}class JobManager{constructor(){const _0x1ae886=a0_0x4a85,_0x697493=_0x1ae886(0x96)['split']('|');let _0x4940f8=0x0;while(!![]){switch(_0x697493[_0x4940f8++]){case'0':this[_0x1ae886(0x153)]={};continue;case'1':this[_0x1ae886(0xeb)]=[];continue;case'2':this[_0x1ae886(0x158)]={};continue;case'3':this[_0x1ae886(0x95)]=new Map();continue;case'4':this['workingDir']=process['cwd']();continue;case'5':this[_0x1ae886(0xa0)]={};continue;case'6':this[_0x1ae886(0x87)]=![];continue;case'7':this[_0x1ae886(0x10e)]={};continue;}break;}}['createBullMQConnection'](){const _0x44bc1a=a0_0x4a85,_0x33803c={'OuQle':function(_0x271951,_0x1a303d){return _0x271951*_0x1a303d;},'JNgds':function(_0x48f329,_0x7cd95f,_0x257aa0){return _0x48f329(_0x7cd95f,_0x257aa0);}},_0x2cb537=new Redis({'host':process['env'][_0x44bc1a(0xdd)]||_0x44bc1a(0x12c),'port':_0x33803c['JNgds'](parseInt,process['env']['REDIS_PORT'],0xa)||0x18ec,'password':process['env'][_0x44bc1a(0x110)]||undefined,'db':parseInt(process['env'][_0x44bc1a(0x149)],0xa)||0x0,'maxRetriesPerRequest':null,'retryStrategy'(_0x178bc4){const _0x2fc870=Math['min'](_0x33803c['OuQle'](_0x178bc4,0x32),0x7d0);return _0x2fc870;}});return _0x2cb537['on'](_0x44bc1a(0xcc),_0x56fa42=>{const _0x486e63=_0x44bc1a;logger['error']({'event':_0x486e63(0xe1),'error':_0x56fa42[_0x486e63(0x177)]},'BullMQ\x20Redis\x20connection\x20error:\x20'+_0x56fa42[_0x486e63(0x177)]);}),this['connections']['push'](_0x2cb537),_0x2cb537;}async['initialize'](){const _0x2b6cbc=a0_0x4a85,_0x1f8816={'IkGcJ':_0x2b6cbc(0xf8),'bPOcC':'job_manager_already_initialized','sdnmA':_0x2b6cbc(0x130),'DZZXP':'job_redis_connected','FHyVR':'job_redis_failed','TFmMI':_0x2b6cbc(0x144),'BiEFQ':function(_0x55e63d,_0x265d2f){return _0x55e63d===_0x265d2f;},'nomOR':'job_config_invalid','lcVTL':_0x2b6cbc(0x118),'FkOxu':'default','DvgYZ':function(_0x28cb2a,_0x23016b,_0x4babba){return _0x28cb2a(_0x23016b,_0x4babba);},'wBVKH':_0x2b6cbc(0xd2),'uwiDU':_0x2b6cbc(0xf1),'OTFFZ':_0x2b6cbc(0x122),'BoRrS':function(_0x1e4fd7,_0x55b9d8,_0x36a1c8){return _0x1e4fd7(_0x55b9d8,_0x36a1c8);},'ftljw':'progress','vjZXa':'error','FdVnL':_0x2b6cbc(0xe7),'eNCsK':_0x2b6cbc(0xfa)};if(this[_0x2b6cbc(0x87)]){logger['warn']({'event':_0x1f8816[_0x2b6cbc(0x13f)]},'Job\x20Manager\x20sudah\x20diinisialisasi,\x20skip');return;}logger['info']({'event':'job_manager_init_start'},_0x1f8816[_0x2b6cbc(0xec)]);const _0x59b3cd=this[_0x2b6cbc(0xc0)]();try{await _0x59b3cd[_0x2b6cbc(0x127)](),logger[_0x2b6cbc(0x172)]({'event':_0x1f8816[_0x2b6cbc(0xbd)]},'BullMQ\x20Redis\x20connection\x20verified');}catch(_0x312b0b){logger[_0x2b6cbc(0xcc)]({'event':_0x1f8816['FHyVR'],'error':_0x312b0b[_0x2b6cbc(0x177)]},'Redis\x20connection\x20failed:\x20'+_0x312b0b['message']+_0x2b6cbc(0x178));try{await _0x59b3cd['quit']();}catch(_0x261c2d){}this['connections']=this['connections'][_0x2b6cbc(0x159)](_0x471fa4=>_0x471fa4!==_0x59b3cd);return;}try{await _0x59b3cd[_0x2b6cbc(0x161)]();}catch(_0x476fec){}this[_0x2b6cbc(0xeb)]=this[_0x2b6cbc(0xeb)][_0x2b6cbc(0x159)](_0x5a808a=>_0x5a808a!==_0x59b3cd);try{await this[_0x2b6cbc(0x12e)]();}catch(_0x7d03c6){logger[_0x2b6cbc(0x175)]({'event':_0x1f8816['TFmMI'],'error':_0x7d03c6[_0x2b6cbc(0x177)]},_0x2b6cbc(0x85)+_0x7d03c6['message']+_0x2b6cbc(0x128));}const _0x3d0ce9=this['loadJobConfigs']();_0x1f8816['BiEFQ'](_0x3d0ce9[_0x2b6cbc(0xe3)],0x0)&&logger['info']({'event':'job_no_configs'},_0x2b6cbc(0x15d));const _0x3d086e=[];for(const _0x42ff31 of _0x3d0ce9){const _0x5dd987=jobValidator['validateConfig'](_0x42ff31,this[_0x2b6cbc(0x10a)]);_0x5dd987[_0x2b6cbc(0x129)]?_0x3d086e[_0x2b6cbc(0x18e)](_0x42ff31):logger[_0x2b6cbc(0xcc)]({'event':_0x1f8816['nomOR'],'name':_0x42ff31[_0x2b6cbc(0x123)]||_0x2b6cbc(0x118),'errors':_0x5dd987['errors']},_0x2b6cbc(0xa4)+(_0x42ff31[_0x2b6cbc(0x123)]||_0x1f8816['lcVTL'])+_0x2b6cbc(0xb9)+_0x5dd987[_0x2b6cbc(0xd0)][_0x2b6cbc(0x101)](';\x20'));}const _0x3f39a4=process['env']['RESTFORGE_PROJECT_NAME']||_0x1f8816['FkOxu'],_0x1e48c3=process['env']['JOB_REDIS_PREFIX']||'rf:'+_0x3f39a4+_0x2b6cbc(0x17f),_0x594568=parseInt(process[_0x2b6cbc(0x91)]['JOB_RETENTION_HOURS'],0xa)||0x48,_0x44b677=_0x1f8816['DvgYZ'](parseInt,process[_0x2b6cbc(0x91)][_0x2b6cbc(0x167)],0xa)||0xa8,_0x5a11ae={'removeOnComplete':{'age':_0x594568*0xe10},'removeOnFail':{'age':_0x44b677*0xe10}},_0x5745a8={'high-priority':_0x1f8816[_0x2b6cbc(0xc8)],'default':'default','low-priority':_0x2b6cbc(0xf6)};for(const [_0x172e12,_0x232c7f]of Object[_0x2b6cbc(0xa7)](_0x5745a8)){this['queues'][_0x172e12]=new Queue(_0x232c7f,{'connection':this['createBullMQConnection'](),'prefix':_0x1e48c3,'defaultJobOptions':_0x5a11ae});}logger['info']({'event':_0x1f8816['uwiDU'],'count':0x3},_0x1f8816['OTFFZ']);const _0x420ccc=_0x1f8816['BoRrS'](parseInt,process['env']['JOB_CONCURRENCY'],0xa)||0x5,_0x291885=parseInt(process['env']['JOB_STALLED_INTERVAL'],0xa)||0x7530,_0x2ac01b=parseInt(process[_0x2b6cbc(0x91)]['JOB_MAX_STALLED_COUNT'],0xa)||0x2;for(const [_0x5390ab,_0x534857]of Object['entries'](_0x5745a8)){const _0x1629e3=new Worker(_0x534857,async _0x3aa893=>this[_0x2b6cbc(0x108)](_0x3aa893),{'connection':this[_0x2b6cbc(0xc0)](),'prefix':_0x1e48c3,'concurrency':_0x420ccc,'stalledInterval':_0x291885,'maxStalledCount':_0x2ac01b});_0x1629e3['on']('completed',(_0xa16259,_0x353e54)=>this[_0x2b6cbc(0xce)](_0xa16259,_0x353e54)),_0x1629e3['on']('failed',(_0x5d21e1,_0xedd4e5)=>this['onJobFailed'](_0x5d21e1,_0xedd4e5)),_0x1629e3['on'](_0x1f8816[_0x2b6cbc(0xba)],(_0x380ddd,_0x2da1cd)=>this[_0x2b6cbc(0x15c)](_0x380ddd,_0x2da1cd)),_0x1629e3['on']('stalled',_0x525df8=>{const _0x42324c=_0x2b6cbc;logger['warn']({'event':_0x42324c(0xb5),'jobId':_0x525df8},'Job\x20stalled:\x20'+_0x525df8);}),_0x1629e3['on'](_0x1f8816['vjZXa'],_0x4239f7=>{const _0x5a2e23=_0x2b6cbc;logger[_0x5a2e23(0xcc)]({'event':_0x1f8816[_0x5a2e23(0xd5)],'queue':_0x5390ab,'error':_0x4239f7['message']},_0x5a2e23(0x106)+_0x5390ab+_0x5a2e23(0x17b)+_0x4239f7[_0x5a2e23(0x177)]);}),this['workers'][_0x5390ab]=_0x1629e3;}logger[_0x2b6cbc(0x172)]({'event':_0x1f8816['FdVnL'],'count':0x3,'concurrency':_0x420ccc},_0x2b6cbc(0xc1)+_0x420ccc+')');let _0x1b2be3=0x0;for(const _0xf7ac53 of _0x3d086e){try{await this['registerJob'](_0xf7ac53),_0x1b2be3++;}catch(_0x30aa51){logger['error']({'event':_0x1f8816['eNCsK'],'name':_0xf7ac53[_0x2b6cbc(0x123)],'error':_0x30aa51[_0x2b6cbc(0x177)]},'Failed\x20to\x20register\x20job:\x20'+_0xf7ac53[_0x2b6cbc(0x123)]+'\x20—\x20'+_0x30aa51[_0x2b6cbc(0x177)]);}}this['initialized']=!![];const _0x13dbf3=this['connections']['length'];logger[_0x2b6cbc(0x172)]({'event':_0x2b6cbc(0x16d),'registeredJobs':_0x1b2be3,'totalConfigs':_0x3d086e['length'],'redisConnections':_0x13dbf3},'Job\x20Manager\x20ready:\x20'+_0x1b2be3+'\x20job(s)\x20registered,\x20'+_0x13dbf3+_0x2b6cbc(0x163));}async['shutdown'](){const _0x11af9a=a0_0x4a85,_0x2b567b={'EYvOV':'job_manager_shutdown_start','PZQtK':function(_0x22d4b7,_0x5b85a1){return _0x22d4b7<_0x5b85a1;},'SEriG':'active','Upziv':'job_manager_shutdown_complete'};if(!this[_0x11af9a(0x87)])return;const _0x11c219=parseInt(process[_0x11af9a(0x91)]['JOB_SHUTDOWN_TIMEOUT'],0xa)||0x2710;logger['info']({'event':_0x2b567b['EYvOV'],'timeoutMs':_0x11c219},'Job\x20Manager\x20shutting\x20down\x20(timeout:\x20'+_0x11c219+'ms)...');const _0x4f2547=Object[_0x11af9a(0x17e)](this['workers'])['map'](async _0x51827a=>{try{await _0x51827a['pause']();}catch(_0x1d4538){}});await Promise['all'](_0x4f2547);const _0x51c5fe=Date[_0x11af9a(0x140)]();while(_0x2b567b[_0x11af9a(0x82)](Date[_0x11af9a(0x140)]()-_0x51c5fe,_0x11c219)){let _0x1615cf=0x0;for(const _0x1aa7a4 of Object[_0x11af9a(0x17e)](this['queues'])){try{const _0x4dd7ce=await _0x1aa7a4['getJobCounts'](_0x2b567b[_0x11af9a(0x90)]);_0x1615cf+=_0x4dd7ce[_0x11af9a(0xaa)]||0x0;}catch(_0x22a1a0){}}if(_0x1615cf===0x0)break;await new Promise(_0x4bbd38=>setTimeout(_0x4bbd38,0x1f4));}const _0x52445e=Object['values'](this[_0x11af9a(0x10e)])['map'](async _0x3cddfe=>{try{await _0x3cddfe['close']();}catch(_0x54471e){}});await Promise[_0x11af9a(0xfe)](_0x52445e);const _0x1099f2=Object[_0x11af9a(0x17e)](this['queues'])[_0x11af9a(0x121)](async _0x1146f5=>{const _0x3ad901=_0x11af9a;try{await _0x1146f5[_0x3ad901(0x18c)]();}catch(_0x55f23e){}});await Promise[_0x11af9a(0xfe)](_0x1099f2);for(const _0x53cdc9 of this[_0x11af9a(0xeb)]){try{await _0x53cdc9['quit']();}catch(_0x34e757){}}this[_0x11af9a(0x153)]={},this[_0x11af9a(0x10e)]={},this['connections']=[],await this['setAllJobsOffline'](),this['activeHistoryIds']['clear'](),this['initialized']=![],logger['info']({'event':_0x2b567b[_0x11af9a(0x157)]},'Job\x20Manager\x20shutdown\x20complete');}['loadJobConfigs'](){const _0x27e1b4=a0_0x4a85,_0x1d5d3e={'oRYTj':_0x27e1b4(0x18d),'RYwsh':_0x27e1b4(0x171),'NwKtc':'job_configs_loaded'},_0xd5cec8=path[_0x27e1b4(0x101)](this[_0x27e1b4(0x10a)],'payload',_0x1d5d3e['oRYTj']);if(!fs[_0x27e1b4(0xea)](_0xd5cec8))return logger['info']({'event':'job_config_dir_missing','path':_0xd5cec8},_0x1d5d3e['RYwsh']),[];const _0xf8a208=fs[_0x27e1b4(0x8c)](_0xd5cec8)[_0x27e1b4(0x159)](_0x270ee6=>_0x270ee6['endsWith']('.json')),_0x48fc2e=[];for(const _0x50a790 of _0xf8a208){const _0x561c79=path['join'](_0xd5cec8,_0x50a790);try{const _0x4058c3=fs['readFileSync'](_0x561c79,'utf8'),_0x1402a9=JSON['parse'](_0x4058c3);_0x1402a9[_0x27e1b4(0x11a)]=_0x50a790,_0x48fc2e[_0x27e1b4(0x18e)](_0x1402a9);}catch(_0x5ddcdf){logger[_0x27e1b4(0xcc)]({'event':_0x27e1b4(0xde),'file':_0x50a790,'error':_0x5ddcdf['message']},'Failed\x20to\x20parse\x20job\x20config:\x20'+_0x50a790+'\x20—\x20'+_0x5ddcdf['message']);}}return logger['info']({'event':_0x1d5d3e[_0x27e1b4(0xe9)],'count':_0x48fc2e[_0x27e1b4(0xe3)]},'Loaded\x20'+_0x48fc2e['length']+_0x27e1b4(0xbb)),_0x48fc2e;}async['registerJob'](_0x5e6204){const _0x21a417=a0_0x4a85,_0x47bf11={'FYjuk':_0x21a417(0x8a),'RQZAV':'jobs','LTYYg':function(_0x4f4fc3,_0x578300){return _0x4f4fc3(_0x578300);},'RjdKx':function(_0x205601,_0x89d622){return _0x205601===_0x89d622;},'DDIHk':'default','yWZIn':'online','ZvctZ':'offline'},_0x5367ff=path[_0x21a417(0x101)](this['workingDir'],_0x47bf11['FYjuk'],_0x47bf11['RQZAV'],_0x5e6204[_0x21a417(0x14c)]+_0x21a417(0x92));this[_0x21a417(0x158)][_0x5e6204['name']]=_0x47bf11[_0x21a417(0x83)](require,_0x5367ff),this[_0x21a417(0xa0)][_0x5e6204[_0x21a417(0x123)]]=_0x5e6204;if(_0x47bf11[_0x21a417(0xa2)](_0x5e6204['type'],'cron')&&_0x5e6204[_0x21a417(0xd3)]!==![]){const _0x371536=this['queues'][_0x5e6204['queue']||_0x21a417(0xcd)];await _0x371536[_0x21a417(0xf9)](_0x5e6204[_0x21a417(0x123)],{'pattern':_0x5e6204['schedule'],'tz':_0x5e6204['timezone']||undefined},{'name':_0x5e6204['name'],'data':{'handler':_0x5e6204[_0x21a417(0x14c)],'triggeredBy':'cron','metadata':_0x5e6204['metadata']||{}},'opts':{'attempts':_0x5e6204[_0x21a417(0x184)]?.[_0x21a417(0x124)]||0x3,'backoff':{'type':_0x5e6204['retry']?.[_0x21a417(0x11f)]||'exponential','delay':_0x5e6204[_0x21a417(0x184)]?.[_0x21a417(0xca)]||0x1388},'timeout':_0x5e6204['timeout']||0x7530}}),logger[_0x21a417(0x172)]({'event':'cron_registered','name':_0x5e6204[_0x21a417(0x123)],'schedule':_0x5e6204[_0x21a417(0x107)],'queue':_0x5e6204[_0x21a417(0xe2)]||_0x47bf11[_0x21a417(0x81)]},_0x21a417(0x13b)+_0x5e6204[_0x21a417(0x123)]+'\x20['+_0x5e6204['schedule']+']');}const _0x4f7303=_0x5e6204[_0x21a417(0x99)]===_0x21a417(0x139)&&_0x5e6204[_0x21a417(0xd3)]!==![]?_0x47bf11[_0x21a417(0x15b)]:_0x47bf11[_0x21a417(0xc5)];let _0x9f5e=null;_0x47bf11[_0x21a417(0xa2)](_0x4f7303,_0x47bf11[_0x21a417(0x15b)])&&(_0x9f5e=await this['getNextRunFromBullMQ'](_0x5e6204[_0x21a417(0x123)])),await this[_0x21a417(0x74)](_0x5e6204,_0x4f7303,_0x9f5e);}async['processJob'](_0x132dce){const _0x32159f=a0_0x4a85,_0x206c6e={'Fcdft':'job_history_insert_bg_error','QdZoz':function(_0x551fd5,_0x3721b0){return _0x551fd5+_0x3721b0;},'IXJXC':_0x32159f(0x118),'iLhCK':function(_0xda0fe1,_0x370645){return _0xda0fe1+_0x370645;},'ZwDpF':function(_0x4f6b07,_0x56d718){return _0x4f6b07===_0x56d718;},'NyBlS':'api-delayed','lfIFp':_0x32159f(0x104),'RATKM':function(_0xe83ea3,_0x14440b){return _0xe83ea3===_0x14440b;},'wvDDJ':_0x32159f(0x138),'QTrwI':'default'},_0x28fe51=this[_0x32159f(0xa0)][_0x132dce[_0x32159f(0x123)]],_0x396ed7=this['handlers'][_0x132dce['name']];if(!_0x396ed7)throw new Error(_0x32159f(0x170)+_0x132dce['name']);const _0x102b7d=logger[_0x32159f(0xc4)]({'jobId':_0x132dce['id'],'jobName':_0x132dce['name']});_0x102b7d['info']({'event':_0x32159f(0xab),'attempt':_0x206c6e['QdZoz'](_0x132dce[_0x32159f(0x16c)],0x1),'triggeredBy':_0x132dce[_0x32159f(0xdf)]?.[_0x32159f(0x119)]||_0x206c6e['IXJXC']},_0x32159f(0x180)+_0x132dce[_0x32159f(0x123)]+_0x32159f(0x88)+_0x206c6e[_0x32159f(0x168)](_0x132dce[_0x32159f(0x16c)],0x1)+')');const _0x5dc754=uuidv7(),_0x1ae885=_0x132dce['data']?.[_0x32159f(0x119)]||_0x32159f(0x118),_0x34dc3e=this['insertJobHistory']({'id':_0x5dc754,'jobName':_0x132dce['name'],'bullmqJobId':_0x132dce['id'],'triggerType':_0x206c6e[_0x32159f(0x8e)](_0x1ae885,_0x206c6e['NyBlS'])?_0x206c6e[_0x32159f(0x114)]:_0x206c6e[_0x32159f(0xd6)](_0x1ae885,_0x206c6e[_0x32159f(0xe0)])?'manual':_0x32159f(0x139),'triggeredBy':_0x1ae885===_0x32159f(0x139)?'system':_0x1ae885,'queue':_0x28fe51?.[_0x32159f(0xe2)]||_0x206c6e[_0x32159f(0x183)],'attempt':_0x206c6e['QdZoz'](_0x132dce[_0x32159f(0x16c)],0x1),'configFile':_0x28fe51?.['_sourceFile']||null})['catch'](_0x328b41=>{const _0x415994=_0x32159f;_0x102b7d[_0x415994(0x175)]({'event':_0x206c6e['Fcdft'],'error':_0x328b41['message']},_0x415994(0x86)+_0x328b41['message']);});this[_0x32159f(0x95)]['set'](_0x132dce['id'],{'historyId':_0x5dc754,'insertPromise':_0x34dc3e});const _0x186804=this[_0x32159f(0x143)](_0x132dce,_0x28fe51,_0x102b7d),_0x5de465=getComponentEngine();if(_0x5de465&&typeof _0x5de465[_0x32159f(0xc3)]===_0x32159f(0x147)){const _0x205306=await _0x5de465[_0x32159f(0xc3)]('onBeforeJobExecute',_0x186804,!![]);if(!_0x205306['success'])throw new Error('Job\x20cancelled\x20by\x20onBeforeJobExecute:\x20'+_0x205306[_0x32159f(0xcc)]);}const _0x1f993d=await _0x396ed7(_0x186804);return _0x102b7d[_0x32159f(0x172)]({'event':'job_handler_done','result':_0x1f993d},_0x32159f(0xc9)+_0x132dce['name']),_0x1f993d;}[a0_0x3c965a(0x143)](_0x6337bc,_0x225bf4,_0x3d0602){const _0x1f30cc=a0_0x3c965a,_0x1f1447={'gBLVl':'JOB_EVENT','fhcFV':function(_0x4f6747,_0x3cce69){return _0x4f6747||_0x3cce69;}};return{'jobId':_0x6337bc['id'],'jobName':_0x6337bc['name'],'attempt':_0x6337bc[_0x1f30cc(0x16c)]+0x1,'maxAttempts':_0x225bf4?.['retry']?.[_0x1f30cc(0x124)]||0x3,'payload':_0x6337bc[_0x1f30cc(0xdf)]||{},'config':_0x1f1447['fhcFV'](_0x225bf4,{}),'db':this['getDbUtils'](),'redis':this[_0x1f30cc(0x103)](),'logger':_0x3d0602,'kafka':this['getKafkaService'](),'cache':this[_0x1f30cc(0x10c)](),'updateProgress':async _0x24f5d3=>{await _0x6337bc['updateProgress'](_0x24f5d3);},'emit':async(_0x24999e,_0x23b556)=>{const _0x136131=_0x1f30cc,_0x56d340=this[_0x136131(0xf7)]();_0x56d340&&await _0x56d340['publishEvent'](_0x24999e,_0x1f1447[_0x136131(0x181)],null,_0x23b556,{'module':'job-scheduler','endpoint':_0x6337bc[_0x136131(0x123)]});},'job':_0x6337bc};}['getDbType'](){const _0x3d56ee=a0_0x3c965a;return(process[_0x3d56ee(0x91)][_0x3d56ee(0xd7)]||_0x3d56ee(0x120))['toLowerCase']();}async['ensureTables'](){const _0x73cf8e=a0_0x3c965a,_0xcd125={'BCBhI':_0x73cf8e(0x133),'aUyqg':_0x73cf8e(0x9b),'cEGGf':_0x73cf8e(0x89),'gPMse':'job_sql_not_found','YtDCg':'already\x20exists','NkTxi':_0x73cf8e(0xa3)},_0x4b5488=this['getDbUtils']();if(!_0x4b5488){logger['warn']({'event':_0xcd125['BCBhI']},_0x73cf8e(0xf4));return;}const _0x65c54a=this['getDbType'](),_0x4e7c3b={'postgresql':_0xcd125['aUyqg'],'oracle':'oracle.sql','mysql':_0xcd125['cEGGf']},_0x58f45a=_0x4e7c3b[_0x65c54a];if(!_0x58f45a){logger[_0x73cf8e(0x175)]({'event':'job_db_type_unsupported','dbType':_0x65c54a},_0x73cf8e(0xd9)+_0x65c54a+'\x27\x20tidak\x20didukung\x20untuk\x20job\x20monitoring\x20tables');return;}const _0x17f4ba=path[_0x73cf8e(0x101)](__dirname,'sql-scripts',_0x58f45a);if(!fs['existsSync'](_0x17f4ba)){logger['warn']({'event':_0xcd125[_0x73cf8e(0xa5)],'path':_0x17f4ba},'SQL\x20script\x20tidak\x20ditemukan:\x20'+_0x17f4ba);return;}const _0x389785=fs[_0x73cf8e(0xf3)](_0x17f4ba,_0x73cf8e(0x14a)),_0x4d04eb=this['splitSqlStatements'](_0x389785,_0x65c54a);let _0x5acedb=0x0;for(const _0x224a55 of _0x4d04eb){try{await _0x4b5488['executeQuery'](_0x224a55),_0x5acedb++;}catch(_0x1651b3){const _0x105e1d=(_0x1651b3[_0x73cf8e(0x177)]||'')['toLowerCase'](),_0x5c7a63=_0x105e1d[_0x73cf8e(0xae)](_0xcd125[_0x73cf8e(0x185)])||_0x105e1d['includes'](_0x73cf8e(0x14f))||_0x105e1d['includes'](_0xcd125['NkTxi']);!_0x5c7a63&&logger['warn']({'event':'job_ensure_tables_warn','error':_0x1651b3[_0x73cf8e(0x177)]},'Job\x20ensureTables\x20warning:\x20'+_0x1651b3['message']);}}logger['info']({'event':_0x73cf8e(0x131),'dbType':_0x65c54a,'executed':_0x5acedb},_0x73cf8e(0xf0)+_0x65c54a+')');}['splitSqlStatements'](_0x3abf71,_0x5cc02a){const _0x209f98=a0_0x3c965a,_0x3ec5c9={'QXuka':function(_0x39d0cf,_0x985bb8){return _0x39d0cf===_0x985bb8;},'KzBAe':'oracle'};let _0x20ff2b;return _0x5cc02a===_0x3ec5c9[_0x209f98(0x160)]?_0x20ff2b=_0x3abf71[_0x209f98(0x146)](/\n\/\s*(?:\n|$)/):_0x20ff2b=_0x3abf71['split'](/;\s*(?:\n|$)/),_0x20ff2b[_0x209f98(0x121)](_0x51c264=>_0x51c264[_0x209f98(0xef)]())['filter'](_0x35d0ed=>{const _0x1ffd5a=_0x209f98;if(_0x3ec5c9['QXuka'](_0x35d0ed['length'],0x0))return![];const _0x2352fd=_0x35d0ed[_0x1ffd5a(0x146)]('\x0a')[_0x1ffd5a(0x159)](_0x413446=>!_0x413446['trim']()[_0x1ffd5a(0xc7)]('--')&&_0x413446['trim']()['length']>0x0);return _0x2352fd['length']>0x0;});}async['upsertJobRegistry'](_0x34f491,_0x4a97f4=a0_0x3c965a(0xbf),_0x12b216=null){const _0x47dbfe=a0_0x3c965a,_0x95afe={'pMkuj':_0x47dbfe(0xcd),'eVcLK':function(_0x297a8b,_0x27a237){return _0x297a8b===_0x27a237;},'yNvPO':_0x47dbfe(0xc2)},_0x1ccf8b=this['getDbUtils']();if(!_0x1ccf8b)return;const _0x57d0cd=this['getDbType'](),_0x1eb8c7=[_0x34f491['name'],_0x34f491['description']||_0x34f491[_0x47dbfe(0x123)],_0x34f491['type']||'cron',_0x34f491['schedule']||null,_0x34f491[_0x47dbfe(0xe2)]||_0x95afe['pMkuj'],_0x34f491[_0x47dbfe(0x14c)],_0x34f491['_sourceFile']||'',_0x34f491['timeout']||0x7530,_0x34f491[_0x47dbfe(0x184)]?.[_0x47dbfe(0x124)]||0x3,_0x34f491['retry']?.[_0x47dbfe(0x11f)]||'exponential',_0x4a97f4,_0x12b216];try{if(_0x95afe[_0x47dbfe(0x10b)](_0x57d0cd,_0x95afe['yNvPO']))await _0x1ccf8b[_0x47dbfe(0x116)](_0x47dbfe(0x15f),_0x1eb8c7);else _0x95afe[_0x47dbfe(0x10b)](_0x57d0cd,_0x47dbfe(0x166))?await _0x1ccf8b['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)',_0x1eb8c7):await _0x1ccf8b[_0x47dbfe(0x116)](_0x47dbfe(0xff),_0x1eb8c7);}catch(_0x5a210e){logger[_0x47dbfe(0x175)]({'event':_0x47dbfe(0xed),'name':_0x34f491['name'],'error':_0x5a210e[_0x47dbfe(0x177)]},'Failed\x20to\x20upsert\x20job\x20registry:\x20'+_0x34f491[_0x47dbfe(0x123)]+_0x47dbfe(0xb9)+_0x5a210e[_0x47dbfe(0x177)]);}}async['insertJobHistory'](_0x34a6c2){const _0x27864c=a0_0x3c965a,_0x52524c={'ZvwpO':'cron','tCDrP':_0x27864c(0xb0),'XGlzq':'mysql','bxLPD':'running','CJLGy':'job_history_insert_error'},_0xf8c697=this['getDbUtils']();if(!_0xf8c697)return;const _0x198d88=this[_0x27864c(0xfb)](),_0x45a36e=[_0x34a6c2['id'],_0x34a6c2['jobName'],_0x34a6c2['bullmqJobId']||null,_0x34a6c2['triggerType']||_0x52524c[_0x27864c(0x174)],_0x34a6c2[_0x27864c(0x119)]||_0x52524c['tCDrP'],_0x34a6c2[_0x27864c(0xe2)]||_0x27864c(0xcd),_0x34a6c2[_0x27864c(0x186)]||0x1,_0x34a6c2['configFile']||null,process['pid']];try{if(_0x198d88===_0x27864c(0xc2))await _0xf8c697['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)',_0x45a36e);else _0x198d88===_0x52524c['XGlzq']?await _0xf8c697['executeQuery']('INSERT\x20INTO\x20job_history\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(id,\x20job_name,\x20bullmq_job_id,\x20trigger_type,\x20triggered_by,\x20status,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20queue,\x20attempt,\x20config_file,\x20started_at,\x20worker_pid,\x20created_at)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20\x27running\x27,\x20?,\x20?,\x20?,\x20NOW(),\x20?,\x20NOW())',_0x45a36e):await _0xf8c697['executeQuery'](_0x27864c(0x112),_0x45a36e);await this['updateRegistryStatus'](_0x34a6c2[_0x27864c(0x17a)],_0x52524c['bxLPD']);}catch(_0x3d5dee){logger['warn']({'event':_0x52524c[_0x27864c(0x8b)],'jobName':_0x34a6c2['jobName'],'error':_0x3d5dee['message']},'Failed\x20to\x20insert\x20job\x20history:\x20'+_0x3d5dee['message']);}}async[a0_0x3c965a(0x16b)](_0x4cad77,_0x35873d,_0x2f02be){const _0x21296e=a0_0x3c965a,_0x2017dd={'bitaB':_0x21296e(0x162)},_0x378ccf=this['getDbUtils']();if(!_0x378ccf)return;const _0x9cef53=this[_0x21296e(0xfb)](),_0x515792=_0x2f02be?String(_0x2f02be)['substring'](0x0,0x1f4):null;try{if(_0x9cef53==='oracle')await _0x378ccf[_0x21296e(0x116)](_0x21296e(0x187),[_0x35873d,_0x515792,_0x4cad77]);else _0x9cef53===_0x21296e(0x166)?await _0x378ccf[_0x21296e(0x116)]('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?',[_0x35873d,_0x515792,_0x4cad77]):await _0x378ccf[_0x21296e(0x116)](_0x21296e(0x142),[_0x35873d,_0x515792,_0x4cad77]);}catch(_0x137d8b){logger[_0x21296e(0x175)]({'event':_0x2017dd['bitaB'],'historyId':_0x4cad77,'error':_0x137d8b[_0x21296e(0x177)]},'Failed\x20to\x20update\x20job\x20history\x20(completed):\x20'+_0x137d8b['message']);}}async[a0_0x3c965a(0x15a)](_0x2d42c7,_0x438bec,_0x28044c,_0x12adbe,_0x5b9333){const _0x188f90=a0_0x3c965a,_0x102216={'QeZJu':function(_0x58cc75,_0x3dea88){return _0x58cc75===_0x3dea88;},'mqlsD':'oracle','CEpAp':function(_0x46954a,_0x84663a){return _0x46954a||_0x84663a;},'XqpJT':_0x188f90(0x12f)},_0x5023cd=this['getDbUtils']();if(!_0x5023cd)return;const _0x497c2b=this[_0x188f90(0xfb)](),_0x1f73ec=_0x12adbe?String(_0x12adbe)[_0x188f90(0x79)](0x0,0x3e8):null,_0xe03006=_0x5b9333?String(_0x5b9333)['substring'](0x0,0xfa0):null;try{if(_0x102216['QeZJu'](_0x497c2b,_0x102216['mqlsD']))await _0x5023cd[_0x188f90(0x116)](_0x188f90(0x11e),[_0x438bec,_0x28044c||0x0,_0x1f73ec,_0xe03006,_0x2d42c7]);else _0x497c2b===_0x188f90(0x166)?await _0x5023cd['executeQuery'](_0x188f90(0x13d),[_0x438bec,_0x102216['CEpAp'](_0x28044c,0x0),_0x1f73ec,_0xe03006,_0x2d42c7]):await _0x5023cd['executeQuery'](_0x188f90(0x151),[_0x438bec,_0x102216['CEpAp'](_0x28044c,0x0),_0x1f73ec,_0xe03006,_0x2d42c7]);}catch(_0x4c690f){logger['warn']({'event':_0x102216[_0x188f90(0xdb)],'historyId':_0x2d42c7,'error':_0x4c690f[_0x188f90(0x177)]},_0x188f90(0x113)+_0x4c690f['message']);}}async['updateRegistryStatus'](_0x33b4f9,_0x3ae596){const _0x24dd10=a0_0x3c965a,_0x42fe99={'fKasJ':function(_0x83a8b1,_0x1d725b){return _0x83a8b1===_0x1d725b;},'FMpcI':_0x24dd10(0xc2),'Wbegj':_0x24dd10(0x166)},_0x19e235=this['getDbUtils']();if(!_0x19e235)return;const _0x27aa34=this[_0x24dd10(0xfb)]();try{if(_0x42fe99['fKasJ'](_0x27aa34,_0x42fe99['FMpcI']))await _0x19e235['executeQuery'](_0x24dd10(0x12b),[_0x3ae596,_0x33b4f9]);else _0x27aa34===_0x42fe99['Wbegj']?await _0x19e235['executeQuery'](_0x24dd10(0x97),[_0x3ae596,_0x33b4f9]):await _0x19e235[_0x24dd10(0x116)]('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20$1,\x20last_run_at\x20=\x20NOW(),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updated_at\x20=\x20NOW()\x20WHERE\x20job_name\x20=\x20$2',[_0x3ae596,_0x33b4f9]);}catch(_0x1d4976){}}async['updateRegistryCounters'](_0x7f12e0,_0x5c1517,_0x4f61e4,_0x245830){const _0x1d9859=a0_0x3c965a,_0x5d5433={'oIGeT':function(_0x58e8f7,_0x2439be){return _0x58e8f7===_0x2439be;},'OWJsS':function(_0x38ab26,_0x315f48){return _0x38ab26===_0x315f48;},'ZtLAr':'mysql','XqRou':_0x1d9859(0xd4)},_0x49d243=this[_0x1d9859(0x189)]();if(!_0x49d243)return;const _0x806cd4=this['getDbType'](),_0x4bd53c=_0x5d5433['oIGeT'](_0x5c1517,_0x1d9859(0x152))?'total_success':_0x1d9859(0x7a);try{if(_0x806cd4==='oracle')await _0x49d243[_0x1d9859(0x116)]('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'+_0x4bd53c+'\x20=\x20'+_0x4bd53c+_0x1d9859(0x141),[_0x5c1517,_0x4f61e4,_0x245830,_0x7f12e0]);else _0x5d5433[_0x1d9859(0xaf)](_0x806cd4,_0x5d5433['ZtLAr'])?await _0x49d243[_0x1d9859(0x116)]('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20?,\x20last_duration_ms\x20=\x20?,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x4bd53c+_0x1d9859(0x93)+_0x4bd53c+'\x20+\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20next_run_at\x20=\x20?\x20WHERE\x20job_name\x20=\x20?',[_0x5c1517,_0x4f61e4,_0x245830,_0x7f12e0]):await _0x49d243['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'+_0x4bd53c+_0x1d9859(0x93)+_0x4bd53c+'\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',[_0x5c1517,_0x4f61e4,_0x245830,_0x7f12e0]);}catch(_0x10498b){logger[_0x1d9859(0x175)]({'event':_0x5d5433['XqRou'],'jobName':_0x7f12e0,'error':_0x10498b['message']},'Failed\x20to\x20update\x20job\x20registry\x20counters:\x20'+_0x10498b[_0x1d9859(0x177)]);}}async['getNextRunFromBullMQ'](_0x41aab6){const _0xddd0ea=a0_0x3c965a,_0x22d915={'uOcvb':function(_0x32891b,_0x4246a5){return _0x32891b!==_0x4246a5;},'Awniq':'cron'},_0x394054=this['jobConfigs'][_0x41aab6];if(!_0x394054||_0x22d915[_0xddd0ea(0xf2)](_0x394054['type'],_0x22d915[_0xddd0ea(0x8f)])||_0x394054[_0xddd0ea(0xd3)]===![])return null;const _0xa7c824=this['queues'][_0x394054[_0xddd0ea(0xe2)]||'default'];if(!_0xa7c824)return null;try{if(typeof _0xa7c824['getJobSchedulers']==='function'){const _0x15bc26=await _0xa7c824['getJobSchedulers'](0x0,0x64),_0x40f0b3=_0x15bc26['find'](_0x591958=>_0x591958['name']===_0x41aab6);return _0x40f0b3?.[_0xddd0ea(0x13a)]?new Date(_0x40f0b3[_0xddd0ea(0x13a)]):null;}}catch(_0x1d1713){}return null;}async[a0_0x3c965a(0xa9)](){const _0x4d1c19=a0_0x3c965a,_0x36e584={'tVMne':function(_0x1c7c44,_0x16cfcc){return _0x1c7c44===_0x16cfcc;},'dkbWJ':'oracle','IFWCR':_0x4d1c19(0x166),'tIvPT':'job_registry_offline_error'},_0x56453f=this['getDbUtils']();if(!_0x56453f)return;const _0x2e7a82=this['getDbType']();try{if(_0x36e584[_0x4d1c19(0x16e)](_0x2e7a82,_0x36e584['dkbWJ']))await _0x56453f[_0x4d1c19(0x116)](_0x4d1c19(0xb7));else _0x2e7a82===_0x36e584['IFWCR']?await _0x56453f['executeQuery']('UPDATE\x20job_registry\x20SET\x20status\x20=\x20\x27offline\x27,\x20next_run_at\x20=\x20NULL'):await _0x56453f['executeQuery']('UPDATE\x20job_registry\x20SET\x20status\x20=\x20\x27offline\x27,\x20next_run_at\x20=\x20NULL,\x20updated_at\x20=\x20NOW()');}catch(_0x5ae8bc){logger[_0x4d1c19(0x175)]({'event':_0x36e584['tIvPT'],'error':_0x5ae8bc[_0x4d1c19(0x177)]},_0x4d1c19(0x188)+_0x5ae8bc[_0x4d1c19(0x177)]);}}[a0_0x3c965a(0x189)](){const _0x1cd896=a0_0x3c965a,_0xbc8c57={'CDBBq':_0x1cd896(0x120),'WfptL':function(_0xf69199,_0x449b42){return _0xf69199===_0x449b42;},'OBZLz':_0x1cd896(0x166),'ubzNA':function(_0x306fdc,_0x467ddb){return _0x306fdc(_0x467ddb);},'LmuxJ':_0x1cd896(0x14e),'iJMbe':'../../utils/db','vdXsK':_0x1cd896(0xcb),'cRWCL':_0x1cd896(0x12d)},_0x5a2355=(process['env'][_0x1cd896(0xd7)]||_0xbc8c57[_0x1cd896(0x126)])['toLowerCase']();if(_0xbc8c57['WfptL'](_0x5a2355,'oracle'))try{const _0x291912=require(_0x1cd896(0x176));return{'executeQuery':(_0x4f55fa,_0x5387f2)=>_0x291912['executeQuery'](_0x4f55fa,_0x5387f2),'executeTransaction':_0x37a147=>_0x291912['executeTransaction'](_0x37a147),'getPool':()=>_0x291912['getPool']()};}catch(_0x22c724){return logger['warn']({'event':_0x1cd896(0xb8)},_0x1cd896(0x9f)),null;}if(_0x5a2355===_0xbc8c57['OBZLz'])try{const _0xca8b48=_0xbc8c57['ubzNA'](require,_0xbc8c57['LmuxJ']);return{'executeQuery':(_0x529ad8,_0x333b68)=>_0xca8b48[_0x1cd896(0x116)](_0x529ad8,_0x333b68),'executeTransaction':_0x195228=>_0xca8b48[_0x1cd896(0xb2)](_0x195228),'getPool':()=>_0xca8b48[_0x1cd896(0x100)]()};}catch(_0x33434f){return logger['warn']({'event':'db_mysql_unavailable'},_0x1cd896(0x111)),null;}try{const _0x173749=require(_0xbc8c57[_0x1cd896(0x150)]);return{'executeQuery':_0x173749[_0x1cd896(0x116)],'executeTransaction':_0x173749['executeTransaction'],'getPool':_0x173749['getPool']};}catch(_0x40debb){return logger[_0x1cd896(0x175)]({'event':_0xbc8c57['vdXsK']},_0xbc8c57['cRWCL']),null;}}['getRedisClient'](){const _0x49f713=a0_0x3c965a,_0x50eaff={'TfUci':'../../utils/redis-client'};try{const _0x19b414=require(_0x50eaff['TfUci']);return _0x19b414[_0x49f713(0x18f)]?_0x19b414['getClient']():_0x19b414;}catch(_0x5d6cfa){return null;}}[a0_0x3c965a(0xf7)](){const _0x449916=a0_0x3c965a,_0xffefcd={'xTpbC':_0x449916(0x136)};try{if(process[_0x449916(0x91)]['KAFKA_ENABLED']==='true'){const _0x27c754=require(_0xffefcd['xTpbC']);return _0x27c754[_0x449916(0xa8)]?_0x27c754[_0x449916(0xa8)]():_0x27c754;}}catch(_0x517c2e){}return null;}['getCacheManager'](){const _0x4f5ae3={'tNjJh':function(_0x1ae7e1,_0x49f234){return _0x1ae7e1(_0x49f234);}};try{return _0x4f5ae3['tNjJh'](require,'../../utils/cache-manager');}catch(_0x245dab){return null;}}async[a0_0x3c965a(0x17c)](_0x4193a7,_0x10f2c5={}){const _0x5e8be5=a0_0x3c965a,_0x22b1ae={'noQDs':_0x5e8be5(0xcd),'rUYhy':'exponential','pQmlN':'job_dispatched'},_0x489652=this['jobConfigs'][_0x4193a7];if(!_0x489652)throw new Error('Job\x20not\x20found:\x20'+_0x4193a7);const _0x4dae82=this['queues'][_0x489652['queue']||_0x22b1ae[_0x5e8be5(0x9e)]],_0x1ee98d=await _0x4dae82['add'](_0x4193a7,{..._0x10f2c5,'handler':_0x489652[_0x5e8be5(0x14c)],'triggeredBy':_0x5e8be5(0x138)},{'attempts':_0x489652[_0x5e8be5(0x184)]?.[_0x5e8be5(0x124)]||0x3,'backoff':{'type':_0x489652[_0x5e8be5(0x184)]?.[_0x5e8be5(0x11f)]||_0x22b1ae[_0x5e8be5(0x13e)],'delay':_0x489652[_0x5e8be5(0x184)]?.['initialDelay']||0x1388},'timeout':_0x489652['timeout']||0x7530});return logger['info']({'event':_0x22b1ae[_0x5e8be5(0xb1)],'jobId':_0x1ee98d['id'],'name':_0x4193a7,'triggeredBy':_0x5e8be5(0x138)},'Job\x20dispatched:\x20'+_0x4193a7+_0x5e8be5(0x9a)+_0x1ee98d['id']+')'),{'jobId':_0x1ee98d['id'],'name':_0x4193a7};}async[a0_0x3c965a(0xe4)](_0x5f2ecc,_0x255e32={},_0x55b405=0x0){const _0x386ff6=a0_0x3c965a,_0x21d8be={'TZKzs':'default','ilxHA':_0x386ff6(0x7f)},_0x5e7009=this[_0x386ff6(0xa0)][_0x5f2ecc];if(!_0x5e7009)throw new Error('Job\x20not\x20found:\x20'+_0x5f2ecc);const _0x3de9b7=this[_0x386ff6(0x153)][_0x5e7009['queue']||_0x21d8be['TZKzs']],_0x4525a2=await _0x3de9b7[_0x386ff6(0x137)](_0x5f2ecc,{..._0x255e32,'handler':_0x5e7009[_0x386ff6(0x14c)],'triggeredBy':'api-delayed'},{'delay':_0x55b405,'attempts':_0x5e7009[_0x386ff6(0x184)]?.['maxAttempts']||0x3,'backoff':{'type':_0x5e7009[_0x386ff6(0x184)]?.[_0x386ff6(0x11f)]||_0x21d8be[_0x386ff6(0x94)],'delay':_0x5e7009[_0x386ff6(0x184)]?.['initialDelay']||0x1388},'timeout':_0x5e7009['timeout']||0x7530});return logger['info']({'event':_0x386ff6(0xfc),'jobId':_0x4525a2['id'],'name':_0x5f2ecc,'delayMs':_0x55b405},_0x386ff6(0x14b)+_0x55b405+'ms):\x20'+_0x5f2ecc+'\x20(id:\x20'+_0x4525a2['id']+')'),{'jobId':_0x4525a2['id'],'name':_0x5f2ecc};}async['getJobStatus'](_0x259b8a){const _0x592b1e=a0_0x3c965a;for(const _0x8843c8 of Object['values'](this[_0x592b1e(0x153)])){const _0x286be6=await _0x8843c8['getJob'](_0x259b8a);if(_0x286be6){const _0x2c7f1d=await _0x286be6[_0x592b1e(0xc6)]();return{'jobId':_0x286be6['id'],'name':_0x286be6['name'],'state':_0x2c7f1d,'progress':_0x286be6[_0x592b1e(0x7b)],'attemptsMade':_0x286be6[_0x592b1e(0x16c)],'failedReason':_0x286be6['failedReason'],'returnvalue':_0x286be6[_0x592b1e(0x10d)],'data':_0x286be6[_0x592b1e(0xdf)],'timestamps':{'created':_0x286be6[_0x592b1e(0x11b)],'started':_0x286be6[_0x592b1e(0x9c)],'completed':_0x286be6['finishedOn']}};}}return null;}[a0_0x3c965a(0x77)](){const _0x4bb5d3=a0_0x3c965a;return Object[_0x4bb5d3(0x17e)](this['jobConfigs'])['map'](_0x5a1a23=>({'name':_0x5a1a23['name'],'description':_0x5a1a23[_0x4bb5d3(0xbe)]||'','type':_0x5a1a23[_0x4bb5d3(0x99)],'schedule':_0x5a1a23['schedule'],'handler':_0x5a1a23['handler'],'enabled':_0x5a1a23[_0x4bb5d3(0xd3)]!==![],'queue':_0x5a1a23['queue']||'default','timeout':_0x5a1a23['timeout']||0x7530,'retry':_0x5a1a23['retry']||{'maxAttempts':0x3,'backoff':_0x4bb5d3(0x7f),'initialDelay':0x1388},'metadata':_0x5a1a23[_0x4bb5d3(0x75)]||{}}));}async[a0_0x3c965a(0x117)](){const _0x20b6c2=a0_0x3c965a,_0x23bc0d=[];for(const [_0xff4f4a,_0x5aedf7]of Object['entries'](this['queues'])){const _0x16277c=await _0x5aedf7['getJobs']([_0x20b6c2(0xaa)]);for(const _0x10e8de of _0x16277c){_0x23bc0d[_0x20b6c2(0x18e)]({'jobId':_0x10e8de['id'],'name':_0x10e8de['name'],'queue':_0xff4f4a,'progress':_0x10e8de['progress'],'attemptsMade':_0x10e8de['attemptsMade'],'startedAt':_0x10e8de[_0x20b6c2(0x9c)]});}}return _0x23bc0d;}async[a0_0x3c965a(0x125)](_0x41a5ef={}){const _0x590a93=a0_0x3c965a,_0x473d85={'hVAKW':function(_0x47a513,_0x5c76f8){return _0x47a513*_0x5c76f8;},'RYLgz':function(_0x3d4ec3,_0x29d4b5){return _0x3d4ec3+_0x29d4b5;},'ZNGND':'completed'},_0x1e1f9c=parseInt(_0x41a5ef['page'],0xa)||0x1,_0x447d79=Math['min'](parseInt(_0x41a5ef['limit'],0xa)||0x14,0x64),_0x35f610=_0x473d85[_0x590a93(0x169)](_0x1e1f9c-0x1,_0x447d79),_0x489a64=_0x473d85[_0x590a93(0x164)](_0x35f610,_0x447d79)-0x1,_0x49cf8a=[];for(const [_0x45409d,_0x2b0b64]of Object['entries'](this['queues'])){const _0x1637a8=await _0x2b0b64['getJobs']([_0x473d85[_0x590a93(0x80)]],_0x35f610,_0x489a64),_0x4b2b90=await _0x2b0b64['getJobs'](['failed'],_0x35f610,_0x489a64);for(const _0x58089b of[..._0x1637a8,..._0x4b2b90]){const _0x4ec641=await _0x58089b[_0x590a93(0xc6)]();_0x49cf8a['push']({'jobId':_0x58089b['id'],'name':_0x58089b['name'],'state':_0x4ec641,'queue':_0x45409d,'attemptsMade':_0x58089b['attemptsMade'],'failedReason':_0x58089b[_0x590a93(0x18b)],'returnvalue':_0x58089b[_0x590a93(0x10d)],'timestamps':{'created':_0x58089b[_0x590a93(0x11b)],'started':_0x58089b['processedOn'],'completed':_0x58089b[_0x590a93(0x11d)]}});}}return _0x49cf8a[_0x590a93(0x109)]((_0x3e5ec6,_0x118289)=>(_0x118289['timestamps'][_0x590a93(0x18a)]||0x0)-(_0x3e5ec6['timestamps']['created']||0x0)),{'jobs':_0x49cf8a['slice'](0x0,_0x447d79),'total':_0x49cf8a['length'],'page':_0x1e1f9c,'limit':_0x447d79};}async['cancelJob'](_0x116ca1){const _0x407e00=a0_0x3c965a,_0x1f7b01={'aOIrR':function(_0x3cf185,_0x4511bf){return _0x3cf185===_0x4511bf;},'hnhmZ':'active','wfQFT':'Job\x20cancelled\x20via\x20API','GPPUt':_0x407e00(0x135),'djnIB':function(_0x3e4ac4,_0x1bcd09){return _0x3e4ac4===_0x1bcd09;},'PVjEb':'delayed'};for(const _0x29c01e of Object['values'](this[_0x407e00(0x153)])){const _0x3ae11b=await _0x29c01e[_0x407e00(0xcf)](_0x116ca1);if(_0x3ae11b){const _0x3540a6=await _0x3ae11b[_0x407e00(0xc6)]();if(_0x1f7b01['aOIrR'](_0x3540a6,_0x1f7b01['hnhmZ']))return await _0x3ae11b['moveToFailed'](new Error(_0x1f7b01[_0x407e00(0x7d)]),'api-cancel',!![]),{'success':!![],'message':_0x407e00(0x16f)+_0x116ca1+'\x20cancelled\x20(was\x20active)'};if(_0x3540a6===_0x1f7b01[_0x407e00(0x154)]||_0x1f7b01['djnIB'](_0x3540a6,_0x1f7b01[_0x407e00(0xee)]))return await _0x3ae11b[_0x407e00(0xdc)](),{'success':!![],'message':_0x407e00(0x16f)+_0x116ca1+_0x407e00(0x84)+_0x3540a6+')'};return{'success':![],'message':'Job\x20'+_0x116ca1+'\x20cannot\x20be\x20cancelled\x20(state:\x20'+_0x3540a6+')'};}}return{'success':![],'message':_0x407e00(0x16f)+_0x116ca1+'\x20not\x20found'};}async['getHealthStatus'](){const _0x96a758=a0_0x3c965a,_0x5beab6={'KTOab':'delayed','YlYta':'failed','ATnCY':'waiting'},_0x4d5e0b={};for(const [_0x186875,_0x5f369b]of Object[_0x96a758(0xa7)](this[_0x96a758(0x153)])){try{const _0x1b04c8=await _0x5f369b['getJobCounts']('active','completed',_0x5beab6[_0x96a758(0xf5)],_0x5beab6['YlYta'],'paused',_0x5beab6['ATnCY']);_0x4d5e0b[_0x186875]=_0x1b04c8;}catch(_0x2471d8){_0x4d5e0b[_0x186875]={'error':_0x2471d8['message']};}}const _0x3f0a18={};for(const [_0x271e56,_0x3c1a18]of Object['entries'](this[_0x96a758(0x10e)])){_0x3f0a18[_0x271e56]={'running':_0x3c1a18[_0x96a758(0x190)](),'paused':_0x3c1a18['isPaused']()};}return{'initialized':this['initialized'],'registeredJobs':Object['keys'](this['jobConfigs'])['length'],'redisConnections':this['connections'][_0x96a758(0xe3)],'queues':_0x4d5e0b,'workers':_0x3f0a18};}async['onJobCompleted'](_0x2f835f,_0x183f2b){const _0xd8039c=a0_0x3c965a,_0x3e62f9={'pHyAx':'after_job_complete_hook_error','RlUZi':'onAfterJobComplete\x20handler\x20error\x20(non-blocking)','ePwTY':function(_0x2dcfff,_0x3aadff){return _0x2dcfff-_0x3aadff;},'DfenQ':function(_0x5bc40a,_0x5c7587){return _0x5bc40a===_0x5c7587;},'IGkxN':'string','AZqPh':_0xd8039c(0x152),'zRGaW':function(_0x3f5a17){return _0x3f5a17();},'rAqun':'function','oxKAN':_0xd8039c(0xd8),'TVnEe':'JOB_COMPLETED','FeNpl':_0xd8039c(0x7e)},_0x3cbbe8=logger[_0xd8039c(0xc4)]({'jobId':_0x2f835f['id'],'jobName':_0x2f835f[_0xd8039c(0x123)]});_0x3cbbe8['info']({'event':_0xd8039c(0xe5),'attemptsMade':_0x2f835f['attemptsMade'],'duration':_0x2f835f[_0xd8039c(0x11d)]?_0x2f835f['finishedOn']-_0x2f835f[_0xd8039c(0x9c)]:null},'Job\x20completed:\x20'+_0x2f835f['name']);const _0x232814=this[_0xd8039c(0x95)][_0xd8039c(0x16a)](_0x2f835f['id']);if(_0x232814){if(_0x232814[_0xd8039c(0x105)])await _0x232814[_0xd8039c(0x105)];const _0x25c54d=_0x2f835f[_0xd8039c(0x11d)]&&_0x2f835f['processedOn']?_0x3e62f9[_0xd8039c(0x11c)](_0x2f835f[_0xd8039c(0x11d)],_0x2f835f[_0xd8039c(0x9c)]):null,_0x2f0dba=_0x3e62f9[_0xd8039c(0x134)](typeof _0x183f2b,_0x3e62f9['IGkxN'])?_0x183f2b:_0x183f2b?JSON['stringify'](_0x183f2b)['substring'](0x0,0x1f4):null;await this['updateJobHistoryCompleted'](_0x232814[_0xd8039c(0xb4)],_0x25c54d,_0x2f0dba);const _0x265938=await this['getNextRunFromBullMQ'](_0x2f835f[_0xd8039c(0x123)]);await this[_0xd8039c(0x78)](_0x2f835f['name'],_0x3e62f9['AZqPh'],_0x25c54d,_0x265938),this['activeHistoryIds'][_0xd8039c(0x179)](_0x2f835f['id']);}const _0x339bc7=_0x3e62f9[_0xd8039c(0xa1)](getComponentEngine);if(_0x339bc7&&typeof _0x339bc7['executeEventHandlers']===_0x3e62f9['rAqun']){const _0x41949b={'jobId':_0x2f835f['id'],'jobName':_0x2f835f[_0xd8039c(0x123)],'result':_0x183f2b,'config':this['jobConfigs'][_0x2f835f['name']]||{}};_0x339bc7[_0xd8039c(0xc3)](_0x3e62f9[_0xd8039c(0x7c)],_0x41949b,![])['catch'](_0x35ef89=>{const _0x1ae76f=_0xd8039c;_0x3cbbe8[_0x1ae76f(0x175)]({'event':_0x3e62f9['pHyAx'],'error':_0x35ef89[_0x1ae76f(0x177)]},_0x3e62f9['RlUZi']);});}const _0x5b9a4d=this[_0xd8039c(0xf7)]();if(_0x5b9a4d)try{await _0x5b9a4d[_0xd8039c(0xda)]('restforge.jobs.completed',_0x3e62f9['TVnEe'],null,{'jobId':_0x2f835f['id'],'name':_0x2f835f[_0xd8039c(0x123)],'result':_0x183f2b},{'module':_0xd8039c(0x9d),'endpoint':_0x2f835f[_0xd8039c(0x123)]});}catch(_0x5558ec){_0x3cbbe8[_0xd8039c(0x175)]({'event':_0x3e62f9[_0xd8039c(0x132)],'error':_0x5558ec['message']},_0xd8039c(0xb3));}}async[a0_0x3c965a(0x98)](_0x3bc402,_0x27d127){const _0x2a26c0=a0_0x3c965a,_0x1f78b0={'tzpCE':'after_job_failed_hook_error','bqihe':'job_failed','UFQgT':function(_0x3c2ecb,_0xdbca1b){return _0x3c2ecb<_0xdbca1b;},'lgFVt':function(_0x18fb2c,_0x57f945){return _0x18fb2c-_0x57f945;},'zyQCY':function(_0x4366cb){return _0x4366cb();},'gEdkf':function(_0x387620,_0x9b378d){return _0x387620===_0x9b378d;},'mTjzO':_0x2a26c0(0x15e),'ZVbyZ':_0x2a26c0(0x7e),'zrfDf':'Failed\x20to\x20publish\x20JOB_FAILED\x20to\x20Kafka'},_0x144084=logger[_0x2a26c0(0xc4)]({'jobId':_0x3bc402['id'],'jobName':_0x3bc402['name']});_0x144084[_0x2a26c0(0xcc)]({'event':_0x1f78b0['bqihe'],'attemptsMade':_0x3bc402['attemptsMade'],'failedReason':_0x27d127?.[_0x2a26c0(0x177)],'willRetry':_0x1f78b0[_0x2a26c0(0x145)](_0x3bc402[_0x2a26c0(0x16c)],this['jobConfigs'][_0x3bc402[_0x2a26c0(0x123)]]?.['retry']?.[_0x2a26c0(0x124)]||0x3)},_0x2a26c0(0xe8)+_0x3bc402['name']+'\x20—\x20'+_0x27d127?.[_0x2a26c0(0x177)]);const _0x182d9f=this['activeHistoryIds']['get'](_0x3bc402['id']);if(_0x182d9f){if(_0x182d9f['insertPromise'])await _0x182d9f['insertPromise'];const _0x5c26a8=_0x3bc402[_0x2a26c0(0x11d)]&&_0x3bc402[_0x2a26c0(0x9c)]?_0x1f78b0['lgFVt'](_0x3bc402[_0x2a26c0(0x11d)],_0x3bc402[_0x2a26c0(0x9c)]):null;await this[_0x2a26c0(0x15a)](_0x182d9f[_0x2a26c0(0xb4)],_0x5c26a8,_0x3bc402['progress'],_0x27d127?.[_0x2a26c0(0x177)],_0x27d127?.['stack']);const _0x4d0966=await this[_0x2a26c0(0x10f)](_0x3bc402['name']);await this['updateRegistryCounters'](_0x3bc402['name'],_0x2a26c0(0x182),_0x5c26a8,_0x4d0966),this[_0x2a26c0(0x95)]['delete'](_0x3bc402['id']);}const _0x136eda=_0x1f78b0['zyQCY'](getComponentEngine);if(_0x136eda&&_0x1f78b0[_0x2a26c0(0xbc)](typeof _0x136eda['executeEventHandlers'],_0x2a26c0(0x147))){const _0x537551={'jobId':_0x3bc402['id'],'jobName':_0x3bc402[_0x2a26c0(0x123)],'error':_0x27d127?.['message'],'attemptsMade':_0x3bc402['attemptsMade'],'config':this[_0x2a26c0(0xa0)][_0x3bc402['name']]||{}};_0x136eda['executeEventHandlers']('onAfterJobFailed',_0x537551,![])[_0x2a26c0(0x148)](_0x1dd04c=>{_0x144084['warn']({'event':_0x1f78b0['tzpCE'],'error':_0x1dd04c['message']},'onAfterJobFailed\x20handler\x20error\x20(non-blocking)');});}const _0xe2eec5=this['getKafkaService']();if(_0xe2eec5)try{await _0xe2eec5['publishEvent']('restforge.jobs.failed',_0x1f78b0[_0x2a26c0(0x102)],null,{'jobId':_0x3bc402['id'],'name':_0x3bc402[_0x2a26c0(0x123)],'error':_0x27d127?.['message'],'attemptsMade':_0x3bc402['attemptsMade']},{'module':_0x2a26c0(0x9d),'endpoint':_0x3bc402[_0x2a26c0(0x123)]});}catch(_0x218113){_0x144084['warn']({'event':_0x1f78b0['ZVbyZ'],'error':_0x218113['message']},_0x1f78b0[_0x2a26c0(0x12a)]);}}[a0_0x3c965a(0x15c)](_0x13ce14,_0x387586){const _0x234f8e=a0_0x3c965a,_0x4921ca={'jdcWT':'job_progress'};logger[_0x234f8e(0x76)]({'event':_0x4921ca[_0x234f8e(0xa6)],'jobId':_0x13ce14['id'],'jobName':_0x13ce14[_0x234f8e(0x123)],'progress':_0x387586},'Job\x20progress:\x20'+_0x13ce14['name']+'\x20—\x20'+_0x387586+'%');}}module['exports']=new JobManager();function a0_0x2127(){const _0x100feb=['ELjhyvC','uMPKs3G','zhvWBgLJyxrL','sM9IignVBMzPzYbPBNzHBgLKoIa','z1bnC2u','AMrJv1q','zw50CMLLCW','z2v0sw5ZDgfUy2u','C2v0qwXSsM9IC09MzMXPBMu','ywn0AxzL','AM9Ix3n0yxj0zwq','ndi3EfvYEfPi','ndi2oty2EM1eAwrc','Aw5JBhvKzxm','t1DkC1m','C3LZDgvT','CffTBe4','zxHLy3v0zvrYyw5Zywn0Aw9U','rMfPBgvKihrVihb1yMXPC2GGsK9cx0nptvbmrvrfrcb0BYblywzRyq','AgLZDg9YEuLK','AM9Ix3n0ywXSzwq','nJCYzKTrtK9l','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteWSihvWzgf0zwrFyxqGpsbtwvnusu1fu1rbtva','zgjFB3jHy2XLx3vUyxzHAwXHyMXL','iokaLca','zNrSANC','igPVyIbJB25MAwCOCYKGzNjVBsbWyxLSB2fKl2PVyNmV','z0vKA2y','rfPAwfa','zgvZy3jPChrPB24','B25SAw5L','y3jLyxrLqNvSBe1rq29UBMvJDgLVBG','mYbcDwXStveGv29YA2vYCYbJCMvHDgvKicHJB25JDxjYzw5JEtOG','B3jHy2XL','zxHLy3v0zuv2zw50sgfUzgXLCNm','y2HPBgq','wNzJDfO','z2v0u3rHDgu','C3rHCNrZv2L0Aa','D0jws0G','sM9IigHHBMrSzxiGy29TCgXLDgvKoIa','Aw5PDgLHBerLBgf5','zgjFCgDFDw5HDMfPBgfIBgu','zxjYB3i','zgvMyxvSDa','B25kB2jdB21WBgv0zwq','z2v0sM9I','zxjYB3jZ','ndCWnJmWte90zwLl','AgLNAa','zw5HyMXLza','AM9Ix3jLz2LZDhj5x2nVDw50zxjFzxjYB3i','swThy0O','uKfus00','rejFvfLqrq','B25bzNrLCKPVyKnVBxbSzxrL','rejFvfLqrsaN','ChvIBgLZAev2zw50','whfWsLq','CMvTB3zL','uKvesvnFse9tva','AM9Ix2nVBMzPz19WyxjZzv9LCNjVCG','zgf0yq','D3zereO','yNvSBg1Xx3jLzgLZx2vYCM9Y','CxvLDwu','BgvUz3rO','zgLZCgf0y2HezwXHEwvK','AM9Ix2nVBxbSzxrLza','ndvRug9Jvwi','AM9Ix3DVCMTLCNnFy3jLyxrLza','sM9IigzHAwXLzdOG','tNDlDgm','zxHPC3rZu3LUyW','y29UBMvJDgLVBNm','C2rUBue','AM9Ix3jLz2LZDhj5x3vWC2vYDf9LCNjVCG','ufzQrwi','DhjPBq','sM9Iig1VBML0B3jPBMCGDgfIBgvZigvUC3vYzwqGka','AM9Ix3f1zxvLC19JCMvHDgvK','Du9JDMi','CMvHzezPBgvtEw5J','rgf0ywjHC2uGDgLKywSGDgvYC2vKAweSihnRAxaGyxv0BY1JCMvHDguGAM9IihrHyMXLCW','s1rpywi','Bg93','z2v0s2fMA2ftzxj2AwnL','yNvSBg1Xx3DVCMTLCL9LCNjVCG','DxbZzxj0sM9Iu2nOzwr1BgvY','AM9Ix3jLz2LZDgvYx2zHAwXLza','z2v0rgjuExbL','AM9Ix2rPC3bHDgnOzwrFzgvSyxLLza','DgPUD2y','ywXS','su5trvjuieLove8GAM9Ix3jLz2LZDhj5cIaGicaGicaGicaGkgPVyL9Uyw1LlcbKAxnWBgf5x25HBwuSihr5CguSihnJAgvKDwXLlcbXDwv1zsWGAgfUzgXLCIWGy29UzMLNx2zPBguScIaGicaGicaGicaGihrPBwvVDxqSihjLDhj5x21HEcWGCMv0CNLFyMfJA29MzIWGC3rHDhvZlcbUzxH0x3j1BL9HDcWGy3jLyxrLzf9HDcWGDxbKyxrLzf9HDcKkicaGicaGicaGicbwquXvrvmGkcqXlcaKmIWGjdmSicq0lcaKnsWGjdySicq3lcaKocWGjdKSicqXmcWGjdeXlcaKmtiSie5pvYGPlcbot1COksKkicaGicaGicaGicbptIbdt05gteLdvcaOAM9Ix25HBwuPierpifvqrefursbtrvqkicaGicaGicaGicaGigrPC3bSyxLFBMfTzsa9ievyq0XvrevelMrPC3bSyxLFBMfTzsWGDhLWzsa9ievyq0XvrevelNr5CguScIaGicaGicaGicaGicbZy2HLzhvSzsa9ievyq0XvrevelNnJAgvKDwXLlcbXDwv1zsa9ievyq0XvrevelNf1zxvLlaOGicaGicaGicaGicaGAgfUzgXLCIa9ievyq0XvrevelMHHBMrSzxiSignVBMzPz19MAwXLid0GrvHdtfveruqUy29UzMLNx2zPBguScIaGicaGicaGicaGicb0Aw1LB3v0id0GrvHdtfveruqUDgLTzw91DcWGCMv0CNLFBwf4id0GrvHdtfveruqUCMv0CNLFBwf4laOGicaGicaGicaGicaGCMv0CNLFyMfJA29MzIa9ievyq0XvrevelNjLDhj5x2jHy2TVzMySihn0yxr1CYa9ievyq0XvrevelNn0yxr1CYWkicaGicaGicaGicaGig5LEhrFCNvUx2f0id0GrvHdtfveruqUBMv4Df9YDw5FyxqSihvWzgf0zwrFyxqGpsbot1COkq','z2v0ug9VBa','AM9PBG','BvrQEK8','z2v0uMvKAxndBgLLBNq','zgvSyxLLza','Aw5Zzxj0uhjVBwLZzq','qNvSBe1rifDVCMTLCIbLCNjVCIaO','C2nOzwr1Bgu','ChjVy2vZC0PVyG','C29YDa','D29YA2LUz0rPCG','zvzJteS','z2v0q2fJAgvnyw5Hz2vY','CMv0DxjUDMfSDwu','D29YA2vYCW','z2v0tMv4Dfj1BKzYB21cDwXStve','uKvesvnFueftu1DpuKq','txLtuuWGreiGBw9KDwXLig5VDcbHDMfPBgfIBgu','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticGKmsWGjdiSicqZlcaKncWGjduSicDYDw5UAw5NjYWGjdySicq3lcaKocWGtK9xkcKSicq5lcbot1COksK','rMfPBgvKihrVihvWzgf0zsbQB2iGAgLZDg9YEsaOzMfPBgvKktOG','BgzjrNa','y29TCg9Uzw50rw5NAw5L','zxHLy3v0zvf1zxj5','BgLZDfj1BM5PBMC','Dw5RBM93BG','DhjPz2DLCMvKqNK','x3nVDxjJzuzPBgu','DgLTzxn0yw1W','zvb3vfK','zMLUAxnOzwrpBG','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNzMfPBgvKjYWGy29TCgXLDgvKx2f0id0Gu1LtveLnrvnuqu1qlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GoJeSihbYB2DYzxnZid0GoJiSigvYCM9Yx21LC3nHz2uGpsa6mYWGzxjYB3jFC3rHy2SGpsa6ncbxsevsrsbPzca9idO1','yMfJA29MzG','Cg9ZDgDYzxnXBa','BwfW','mYbcDwXStveGuxvLDwvZignYzwf0zwqGkgHPz2GSigrLzMf1BhqSigXVDYK','BMfTzq','Bwf4qxr0zw1WDhm','z2v0sgLZDg9YEq','q0rcqNe','CgLUzW','lIbeqIbTB25PDg9YAw5NigrPC2fIBgvKlG','DMfSAwq','ENjMrgy','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa6msWGBgfZDf9YDw5FyxqGpsbtwvnusu1fu1rbtvaScIaGicaGicaGicaGDxbKyxrLzf9HDca9ifnzu1rjtuvtvefnucbxsevsrsbQB2jFBMfTzsa9idOY','Bg9JywXOB3n0','ug9ZDgDYzvnrtcbeqIbTB2r1BguGBM90igf2ywLSywjSzq','zw5ZDxjLvgfIBgvZ','AM9Ix2HPC3rVCNLFzMfPBgvKx2vYCM9Y','sw5PDgLHBgL6Aw5NiePVyIbnyw5Hz2vYlI4U','AM9Ix3rHyMXLC19LBNn1CMvK','rMvoCgW','AM9Ix2rIx3vUyxzHAwXHyMXL','rgzLBLe','D2fPDgLUzW','lI4VlI4VC2vYDMLJzxmVA2fMA2ftzxj2AwnL','ywrK','yxbP','y3jVBG','BMv4Da','q3jVBIbYzwDPC3rLCMvKoIa','mtHhDvnJEue','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNzMfPBgvKjYWGy29TCgXLDgvKx2f0id0GtK9xkcKScIaGicaGicaGicaGzhvYyxrPB25FBxmGpsa/lcbWCM9NCMvZCYa9id8SigvYCM9Yx21LC3nHz2uGpsa/lcbLCNjVCL9ZDgfJAYa9id8Gv0HfuKuGAwqGpsa/','CLvzAhK','yLbpy0m','BM93','icSGmsWkicaGicaGicaGicbUzxH0x3j1BL9HDca9idOZlcb1CgrHDgvKx2f0id0Gu1LtveLnrvnuqu1qifDirvjfigPVyL9Uyw1Lid0GoJq','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ie5pvYGPlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GjdeSihbYB2DYzxnZid0GmtaWlcbYzxn1BhrFC3vTBwfYEsa9icqYifDirvjfigLKid0Gjdm','yNvPBgrdB250zxH0','AM9Ix2vUC3vYzv90ywjSzxnFzxjYB3i','vuzrz1q','C3bSAxq','zNvUy3rPB24','y2f0y2G','uKvesvnFrei','DxrMoa','sM9IigrPC3bHDgnOzwqGkgrLBgf5zwqG','AgfUzgXLCG','mti5nJiZnwX1we5Qwa','lI4VlI4VDxrPBhmVzgiTBxLZCwW','B3jHltaWotu1','AuPnyMu','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNzMfPBgvKjYWGy29TCgXLDgvKx2f0id0GtK9xkcKScIaGicaGicaGicaGzhvYyxrPB25FBxmGpsaKmsWGChjVz3jLC3mGpsaKmIWGzxjYB3jFBwvZC2fNzsa9icqZlcbLCNjVCL9ZDgfJAYa9icq0ifDirvjfigLKid0Gjdu','C3vJy2vZCW','CxvLDwvZ','r1bqvxq','n2nrBKvLEG','mtm3nZyXBhLAz1LU','vxb6Axy','AgfUzgXLCNm','zMLSDgvY','DxbKyxrLsM9IsgLZDg9YEuzHAwXLza','EvDAsw4','B25kB2jqCM9NCMvZCW','vgLKywSGywrHigPVyIbJB25MAwCGzgL0zw11A2fUigrPihbHEwXVywqVAM9ICY8UiePVyIbnyw5Hz2vYigfRDgLMihrHBNbHignYB24U','sK9cx0zbsuXfra','tuvsr0uGsu5utYbQB2jFCMvNAxn0CNKGCGOGicaGicaGicaGifvtsu5hicHtruXfq1qGoJeGqvmGAM4GrLjptsbevufmksbZie9oicHYlMPVyL9Uyw1Lid0GCY5QBIKkicaGicaGicaGicbxsevoie1bveniruqGveHftIbvuerbveuGu0vucIaGicaGicaGicaGicbKAxnWBgf5x25HBwuGpsa6mIWGDhLWzsa9idOZlcbZy2HLzhvSzsa9idO0lcbXDwv1zsa9idO1laOGicaGicaGicaGicaGAgfUzgXLCIa9idO2lcbJB25MAwDFzMLSzsa9idO3lcb0Aw1LB3v0id0GoJGSihjLDhj5x21HEca9idO5laOGicaGicaGicaGicaGCMv0CNLFyMfJA29MzIa9idOXmcWGC3rHDhvZid0GoJeXlcbUzxH0x3j1BL9HDca9idOXmIWGDxbKyxrLzf9HDca9ifnzu1rjtuvtvefnuaOGicaGicaGicaGifDiru4GtK9uie1bveniruqGveHftIbjtLnfuLqkicaGicaGicaGicaGicHQB2jFBMfTzsWGzgLZCgXHEv9Uyw1Llcb0ExbLlcbZy2HLzhvSzsWGCxvLDwuSigHHBMrSzxiSignVBMzPz19MAwXLlaOGicaGicaGicaGicaGihrPBwvVDxqSihjLDhj5x21HEcWGCMv0CNLFyMfJA29MzIWGC3rHDhvZlcbUzxH0x3j1BL9HDcWGy3jLyxrLzf9HDcWGDxbKyxrLzf9HDcKkicaGicaGicaGicbwquXvrvmGkdOXlca6mIWGoJmSidO0lca6nsWGoJySidO3lca6ocWGoJKSidOXmcWGoJeXlca6mtiSifnzu1rjtuvtvefnucWGu1LtveLnrvnuqu1qkq','s3Pcqwu','CxvPDa','AM9Ix2HPC3rVCNLFy29TCgXLDgvFzxjYB3i','ifjLzgLZignVBM5Ly3rPB25Z','uLLmz3O','mJG3mdq4ogLjvxf3BW','BxLZCwW','sK9cx0zbsuXfrf9srvrftLrjt05Fse9vuLm','AuXOq0S','Afzbs1C','z2v0','DxbKyxrLsM9IsgLZDg9YEunVBxbSzxrLza','yxr0zw1WDhnnywrL','AM9Ix21HBMfNzxjFCMvHzhK','DfznBMu','sM9Iia','sgfUzgXLCIbUB3qGzM91BMqGzM9YigPVyJOG','rM9SzgvYihbHEwXVywqVAM9ICY8GDgLKywSGzgL0zw11A2fU','Aw5MBW','ngzgvgTABq','wNz3Ce8','D2fYBG','lI4VlI4VDxrPBhmVzgiTB3jHy2XL','BwvZC2fNzq','lIbkB2iGu2nOzwr1BgvYihrPzgfRigfRyw4GywT0AwyU','zgvSzxrL','AM9ItMfTzq','ktOG','zgLZCgf0y2G','ntq3mJu2nNLnuxDmqW','DMfSDwvZ','oMPVyG','sM9Iihn0yxj0zwq6ia','z0jmvMW','zMfPBgvK','uvrYD0K','CMv0CNK','wxreq2C','yxr0zw1WDa','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ifnzu1rjtuvtvefnucWkicaGicaGicaGicbKDxjHDgLVBL9TCYa9idOXlcbWCM9NCMvZCYa9ideWmcWGCMvZDwX0x3n1Bw1HCNKGpsa6mIbxsevsrsbPzca9idOZ','rMfPBgvKihrVihnLDcbQB2jZig9MzMXPBMu6ia','z2v0rgjvDgLSCW','y3jLyxrLza','zMfPBgvKuMvHC29U','y2XVC2u','AM9ICW','ChvZAa','z2v0q2XPzw50','AxnsDw5UAw5N','DxbZzxj0sM9IuMvNAxn0CNK','Bwv0ywrHDge','zgvIDwC','BgLZDePVyNm','DxbKyxrLuMvNAxn0CNLdB3vUDgvYCW','C3vIC3rYAw5N','Dg90ywXFzMfPBgvK','ChjVz3jLC3m','B3Hlqu4','D2zrrLq','AM9Ix2THzMTHx3b1yMXPC2HFzxjYB3i','zxHWB25LBNrPywW','wK5htKq','rerjsgS','ufPrDeS','tfrzwwC','ihjLBw92zwqGkhDHCYa','rMfPBgvKihrVigvUC3vYzsbQB2iGDgfIBgvZoIa','qMfJA2DYB3vUzcbPBNnLCNqGAM9IigHPC3rVCNKGzMfPBgvKoIa','Aw5PDgLHBgL6zwq','icHHDhrLBxb0ia','BxLZCwWUC3fS','C3jJ','q0Pmr3K','CMvHzgrPCLn5BMm','mJiYohfRvgjzAq','wNDeCey','qxDUAxe','u0vYAuC','zw52','lMPZ','id0G','AwX4see','ywn0AxzLsgLZDg9YEuLKCW','mhW3Fdv8mNWXFdz8nhWZ','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa/lcbSyxn0x3j1BL9HDca9ie5pvYGPifDirvjfigPVyL9Uyw1Lid0GpW','B25kB2jgywLSzwq','DhLWzq','icHPzdOG','Cg9ZDgDYzxnXBc5ZCwW','ChjVy2vZC2vKt24','AM9IlxnJAgvKDwXLCG','BM9rrhm','t3jHy2XLiercig1VzhvSzsbUB3qGyxzHAwXHyMXL','AM9Iq29UzMLNCW'];a0_0x2127=function(){return _0x100feb;};return a0_0x2127();}
1
+ const a0_0x29f8c7=a0_0x5a34;function a0_0x5a34(_0x5e1d5c,_0x13edbb){_0x5e1d5c=_0x5e1d5c-0x1e4;const _0x384427=a0_0x3844();let _0x5a34c4=_0x384427[_0x5e1d5c];if(a0_0x5a34['LfRmvu']===undefined){var _0x19ba38=function(_0x433632){const _0x38017a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4a7581='',_0x9c6df1='';for(let _0x4c4bfc=0x0,_0x323010,_0x49c4e3,_0x48b4b5=0x0;_0x49c4e3=_0x433632['charAt'](_0x48b4b5++);~_0x49c4e3&&(_0x323010=_0x4c4bfc%0x4?_0x323010*0x40+_0x49c4e3:_0x49c4e3,_0x4c4bfc++%0x4)?_0x4a7581+=String['fromCharCode'](0xff&_0x323010>>(-0x2*_0x4c4bfc&0x6)):0x0){_0x49c4e3=_0x38017a['indexOf'](_0x49c4e3);}for(let _0x3be503=0x0,_0x19daae=_0x4a7581['length'];_0x3be503<_0x19daae;_0x3be503++){_0x9c6df1+='%'+('00'+_0x4a7581['charCodeAt'](_0x3be503)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x9c6df1);};a0_0x5a34['XZBjCI']=_0x19ba38,a0_0x5a34['iYrFjL']={},a0_0x5a34['LfRmvu']=!![];}const _0x5c8ccc=_0x384427[0x0],_0x243d5f=_0x5e1d5c+_0x5c8ccc,_0x375769=a0_0x5a34['iYrFjL'][_0x243d5f];return!_0x375769?(_0x5a34c4=a0_0x5a34['XZBjCI'](_0x5a34c4),a0_0x5a34['iYrFjL'][_0x243d5f]=_0x5a34c4):_0x5a34c4=_0x375769,_0x5a34c4;}(function(_0x568672,_0x4a235a){const _0x4469d2=a0_0x5a34,_0xbd3a27=_0x568672();while(!![]){try{const _0x554d99=parseInt(_0x4469d2(0x26d))/0x1+parseInt(_0x4469d2(0x1f4))/0x2*(parseInt(_0x4469d2(0x22a))/0x3)+-parseInt(_0x4469d2(0x2b7))/0x4+-parseInt(_0x4469d2(0x303))/0x5+parseInt(_0x4469d2(0x28d))/0x6+-parseInt(_0x4469d2(0x2a5))/0x7*(parseInt(_0x4469d2(0x2d7))/0x8)+parseInt(_0x4469d2(0x279))/0x9*(-parseInt(_0x4469d2(0x2f7))/0xa);if(_0x554d99===_0x4a235a)break;else _0xbd3a27['push'](_0xbd3a27['shift']());}catch(_0x5c34f7){_0xbd3a27['push'](_0xbd3a27['shift']());}}}(a0_0x3844,0x6d684));const {Queue,Worker}=require('bullmq'),Redis=require(a0_0x29f8c7(0x280)),crypto=require('crypto'),{v7:uuidv7}=require(a0_0x29f8c7(0x290)),fs=require('fs'),path=require(a0_0x29f8c7(0x2e6)),{logger}=require(a0_0x29f8c7(0x20d)),jobValidator=require(a0_0x29f8c7(0x2c4));let componentEngine=null;function a0_0x3844(){const _0x337048=['whv0seq','su5HCgm','ChjVy2vZC2vKt24','AM9Ix2HPC3rVCNLFy29TCgXLDgvFzxjYB3i','C2nOzwr1Bgu','AM9Ix2nVBMzPz19PBNzHBgLK','ihjLBw92zwqGkhDHCYa','CxvLDwu','B25kB2jdB21WBgv0zwq','mZa0mZq0ChbKBwjx','AM9Ix2vUC3vYzv90ywjSzxnFD2fYBG','z1bkEgC','sM9Iie1HBMfNzxiGC3vKywGGzgLPBMLZAwfSAxnHC2KSihnRAxa','wxPzywO','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticG/lca/lca/lca/lca/lcaNCNvUBMLUzYCSid8Sid8Sid8Sie5pvYGPlca/lcbot1COksK','Aw5Zzxj0uhjVBwLZzq','yxbKz3m','C3rHy2S','z2v0q2XPzw50','wLDvqMy','C3rHBgXLza','EePMsMe','lI9QB2iTDMfSAwrHDg9Y','rMfPBgvKihrVigvUC3vYzsbQB2iGDgfIBgvZoIa','C3bSAxrtCwXtDgf0zw1LBNrZ','DhjPz2DLCMvKqNK','whvtvLG','sM9Iihn0yxj0zwq6ia','zMfPBgvKuMvHC29U','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsaKmsWGBgfZDf9YDw5FyxqGpsbot1COksWkicaGicaGicaGicb1CgrHDgvKx2f0id0GtK9xkcKGv0HfuKuGAM9Ix25HBwuGpsaKmG','DhLWzq','sNHKDxa','C2H1DgrVD24','AMvhrMO','sM9IihbYB2DYzxnZoIa','Aw5JBhvKzxm','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa/lcbSyxn0x3j1BL9HDca9ie5pvYGPifDirvjfigPVyL9Uyw1Lid0GpW','v2L2EeO','ELDyr2q','uKvesvnFue9sva','AM9Ix3jLz2LZDgvYx2zHAwXLza','odbkBKDMs2W','sK9cx0nptKnvuLjftKnz','z2v0rgjvDgLSCW','B25bzNrLCKPVyKnVBxbSzxrL','zgf0yq','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteWSihvWzgf0zwrFyxqGpsbot1COkq','AM9Ix3rHyMXLC19LBNn1CMvK','C3vJy2vZCW','CxvPDa','B3jHy2XL','Efrlv1O','CMvHzezPBgvtEw5J','zxHLy3v0zuv2zw50sgfUzgXLCNm','txLtuuWGreiGBw9KDwXLig5VDcbHDMfPBgfIBgu','ywrK','Cgf0Aa','ChvIBgLZAev2zw50','wfHIufm','zw5HyMXLza','lI4VlI4VDxrPBhmVCMvKAxmTy2XPzw50','CMvHzgrPCLn5BMm','z2v0u3rHDgu','AMvPA1G','DgLTzw91Da','AM9Ix21HBMfNzxjFCMvHzhK','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteWSihvWzgf0zwrFyxqGpsbtwvnusu1fu1rbtva','BgLTAxq','DhjPBq','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ie5pvYGPlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GpYWGChjVz3jLC3mGpsaXmdaSihjLC3vSDf9ZDw1Tyxj5id0GpYbxsevsrsbPzca9id8','ywn0AxzL','AM9Ix2THzMTHx3b1yMXPC2HFzxjYB3i','AM9Ix2HPC3rVCNLFAw5Zzxj0x2jNx2vYCM9Y','mtKWnJbnEejqwKO','AM9Ix3jLz2LZDhj5x29MzMXPBMvFzxjYB3i','AM9Ix3n0ywXSzwq','swLRAwG','z2v0','DgLTzxn0yw1WCW','zxPks1i','zw5KC1DPDgG','D2fYBG','ruTeyKO','z2v0sw5ZDgfUy2u','B25SAw5L','ntK4odu1DuHzv0z4','tKnvD3K','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticGKmsWGjdiSicqZlcaKncWGjduSicDYDw5UAw5NjYWGjdySicq3lcaKocWGtK9xkcKSicq5lcbot1COksK','Cgf1C2u','AM9Ix2vUC3vYzv90ywjSzxnFzxjYB3i','y3jVBL9YzwDPC3rLCMvK','DxrMoa','AeHjte8','AM9Ix2nVBMzPz3nFBg9HzgvK','Bg93','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa6msWGBgfZDf9YDw5FyxqGpsbtwvnusu1fu1rbtvaScIaGicaGicaGicaGDxbKyxrLzf9HDca9ifnzu1rjtuvtvefnucbxsevsrsbQB2jFBMfTzsa9idOY','Dw5RBM93BG','AM9ItMfTzq','B25kB2jgywLSzwq','Bwf4qxr0zw1WDhm','zNDUBfi','qNvSBe1rifjLzgLZignVBM5Ly3rPB24GDMvYAwzPzwq','sM9IigvUC3vYzvrHyMXLCYb3yxjUAw5NoIa','zMLSDgvY','yNvSBg1Xx3jLzgLZx2vYCM9Y','AhHOvhG','Aw5PDgLHBgL6zq','AM9Ix21HBMfNzxjFywXYzwfKEv9PBML0AwfSAxPLza','sM9IigrPC3bHDgnOzwq6ia','ig5VDcbMB3vUza','rMfPBgvKihrVihjLz2LZDgvYigPVyJOG','AM9Iq29UzMLNCW','tg9HzgvKia','yxbPlwnHBMnLBa','DxbKyxrLsM9IsgLZDg9YEuzHAwXLza','B1Dctvm','EuLtwhC','AM9ICW','Dg9mB3DLCKnHC2u','lI4VlI4VDxrPBhmVzgi','B25bzNrLCKPVyKzHAwXLzcbOyw5KBgvYigvYCM9YicHUB24TyMXVy2TPBMCP','qNvSBe1rifjLzgLZignVBM5Ly3rPB24GzxjYB3i6ia','zgvZy3jPChrPB24','whjtyuy','yNvPBgrdB250zxH0','ChjVz3jLC3m','yNvSBg1XsM9Iswq','z2v0ug9VBa','u0f5CK4','vgLKywSGywrHigPVyIbJB25MAwCGzgL0zw11A2fUigrPihbHEwXVywqVAM9ICY8UiePVyIbnyw5Hz2vYigfRDgLMihrHBNbHignYB24U','z2r1CeO','EfLIweC','sM9Iig1VBML0B3jPBMCGDgfIBgvZigvUC3vYzwqGka','AM9Ix2HPC3rVCNLFzMfPBgvKx2vYCM9Y','AgLNAa','AM9IlxnJAgvKDwXLCG','ywXYzwfKEsbLEgLZDhm','rvrbBxC','Awrtv0K','mtmYnZiWnLriruHOvW','D29YA2vYCW','z2v0q2fJAgvnyw5Hz2vY','DxbKyxrLuMvNAxn0CNLdB3vUDgvYCW','uefJChu','ANHxvw0','y3jVBG','zw52','lMPZB24','s25etKe','y2HPBgq','zxjYB3i','y29sz0C','zgjFCgDFDw5HDMfPBgfIBgu','su5trvjuieLove8GAM9Ix3jLz2LZDhj5cIaGicaGicaGicaGkgPVyL9Uyw1LlcbKAxnWBgf5x25HBwuSihr5CguSihnJAgvKDwXLlcbXDwv1zsWGAgfUzgXLCIWGy29UzMLNx2zPBguScIaGicaGicaGicaGihrPBwvVDxqSihjLDhj5x21HEcWGCMv0CNLFyMfJA29MzIWGC3rHDhvZlcbUzxH0x3j1BL9HDcWGy3jLyxrLzf9HDcWGDxbKyxrLzf9HDcKkicaGicaGicaGicbwquXvrvmGkd8Sid8Sid8Sid8Sid8Sid8Sid8Sid8Sid8Sid8Sid8Sid8Sie5pvYGPlcbot1COksKkicaGicaGicaGicbptIbevvbmsunbveuGs0vzifvqrefurqOGicaGicaGicaGicaGzgLZCgXHEv9Uyw1Lid0GvKfmvuvtkgrPC3bSyxLFBMfTzsKSihr5CguGpsbwquXvrvmODhLWzsKScIaGicaGicaGicaGicbZy2HLzhvSzsa9ifzbtfvfuYHZy2HLzhvSzsKSihf1zxvLid0GvKfmvuvtkhf1zxvLksWkicaGicaGicaGicaGigHHBMrSzxiGpsbwquXvrvmOAgfUzgXLCIKSignVBMzPz19MAwXLid0GvKfmvuvtkgnVBMzPz19MAwXLksWkicaGicaGicaGicaGihrPBwvVDxqGpsbwquXvrvmODgLTzw91DcKSihjLDhj5x21HEca9ifzbtfvfuYHYzxrYEv9TyxGPlaOGicaGicaGicaGicaGCMv0CNLFyMfJA29MzIa9ifzbtfvfuYHYzxrYEv9IywnRB2zMksWGC3rHDhvZid0GvKfmvuvtkhn0yxr1CYKScIaGicaGicaGicaGicbUzxH0x3j1BL9HDca9ifzbtfvfuYHUzxH0x3j1BL9HDcK','sK9cx0zbsuXfrf9srvrftLrjt05Fse9vuLm','zxHPC3rZu3LUyW','BwfW','Aw5MBW','uwn3t20','tejwzhG','AM9Ix3nXBf9UB3rFzM91BMq','z2v0sM9ICW','y29TCg9Uzw50rw5NAw5L','C3rHCNrZv2L0Aa','lI4VlI4VDxrPBhmVBg9Nz2vY','y2fUy2vSsM9I','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa6msWGBgfZDf9KDxjHDgLVBL9TCYa9idOYlaOGicaGicaGicaGia','lI4VlI4VDxrPBhmVzgiTBxLZCwW','AM9Ix2nVBMzPz19WyxjZzv9LCNjVCG','uurtC0y','AM9Ix21HBMfNzxjFC2H1DgrVD25FC3rHCNq','EejjCuy','DMfSAwrHDgvdB25MAwC','AxnsDw5UAw5N','zgvSyxLLza','BMP6u2m','yxbP','AMnxyLC','C2T6q00','zLHZsgO','wNj3EKq','C3vIC3rYAw5N','zxHWB25LBNrPywW','igPVyIHZksbYzwDPC3rLCMvKlca','DhjPz2DLCLr5Cgu','qKf1Cw4','z2v0rgjuExbL','r3jwq2K','C3LZDgvT','swzhsvq','rejFvfLqrsaN','AM9Ix2rPC3bHDgnOzwrFzgvSyxLLza','C2v0qwXSsM9IC09MzMXPBMu','m3bLB29eCq','rwTsELe','Bg9HzePVyKnVBMzPz3m','C0z0rwq','x3nVDxjJzuzPBgu','B2zMBgLUzq','Dxnpsgu','EhvKy0y','zMLUAxnOzwrpBG','CgfYC2u','AM9PBG','y2f0y2G','BwLU','BM93','DMfSDwvZ','B25bzNrLCKPVyKnVBxbSzxrLigHHBMrSzxiGzxjYB3iGkg5VBI1IBg9JA2LUzYK','BxLZCwWUC3fS','tujcD1i','wNfoqLe','lI4VlI4VC2vYDMLJzxmVA2fMA2ftzxj2AwnL','AM9Ix3f1zxvLC19JCMvHDgvK','CgLK','AM9Ix25Vx2nVBMzPz3m','id0G','B3jHltaWotu1','CxvLDwvZ','z2v0sM9Iu2nOzwr1BgvYCW','icHPzdOG','rM9SzgvYihbHEwXVywqVAM9ICY8GDgLKywSGzgL0zw11A2fU','rMfPBgvKihrVigLUC2vYDcbQB2iGAgLZDg9YEtOG','ywXS','sM9Iia','qvDdugi','yxr0zw1WDhnnywrL','zxHLy3v0zvf1zxj5','qMfJA2DYB3vUzcbPBNnLCNqGAM9IigHPC3rVCNKGzMfPBgvKoIa','CMv0CNK','CgfNzq','Aw5PDgLHBgL6zwq','z2v0tMv4Dfj1BKzYB21cDwXStve','B25kB2jqCM9NCMvZCW','tMfkt04','wgLVyvm','AM9Ix2HPC3rVCNLFAw5Zzxj0x2vYCM9Y','s2vqDxi','DMfSAwq','Aw5PDgLHBerLBgf5','zgLZCgf0y2G','BxLZCwW','BMv4Da','wuHyqw8','zxjYB3jZ','DxbKyxrLsM9IsgLZDg9YEunVBxbSzxrLza','AgfUzgXLCNm','uK15AfK','BgvUz3rO','t3jHy2XLiercig1VzhvSzsbUB3qGyxzHAwXHyMXL','C3bSAxq','D29YA2LUz0rPCG','ifjLzgLZignVBM5Ly3rPB25Z','BMfTzq','ALzqC3y','C3fSlxnJCMLWDhm','Cg9ZDgDYzxnXBa','sM9IigHHBMrSzxiGy29TCgXLDgvKoIa','Bw92zvrVrMfPBgvK','y29UBMvJDgLVBNm','nJa0mZb3AKrpCwK','uvzhzeG','sM9IigzHAwXLzdOG','ChvZAa','z2v0s2fMA2ftzxj2AwnL','m3W3Fdf8mhW0Fdz8nxWY','CxP3EMG','zw50CMLLCW','uKvesvnFueftu1DpuKq','Au5qwKe','AgfUzgXLCG','AM9Ix2zHAwXLza','otaWuMj3zuLQ','y3jLyxrLqNvSBe1rq29UBMvJDgLVBG','ChjVy2vZC0PVyG','sM9IignHBMnLBgXLzcb2AweGqvbj','ywn0AxzLsgLZDg9YEuLKCW','Dg90ywXFzMfPBgvK','yxbPlwrLBgf5zwq','Aw9YzwrPCW','DgLTzxn0yw1W','tNn3zgK','EKL1zwy','AM9Ix3jLz2LZDhj5x2nVDw50zxjFzxjYB3i','ExHUqMK','rMfPBgvKihrVihbHCNnLigPVyIbJB25MAwC6ia','y29TCgXLDgvK','sK9cx01bwf9tvefmtevex0npvu5u','wK1Ktwq','zgvMyxvSDa','AM9Ix3bYB2DYzxnZ','zNvUy3rPB24','mZa5odC5nMvdA3HczG','CMvNAxn0zxjkB2i','CMv0DxjUDMfSDwu','DxvPza','AM9Ix2nVBMzPz19KAxjFBwLZC2LUzW','zgvSzxrL','sM9wEuO','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNzMfPBgvKjYWGy29TCgXLDgvKx2f0id0GtK9xkcKScIaGicaGicaGicaGzhvYyxrPB25FBxmGpsaKmsWGChjVz3jLC3mGpsaKmIWGzxjYB3jFBwvZC2fNzsa9icqZlcbLCNjVCL9ZDgfJAYa9icq0ifDirvjfigLKid0Gjdu','u3zIzLu','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNzMfPBgvKjYWGy29TCgXLDgvKx2f0id0Gu1LtveLnrvnuqu1qlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GoJeSihbYB2DYzxnZid0GoJiSigvYCM9Yx21LC3nHz2uGpsa6mYWGzxjYB3jFC3rHy2SGpsa6ncbxsevsrsbPzca9idO1','mYbcDwXStveGuxvLDwvZignYzwf0zwqGkgHPz2GSigrLzMf1BhqSigXVDYK','rMfPBgvKihrVihnLDcbQB2jZig9MzMXPBMu6ia','Au9ZrLq','iokaLca','ALfbtfK','BwvZC2fNzq','yMf1ufK','u1fmihnJCMLWDcb0AwrHAYbKAxrLBxvRyw46ia','zhvWBgLJyxrL','zMfPBgvK','qNvSBe1rifDVCMTLCIbLCNjVCIaO','rMfPBgvKihrVihb1yMXPC2GGsK9cx0nptvbmrvrfrcb0BYblywzRyq','AM9Ix3jLzgLZx2zHAwXLza','AgLZDg9YEuLK','mJG0mtm3uNb6qu5w','CMvZDgzVCMDLlMPVyNmUzMfPBgvK','B25czwzVCMvkB2jfEgvJDxrL','rMfPBgvKihrVihvWC2vYDcbQB2iGCMvNAxn0CNK6ia','BxmPoIa','D2fPDgLUzW','icSGmsWkicaGicaGicaGicbUzxH0x3j1BL9HDca9idOZlcb1CgrHDgvKx2f0id0Gu1LtveLnrvnuqu1qifDirvjfigPVyL9Uyw1Lid0GoJq','AvPnsgy','Bwv0ywrHDge'];a0_0x3844=function(){return _0x337048;};return a0_0x3844();}function getComponentEngine(){const _0x3b2246=a0_0x29f8c7,_0x3edf51={'PaJKH':function(_0x52c1d0,_0x134777){return _0x52c1d0(_0x134777);},'YpfuH':'../../utils/component-engine'};if(!componentEngine)try{const _0x492b18=_0x3edf51['PaJKH'](require,_0x3edf51['YpfuH']);componentEngine=_0x492b18[_0x3b2246(0x20b)]||_0x492b18;}catch(_0x2ec7dd){}return componentEngine;}class JobManager{constructor(){const _0x1446f1=a0_0x29f8c7,_0x5860a8=_0x1446f1(0x272)[_0x1446f1(0x263)]('|');let _0x3a9e7a=0x0;while(!![]){switch(_0x5860a8[_0x3a9e7a++]){case'0':this['handlers']={};continue;case'1':this['jobConfigs']={};continue;case'2':this['activeHistoryIds']=new Map();continue;case'3':this['queues']={};continue;case'4':this[_0x1446f1(0x26c)]=[];continue;case'5':this[_0x1446f1(0x264)]=process['cwd']();continue;case'6':this['initialized']=![];continue;case'7':this['workers']={};continue;}break;}}[a0_0x29f8c7(0x27a)](){const _0x1b8ffe=a0_0x29f8c7,_0x351823={'Iikih':function(_0x407b45,_0x5a56b1,_0x1aea5d){return _0x407b45(_0x5a56b1,_0x1aea5d);},'kommV':_0x1b8ffe(0x1ff)},_0x26a2fb=new Redis({'host':process['env']['REDIS_HOST']||'localhost','port':parseInt(process['env'][_0x1b8ffe(0x2d5)],0xa)||0x18ec,'password':process[_0x1b8ffe(0x1fb)][_0x1b8ffe(0x275)]||undefined,'db':_0x351823[_0x1b8ffe(0x2fa)](parseInt,process['env']['REDIS_DB'],0xa)||0x0,'maxRetriesPerRequest':null,'retryStrategy'(_0x23fda4){const _0x187eec=_0x1b8ffe,_0x48e0d6=Math[_0x187eec(0x236)](_0x23fda4*0x32,0x7d0);return _0x48e0d6;}});return _0x26a2fb['on'](_0x351823['kommV'],_0xa025e5=>{const _0x55f432=_0x1b8ffe;logger['error']({'event':_0x55f432(0x316),'error':_0xa025e5[_0x55f432(0x29c)]},_0x55f432(0x327)+_0xa025e5[_0x55f432(0x29c)]);}),this['connections'][_0x1b8ffe(0x270)](_0x26a2fb),_0x26a2fb;}async[a0_0x29f8c7(0x318)](){const _0x3b84ff=a0_0x29f8c7,_0x49112c={'XrSaF':_0x3b84ff(0x2a3),'ZzuzR':_0x3b84ff(0x307),'UiSgi':function(_0x28cb77,_0x4d83f2){return _0x28cb77===_0x4d83f2;},'hHILO':_0x3b84ff(0x240),'vmDXw':_0x3b84ff(0x1ea),'bauPY':'default','SvbfU':function(_0x475ca1,_0x4e686d,_0x27cbaa){return _0x475ca1(_0x4e686d,_0x27cbaa);},'oWBMS':function(_0x493adb,_0x4f0710){return _0x493adb*_0x4f0710;},'LLLTr':_0x3b84ff(0x1ef),'YzYaj':_0x3b84ff(0x297),'wcCGO':function(_0x2995b5,_0x1b73d4,_0x153352){return _0x2995b5(_0x1b73d4,_0x153352);},'hxhTx':function(_0x484ab6,_0x5c24c9,_0x5ca83a){return _0x484ab6(_0x5c24c9,_0x5ca83a);},'iZMHf':_0x3b84ff(0x287),'bkuoL':'progress','QDSsF':_0x3b84ff(0x2c2),'fXsHj':'error','coRgG':_0x3b84ff(0x2d6)};if(this[_0x3b84ff(0x250)]){logger['warn']({'event':_0x3b84ff(0x319)},_0x3b84ff(0x2ba));return;}logger[_0x3b84ff(0x206)]({'event':'job_manager_init_start'},'Initializing\x20Job\x20Manager...');const _0x162b4e=this[_0x3b84ff(0x27a)]();try{await _0x162b4e['ping'](),logger[_0x3b84ff(0x206)]({'event':'job_redis_connected'},_0x3b84ff(0x313));}catch(_0x474d44){logger[_0x3b84ff(0x1ff)]({'event':_0x49112c[_0x3b84ff(0x1e4)],'error':_0x474d44['message']},'Redis\x20connection\x20failed:\x20'+_0x474d44[_0x3b84ff(0x29c)]+'.\x20Job\x20Scheduler\x20tidak\x20akan\x20aktif.');try{await _0x162b4e['quit']();}catch(_0x14306a){}this['connections']=this['connections'][_0x3b84ff(0x315)](_0x41383e=>_0x41383e!==_0x162b4e);return;}try{await _0x162b4e[_0x3b84ff(0x2df)]();}catch(_0x3e1b33){}this[_0x3b84ff(0x26c)]=this['connections']['filter'](_0x4909b5=>_0x4909b5!==_0x162b4e);try{await this['ensureTables']();}catch(_0x491eaf){logger['warn']({'event':_0x49112c['ZzuzR'],'error':_0x491eaf['message']},_0x3b84ff(0x2c5)+_0x491eaf['message']+'.\x20DB\x20monitoring\x20disabled.');}const _0x41812e=this[_0x3b84ff(0x22c)]();_0x49112c['UiSgi'](_0x41812e['length'],0x0)&&logger['info']({'event':_0x49112c[_0x3b84ff(0x30a)]},_0x49112c['vmDXw']);const _0x2a7d04=[];for(const _0x53d40d of _0x41812e){const _0x51340a=jobValidator[_0x3b84ff(0x215)](_0x53d40d,this['workingDir']);_0x51340a[_0x3b84ff(0x257)]?_0x2a7d04['push'](_0x53d40d):logger[_0x3b84ff(0x1ff)]({'event':_0x3b84ff(0x2b3),'name':_0x53d40d['name']||_0x3b84ff(0x30e),'errors':_0x51340a['errors']},'Job\x20config\x20invalid:\x20'+(_0x53d40d[_0x3b84ff(0x266)]||'unknown')+'\x20—\x20'+_0x51340a[_0x3b84ff(0x25d)][_0x3b84ff(0x234)](';\x20'));}const _0x2af53e=process[_0x3b84ff(0x1fb)]['RESTFORGE_PROJECT_NAME']||_0x49112c[_0x3b84ff(0x29d)],_0x44fcaa=process[_0x3b84ff(0x1fb)]['JOB_REDIS_PREFIX']||'rf:'+_0x2af53e+':job',_0x1ecb85=_0x49112c['SvbfU'](parseInt,process['env']['JOB_RETENTION_HOURS'],0xa)||0x48,_0x3e37e0=_0x49112c[_0x3b84ff(0x295)](parseInt,process['env'][_0x3b84ff(0x203)],0xa)||0xa8,_0x3ba013={'removeOnComplete':{'age':_0x49112c[_0x3b84ff(0x321)](_0x1ecb85,0xe10)},'removeOnFail':{'age':_0x3e37e0*0xe10}},_0x2d38cd={'high-priority':_0x49112c['LLLTr'],'default':_0x3b84ff(0x28a),'low-priority':_0x3b84ff(0x30c)};for(const [_0x50baad,_0x34ac38]of Object['entries'](_0x2d38cd)){this[_0x3b84ff(0x243)][_0x50baad]=new Queue(_0x34ac38,{'connection':this[_0x3b84ff(0x27a)](),'prefix':_0x44fcaa,'defaultJobOptions':_0x3ba013});}logger['info']({'event':_0x3b84ff(0x23e),'count':0x3},_0x49112c[_0x3b84ff(0x2bb)]);const _0x2ef479=_0x49112c['wcCGO'](parseInt,process[_0x3b84ff(0x1fb)][_0x3b84ff(0x2d8)],0xa)||0x5,_0x386ff5=parseInt(process['env']['JOB_STALLED_INTERVAL'],0xa)||0x7530,_0x3e9e80=_0x49112c[_0x3b84ff(0x317)](parseInt,process['env'][_0x3b84ff(0x288)],0xa)||0x2;for(const [_0x57a146,_0x5447e4]of Object[_0x3b84ff(0x274)](_0x2d38cd)){const _0x372839=new Worker(_0x5447e4,async _0x351f44=>this['processJob'](_0x351f44),{'connection':this[_0x3b84ff(0x27a)](),'prefix':_0x44fcaa,'concurrency':_0x2ef479,'stalledInterval':_0x386ff5,'maxStalledCount':_0x3e9e80});_0x372839['on'](_0x49112c[_0x3b84ff(0x2ac)],(_0x517d67,_0x1ac0b0)=>this['onJobCompleted'](_0x517d67,_0x1ac0b0)),_0x372839['on']('failed',(_0x5ea6da,_0x4fc099)=>this[_0x3b84ff(0x310)](_0x5ea6da,_0x4fc099)),_0x372839['on'](_0x49112c['bkuoL'],(_0x1c40d8,_0x53c9c6)=>this['onJobProgress'](_0x1c40d8,_0x53c9c6)),_0x372839['on'](_0x49112c[_0x3b84ff(0x212)],_0x334177=>{const _0x5db223=_0x3b84ff;logger['warn']({'event':_0x5db223(0x2f9),'jobId':_0x334177},'Job\x20stalled:\x20'+_0x334177);}),_0x372839['on'](_0x49112c[_0x3b84ff(0x21c)],_0x1e3933=>{const _0x47e282=_0x3b84ff;logger[_0x47e282(0x1ff)]({'event':'bullmq_worker_error','queue':_0x57a146,'error':_0x1e3933['message']},_0x47e282(0x2a1)+_0x57a146+'):\x20'+_0x1e3933['message']);}),this['workers'][_0x57a146]=_0x372839;}logger['info']({'event':'job_workers_created','count':0x3,'concurrency':_0x2ef479},'3\x20BullMQ\x20Workers\x20created\x20(concurrency:\x20'+_0x2ef479+')');let _0x4d3fd1=0x0;for(const _0x158e96 of _0x2a7d04){try{await this[_0x3b84ff(0x28e)](_0x158e96),_0x4d3fd1++;}catch(_0xab56b4){logger['error']({'event':_0x49112c[_0x3b84ff(0x200)],'name':_0x158e96[_0x3b84ff(0x266)],'error':_0xab56b4[_0x3b84ff(0x29c)]},_0x3b84ff(0x31c)+_0x158e96['name']+'\x20—\x20'+_0xab56b4[_0x3b84ff(0x29c)]);}}this['initialized']=!![];const _0x210d76=this[_0x3b84ff(0x26c)]['length'];logger[_0x3b84ff(0x206)]({'event':_0x3b84ff(0x2ef),'registeredJobs':_0x4d3fd1,'totalConfigs':_0x2a7d04['length'],'redisConnections':_0x210d76},'Job\x20Manager\x20ready:\x20'+_0x4d3fd1+_0x3b84ff(0x220)+_0x210d76+_0x3b84ff(0x265));}async[a0_0x29f8c7(0x2ce)](){const _0xa03b01=a0_0x29f8c7,_0x4baefc={'XXbPS':function(_0x102b92,_0x133a72,_0x3f865b){return _0x102b92(_0x133a72,_0x3f865b);},'iHhvV':_0xa03b01(0x213),'zWXGd':function(_0x5540be,_0x4daadc){return _0x5540be-_0x4daadc;},'KktXr':'active','QcwOm':function(_0x37acbb,_0x3b66e6){return _0x37acbb===_0x3b66e6;},'ETAmw':'job_manager_shutdown_complete','iUOOn':'Job\x20Manager\x20shutdown\x20complete'};if(!this['initialized'])return;const _0x51cec1=_0x4baefc[_0xa03b01(0x2e8)](parseInt,process[_0xa03b01(0x1fb)]['JOB_SHUTDOWN_TIMEOUT'],0xa)||0x2710;logger[_0xa03b01(0x206)]({'event':_0x4baefc['iHhvV'],'timeoutMs':_0x51cec1},'Job\x20Manager\x20shutting\x20down\x20(timeout:\x20'+_0x51cec1+'ms)...');const _0x2826cc=Object[_0xa03b01(0x238)](this[_0xa03b01(0x1f5)])[_0xa03b01(0x205)](async _0x24e121=>{const _0x16deea=_0xa03b01;try{await _0x24e121[_0x16deea(0x306)]();}catch(_0x2decc9){}});await Promise[_0xa03b01(0x248)](_0x2826cc);const _0x3ef2b2=Date['now']();while(_0x4baefc[_0xa03b01(0x2d4)](Date[_0xa03b01(0x237)](),_0x3ef2b2)<_0x51cec1){let _0x443e98=0x0;for(const _0x47d445 of Object['values'](this[_0xa03b01(0x243)])){try{const _0x22f26a=await _0x47d445['getJobCounts'](_0x4baefc['KktXr']);_0x443e98+=_0x22f26a[_0xa03b01(0x2f4)]||0x0;}catch(_0x37bd92){}}if(_0x4baefc[_0xa03b01(0x207)](_0x443e98,0x0))break;await new Promise(_0x1bc461=>setTimeout(_0x1bc461,0x1f4));}const _0x4fb94d=Object[_0xa03b01(0x238)](this['workers'])[_0xa03b01(0x205)](async _0x2ad83e=>{try{await _0x2ad83e['close']();}catch(_0x598d45){}});await Promise[_0xa03b01(0x248)](_0x4fb94d);const _0x14dad1=Object['values'](this['queues'])['map'](async _0x4b3b17=>{try{await _0x4b3b17['close']();}catch(_0x1f1819){}});await Promise[_0xa03b01(0x248)](_0x14dad1);for(const _0x235825 of this['connections']){try{await _0x235825[_0xa03b01(0x2df)]();}catch(_0x15e51d){}}this[_0xa03b01(0x243)]={},this['workers']={},this['connections']=[],await this['setAllJobsOffline'](),this[_0xa03b01(0x27d)]['clear'](),this[_0xa03b01(0x250)]=![],logger['info']({'event':_0x4baefc[_0xa03b01(0x1f2)]},_0x4baefc['iUOOn']);}['loadJobConfigs'](){const _0x3f4ad6=a0_0x29f8c7,_0x3af2de={'xudcF':'payload','jeGFj':_0x3f4ad6(0x246),'yxnBi':_0x3f4ad6(0x30b)},_0xb7015d=path[_0x3f4ad6(0x234)](this['workingDir'],_0x3af2de[_0x3f4ad6(0x231)],_0x3f4ad6(0x323));if(!fs[_0x3f4ad6(0x204)](_0xb7015d))return logger[_0x3f4ad6(0x206)]({'event':_0x3f4ad6(0x291),'path':_0xb7015d},_0x3af2de[_0x3f4ad6(0x2cf)]),[];const _0x56d183=fs[_0x3f4ad6(0x2eb)](_0xb7015d)['filter'](_0x5eba14=>_0x5eba14[_0x3f4ad6(0x2fe)](_0x3f4ad6(0x1fc))),_0x89d222=[];for(const _0x5a8b96 of _0x56d183){const _0x3fa94f=path['join'](_0xb7015d,_0x5a8b96);try{const _0x41e6f1=fs[_0x3f4ad6(0x2e2)](_0x3fa94f,_0x3f4ad6(0x309)),_0x50bc16=JSON[_0x3f4ad6(0x233)](_0x41e6f1);_0x50bc16[_0x3f4ad6(0x22e)]=_0x5a8b96,_0x89d222['push'](_0x50bc16);}catch(_0x3b8000){logger[_0x3f4ad6(0x1ff)]({'event':_0x3f4ad6(0x211),'file':_0x5a8b96,'error':_0x3b8000[_0x3f4ad6(0x29c)]},_0x3f4ad6(0x286)+_0x5a8b96+_0x3f4ad6(0x29a)+_0x3b8000['message']);}}return logger['info']({'event':_0x3af2de[_0x3f4ad6(0x285)],'count':_0x89d222[_0x3f4ad6(0x261)]},_0x3f4ad6(0x31e)+_0x89d222[_0x3f4ad6(0x261)]+'\x20job\x20config(s)\x20from\x20payload/jobs/'),_0x89d222;}async['registerJob'](_0x28d0f7){const _0x1e67d1=a0_0x29f8c7,_0x389608={'xBIqF':'src','PAcpu':_0x1e67d1(0x323),'ZWUBf':_0x1e67d1(0x1fa),'idSWI':'exponential','LBVdx':_0x1e67d1(0x308),'zIuef':_0x1e67d1(0x28a),'skzCM':'online','lyfUu':_0x1e67d1(0x22f),'kuvix':function(_0x2c2704,_0x39e10a){return _0x2c2704===_0x39e10a;}},_0x1957d6=path['join'](this[_0x1e67d1(0x264)],_0x389608[_0x1e67d1(0x214)],_0x389608[_0x1e67d1(0x1f8)],_0x28d0f7['handler']+'.js');this[_0x1e67d1(0x25f)][_0x28d0f7[_0x1e67d1(0x266)]]=require(_0x1957d6),this['jobConfigs'][_0x28d0f7['name']]=_0x28d0f7;if(_0x28d0f7[_0x1e67d1(0x2cc)]===_0x389608[_0x1e67d1(0x2c1)]&&_0x28d0f7[_0x1e67d1(0x2e9)]!==![]){const _0x3c4bb0=this[_0x1e67d1(0x243)][_0x28d0f7[_0x1e67d1(0x2b5)]||'default'];await _0x3c4bb0['upsertJobScheduler'](_0x28d0f7[_0x1e67d1(0x266)],{'pattern':_0x28d0f7['schedule'],'tz':_0x28d0f7['timezone']||undefined},{'name':_0x28d0f7['name'],'data':{'handler':_0x28d0f7[_0x1e67d1(0x277)],'triggeredBy':_0x389608['ZWUBf'],'metadata':_0x28d0f7[_0x1e67d1(0x2ad)]||{}},'opts':{'attempts':_0x28d0f7['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x28d0f7['retry']?.['backoff']||_0x389608[_0x1e67d1(0x1f3)],'delay':_0x28d0f7[_0x1e67d1(0x24e)]?.[_0x1e67d1(0x258)]||0x1388},'timeout':_0x28d0f7[_0x1e67d1(0x2ee)]||0x7530}}),logger['info']({'event':_0x389608[_0x1e67d1(0x208)],'name':_0x28d0f7['name'],'schedule':_0x28d0f7['schedule'],'queue':_0x28d0f7[_0x1e67d1(0x2b5)]||_0x389608[_0x1e67d1(0x283)]},'Cron\x20registered:\x20'+_0x28d0f7['name']+'\x20['+_0x28d0f7['schedule']+']');}const _0x2f9af3=_0x28d0f7[_0x1e67d1(0x2cc)]===_0x1e67d1(0x1fa)&&_0x28d0f7[_0x1e67d1(0x2e9)]!==![]?_0x389608['skzCM']:_0x389608['lyfUu'];let _0xc1342b=null;_0x389608['kuvix'](_0x2f9af3,_0x389608[_0x1e67d1(0x21b)])&&(_0xc1342b=await this[_0x1e67d1(0x251)](_0x28d0f7['name'])),await this['upsertJobRegistry'](_0x28d0f7,_0x2f9af3,_0xc1342b);}async[a0_0x29f8c7(0x27b)](_0x1770dd){const _0x215a5f=a0_0x29f8c7,_0x1f95f4={'Nswdi':function(_0x4f811e){return _0x4f811e();},'njzSc':_0x215a5f(0x30e),'XioaS':_0x215a5f(0x27f),'xYbXG':function(_0x31695e,_0x5cb729){return _0x31695e===_0x5cb729;},'JoVyJ':_0x215a5f(0x219),'ezJKR':'manual','MIIts':'cron','ZrwzD':_0x215a5f(0x225),'xTKWZ':_0x215a5f(0x28a),'OLaQe':function(_0x57e0f0,_0x13cede){return _0x57e0f0+_0x13cede;},'NCUwy':function(_0x16c059,_0x59c52b){return _0x16c059(_0x59c52b);}},_0x2df6e0=this['jobConfigs'][_0x1770dd[_0x215a5f(0x266)]],_0xd1a052=this['handlers'][_0x1770dd['name']];if(!_0xd1a052)throw new Error('Handler\x20not\x20found\x20for\x20job:\x20'+_0x1770dd['name']);const _0x6b53b2=logger[_0x215a5f(0x1fe)]({'jobId':_0x1770dd['id'],'jobName':_0x1770dd['name']});_0x6b53b2['info']({'event':'job_started','attempt':_0x1770dd['attemptsMade']+0x1,'triggeredBy':_0x1770dd[_0x215a5f(0x2db)]?.['triggeredBy']||'unknown'},_0x215a5f(0x2c9)+_0x1770dd['name']+'\x20(attempt\x20'+(_0x1770dd['attemptsMade']+0x1)+')');const _0x24b8df=_0x1f95f4[_0x215a5f(0x282)](uuidv7),_0x38c91d=_0x1770dd[_0x215a5f(0x2db)]?.['triggeredBy']||_0x1f95f4[_0x215a5f(0x218)],_0x4ca9d3=this['insertJobHistory']({'id':_0x24b8df,'jobName':_0x1770dd[_0x215a5f(0x266)],'bullmqJobId':_0x1770dd['id'],'triggerType':_0x38c91d===_0x1f95f4[_0x215a5f(0x254)]?_0x215a5f(0x217):_0x1f95f4[_0x215a5f(0x1ec)](_0x38c91d,_0x1f95f4[_0x215a5f(0x293)])?_0x1f95f4[_0x215a5f(0x2fd)]:'cron','triggeredBy':_0x38c91d===_0x1f95f4['MIIts']?_0x1f95f4[_0x215a5f(0x21d)]:_0x38c91d,'queue':_0x2df6e0?.['queue']||_0x1f95f4[_0x215a5f(0x2e1)],'attempt':_0x1f95f4['OLaQe'](_0x1770dd[_0x215a5f(0x24b)],0x1),'configFile':_0x2df6e0?.['_sourceFile']||null})[_0x215a5f(0x235)](_0x59d0c4=>{const _0x2ce9db=_0x215a5f;_0x6b53b2['warn']({'event':_0x2ce9db(0x2f6),'error':_0x59d0c4[_0x2ce9db(0x29c)]},_0x2ce9db(0x24d)+_0x59d0c4[_0x2ce9db(0x29c)]);});this['activeHistoryIds']['set'](_0x1770dd['id'],{'historyId':_0x24b8df,'insertPromise':_0x4ca9d3});const _0x2f1afd=this[_0x215a5f(0x1e5)](_0x1770dd,_0x2df6e0,_0x6b53b2),_0xdad134=getComponentEngine();if(_0xdad134&&_0x1f95f4['xYbXG'](typeof _0xdad134[_0x215a5f(0x2e3)],_0x215a5f(0x28c))){const _0x2a9aba=await _0xdad134['executeEventHandlers'](_0x215a5f(0x2a7),_0x2f1afd,!![]);if(!_0x2a9aba[_0x215a5f(0x2de)])throw new Error('Job\x20cancelled\x20by\x20onBeforeJobExecute:\x20'+_0x2a9aba[_0x215a5f(0x1ff)]);}const _0x46ebd3=await _0x1f95f4[_0x215a5f(0x304)](_0xd1a052,_0x2f1afd);return _0x6b53b2[_0x215a5f(0x206)]({'event':'job_handler_done','result':_0x46ebd3},_0x215a5f(0x26a)+_0x1770dd['name']),_0x46ebd3;}['buildContext'](_0x5aae6a,_0xac9a9e,_0x429736){const _0x5f5aa5=a0_0x29f8c7,_0x2fc423={'jrcfF':'JOB_EVENT','EdYyR':function(_0x3ab7ff,_0x257f93){return _0x3ab7ff+_0x257f93;},'BAuqn':function(_0x4ec58c,_0x4a0a23){return _0x4ec58c||_0x4a0a23;}};return{'jobId':_0x5aae6a['id'],'jobName':_0x5aae6a['name'],'attempt':_0x2fc423['EdYyR'](_0x5aae6a[_0x5f5aa5(0x24b)],0x1),'maxAttempts':_0xac9a9e?.['retry']?.['maxAttempts']||0x3,'payload':_0x5aae6a['data']||{},'config':_0x2fc423[_0x5f5aa5(0x222)](_0xac9a9e,{}),'db':this[_0x5f5aa5(0x2d9)](),'redis':this['getRedisClient'](),'logger':_0x429736,'kafka':this['getKafkaService'](),'cache':this['getCacheManager'](),'updateProgress':async _0x7ea0e8=>{await _0x5aae6a['updateProgress'](_0x7ea0e8);},'emit':async(_0x500411,_0x33a497)=>{const _0x1fb682=_0x5f5aa5,_0x47d7c4=this[_0x1fb682(0x271)]();_0x47d7c4&&await _0x47d7c4['publishEvent'](_0x500411,_0x2fc423['jrcfF'],null,_0x33a497,{'module':'job-scheduler','endpoint':_0x5aae6a[_0x1fb682(0x266)]});},'job':_0x5aae6a};}['getDbType'](){const _0x2e4095=a0_0x29f8c7;return(process['env']['DB_TYPE']||_0x2e4095(0x269))[_0x2e4095(0x324)]();}async['ensureTables'](){const _0x28cca2=a0_0x29f8c7,_0x56cddf={'NaJON':'Database\x20tidak\x20tersedia,\x20skip\x20auto-create\x20job\x20tables','cEeoC':'oracle.sql','jVPsv':_0x28cca2(0x23a),'gdupJ':'job_db_type_unsupported','XutHD':_0x28cca2(0x1f1),'cFqFQ':_0x28cca2(0x29f),'AWCPb':_0x28cca2(0x2dd)},_0x21ea54=this[_0x28cca2(0x2d9)]();if(!_0x21ea54){logger[_0x28cca2(0x2ff)]({'event':'job_db_unavailable'},_0x56cddf[_0x28cca2(0x253)]);return;}const _0x4ef3df=this['getDbType'](),_0x1b1afc={'postgresql':'postgresql.sql','oracle':_0x56cddf['cEeoC'],'mysql':_0x56cddf[_0x28cca2(0x267)]},_0x31a206=_0x1b1afc[_0x4ef3df];if(!_0x31a206){logger[_0x28cca2(0x2ff)]({'event':_0x56cddf[_0x28cca2(0x1eb)],'dbType':_0x4ef3df},_0x28cca2(0x227)+_0x4ef3df+'\x27\x20tidak\x20didukung\x20untuk\x20job\x20monitoring\x20tables');return;}const _0x7c9a97=path[_0x28cca2(0x234)](__dirname,_0x28cca2(0x268),_0x31a206);if(!fs[_0x28cca2(0x204)](_0x7c9a97)){logger['warn']({'event':_0x28cca2(0x209),'path':_0x7c9a97},_0x28cca2(0x29e)+_0x7c9a97);return;}const _0x4056f2=fs[_0x28cca2(0x2e2)](_0x7c9a97,'utf8'),_0x5727ed=this[_0x28cca2(0x2c6)](_0x4056f2,_0x4ef3df);let _0x3a2908=0x0;for(const _0x546463 of _0x5727ed){try{await _0x21ea54['executeQuery'](_0x546463),_0x3a2908++;}catch(_0x3df01e){const _0x6c3c1a=(_0x3df01e[_0x28cca2(0x29c)]||'')['toLowerCase'](),_0xdcda3b=_0x6c3c1a[_0x28cca2(0x2d1)](_0x56cddf[_0x28cca2(0x2ae)])||_0x6c3c1a[_0x28cca2(0x2d1)](_0x28cca2(0x242))||_0x6c3c1a[_0x28cca2(0x2d1)](_0x56cddf['cFqFQ']);!_0xdcda3b&&logger['warn']({'event':_0x28cca2(0x2b8),'error':_0x3df01e['message']},_0x28cca2(0x314)+_0x3df01e[_0x28cca2(0x29c)]);}}logger['info']({'event':_0x56cddf[_0x28cca2(0x24a)],'dbType':_0x4ef3df,'executed':_0x3a2908},_0x28cca2(0x1ed)+_0x4ef3df+')');}['splitSqlStatements'](_0x1b12ed,_0x42691e){const _0x38e740=a0_0x29f8c7,_0xb1dd5c={'jkngh':function(_0x3faf62,_0x11aa60){return _0x3faf62>_0x11aa60;},'sFtEd':function(_0x586ffc,_0x20149b){return _0x586ffc===_0x20149b;}};let _0x279df0;return _0xb1dd5c[_0x38e740(0x22d)](_0x42691e,'oracle')?_0x279df0=_0x1b12ed['split'](/\n\/\s*(?:\n|$)/):_0x279df0=_0x1b12ed[_0x38e740(0x263)](/;\s*(?:\n|$)/),_0x279df0['map'](_0x4870c0=>_0x4870c0['trim']())[_0x38e740(0x315)](_0x2d7a49=>{const _0x5eda6e=_0x38e740;if(_0x2d7a49['length']===0x0)return![];const _0x4fb627=_0x2d7a49[_0x5eda6e(0x263)]('\x0a')['filter'](_0x3db35a=>!_0x3db35a[_0x5eda6e(0x2f2)]()[_0x5eda6e(0x20c)]('--')&&_0x3db35a['trim']()['length']>0x0);return _0xb1dd5c['jkngh'](_0x4fb627['length'],0x0);});}async['upsertJobRegistry'](_0x34ec7d,_0x2e598a=a0_0x29f8c7(0x302),_0x5e18f=null){const _0x59f520=a0_0x29f8c7,_0x439494={'zyRUD':'cron','ZMdMd':_0x59f520(0x28a),'Jxdup':function(_0x486499,_0xcccc27){return _0x486499===_0xcccc27;},'fWSuW':function(_0x18ff2b,_0x5c7a7b){return _0x18ff2b===_0x5c7a7b;},'fIsqM':'job_registry_upsert_error'},_0x16c845=this[_0x59f520(0x2d9)]();if(!_0x16c845)return;const _0x1aacc8=this['getDbType'](),_0x45dce7=[_0x34ec7d['name'],_0x34ec7d[_0x59f520(0x328)]||_0x34ec7d['name'],_0x34ec7d['type']||_0x439494['zyRUD'],_0x34ec7d[_0x59f520(0x2b2)]||null,_0x34ec7d['queue']||_0x439494[_0x59f520(0x289)],_0x34ec7d['handler'],_0x34ec7d[_0x59f520(0x22e)]||'',_0x34ec7d['timeout']||0x7530,_0x34ec7d[_0x59f520(0x24e)]?.['maxAttempts']||0x3,_0x34ec7d[_0x59f520(0x24e)]?.['backoff']||'exponential',_0x2e598a,_0x5e18f];try{if(_0x439494[_0x59f520(0x2cd)](_0x1aacc8,'oracle'))await _0x16c845[_0x59f520(0x24c)]('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)',_0x45dce7);else _0x439494['fWSuW'](_0x1aacc8,'mysql')?await _0x16c845['executeQuery'](_0x59f520(0x202),_0x45dce7):await _0x16c845['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()',_0x45dce7);}catch(_0x9beb90){logger[_0x59f520(0x2ff)]({'event':_0x439494['fIsqM'],'name':_0x34ec7d[_0x59f520(0x266)],'error':_0x9beb90[_0x59f520(0x29c)]},_0x59f520(0x2a8)+_0x34ec7d[_0x59f520(0x266)]+'\x20—\x20'+_0x9beb90['message']);}}async['insertJobHistory'](_0x27ebef){const _0x5d4aa0=a0_0x29f8c7,_0x3156c5={'RMyhY':'cron','VrBEG':_0x5d4aa0(0x28a),'KePur':function(_0x570e32,_0x2a1709){return _0x570e32===_0x2a1709;},'INapc':_0x5d4aa0(0x255)},_0x2e7e36=this['getDbUtils']();if(!_0x2e7e36)return;const _0x2d2a54=this['getDbType'](),_0x158e97=[_0x27ebef['id'],_0x27ebef[_0x5d4aa0(0x30f)],_0x27ebef[_0x5d4aa0(0x1e7)]||null,_0x27ebef[_0x5d4aa0(0x221)]||_0x3156c5[_0x5d4aa0(0x260)],_0x27ebef[_0x5d4aa0(0x2c7)]||_0x5d4aa0(0x225),_0x27ebef['queue']||_0x3156c5['VrBEG'],_0x27ebef['attempt']||0x1,_0x27ebef['configFile']||null,process[_0x5d4aa0(0x23f)]];try{if(_0x3156c5['KePur'](_0x2d2a54,_0x5d4aa0(0x2e0)))await _0x2e7e36[_0x5d4aa0(0x24c)]('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)',_0x158e97);else _0x3156c5[_0x5d4aa0(0x256)](_0x2d2a54,_0x5d4aa0(0x25a))?await _0x2e7e36[_0x5d4aa0(0x24c)](_0x5d4aa0(0x2bc),_0x158e97):await _0x2e7e36['executeQuery'](_0x5d4aa0(0x305),_0x158e97);await this['updateRegistryStatus'](_0x27ebef[_0x5d4aa0(0x30f)],'running');}catch(_0x77602c){logger[_0x5d4aa0(0x2ff)]({'event':_0x3156c5[_0x5d4aa0(0x2af)],'jobName':_0x27ebef[_0x5d4aa0(0x30f)],'error':_0x77602c['message']},_0x5d4aa0(0x247)+_0x77602c['message']);}}async[a0_0x29f8c7(0x25e)](_0x443fc1,_0x4568ff,_0x5dbc83){const _0x59037f=a0_0x29f8c7,_0x56a30e={'QNQfU':function(_0x2b3dbe,_0x14cf20){return _0x2b3dbe(_0x14cf20);},'jxWUm':'oracle','MfcIX':function(_0x2f86b1,_0x86c238){return _0x2f86b1===_0x86c238;},'EKDbJ':'mysql'},_0x210ffd=this['getDbUtils']();if(!_0x210ffd)return;const _0x2079d6=this[_0x59037f(0x223)](),_0x220fc2=_0x5dbc83?_0x56a30e['QNQfU'](String,_0x5dbc83)[_0x59037f(0x21e)](0x0,0x1f4):null;try{if(_0x2079d6===_0x56a30e[_0x59037f(0x1f9)])await _0x210ffd['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',[_0x4568ff,_0x220fc2,_0x443fc1]);else _0x56a30e['MfcIX'](_0x2079d6,_0x56a30e[_0x59037f(0x300)])?await _0x210ffd['executeQuery'](_0x59037f(0x2f3),[_0x4568ff,_0x220fc2,_0x443fc1]):await _0x210ffd['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$1,\x20progress\x20=\x20100,\x20result_summary\x20=\x20$2\x20WHERE\x20id\x20=\x20$3',[_0x4568ff,_0x220fc2,_0x443fc1]);}catch(_0x4af16e){logger[_0x59037f(0x2ff)]({'event':_0x59037f(0x2b1),'historyId':_0x443fc1,'error':_0x4af16e['message']},'Failed\x20to\x20update\x20job\x20history\x20(completed):\x20'+_0x4af16e['message']);}}async['updateJobHistoryFailed'](_0x2c42b0,_0x108723,_0xc6d1e6,_0x46655d,_0x4fa2c7){const _0x4631ea=a0_0x29f8c7,_0x2d921b={'WivxJ':function(_0x52301a,_0x379d65){return _0x52301a(_0x379d65);},'fwnlR':function(_0x3cf5e5,_0x32b1cc){return _0x3cf5e5||_0x32b1cc;},'ZqNBQ':function(_0x43afe7,_0x499d27){return _0x43afe7||_0x499d27;}},_0x53d712=this['getDbUtils']();if(!_0x53d712)return;const _0x4b7e5b=this['getDbType'](),_0x10f23a=_0x46655d?String(_0x46655d)[_0x4631ea(0x21e)](0x0,0x3e8):null,_0xe7be9e=_0x4fa2c7?_0x2d921b[_0x4631ea(0x2d3)](String,_0x4fa2c7)[_0x4631ea(0x21e)](0x0,0xfa0):null;try{if(_0x4b7e5b==='oracle')await _0x53d712[_0x4631ea(0x24c)](_0x4631ea(0x296),[_0x108723,_0x2d921b[_0x4631ea(0x312)](_0xc6d1e6,0x0),_0x10f23a,_0xe7be9e,_0x2c42b0]);else _0x4b7e5b==='mysql'?await _0x53d712['executeQuery']('UPDATE\x20job_history\x20SET\x20status\x20=\x20\x27failed\x27,\x20completed_at\x20=\x20NOW(),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20duration_ms\x20=\x20?,\x20progress\x20=\x20?,\x20error_message\x20=\x20?,\x20error_stack\x20=\x20?\x20WHERE\x20id\x20=\x20?',[_0x108723,_0xc6d1e6||0x0,_0x10f23a,_0xe7be9e,_0x2c42b0]):await _0x53d712[_0x4631ea(0x24c)](_0x4631ea(0x294),[_0x108723,_0x2d921b[_0x4631ea(0x23c)](_0xc6d1e6,0x0),_0x10f23a,_0xe7be9e,_0x2c42b0]);}catch(_0x5ddb5d){logger['warn']({'event':_0x4631ea(0x1ee),'historyId':_0x2c42b0,'error':_0x5ddb5d[_0x4631ea(0x29c)]},'Failed\x20to\x20update\x20job\x20history\x20(failed):\x20'+_0x5ddb5d['message']);}}async['updateRegistryStatus'](_0x360210,_0x2a564d){const _0x2c69cb=a0_0x29f8c7,_0x48e6d8={'jQALY':function(_0x516bfe,_0x39ac8c){return _0x516bfe===_0x39ac8c;}},_0x526239=this[_0x2c69cb(0x2d9)]();if(!_0x526239)return;const _0x5c4b99=this[_0x2c69cb(0x223)]();try{if(_0x5c4b99==='oracle')await _0x526239['executeQuery'](_0x2c69cb(0x30d),[_0x2a564d,_0x360210]);else _0x48e6d8[_0x2c69cb(0x29b)](_0x5c4b99,_0x2c69cb(0x25a))?await _0x526239['executeQuery'](_0x2c69cb(0x2d2),[_0x2a564d,_0x360210]):await _0x526239[_0x2c69cb(0x24c)](_0x2c69cb(0x2cb),[_0x2a564d,_0x360210]);}catch(_0x18c4ab){}}async['updateRegistryCounters'](_0x4865f9,_0x1df513,_0x246a8c,_0x4ef4e8){const _0x51fbc8=a0_0x29f8c7,_0x1ff45c={'pjfSz':function(_0x21e602,_0x5c4c03){return _0x21e602===_0x5c4c03;},'OPawd':function(_0x4d3ab3,_0x43139e){return _0x4d3ab3===_0x43139e;},'iOsFT':_0x51fbc8(0x284)},_0x1c932f=this[_0x51fbc8(0x2d9)]();if(!_0x1c932f)return;const _0x3d0c2b=this['getDbType'](),_0x4b5ad5=_0x1ff45c['pjfSz'](_0x1df513,'success')?'total_success':_0x51fbc8(0x27e);try{if(_0x3d0c2b===_0x51fbc8(0x2e0))await _0x1c932f['executeQuery'](_0x51fbc8(0x20f)+_0x4b5ad5+'\x20=\x20'+_0x4b5ad5+_0x51fbc8(0x2ab),[_0x1df513,_0x246a8c,_0x4ef4e8,_0x4865f9]);else _0x1ff45c['OPawd'](_0x3d0c2b,'mysql')?await _0x1c932f['executeQuery']('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20?,\x20last_duration_ms\x20=\x20?,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x4b5ad5+'\x20=\x20'+_0x4b5ad5+'\x20+\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20next_run_at\x20=\x20?\x20WHERE\x20job_name\x20=\x20?',[_0x1df513,_0x246a8c,_0x4ef4e8,_0x4865f9]):await _0x1c932f[_0x51fbc8(0x24c)]('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'+_0x4b5ad5+_0x51fbc8(0x241)+_0x4b5ad5+'\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',[_0x1df513,_0x246a8c,_0x4ef4e8,_0x4865f9]);}catch(_0x55f77c){logger[_0x51fbc8(0x2ff)]({'event':_0x1ff45c[_0x51fbc8(0x299)],'jobName':_0x4865f9,'error':_0x55f77c[_0x51fbc8(0x29c)]},'Failed\x20to\x20update\x20job\x20registry\x20counters:\x20'+_0x55f77c['message']);}}async['getNextRunFromBullMQ'](_0x20084b){const _0x2ca884=a0_0x29f8c7,_0x11bc1b={'FvLId':function(_0x2c44e8,_0x1f589a){return _0x2c44e8!==_0x1f589a;},'yISXw':function(_0x2951f1,_0xdeb146){return _0x2951f1===_0xdeb146;},'rJCsw':_0x2ca884(0x28c)},_0x1fa158=this['jobConfigs'][_0x20084b];if(!_0x1fa158||_0x11bc1b['FvLId'](_0x1fa158['type'],_0x2ca884(0x1fa))||_0x1fa158['enabled']===![])return null;const _0x52b4bf=this['queues'][_0x1fa158[_0x2ca884(0x2b5)]||'default'];if(!_0x52b4bf)return null;try{if(_0x11bc1b[_0x2ca884(0x322)](typeof _0x52b4bf[_0x2ca884(0x244)],_0x11bc1b['rJCsw'])){const _0x162bed=await _0x52b4bf[_0x2ca884(0x244)](0x0,0x64),_0x4deee8=_0x162bed['find'](_0x2e3db1=>_0x2e3db1['name']===_0x20084b);return _0x4deee8?.['next']?new Date(_0x4deee8[_0x2ca884(0x25b)]):null;}}catch(_0x388a41){}return null;}async[a0_0x29f8c7(0x229)](){const _0x38918d=a0_0x29f8c7,_0x1b5ec7={'eSitR':function(_0x561a56,_0x3051cb){return _0x561a56===_0x3051cb;}},_0xc0e82a=this['getDbUtils']();if(!_0xc0e82a)return;const _0x2dad9d=this[_0x38918d(0x223)]();try{if(_0x1b5ec7['eSitR'](_0x2dad9d,'oracle'))await _0xc0e82a[_0x38918d(0x24c)](_0x38918d(0x2f0));else _0x2dad9d==='mysql'?await _0xc0e82a['executeQuery']('UPDATE\x20job_registry\x20SET\x20status\x20=\x20\x27offline\x27,\x20next_run_at\x20=\x20NULL'):await _0xc0e82a[_0x38918d(0x24c)](_0x38918d(0x2dc));}catch(_0x39c687){logger[_0x38918d(0x2ff)]({'event':_0x38918d(0x2f8),'error':_0x39c687[_0x38918d(0x29c)]},_0x38918d(0x298)+_0x39c687[_0x38918d(0x29c)]);}}[a0_0x29f8c7(0x2d9)](){const _0x2d201b=a0_0x29f8c7,_0x1e9f19={'EkRzQ':function(_0x4e95ca,_0x3e3d86){return _0x4e95ca===_0x3e3d86;},'FXONA':function(_0x486173,_0x51f427){return _0x486173(_0x51f427);},'SAyrN':'../../utils/db-oracle','jcWbW':function(_0x1b7ec3,_0x269ad5){return _0x1b7ec3===_0x269ad5;},'KnDNA':_0x2d201b(0x210),'PNQpi':'db_mysql_unavailable','jeikX':_0x2d201b(0x2e4),'XuSVX':_0x2d201b(0x325)},_0x14aaa3=(process['env']['DB_TYPE']||'postgresql')[_0x2d201b(0x324)]();if(_0x1e9f19[_0x2d201b(0x22b)](_0x14aaa3,_0x2d201b(0x2e0)))try{const _0x36b7ce=_0x1e9f19['FXONA'](require,_0x1e9f19[_0x2d201b(0x1e9)]);return{'executeQuery':(_0x3d1376,_0x1757f8)=>_0x36b7ce['executeQuery'](_0x3d1376,_0x1757f8),'executeTransaction':_0x4cae9a=>_0x36b7ce['executeTransaction'](_0x4cae9a),'getPool':()=>_0x36b7ce[_0x2d201b(0x1e8)]()};}catch(_0x64a58d){return logger['warn']({'event':'db_oracle_unavailable'},_0x2d201b(0x262)),null;}if(_0x1e9f19[_0x2d201b(0x21a)](_0x14aaa3,_0x2d201b(0x25a)))try{const _0x36e97c=require(_0x1e9f19[_0x2d201b(0x1fd)]);return{'executeQuery':(_0x26d07a,_0xbee8df)=>_0x36e97c['executeQuery'](_0x26d07a,_0xbee8df),'executeTransaction':_0x4395b3=>_0x36e97c['executeTransaction'](_0x4395b3),'getPool':()=>_0x36e97c[_0x2d201b(0x1e8)]()};}catch(_0x3ed254){return logger[_0x2d201b(0x2ff)]({'event':_0x1e9f19['PNQpi']},_0x1e9f19[_0x2d201b(0x2ed)]),null;}try{const _0x3295ef=require(_0x1e9f19[_0x2d201b(0x2c8)]);return{'executeQuery':_0x3295ef['executeQuery'],'executeTransaction':_0x3295ef['executeTransaction'],'getPool':_0x3295ef[_0x2d201b(0x1e8)]};}catch(_0x13c4d5){return logger['warn']({'event':_0x2d201b(0x201)},'PostgreSQL\x20DB\x20module\x20not\x20available'),null;}}['getRedisClient'](){const _0x417f33=a0_0x29f8c7,_0x5ed099={'yOWiT':_0x417f33(0x2ea)};try{const _0x3672e9=require(_0x5ed099['yOWiT']);return _0x3672e9[_0x417f33(0x2c0)]?_0x3672e9['getClient']():_0x3672e9;}catch(_0x5c6c83){return null;}}[a0_0x29f8c7(0x271)](){const _0xb13629=a0_0x29f8c7,_0x3526d4={'ezqhR':'true','UBLkh':function(_0x7d1f1c,_0xd42da9){return _0x7d1f1c(_0xd42da9);},'IfGIT':_0xb13629(0x23d)};try{if(process['env']['KAFKA_ENABLED']===_0x3526d4['ezqhR']){const _0x4b8d08=_0x3526d4['UBLkh'](require,_0x3526d4[_0xb13629(0x226)]);return _0x4b8d08[_0xb13629(0x301)]?_0x4b8d08['getInstance']():_0x4b8d08;}}catch(_0x184228){}return null;}[a0_0x29f8c7(0x1f6)](){const _0x492024={'RPVcu':function(_0xd4e1b,_0x2eecf9){return _0xd4e1b(_0x2eecf9);}};try{return _0x492024['RPVcu'](require,'../../utils/cache-manager');}catch(_0x1b1ceb){return null;}}async[a0_0x29f8c7(0x259)](_0x3a637b,_0x3adec8={}){const _0x2e6f8f=a0_0x29f8c7,_0x10dffa={'iNPZA':_0x2e6f8f(0x21f),'yQdHV':_0x2e6f8f(0x219)},_0x1c4bf6=this['jobConfigs'][_0x3a637b];if(!_0x1c4bf6)throw new Error('Job\x20not\x20found:\x20'+_0x3a637b);const _0x3b486b=this[_0x2e6f8f(0x243)][_0x1c4bf6[_0x2e6f8f(0x2b5)]||_0x2e6f8f(0x28a)],_0xf5fc20=await _0x3b486b['add'](_0x3a637b,{..._0x3adec8,'handler':_0x1c4bf6['handler'],'triggeredBy':'api'},{'attempts':_0x1c4bf6[_0x2e6f8f(0x24e)]?.['maxAttempts']||0x3,'backoff':{'type':_0x1c4bf6[_0x2e6f8f(0x24e)]?.['backoff']||_0x10dffa[_0x2e6f8f(0x276)],'delay':_0x1c4bf6['retry']?.['initialDelay']||0x1388},'timeout':_0x1c4bf6[_0x2e6f8f(0x2ee)]||0x7530});return logger[_0x2e6f8f(0x206)]({'event':'job_dispatched','jobId':_0xf5fc20['id'],'name':_0x3a637b,'triggeredBy':_0x10dffa['yQdHV']},_0x2e6f8f(0x31a)+_0x3a637b+'\x20(id:\x20'+_0xf5fc20['id']+')'),{'jobId':_0xf5fc20['id'],'name':_0x3a637b};}async['dispatchDelayed'](_0xf3b82d,_0xbcf958={},_0xd7c493=0x0){const _0x3bf2ac=a0_0x29f8c7,_0x2db8bc={'qzwzh':_0x3bf2ac(0x228)},_0x2716d8=this['jobConfigs'][_0xf3b82d];if(!_0x2716d8)throw new Error('Job\x20not\x20found:\x20'+_0xf3b82d);const _0xe21ea9=this['queues'][_0x2716d8[_0x3bf2ac(0x2b5)]||'default'],_0x428f3f=await _0xe21ea9[_0x3bf2ac(0x2e5)](_0xf3b82d,{..._0xbcf958,'handler':_0x2716d8['handler'],'triggeredBy':'api-delayed'},{'delay':_0xd7c493,'attempts':_0x2716d8['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x2716d8[_0x3bf2ac(0x24e)]?.['backoff']||_0x3bf2ac(0x21f),'delay':_0x2716d8[_0x3bf2ac(0x24e)]?.['initialDelay']||0x1388},'timeout':_0x2716d8[_0x3bf2ac(0x2ee)]||0x7530});return logger[_0x3bf2ac(0x206)]({'event':_0x2db8bc[_0x3bf2ac(0x273)],'jobId':_0x428f3f['id'],'name':_0xf3b82d,'delayMs':_0xd7c493},'Job\x20dispatched\x20(delayed\x20'+_0xd7c493+_0x3bf2ac(0x2a9)+_0xf3b82d+_0x3bf2ac(0x245)+_0x428f3f['id']+')'),{'jobId':_0x428f3f['id'],'name':_0xf3b82d};}async['getJobStatus'](_0x4bca16){const _0x10e61f=a0_0x29f8c7;for(const _0x19d567 of Object[_0x10e61f(0x238)](this[_0x10e61f(0x243)])){const _0x321483=await _0x19d567['getJob'](_0x4bca16);if(_0x321483){const _0x167d6a=await _0x321483[_0x10e61f(0x2ec)]();return{'jobId':_0x321483['id'],'name':_0x321483[_0x10e61f(0x266)],'state':_0x167d6a,'progress':_0x321483[_0x10e61f(0x1e6)],'attemptsMade':_0x321483['attemptsMade'],'failedReason':_0x321483[_0x10e61f(0x2ca)],'returnvalue':_0x321483[_0x10e61f(0x28f)],'data':_0x321483[_0x10e61f(0x2db)],'timestamps':{'created':_0x321483[_0x10e61f(0x281)],'started':_0x321483['processedOn'],'completed':_0x321483[_0x10e61f(0x232)]}};}}return null;}['listJobs'](){const _0x267a73=a0_0x29f8c7;return Object[_0x267a73(0x238)](this['jobConfigs'])['map'](_0x581239=>({'name':_0x581239['name'],'description':_0x581239[_0x267a73(0x328)]||'','type':_0x581239[_0x267a73(0x2cc)],'schedule':_0x581239['schedule'],'handler':_0x581239['handler'],'enabled':_0x581239['enabled']!==![],'queue':_0x581239[_0x267a73(0x2b5)]||'default','timeout':_0x581239['timeout']||0x7530,'retry':_0x581239['retry']||{'maxAttempts':0x3,'backoff':'exponential','initialDelay':0x1388},'metadata':_0x581239[_0x267a73(0x2ad)]||{}}));}async['listRunning'](){const _0x37dc1a=a0_0x29f8c7,_0x1fb3eb=[];for(const [_0x402019,_0x7a8eda]of Object[_0x37dc1a(0x274)](this['queues'])){const _0x104f1d=await _0x7a8eda['getJobs']([_0x37dc1a(0x2f4)]);for(const _0x367887 of _0x104f1d){_0x1fb3eb['push']({'jobId':_0x367887['id'],'name':_0x367887[_0x37dc1a(0x266)],'queue':_0x402019,'progress':_0x367887[_0x37dc1a(0x1e6)],'attemptsMade':_0x367887['attemptsMade'],'startedAt':_0x367887['processedOn']});}}return _0x1fb3eb;}async['getHistory'](_0x1c72c5={}){const _0x3aab8f=a0_0x29f8c7,_0x45c33a={'drUGc':function(_0x1d5cd5,_0x506b0d,_0x1f74bf){return _0x1d5cd5(_0x506b0d,_0x1f74bf);},'INECf':_0x3aab8f(0x287),'gPJxg':_0x3aab8f(0x2a0)},_0x2d5a08=_0x45c33a['drUGc'](parseInt,_0x1c72c5[_0x3aab8f(0x24f)],0xa)||0x1,_0x261c8e=Math[_0x3aab8f(0x236)](parseInt(_0x1c72c5[_0x3aab8f(0x2f1)],0xa)||0x14,0x64),_0x5516b6=(_0x2d5a08-0x1)*_0x261c8e,_0x30d5dc=_0x5516b6+_0x261c8e-0x1,_0x4c377e=[];for(const [_0x149ff6,_0x1f1536]of Object['entries'](this['queues'])){const _0x4151aa=await _0x1f1536[_0x3aab8f(0x20a)]([_0x45c33a['INECf']],_0x5516b6,_0x30d5dc),_0x244fb5=await _0x1f1536['getJobs']([_0x45c33a[_0x3aab8f(0x2b9)]],_0x5516b6,_0x30d5dc);for(const _0x4519e3 of[..._0x4151aa,..._0x244fb5]){const _0x35a07f=await _0x4519e3['getState']();_0x4c377e['push']({'jobId':_0x4519e3['id'],'name':_0x4519e3[_0x3aab8f(0x266)],'state':_0x35a07f,'queue':_0x149ff6,'attemptsMade':_0x4519e3[_0x3aab8f(0x24b)],'failedReason':_0x4519e3['failedReason'],'returnvalue':_0x4519e3['returnvalue'],'timestamps':{'created':_0x4519e3[_0x3aab8f(0x281)],'started':_0x4519e3['processedOn'],'completed':_0x4519e3['finishedOn']}});}}return _0x4c377e['sort']((_0x197824,_0x3f2bb2)=>(_0x3f2bb2[_0x3aab8f(0x2fc)]['created']||0x0)-(_0x197824[_0x3aab8f(0x2fc)]['created']||0x0)),{'jobs':_0x4c377e['slice'](0x0,_0x261c8e),'total':_0x4c377e['length'],'page':_0x2d5a08,'limit':_0x261c8e};}async[a0_0x29f8c7(0x20e)](_0x12dd3f){const _0x223745=a0_0x29f8c7,_0x1382f6={'zKITv':function(_0x3b9fd8,_0x11a9cd){return _0x3b9fd8===_0x11a9cd;},'ldivL':_0x223745(0x27c),'SQgVf':_0x223745(0x31f)};for(const _0x98ba47 of Object[_0x223745(0x238)](this['queues'])){const _0x458834=await _0x98ba47['getJob'](_0x12dd3f);if(_0x458834){const _0x820c47=await _0x458834[_0x223745(0x2ec)]();if(_0x1382f6['zKITv'](_0x820c47,'active'))return await _0x458834[_0x223745(0x26b)](new Error(_0x1382f6['ldivL']),_0x1382f6['SQgVf'],!![]),{'success':!![],'message':_0x223745(0x249)+_0x12dd3f+'\x20cancelled\x20(was\x20active)'};if(_0x820c47==='waiting'||_0x820c47===_0x223745(0x217))return await _0x458834['remove'](),{'success':!![],'message':_0x223745(0x249)+_0x12dd3f+_0x223745(0x2b4)+_0x820c47+')'};return{'success':![],'message':'Job\x20'+_0x12dd3f+'\x20cannot\x20be\x20cancelled\x20(state:\x20'+_0x820c47+')'};}}return{'success':![],'message':_0x223745(0x249)+_0x12dd3f+_0x223745(0x31b)};}async['getHealthStatus'](){const _0x46c5df=a0_0x29f8c7,_0x5b0b68={'usOHe':_0x46c5df(0x2f4),'QVGdH':_0x46c5df(0x217),'OAcIC':'paused','zhcfg':_0x46c5df(0x2aa)},_0x3e078f={};for(const [_0x16f7f1,_0x3ac498]of Object['entries'](this[_0x46c5df(0x243)])){try{const _0x449e60=await _0x3ac498['getJobCounts'](_0x5b0b68[_0x46c5df(0x230)],_0x46c5df(0x287),_0x5b0b68[_0x46c5df(0x26e)],'failed',_0x5b0b68['OAcIC'],_0x5b0b68['zhcfg']);_0x3e078f[_0x16f7f1]=_0x449e60;}catch(_0x768024){_0x3e078f[_0x16f7f1]={'error':_0x768024[_0x46c5df(0x29c)]};}}const _0x1c33a9={};for(const [_0x2cb94d,_0x2c08c5]of Object['entries'](this[_0x46c5df(0x1f5)])){_0x1c33a9[_0x2cb94d]={'running':_0x2c08c5[_0x46c5df(0x216)](),'paused':_0x2c08c5['isPaused']()};}return{'initialized':this[_0x46c5df(0x250)],'registeredJobs':Object['keys'](this['jobConfigs'])['length'],'redisConnections':this['connections']['length'],'queues':_0x3e078f,'workers':_0x1c33a9};}async[a0_0x29f8c7(0x2b6)](_0x181cc8,_0x67a4d9){const _0x550a8f=a0_0x29f8c7,_0x793cd0={'apdgs':'after_job_complete_hook_error','XNGsP':_0x550a8f(0x239),'Peaoz':'job_completed','MBBwR':function(_0x459f4f,_0x18a043){return _0x459f4f-_0x18a043;},'iyTBX':function(_0x4093b8,_0x362ab2){return _0x4093b8===_0x362ab2;},'xJfJa':'string','GrVCi':_0x550a8f(0x2de),'xQMIU':function(_0x4a5c51){return _0x4a5c51();},'NzLzI':_0x550a8f(0x28c),'IhkCc':'JOB_COMPLETED','YHXAo':_0x550a8f(0x2f5)},_0x3f887c=logger['child']({'jobId':_0x181cc8['id'],'jobName':_0x181cc8[_0x550a8f(0x266)]});_0x3f887c['info']({'event':_0x793cd0['Peaoz'],'attemptsMade':_0x181cc8['attemptsMade'],'duration':_0x181cc8[_0x550a8f(0x232)]?_0x793cd0[_0x550a8f(0x23b)](_0x181cc8[_0x550a8f(0x232)],_0x181cc8[_0x550a8f(0x2b0)]):null},'Job\x20completed:\x20'+_0x181cc8['name']);const _0x31807c=this[_0x550a8f(0x27d)][_0x550a8f(0x2fb)](_0x181cc8['id']);if(_0x31807c){if(_0x31807c['insertPromise'])await _0x31807c[_0x550a8f(0x2bd)];const _0x333d22=_0x181cc8['finishedOn']&&_0x181cc8['processedOn']?_0x181cc8['finishedOn']-_0x181cc8['processedOn']:null,_0x4a7b7b=_0x793cd0['iyTBX'](typeof _0x67a4d9,_0x793cd0[_0x550a8f(0x2c3)])?_0x67a4d9:_0x67a4d9?JSON['stringify'](_0x67a4d9)[_0x550a8f(0x21e)](0x0,0x1f4):null;await this['updateJobHistoryCompleted'](_0x31807c[_0x550a8f(0x2a4)],_0x333d22,_0x4a7b7b);const _0x1228ab=await this[_0x550a8f(0x251)](_0x181cc8[_0x550a8f(0x266)]);await this[_0x550a8f(0x1f7)](_0x181cc8[_0x550a8f(0x266)],_0x793cd0[_0x550a8f(0x224)],_0x333d22,_0x1228ab),this[_0x550a8f(0x27d)][_0x550a8f(0x292)](_0x181cc8['id']);}const _0x6b998e=_0x793cd0['xQMIU'](getComponentEngine);if(_0x6b998e&&typeof _0x6b998e['executeEventHandlers']===_0x793cd0['NzLzI']){const _0x5464f1={'jobId':_0x181cc8['id'],'jobName':_0x181cc8['name'],'result':_0x67a4d9,'config':this['jobConfigs'][_0x181cc8[_0x550a8f(0x266)]]||{}};_0x6b998e['executeEventHandlers'](_0x550a8f(0x2da),_0x5464f1,![])['catch'](_0x3ff22d=>{const _0x3100df=_0x550a8f;_0x3f887c['warn']({'event':_0x793cd0[_0x3100df(0x2be)],'error':_0x3ff22d[_0x3100df(0x29c)]},_0x793cd0['XNGsP']);});}const _0x236975=this['getKafkaService']();if(_0x236975)try{await _0x236975[_0x550a8f(0x2e7)]('restforge.jobs.completed',_0x793cd0['IhkCc'],null,{'jobId':_0x181cc8['id'],'name':_0x181cc8[_0x550a8f(0x266)],'result':_0x67a4d9},{'module':_0x550a8f(0x1f0),'endpoint':_0x181cc8[_0x550a8f(0x266)]});}catch(_0x5cc213){_0x3f887c['warn']({'event':_0x793cd0[_0x550a8f(0x25c)],'error':_0x5cc213[_0x550a8f(0x29c)]},_0x550a8f(0x2a2));}}async['onJobFailed'](_0x3875f6,_0x585fac){const _0x3efd64=a0_0x29f8c7,_0x478eab={'EWZzb':_0x3efd64(0x28c),'rGlnp':'onAfterJobFailed','VlPwb':'JOB_FAILED','IuPMB':_0x3efd64(0x2f5),'rsvKH':'Failed\x20to\x20publish\x20JOB_FAILED\x20to\x20Kafka'},_0x54fd3d=logger[_0x3efd64(0x1fe)]({'jobId':_0x3875f6['id'],'jobName':_0x3875f6['name']});_0x54fd3d[_0x3efd64(0x1ff)]({'event':_0x3efd64(0x278),'attemptsMade':_0x3875f6[_0x3efd64(0x24b)],'failedReason':_0x585fac?.['message'],'willRetry':_0x3875f6[_0x3efd64(0x24b)]<(this[_0x3efd64(0x31d)][_0x3875f6[_0x3efd64(0x266)]]?.['retry']?.[_0x3efd64(0x311)]||0x3)},_0x3efd64(0x26f)+_0x3875f6[_0x3efd64(0x266)]+_0x3efd64(0x29a)+_0x585fac?.['message']);const _0x26241a=this['activeHistoryIds']['get'](_0x3875f6['id']);if(_0x26241a){if(_0x26241a[_0x3efd64(0x2bd)])await _0x26241a[_0x3efd64(0x2bd)];const _0x48b541=_0x3875f6['finishedOn']&&_0x3875f6['processedOn']?_0x3875f6['finishedOn']-_0x3875f6[_0x3efd64(0x2b0)]:null;await this[_0x3efd64(0x320)](_0x26241a[_0x3efd64(0x2a4)],_0x48b541,_0x3875f6[_0x3efd64(0x1e6)],_0x585fac?.['message'],_0x585fac?.[_0x3efd64(0x2bf)]);const _0x575c21=await this['getNextRunFromBullMQ'](_0x3875f6['name']);await this[_0x3efd64(0x1f7)](_0x3875f6[_0x3efd64(0x266)],_0x3efd64(0x2a0),_0x48b541,_0x575c21),this[_0x3efd64(0x27d)][_0x3efd64(0x292)](_0x3875f6['id']);}const _0x497d28=getComponentEngine();if(_0x497d28&&typeof _0x497d28['executeEventHandlers']===_0x478eab['EWZzb']){const _0x1c648c={'jobId':_0x3875f6['id'],'jobName':_0x3875f6['name'],'error':_0x585fac?.[_0x3efd64(0x29c)],'attemptsMade':_0x3875f6['attemptsMade'],'config':this[_0x3efd64(0x31d)][_0x3875f6['name']]||{}};_0x497d28['executeEventHandlers'](_0x478eab['rGlnp'],_0x1c648c,![])['catch'](_0x534d90=>{const _0x1516a9=_0x3efd64;_0x54fd3d['warn']({'event':'after_job_failed_hook_error','error':_0x534d90[_0x1516a9(0x29c)]},_0x1516a9(0x326));});}const _0x25104a=this[_0x3efd64(0x271)]();if(_0x25104a)try{await _0x25104a['publishEvent'](_0x3efd64(0x2a6),_0x478eab['VlPwb'],null,{'jobId':_0x3875f6['id'],'name':_0x3875f6['name'],'error':_0x585fac?.[_0x3efd64(0x29c)],'attemptsMade':_0x3875f6[_0x3efd64(0x24b)]},{'module':_0x3efd64(0x1f0),'endpoint':_0x3875f6[_0x3efd64(0x266)]});}catch(_0x20440f){_0x54fd3d['warn']({'event':_0x478eab['IuPMB'],'error':_0x20440f[_0x3efd64(0x29c)]},_0x478eab['rsvKH']);}}[a0_0x29f8c7(0x252)](_0x5062ad,_0x2b8b90){const _0x3fbdb1=a0_0x29f8c7,_0x5385ed={'OsqyT':_0x3fbdb1(0x28b)};logger['debug']({'event':_0x5385ed['OsqyT'],'jobId':_0x5062ad['id'],'jobName':_0x5062ad['name'],'progress':_0x2b8b90},_0x3fbdb1(0x2d0)+_0x5062ad[_0x3fbdb1(0x266)]+'\x20—\x20'+_0x2b8b90+'%');}}module['exports']=new JobManager();
@@ -1 +1 @@
1
- const a0_0x3edfe3=a0_0x5935;(function(_0x2b455c,_0x4c9d1e){const _0x207924=a0_0x5935,_0x932e7c=_0x2b455c();while(!![]){try{const _0x803fda=-parseInt(_0x207924(0x19a))/0x1+parseInt(_0x207924(0x197))/0x2*(-parseInt(_0x207924(0x172))/0x3)+-parseInt(_0x207924(0x177))/0x4*(-parseInt(_0x207924(0x1ca))/0x5)+parseInt(_0x207924(0x187))/0x6*(-parseInt(_0x207924(0x1a6))/0x7)+-parseInt(_0x207924(0x1ce))/0x8+-parseInt(_0x207924(0x1c2))/0x9*(parseInt(_0x207924(0x19d))/0xa)+parseInt(_0x207924(0x19f))/0xb;if(_0x803fda===_0x4c9d1e)break;else _0x932e7c['push'](_0x932e7c['shift']());}catch(_0x36a56d){_0x932e7c['push'](_0x932e7c['shift']());}}}(a0_0x21c4,0xd1de1));const express=require('express'),{Queue}=require('bullmq'),Redis=require(a0_0x3edfe3(0x1a2)),{logger}=require('../../utils/logger');let readConnection=null,readQueues=null,cachedJobConfigs=null;const QUEUE_NAMES={'high-priority':a0_0x3edfe3(0x1ba),'default':a0_0x3edfe3(0x16c),'low-priority':'low'};function a0_0x5935(_0x422dbd,_0xb656ba){_0x422dbd=_0x422dbd-0x165;const _0x21c48d=a0_0x21c4();let _0x593547=_0x21c48d[_0x422dbd];if(a0_0x5935['puKKIw']===undefined){var _0x502d62=function(_0x57a1a8){const _0x54e695='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xab33b2='',_0x39d367='';for(let _0x3cab5e=0x0,_0xde5d90,_0x2914af,_0x2181b2=0x0;_0x2914af=_0x57a1a8['charAt'](_0x2181b2++);~_0x2914af&&(_0xde5d90=_0x3cab5e%0x4?_0xde5d90*0x40+_0x2914af:_0x2914af,_0x3cab5e++%0x4)?_0xab33b2+=String['fromCharCode'](0xff&_0xde5d90>>(-0x2*_0x3cab5e&0x6)):0x0){_0x2914af=_0x54e695['indexOf'](_0x2914af);}for(let _0x37fa50=0x0,_0x29643f=_0xab33b2['length'];_0x37fa50<_0x29643f;_0x37fa50++){_0x39d367+='%'+('00'+_0xab33b2['charCodeAt'](_0x37fa50)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x39d367);};a0_0x5935['BpIeoR']=_0x502d62,a0_0x5935['ZYwdZb']={},a0_0x5935['puKKIw']=!![];}const _0x502b9f=_0x21c48d[0x0],_0x122cb0=_0x422dbd+_0x502b9f,_0x4d7959=a0_0x5935['ZYwdZb'][_0x122cb0];return!_0x4d7959?(_0x593547=a0_0x5935['BpIeoR'](_0x593547),a0_0x5935['ZYwdZb'][_0x122cb0]=_0x593547):_0x593547=_0x4d7959,_0x593547;}function getReadQueues(){const _0x26a9cd=a0_0x3edfe3,_0x7ea91f={'sBvaG':function(_0x538fd8,_0x5db69c,_0x4053b1){return _0x538fd8(_0x5db69c,_0x4053b1);},'Mmyuk':function(_0x95bc9,_0x29a9a1,_0xd89ca7){return _0x95bc9(_0x29a9a1,_0xd89ca7);}};if(readQueues)return readQueues;const _0x15b9a6=process[_0x26a9cd(0x171)]['JOB_REDIS_PREFIX']||'rf:job';readConnection=new Redis({'host':process['env'][_0x26a9cd(0x188)]||'localhost','port':_0x7ea91f[_0x26a9cd(0x16d)](parseInt,process['env'][_0x26a9cd(0x198)],0xa)||0x18ec,'password':process[_0x26a9cd(0x171)]['REDIS_PASSWORD']||undefined,'db':_0x7ea91f[_0x26a9cd(0x1c4)](parseInt,process['env']['REDIS_DB'],0xa)||0x0,'maxRetriesPerRequest':null}),readConnection['on']('error',_0x117da2=>{const _0x3e0d22=_0x26a9cd;logger['error']({'event':_0x3e0d22(0x1a4),'error':_0x117da2[_0x3e0d22(0x186)]},_0x3e0d22(0x1b3)+_0x117da2[_0x3e0d22(0x186)]);}),readQueues={};for(const [_0x5901bf,_0x15be6c]of Object['entries'](QUEUE_NAMES)){readQueues[_0x5901bf]=new Queue(_0x15be6c,{'connection':readConnection,'prefix':_0x15b9a6});}return readQueues;}function createJobRoutes(_0x575ace){const _0x2d7ba9=a0_0x3edfe3,_0x574ae0={'GtEJi':function(_0x343b84,_0x182a12){return _0x343b84(_0x182a12);},'ALAlK':function(_0x42530a,_0x55e295){return _0x42530a(_0x55e295);},'VvGMS':_0x2d7ba9(0x1b8),'FfNtx':_0x2d7ba9(0x185),'IaknZ':function(_0x5bfd09,_0x5c8947){return _0x5bfd09!==_0x5c8947;},'DZIFU':_0x2d7ba9(0x18e),'SyEdE':function(_0x426246){return _0x426246();},'iVaga':_0x2d7ba9(0x1cd),'cCTlu':function(_0x40bcb1,_0x472ba4){return _0x40bcb1(_0x472ba4);},'wjdeH':_0x2d7ba9(0x16c),'FZZim':'job_triggered_via_api','rOtWJ':_0x2d7ba9(0x1ae),'wVgOF':'Error\x20triggering\x20job','ZFXHD':function(_0x8be026){return _0x8be026();},'bNcHc':_0x2d7ba9(0x1b5),'oWNYx':'api-cancel','ObmIb':'waiting','bzfeV':function(_0x5ea9c5,_0x2fcc02){return _0x5ea9c5===_0x2fcc02;},'rOHlV':'job_cancel_error','wsKPz':function(_0x5d07e7,_0x1effa3,_0x4aa82b){return _0x5d07e7(_0x1effa3,_0x4aa82b);},'qmuGx':function(_0x19d1e7,_0x178fd9){return _0x19d1e7*_0x178fd9;},'rQmqh':function(_0x87c64d,_0x79046d){return _0x87c64d-_0x79046d;},'nfDEh':'completed','JTobe':_0x2d7ba9(0x183),'CpUVC':'job_queues_error','cLqMr':_0x2d7ba9(0x1c9),'uBWjy':'connected','eZSEJ':_0x2d7ba9(0x1a7),'uZoGT':_0x2d7ba9(0x168),'BMQzS':function(_0x4ad825,_0xab44cd){return _0x4ad825>_0xab44cd;},'DxnYD':'/list','VzGpn':'/status/:jobId','TLHzd':_0x2d7ba9(0x181),'pUOUW':'/history'},_0xd96684=express[_0x2d7ba9(0x18f)]();return _0x575ace&&_0x574ae0[_0x2d7ba9(0x176)](Object[_0x2d7ba9(0x1bc)](_0x575ace)[_0x2d7ba9(0x1c3)],0x0)&&(cachedJobConfigs=_0x575ace),_0xd96684[_0x2d7ba9(0x1cc)](_0x574ae0[_0x2d7ba9(0x1b4)],(_0x3c36fa,_0x86c465)=>{const _0x2cb7a1=_0x2d7ba9;try{if(cachedJobConfigs){const _0x23381b=Object[_0x2cb7a1(0x1c1)](cachedJobConfigs)[_0x2cb7a1(0x1ac)](_0x101478=>({'name':_0x101478[_0x2cb7a1(0x175)],'description':_0x101478[_0x2cb7a1(0x199)]||'','type':_0x101478[_0x2cb7a1(0x16e)],'schedule':_0x101478['schedule'],'handler':_0x101478[_0x2cb7a1(0x189)],'enabled':_0x101478['enabled']!==![],'queue':_0x101478[_0x2cb7a1(0x1b1)]||_0x2cb7a1(0x16c),'timeout':_0x101478[_0x2cb7a1(0x16b)]||0x7530,'retry':_0x101478['retry']||{'maxAttempts':0x3,'backoff':'exponential','initialDelay':0x1388},'metadata':_0x101478['metadata']||{}}));return _0x86c465[_0x2cb7a1(0x1ad)]({'success':!![],'data':_0x23381b,'total':_0x23381b['length']});}const _0x458413=_0x574ae0[_0x2cb7a1(0x17d)](require,'fs'),_0x41d2ae=_0x574ae0[_0x2cb7a1(0x1cf)](require,_0x574ae0[_0x2cb7a1(0x179)]),_0x35aa9e=_0x41d2ae['join'](process[_0x2cb7a1(0x192)](),_0x574ae0[_0x2cb7a1(0x166)],_0x2cb7a1(0x17f));if(!_0x458413['existsSync'](_0x35aa9e))return _0x86c465['json']({'success':!![],'data':[],'total':0x0});const _0xb03104=_0x458413['readdirSync'](_0x35aa9e)['filter'](_0x469d42=>_0x469d42[_0x2cb7a1(0x1c7)](_0x2cb7a1(0x169))),_0x2b46ea=[];for(const _0x3b1064 of _0xb03104){try{const _0x58caca=_0x458413[_0x2cb7a1(0x1c0)](_0x41d2ae[_0x2cb7a1(0x19c)](_0x35aa9e,_0x3b1064),'utf8'),_0x32b0a9=JSON[_0x2cb7a1(0x18b)](_0x58caca);_0x2b46ea['push']({'name':_0x32b0a9['name'],'description':_0x32b0a9[_0x2cb7a1(0x199)]||'','type':_0x32b0a9['type'],'schedule':_0x32b0a9[_0x2cb7a1(0x1a1)],'handler':_0x32b0a9['handler'],'enabled':_0x574ae0[_0x2cb7a1(0x19e)](_0x32b0a9['enabled'],![]),'queue':_0x32b0a9['queue']||_0x2cb7a1(0x16c),'timeout':_0x32b0a9[_0x2cb7a1(0x16b)]||0x7530,'retry':_0x32b0a9['retry']||{},'metadata':_0x32b0a9['metadata']||{}});}catch(_0x444569){}}_0x86c465[_0x2cb7a1(0x1ad)]({'success':!![],'data':_0x2b46ea,'total':_0x2b46ea['length']});}catch(_0x432cbf){logger[_0x2cb7a1(0x17b)]({'event':'job_list_error','error':_0x432cbf['message']},_0x574ae0['DZIFU']),_0x86c465[_0x2cb7a1(0x1a9)](0x1f4)['json']({'success':![],'error':_0x432cbf['message']});}}),_0xd96684['get'](_0x574ae0[_0x2d7ba9(0x184)],async(_0x35f83d,_0x47e9fe)=>{const _0x26db1d=_0x2d7ba9;try{const {jobId:_0x4d994b}=_0x35f83d[_0x26db1d(0x1bd)],_0x1976a2=_0x574ae0['SyEdE'](getReadQueues);for(const _0x22fc05 of Object[_0x26db1d(0x1c1)](_0x1976a2)){const _0x3f630d=await _0x22fc05['getJob'](_0x4d994b);if(_0x3f630d){const _0x3608a2=await _0x3f630d['getState']();return _0x47e9fe['json']({'success':!![],'data':{'jobId':_0x3f630d['id'],'name':_0x3f630d[_0x26db1d(0x175)],'state':_0x3608a2,'progress':_0x3f630d[_0x26db1d(0x170)],'attemptsMade':_0x3f630d['attemptsMade'],'failedReason':_0x3f630d[_0x26db1d(0x1a8)],'returnvalue':_0x3f630d['returnvalue'],'data':_0x3f630d[_0x26db1d(0x1d6)],'timestamps':{'created':_0x3f630d[_0x26db1d(0x1d3)],'started':_0x3f630d[_0x26db1d(0x1c5)],'completed':_0x3f630d['finishedOn']}}});}}_0x47e9fe['status'](0x194)[_0x26db1d(0x1ad)]({'success':![],'error':'Job\x20'+_0x4d994b+'\x20tidak\x20ditemukan'});}catch(_0x306cf0){logger[_0x26db1d(0x17b)]({'event':_0x574ae0[_0x26db1d(0x1d7)],'error':_0x306cf0[_0x26db1d(0x186)]},'Error\x20getting\x20job\x20status'),_0x47e9fe['status'](0x1f4)['json']({'success':![],'error':_0x306cf0[_0x26db1d(0x186)]});}}),_0xd96684['post'](_0x574ae0['TLHzd'],async(_0x911950,_0x2442ab)=>{const _0x270ee0=_0x2d7ba9;try{const {jobName:_0x923a6d}=_0x911950[_0x270ee0(0x1bd)],_0x4a7b4f=_0x911950[_0x270ee0(0x190)]||{};let _0x5b452c=cachedJobConfigs?.[_0x923a6d];if(!_0x5b452c){const _0x19f9a9=require('fs'),_0xb95bee=_0x574ae0['cCTlu'](require,'path'),_0x1d48d4=_0xb95bee[_0x270ee0(0x19c)](process['cwd'](),'payload','jobs'),_0x478516=_0x19f9a9[_0x270ee0(0x18a)](_0x1d48d4)?_0x19f9a9[_0x270ee0(0x16f)](_0x1d48d4)['filter'](_0xec9c4a=>_0xec9c4a[_0x270ee0(0x1c7)]('.json')):[];for(const _0x3c0c0c of _0x478516){try{const _0x554a80=_0x19f9a9['readFileSync'](_0xb95bee['join'](_0x1d48d4,_0x3c0c0c),_0x270ee0(0x196)),_0x280cbf=JSON[_0x270ee0(0x18b)](_0x554a80);if(_0x280cbf[_0x270ee0(0x175)]===_0x923a6d){_0x5b452c=_0x280cbf;break;}}catch(_0x44285d){}}}if(!_0x5b452c)return _0x2442ab['status'](0x194)[_0x270ee0(0x1ad)]({'success':![],'error':'Job\x20\x22'+_0x923a6d+'\x22\x20tidak\x20ditemukan\x20di\x20konfigurasi'});const _0x1ecd67=getReadQueues(),_0x650595=_0x1ecd67[_0x5b452c['queue']||_0x574ae0['wjdeH']],_0x36cff3=await _0x650595['add'](_0x923a6d,{..._0x4a7b4f,'handler':_0x5b452c['handler'],'triggeredBy':_0x270ee0(0x1d0)},{'attempts':_0x5b452c['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x5b452c['retry']?.['backoff']||'exponential','delay':_0x5b452c['retry']?.[_0x270ee0(0x1ab)]||0x1388},'timeout':_0x5b452c[_0x270ee0(0x16b)]||0x7530});logger[_0x270ee0(0x1a5)]({'event':_0x574ae0[_0x270ee0(0x1d1)],'jobId':_0x36cff3['id'],'name':_0x923a6d},_0x270ee0(0x1c6)+_0x923a6d+_0x270ee0(0x18d)+_0x36cff3['id']+')'),_0x2442ab[_0x270ee0(0x1ad)]({'success':!![],'jobId':_0x36cff3['id'],'message':'Job\x20'+_0x923a6d+_0x270ee0(0x1c8)});}catch(_0x3c93b6){logger['error']({'event':_0x574ae0[_0x270ee0(0x174)],'error':_0x3c93b6['message']},_0x574ae0[_0x270ee0(0x193)]),_0x2442ab['status'](0x1f4)['json']({'success':![],'error':_0x3c93b6[_0x270ee0(0x186)]});}}),_0xd96684['post']('/cancel/:jobId',async(_0x33ddb6,_0x5055e6)=>{const _0x164144=_0x2d7ba9;try{const {jobId:_0x46f906}=_0x33ddb6['params'],_0x131c2f=_0x574ae0[_0x164144(0x167)](getReadQueues);for(const _0x2f297c of Object['values'](_0x131c2f)){const _0x43116c=await _0x2f297c['getJob'](_0x46f906);if(_0x43116c){const _0x4671d4=await _0x43116c['getState']();if(_0x4671d4===_0x574ae0[_0x164144(0x1b9)])return await _0x43116c['moveToFailed'](new Error(_0x164144(0x182)),_0x574ae0[_0x164144(0x180)],!![]),_0x5055e6['json']({'success':!![],'message':_0x164144(0x1af)+_0x46f906+_0x164144(0x165)});if(_0x4671d4===_0x574ae0[_0x164144(0x1aa)]||_0x574ae0['bzfeV'](_0x4671d4,'delayed'))return await _0x43116c[_0x164144(0x17e)](),_0x5055e6[_0x164144(0x1ad)]({'success':!![],'message':_0x164144(0x1af)+_0x46f906+'\x20removed\x20(was\x20'+_0x4671d4+')'});return _0x5055e6[_0x164144(0x1ad)]({'success':![],'message':'Job\x20'+_0x46f906+'\x20cannot\x20be\x20cancelled\x20(state:\x20'+_0x4671d4+')'});}}_0x5055e6[_0x164144(0x1a9)](0x194)['json']({'success':![],'error':_0x164144(0x1af)+_0x46f906+_0x164144(0x178)});}catch(_0x2312c9){logger[_0x164144(0x17b)]({'event':_0x574ae0['rOHlV'],'error':_0x2312c9['message']},'Error\x20cancelling\x20job'),_0x5055e6['status'](0x1f4)[_0x164144(0x1ad)]({'success':![],'error':_0x2312c9[_0x164144(0x186)]});}}),_0xd96684[_0x2d7ba9(0x1cc)](_0x574ae0['pUOUW'],async(_0x606741,_0x2e8759)=>{const _0x238749=_0x2d7ba9;try{const _0x15e166=_0x574ae0['wsKPz'](parseInt,_0x606741['query']['page'],0xa)||0x1,_0x5f13a0=Math['min'](parseInt(_0x606741[_0x238749(0x194)][_0x238749(0x1a3)],0xa)||0x14,0x64),_0x4288e4=_0x574ae0[_0x238749(0x16a)](_0x15e166-0x1,_0x5f13a0),_0x21ba05=_0x574ae0[_0x238749(0x1b2)](_0x4288e4+_0x5f13a0,0x1),_0x5a6686=_0x574ae0['SyEdE'](getReadQueues),_0x4da76a=[];for(const [_0x1b26ed,_0x2db8ae]of Object['entries'](_0x5a6686)){const _0x17772b=await _0x2db8ae[_0x238749(0x1b7)]([_0x574ae0['nfDEh']],_0x4288e4,_0x21ba05),_0x425e77=await _0x2db8ae[_0x238749(0x1b7)]([_0x238749(0x1cb)],_0x4288e4,_0x21ba05);for(const _0x2cefc5 of[..._0x17772b,..._0x425e77]){const _0x41eaac=await _0x2cefc5[_0x238749(0x18c)]();_0x4da76a[_0x238749(0x1d2)]({'jobId':_0x2cefc5['id'],'name':_0x2cefc5[_0x238749(0x175)],'state':_0x41eaac,'queue':_0x1b26ed,'attemptsMade':_0x2cefc5['attemptsMade'],'failedReason':_0x2cefc5['failedReason'],'returnvalue':_0x2cefc5['returnvalue'],'timestamps':{'created':_0x2cefc5['timestamp'],'started':_0x2cefc5[_0x238749(0x1c5)],'completed':_0x2cefc5['finishedOn']}});}}_0x4da76a[_0x238749(0x191)]((_0x3bf246,_0x10a493)=>(_0x10a493[_0x238749(0x1b0)]['created']||0x0)-(_0x3bf246['timestamps']['created']||0x0)),_0x2e8759[_0x238749(0x1ad)]({'success':!![],'data':_0x4da76a['slice'](0x0,_0x5f13a0),'total':_0x4da76a[_0x238749(0x1c3)],'page':_0x15e166,'limit':_0x5f13a0});}catch(_0x4ea46a){logger[_0x238749(0x17b)]({'event':_0x238749(0x1d5),'error':_0x4ea46a['message']},_0x238749(0x195)),_0x2e8759['status'](0x1f4)['json']({'success':![],'error':_0x4ea46a['message']});}}),_0xd96684[_0x2d7ba9(0x1cc)](_0x2d7ba9(0x1d4),async(_0x3dacd9,_0x2294a0)=>{const _0x51b23e=_0x2d7ba9;try{const _0x219b94=getReadQueues(),_0x2dcd47={};for(const [_0x18a711,_0x16c6f9]of Object['entries'](_0x219b94)){try{const _0x472aca=await _0x16c6f9[_0x51b23e(0x173)](_0x574ae0['bNcHc'],_0x51b23e(0x1a0),_0x574ae0['JTobe'],_0x51b23e(0x1cb),_0x51b23e(0x1be),_0x51b23e(0x1bb));_0x2dcd47[_0x18a711]=_0x472aca;}catch(_0x5d8294){_0x2dcd47[_0x18a711]={'error':_0x5d8294[_0x51b23e(0x186)]};}}_0x2294a0[_0x51b23e(0x1ad)]({'success':!![],'data':_0x2dcd47});}catch(_0x27a2b0){logger[_0x51b23e(0x17b)]({'event':_0x574ae0[_0x51b23e(0x17a)],'error':_0x27a2b0[_0x51b23e(0x186)]},_0x51b23e(0x1b6)),_0x2294a0[_0x51b23e(0x1a9)](0x1f4)[_0x51b23e(0x1ad)]({'success':![],'error':_0x27a2b0[_0x51b23e(0x186)]});}}),_0xd96684[_0x2d7ba9(0x1cc)]('/health',async(_0xbc36b5,_0x500bb7)=>{const _0x27ebdf=_0x2d7ba9;try{const _0x75f7e1=getReadQueues(),_0x546ecd={};let _0xee90d4=![];for(const [_0x2efdc3,_0x5e674a]of Object[_0x27ebdf(0x17c)](_0x75f7e1)){try{const _0x3398bd=await _0x5e674a['getJobCounts'](_0x574ae0['bNcHc'],_0x574ae0[_0x27ebdf(0x1aa)],_0x27ebdf(0x1cb));_0x546ecd[_0x2efdc3]=_0x3398bd,_0xee90d4=!![];}catch(_0x1f76da){_0x546ecd[_0x2efdc3]={'error':_0x1f76da[_0x27ebdf(0x186)]};}}let _0x1a8293=0x0;cachedJobConfigs&&(_0x1a8293=Object['keys'](cachedJobConfigs)['length']),_0x500bb7[_0x27ebdf(0x1ad)]({'success':!![],'data':{'status':_0xee90d4?'healthy':_0x574ae0['cLqMr'],'redis':_0xee90d4?_0x574ae0[_0x27ebdf(0x19b)]:_0x574ae0['eZSEJ'],'registeredJobs':_0x1a8293,'queues':_0x546ecd}});}catch(_0x45267d){_0x500bb7[_0x27ebdf(0x1a9)](0x1f7)[_0x27ebdf(0x1ad)]({'success':![],'data':{'status':_0x574ae0['uZoGT'],'error':_0x45267d[_0x27ebdf(0x186)]}});}}),_0xd96684;}function a0_0x21c4(){const _0x2aa05a=['t2jTswi','Aw5PDgLHBerLBgf5','BwfW','ANnVBG','AM9Ix3rYAwDNzxjFzxjYB3i','sM9Iia','DgLTzxn0yw1WCW','CxvLDwu','CLfTCwG','sM9IifjVDxrLCYbszwrPCYbLCNjVCJOG','rhHUwuq','ywn0AxzL','rxjYB3iGz2v0DgLUzYbXDwv1zsbZDgf0CW','z2v0sM9ICW','Cgf0Aa','yK5Jsgm','AgLNAa','D2fPDgLUzW','A2v5CW','CgfYyw1Z','Cgf1C2vK','zxHWB3j0CW','CMvHzezPBgvtEw5J','DMfSDwvZ','mZe0mxDhzhPhAW','BgvUz3rO','tw15DwS','ChjVy2vZC2vKt24','sM9IihrYAwDNzxjLzcb2AweGqvbjoIa','zw5KC1DPDgG','ihrYAwDNzxjLzcbZDwnJzxnZzNvSBhK','zgvNCMfKzwq','mJa1otvuwg1NyK0','zMfPBgvK','z2v0','AM9Ix3n0yxr1C19LCNjVCG','nJy5nJi3mMjkEvDZra','quXbBeS','yxbP','rLPAAw0','ChvZAa','DgLTzxn0yw1W','l3f1zxvLCW','AM9Ix2HPC3rVCNLFzxjYB3i','zgf0yq','AvzHz2e','ignHBMnLBgXLzcaOD2fZigfJDgL2zsK','rMzoDhG','wKzyseq','Dw5OzwfSDgH5','lMPZB24','Cw11r3G','DgLTzw91Da','zgvMyxvSDa','C0j2yuC','DhLWzq','CMvHzgrPCLn5BMm','ChjVz3jLC3m','zw52','nJKWEgPrrvHk','z2v0sM9Iq291BNrZ','CK90v0O','BMfTzq','qK1rELm','mti3mLLYC0nOzG','ihrPzgfRigrPDgvTDwTHBG','vNzhtvm','q3bvvKm','zxjYB3i','zw50CMLLCW','r3rfsMK','CMvTB3zL','AM9ICW','B1DowxG','l3rYAwDNzxiVoMPVyK5HBwu','sM9IignHBMnLBgXLzcb2AweGqvbj','zgvSyxLLza','vNPhCg4','Cgf5Bg9Hza','BwvZC2fNzq','nZH5z3vetMu','uKvesvnFse9tva','AgfUzgXLCG','zxHPC3rZu3LUyW','CgfYC2u','z2v0u3rHDgu','icHPzdOG','rxjYB3iGBgLZDgLUzYbQB2jZ','uM91DgvY','yM9KEq','C29YDa','y3DK','D1zNt0y','CxvLCNK','rxjYB3iGz2v0DgLUzYbQB2iGAgLZDg9YEq','DxrMoa','otG0qNvPChfJ','uKvesvnFue9sva','zgvZy3jPChrPB24','mtmWmde4nw1quNn2ra','DujxANK','AM9PBG','mJG4ntbPuwXgq3m','swfRBLO','mZC5nJu3mtLktgD6BLa','y29TCgXLDgvK','C2nOzwr1Bgu','Aw9YzwrPCW','BgLTAxq','AM9Ix3jVDxrLC19YzwrPC19LCNjVCG','Aw5MBW','mZq2otKWtgnHt01l','zgLZy29UBMvJDgvK','zMfPBgvKuMvHC29U','C3rHDhvZ'];a0_0x21c4=function(){return _0x2aa05a;};return a0_0x21c4();}module[a0_0x3edfe3(0x1bf)]=createJobRoutes;
1
+ const a0_0x2e75a7=a0_0x24f3;(function(_0x5882e9,_0x55a730){const _0x1e6d56=a0_0x24f3,_0x3953f7=_0x5882e9();while(!![]){try{const _0xa93d86=-parseInt(_0x1e6d56(0x13c))/0x1*(-parseInt(_0x1e6d56(0x11c))/0x2)+parseInt(_0x1e6d56(0x137))/0x3*(-parseInt(_0x1e6d56(0xec))/0x4)+parseInt(_0x1e6d56(0x13b))/0x5+parseInt(_0x1e6d56(0xf7))/0x6+-parseInt(_0x1e6d56(0x14c))/0x7*(-parseInt(_0x1e6d56(0x124))/0x8)+-parseInt(_0x1e6d56(0x125))/0x9*(parseInt(_0x1e6d56(0xf4))/0xa)+-parseInt(_0x1e6d56(0x144))/0xb*(parseInt(_0x1e6d56(0x105))/0xc);if(_0xa93d86===_0x55a730)break;else _0x3953f7['push'](_0x3953f7['shift']());}catch(_0x4ed968){_0x3953f7['push'](_0x3953f7['shift']());}}}(a0_0x4dc5,0xb61eb));const express=require('express'),{Queue}=require('bullmq'),Redis=require(a0_0x2e75a7(0x13f)),{logger}=require('../../utils/logger');function a0_0x4dc5(){const _0x359bc8=['v3r4wLe','y29TCgXLDgvK','C3rHDhvZ','EgjSy2i','zvLHzeS','sergquK','A2v5CW','BgLTAxq','C2XPy2u','nZjovhPODgy','BgvUz3rO','zw5KC1DPDgG','BMfTzq','DgLTzxn0yw1WCW','sM9IignHBMnLBgXLzcb2AweGqvbj','ChvZAa','Cgf1C2vK','v3jkBKO','z0Lev2y','turktg8','zMLUAxnOzwrpBG','Au1XvK4','s2jUDKq','zxHWB3j0CW','Ce9wBMy','Cg9ZDa','ChjVy2vZC2vKt24','BwfW','yM9KEq','zxjYB3i','DMfSDwvZ','CgfYyw1Z','mNH5shjRBq','zxHPC3rZu3LUyW','icHPzdOG','sM9Iia','wezmBvu','Aw5PDgLHBerLBgf5','CMvHzezPBgvtEw5J','uuXHELi','mtqZmJu2s09QDuf0','ovr6BercCq','zgvMyxvSDa','CMvHzgrPCLn5BMm','CMv0DxjUDMfSDwu','zw50CMLLCW','DgLTzw91Da','qLvTELu','ihjLBw92zwqGkhDHCYa','sM9Iici','z2v0sM9I','ywrK','AM9PBG','uMrKBg4','rxjYB3iGz2v0DgLUzYbXDwv1zsbZDgf0CW','y29UBMvJDgvK','CxvLDwu','AM9Ix3rYAwDNzxjLzf92AwfFyxbP','y3DK','mJy3ywHyuLvP','z2v0sM9Iq291BNrZ','AM9ICW','DxH0wMW','mtuWntu5mfDhq1rlzW','nJG1otq2ywLcq2f3','l2HPC3rVCNK','vNbgB2e','Aw9YzwrPCW','y3ryv0y','AM9Ix3rYAwDNzxjFzxjYB3i','ywn0AxzL','uKvesvnFrei','nJK3nJmXreTmz1DK','yxr0zw1WDhnnywrL','y3jLyxrLza','v05IuLu','l2nHBMnLBc86AM9Iswq','z2v0sM9ICW','zw52','zMfPBgvKuMvHC29U','otfwvLvXCw0','CxvLCNK','l2HLywX0Aa','rxjYB3iGy2fUy2vSBgLUzYbQB2i','DhLWzq','veLPrKC','ANnVBG','CMy6AM9I','yxbPlwnHBMnLBa','zgvSyxLLza','z2v0','Cgf0Aa','EKfgDK8','Dw5OzwfSDgH5','ignHBM5VDcbIzsbJyw5JzwXSzwqGkhn0yxrLoIa','zMLSDgvY','z2v0u3rHDgu','zxHWB25LBNrPywW','lMPZB24','zw5HyMXLza','CMv0CNK','zgvZy3jPChrPB24','CfbhvK8','DgLTzxn0yw1W','uKvesvnFueftu1DpuKq','nJa2ng5pqxzztW','Ahrut1u','AM9Ix3n0yxr1C19LCNjVCG','C2nOzwr1Bgu','zNPLrLi','CgfYC2u','zgvNCMfKzwq','DxrMoa','mJu2mdC1mejXvefNza','AgfUzgXLCG','u1rODM8','mtC4ntC5oePLEKDQva','Bwv0ywrHDge','AM9Ix2XPC3rFzxjYB3i','rxjYB3iGz2v0DgLUzYbQB2iGC3rHDhvZ','BwvZC2fNzq'];a0_0x4dc5=function(){return _0x359bc8;};return a0_0x4dc5();}let readConnection=null,readQueues=null,cachedJobConfigs=null;const QUEUE_NAMES={'high-priority':'high','default':a0_0x2e75a7(0x126),'low-priority':'low'};function a0_0x24f3(_0x508434,_0x35002c){_0x508434=_0x508434-0xd7;const _0x4dc589=a0_0x4dc5();let _0x24f334=_0x4dc589[_0x508434];if(a0_0x24f3['qGQfZR']===undefined){var _0xfa868c=function(_0x434ca1){const _0x456644='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5e737d='',_0x463fbf='';for(let _0x507a0d=0x0,_0x563905,_0x3f7474,_0x4f7820=0x0;_0x3f7474=_0x434ca1['charAt'](_0x4f7820++);~_0x3f7474&&(_0x563905=_0x507a0d%0x4?_0x563905*0x40+_0x3f7474:_0x3f7474,_0x507a0d++%0x4)?_0x5e737d+=String['fromCharCode'](0xff&_0x563905>>(-0x2*_0x507a0d&0x6)):0x0){_0x3f7474=_0x456644['indexOf'](_0x3f7474);}for(let _0x5095bd=0x0,_0x130da5=_0x5e737d['length'];_0x5095bd<_0x130da5;_0x5095bd++){_0x463fbf+='%'+('00'+_0x5e737d['charCodeAt'](_0x5095bd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x463fbf);};a0_0x24f3['AiFqbX']=_0xfa868c,a0_0x24f3['MPStxa']={},a0_0x24f3['qGQfZR']=!![];}const _0x24a7fb=_0x4dc589[0x0],_0x43cf2b=_0x508434+_0x24a7fb,_0x303936=a0_0x24f3['MPStxa'][_0x43cf2b];return!_0x303936?(_0x24f334=a0_0x24f3['AiFqbX'](_0x24f334),a0_0x24f3['MPStxa'][_0x43cf2b]=_0x24f334):_0x24f334=_0x303936,_0x24f334;}function getReadQueues(){const _0x139251=a0_0x2e75a7,_0x24fc5e={'Uzlkh':'job_routes_redis_error','QUijy':_0x139251(0xda),'HDFAI':function(_0x2d07b7,_0x1d368f,_0x312c12){return _0x2d07b7(_0x1d368f,_0x312c12);},'ctXWF':'error'};if(readQueues)return readQueues;const _0x3acdf6=process[_0x139251(0x14a)]['JOB_REDIS_PREFIX']||_0x24fc5e['QUijy'];readConnection=new Redis({'host':process[_0x139251(0x14a)]['REDIS_HOST']||'localhost','port':parseInt(process['env']['REDIS_PORT'],0xa)||0x18ec,'password':process['env'][_0x139251(0xeb)]||undefined,'db':_0x24fc5e[_0x139251(0x101)](parseInt,process['env'][_0x139251(0x143)],0xa)||0x0,'maxRetriesPerRequest':null}),readConnection['on'](_0x24fc5e[_0x139251(0x140)],_0x57bb1e=>{const _0x3b3a0f=_0x139251;logger[_0x3b3a0f(0x119)]({'event':_0x24fc5e['Uzlkh'],'error':_0x57bb1e['message']},'Job\x20Routes\x20Redis\x20error:\x20'+_0x57bb1e['message']);}),readQueues={};for(const [_0x7aeddb,_0x2b57ba]of Object[_0x139251(0x129)](QUEUE_NAMES)){readQueues[_0x7aeddb]=new Queue(_0x2b57ba,{'connection':readConnection,'prefix':_0x3acdf6});}return readQueues;}function createJobRoutes(_0x127590){const _0x11ee27=a0_0x2e75a7,_0x19f9d9={'iMqVN':function(_0x4f6e65,_0x373416){return _0x4f6e65(_0x373416);},'KbnvD':_0x11ee27(0xde),'MDJLo':'payload','zAFvO':_0x11ee27(0x139),'wErDk':function(_0x4e90b3,_0x12195c){return _0x4e90b3!==_0x12195c;},'fzeFR':_0x11ee27(0xf9),'eYadK':'Error\x20listing\x20jobs','WrJnJ':_0x11ee27(0xee),'knmfP':function(_0x3f215e,_0x45a553){return _0x3f215e(_0x45a553);},'BUmzU':'api','QLazR':_0x11ee27(0x135),'TIiFG':_0x11ee27(0x141),'pOVnf':function(_0x2536c5){return _0x2536c5();},'Fdkkc':function(_0x5039d0,_0x47f722){return _0x5039d0===_0x47f722;},'hloDB':_0x11ee27(0xdb),'VpFoa':'waiting','WNbRU':_0x11ee27(0xdc),'Hvrwf':'job_cancel_error','OdNpW':_0x11ee27(0x14f),'rntAs':function(_0x30586a,_0x46bf4e,_0x5031f8){return _0x30586a(_0x46bf4e,_0x5031f8);},'pPGVO':function(_0x11cfaf,_0x5dee23,_0x36a588){return _0x11cfaf(_0x5dee23,_0x36a588);},'uxtZl':function(_0x27d436,_0x2faf57){return _0x27d436-_0x2faf57;},'xblcb':'failed','WtxZQ':'active','Rddln':_0x11ee27(0xfd),'LeQPy':_0x11ee27(0x10c),'htTOU':'job_queues_error','NyZMX':_0x11ee27(0x132),'SThvo':_0x11ee27(0x133),'esMlg':function(_0x2c29c1,_0x4073ec){return _0x2c29c1>_0x4073ec;},'fXqyh':'/trigger/:jobName','NDwEu':_0x11ee27(0x148),'gIDWf':_0x11ee27(0x13d),'MBjdI':'/queues','XFLmU':_0x11ee27(0x14e)},_0x404df9=express['Router']();return _0x127590&&_0x19f9d9['esMlg'](Object['keys'](_0x127590)['length'],0x0)&&(cachedJobConfigs=_0x127590),_0x404df9[_0x11ee27(0xdd)]('/list',(_0x24ffc3,_0xc460e9)=>{const _0x3cc30d=_0x11ee27;try{if(cachedJobConfigs){const _0x23577c=Object[_0x3cc30d(0x11a)](cachedJobConfigs)[_0x3cc30d(0x117)](_0x2dbadd=>({'name':_0x2dbadd['name'],'description':_0x2dbadd[_0x3cc30d(0xe8)]||'','type':_0x2dbadd['type'],'schedule':_0x2dbadd[_0x3cc30d(0xef)],'handler':_0x2dbadd[_0x3cc30d(0xf5)],'enabled':_0x2dbadd['enabled']!==![],'queue':_0x2dbadd['queue']||'default','timeout':_0x2dbadd['timeout']||0x7530,'retry':_0x2dbadd['retry']||{'maxAttempts':0x3,'backoff':'exponential','initialDelay':0x1388},'metadata':_0x2dbadd[_0x3cc30d(0xf8)]||{}}));return _0xc460e9[_0x3cc30d(0xd9)]({'success':!![],'data':_0x23577c,'total':_0x23577c[_0x3cc30d(0x106)]});}const _0x4a962a=require('fs'),_0x361c43=_0x19f9d9[_0x3cc30d(0x111)](require,_0x19f9d9[_0x3cc30d(0x112)]),_0xfddc90=_0x361c43['join'](process['cwd'](),_0x19f9d9['MDJLo'],_0x19f9d9[_0x3cc30d(0xdf)]);if(!_0x4a962a[_0x3cc30d(0x11d)](_0xfddc90))return _0xc460e9[_0x3cc30d(0xd9)]({'success':!![],'data':[],'total':0x0});const _0x1439e2=_0x4a962a[_0x3cc30d(0x127)](_0xfddc90)[_0x3cc30d(0xe2)](_0x238f29=>_0x238f29[_0x3cc30d(0x107)]('.json')),_0x414b7d=[];for(const _0x16b134 of _0x1439e2){try{const _0xd09b21=_0x4a962a['readFileSync'](_0x361c43[_0x3cc30d(0x130)](_0xfddc90,_0x16b134),_0x3cc30d(0xf3)),_0x4e8c24=JSON['parse'](_0xd09b21);_0x414b7d['push']({'name':_0x4e8c24[_0x3cc30d(0x108)],'description':_0x4e8c24[_0x3cc30d(0xe8)]||'','type':_0x4e8c24[_0x3cc30d(0xd7)],'schedule':_0x4e8c24[_0x3cc30d(0xef)],'handler':_0x4e8c24[_0x3cc30d(0xf5)],'enabled':_0x19f9d9['wErDk'](_0x4e8c24[_0x3cc30d(0xe6)],![]),'queue':_0x4e8c24[_0x3cc30d(0x134)]||'default','timeout':_0x4e8c24[_0x3cc30d(0x12a)]||0x7530,'retry':_0x4e8c24[_0x3cc30d(0xe7)]||{},'metadata':_0x4e8c24['metadata']||{}});}catch(_0x4a2e1b){}}_0xc460e9[_0x3cc30d(0xd9)]({'success':!![],'data':_0x414b7d,'total':_0x414b7d[_0x3cc30d(0x106)]});}catch(_0x19f30e){logger['error']({'event':_0x19f9d9[_0x3cc30d(0xf0)],'error':_0x19f30e['message']},_0x19f9d9[_0x3cc30d(0x100)]),_0xc460e9[_0x3cc30d(0xfe)](0x1f4)['json']({'success':![],'error':_0x19f30e[_0x3cc30d(0xfb)]});}}),_0x404df9[_0x11ee27(0xdd)]('/status/:jobId',async(_0x983ff9,_0xe09951)=>{const _0x24ba76=_0x11ee27;try{const {jobId:_0x24f1dd}=_0x983ff9[_0x24ba76(0x11b)],_0x101a5e=getReadQueues();for(const _0x5b4329 of Object[_0x24ba76(0x11a)](_0x101a5e)){const _0x2ee8af=await _0x5b4329[_0x24ba76(0x12e)](_0x24f1dd);if(_0x2ee8af){const _0x1ebda2=await _0x2ee8af['getState']();return _0xe09951['json']({'success':!![],'data':{'jobId':_0x2ee8af['id'],'name':_0x2ee8af[_0x24ba76(0x108)],'state':_0x1ebda2,'progress':_0x2ee8af['progress'],'attemptsMade':_0x2ee8af['attemptsMade'],'failedReason':_0x2ee8af[_0x24ba76(0x14b)],'returnvalue':_0x2ee8af[_0x24ba76(0x128)],'data':_0x2ee8af['data'],'timestamps':{'created':_0x2ee8af[_0x24ba76(0xea)],'started':_0x2ee8af[_0x24ba76(0x116)],'completed':_0x2ee8af[_0x24ba76(0x110)]}}});}}_0xe09951[_0x24ba76(0xfe)](0x194)['json']({'success':![],'error':_0x24ba76(0x11f)+_0x24f1dd+'\x20tidak\x20ditemukan'});}catch(_0xff74a5){logger[_0x24ba76(0x119)]({'event':_0x19f9d9[_0x24ba76(0x10d)],'error':_0xff74a5['message']},_0x24ba76(0xfa)),_0xe09951['status'](0x1f4)['json']({'success':![],'error':_0xff74a5['message']});}}),_0x404df9[_0x11ee27(0x115)](_0x19f9d9['fXqyh'],async(_0x3070e6,_0x68dead)=>{const _0x2c76ee=_0x11ee27;try{const {jobName:_0x5913ed}=_0x3070e6[_0x2c76ee(0x11b)],_0x1b2dd3=_0x3070e6[_0x2c76ee(0x118)]||{};let _0x7d444e=cachedJobConfigs?.[_0x5913ed];if(!_0x7d444e){const _0x4864c3=require('fs'),_0x2ca6cf=_0x19f9d9['knmfP'](require,_0x2c76ee(0xde)),_0x3291ce=_0x2ca6cf['join'](process[_0x2c76ee(0x136)](),_0x19f9d9[_0x2c76ee(0x10f)],'jobs'),_0x45eda0=_0x4864c3['existsSync'](_0x3291ce)?_0x4864c3[_0x2c76ee(0x127)](_0x3291ce)['filter'](_0x11747d=>_0x11747d['endsWith'](_0x2c76ee(0xe5))):[];for(const _0x16054f of _0x45eda0){try{const _0x11f5c4=_0x4864c3[_0x2c76ee(0x122)](_0x2ca6cf['join'](_0x3291ce,_0x16054f),_0x2c76ee(0xf3)),_0x118b98=JSON[_0x2c76ee(0xf1)](_0x11f5c4);if(_0x118b98['name']===_0x5913ed){_0x7d444e=_0x118b98;break;}}catch(_0x4c4f42){}}}if(!_0x7d444e)return _0x68dead['status'](0x194)[_0x2c76ee(0xd9)]({'success':![],'error':_0x2c76ee(0x12d)+_0x5913ed+'\x22\x20tidak\x20ditemukan\x20di\x20konfigurasi'});const _0x4cd6d4=getReadQueues(),_0x21a7c5=_0x4cd6d4[_0x7d444e[_0x2c76ee(0x134)]||'default'],_0x45e45c=await _0x21a7c5[_0x2c76ee(0x12f)](_0x5913ed,{..._0x1b2dd3,'handler':_0x7d444e[_0x2c76ee(0xf5)],'triggeredBy':_0x19f9d9[_0x2c76ee(0x12b)]},{'attempts':_0x7d444e['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x7d444e['retry']?.['backoff']||_0x2c76ee(0xe4),'delay':_0x7d444e['retry']?.[_0x2c76ee(0x121)]||0x1388},'timeout':_0x7d444e[_0x2c76ee(0x12a)]||0x7530});logger['info']({'event':_0x19f9d9[_0x2c76ee(0x123)],'jobId':_0x45e45c['id'],'name':_0x5913ed},'Job\x20triggered\x20via\x20API:\x20'+_0x5913ed+_0x2c76ee(0x11e)+_0x45e45c['id']+')'),_0x68dead[_0x2c76ee(0xd9)]({'success':!![],'jobId':_0x45e45c['id'],'message':_0x2c76ee(0x11f)+_0x5913ed+'\x20triggered\x20successfully'});}catch(_0x293895){logger[_0x2c76ee(0x119)]({'event':_0x19f9d9[_0x2c76ee(0xd8)],'error':_0x293895['message']},'Error\x20triggering\x20job'),_0x68dead[_0x2c76ee(0xfe)](0x1f4)[_0x2c76ee(0xd9)]({'success':![],'error':_0x293895['message']});}}),_0x404df9['post'](_0x19f9d9['NDwEu'],async(_0xeaa393,_0x27ff1b)=>{const _0x175a9e=_0x11ee27;try{const {jobId:_0x5631eb}=_0xeaa393['params'],_0x45d217=_0x19f9d9[_0x175a9e(0x114)](getReadQueues);for(const _0x5d1892 of Object['values'](_0x45d217)){const _0x1aa79e=await _0x5d1892[_0x175a9e(0x12e)](_0x5631eb);if(_0x1aa79e){const _0x6f9de2=await _0x1aa79e[_0x175a9e(0xe3)]();if(_0x19f9d9['Fdkkc'](_0x6f9de2,_0x175a9e(0x142)))return await _0x1aa79e['moveToFailed'](new Error(_0x175a9e(0x10a)),_0x19f9d9['hloDB'],!![]),_0x27ff1b['json']({'success':!![],'message':'Job\x20'+_0x5631eb+'\x20cancelled\x20(was\x20active)'});if(_0x6f9de2===_0x19f9d9[_0x175a9e(0x13e)]||_0x19f9d9['Fdkkc'](_0x6f9de2,_0x19f9d9[_0x175a9e(0x147)]))return await _0x1aa79e['remove'](),_0x27ff1b['json']({'success':!![],'message':_0x175a9e(0x11f)+_0x5631eb+_0x175a9e(0x12c)+_0x6f9de2+')'});return _0x27ff1b['json']({'success':![],'message':_0x175a9e(0x11f)+_0x5631eb+_0x175a9e(0xe1)+_0x6f9de2+')'});}}_0x27ff1b['status'](0x194)[_0x175a9e(0xd9)]({'success':![],'error':_0x175a9e(0x11f)+_0x5631eb+'\x20tidak\x20ditemukan'});}catch(_0x2b549e){logger[_0x175a9e(0x119)]({'event':_0x19f9d9['Hvrwf'],'error':_0x2b549e['message']},_0x19f9d9['OdNpW']),_0x27ff1b[_0x175a9e(0xfe)](0x1f4)['json']({'success':![],'error':_0x2b549e[_0x175a9e(0xfb)]});}}),_0x404df9[_0x11ee27(0xdd)](_0x19f9d9[_0x11ee27(0x10e)],async(_0x179c7f,_0x1aa6b1)=>{const _0x4db95a=_0x11ee27;try{const _0x4ae415=_0x19f9d9['rntAs'](parseInt,_0x179c7f[_0x4db95a(0x14d)]['page'],0xa)||0x1,_0x1a6058=Math['min'](_0x19f9d9[_0x4db95a(0xe9)](parseInt,_0x179c7f['query'][_0x4db95a(0x103)],0xa)||0x14,0x64),_0x3a03e1=_0x19f9d9[_0x4db95a(0x13a)](_0x4ae415,0x1)*_0x1a6058,_0x44c41e=_0x3a03e1+_0x1a6058-0x1,_0x21bad4=getReadQueues(),_0x191060=[];for(const [_0x5a44d2,_0x131a8d]of Object['entries'](_0x21bad4)){const _0x238607=await _0x131a8d['getJobs'](['completed'],_0x3a03e1,_0x44c41e),_0x5cbd18=await _0x131a8d[_0x4db95a(0x149)]([_0x19f9d9['xblcb']],_0x3a03e1,_0x44c41e);for(const _0x3c5cfa of[..._0x238607,..._0x5cbd18]){const _0x6d73c0=await _0x3c5cfa[_0x4db95a(0xe3)]();_0x191060[_0x4db95a(0x10b)]({'jobId':_0x3c5cfa['id'],'name':_0x3c5cfa[_0x4db95a(0x108)],'state':_0x6d73c0,'queue':_0x5a44d2,'attemptsMade':_0x3c5cfa[_0x4db95a(0x145)],'failedReason':_0x3c5cfa[_0x4db95a(0x14b)],'returnvalue':_0x3c5cfa[_0x4db95a(0x128)],'timestamps':{'created':_0x3c5cfa[_0x4db95a(0xea)],'started':_0x3c5cfa['processedOn'],'completed':_0x3c5cfa['finishedOn']}});}}_0x191060['sort']((_0x54e224,_0x3e1014)=>(_0x3e1014['timestamps'][_0x4db95a(0x146)]||0x0)-(_0x54e224[_0x4db95a(0x109)]['created']||0x0)),_0x1aa6b1['json']({'success':!![],'data':_0x191060[_0x4db95a(0x104)](0x0,_0x1a6058),'total':_0x191060['length'],'page':_0x4ae415,'limit':_0x1a6058});}catch(_0x2600b6){logger[_0x4db95a(0x119)]({'event':'job_history_error','error':_0x2600b6['message']},'Error\x20getting\x20job\x20history'),_0x1aa6b1[_0x4db95a(0xfe)](0x1f4)[_0x4db95a(0xd9)]({'success':![],'error':_0x2600b6[_0x4db95a(0xfb)]});}}),_0x404df9['get'](_0x19f9d9['MBjdI'],async(_0x1e31cd,_0x520c80)=>{const _0x93f6c5=_0x11ee27;try{const _0xf83114=getReadQueues(),_0x197093={};for(const [_0x226d73,_0x3c822b]of Object['entries'](_0xf83114)){try{const _0x479730=await _0x3c822b['getJobCounts'](_0x19f9d9[_0x93f6c5(0xfc)],_0x19f9d9[_0x93f6c5(0x131)],_0x19f9d9[_0x93f6c5(0x147)],_0x19f9d9[_0x93f6c5(0xff)],_0x19f9d9['LeQPy'],_0x19f9d9['VpFoa']);_0x197093[_0x226d73]=_0x479730;}catch(_0x120ffe){_0x197093[_0x226d73]={'error':_0x120ffe['message']};}}_0x520c80[_0x93f6c5(0xd9)]({'success':!![],'data':_0x197093});}catch(_0xddaf83){logger['error']({'event':_0x19f9d9[_0x93f6c5(0xed)],'error':_0xddaf83[_0x93f6c5(0xfb)]},_0x19f9d9['NyZMX']),_0x520c80['status'](0x1f4)['json']({'success':![],'error':_0xddaf83['message']});}}),_0x404df9[_0x11ee27(0xdd)](_0x19f9d9[_0x11ee27(0x120)],async(_0x58d7e2,_0x3aaee3)=>{const _0x3b5783=_0x11ee27;try{const _0x400161=getReadQueues(),_0x2aabc7={};let _0x4bfb83=![];for(const [_0x1f7368,_0x342bc]of Object['entries'](_0x400161)){try{const _0x663e=await _0x342bc[_0x3b5783(0x138)]('active',_0x19f9d9['VpFoa'],_0x19f9d9[_0x3b5783(0xff)]);_0x2aabc7[_0x1f7368]=_0x663e,_0x4bfb83=!![];}catch(_0xe320da){_0x2aabc7[_0x1f7368]={'error':_0xe320da['message']};}}let _0x43b81=0x0;cachedJobConfigs&&(_0x43b81=Object[_0x3b5783(0x102)](cachedJobConfigs)[_0x3b5783(0x106)]),_0x3aaee3['json']({'success':!![],'data':{'status':_0x4bfb83?'healthy':_0x3b5783(0xf2),'redis':_0x4bfb83?_0x19f9d9[_0x3b5783(0xf6)]:'disconnected','registeredJobs':_0x43b81,'queues':_0x2aabc7}});}catch(_0x2fa6bc){_0x3aaee3[_0x3b5783(0xfe)](0x1f7)['json']({'success':![],'data':{'status':_0x3b5783(0xe0),'error':_0x2fa6bc['message']}});}}),_0x404df9;}module[a0_0x2e75a7(0x113)]=createJobRoutes;
@@ -1 +1 @@
1
- const a0_0x1e70d9=a0_0x5a2b;(function(_0x3baa30,_0xd79ec9){const _0x1d1ab3=a0_0x5a2b,_0x5c3d67=_0x3baa30();while(!![]){try{const _0x3079e4=-parseInt(_0x1d1ab3(0x135))/0x1+parseInt(_0x1d1ab3(0x126))/0x2*(parseInt(_0x1d1ab3(0x15a))/0x3)+parseInt(_0x1d1ab3(0x132))/0x4*(-parseInt(_0x1d1ab3(0x159))/0x5)+parseInt(_0x1d1ab3(0x15f))/0x6*(-parseInt(_0x1d1ab3(0x15b))/0x7)+-parseInt(_0x1d1ab3(0x155))/0x8+parseInt(_0x1d1ab3(0x139))/0x9+-parseInt(_0x1d1ab3(0x128))/0xa*(-parseInt(_0x1d1ab3(0x152))/0xb);if(_0x3079e4===_0xd79ec9)break;else _0x5c3d67['push'](_0x5c3d67['shift']());}catch(_0x1c55b2){_0x5c3d67['push'](_0x5c3d67['shift']());}}}(a0_0x198d,0xab75f));const fs=require('fs'),path=require('path'),VALID_QUEUE_NAMES=[a0_0x1e70d9(0x164),a0_0x1e70d9(0x12a),'low-priority'],VALID_BACKOFF_TYPES=['fixed','exponential'],SLUG_REGEX=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;function a0_0x5a2b(_0x565ef4,_0x2a2fc0){_0x565ef4=_0x565ef4-0x122;const _0x198d82=a0_0x198d();let _0x5a2b53=_0x198d82[_0x565ef4];if(a0_0x5a2b['UEdhAt']===undefined){var _0x2657cd=function(_0x46c4c3){const _0x4fbdc1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xac8889='',_0x449436='';for(let _0x5d0d96=0x0,_0xd040aa,_0x2e1bac,_0x1b043d=0x0;_0x2e1bac=_0x46c4c3['charAt'](_0x1b043d++);~_0x2e1bac&&(_0xd040aa=_0x5d0d96%0x4?_0xd040aa*0x40+_0x2e1bac:_0x2e1bac,_0x5d0d96++%0x4)?_0xac8889+=String['fromCharCode'](0xff&_0xd040aa>>(-0x2*_0x5d0d96&0x6)):0x0){_0x2e1bac=_0x4fbdc1['indexOf'](_0x2e1bac);}for(let _0x1fc708=0x0,_0x2de946=_0xac8889['length'];_0x1fc708<_0x2de946;_0x1fc708++){_0x449436+='%'+('00'+_0xac8889['charCodeAt'](_0x1fc708)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x449436);};a0_0x5a2b['fGMWKr']=_0x2657cd,a0_0x5a2b['QrlKDZ']={},a0_0x5a2b['UEdhAt']=!![];}const _0x1fdcac=_0x198d82[0x0],_0x1129a8=_0x565ef4+_0x1fdcac,_0x8ac6fa=a0_0x5a2b['QrlKDZ'][_0x1129a8];return!_0x8ac6fa?(_0x5a2b53=a0_0x5a2b['fGMWKr'](_0x5a2b53),a0_0x5a2b['QrlKDZ'][_0x1129a8]=_0x5a2b53):_0x5a2b53=_0x8ac6fa,_0x5a2b53;}class JobValidator{[a0_0x1e70d9(0x13e)](_0x4a4518,_0x10c060){const _0x387aa4=a0_0x1e70d9,_0x4059ae={'oBoUS':'object','AQJhj':_0x387aa4(0x12c),'hikKU':_0x387aa4(0x127),'AuoSx':function(_0x569dda,_0x2405f6){return _0x569dda!==_0x2405f6;},'tmZPh':_0x387aa4(0x13b),'RYYJi':_0x387aa4(0x145),'JmwcR':function(_0x3ef2da,_0x30cedb){return _0x3ef2da!==_0x30cedb;},'SXHMN':_0x387aa4(0x137),'SNtBN':'Field\x20\x22schedule\x22\x20is\x20required\x20(cron\x20expression\x20string)','olCmv':'Field\x20\x22handler\x22\x20is\x20required\x20(path\x20relative\x20to\x20src/jobs/)','mnlGa':_0x387aa4(0x140),'cmOmQ':_0x387aa4(0x168),'SrUJp':function(_0x469fcf,_0x551987){return _0x469fcf<=_0x551987;},'xwLBf':function(_0xc85e52,_0x2b3f3d){return _0xc85e52!==_0x2b3f3d;},'sOZAl':'Field\x20\x22concurrency\x22\x20must\x20be\x20a\x20number\x20between\x201-50','JeDjl':function(_0x512bcf,_0x1d6c5b){return _0x512bcf!==_0x1d6c5b;},'Zwqqe':function(_0x461fba,_0x13bc56){return _0x461fba===_0x13bc56;}},_0x4ee85b=[];if(!_0x4a4518||typeof _0x4a4518!==_0x4059ae['oBoUS'])return{'valid':![],'errors':[_0x4059ae['AQJhj']]};if(!_0x4a4518[_0x387aa4(0x130)]||typeof _0x4a4518[_0x387aa4(0x130)]!=='string')_0x4ee85b[_0x387aa4(0x12f)](_0x4059ae['hikKU']);else!SLUG_REGEX['test'](_0x4a4518[_0x387aa4(0x130)])&&_0x4ee85b['push'](_0x387aa4(0x142)+_0x4a4518['name']+'\x22');if(!_0x4a4518['type']||_0x4059ae[_0x387aa4(0x158)](typeof _0x4a4518[_0x387aa4(0x153)],_0x387aa4(0x137)))_0x4ee85b['push'](_0x4059ae[_0x387aa4(0x16c)]);else _0x4059ae['AuoSx'](_0x4a4518['type'],_0x4059ae[_0x387aa4(0x122)])&&_0x4ee85b[_0x387aa4(0x12f)](_0x387aa4(0x16d)+_0x4a4518['type']+'\x22');if(!_0x4a4518[_0x387aa4(0x163)]||_0x4059ae['JmwcR'](typeof _0x4a4518['schedule'],_0x4059ae[_0x387aa4(0x162)]))_0x4ee85b['push'](_0x4059ae[_0x387aa4(0x134)]);else{const _0x27f7c4=this['validateCronExpression'](_0x4a4518['schedule']);!_0x27f7c4['valid']&&_0x4ee85b[_0x387aa4(0x12f)](..._0x27f7c4[_0x387aa4(0x133)]);}if(!_0x4a4518['handler']||typeof _0x4a4518['handler']!==_0x4059ae['SXHMN'])_0x4ee85b['push'](_0x4059ae['olCmv']);else{if(_0x10c060){const _0x3e814f=this['validateHandlerExists'](_0x4a4518['handler'],_0x10c060);!_0x3e814f['valid']&&_0x4ee85b[_0x387aa4(0x12f)](..._0x3e814f['errors']);}}_0x4a4518[_0x387aa4(0x16f)]!==undefined&&typeof _0x4a4518[_0x387aa4(0x16f)]!==_0x4059ae['mnlGa']&&_0x4ee85b['push'](_0x4059ae[_0x387aa4(0x15d)]);_0x4a4518['timeout']!==undefined&&((typeof _0x4a4518[_0x387aa4(0x16b)]!==_0x387aa4(0x146)||_0x4059ae['SrUJp'](_0x4a4518['timeout'],0x0))&&_0x4ee85b[_0x387aa4(0x12f)](_0x387aa4(0x14c)));if(_0x4a4518['queue']!==undefined){const _0x19ccdd=this[_0x387aa4(0x13d)](_0x4a4518[_0x387aa4(0x14e)]);!_0x19ccdd[_0x387aa4(0x14b)]&&_0x4ee85b['push'](..._0x19ccdd[_0x387aa4(0x133)]);}_0x4059ae[_0x387aa4(0x12d)](_0x4a4518['concurrency'],undefined)&&((_0x4059ae['JmwcR'](typeof _0x4a4518['concurrency'],_0x387aa4(0x146))||_0x4a4518['concurrency']<0x1||_0x4a4518['concurrency']>0x32)&&_0x4ee85b['push'](_0x4059ae['sOZAl']));if(_0x4059ae['AuoSx'](_0x4a4518[_0x387aa4(0x14d)],undefined)){if(_0x4059ae['JeDjl'](typeof _0x4a4518['retry'],_0x4059ae[_0x387aa4(0x15c)])||_0x4059ae[_0x387aa4(0x151)](_0x4a4518['retry'],null))_0x4ee85b['push'](_0x387aa4(0x141));else{const _0x3bf946=this['validateRetryConfig'](_0x4a4518['retry']);!_0x3bf946[_0x387aa4(0x14b)]&&_0x4ee85b['push'](..._0x3bf946['errors']);}}return _0x4059ae[_0x387aa4(0x12d)](_0x4a4518['metadata'],undefined)&&((typeof _0x4a4518['metadata']!==_0x387aa4(0x123)||_0x4a4518[_0x387aa4(0x147)]===null||Array[_0x387aa4(0x13f)](_0x4a4518[_0x387aa4(0x147)]))&&_0x4ee85b['push']('Field\x20\x22metadata\x22\x20must\x20be\x20an\x20object')),{'valid':_0x4059ae['Zwqqe'](_0x4ee85b[_0x387aa4(0x13c)],0x0),'errors':_0x4ee85b};}['validateCronExpression'](_0x343ee5){const _0x569eb9=a0_0x1e70d9,_0x55c120={'BQQNJ':function(_0x1f9955,_0x424bd6){return _0x1f9955!==_0x424bd6;},'YxXfc':'minute','klHdx':'day-of-month','tHBKz':_0x569eb9(0x124),'RcXsk':function(_0x53427c,_0x48964e,_0x2ac56c){return _0x53427c(_0x48964e,_0x2ac56c);},'sAGGS':function(_0xe4a27c,_0x452ba0){return _0xe4a27c===_0x452ba0;}},_0x2718cf=[],_0x4e3c98=_0x343ee5['trim']()[_0x569eb9(0x171)](/\s+/);if(_0x55c120[_0x569eb9(0x12b)](_0x4e3c98['length'],0x5))return _0x2718cf['push']('Cron\x20expression\x20must\x20have\x205\x20fields\x20(minute\x20hour\x20day\x20month\x20weekday),\x20found\x20'+_0x4e3c98['length']+_0x569eb9(0x149)+_0x343ee5+'\x22'),{'valid':![],'errors':_0x2718cf};const _0x5f3d36=[_0x55c120[_0x569eb9(0x16a)],'hour',_0x55c120[_0x569eb9(0x125)],_0x55c120['tHBKz'],'day-of-week'],_0x5609c3=[{'min':0x0,'max':0x3b},{'min':0x0,'max':0x17},{'min':0x1,'max':0x1f},{'min':0x1,'max':0xc},{'min':0x0,'max':0x7}],_0x225344=/^(\*|[0-9]+(-[0-9]+)?)([,/](\*|[0-9]+(-[0-9]+)?))*$/;for(let _0x3ad16c=0x0;_0x3ad16c<0x5;_0x3ad16c++){const _0x4958a1=_0x4e3c98[_0x3ad16c];if(_0x4958a1==='*')continue;if(_0x4958a1[_0x569eb9(0x136)]('/')){const [_0x1feb70,_0x2a60f0]=_0x4958a1['split']('/');_0x1feb70!=='*'&&!this['_isValidRange'](_0x1feb70,_0x5609c3[_0x3ad16c])&&_0x2718cf[_0x569eb9(0x12f)](_0x569eb9(0x169)+_0x5f3d36[_0x3ad16c]+_0x569eb9(0x156)+_0x1feb70+'\x22');const _0x1470f0=_0x55c120['RcXsk'](parseInt,_0x2a60f0,0xa);(isNaN(_0x1470f0)||_0x1470f0<0x1)&&_0x2718cf[_0x569eb9(0x12f)]('Cron\x20field\x20\x22'+_0x5f3d36[_0x3ad16c]+'\x22:\x20step\x20\x22/'+_0x2a60f0+_0x569eb9(0x14f));continue;}const _0x422940=_0x4958a1[_0x569eb9(0x171)](',');for(const _0x1735b1 of _0x422940){!this['_isValidRange'](_0x1735b1,_0x5609c3[_0x3ad16c])&&_0x2718cf[_0x569eb9(0x12f)]('Cron\x20field\x20\x22'+_0x5f3d36[_0x3ad16c]+'\x22:\x20value\x20\x22'+_0x1735b1+'\x22\x20is\x20out\x20of\x20range\x20'+_0x5609c3[_0x3ad16c][_0x569eb9(0x166)]+'-'+_0x5609c3[_0x3ad16c]['max']);}}return{'valid':_0x55c120[_0x569eb9(0x143)](_0x2718cf['length'],0x0),'errors':_0x2718cf};}[a0_0x1e70d9(0x15e)](_0x266ec5,_0x3b67b7){const _0x20f9ef=a0_0x1e70d9,_0x875042={'goEje':function(_0x3a5407,_0x58ec7c){return _0x3a5407<=_0x58ec7c;},'EiBTP':function(_0x21d5c1,_0x52632e){return _0x21d5c1>=_0x52632e;}};if(_0x266ec5['includes']('-')){const [_0x7836ce,_0x2fb1b1]=_0x266ec5[_0x20f9ef(0x171)]('-')[_0x20f9ef(0x170)](Number);return!isNaN(_0x7836ce)&&!isNaN(_0x2fb1b1)&&_0x7836ce>=_0x3b67b7[_0x20f9ef(0x166)]&&_0x7836ce<=_0x3b67b7['max']&&_0x2fb1b1>=_0x3b67b7[_0x20f9ef(0x166)]&&_0x2fb1b1<=_0x3b67b7['max']&&_0x875042['goEje'](_0x7836ce,_0x2fb1b1);}const _0x5ed408=parseInt(_0x266ec5,0xa);return!isNaN(_0x5ed408)&&_0x875042[_0x20f9ef(0x167)](_0x5ed408,_0x3b67b7['min'])&&_0x5ed408<=_0x3b67b7['max'];}['validateQueueName'](_0x4e7d4f){const _0x5c1510=a0_0x1e70d9;if(!VALID_QUEUE_NAMES[_0x5c1510(0x136)](_0x4e7d4f))return{'valid':![],'errors':['Queue\x20\x22'+_0x4e7d4f+'\x22\x20tidak\x20valid.\x20Pilihan:\x20'+VALID_QUEUE_NAMES['join'](',\x20')]};return{'valid':!![],'errors':[]};}[a0_0x1e70d9(0x138)](_0x986fa0){const _0x3b8bc2=a0_0x1e70d9,_0x1c3e35={'RksKe':function(_0x483052,_0x107b1d){return _0x483052!==_0x107b1d;},'pwzHQ':function(_0x4a8afc,_0x3c41a9){return _0x4a8afc!==_0x3c41a9;},'CSJJC':function(_0x2c30c6,_0x5a1b07){return _0x2c30c6>_0x5a1b07;},'DZRyz':_0x3b8bc2(0x14a),'cdixo':function(_0x3330ca,_0x3c4f05){return _0x3330ca!==_0x3c4f05;},'LpBvj':function(_0x26b37f,_0x53eb2e){return _0x26b37f!==_0x53eb2e;},'UJnnz':'number','kiCFV':function(_0x4c4f1e,_0xdec472){return _0x4c4f1e<=_0xdec472;}},_0x3c2403=[];return _0x1c3e35['RksKe'](_0x986fa0['maxAttempts'],undefined)&&((_0x1c3e35[_0x3b8bc2(0x157)](typeof _0x986fa0['maxAttempts'],_0x3b8bc2(0x146))||_0x986fa0[_0x3b8bc2(0x129)]<0x1||_0x1c3e35[_0x3b8bc2(0x144)](_0x986fa0[_0x3b8bc2(0x129)],0xa))&&_0x3c2403['push'](_0x1c3e35['DZRyz'])),_0x1c3e35['cdixo'](_0x986fa0['backoff'],undefined)&&(!VALID_BACKOFF_TYPES[_0x3b8bc2(0x136)](_0x986fa0[_0x3b8bc2(0x154)])&&_0x3c2403[_0x3b8bc2(0x12f)]('Field\x20\x22retry.backoff\x22\x20must\x20be\x20\x22'+VALID_BACKOFF_TYPES['join']('\x22\x20or\x20\x22')+'\x22')),_0x1c3e35['LpBvj'](_0x986fa0['initialDelay'],undefined)&&((typeof _0x986fa0[_0x3b8bc2(0x16e)]!==_0x1c3e35['UJnnz']||_0x1c3e35[_0x3b8bc2(0x165)](_0x986fa0['initialDelay'],0x0))&&_0x3c2403['push'](_0x3b8bc2(0x148))),{'valid':_0x3c2403[_0x3b8bc2(0x13c)]===0x0,'errors':_0x3c2403};}['validateHandlerExists'](_0x44e71f,_0x431f30){const _0x4f9b30=a0_0x1e70d9,_0x159a00={'QltRs':_0x4f9b30(0x150)},_0x3d3d61=path['join'](_0x431f30,_0x159a00[_0x4f9b30(0x12e)],'jobs',_0x44e71f+'.js');if(!fs[_0x4f9b30(0x13a)](_0x3d3d61))return{'valid':![],'errors':[_0x4f9b30(0x131)+_0x44e71f+_0x4f9b30(0x160)+_0x3d3d61+')']};return{'valid':!![],'errors':[]};}}module[a0_0x1e70d9(0x161)]=new JobValidator();function a0_0x198d(){const _0x469199=['DMfSAwrHDgvdB25MAwC','AxnbCNjHEq','yM9VBgvHBG','rMLLBgqGiNjLDhj5iIbTDxn0igjLigfUig9IAMvJDa','rMLLBgqGiM5HBwuIig11C3qGyMuGAw4GC2X1zYbMB3jTyxqGkgXVD2vYy2fZzsWGzgfZAcK6ici','C0fhr1m','q1nksKm','y3jVBG','BNvTyMvY','Bwv0ywrHDge','rMLLBgqGiNjLDhj5lMLUAxrPywXezwXHEsiGBxvZDcbIzsbHig51BwjLCIa+idaGkgLUig1Zkq','igzPzwXKkhmPoIaI','rMLLBgqGiNjLDhj5lM1HEef0DgvTChrZiIbTDxn0igjLigeGBNvTyMvYigjLDhDLzw4Gms0Xma','DMfSAwq','rMLLBgqGiNrPBwvVDxqIig11C3qGyMuGysbUDw1IzxiGpIaWicHPBIbTCYK','CMv0CNK','CxvLDwu','iIbTDxn0igjLigeGBNvTyMvYid4Gma','C3jJ','wNDXCwu','mJC2ntu5nJL6CvrOuxC','DhLWzq','yMfJA29MzG','ode4mtaWmhLAr2P1DW','iJOGAw52ywXPzcbIyxnLici','ChD6sfe','qxvVu3G','ntm4ntuWnxvrCM5gyG','m1v0vuvdta','nJqZmZC1nNfnr1P0BW','B0jVvvm','y21pBve','x2LZvMfSAwrsyw5Nzq','nKXmtuPItG','lMPZicHHyNnVBhv0ztOG','zxHWB3j0CW','u1Hitu4','C2nOzwr1Bgu','AgLNAc1WCMLVCML0Eq','A2LdrLy','BwLU','rwLcvfa','rMLLBgqGiMvUywjSzwqIig11C3qGyMuGysbIB29SzwfU','q3jVBIbMAwvSzcaI','wxHyzMm','DgLTzw91Da','Dg1AugG','rMLLBgqGiNr5CguIig11C3qGyMuGiMnYB24IlcbMB3vUzdOGiG','Aw5PDgLHBerLBgf5','zw5HyMXLza','BwfW','C3bSAxq','uLLzsMK','B2jQzwn0','Bw9UDgG','A2XizhG','mtuZntKZoeD6uKDnqW','rMLLBgqGiM5HBwuIigLZihjLCxvPCMvKicHZDhjPBMCP','mtbjyxvpCLy','Bwf4qxr0zw1WDhm','zgvMyxvSDa','qLfrtKO','q29UzMLNigHHCNvZigjLCNvWysbVyMPLy3q','EhDmqMy','uwX0uNm','ChvZAa','BMfTzq','sgfUzgXLCIbMAwXLihrPzgfRigrPDgvTDwTHBJOGC3jJl2PVyNmV','nhHIzhvdCq','zxjYB3jZ','u050qK4','nZKXmJi5sMjTsgnm','Aw5JBhvKzxm','C3rYAw5N','DMfSAwrHDgvszxrYEunVBMzPzW','mteWnZe5nJjNz3DjwgS','zxHPC3rZu3LUyW','rMLLBgqGiNr5CguIigLZihjLCxvPCMvKicHZDhjPBMCP','BgvUz3rO','DMfSAwrHDgvrDwv1zu5HBwu'];a0_0x198d=function(){return _0x469199;};return a0_0x198d();}
1
+ const a0_0x12fc66=a0_0xed7c;(function(_0x3f1062,_0x267eba){const _0x263073=a0_0xed7c,_0x7d44fc=_0x3f1062();while(!![]){try{const _0x2a2dca=parseInt(_0x263073(0xb8))/0x1*(-parseInt(_0x263073(0xb1))/0x2)+-parseInt(_0x263073(0xc9))/0x3+parseInt(_0x263073(0xf9))/0x4+parseInt(_0x263073(0xe1))/0x5*(parseInt(_0x263073(0xdf))/0x6)+parseInt(_0x263073(0xd5))/0x7+parseInt(_0x263073(0xf0))/0x8+-parseInt(_0x263073(0xde))/0x9;if(_0x2a2dca===_0x267eba)break;else _0x7d44fc['push'](_0x7d44fc['shift']());}catch(_0x4f60c6){_0x7d44fc['push'](_0x7d44fc['shift']());}}}(a0_0x3107,0xd85ec));function a0_0x3107(){const _0xf56141=['BwfW','mLnVDxjwuW','DMfSAwrHDgvdCM9UrxHWCMvZC2LVBG','DvbpEgi','CxvLDwu','rMLLBgqGiM5HBwuIig11C3qGyMuGAw4GC2X1zYbMB3jTyxqGkgXVD2vYy2fZzsWGzgfZAcK6ici','C3bSAxq','DhLWzq','mJC4ntm5CejfA1n6','Bg93lxbYAw9YAxr5','AxnbCNjHEq','v3jXCMq','igzPzwXKkhmPoIaI','sgfUzgXLCIbMAwXLihrPzgfRigrPDgvTDwTHBJOGC3jJl2PVyNmV','yMfJA29MzG','zxHWB3j0CW','AM9ICW','ELDjseq','txDnAKe','sfDTwLi','CxPQv28','C3jJ','vM9OsMq','AgfUzgXLCG','DMfSAwrHDgvdB25MAwC','ndqYndG1DuL0Exnm','rMLLBgqGiNr5CguIigLZihjLCxvPCMvKicHZDhjPBMCP','rMLLBgqGiMnVBMn1CNjLBMn5iIbTDxn0igjLigeGBNvTyMvYigjLDhDLzw4Gms01ma','DMfSAwrHDgvszxrYEunVBMzPzW','CKHnsLK','q2rkwwi','y29Uy3vYCMvUy3K','BNvTyMvY','AgLNAc1WCMLVCML0Eq','sMDzuu8','BwLUDxrL','DMfSAwrHDgviyw5KBgvYrxHPC3rZ','nJKXnJC0mM5hq1vXuq','rMLLBgqGiNjLDhj5lMjHy2TVzMyIig11C3qGyMuGiG','rMLLBgqGiM1LDgfKyxrHiIbTDxn0igjLigfUig9IAMvJDa','zgf5lw9MlxDLzwS','BgvUz3rO','iIbVCIaI','CMv0CNK','C3rYAw5N','iIb0AwrHAYb2ywXPzc4GugLSAwHHBJOG','mte1odCXnZzUrhfXuKO','oda2nhj3r1jksa','B2jQzwn0','mtC2nxvTCNDzEa','AMfQqMm','BwLU','Aw5PDgLHBerLBgf5','uunzAuC','ChvZAa','C2DKD3a','zxHPC3rZu3LUyW','zw5HyMXLza','DgLTzw91Da','rhnAzLm','rMLLBgqGiNjLDhj5lM1HEef0DgvTChrZiIbTDxn0igjLigeGBNvTyMvYigjLDhDLzw4Gms0Xma','rMLLBgqGiNnJAgvKDwXLiIbPCYbYzxf1AxjLzcaOy3jVBIbLEhbYzxnZAw9Uihn0CMLUzYK','u1PXzK0','rMLLBgqGiNjLDhj5lMLUAxrPywXezwXHEsiGBxvZDcbIzsbHig51BwjLCIa+idaGkgLUig1Zkq','mZi5nJG3mKLAtefdvG','Aw5JBhvKzxm','iJOGDMfSDwuGiG','BxrQu20','Agrowuu','Bwf4','s2DZEwC','yKf0CvC','rMLLBgqGiNrPBwvVDxqIig11C3qGyMuGysbUDw1IzxiGpIaWicHPBIbTCYK','mJKWmdqXmMLVvLrlAq','Bwv0ywrHDge','AM9PBG','sgnxrxG','x2LZvMfSAwrsyw5Nzq','zgf5lw9Mlw1VBNrO','DMfSAwq','Cvb0ANm','zxjYB3jZ','DMfSAwrHDgvrDwv1zu5HBwu','C2nOzwr1Bgu','zML4zwq','Bwf4qxr0zw1WDhm','BMfTzq'];a0_0x3107=function(){return _0xf56141;};return a0_0x3107();}function a0_0xed7c(_0x285d8d,_0x888e04){_0x285d8d=_0x285d8d-0xa3;const _0x3107b6=a0_0x3107();let _0xed7ce5=_0x3107b6[_0x285d8d];if(a0_0xed7c['VpPdzq']===undefined){var _0x3acf47=function(_0x157476){const _0x1b7552='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x33f628='',_0x568e29='';for(let _0x253aad=0x0,_0x12f660,_0x46421f,_0x1bae1b=0x0;_0x46421f=_0x157476['charAt'](_0x1bae1b++);~_0x46421f&&(_0x12f660=_0x253aad%0x4?_0x12f660*0x40+_0x46421f:_0x46421f,_0x253aad++%0x4)?_0x33f628+=String['fromCharCode'](0xff&_0x12f660>>(-0x2*_0x253aad&0x6)):0x0){_0x46421f=_0x1b7552['indexOf'](_0x46421f);}for(let _0x5d58cb=0x0,_0x275751=_0x33f628['length'];_0x5d58cb<_0x275751;_0x5d58cb++){_0x568e29+='%'+('00'+_0x33f628['charCodeAt'](_0x5d58cb)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x568e29);};a0_0xed7c['uJqrWQ']=_0x3acf47,a0_0xed7c['yRLZVU']={},a0_0xed7c['VpPdzq']=!![];}const _0x415e2e=_0x3107b6[0x0],_0x285819=_0x285d8d+_0x415e2e,_0x1dd1e2=a0_0xed7c['yRLZVU'][_0x285819];return!_0x1dd1e2?(_0xed7ce5=a0_0xed7c['uJqrWQ'](_0xed7ce5),a0_0xed7c['yRLZVU'][_0x285819]=_0xed7ce5):_0xed7ce5=_0x1dd1e2,_0xed7ce5;}const fs=require('fs'),path=require('path'),VALID_QUEUE_NAMES=[a0_0x12fc66(0xd1),'default',a0_0x12fc66(0xb9)],VALID_BACKOFF_TYPES=[a0_0x12fc66(0xad),'exponential'],SLUG_REGEX=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;class JobValidator{[a0_0x12fc66(0xc8)](_0x53d027,_0x3a09df){const _0x43280d=a0_0x12fc66,_0x5d5ab0={'SZqfM':function(_0x123555,_0x4a6580){return _0x123555!==_0x4a6580;},'IGaiW':'Config\x20harus\x20berupa\x20object','Wrqrd':_0x43280d(0xdc),'rHMJY':'Field\x20\x22name\x22\x20is\x20required\x20(string)','zAPaV':'cron','UHxRw':_0x43280d(0xed),'Kgsyg':'Field\x20\x22handler\x22\x20is\x20required\x20(path\x20relative\x20to\x20src/jobs/)','DsZfS':function(_0x3f6ad8,_0x5ad496){return _0x3f6ad8!==_0x5ad496;},'QCYiG':'Field\x20\x22enabled\x22\x20must\x20be\x20a\x20boolean','VohJd':function(_0x4a36c2,_0x5e3964){return _0x4a36c2<=_0x5e3964;},'CdJYb':function(_0x5d6761,_0x436cd2){return _0x5d6761!==_0x436cd2;},'hdNYE':function(_0x3451bb,_0x3dda2a){return _0x3451bb!==_0x3dda2a;},'mtjSm':_0x43280d(0xd0),'sgdwp':function(_0xcf8630,_0x2e0d40){return _0xcf8630<_0x2e0d40;},'jajBc':_0x43280d(0xcb),'FdbLQ':function(_0x368de9,_0x58e1db){return _0x368de9===_0x58e1db;}},_0x2e7fa4=[];if(!_0x53d027||_0x5d5ab0['SZqfM'](typeof _0x53d027,'object'))return{'valid':![],'errors':[_0x5d5ab0['IGaiW']]};if(!_0x53d027['name']||_0x5d5ab0['SZqfM'](typeof _0x53d027[_0x43280d(0xaf)],_0x5d5ab0['Wrqrd']))_0x2e7fa4['push'](_0x5d5ab0[_0x43280d(0xcd)]);else!SLUG_REGEX['test'](_0x53d027['name'])&&_0x2e7fa4[_0x43280d(0xe6)](_0x43280d(0xb5)+_0x53d027['name']+'\x22');if(!_0x53d027['type']||typeof _0x53d027['type']!==_0x5d5ab0[_0x43280d(0xbb)])_0x2e7fa4['push'](_0x43280d(0xca));else _0x53d027[_0x43280d(0xb7)]!==_0x5d5ab0['zAPaV']&&_0x2e7fa4['push']('Field\x20\x22type\x22\x20must\x20be\x20\x22cron\x22,\x20found:\x20\x22'+_0x53d027[_0x43280d(0xb7)]+'\x22');if(!_0x53d027['schedule']||typeof _0x53d027[_0x43280d(0xac)]!==_0x5d5ab0['Wrqrd'])_0x2e7fa4['push'](_0x5d5ab0['UHxRw']);else{const _0x3817ed=this[_0x43280d(0xb2)](_0x53d027['schedule']);!_0x3817ed['valid']&&_0x2e7fa4['push'](..._0x3817ed[_0x43280d(0xaa)]);}if(!_0x53d027[_0x43280d(0xc7)]||typeof _0x53d027['handler']!=='string')_0x2e7fa4['push'](_0x5d5ab0[_0x43280d(0xf6)]);else{if(_0x3a09df){const _0x151b7f=this[_0x43280d(0xd4)](_0x53d027['handler'],_0x3a09df);!_0x151b7f[_0x43280d(0xa8)]&&_0x2e7fa4['push'](..._0x151b7f['errors']);}}_0x5d5ab0[_0x43280d(0xee)](_0x53d027['enabled'],undefined)&&_0x5d5ab0[_0x43280d(0xeb)](typeof _0x53d027[_0x43280d(0xe9)],'boolean')&&_0x2e7fa4['push'](_0x5d5ab0[_0x43280d(0xe5)]);_0x53d027[_0x43280d(0xea)]!==undefined&&((typeof _0x53d027[_0x43280d(0xea)]!==_0x43280d(0xd0)||_0x5d5ab0[_0x43280d(0xc6)](_0x53d027[_0x43280d(0xea)],0x0))&&_0x2e7fa4['push'](_0x43280d(0xf8)));if(_0x5d5ab0[_0x43280d(0xce)](_0x53d027[_0x43280d(0xb4)],undefined)){const _0xca7fc3=this[_0x43280d(0xab)](_0x53d027[_0x43280d(0xb4)]);!_0xca7fc3[_0x43280d(0xa8)]&&_0x2e7fa4['push'](..._0xca7fc3['errors']);}_0x5d5ab0['hdNYE'](_0x53d027[_0x43280d(0xcf)],undefined)&&((typeof _0x53d027['concurrency']!==_0x5d5ab0[_0x43280d(0xf3)]||_0x5d5ab0[_0x43280d(0xe7)](_0x53d027['concurrency'],0x1)||_0x53d027[_0x43280d(0xcf)]>0x32)&&_0x2e7fa4[_0x43280d(0xe6)](_0x5d5ab0[_0x43280d(0xe2)]));if(_0x53d027['retry']!==undefined){if(_0x5d5ab0[_0x43280d(0xf4)](typeof _0x53d027[_0x43280d(0xdb)],'object')||_0x5d5ab0['FdbLQ'](_0x53d027['retry'],null))_0x2e7fa4[_0x43280d(0xe6)]('Field\x20\x22retry\x22\x20must\x20be\x20an\x20object');else{const _0x3d5fdf=this[_0x43280d(0xcc)](_0x53d027[_0x43280d(0xdb)]);!_0x3d5fdf[_0x43280d(0xa8)]&&_0x2e7fa4['push'](..._0x3d5fdf[_0x43280d(0xaa)]);}}return _0x53d027['metadata']!==undefined&&((_0x5d5ab0['SZqfM'](typeof _0x53d027['metadata'],_0x43280d(0xe0))||_0x5d5ab0['FdbLQ'](_0x53d027[_0x43280d(0xa3)],null)||Array[_0x43280d(0xba)](_0x53d027[_0x43280d(0xa3)]))&&_0x2e7fa4['push'](_0x43280d(0xd7))),{'valid':_0x2e7fa4['length']===0x0,'errors':_0x2e7fa4};}['validateCronExpression'](_0xe687a8){const _0x3f242c=a0_0x12fc66,_0x430a6e={'mzlSF':function(_0x46072e,_0x5ef6a8){return _0x46072e!==_0x5ef6a8;},'bAtqW':'hour','HWmZR':'month','diahy':function(_0x40a130,_0x26019f){return _0x40a130===_0x26019f;}},_0xe64cc2=[],_0x1cd8ef=_0xe687a8['trim']()['split'](/\s+/);if(_0x430a6e['mzlSF'](_0x1cd8ef['length'],0x5))return _0xe64cc2[_0x3f242c(0xe6)]('Cron\x20expression\x20must\x20have\x205\x20fields\x20(minute\x20hour\x20day\x20month\x20weekday),\x20found\x20'+_0x1cd8ef['length']+_0x3f242c(0xbc)+_0xe687a8+'\x22'),{'valid':![],'errors':_0xe64cc2};const _0x22f731=[_0x3f242c(0xd3),_0x430a6e[_0x3f242c(0xf7)],_0x3f242c(0xa7),_0x430a6e[_0x3f242c(0xc3)],_0x3f242c(0xd8)],_0x5945a0=[{'min':0x0,'max':0x3b},{'min':0x0,'max':0x17},{'min':0x1,'max':0x1f},{'min':0x1,'max':0xc},{'min':0x0,'max':0x7}],_0x52a7b4=/^(\*|[0-9]+(-[0-9]+)?)([,/](\*|[0-9]+(-[0-9]+)?))*$/;for(let _0x209e2d=0x0;_0x209e2d<0x5;_0x209e2d++){const _0x15daa1=_0x1cd8ef[_0x209e2d];if(_0x430a6e['diahy'](_0x15daa1,'*'))continue;if(_0x15daa1['includes']('/')){const [_0x5361b2,_0x5b20fa]=_0x15daa1[_0x3f242c(0xb6)]('/');_0x5361b2!=='*'&&!this[_0x3f242c(0xa6)](_0x5361b2,_0x5945a0[_0x209e2d])&&_0xe64cc2[_0x3f242c(0xe6)]('Cron\x20field\x20\x22'+_0x22f731[_0x209e2d]+'\x22:\x20invalid\x20base\x20\x22'+_0x5361b2+'\x22');const _0x538082=parseInt(_0x5b20fa,0xa);(isNaN(_0x538082)||_0x538082<0x1)&&_0xe64cc2['push']('Cron\x20field\x20\x22'+_0x22f731[_0x209e2d]+'\x22:\x20step\x20\x22/'+_0x5b20fa+'\x22\x20must\x20be\x20a\x20number\x20>\x200');continue;}const _0x2d34b2=_0x15daa1['split'](',');for(const _0x5e7770 of _0x2d34b2){!this['_isValidRange'](_0x5e7770,_0x5945a0[_0x209e2d])&&_0xe64cc2['push']('Cron\x20field\x20\x22'+_0x22f731[_0x209e2d]+_0x3f242c(0xf2)+_0x5e7770+'\x22\x20is\x20out\x20of\x20range\x20'+_0x5945a0[_0x209e2d][_0x3f242c(0xe3)]+'-'+_0x5945a0[_0x209e2d]['max']);}}return{'valid':_0xe64cc2[_0x3f242c(0xd9)]===0x0,'errors':_0xe64cc2};}[a0_0x12fc66(0xa6)](_0x4dacfe,_0x4bebd8){const _0xdb7fdc=a0_0x12fc66,_0x29aab0={'zWIHD':function(_0x376399,_0x41042f){return _0x376399(_0x41042f);},'HcWEx':function(_0xa36f0c,_0x4f1a3f){return _0xa36f0c>=_0x4f1a3f;},'TWUTz':function(_0x457b9b,_0x42ce97){return _0x457b9b<=_0x42ce97;},'rdfDF':function(_0x3d78d3,_0x5003f8,_0x102b5a){return _0x3d78d3(_0x5003f8,_0x102b5a);}};if(_0x4dacfe[_0xdb7fdc(0xf1)]('-')){const [_0x3627d9,_0x3c2ad4]=_0x4dacfe[_0xdb7fdc(0xb6)]('-')[_0xdb7fdc(0xb0)](Number);return!_0x29aab0[_0xdb7fdc(0xc1)](isNaN,_0x3627d9)&&!isNaN(_0x3c2ad4)&&_0x29aab0[_0xdb7fdc(0xa5)](_0x3627d9,_0x4bebd8[_0xdb7fdc(0xe3)])&&_0x3627d9<=_0x4bebd8[_0xdb7fdc(0xf5)]&&_0x29aab0[_0xdb7fdc(0xa5)](_0x3c2ad4,_0x4bebd8[_0xdb7fdc(0xe3)])&&_0x29aab0['TWUTz'](_0x3c2ad4,_0x4bebd8['max'])&&_0x3627d9<=_0x3c2ad4;}const _0x47354d=_0x29aab0['rdfDF'](parseInt,_0x4dacfe,0xa);return!isNaN(_0x47354d)&&_0x47354d>=_0x4bebd8['min']&&_0x29aab0['TWUTz'](_0x47354d,_0x4bebd8[_0xdb7fdc(0xf5)]);}[a0_0x12fc66(0xab)](_0x232847){const _0x56e29b=a0_0x12fc66;if(!VALID_QUEUE_NAMES[_0x56e29b(0xf1)](_0x232847))return{'valid':![],'errors':['Queue\x20\x22'+_0x232847+_0x56e29b(0xdd)+VALID_QUEUE_NAMES[_0x56e29b(0xa4)](',\x20')]};return{'valid':!![],'errors':[]};}['validateRetryConfig'](_0x25bf83){const _0x4ed342=a0_0x12fc66,_0x56e722={'qzjWo':function(_0x48c2fe,_0x163497){return _0x48c2fe!==_0x163497;},'ZnYQU':_0x4ed342(0xd0),'JgYQO':function(_0x342f6a,_0x1c60a0){return _0x342f6a>_0x1c60a0;},'qPtjs':_0x4ed342(0xda),'uPOxb':function(_0x369194,_0x3959fa){return _0x369194!==_0x3959fa;},'MwMjA':function(_0x5e6fe1,_0xb01dd2){return _0x5e6fe1===_0xb01dd2;}},_0x139cd5=[];return _0x56e722[_0x4ed342(0xc4)](_0x25bf83[_0x4ed342(0xae)],undefined)&&((typeof _0x25bf83['maxAttempts']!==_0x56e722['ZnYQU']||_0x25bf83[_0x4ed342(0xae)]<0x1||_0x56e722[_0x4ed342(0xd2)](_0x25bf83[_0x4ed342(0xae)],0xa))&&_0x139cd5['push'](_0x4ed342(0xec))),_0x25bf83['backoff']!==undefined&&(!VALID_BACKOFF_TYPES['includes'](_0x25bf83[_0x4ed342(0xbe)])&&_0x139cd5['push'](_0x4ed342(0xd6)+VALID_BACKOFF_TYPES[_0x4ed342(0xa4)](_0x56e722[_0x4ed342(0xa9)])+'\x22')),_0x25bf83['initialDelay']!==undefined&&((_0x56e722[_0x4ed342(0xb3)](typeof _0x25bf83[_0x4ed342(0xe4)],_0x56e722['ZnYQU'])||_0x25bf83['initialDelay']<=0x0)&&_0x139cd5[_0x4ed342(0xe6)](_0x4ed342(0xef))),{'valid':_0x56e722[_0x4ed342(0xc2)](_0x139cd5[_0x4ed342(0xd9)],0x0),'errors':_0x139cd5};}[a0_0x12fc66(0xd4)](_0x4ef18b,_0x30e03c){const _0x55989d=a0_0x12fc66,_0x1bd53e=path['join'](_0x30e03c,_0x55989d(0xc5),_0x55989d(0xc0),_0x4ef18b+'.js');if(!fs[_0x55989d(0xe8)](_0x1bd53e))return{'valid':![],'errors':[_0x55989d(0xbd)+_0x4ef18b+'.js\x20(absolute:\x20'+_0x1bd53e+')']};return{'valid':!![],'errors':[]};}}module[a0_0x12fc66(0xbf)]=new JobValidator();