@restforgejs/platform 4.1.1 → 4.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/bin/sdf-tools.exe +0 -0
  2. package/build-info.json +2 -2
  3. package/cli/consumer-deploy.js +1 -1
  4. package/cli/consumer.js +1 -1
  5. package/generators/cli/endpoint/create.js +42 -3
  6. package/generators/cli/schema/apply.js +525 -0
  7. package/generators/cli/schema/diff.js +321 -0
  8. package/generators/cli/schema/generate-ddl.js +7 -10
  9. package/generators/cli/schema/init.js +95 -172
  10. package/generators/cli/schema/migrate.js +10 -16
  11. package/generators/cli/schema/models.js +8 -12
  12. package/generators/cli/schema/template.js +222 -0
  13. package/generators/cli/schema/validate.js +8 -12
  14. package/generators/cli-entry.js +17 -2
  15. package/generators/lib/dbschema-kit/apply-engine.js +582 -0
  16. package/generators/lib/dbschema-kit/diff-engine.js +703 -0
  17. package/generators/lib/dbschema-kit/diff-reporter.js +272 -0
  18. package/generators/lib/dbschema-kit/emitters/alter-table.js +275 -0
  19. package/generators/lib/payload/endpoint-schema-validator.js +171 -0
  20. package/generators/lib/payload/payload-runner.js +137 -220
  21. package/generators/lib/payload/schema-diff.js +277 -0
  22. package/generators/lib/utils/audit-columns.js +181 -0
  23. package/generators/lib/utils/cli-output.js +17 -0
  24. package/generators/lib/utils/database-introspector.js +16 -13
  25. package/integrity-manifest.json +8 -8
  26. package/package.json +1 -1
  27. package/scripts/verify-integrity.js +1 -1
  28. package/server.js +1 -1
  29. package/src/components/handlers/adjust_handler.js +1 -1
  30. package/src/components/handlers/audit_handler.js +1 -1
  31. package/src/components/handlers/delete_handler.js +1 -1
  32. package/src/components/handlers/export_handler.js +1 -1
  33. package/src/components/handlers/import_handler.js +1 -1
  34. package/src/components/handlers/insert_handler.js +1 -1
  35. package/src/components/handlers/update_handler.js +1 -1
  36. package/src/components/handlers/upload_handler.js +1 -1
  37. package/src/components/handlers/workflow_handler.js +1 -1
  38. package/src/components/integrations/webhook.js +1 -1
  39. package/src/consumers/baseConsumer.js +1 -1
  40. package/src/consumers/declarativeMapper.js +1 -1
  41. package/src/consumers/handlers/apiHandler.js +1 -1
  42. package/src/consumers/handlers/consoleHandler.js +1 -1
  43. package/src/consumers/handlers/databaseHandler.js +1 -1
  44. package/src/consumers/handlers/index.js +1 -1
  45. package/src/consumers/handlers/kafkaHandler.js +1 -1
  46. package/src/consumers/index.js +1 -1
  47. package/src/consumers/messageTransformer.js +1 -1
  48. package/src/consumers/validator.js +1 -1
  49. package/src/core/db/dialect/base-dialect.js +1 -1
  50. package/src/core/db/dialect/index.js +1 -1
  51. package/src/core/db/dialect/mysql-dialect.js +1 -1
  52. package/src/core/db/dialect/oracle-dialect.js +1 -1
  53. package/src/core/db/dialect/postgres-dialect.js +1 -1
  54. package/src/core/db/dialect/sqlite-dialect.js +1 -1
  55. package/src/core/db/flatten-helper.js +1 -1
  56. package/src/core/db/query-builder-error.js +1 -1
  57. package/src/core/db/query-builder.js +1 -1
  58. package/src/core/db/relation-helper.js +1 -1
  59. package/src/core/handlers/delete_handler.js +1 -1
  60. package/src/core/handlers/insert_handler.js +1 -1
  61. package/src/core/handlers/update_handler.js +1 -1
  62. package/src/core/models/base-model.js +1 -1
  63. package/src/core/utils/cache-manager.js +1 -1
  64. package/src/core/utils/component-engine.js +1 -1
  65. package/src/core/utils/context-builder.js +1 -1
  66. package/src/core/utils/datetime-formatter.js +1 -1
  67. package/src/core/utils/datetime-parser.js +1 -1
  68. package/src/core/utils/db.js +1 -1
  69. package/src/core/utils/logger.js +1 -1
  70. package/src/core/utils/payload-loader.js +1 -1
  71. package/src/core/utils/security-checks.js +1 -1
  72. package/src/middleware/body-options.js +1 -1
  73. package/src/middleware/cors.js +1 -1
  74. package/src/middleware/idempotency.js +1 -1
  75. package/src/middleware/rate-limiter.js +1 -1
  76. package/src/middleware/request-logger.js +1 -1
  77. package/src/middleware/security-headers.js +1 -1
  78. package/src/models/base-model-mysql.js +1 -1
  79. package/src/models/base-model-oracle.js +1 -1
  80. package/src/models/base-model-sqlite.js +1 -1
  81. package/src/models/base-model.js +1 -1
  82. package/src/pro/caching/redis-client.js +1 -1
  83. package/src/pro/caching/redis-helper.js +1 -1
  84. package/src/pro/consumers/baseConsumer.js +1 -1
  85. package/src/pro/consumers/declarativeMapper.js +1 -1
  86. package/src/pro/consumers/handlers/apiHandler.js +1 -1
  87. package/src/pro/consumers/handlers/consoleHandler.js +1 -1
  88. package/src/pro/consumers/handlers/databaseHandler.js +1 -1
  89. package/src/pro/consumers/handlers/index.js +1 -1
  90. package/src/pro/consumers/handlers/kafkaHandler.js +1 -1
  91. package/src/pro/consumers/index.js +1 -1
  92. package/src/pro/consumers/messageTransformer.js +1 -1
  93. package/src/pro/consumers/validator.js +1 -1
  94. package/src/pro/database/base-model-mysql.js +1 -1
  95. package/src/pro/database/base-model-oracle.js +1 -1
  96. package/src/pro/database/base-model-sqlite.js +1 -1
  97. package/src/pro/database/db-mysql.js +1 -1
  98. package/src/pro/database/db-oracle.js +1 -1
  99. package/src/pro/database/db-sqlite.js +1 -1
  100. package/src/pro/excel/excel-generator.js +1 -1
  101. package/src/pro/excel/excel-parser.js +1 -1
  102. package/src/pro/excel/export-service.js +1 -1
  103. package/src/pro/excel/export_handler.js +1 -1
  104. package/src/pro/excel/import-service.js +1 -1
  105. package/src/pro/excel/import-validator.js +1 -1
  106. package/src/pro/excel/import_handler.js +1 -1
  107. package/src/pro/excel/upsert-builder.js +1 -1
  108. package/src/pro/idgen/idgen-routes.js +1 -1
  109. package/src/pro/integrations/lookup-resolver.js +1 -1
  110. package/src/pro/integrations/upload-handler-v2.js +1 -1
  111. package/src/pro/integrations/upload-handler.js +1 -1
  112. package/src/pro/integrations/webhook.js +1 -1
  113. package/src/pro/locking/lock-routes.js +1 -1
  114. package/src/pro/locking/resource-lock-manager.js +1 -1
  115. package/src/pro/messaging/kafkaConsumerService.js +1 -1
  116. package/src/pro/messaging/kafkaService.js +1 -1
  117. package/src/pro/messaging/messagehubService.js +1 -1
  118. package/src/pro/messaging/rabbitmqService.js +1 -1
  119. package/src/pro/scheduler/job-manager.js +1 -1
  120. package/src/pro/scheduler/job-routes.js +1 -1
  121. package/src/pro/scheduler/job-validator.js +1 -1
  122. package/src/pro/storage/base-storage-provider.js +1 -1
  123. package/src/pro/storage/file-metadata-helper.js +1 -1
  124. package/src/pro/storage/index.js +1 -1
  125. package/src/pro/storage/local-storage-provider.js +1 -1
  126. package/src/pro/storage/s3-storage-provider.js +1 -1
  127. package/src/pro/storage/upload-cleanup-job.js +1 -1
  128. package/src/pro/storage/upload-cleanup-scheduler.js +1 -1
  129. package/src/pro/storage/upload-pending-tracker.js +1 -1
  130. package/src/pro/websocket/broadcast-helper.js +1 -1
  131. package/src/pro/websocket/index.js +1 -1
  132. package/src/pro/websocket/livesync-server.js +1 -1
  133. package/src/pro/websocket/ws-broadcaster.js +1 -1
  134. package/src/services/export-service.js +1 -1
  135. package/src/services/import-service.js +1 -1
  136. package/src/services/kafkaConsumerService.js +1 -1
  137. package/src/services/kafkaService.js +1 -1
  138. package/src/services/messagehubService.js +1 -1
  139. package/src/services/rabbitmqService.js +1 -1
  140. package/src/utils/cache-invalidation-registry.js +1 -1
  141. package/src/utils/cache-manager.js +1 -1
  142. package/src/utils/component-engine.js +1 -1
  143. package/src/utils/config-extractor.js +1 -1
  144. package/src/utils/consumerLogger.js +1 -1
  145. package/src/utils/context-builder.js +1 -1
  146. package/src/utils/dashboard-helpers.js +1 -1
  147. package/src/utils/dateHelper.js +1 -1
  148. package/src/utils/datetime-formatter.js +1 -1
  149. package/src/utils/datetime-parser.js +1 -1
  150. package/src/utils/db-bootstrap.js +1 -1
  151. package/src/utils/db-mysql.js +1 -1
  152. package/src/utils/db-oracle.js +1 -1
  153. package/src/utils/db-sqlite.js +1 -1
  154. package/src/utils/db.js +1 -1
  155. package/src/utils/demo-generator.js +1 -1
  156. package/src/utils/excel-generator.js +1 -1
  157. package/src/utils/excel-parser.js +1 -1
  158. package/src/utils/file-watcher.js +1 -1
  159. package/src/utils/id-generator.js +1 -1
  160. package/src/utils/idempotency-manager.js +1 -1
  161. package/src/utils/import-validator.js +1 -1
  162. package/src/utils/license-client.js +1 -1
  163. package/src/utils/lock-manager.js +1 -1
  164. package/src/utils/logger.js +1 -1
  165. package/src/utils/lookup-resolver.js +1 -1
  166. package/src/utils/payload-loader.js +1 -1
  167. package/src/utils/processor-response.js +1 -1
  168. package/src/utils/rabbitmq.js +1 -1
  169. package/src/utils/redis-client.js +1 -1
  170. package/src/utils/redis-helper.js +1 -1
  171. package/src/utils/request-scope.js +1 -1
  172. package/src/utils/security-checks.js +1 -1
  173. package/src/utils/service-resolver.js +1 -1
  174. package/src/utils/shutdown-coordinator.js +1 -1
  175. package/src/utils/trusted-keys.js +1 -1
  176. package/src/utils/upload-handler.js +1 -1
  177. package/src/utils/upsert-builder.js +1 -1
  178. package/src/utils/workflow-hook-executor.js +1 -1
@@ -1 +1 @@
1
- const a0_0x3c425e=a0_0xbca5;(function(_0x196be3,_0xb8a3ef){const _0x1a9329=a0_0xbca5,_0xaf5554=_0x196be3();while(!![]){try{const _0x405b2e=parseInt(_0x1a9329(0x17b))/0x1+-parseInt(_0x1a9329(0x16f))/0x2*(parseInt(_0x1a9329(0x18c))/0x3)+parseInt(_0x1a9329(0x180))/0x4*(-parseInt(_0x1a9329(0x167))/0x5)+parseInt(_0x1a9329(0x186))/0x6+parseInt(_0x1a9329(0x161))/0x7+-parseInt(_0x1a9329(0x16d))/0x8+parseInt(_0x1a9329(0x177))/0x9;if(_0x405b2e===_0xb8a3ef)break;else _0xaf5554['push'](_0xaf5554['shift']());}catch(_0x2d8743){_0xaf5554['push'](_0xaf5554['shift']());}}}(a0_0x1723,0xabc19));const {createConnection,createChannel,setupInfrastructure,closeConnection,getConfig}=require('../utils/rabbitmq'),{formatDate}=require(a0_0x3c425e(0x166));function a0_0xbca5(_0x49bf58,_0x14f2a6){_0x49bf58=_0x49bf58-0x158;const _0x17230e=a0_0x1723();let _0xbca574=_0x17230e[_0x49bf58];if(a0_0xbca5['LRuAOL']===undefined){var _0x1138e7=function(_0x273945){const _0x21bf2b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x41fa4c='',_0x25bd37='';for(let _0x37f868=0x0,_0x46ffa0,_0x15b736,_0x1d3ef1=0x0;_0x15b736=_0x273945['charAt'](_0x1d3ef1++);~_0x15b736&&(_0x46ffa0=_0x37f868%0x4?_0x46ffa0*0x40+_0x15b736:_0x15b736,_0x37f868++%0x4)?_0x41fa4c+=String['fromCharCode'](0xff&_0x46ffa0>>(-0x2*_0x37f868&0x6)):0x0){_0x15b736=_0x21bf2b['indexOf'](_0x15b736);}for(let _0x569929=0x0,_0x56cf1f=_0x41fa4c['length'];_0x569929<_0x56cf1f;_0x569929++){_0x25bd37+='%'+('00'+_0x41fa4c['charCodeAt'](_0x569929)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x25bd37);};a0_0xbca5['PHudng']=_0x1138e7,a0_0xbca5['jDPzFF']={},a0_0xbca5['LRuAOL']=!![];}const _0x3b07b6=_0x17230e[0x0],_0x244940=_0x49bf58+_0x3b07b6,_0x72c4eb=a0_0xbca5['jDPzFF'][_0x244940];return!_0x72c4eb?(_0xbca574=a0_0xbca5['PHudng'](_0xbca574),a0_0xbca5['jDPzFF'][_0x244940]=_0xbca574):_0xbca574=_0x72c4eb,_0xbca574;}function a0_0x1723(){const _0x8076e=['mJa3nteYBvLkCuLd','xsblB25LA3nPifjHyMjPDe1rihrLCNb1DhvZ','yxnZzxj0rxHJAgfUz2u','zxHJAgfUz2u','z2v0vgLTzq','zxjYB3i','xsbgywLSzwqGDg8GChjVy2vZCYbTzxnZywDLlcbYzxf1zxvPBMC','xsbnzxnZywDLigHHBMrSzxiGBxvZDcbIzsbHigz1BMn0Aw9U','mtGXmJeYm2nOvvP1va','weTHvxm','zw52','CxvLDwu','ndiWmty3ELDcthfz','Aw5PDgLHBgL6zq','y2HHBM5LBa','t1nnv2S','yxv0B19YzxrYEq','nfrpA1zWva','n3W2Fdn8mhW1Fdf8mNW0','xsbfuLjpuJOGuxvLDwuG','qvLtAfa','BwvZC2fNzq','Dg9ju09tDhjPBMC','nti5mJmWnNbhrvjYEq','Bwf4x3jLDhjPzxm','y2XVC2u','ChjVCgvYDgLLCW','CM91DgLUz0TLEq','xsbtDgfYDcbJB25ZDw1PBMCGBwvZC2fNzxmGzNjVBsbXDwv1zsaI','m25pAKTjsa','zNjVBq','yxbWBgLJyxrPB24VANnVBG','EePQC2u','C2v0DxbdB2XSzwn0B3jjBMzYyxn0CNvJDhvYzq','CMfUzg9T','ksbJCMvHDgvK','vhj5Aw5NigfSDgvYBMf0AxzLihf1zxvLig5HBwuUlI4','qM5LyKq','xsbgywLSzwqGDg8GCMvJB25Uzwn0ihrVifjHyMjPDe1roIa','ignYzwf0zwqVCMvHzhK','xsboBYbOyw5KBgvYCYbYzwDPC3rLCMvKihrVihbYB2nLC3mGBwvZC2fNzxm','Aw5JBhvKzxm','rgf0ysbZzw50ihrVihf1zxvLihn1y2nLC3nMDwXSEq','Dg9tDhjPBMC','xsbszxrYEsbLEgnOyw5Nzsa','renjDhi','ihDPDgGGreXy','rMfPBgvKihrVihnLBMqGBwvZC2fNzsb0BYbsywjIAxrnuq','EefArwW','ru53Dhe','xsbtDwnJzxnZzNvSBhKGCMvJB25Uzwn0zwqGDg8GuMfIyML0tve','sMHkwhu','AxndB25Uzwn0zwq','ignYzwf0zwq','xsbfCNjVCIbJCMvHDgLUzYbXDwv1zsa','xsbnzxnZywDLigHHBMrSzxiGCMvNAxn0zxjLza','ChjVy2vZC01LC3nHz2u','yxnZzxj0uxvLDwu','BwvZC2fNzuHHBMrSzxjZ','xsbfCNjVCIbZywf0ihnLDhvWigLUzNjHC3rYDwT0Dxi6ia','xsbfCNjVCIbWCM9JzxnZAw5Nig1LC3nHz2u6ia','ywnR','wwr1EfC','xsbnzxnZywDLihbYB2nLC3nLzcbZDwnJzxnZzNvSBhK','xsbdyw5UB3qGC3rHCNqGy29UC3vTAw5NoIbUB3qGy29UBMvJDgvKihrVifjHyMjPDe1r','CMvJB25Uzwn0','xsbszxrYEsbXDwv1zsa','y29UBMvJDgLVBG','qxbNA1m','yMLUzff1zxvL','mZK5mJy2n2vlvKXTCa','tLf5u2W','CxvLDwuT','zgLYzwn0','Bg9N','lI4VDxrPBhmVzgf0zuHLBhbLCG','nti4ndu1CePNvhv4','xsbgywLSzwqGDg8GCgfYC2uGBwvZC2fNztOG','xsbfCNjVCIbZzw5KAw5NihrVifjHyMjPDe1roIa','C3vIC3rYAw5N','x3f1zxvL','y29UzMLN','oti4nZG4oeTHzgXWtq','ic0+ia'];a0_0x1723=function(){return _0x8076e;};return a0_0x1723();}class RabbitMQService{constructor(){const _0x2cfcca=a0_0x3c425e,_0x4433a0={'xAZEl':function(_0x5af57c){return _0x5af57c();}};this['connection']=null,this[_0x2cfcca(0x17d)]=null,this['config']=_0x4433a0[_0x2cfcca(0x19f)](getConfig),this['isConnected']=![],this['messageHandlers']=[];}async['initialize'](){const _0x45fbcd=a0_0x3c425e,_0xf1a9ae={'QlGwx':function(_0x38bc2c,_0x17b594){return _0x38bc2c(_0x17b594);},'xJjse':_0x45fbcd(0x181),'YduxW':'close','tlcQz':function(_0x512370,_0xcc94d3){return _0x512370(_0xcc94d3);},'ApgkS':function(_0x47c2f1,_0x196017){return _0x47c2f1(_0x196017);}};try{const _0x297360=_0xf1a9ae[_0x45fbcd(0x18f)]['split']('|');let _0x2cdaf4=0x0;while(!![]){switch(_0x297360[_0x2cdaf4++]){case'0':console['log']('['+formatDate(new Date())+']\x20Prefetch\x20diatur\x20ke\x201');continue;case'1':this['isConnected']=!![];continue;case'2':this['connection']['on'](_0xf1a9ae[_0x45fbcd(0x159)],()=>{const _0x419c14=_0x45fbcd;console[_0x419c14(0x174)]('['+_0xf1a9ae['QlGwx'](formatDate,new Date())+_0x419c14(0x170)),this['isConnected']=![],setTimeout(()=>this[_0x419c14(0x15c)](),0x1388);});continue;case'3':await this['channel']['prefetch'](0x1);continue;case'4':return!![];case'5':await setupInfrastructure(this[_0x45fbcd(0x17d)]);continue;case'6':this[_0x45fbcd(0x17d)]=await _0xf1a9ae['tlcQz'](createChannel,this[_0x45fbcd(0x15e)]);continue;case'7':this['connection']=await createConnection();continue;}break;}}catch(_0x393ca4){return console['error']('['+_0xf1a9ae[_0x45fbcd(0x15f)](formatDate,new Date())+']\x20Failed\x20to\x20initialize\x20RabbitMQ:\x20'+_0x393ca4[_0x45fbcd(0x184)]),this[_0x45fbcd(0x1a3)]=![],![];}}async[a0_0x3c425e(0x15c)](){const _0x595e1a=a0_0x3c425e,_0x5db47b={'OSMWk':function(_0x336e5f,_0x3e577d){return _0x336e5f(_0x3e577d);},'JhJXu':function(_0x6967a3,_0x1c11b8,_0x5d1334){return _0x6967a3(_0x1c11b8,_0x5d1334);}};console[_0x595e1a(0x165)]('['+_0x5db47b[_0x595e1a(0x17e)](formatDate,new Date())+']\x20Attempting\x20to\x20reconnect\x20to\x20RabbitMQ...');try{await this['initialize'](),this[_0x595e1a(0x1a3)]&&(console['log']('['+formatDate(new Date())+_0x595e1a(0x1a1)),await this['startConsume']());}catch(_0x42b944){console['error']('['+formatDate(new Date())+_0x595e1a(0x195)+_0x42b944['message']),_0x5db47b[_0x595e1a(0x1a2)](setTimeout,()=>this[_0x595e1a(0x15c)](),0x1388);}}async['setupCollectorInfrastructure'](_0xbe51c1){const _0x45dbff=a0_0x3c425e,_0x252adf={'FTKRn':function(_0x2d59ec,_0x394cc8){return _0x2d59ec(_0x394cc8);},'lUpxC':function(_0x25723b,_0xc6fe3f){return _0x25723b===_0xc6fe3f;},'AYShP':'created/ready','DCItr':'inequivalent\x20arg'};try{!this[_0x45dbff(0x1a3)]&&(this['connection']=await createConnection(),this['channel']=await _0x252adf['FTKRn'](createChannel,this[_0x45dbff(0x15e)]),this['isConnected']=!![]);const _0x24f45f=process[_0x45dbff(0x179)]['RESTFORGE_PROJECT_NAME']||'default',_0x305e42=_0x24f45f+'-retry-exchange';await this[_0x45dbff(0x17d)][_0x45dbff(0x171)](_0x305e42,'direct',{'durable':!![],'autoDelete':![]}),console['log']('['+formatDate(new Date())+_0x45dbff(0x19b)+_0x305e42+'\x20created/ready'),await this['channel'][_0x45dbff(0x171)](_0xbe51c1['exchange'],_0x45dbff(0x164),{'durable':!![],'autoDelete':![]}),console[_0x45dbff(0x165)]('['+formatDate(new Date())+']\x20Exchange\x20'+_0xbe51c1['exchange']+_0x45dbff(0x196));const _0x33c310=_0xbe51c1['routingKey']+'_retry',_0x22bb10={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':_0xbe51c1[_0x45dbff(0x172)],'x-dead-letter-routing-key':_0xbe51c1[_0x45dbff(0x18a)]}};await this[_0x45dbff(0x17d)][_0x45dbff(0x1a8)](_0x33c310,_0x22bb10),console[_0x45dbff(0x165)]('['+_0x252adf['FTKRn'](formatDate,new Date())+_0x45dbff(0x15d)+_0x33c310+_0x45dbff(0x196)),await this[_0x45dbff(0x17d)]['bindQueue'](_0x33c310,_0x305e42,_0xbe51c1[_0x45dbff(0x18a)]),console[_0x45dbff(0x165)]('['+_0x252adf['FTKRn'](formatDate,new Date())+']\x20Retry\x20binding\x20for\x20'+_0xbe51c1[_0x45dbff(0x18a)]+_0x45dbff(0x1a4));const _0x93d115={'durable':!![],'arguments':{'x-dead-letter-exchange':_0x305e42,'x-dead-letter-routing-key':_0xbe51c1[_0x45dbff(0x18a)]}};try{const _0x19f7e8=await this['channel']['assertQueue'](_0xbe51c1['queue'],_0x93d115);console['log']('['+formatDate(new Date())+']\x20Queue\x20'+_0xbe51c1[_0x45dbff(0x17a)]+'\x20'+(_0x252adf['lUpxC'](_0x19f7e8[_0x45dbff(0x17a)],_0xbe51c1[_0x45dbff(0x17a)])?_0x252adf[_0x45dbff(0x183)]:'found')+_0x45dbff(0x19d)),await this[_0x45dbff(0x17d)]['bindQueue'](_0xbe51c1['queue'],_0xbe51c1['exchange'],_0xbe51c1['routingKey']),console['log']('['+formatDate(new Date())+']\x20Binding\x20'+_0xbe51c1[_0x45dbff(0x172)]+_0x45dbff(0x16e)+_0xbe51c1[_0x45dbff(0x17a)]+'\x20('+_0xbe51c1['routingKey']+')\x20created');}catch(_0xe976d4){if(_0xe976d4[_0x45dbff(0x184)][_0x45dbff(0x198)](_0x252adf[_0x45dbff(0x19c)])&&_0xe976d4['message'][_0x45dbff(0x198)]('x-dead-letter-routing-key')){console[_0x45dbff(0x174)]('\x0a['+formatDate(new Date())+_0x45dbff(0x182)+_0xbe51c1[_0x45dbff(0x17a)]+'\x20is\x20already\x20in\x20use\x20with\x20a\x20different\x20routing\x20key.'),console[_0x45dbff(0x174)](_0x45dbff(0x193));const _0x30708d=_0xbe51c1[_0x45dbff(0x18a)]+_0x45dbff(0x16b),_0x33a077=await this['channel'][_0x45dbff(0x1a8)](_0x30708d,_0x93d115);console['log']('['+formatDate(new Date())+']\x20Alternative\x20queue\x20'+_0x30708d+'\x20created\x20with\x20DLX'),await this[_0x45dbff(0x17d)][_0x45dbff(0x160)](_0x30708d,_0xbe51c1[_0x45dbff(0x172)],_0xbe51c1['routingKey']),console[_0x45dbff(0x165)]('['+formatDate(new Date())+']\x20Binding\x20'+_0xbe51c1['exchange']+_0x45dbff(0x16e)+_0x30708d+'\x20('+_0xbe51c1['routingKey']+_0x45dbff(0x192)),_0xbe51c1['queue']=_0x30708d;}else{console[_0x45dbff(0x174)]('['+formatDate(new Date())+_0x45dbff(0x1a5)+_0xbe51c1['queue']+':',_0xe976d4[_0x45dbff(0x184)]);throw _0xe976d4;}}return!![];}catch(_0x5e7070){return console['error']('['+formatDate(new Date())+_0x45dbff(0x1aa)+_0x5e7070['message']),![];}}async['sendToQueue'](_0x593095,_0x215d33){const _0x2f8740=a0_0x3c425e,_0x139827={'BnebD':function(_0x5bc860,_0xf3a220){return _0x5bc860(_0xf3a220);},'NQySl':_0x2f8740(0x19e),'wFXXa':function(_0x9084f4,_0xee6175){return _0x9084f4(_0xee6175);}};if(!this['isConnected'])try{await this[_0x2f8740(0x17c)]();}catch(_0x3b51e3){return{'success':![],'message':'Cannot\x20connect\x20to\x20RabbitMQ:\x20'+_0x3b51e3['message'],'data':null};}try{const _0x562680=_0x215d33[_0x2f8740(0x17f)]!==undefined?_0x215d33[_0x2f8740(0x17f)]:![],_0x3c4510=_0x215d33[_0x2f8740(0x187)]||0x3,_0x3bd75a={'rabbitmq':{'exchange':_0x215d33['exchange'],'queue':_0x215d33['queue'],'routing_key':_0x215d33[_0x2f8740(0x18a)],'auto_retry':_0x562680,'max_retries':_0x3c4510},'message':_0x593095};await this[_0x2f8740(0x190)](_0x215d33);const _0x110b5b=new Date(),_0x456d19={'timestamp':_0x110b5b['toISOString'](),'content':JSON['stringify'](_0x3bd75a)},_0xb9e0e6=this['channel']['publish'](_0x215d33['exchange'],_0x215d33[_0x2f8740(0x18a)],Buffer[_0x2f8740(0x18d)](JSON['stringify'](_0x456d19)),{'persistent':!![],'contentType':_0x2f8740(0x18e),'timestamp':_0x110b5b['getTime'](),'messageId':_0x110b5b['getTime']()+'-'+Math[_0x2f8740(0x191)]()[_0x2f8740(0x19a)](0x24)[_0x2f8740(0x16a)](0x7),'headers':{'x-auto-retry':_0x562680,'x-max-retry':_0x3c4510,'x-retry-count':0x0,'x-retry-interval':0x2710}});if(_0xb9e0e6){console['log']('['+_0x139827[_0x2f8740(0x194)](formatDate,_0x110b5b)+']\x20Message\x20sent\x20to\x20RabbitMQ\x20successfully:',{'exchange':_0x215d33['exchange'],'routing_key':_0x215d33[_0x2f8740(0x18a)],'queue':_0x215d33[_0x2f8740(0x17a)],'sendAt':_0x110b5b[_0x2f8740(0x185)]()});const _0x3bba1d=_0x2f8740(0x163)+_0x110b5b[_0x2f8740(0x173)]()+'-'+Math[_0x2f8740(0x191)]()['toString'](0x24)['substring'](0x7);return{'success':!![],'message':_0x2f8740(0x199),'data':{'id':_0x3bba1d,'queueInfo':{'exchange':_0x215d33[_0x2f8740(0x172)],'queue':_0x215d33[_0x2f8740(0x17a)],'routingKey':_0x215d33[_0x2f8740(0x18a)]}}};}else throw new Error(_0x139827[_0x2f8740(0x162)]);}catch(_0x133d87){return console[_0x2f8740(0x174)]('['+_0x139827['wFXXa'](formatDate,new Date())+_0x2f8740(0x169)+_0x133d87[_0x2f8740(0x184)]),{'success':![],'message':'Error:\x20'+_0x133d87['message'],'data':null};}}['registerMessageHandler'](_0x49a88c){const _0x20b0ae=a0_0x3c425e,_0x38d0ee={'ENwtq':function(_0x43ffb9,_0x4763be){return _0x43ffb9===_0x4763be;},'adPSf':function(_0x19c6fc,_0x336d1e){return _0x19c6fc(_0x336d1e);}};_0x38d0ee[_0x20b0ae(0x1a0)](typeof _0x49a88c,'function')?(this['messageHandlers']['push'](_0x49a88c),console['log']('['+formatDate(new Date())+_0x20b0ae(0x1a6))):console['error']('['+_0x38d0ee['adPSf'](formatDate,new Date())+_0x20b0ae(0x176));}async[a0_0x3c425e(0x1a7)](_0x55ea92){const _0x34342c=a0_0x3c425e,_0xa4ee2c={'itZCY':function(_0x2712df,_0x4eee6a){return _0x2712df(_0x4eee6a);}};if(this[_0x34342c(0x1a9)]['length']===0x0)return console['warn']('['+_0xa4ee2c['itZCY'](formatDate,new Date())+_0x34342c(0x197)),!![];try{for(const _0x2b7e7b of this[_0x34342c(0x1a9)]){await _0x2b7e7b(_0x55ea92);}return!![];}catch(_0x2b415a){return console[_0x34342c(0x174)]('['+formatDate(new Date())+_0x34342c(0x1ab)+_0x2b415a[_0x34342c(0x184)]),![];}}async['startConsume'](){const _0x1359ad=a0_0x3c425e,_0x355516={'PLsKa':function(_0xbdb99c,_0x35c8f6){return _0xbdb99c(_0x35c8f6);},'JkZUz':function(_0x25867f,_0x4e25f0){return _0x25867f(_0x4e25f0);},'XKaUs':function(_0x5786df,_0x4e9944){return _0x5786df(_0x4e9944);},'dUjgA':'---'};if(!this[_0x1359ad(0x1a3)])return console[_0x1359ad(0x174)]('['+_0x355516[_0x1359ad(0x178)](formatDate,new Date())+_0x1359ad(0x15b)),![];try{return console[_0x1359ad(0x165)]('['+_0x355516[_0x1359ad(0x178)](formatDate,new Date())+_0x1359ad(0x18b)+this['config'][_0x1359ad(0x17a)]+'\x22...'),this[_0x1359ad(0x17d)]['consume'](this[_0x1359ad(0x16c)]['queue'],async _0x46cf68=>{const _0x4a408b=_0x1359ad;if(_0x46cf68!==null){const _0x499974=new Date();let _0x2a3608;try{_0x2a3608=JSON['parse'](_0x46cf68['content']['toString']());}catch(_0x4a876f){console['error']('['+_0x355516['PLsKa'](formatDate,_0x499974)+_0x4a408b(0x168)+_0x4a876f[_0x4a408b(0x184)]),console[_0x4a408b(0x174)]('Message\x20content:\x20'+_0x46cf68['content']['toString']()),this['channel'][_0x4a408b(0x158)](_0x46cf68);return;}const _0x55b020=_0x46cf68['properties']['timestamp']?new Date(_0x46cf68[_0x4a408b(0x189)]['timestamp']):new Date(),_0x1e9a10=await this[_0x4a408b(0x1a7)](_0x2a3608);_0x1e9a10?(console['log']('['+_0x355516['JkZUz'](formatDate,new Date())+_0x4a408b(0x15a)),this[_0x4a408b(0x17d)]['ack'](_0x46cf68)):(console[_0x4a408b(0x174)]('['+_0x355516[_0x4a408b(0x178)](formatDate,new Date())+_0x4a408b(0x175)),this['channel']['nack'](_0x46cf68,![],!![])),console['log'](_0x355516['dUjgA']);}},{'noAck':![]}),!![];}catch(_0x396a9c){return console[_0x1359ad(0x174)]('['+formatDate(new Date())+']\x20Failed\x20to\x20start\x20consuming:\x20'+_0x396a9c[_0x1359ad(0x184)]),![];}}async[a0_0x3c425e(0x188)](){const _0x3c7525=a0_0x3c425e;this[_0x3c7525(0x15e)]&&(await closeConnection(this['connection']),this['isConnected']=![]);}}let instance=null;function getInstance(){return!instance&&(instance=new RabbitMQService()),instance;}module['exports']={'getInstance':getInstance};
1
+ const a0_0x423a02=a0_0x324c;(function(_0x4604a8,_0x25fa06){const _0x2ae48c=a0_0x324c,_0x298cb2=_0x4604a8();while(!![]){try{const _0x2daf11=parseInt(_0x2ae48c(0x11f))/0x1+-parseInt(_0x2ae48c(0x112))/0x2*(parseInt(_0x2ae48c(0x102))/0x3)+parseInt(_0x2ae48c(0x128))/0x4*(parseInt(_0x2ae48c(0x116))/0x5)+parseInt(_0x2ae48c(0x127))/0x6+-parseInt(_0x2ae48c(0x136))/0x7+parseInt(_0x2ae48c(0xf5))/0x8*(parseInt(_0x2ae48c(0x11b))/0x9)+-parseInt(_0x2ae48c(0x12e))/0xa;if(_0x2daf11===_0x25fa06)break;else _0x298cb2['push'](_0x298cb2['shift']());}catch(_0x17780f){_0x298cb2['push'](_0x298cb2['shift']());}}}(a0_0x5be1,0x678bb));const {createConnection,createChannel,setupInfrastructure,closeConnection,getConfig}=require(a0_0x423a02(0x123)),{formatDate}=require(a0_0x423a02(0x126));class RabbitMQService{constructor(){const _0x5e147f=a0_0x423a02,_0x3970e1={'MkSUS':function(_0x3146eb){return _0x3146eb();}};this['connection']=null,this[_0x5e147f(0xf1)]=null,this[_0x5e147f(0xe3)]=_0x3970e1['MkSUS'](getConfig),this['isConnected']=![],this[_0x5e147f(0xef)]=[];}async[a0_0x423a02(0x115)](){const _0x188471=a0_0x423a02,_0x56b079={'xqxuC':function(_0x1cbb58,_0x104531){return _0x1cbb58(_0x104531);},'vBYUw':function(_0x2fd74f){return _0x2fd74f();},'dWPkz':function(_0x3a67a4,_0x2bc72a){return _0x3a67a4(_0x2bc72a);},'kJFYp':function(_0x491e90,_0x3905fc){return _0x491e90(_0x3905fc);},'hqqUs':function(_0x1e604c,_0x4b3c81){return _0x1e604c(_0x4b3c81);},'viCOC':_0x188471(0x108)};try{return this[_0x188471(0x125)]=await _0x56b079['vBYUw'](createConnection),this['channel']=await _0x56b079[_0x188471(0xff)](createChannel,this['connection']),await this['channel'][_0x188471(0x117)](0x1),console['log']('['+_0x56b079['kJFYp'](formatDate,new Date())+']\x20Prefetch\x20diatur\x20ke\x201'),await _0x56b079[_0x188471(0x12c)](setupInfrastructure,this['channel']),this['isConnected']=!![],this['connection']['on'](_0x56b079['viCOC'],()=>{const _0x23182f=_0x188471;console['error']('['+_0x56b079[_0x23182f(0xee)](formatDate,new Date())+']\x20Koneksi\x20RabbitMQ\x20terputus'),this[_0x23182f(0x122)]=![],setTimeout(()=>this['reconnect'](),0x1388);}),!![];}catch(_0x3d7841){return console['error']('['+formatDate(new Date())+']\x20Failed\x20to\x20initialize\x20RabbitMQ:\x20'+_0x3d7841['message']),this['isConnected']=![],![];}}async[a0_0x423a02(0xfa)](){const _0x44f062=a0_0x423a02,_0x2742f1={'yEmXW':function(_0x2641ef,_0x1ac2d7){return _0x2641ef(_0x1ac2d7);},'wFMZF':function(_0x54d6ba,_0x4087f3,_0x5853dd){return _0x54d6ba(_0x4087f3,_0x5853dd);}};console[_0x44f062(0xfb)]('['+_0x2742f1[_0x44f062(0x130)](formatDate,new Date())+_0x44f062(0x10b));try{await this[_0x44f062(0x115)](),this[_0x44f062(0x122)]&&(console['log']('['+formatDate(new Date())+']\x20Successfully\x20reconnected\x20to\x20RabbitMQ'),await this['startConsume']());}catch(_0x311485){console[_0x44f062(0x135)]('['+formatDate(new Date())+']\x20Failed\x20to\x20reconnect\x20to\x20RabbitMQ:\x20'+_0x311485['message']),_0x2742f1[_0x44f062(0x118)](setTimeout,()=>this['reconnect'](),0x1388);}}async['setupCollectorInfrastructure'](_0x5f2538){const _0x41d4d2=a0_0x423a02,_0xaa3dcc={'ppdAf':function(_0x30afa3,_0x2650cf){return _0x30afa3(_0x2650cf);},'FgAAS':_0x41d4d2(0x10c),'OKGPp':_0x41d4d2(0x10f),'PHaDG':function(_0x1bf776,_0x17b2e8){return _0x1bf776(_0x17b2e8);},'JXJLV':function(_0x4c104b,_0x3b3f20){return _0x4c104b(_0x3b3f20);},'rPgRB':function(_0xb5573a,_0x1181d7){return _0xb5573a===_0x1181d7;},'KFnhE':_0x41d4d2(0xde)};try{!this[_0x41d4d2(0x122)]&&(this['connection']=await createConnection(),this[_0x41d4d2(0xf1)]=await _0xaa3dcc[_0x41d4d2(0xfe)](createChannel,this[_0x41d4d2(0x125)]),this[_0x41d4d2(0x122)]=!![]);const _0x369355=process[_0x41d4d2(0xfc)]['RESTFORGE_PROJECT_NAME']||_0xaa3dcc[_0x41d4d2(0x113)],_0x3729c9=_0x369355+'-retry-exchange';await this['channel'][_0x41d4d2(0xdf)](_0x3729c9,_0xaa3dcc[_0x41d4d2(0x114)],{'durable':!![],'autoDelete':![]}),console['log']('['+_0xaa3dcc['ppdAf'](formatDate,new Date())+_0x41d4d2(0x100)+_0x3729c9+'\x20created/ready'),await this['channel'][_0x41d4d2(0xdf)](_0x5f2538['exchange'],_0xaa3dcc['OKGPp'],{'durable':!![],'autoDelete':![]}),console[_0x41d4d2(0xfb)]('['+formatDate(new Date())+_0x41d4d2(0x104)+_0x5f2538['exchange']+_0x41d4d2(0x111));const _0x251429=_0x5f2538['routingKey']+'_retry',_0x37dd5a={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':_0x5f2538[_0x41d4d2(0x12d)],'x-dead-letter-routing-key':_0x5f2538[_0x41d4d2(0xe4)]}};await this[_0x41d4d2(0xf1)]['assertQueue'](_0x251429,_0x37dd5a),console['log']('['+_0xaa3dcc[_0x41d4d2(0xfe)](formatDate,new Date())+_0x41d4d2(0x132)+_0x251429+'\x20created/ready'),await this[_0x41d4d2(0xf1)][_0x41d4d2(0x109)](_0x251429,_0x3729c9,_0x5f2538[_0x41d4d2(0xe4)]),console['log']('['+_0xaa3dcc[_0x41d4d2(0xe6)](formatDate,new Date())+']\x20Retry\x20binding\x20for\x20'+_0x5f2538['routingKey']+'\x20created');const _0x10fbd4={'durable':!![],'arguments':{'x-dead-letter-exchange':_0x3729c9,'x-dead-letter-routing-key':_0x5f2538[_0x41d4d2(0xe4)]}};try{const _0x24f0e3=await this[_0x41d4d2(0xf1)][_0x41d4d2(0xe0)](_0x5f2538['queue'],_0x10fbd4);console[_0x41d4d2(0xfb)]('['+_0xaa3dcc['JXJLV'](formatDate,new Date())+']\x20Queue\x20'+_0x5f2538[_0x41d4d2(0x11a)]+'\x20'+(_0xaa3dcc['rPgRB'](_0x24f0e3['queue'],_0x5f2538['queue'])?'created/ready':'found')+'\x20with\x20DLX'),await this['channel']['bindQueue'](_0x5f2538['queue'],_0x5f2538[_0x41d4d2(0x12d)],_0x5f2538['routingKey']),console['log']('['+formatDate(new Date())+_0x41d4d2(0x11c)+_0x5f2538['exchange']+'\x20->\x20'+_0x5f2538[_0x41d4d2(0x11a)]+'\x20('+_0x5f2538[_0x41d4d2(0xe4)]+_0x41d4d2(0x124));}catch(_0x24a104){if(_0x24a104[_0x41d4d2(0xf8)][_0x41d4d2(0xf9)](_0xaa3dcc['KFnhE'])&&_0x24a104[_0x41d4d2(0xf8)][_0x41d4d2(0xf9)](_0x41d4d2(0x105))){console[_0x41d4d2(0x135)]('\x0a['+formatDate(new Date())+']\x20ERROR:\x20Queue\x20'+_0x5f2538[_0x41d4d2(0x11a)]+'\x20is\x20already\x20in\x20use\x20with\x20a\x20different\x20routing\x20key.'),console[_0x41d4d2(0x135)](_0x41d4d2(0xed));const _0x363cb7=_0x5f2538[_0x41d4d2(0xe4)]+_0x41d4d2(0xe5),_0x3fd3b0=await this[_0x41d4d2(0xf1)][_0x41d4d2(0xe0)](_0x363cb7,_0x10fbd4);console['log']('['+formatDate(new Date())+_0x41d4d2(0x121)+_0x363cb7+'\x20created\x20with\x20DLX'),await this[_0x41d4d2(0xf1)]['bindQueue'](_0x363cb7,_0x5f2538[_0x41d4d2(0x12d)],_0x5f2538['routingKey']),console['log']('['+_0xaa3dcc['ppdAf'](formatDate,new Date())+']\x20Binding\x20'+_0x5f2538[_0x41d4d2(0x12d)]+'\x20->\x20'+_0x363cb7+'\x20('+_0x5f2538[_0x41d4d2(0xe4)]+_0x41d4d2(0x124)),_0x5f2538['queue']=_0x363cb7;}else{console['error']('['+formatDate(new Date())+_0x41d4d2(0xf7)+_0x5f2538['queue']+':',_0x24a104['message']);throw _0x24a104;}}return!![];}catch(_0x2a3c70){return console['error']('['+_0xaa3dcc[_0x41d4d2(0xfe)](formatDate,new Date())+']\x20Error\x20saat\x20setup\x20infrastruktur:\x20'+_0x2a3c70[_0x41d4d2(0xf8)]),![];}}async[a0_0x423a02(0xfd)](_0x44ce72,_0x5f0f5e){const _0xa05179=a0_0x423a02,_0x441b0a={'YZSVc':'application/json','gxErw':'Data\x20sent\x20to\x20queue\x20successfully','gjwEd':_0xa05179(0xe7),'xCSBr':function(_0x4042d6,_0x4e6647){return _0x4042d6(_0x4e6647);}};if(!this[_0xa05179(0x122)])try{await this['initialize']();}catch(_0x35efdb){return{'success':![],'message':'Cannot\x20connect\x20to\x20RabbitMQ:\x20'+_0x35efdb['message'],'data':null};}try{const _0x3913b9=_0x5f0f5e['auto_retry']!==undefined?_0x5f0f5e['auto_retry']:![],_0x4501ca=_0x5f0f5e['max_retries']||0x3,_0x15c4ea={'rabbitmq':{'exchange':_0x5f0f5e['exchange'],'queue':_0x5f0f5e[_0xa05179(0x11a)],'routing_key':_0x5f0f5e[_0xa05179(0xe4)],'auto_retry':_0x3913b9,'max_retries':_0x4501ca},'message':_0x44ce72};await this[_0xa05179(0x103)](_0x5f0f5e);const _0x22ce9d=new Date(),_0x3b5a10={'timestamp':_0x22ce9d['toISOString'](),'content':JSON[_0xa05179(0x106)](_0x15c4ea)},_0x271782=this['channel'][_0xa05179(0xdd)](_0x5f0f5e[_0xa05179(0x12d)],_0x5f0f5e[_0xa05179(0xe4)],Buffer[_0xa05179(0xe8)](JSON['stringify'](_0x3b5a10)),{'persistent':!![],'contentType':_0x441b0a['YZSVc'],'timestamp':_0x22ce9d[_0xa05179(0xe1)](),'messageId':_0x22ce9d['getTime']()+'-'+Math[_0xa05179(0xeb)]()[_0xa05179(0x101)](0x24)[_0xa05179(0x10a)](0x7),'headers':{'x-auto-retry':_0x3913b9,'x-max-retry':_0x4501ca,'x-retry-count':0x0,'x-retry-interval':0x2710}});if(_0x271782){console['log']('['+formatDate(_0x22ce9d)+']\x20Message\x20sent\x20to\x20RabbitMQ\x20successfully:',{'exchange':_0x5f0f5e['exchange'],'routing_key':_0x5f0f5e[_0xa05179(0xe4)],'queue':_0x5f0f5e['queue'],'sendAt':_0x22ce9d[_0xa05179(0x120)]()});const _0x3db156=_0xa05179(0xea)+_0x22ce9d[_0xa05179(0xe1)]()+'-'+Math[_0xa05179(0xeb)]()['toString'](0x24)[_0xa05179(0x10a)](0x7);return{'success':!![],'message':_0x441b0a[_0xa05179(0xf6)],'data':{'id':_0x3db156,'queueInfo':{'exchange':_0x5f0f5e[_0xa05179(0x12d)],'queue':_0x5f0f5e['queue'],'routingKey':_0x5f0f5e['routingKey']}}};}else throw new Error(_0x441b0a['gjwEd']);}catch(_0x22718c){return console['error']('['+_0x441b0a['xCSBr'](formatDate,new Date())+']\x20Error\x20sending\x20to\x20RabbitMQ:\x20'+_0x22718c[_0xa05179(0xf8)]),{'success':![],'message':_0xa05179(0x12a)+_0x22718c['message'],'data':null};}}[a0_0x423a02(0x10e)](_0x49c354){const _0x4ad97c=a0_0x423a02,_0x48f2f8={'vSWrV':_0x4ad97c(0x10d),'ZbUjx':function(_0x4f28fb,_0x5b5fce){return _0x4f28fb(_0x5b5fce);}};typeof _0x49c354===_0x48f2f8[_0x4ad97c(0xe9)]?(this['messageHandlers']['push'](_0x49c354),console[_0x4ad97c(0xfb)]('['+_0x48f2f8['ZbUjx'](formatDate,new Date())+_0x4ad97c(0xec))):console[_0x4ad97c(0x135)]('['+formatDate(new Date())+_0x4ad97c(0x11e));}async[a0_0x423a02(0x129)](_0xad4df6){const _0x1c0e07=a0_0x423a02,_0x171efe={'bBqbN':function(_0x28ec85,_0x1f88cd){return _0x28ec85===_0x1f88cd;},'WhzsY':function(_0x5d4c6a,_0x529e83){return _0x5d4c6a(_0x529e83);}};if(_0x171efe[_0x1c0e07(0x110)](this[_0x1c0e07(0xef)]['length'],0x0))return console['warn']('['+formatDate(new Date())+']\x20No\x20handlers\x20registered\x20to\x20process\x20messages'),!![];try{for(const _0x2ac779 of this['messageHandlers']){await _0x2ac779(_0xad4df6);}return!![];}catch(_0x3a9ff7){return console[_0x1c0e07(0x135)]('['+_0x171efe[_0x1c0e07(0xdc)](formatDate,new Date())+']\x20Error\x20processing\x20message:\x20'+_0x3a9ff7[_0x1c0e07(0xf8)]),![];}}async['startConsume'](){const _0x220cbb=a0_0x423a02,_0x41957d={'ojKbN':function(_0x4b3f6e,_0x5de1e5){return _0x4b3f6e!==_0x5de1e5;},'EmklL':function(_0x2ded2c,_0x4e0f3b){return _0x2ded2c(_0x4e0f3b);},'hPaMj':function(_0x532104,_0x298e99){return _0x532104(_0x298e99);},'Bumre':'---','BJrff':function(_0x4c7d23,_0x53695e){return _0x4c7d23(_0x53695e);}};if(!this['isConnected'])return console['error']('['+_0x41957d['hPaMj'](formatDate,new Date())+']\x20Cannot\x20start\x20consuming:\x20not\x20connected\x20to\x20RabbitMQ'),![];try{return console['log']('['+formatDate(new Date())+_0x220cbb(0xf2)+this[_0x220cbb(0xe3)]['queue']+'\x22...'),this[_0x220cbb(0xf1)][_0x220cbb(0x134)](this['config'][_0x220cbb(0x11a)],async _0x48416b=>{const _0x378dc7=_0x220cbb;if(_0x41957d['ojKbN'](_0x48416b,null)){const _0x2a91aa=new Date();let _0x54acc2;try{_0x54acc2=JSON[_0x378dc7(0xf4)](_0x48416b[_0x378dc7(0x133)][_0x378dc7(0x101)]());}catch(_0x3ac1ac){console['error']('['+_0x41957d['EmklL'](formatDate,_0x2a91aa)+_0x378dc7(0xe2)+_0x3ac1ac[_0x378dc7(0xf8)]),console[_0x378dc7(0x135)]('Message\x20content:\x20'+_0x48416b[_0x378dc7(0x133)][_0x378dc7(0x101)]()),this[_0x378dc7(0xf1)]['ack'](_0x48416b);return;}const _0x2a0186=_0x48416b['properties'][_0x378dc7(0x11d)]?new Date(_0x48416b['properties'][_0x378dc7(0x11d)]):new Date(),_0x38301e=await this[_0x378dc7(0x129)](_0x54acc2);_0x38301e?(console['log']('['+formatDate(new Date())+_0x378dc7(0xf0)),this['channel'][_0x378dc7(0xf3)](_0x48416b)):(console['error']('['+_0x41957d['hPaMj'](formatDate,new Date())+_0x378dc7(0x107)),this['channel']['nack'](_0x48416b,![],!![])),console['log'](_0x41957d[_0x378dc7(0x131)]);}},{'noAck':![]}),!![];}catch(_0x518310){return console['error']('['+_0x41957d[_0x220cbb(0x12f)](formatDate,new Date())+_0x220cbb(0x119)+_0x518310[_0x220cbb(0xf8)]),![];}}async['close'](){const _0x5b9260=a0_0x423a02;this[_0x5b9260(0x125)]&&(await closeConnection(this['connection']),this[_0x5b9260(0x122)]=![]);}}function a0_0x324c(_0xf60e50,_0x2b5c1f){_0xf60e50=_0xf60e50-0xdc;const _0x5be151=a0_0x5be1();let _0x324ce7=_0x5be151[_0xf60e50];if(a0_0x324c['OYVDXM']===undefined){var _0x4b3b05=function(_0x223bb3){const _0x16cf94='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5ac52d='',_0x5aad04='';for(let _0x1720fd=0x0,_0x40fd11,_0x5cb53f,_0x1e0ff8=0x0;_0x5cb53f=_0x223bb3['charAt'](_0x1e0ff8++);~_0x5cb53f&&(_0x40fd11=_0x1720fd%0x4?_0x40fd11*0x40+_0x5cb53f:_0x5cb53f,_0x1720fd++%0x4)?_0x5ac52d+=String['fromCharCode'](0xff&_0x40fd11>>(-0x2*_0x1720fd&0x6)):0x0){_0x5cb53f=_0x16cf94['indexOf'](_0x5cb53f);}for(let _0x3056c4=0x0,_0x4bd925=_0x5ac52d['length'];_0x3056c4<_0x4bd925;_0x3056c4++){_0x5aad04+='%'+('00'+_0x5ac52d['charCodeAt'](_0x3056c4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5aad04);};a0_0x324c['jsbqlD']=_0x4b3b05,a0_0x324c['TmfLzC']={},a0_0x324c['OYVDXM']=!![];}const _0x849bce=_0x5be151[0x0],_0x3e4ce9=_0xf60e50+_0x849bce,_0x15b19d=a0_0x324c['TmfLzC'][_0x3e4ce9];return!_0x15b19d?(_0x324ce7=a0_0x324c['jsbqlD'](_0x324ce7),a0_0x324c['TmfLzC'][_0x3e4ce9]=_0x324ce7):_0x324ce7=_0x15b19d,_0x324ce7;}let instance=null;function getInstance(){return!instance&&(instance=new RabbitMQService()),instance;}function a0_0x5be1(){const _0x381eb9=['ChvIBgLZAa','Aw5LCxvPDMfSzw50igfYzW','yxnZzxj0rxHJAgfUz2u','yxnZzxj0uxvLDwu','z2v0vgLTzq','xsbgywLSzwqGDg8GCgfYC2uGBwvZC2fNztOG','y29UzMLN','CM91DgLUz0TLEq','x3f1zxvL','ueHHreC','rMfPBgvKihrVihnLBMqGBwvZC2fNzsb0BYbsywjIAxrnuq','zNjVBq','DLnxCLy','CxvLDwuT','CMfUzg9T','xsbnzxnZywDLigHHBMrSzxiGCMvNAxn0zxjLza','vhj5Aw5NigfSDgvYBMf0AxzLihf1zxvLig5HBwuUlI4','Ehf4Dum','BwvZC2fNzuHHBMrSzxjZ','xsbnzxnZywDLihbYB2nLC3nLzcbZDwnJzxnZzNvSBhK','y2HHBM5LBa','xsbtDgfYDcbJB25ZDw1PBMCGBwvZC2fNzxmGzNjVBsbXDwv1zsaI','ywnR','CgfYC2u','ofjjDhLttW','z3HfCNC','xsbfCNjVCIbJCMvHDgLUzYbXDwv1zsa','BwvZC2fNzq','Aw5JBhvKzxm','CMvJB25Uzwn0','Bg9N','zw52','C2vUzfrVuxvLDwu','ChbKqwy','zfDqA3O','xsbszxrYEsbLEgnOyw5Nzsa','Dg9tDhjPBMC','m0XwyvfuCW','C2v0DxbdB2XSzwn0B3jjBMzYyxn0CNvJDhvYzq','xsbfEgnOyw5Nzsa','Ec1KzwfKlwXLDhrLCI1YB3v0Aw5NlwTLEq','C3rYAw5NAwz5','xsbgywLSzwqGDg8GChjVy2vZCYbTzxnZywDLlcbYzxf1zxvPBMC','y2XVC2u','yMLUzff1zxvL','C3vIC3rYAw5N','xsbbDhrLBxb0Aw5NihrVihjLy29UBMvJDcb0BYbsywjIAxrnus4UlG','zgvMyxvSDa','zNvUy3rPB24','CMvNAxn0zxjnzxnZywDLsgfUzgXLCG','zgLYzwn0','yKjXyK4','ignYzwf0zwqVCMvHzhK','mtmWntuZmfjSEMrbsG','rMDbqvm','t0Thuha','Aw5PDgLHBgL6zq','ndbkteLev0S','ChjLzMv0y2G','D0znwKy','xsbgywLSzwqGDg8GC3rHCNqGy29UC3vTAw5NoIa','CxvLDwu','ntiZmJi2n1HZtLH4ra','xsbcAw5KAw5Nia','DgLTzxn0yw1W','xsbnzxnZywDLigHHBMrSzxiGBxvZDcbIzsbHigz1BMn0Aw9U','odeWmda5ENHRCMvl','Dg9ju09tDhjPBMC','xsbbBhrLCM5HDgL2zsbXDwv1zsa','AxndB25Uzwn0zwq','lI4VDxrPBhmVCMfIyML0Bxe','ksbJCMvHDgvK','y29UBMvJDgLVBG','lI4VDxrPBhmVzgf0zuHLBhbLCG','mZu5nJK4mKrIugf3ra','mte1mtm2ugnRsg9v','ChjVy2vZC01LC3nHz2u','rxjYB3i6ia','zxHWB3j0CW','AhfXvxm','zxHJAgfUz2u','nZK2nJaXmhDAyKfYyW','qKPYzMy','EuvTwfC','qNvTCMu','xsbszxrYEsbXDwv1zsa','y29UDgvUDa','y29UC3vTzq','zxjYB3i','mJqZmZu2nhveruvmvG','v2H6C1K'];a0_0x5be1=function(){return _0x381eb9;};return a0_0x5be1();}module[a0_0x423a02(0x12b)]={'getInstance':getInstance};
@@ -1 +1 @@
1
- const a0_0x58e1e0=a0_0x2f24;(function(_0x15b625,_0x6e129b){const _0x57f1c9=a0_0x2f24,_0x469244=_0x15b625();while(!![]){try{const _0x15e144=parseInt(_0x57f1c9(0x1d0))/0x1+parseInt(_0x57f1c9(0x172))/0x2+parseInt(_0x57f1c9(0x206))/0x3+parseInt(_0x57f1c9(0x157))/0x4*(-parseInt(_0x57f1c9(0x145))/0x5)+parseInt(_0x57f1c9(0xfd))/0x6*(-parseInt(_0x57f1c9(0x13a))/0x7)+parseInt(_0x57f1c9(0x1d2))/0x8+parseInt(_0x57f1c9(0x15e))/0x9*(parseInt(_0x57f1c9(0x1ed))/0xa);if(_0x15e144===_0x6e129b)break;else _0x469244['push'](_0x469244['shift']());}catch(_0x2b1a7d){_0x469244['push'](_0x469244['shift']());}}}(a0_0x4d65,0x873a4));function a0_0x4d65(){const _0x24050b=['tuHgtNq','C2v0','lI4VlI4VC2vYDMLJzxmVA2fMA2ftzxj2AwnL','Aw5PDgLHBgL6zq','C3bSAxrtCwXtDgf0zw1LBNrZ','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteWSihvWzgf0zwrFyxqGpsbtwvnusu1fu1rbtva','AxnqyxvZzwq','AfPkywO','rMfPBgvKihrVihb1yMXPC2GGsK9cx0nptvbmrvrfrcb0BYblywzRyq','CxH4rKW','tuvsr0uGsu5utYbQB2jFCMvNAxn0CNKGCGOGicaGicaGicaGifvtsu5hicHtruXfq1qGoJeGqvmGAM4GrLjptsbevufmksbZie9oicHYlMPVyL9Uyw1Lid0GCY5QBIKkicaGicaGicaGicbxsevoie1bveniruqGveHftIbvuerbveuGu0vucIaGicaGicaGicaGicbKAxnWBgf5x25HBwuGpsa6mIWGDhLWzsa9idOZlcbZy2HLzhvSzsa9idO0lcbXDwv1zsa9idO1laOGicaGicaGicaGicaGAgfUzgXLCIa9idO2lcbJB25MAwDFzMLSzsa9idO3lcb0Aw1LB3v0id0GoJGSihjLDhj5x21HEca9idO5laOGicaGicaGicaGicaGCMv0CNLFyMfJA29MzIa9idOXmcWGC3rHDhvZid0GoJeXlcbUzxH0x3j1BL9HDca9idOXmIWGDxbKyxrLzf9HDca9ifnzu1rjtuvtvefnuaOGicaGicaGicaGifDiru4GtK9uie1bveniruqGveHftIbjtLnfuLqkicaGicaGicaGicaGicHQB2jFBMfTzsWGzgLZCgXHEv9Uyw1Llcb0ExbLlcbZy2HLzhvSzsWGCxvLDwuSigHHBMrSzxiSignVBMzPz19MAwXLlaOGicaGicaGicaGicaGihrPBwvVDxqSihjLDhj5x21HEcWGCMv0CNLFyMfJA29MzIWGC3rHDhvZlcbUzxH0x3j1BL9HDcWGy3jLyxrLzf9HDcWGDxbKyxrLzf9HDcKkicaGicaGicaGicbwquXvrvmGkdOXlca6mIWGoJmSidO0lca6nsWGoJySidO3lca6ocWGoJKSidOXmcWGoJeXlca6mtiSifnzu1rjtuvtvefnucWGu1LtveLnrvnuqu1qkq','AM9Ix3jLzgLZx2zHAwXLza','zw5ZDxjLvgfIBgvZ','tw9zAM8','tg9HzgvKia','tNvutMG','C3bSAxq','nKDeBNHJta','icHPzdOG','wwv3uMu','D2fYBG','zuDdy3C','A1bAD0m','DxbKyxrLsM9IsgLZDg9YEunVBxbSzxrLza','AM9Ix3bYB2DYzxnZ','C3rHCNrZv2L0Aa','B25kB2jqCM9NCMvZCW','EuHPz1G','uKvesvnFse9tva','ywrK','z2v0tMv4Dfj1BKzYB21cDwXStve','yMXXCLu','CxvLDwu','AM9Ix2rIx3vUyxzHAwXHyMXL','C3rHBgXLza','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa6msWGBgfZDf9KDxjHDgLVBL9TCYa9idOYlaOGicaGicaGicaGia','CgfYC2u','qNvSBe1rifjLzgLZignVBM5Ly3rPB24GDMvYAwzPzwq','v2LxAva','AM9Ix3jLz2LZDgvYx2zHAwXLza','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticGKmsWGjdiSicqZlcaKncWGjduSicDYDw5UAw5NjYWGjdySicq3lcaKocWGtK9xkcKSicq5lcbot1COksK','AM9Ix2HPC3rVCNLFAw5Zzxj0x2vYCM9Y','Cw1WsK4','CMv0CNK','vgTvzvi','AM9Ix2HPC3rVCNLFAw5Zzxj0x2jNx2vYCM9Y','yMfJA29MzG','EgzUque','EMnly3q','C1vArwS','AM9PBG','sK9cx1nuquXmrurFsu5urvjwquW','qNvSBe1rifjLzgLZignVBM5Ly3rPB24GzxjYB3i6ia','A1roDeW','vgLKywSGywrHigPVyIbJB25MAwCGzgL0zw11A2fUigrPihbHEwXVywqVAM9ICY8UiePVyIbnyw5Hz2vYigfRDgLMihrHBNbHignYB24U','ChjVy2vZC2vKt24','wgTZs3O','rfDAD3C','EffhDwK','AgLZDg9YEuLK','AM9Ix2vUC3vYzv90ywjSzxnFzxjYB3i','sM9IigvUC3vYzvrHyMXLCYb3yxjUAw5NoIa','y2XLyxi','yxr0zw1WDa','sK9cx1jfreLtx1bsruzjwa','Duf1Cw0','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsaKmsWGBgfZDf9KDxjHDgLVBL9TCYa9icqYlaOGicaGicaGicaGia','y3jVBG','AM9Ix21HBMfNzxjFC2H1DgrVD25FC3rHCNq','zxHLy3v0zuv2zw50sgfUzgXLCNm','B3jHy2XL','sM9IigrPC3bHDgnOzwqGkgrLBgf5zwqG','sM9Iihn0ywXSzwq6ia','rejFvfLqrq','yvDgEw0','uKvesvnFrei','rMfPBgvKihrVihvWC2vYDcbQB2iGCMvNAxn0CNK6ia','C3rYAw5NAwz5','mJq4ntG4mK1lAMTmDq','uKvesvnFue9sva','D29YA2vYCW','z2v0rgjuExbL','sK9cx0vwru5u','B2zMBgLUzq','yxr0zw1WDhnnywrL','zgvSyxLLza','AM9Ix3n0ywXSzwq','t3jHy2XLiercig1VzhvSzsbUB3qGyxzHAwXHyMXL','D29YA2LUz0rPCG','ntmZmte1nxL4qLLpBq','AM9Ix3f1zxvLC19JCMvHDgvK','v09Muum','DxbKyxrLuMvNAxn0CNLdB3vUDgvYCW','D2fPDgLUzW','lI4VlI4VDxrPBhmVBg9Nz2vY','AM9ICW','sM9Iihn0yxj0zwq6ia','DMfSDwvZ','zgvZy3jPChrPB24','BwfW','sM9IignVBMzPzYbPBNzHBgLKoIa','q211CvK','zxHLy3v0zvf1zxj5','DxbZzxj0sM9IuMvNAxn0CNK','B25bzNrLCKPVyKnVBxbSzxrLigHHBMrSzxiGzxjYB3iGkg5VBI1IBg9JA2LUzYK','mYbcDwXStveGuxvLDwvZignYzwf0zwqGkgHPz2GSigrLzMf1BhqSigXVDYK','B3jHltaWotu1','ng9oAxbdsG','AM9Ix2THzMTHx3b1yMXPC2HFzxjYB3i','zxHWB25LBNrPywW','rxnRuhO','CNvUBMLUzW','lI4VlI4VDxrPBhmVzgi','Aw5PDgLHBgL6zwq','odm3swL1yuHk','sM9Iie1HBMfNzxiGCMvHzhK6ia','C3vJy2vZCW','AM9Ix2nVBMzPz19PBNzHBgLK','B25czwzVCMvkB2jfEgvJDxrL','zgLZCgf0y2G','Ewj2wxK','Aw5MBW','sM9IignHBMnLBgXLzcb2AweGqvbj','D0fetKK','ChjVy2vZC0PVyG','DhLWzq','rvfUCMy','z2v0sM9ICW','zw5HyMXLza','Bwv0ywrHDge','BMfTzq','y2XVC2u','z2v0sgvHBhrOu3rHDhvZ','z2v0rgjvDgLSCW','ndK4mZu0B1bLqKT2','y2f0y2G','CMy6','zgLZCgf0y2HezwXHEwvK','x3nVDxjJzuzPBgu','DgLTzw91Da','z2v0sM9Iq291BNrZ','BxmPlI4U','y3DK','zxjYB3i','zw52','rMfPBgvKihrVihb1yMXPC2GGsK9cx0zbsuXfrcb0BYblywzRyq','ifjLzgLZignVBM5Ly3rPB25Z','BgvUz3rO','uMvKAxmGy29UBMvJDgLVBIbMywLSzwq6ia','zxHLy3v0zvrYyw5Zywn0Aw9U','CKXZB3e','y3j5ChrV','sK9cx1jfvevoveLptL9it1vsuW','zgf0yq','zMfPBgvK','BgLZDfj1BM5PBMC','zxvPr2S','zxjYB3jZ','rMfPBgvKihrVihvWzgf0zsbQB2iGAgLZDg9YEsaOzMfPBgvKktOG','vNDeCeO','Bg93','ihrPzgfRigrPDgvTDwTHBG','AgfUzgXLCNm','shLku2G','AM9Ix2rPC3bHDgnOzwrFzgvSyxLLza','zxHPC3rZu3LUyW','DxrMoa','sK9cx0zbsuXfra','AM9Ix2nVBxbSzxrLza','AM9Ix2HPC3rVCNLFzMfPBgvKx2vYCM9Y','AujLwvy','id0G','zM9ICuu','DxbKyxrLuMvNAxn0CNLtDgf0Dxm','y3jVBL9YzwDPC3rLCMvK','Cu9zrMS','C2XPy2u','zw50CMLLCW','sM9IigrPC3bHDgnOzwq6ia','y3jLyxrLza','z0rRBvy','BwLU','Cgf1C2u','ywn0AxzLsgLZDg9YEuLKCW','sK9cx1nivvret1Dox1rjtuvpvvq','rg9qDfu','C3LZDgvT','z2v0ug9VBa','zgvIDwC','qMfJA2DYB3vUzcbPBNnLCNqGAM9IigHPC3rVCNKGzMfPBgvKoIa','yNHcAuW','q3jVBIbYzwDPC3rLCMvKoIa','B25SAw5L','C3vIC3rYAw5N','BgLTAxq','B25kB2jgywLSzwq','z2v0sM9Iu2nOzwr1BgvYCW','Cgf0Aa','DuroEfa','AgfUzgXLCG','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ie5pvYGPlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GjdeSihbYB2DYzxnZid0GmtaWlcbYzxn1BhrFC3vTBwfYEsa9icqYifDirvjfigLKid0Gjdm','icSGmsWkicaGicaGicaGicbUzxH0x3j1BL9HDca9idOZlcb1CgrHDgvKx2f0id0Gu1LtveLnrvnuqu1qifDirvjfigPVyL9Uyw1Lid0GoJq','AM9Ix2nVBMzPz19WyxjZzv9LCNjVCG','wgHRu0O','DhjPz2DLCMvKqNK','CMv0DxjUDMfSDwu','B25bzNrLCKPVyKnVBxbSzxrL','z2v0sM9Iu3rHDhvZ','shnpDLK','Aw5JBhvKzxm','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNzMfPBgvKjYWGy29TCgXLDgvKx2f0id0Gu1LtveLnrvnuqu1qlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GoJeSihbYB2DYzxnZid0GoJiSigvYCM9Yx21LC3nHz2uGpsa6mYWGzxjYB3jFC3rHy2SGpsa6ncbxsevsrsbPzca9idO1','ywz0zxjFAM9Ix2zHAwXLzf9OB29Rx2vYCM9Y','ignHBMnLBgXLzcaOD2fZigfJDgL2zsK','AM9Ix2rPC3bHDgnOzwq','AM9Iq29UzMLNCW','rMfPBgvKihrVihnLDcbQB2jZig9MzMXPBMu6ia','yxbPlwnHBMnLBa','lI4VlI4VDxrPBhmVzgiTBxLZCwW','zNH5u1u','AM9Ix2rIx3r5CgvFDw5ZDxbWB3j0zwq','AM9Ix3jLz2LZDhj5x2nVDw50zxjFzxjYB3i','iokaLca','DhjPz2DLCLr5Cgu','z2v0uMvKAxndBgLLBNq','C2nOzwr1Bgu','uMrgtuC','C3jJ','y29UBMvJDgLVBNm','ndm4nZuXCxHYyw95','Bg9HzePVyKnVBMzPz3m','ntu5mZe3nLLREw9iyq','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteW','z2v0u3rHDgu','CMvHzezPBgvtEw5J','Bwrwr2C','yNvPBgrdB250zxH0','z21qELe','BuDhy2C','v0jjAhq','ug9ZDgDYzvnrtcbeqIbTB2r1BguGBM90igf2ywLSywjSzq','yxbPlwrLBgf5zwq','Bw92zvrVrMfPBgvK','BwvZC2fNzq','y3jLyxrLqNvSBe1rq29UBMvJDgLVBG','CMvHzgrPCLn5BMm','ihrPzgfRigjPC2eGzgKTy2fUy2vSicHZDgf0ztOG','yxbP','CxvLDwvZ','ywn0AxzL','jYb0AwrHAYbKAwr1A3vUzYb1BNr1AYbQB2iGBw9UAxrVCMLUzYb0ywjSzxm','sM9Iia','ze1gwMG','wxnptMm','ChjVz3jLC3m','z2v0sM9I','ze9qDue','ChfYBgO','mtaZotbNvNfhy1C','zMLSDgvY','z2v0sw5ZDgfUy2u','lI4VlI4VDxrPBhmVy29TCg9Uzw50lwvUz2LUzq','z2v0s2fMA2ftzxj2AwnL','BMv4Da','zhvWBgLJyxrL','zNvUy3rPB24','CMvZDgzVCMDLlMPVyNmUy29TCgXLDgvK','AM9Ix2vUC3vYzv90ywjSzxnFD2fYBG','lMPZB24','zgvMyxvSDa','Aw5Zzxj0uhjVBwLZzq','z2v0q2XPzw50','EhjZvLO','Dw5RBM93BG','B25bzNrLCKPVyKzHAwXLza','z3LRAhe','Dg9mB3DLCKnHC2u','y2HPBgq','ywXS','y29TCg9Uzw50rw5NAw5L','zMfPBgvKuMvHC29U','CMvNAxn0zxjkB2i','AM9ItMfTzq','mtq3ndy0mwjpqxH5yW','CxvPDa','BxLZCwWUC3fS','ktOG','Bwf4qxr0zw1WDhm','zMLUAxnOzwrpBG','AM9IlxnJAgvKDwXLCG','icHHDhrLBxb0ia','rxLTDvO','BMPRCNm','sM9IihrPzgfRigrPDgvTDwTHBJOG','igPVyIbJB25MAwCOCYKGzNjVBsbWyxLSB2fKl2PVyNmV','BxLZCwW','AxnsDw5UAw5N','rejFvfLqrsaN','rMfPBgvKihrVihbHCNnLigPVyIbJB25MAwC6ia','rgf0ywjHC2uGDgLKywSGDgvYC2vKAweSihnRAxaGyxv0BY1JCMvHDguGAM9IihrHyMXLCW'];a0_0x4d65=function(){return _0x24050b;};return a0_0x4d65();}const {Queue,Worker}=require('bullmq'),Redis=require('ioredis'),crypto=require(a0_0x58e1e0(0x183)),{v7:uuidv7}=require('uuid'),fs=require('fs'),path=require(a0_0x58e1e0(0x1b1)),{logger}=require(a0_0x58e1e0(0x14a)),jobValidator=require('./job-validator');let componentEngine=null;function a0_0x2f24(_0x1345a8,_0x401209){_0x1345a8=_0x1345a8-0xec;const _0x4d6559=a0_0x4d65();let _0x2f24f3=_0x4d6559[_0x1345a8];if(a0_0x2f24['foZUhw']===undefined){var _0x35a722=function(_0xc13bec){const _0x4294a1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x448c82='',_0x40a9bb='';for(let _0x37bdac=0x0,_0x52b0c5,_0x3923d1,_0x511cb6=0x0;_0x3923d1=_0xc13bec['charAt'](_0x511cb6++);~_0x3923d1&&(_0x52b0c5=_0x37bdac%0x4?_0x52b0c5*0x40+_0x3923d1:_0x3923d1,_0x37bdac++%0x4)?_0x448c82+=String['fromCharCode'](0xff&_0x52b0c5>>(-0x2*_0x37bdac&0x6)):0x0){_0x3923d1=_0x4294a1['indexOf'](_0x3923d1);}for(let _0x5610e0=0x0,_0x370512=_0x448c82['length'];_0x5610e0<_0x370512;_0x5610e0++){_0x40a9bb+='%'+('00'+_0x448c82['charCodeAt'](_0x5610e0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x40a9bb);};a0_0x2f24['cjbWAw']=_0x35a722,a0_0x2f24['CvZVUo']={},a0_0x2f24['foZUhw']=!![];}const _0x136670=_0x4d6559[0x0],_0x39ec73=_0x1345a8+_0x136670,_0x3af7ad=a0_0x2f24['CvZVUo'][_0x39ec73];return!_0x3af7ad?(_0x2f24f3=a0_0x2f24['cjbWAw'](_0x2f24f3),a0_0x2f24['CvZVUo'][_0x39ec73]=_0x2f24f3):_0x2f24f3=_0x3af7ad,_0x2f24f3;}function getComponentEngine(){const _0x47f663=a0_0x58e1e0,_0x588a56={'fxySU':_0x47f663(0x1f0)};if(!componentEngine)try{const _0x3680eb=require(_0x588a56[_0x47f663(0x1c6)]);componentEngine=_0x3680eb[_0x47f663(0x202)]||_0x3680eb;}catch(_0x57f63d){}return componentEngine;}class JobManager{constructor(){const _0x154828=a0_0x58e1e0;this[_0x154828(0x1e3)]={},this[_0x154828(0x13c)]={},this['jobConfigs']={},this[_0x154828(0x18e)]={},this[_0x154828(0x1cf)]=[],this['initialized']=![],this[_0x154828(0x144)]=process[_0x154828(0x17a)](),this['activeHistoryIds']=new Map();}[a0_0x58e1e0(0x1df)](){const _0x3c3015=a0_0x58e1e0,_0x35d494={'Jsysv':'localhost','CdMWE':function(_0x4aeb8d,_0x48ecd1,_0x2ce9fd){return _0x4aeb8d(_0x48ecd1,_0x2ce9fd);},'NuTNh':_0x3c3015(0x17b)},_0x5459f5=new Redis({'host':process['env'][_0x3c3015(0x108)]||_0x35d494['Jsysv'],'port':parseInt(process[_0x3c3015(0x17c)][_0x3c3015(0x13b)],0xa)||0x18ec,'password':process[_0x3c3015(0x17c)]['REDIS_PASSWORD']||undefined,'db':_0x35d494['CdMWE'](parseInt,process[_0x3c3015(0x17c)][_0x3c3015(0x137)],0xa)||0x0,'maxRetriesPerRequest':null,'retryStrategy'(_0x35ee01){const _0x281846=Math['min'](_0x35ee01*0x32,0x7d0);return _0x281846;}});return _0x5459f5['on'](_0x35d494[_0x3c3015(0xfb)],_0x2798f9=>{const _0x5f1a6f=_0x3c3015;logger[_0x5f1a6f(0x17b)]({'event':'bullmq_redis_error','error':_0x2798f9[_0x5f1a6f(0x1de)]},_0x5f1a6f(0x120)+_0x2798f9[_0x5f1a6f(0x1de)]);}),this[_0x3c3015(0x1cf)]['push'](_0x5459f5),_0x5459f5;}async[a0_0x58e1e0(0xef)](){const _0x11488e=a0_0x58e1e0,_0x2de128={'fHokt':_0x11488e(0x142),'rLsoq':'bullmq_worker_error','DrNKU':_0x11488e(0x128),'wADNI':function(_0x120615,_0x148d09){return _0x120615===_0x148d09;},'vDaXZ':'unknown','hZJaj':_0x11488e(0x1f8),'WOfQC':function(_0x328736,_0x11ca10,_0x4c72f5){return _0x328736(_0x11ca10,_0x4c72f5);},'yHigX':_0x11488e(0x18c),'QASAt':function(_0x36a57b,_0x4e254b,_0x5dcfaf){return _0x36a57b(_0x4e254b,_0x5dcfaf);},'dMFZh':'completed','blqrU':'failed','lsXOx':'job_workers_created','OtaRx':_0x11488e(0x113)};if(this['initialized']){logger['warn']({'event':'job_manager_already_initialized'},'Job\x20Manager\x20sudah\x20diinisialisasi,\x20skip');return;}logger[_0x11488e(0x165)]({'event':'job_manager_init_start'},'Initializing\x20Job\x20Manager...');const _0x28fedf=this['createBullMQConnection']();try{await _0x28fedf['ping'](),logger[_0x11488e(0x165)]({'event':'job_redis_connected'},_0x11488e(0x111));}catch(_0x341a73){logger['error']({'event':_0x11488e(0xf7),'error':_0x341a73[_0x11488e(0x1de)]},_0x11488e(0x180)+_0x341a73['message']+'.\x20Job\x20Scheduler\x20tidak\x20akan\x20aktif.');try{await _0x28fedf['quit']();}catch(_0x7ce456){}this['connections']=this['connections']['filter'](_0x21787a=>_0x21787a!==_0x28fedf);return;}try{await _0x28fedf[_0x11488e(0x207)]();}catch(_0x59e832){}this[_0x11488e(0x1cf)]=this[_0x11488e(0x1cf)][_0x11488e(0x1ee)](_0xb4e684=>_0xb4e684!==_0x28fedf);try{await this[_0x11488e(0xf8)]();}catch(_0x54756c){logger[_0x11488e(0x100)]({'event':_0x2de128['DrNKU'],'error':_0x54756c['message']},'Failed\x20to\x20ensure\x20job\x20tables:\x20'+_0x54756c['message']+'.\x20DB\x20monitoring\x20disabled.');}const _0xe0c1a1=this['loadJobConfigs']();_0x2de128[_0x11488e(0x167)](_0xe0c1a1[_0x11488e(0x17f)],0x0)&&logger['info']({'event':'job_no_configs'},_0x11488e(0x122));const _0x3b9bbc=[];for(const _0x3e2a05 of _0xe0c1a1){const _0x30da59=jobValidator['validateConfig'](_0x3e2a05,this[_0x11488e(0x144)]);_0x30da59['valid']?_0x3b9bbc['push'](_0x3e2a05):logger[_0x11488e(0x17b)]({'event':_0x11488e(0x161),'name':_0x3e2a05[_0x11488e(0x16e)]||_0x2de128['vDaXZ'],'errors':_0x30da59['errors']},_0x11488e(0x150)+(_0x3e2a05['name']||_0x11488e(0x1fc))+_0x11488e(0x1c9)+_0x30da59[_0x11488e(0x189)]['join'](';\x20'));}const _0x7f198e=process['env']['RESTFORGE_PROJECT_NAME']||_0x2de128[_0x11488e(0xf3)],_0x487a71=process[_0x11488e(0x17c)][_0x11488e(0x12c)]||_0x11488e(0x174)+_0x7f198e+':job',_0xb3eb0c=_0x2de128[_0x11488e(0x147)](parseInt,process['env'][_0x11488e(0x184)],0xa)||0x48,_0x58e273=parseInt(process['env']['JOB_FAILED_RETENTION_HOURS'],0xa)||0xa8,_0x28ad16={'removeOnComplete':{'age':_0xb3eb0c*0xe10},'removeOnFail':{'age':_0x58e273*0xe10}},_0x2ad6db={'high-priority':'high','default':_0x11488e(0x1f8),'low-priority':_0x2de128[_0x11488e(0x107)]};for(const [_0x2ffd3f,_0x19e812]of Object[_0x11488e(0x19d)](_0x2ad6db)){this[_0x11488e(0x1e3)][_0x2ffd3f]=new Queue(_0x19e812,{'connection':this[_0x11488e(0x1df)](),'prefix':_0x487a71,'defaultJobOptions':_0x28ad16});}logger['info']({'event':_0x11488e(0x146),'count':0x3},_0x11488e(0x155));const _0x5ed304=_0x2de128['QASAt'](parseInt,process['env']['JOB_CONCURRENCY'],0xa)||0x5,_0x33304d=parseInt(process[_0x11488e(0x17c)][_0x11488e(0x11f)],0xa)||0x7530,_0x2c5217=parseInt(process['env']['JOB_MAX_STALLED_COUNT'],0xa)||0x2;for(const [_0x1bb720,_0x5b98ab]of Object[_0x11488e(0x19d)](_0x2ad6db)){const _0x44cbed=new Worker(_0x5b98ab,async _0x311ab0=>this['processJob'](_0x311ab0),{'connection':this[_0x11488e(0x1df)](),'prefix':_0x487a71,'concurrency':_0x5ed304,'stalledInterval':_0x33304d,'maxStalledCount':_0x2c5217});_0x44cbed['on'](_0x2de128[_0x11488e(0x1e7)],(_0x2d2f76,_0x21cef7)=>this['onJobCompleted'](_0x2d2f76,_0x21cef7)),_0x44cbed['on'](_0x2de128[_0x11488e(0x10b)],(_0x360a5a,_0x29cfee)=>this['onJobFailed'](_0x360a5a,_0x29cfee)),_0x44cbed['on'](_0x11488e(0x1e9),(_0x20121d,_0x360b1c)=>this[_0x11488e(0x106)](_0x20121d,_0x360b1c)),_0x44cbed['on'](_0x11488e(0x10e),_0x38d726=>{const _0x25cbe0=_0x11488e;logger['warn']({'event':_0x2de128['fHokt'],'jobId':_0x38d726},_0x25cbe0(0x134)+_0x38d726);}),_0x44cbed['on'](_0x11488e(0x17b),_0x22b892=>{const _0x491181=_0x11488e;logger[_0x491181(0x17b)]({'event':_0x2de128[_0x491181(0x182)],'queue':_0x1bb720,'error':_0x22b892[_0x491181(0x1de)]},'BullMQ\x20Worker\x20error\x20('+_0x1bb720+_0x491181(0x209)+_0x22b892['message']);}),this[_0x11488e(0x13c)][_0x1bb720]=_0x44cbed;}logger['info']({'event':_0x2de128['lsXOx'],'count':0x3,'concurrency':_0x5ed304},'3\x20BullMQ\x20Workers\x20created\x20(concurrency:\x20'+_0x5ed304+')');let _0x1c4c58=0x0;for(const _0x4f5083 of _0x3b9bbc){try{await this[_0x11488e(0x204)](_0x4f5083),_0x1c4c58++;}catch(_0xfa3689){logger['error']({'event':_0x2de128['OtaRx'],'name':_0x4f5083[_0x11488e(0x16e)],'error':_0xfa3689[_0x11488e(0x1de)]},'Failed\x20to\x20register\x20job:\x20'+_0x4f5083[_0x11488e(0x16e)]+'\x20—\x20'+_0xfa3689[_0x11488e(0x1de)]);}}this[_0x11488e(0x15d)]=!![];const _0x496be0=this['connections']['length'];logger['info']({'event':'job_manager_ready','registeredJobs':_0x1c4c58,'totalConfigs':_0x3b9bbc[_0x11488e(0x17f)],'redisConnections':_0x496be0},_0x11488e(0x15f)+_0x1c4c58+'\x20job(s)\x20registered,\x20'+_0x496be0+_0x11488e(0x17e));}async['shutdown'](){const _0x4bacc4=a0_0x58e1e0,_0x3602ee={'TkUeR':function(_0x45274,_0x2b606a,_0x5f5598){return _0x45274(_0x2b606a,_0x5f5598);},'gceaR':function(_0x2029f8,_0x3c7da4){return _0x2029f8<_0x3c7da4;}};if(!this['initialized'])return;const _0x245ed3=_0x3602ee[_0x4bacc4(0x118)](parseInt,process['env'][_0x4bacc4(0x1a4)],0xa)||0x2710;logger[_0x4bacc4(0x165)]({'event':_0x4bacc4(0x130),'timeoutMs':_0x245ed3},'Job\x20Manager\x20shutting\x20down\x20(timeout:\x20'+_0x245ed3+_0x4bacc4(0x179));const _0x32cfef=Object['values'](this['workers'])[_0x4bacc4(0x14f)](async _0x3e5282=>{const _0x4f076e=_0x4bacc4;try{await _0x3e5282[_0x4f076e(0x1a2)]();}catch(_0x350ddd){}});await Promise['all'](_0x32cfef);const _0x423d6b=Date['now']();while(_0x3602ee['gceaR'](Date['now']()-_0x423d6b,_0x245ed3)){let _0x2356d=0x0;for(const _0x2cac68 of Object[_0x4bacc4(0x14d)](this[_0x4bacc4(0x1e3)])){try{const _0x3751fe=await _0x2cac68[_0x4bacc4(0x178)]('active');_0x2356d+=_0x3751fe[_0x4bacc4(0x1e4)]||0x0;}catch(_0x679165){}}if(_0x2356d===0x0)break;await new Promise(_0x4803f5=>setTimeout(_0x4803f5,0x1f4));}const _0x1229ee=Object[_0x4bacc4(0x14d)](this['workers'])['map'](async _0x95e4a8=>{try{await _0x95e4a8['close']();}catch(_0x17347f){}});await Promise[_0x4bacc4(0x201)](_0x1229ee);const _0x3fbd29=Object[_0x4bacc4(0x14d)](this[_0x4bacc4(0x1e3)])['map'](async _0x2e56f2=>{const _0x26e9d3=_0x4bacc4;try{await _0x2e56f2[_0x26e9d3(0x16f)]();}catch(_0xca4a87){}});await Promise[_0x4bacc4(0x201)](_0x3fbd29);for(const _0x5ecd36 of this[_0x4bacc4(0x1cf)]){try{await _0x5ecd36['quit']();}catch(_0x571fd8){}}this['queues']={},this['workers']={},this['connections']=[],await this['setAllJobsOffline'](),this['activeHistoryIds'][_0x4bacc4(0x12a)](),this['initialized']=![],logger[_0x4bacc4(0x165)]({'event':'job_manager_shutdown_complete'},'Job\x20Manager\x20shutdown\x20complete');}[a0_0x58e1e0(0x1d1)](){const _0x153322=a0_0x58e1e0,_0x4d1fbb={'XksKz':'utf8'},_0x468942=path['join'](this['workingDir'],'payload',_0x153322(0x14b));if(!fs[_0x153322(0x191)](_0x468942))return logger[_0x153322(0x165)]({'event':'job_config_dir_missing','path':_0x468942},'Folder\x20payload/jobs/\x20tidak\x20ditemukan'),[];const _0x2f0cd7=fs[_0x153322(0x1e0)](_0x468942)[_0x153322(0x1ee)](_0x41c556=>_0x41c556['endsWith'](_0x153322(0x1f7))),_0x3c27a9=[];for(const _0x12121d of _0x2f0cd7){const _0x4384b6=path[_0x153322(0x11e)](_0x468942,_0x12121d);try{const _0x1464bd=fs[_0x153322(0x1d5)](_0x4384b6,_0x4d1fbb[_0x153322(0x124)]),_0x507fb1=JSON[_0x153322(0x110)](_0x1464bd);_0x507fb1[_0x153322(0x176)]=_0x12121d,_0x3c27a9['push'](_0x507fb1);}catch(_0x4ab484){logger[_0x153322(0x17b)]({'event':_0x153322(0x1b6),'file':_0x12121d,'error':_0x4ab484[_0x153322(0x1de)]},_0x153322(0x215)+_0x12121d+'\x20—\x20'+_0x4ab484['message']);}}return logger['info']({'event':'job_configs_loaded','count':_0x3c27a9['length']},_0x153322(0xfa)+_0x3c27a9['length']+_0x153322(0x211)),_0x3c27a9;}async[a0_0x58e1e0(0x204)](_0x287250){const _0x5439b6=a0_0x58e1e0,_0x5bf082={'uAuqm':_0x5439b6(0x1ce),'xfnAA':_0x5439b6(0x14b),'eoqJS':function(_0x3b3870,_0x5792f5){return _0x3b3870===_0x5792f5;},'SmStY':_0x5439b6(0x12f),'IJkNu':function(_0x47bb4e,_0x5215f3){return _0x47bb4e!==_0x5215f3;},'pmILL':'default','lqGJd':_0x5439b6(0x13f),'bTiyn':function(_0x53b335,_0x24aa75){return _0x53b335===_0x24aa75;}},_0x805c3f=path['join'](this[_0x5439b6(0x144)],_0x5bf082[_0x5439b6(0x12d)],_0x5bf082[_0x5439b6(0x11b)],_0x287250['handler']+'.js');this[_0x5439b6(0x18e)][_0x287250['name']]=require(_0x805c3f),this[_0x5439b6(0x1c2)][_0x287250['name']]=_0x287250;if(_0x5bf082['eoqJS'](_0x287250['type'],_0x5bf082['SmStY'])&&_0x5bf082['IJkNu'](_0x287250[_0x5439b6(0x16c)],![])){const _0x1c8300=this[_0x5439b6(0x1e3)][_0x287250[_0x5439b6(0x10c)]||_0x5bf082['pmILL']];await _0x1c8300['upsertJobScheduler'](_0x287250['name'],{'pattern':_0x287250[_0x5439b6(0x1cc)],'tz':_0x287250['timezone']||undefined},{'name':_0x287250[_0x5439b6(0x16e)],'data':{'handler':_0x287250[_0x5439b6(0x1b3)],'triggeredBy':_0x5bf082['SmStY'],'metadata':_0x287250[_0x5439b6(0x16d)]||{}},'opts':{'attempts':_0x287250[_0x5439b6(0x117)]?.[_0x5439b6(0x20a)]||0x3,'backoff':{'type':_0x287250[_0x5439b6(0x117)]?.['backoff']||'exponential','delay':_0x287250[_0x5439b6(0x117)]?.['initialDelay']||0x1388},'timeout':_0x287250[_0x5439b6(0x177)]||0x7530}}),logger['info']({'event':_0x5439b6(0x19a),'name':_0x287250[_0x5439b6(0x16e)],'schedule':_0x287250['schedule'],'queue':_0x287250['queue']||_0x5439b6(0x1f8)},_0x5439b6(0x1ab)+_0x287250[_0x5439b6(0x16e)]+'\x20['+_0x287250['schedule']+']');}const _0x307c95=_0x287250['type']==='cron'&&_0x287250[_0x5439b6(0x16c)]!==![]?'online':_0x5bf082['lqGJd'];let _0x15bcd4=null;_0x5bf082['bTiyn'](_0x307c95,_0x5439b6(0x1ac))&&(_0x15bcd4=await this[_0x5439b6(0x10a)](_0x287250[_0x5439b6(0x16e)])),await this['upsertJobRegistry'](_0x287250,_0x307c95,_0x15bcd4);}async[a0_0x58e1e0(0x168)](_0x55453c){const _0x1e241d=a0_0x58e1e0,_0x5f1df4={'gDkmV':'job_started','EymuZ':function(_0x45dc3c,_0x11a22f){return _0x45dc3c+_0x11a22f;},'HsOvY':function(_0x38c654){return _0x38c654();},'mGGcg':function(_0x40a1fd,_0x2d360a){return _0x40a1fd===_0x2d360a;},'xRAzm':'api','kKbKD':'manual','RhaSj':'default','RcKuj':_0x1e241d(0x1f4),'ALXUn':function(_0x549baf,_0x1314bf){return _0x549baf(_0x1314bf);}},_0x3247ca=this['jobConfigs'][_0x55453c[_0x1e241d(0x16e)]],_0x4ed470=this[_0x1e241d(0x18e)][_0x55453c[_0x1e241d(0x16e)]];if(!_0x4ed470)throw new Error('Handler\x20tidak\x20ditemukan\x20untuk\x20job:\x20'+_0x55453c[_0x1e241d(0x16e)]);const _0x452776=logger['child']({'jobId':_0x55453c['id'],'jobName':_0x55453c[_0x1e241d(0x16e)]});_0x452776[_0x1e241d(0x165)]({'event':_0x5f1df4[_0x1e241d(0x1a0)],'attempt':_0x55453c['attemptsMade']+0x1,'triggeredBy':_0x55453c[_0x1e241d(0x185)]?.['triggeredBy']||'unknown'},_0x1e241d(0x14c)+_0x55453c['name']+_0x1e241d(0x20d)+_0x5f1df4['EymuZ'](_0x55453c[_0x1e241d(0x140)],0x1)+')');const _0x5e64d4=_0x5f1df4['HsOvY'](uuidv7),_0x4dbf0e=_0x55453c[_0x1e241d(0x185)]?.[_0x1e241d(0x1b8)]||_0x1e241d(0x1fc),_0x2f0246=this['insertJobHistory']({'id':_0x5e64d4,'jobName':_0x55453c['name'],'bullmqJobId':_0x55453c['id'],'triggerType':_0x5f1df4[_0x1e241d(0x1d9)](_0x4dbf0e,_0x1e241d(0x1dc))?_0x1e241d(0x141):_0x4dbf0e===_0x5f1df4['xRAzm']?_0x5f1df4['kKbKD']:'cron','triggeredBy':_0x4dbf0e===_0x1e241d(0x12f)?'system':_0x4dbf0e,'queue':_0x3247ca?.['queue']||_0x5f1df4['RhaSj'],'attempt':_0x5f1df4[_0x1e241d(0x20e)](_0x55453c['attemptsMade'],0x1),'configFile':_0x3247ca?.['_sourceFile']||null})[_0x1e241d(0x173)](_0x4f102a=>{const _0x1b20b3=_0x1e241d;_0x452776[_0x1b20b3(0x100)]({'event':_0x1b20b3(0x119),'error':_0x4f102a['message']},_0x1b20b3(0x1a9)+_0x4f102a['message']);});this['activeHistoryIds'][_0x1e241d(0xed)](_0x55453c['id'],{'historyId':_0x5e64d4,'insertPromise':_0x2f0246});const _0x11eaaa=this[_0x1e241d(0x1d7)](_0x55453c,_0x3247ca,_0x452776),_0x2406e8=_0x5f1df4[_0x1e241d(0x1bc)](getComponentEngine);if(_0x2406e8&&_0x5f1df4[_0x1e241d(0x1d9)](typeof _0x2406e8['executeEventHandlers'],_0x5f1df4['RcKuj'])){const _0x4bcb09=await _0x2406e8['executeEventHandlers'](_0x1e241d(0x162),_0x11eaaa,!![]);if(!_0x4bcb09['success'])throw new Error('Job\x20cancelled\x20by\x20onBeforeJobExecute:\x20'+_0x4bcb09['error']);}const _0x4a61af=await _0x5f1df4['ALXUn'](_0x4ed470,_0x11eaaa);return _0x452776['info']({'event':'job_handler_done','result':_0x4a61af},'Job\x20handler\x20completed:\x20'+_0x55453c[_0x1e241d(0x16e)]),_0x4a61af;}[a0_0x58e1e0(0x1d7)](_0x40fded,_0x41685e,_0x3f14d6){const _0x25b239=a0_0x58e1e0,_0x596e3b={'iBeYV':_0x25b239(0x13e),'RdFMG':function(_0x248c33,_0x47123c){return _0x248c33||_0x47123c;}};return{'jobId':_0x40fded['id'],'jobName':_0x40fded[_0x25b239(0x16e)],'attempt':_0x40fded[_0x25b239(0x140)]+0x1,'maxAttempts':_0x41685e?.['retry']?.[_0x25b239(0x20a)]||0x3,'payload':_0x40fded['data']||{},'config':_0x596e3b[_0x25b239(0x1cd)](_0x41685e,{}),'db':this['getDbUtils'](),'redis':this[_0x25b239(0x1cb)](),'logger':_0x3f14d6,'kafka':this['getKafkaService'](),'cache':this['getCacheManager'](),'updateProgress':async _0x3e8535=>{await _0x40fded['updateProgress'](_0x3e8535);},'emit':async(_0x5754a1,_0x162831)=>{const _0x537d8c=_0x25b239,_0x1c70ff=this['getKafkaService']();_0x1c70ff&&await _0x1c70ff['publishEvent'](_0x5754a1,_0x596e3b[_0x537d8c(0x196)],null,_0x162831,{'module':_0x537d8c(0x20c),'endpoint':_0x40fded['name']});},'job':_0x40fded};}[a0_0x58e1e0(0x13d)](){const _0x5034c=a0_0x58e1e0;return(process['env'][_0x5034c(0x135)]||'postgresql')[_0x5034c(0x1ff)]();}async['ensureTables'](){const _0x98c527=a0_0x58e1e0,_0x1001ae={'lTilZ':_0x98c527(0x10d),'GuiFq':_0x98c527(0x216),'TAPMT':'postgresql.sql','WBIht':'sql-scripts','YewRe':'job_sql_not_found','ZEVit':_0x98c527(0x192),'dlcBw':_0x98c527(0x156),'uDNxP':_0x98c527(0x1f6)},_0x1d5535=this['getDbUtils']();if(!_0x1d5535){logger['warn']({'event':_0x1001ae['lTilZ']},_0x1001ae['GuiFq']);return;}const _0x3b0afa=this[_0x98c527(0x13d)](),_0x373bc4={'postgresql':_0x1001ae['TAPMT'],'oracle':'oracle.sql','mysql':_0x98c527(0x208)},_0x20a512=_0x373bc4[_0x3b0afa];if(!_0x20a512){logger[_0x98c527(0x100)]({'event':_0x98c527(0x1c7),'dbType':_0x3b0afa},_0x98c527(0x214)+_0x3b0afa+_0x98c527(0x1e5));return;}const _0x54b3b0=path['join'](__dirname,_0x1001ae[_0x98c527(0x1da)],_0x20a512);if(!fs['existsSync'](_0x54b3b0)){logger[_0x98c527(0x100)]({'event':_0x1001ae[_0x98c527(0xff)],'path':_0x54b3b0},'SQL\x20script\x20tidak\x20ditemukan:\x20'+_0x54b3b0);return;}const _0x5f55ce=fs[_0x98c527(0x1d5)](_0x54b3b0,_0x1001ae['ZEVit']),_0x482955=this[_0x98c527(0xf0)](_0x5f55ce,_0x3b0afa);let _0x3d60f6=0x0;for(const _0x104526 of _0x482955){try{await _0x1d5535['executeQuery'](_0x104526),_0x3d60f6++;}catch(_0x8bcbbf){const _0x1406a6=(_0x8bcbbf['message']||'')[_0x98c527(0x1ff)](),_0x22aaf5=_0x1406a6['includes']('already\x20exists')||_0x1406a6['includes'](_0x1001ae['dlcBw'])||_0x1406a6[_0x98c527(0x1bd)](_0x98c527(0x1f3));!_0x22aaf5&&logger['warn']({'event':_0x1001ae[_0x98c527(0x1b2)],'error':_0x8bcbbf[_0x98c527(0x1de)]},_0x98c527(0x129)+_0x8bcbbf['message']);}}logger['info']({'event':'job_tables_ensured','dbType':_0x3b0afa,'executed':_0x3d60f6},'Job\x20monitoring\x20tables\x20ensured\x20('+_0x3b0afa+')');}['splitSqlStatements'](_0x545db4,_0x428d66){const _0x4dc2c1=a0_0x58e1e0,_0x1597fd={'EQnrf':_0x4dc2c1(0x132)};let _0x3e0855;return _0x428d66===_0x1597fd[_0x4dc2c1(0x16a)]?_0x3e0855=_0x545db4['split'](/\n\/\s*(?:\n|$)/):_0x3e0855=_0x545db4[_0x4dc2c1(0xfc)](/;\s*(?:\n|$)/),_0x3e0855[_0x4dc2c1(0x14f)](_0x29da83=>_0x29da83['trim']())[_0x4dc2c1(0x1ee)](_0x5e4175=>{const _0x5b8fa4=_0x4dc2c1;if(_0x5e4175['length']===0x0)return![];const _0x1a86b9=_0x5e4175[_0x5b8fa4(0xfc)]('\x0a')['filter'](_0x1e2453=>!_0x1e2453['trim']()[_0x5b8fa4(0x105)]('--')&&_0x1e2453['trim']()[_0x5b8fa4(0x17f)]>0x0);return _0x1a86b9['length']>0x0;});}async[a0_0x58e1e0(0x153)](_0x148291,_0x37b0b2=a0_0x58e1e0(0x1ac),_0x331540=null){const _0x259e16=a0_0x58e1e0,_0x259f2c={'OeIbd':'cron','qmpJN':_0x259e16(0x1f8),'JOyuv':_0x259e16(0x159),'pqrlj':function(_0x4cc445,_0x54ab2e){return _0x4cc445===_0x54ab2e;},'FXTqq':_0x259e16(0x212)},_0x2e5ceb=this['getDbUtils']();if(!_0x2e5ceb)return;const _0x1a7754=this[_0x259e16(0x13d)](),_0x1754db=[_0x148291['name'],_0x148291[_0x259e16(0x14e)]||_0x148291[_0x259e16(0x16e)],_0x148291['type']||_0x259f2c['OeIbd'],_0x148291['schedule']||null,_0x148291['queue']||_0x259f2c[_0x259e16(0x116)],_0x148291['handler'],_0x148291['_sourceFile']||'',_0x148291['timeout']||0x7530,_0x148291[_0x259e16(0x117)]?.[_0x259e16(0x20a)]||0x3,_0x148291['retry']?.[_0x259e16(0x11a)]||_0x259f2c['JOyuv'],_0x37b0b2,_0x331540];try{if(_0x259f2c[_0x259e16(0x1ec)](_0x1a7754,_0x259e16(0x132)))await _0x2e5ceb[_0x259e16(0x152)](_0x259e16(0xf6),_0x1754db);else _0x259f2c['pqrlj'](_0x1a7754,_0x259f2c['FXTqq'])?await _0x2e5ceb[_0x259e16(0x152)]('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)',_0x1754db):await _0x2e5ceb['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()',_0x1754db);}catch(_0x2bb82a){logger['warn']({'event':'job_registry_upsert_error','name':_0x148291['name'],'error':_0x2bb82a[_0x259e16(0x1de)]},_0x259e16(0x138)+_0x148291['name']+_0x259e16(0x1c9)+_0x2bb82a['message']);}}async['insertJobHistory'](_0x5637dc){const _0x83e997=a0_0x58e1e0,_0x5b630b={'VAkyX':_0x83e997(0x12f),'DoPtU':_0x83e997(0x1a6),'nTAhQ':'oracle','yOeNt':'mysql','lZPCL':_0x83e997(0x115)},_0x1f4075=this[_0x83e997(0x171)]();if(!_0x1f4075)return;const _0x3062b0=this['getDbType'](),_0x23a98a=[_0x5637dc['id'],_0x5637dc[_0x83e997(0x205)],_0x5637dc['bullmqJobId']||null,_0x5637dc[_0x83e997(0x1ca)]||_0x5b630b['VAkyX'],_0x5637dc[_0x83e997(0x1b8)]||_0x5b630b[_0x83e997(0x1a5)],_0x5637dc[_0x83e997(0x10c)]||'default',_0x5637dc[_0x83e997(0x12b)]||0x1,_0x5637dc['configFile']||null,process['pid']];try{if(_0x3062b0===_0x5b630b['nTAhQ'])await _0x1f4075[_0x83e997(0x152)]('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)',_0x23a98a);else _0x3062b0===_0x5b630b['yOeNt']?await _0x1f4075[_0x83e997(0x152)]('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())',_0x23a98a):await _0x1f4075['executeQuery'](_0x83e997(0x114),_0x23a98a);await this[_0x83e997(0x199)](_0x5637dc['jobName'],_0x83e997(0x15b));}catch(_0xf88073){logger['warn']({'event':_0x5b630b['lZPCL'],'jobName':_0x5637dc['jobName'],'error':_0xf88073['message']},'Failed\x20to\x20insert\x20job\x20history:\x20'+_0xf88073['message']);}}async[a0_0x58e1e0(0x103)](_0x3d10d4,_0x4b1f46,_0x611ea3){const _0x352299=a0_0x58e1e0,_0x202835={'qxxFL':function(_0x2dc123,_0x354e81){return _0x2dc123(_0x354e81);},'FTIND':function(_0x5bc9bb,_0x2240ed){return _0x5bc9bb===_0x2240ed;},'bxBiL':'oracle','JHxBi':function(_0x3356c1,_0x4cae68){return _0x3356c1===_0x4cae68;},'xQGui':_0x352299(0x212)},_0x272c21=this['getDbUtils']();if(!_0x272c21)return;const _0x155560=this[_0x352299(0x13d)](),_0x307392=_0x611ea3?_0x202835[_0x352299(0xf5)](String,_0x611ea3)[_0x352299(0x1ad)](0x0,0x1f4):null;try{if(_0x202835['FTIND'](_0x155560,_0x202835[_0x352299(0x1aa)]))await _0x272c21[_0x352299(0x152)]('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',[_0x4b1f46,_0x307392,_0x3d10d4]);else _0x202835['JHxBi'](_0x155560,_0x202835[_0x352299(0x126)])?await _0x272c21['executeQuery']('UPDATE\x20job_history\x20SET\x20status\x20=\x20\x27success\x27,\x20completed_at\x20=\x20NOW(),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20duration_ms\x20=\x20?,\x20progress\x20=\x20100,\x20result_summary\x20=\x20?\x20WHERE\x20id\x20=\x20?',[_0x4b1f46,_0x307392,_0x3d10d4]):await _0x272c21[_0x352299(0x152)](_0x352299(0x1b4),[_0x4b1f46,_0x307392,_0x3d10d4]);}catch(_0x58fc9d){logger[_0x352299(0x100)]({'event':'job_history_complete_error','historyId':_0x3d10d4,'error':_0x58fc9d[_0x352299(0x1de)]},'Failed\x20to\x20update\x20job\x20history\x20(completed):\x20'+_0x58fc9d['message']);}}async['updateJobHistoryFailed'](_0x1e38cb,_0xe819a,_0x2fef2e,_0x33c3dd,_0x2db427){const _0x59fca3=a0_0x58e1e0,_0x11c2fb={'kTNtL':function(_0x39868d,_0x5aa000){return _0x39868d(_0x5aa000);},'FUwTb':function(_0x94e78,_0x1e0d94){return _0x94e78===_0x1e0d94;},'eLLkp':_0x59fca3(0x132),'XhkSJ':function(_0x27652e,_0xaf8090){return _0x27652e||_0xaf8090;},'qOYFk':_0x59fca3(0x212)},_0x327c6f=this['getDbUtils']();if(!_0x327c6f)return;const _0x113440=this[_0x59fca3(0x13d)](),_0x416d17=_0x33c3dd?String(_0x33c3dd)[_0x59fca3(0x1ad)](0x0,0x3e8):null,_0x4234cb=_0x2db427?_0x11c2fb[_0x59fca3(0x121)](String,_0x2db427)[_0x59fca3(0x1ad)](0x0,0xfa0):null;try{if(_0x11c2fb['FUwTb'](_0x113440,_0x11c2fb['eLLkp']))await _0x327c6f[_0x59fca3(0x152)](_0x59fca3(0x1be),[_0xe819a,_0x11c2fb[_0x59fca3(0x1b7)](_0x2fef2e,0x0),_0x416d17,_0x4234cb,_0x1e38cb]);else _0x113440===_0x11c2fb[_0x59fca3(0x19b)]?await _0x327c6f['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?',[_0xe819a,_0x11c2fb[_0x59fca3(0x1b7)](_0x2fef2e,0x0),_0x416d17,_0x4234cb,_0x1e38cb]):await _0x327c6f['executeQuery']('UPDATE\x20job_history\x20SET\x20status\x20=\x20\x27failed\x27,\x20completed_at\x20=\x20NOW(),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20duration_ms\x20=\x20$1,\x20progress\x20=\x20$2,\x20error_message\x20=\x20$3,\x20error_stack\x20=\x20$4\x20WHERE\x20id\x20=\x20$5',[_0xe819a,_0x11c2fb[_0x59fca3(0x1b7)](_0x2fef2e,0x0),_0x416d17,_0x4234cb,_0x1e38cb]);}catch(_0x13e135){logger['warn']({'event':_0x59fca3(0x195),'historyId':_0x1e38cb,'error':_0x13e135['message']},_0x59fca3(0x18a)+_0x13e135['message']);}}async['updateRegistryStatus'](_0x2255b7,_0x5cb196){const _0x1f382c=a0_0x58e1e0,_0x1ef897={'sKghQ':_0x1f382c(0x132),'fAHvt':'mysql'},_0x23a36d=this['getDbUtils']();if(!_0x23a36d)return;const _0x141aa5=this[_0x1f382c(0x13d)]();try{if(_0x141aa5===_0x1ef897['sKghQ'])await _0x23a36d[_0x1f382c(0x152)]('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20:1,\x20last_run_at\x20=\x20SYSTIMESTAMP,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updated_at\x20=\x20SYSTIMESTAMP\x20WHERE\x20job_name\x20=\x20:2',[_0x5cb196,_0x2255b7]);else _0x141aa5===_0x1ef897['fAHvt']?await _0x23a36d['executeQuery']('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20?,\x20last_run_at\x20=\x20NOW()\x20WHERE\x20job_name\x20=\x20?',[_0x5cb196,_0x2255b7]):await _0x23a36d[_0x1f382c(0x152)]('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',[_0x5cb196,_0x2255b7]);}catch(_0x13464e){}}async[a0_0x58e1e0(0x148)](_0x3195c7,_0x26bde2,_0x3f8be7,_0x3e60c3){const _0x46c535=a0_0x58e1e0,_0x48e8a6={'MHFNt':function(_0x438304,_0x47ef05){return _0x438304===_0x47ef05;},'VYCst':'success','HWtBU':'total_success','bEtxH':'oracle','UHVTX':function(_0x450623,_0x4887e1){return _0x450623===_0x4887e1;}},_0x2926d3=this['getDbUtils']();if(!_0x2926d3)return;const _0x2a85d4=this[_0x46c535(0x13d)](),_0x52c1f0=_0x48e8a6[_0x46c535(0xec)](_0x26bde2,_0x48e8a6['VYCst'])?_0x48e8a6['HWtBU']:'total_failed';try{if(_0x48e8a6[_0x46c535(0xec)](_0x2a85d4,_0x48e8a6['bEtxH']))await _0x2926d3[_0x46c535(0x152)](_0x46c535(0x10f)+_0x52c1f0+'\x20=\x20'+_0x52c1f0+_0x46c535(0x1b5),[_0x26bde2,_0x3f8be7,_0x3e60c3,_0x3195c7]);else _0x48e8a6['UHVTX'](_0x2a85d4,'mysql')?await _0x2926d3['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'+_0x52c1f0+_0x46c535(0x197)+_0x52c1f0+'\x20+\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20next_run_at\x20=\x20?\x20WHERE\x20job_name\x20=\x20?',[_0x26bde2,_0x3f8be7,_0x3e60c3,_0x3195c7]):await _0x2926d3['executeQuery'](_0x46c535(0x12e)+_0x52c1f0+_0x46c535(0x197)+_0x52c1f0+'\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',[_0x26bde2,_0x3f8be7,_0x3e60c3,_0x3195c7]);}catch(_0x14f82f){logger['warn']({'event':_0x46c535(0x1c8),'jobName':_0x3195c7,'error':_0x14f82f[_0x46c535(0x1de)]},'Failed\x20to\x20update\x20job\x20registry\x20counters:\x20'+_0x14f82f['message']);}}async['getNextRunFromBullMQ'](_0x55bc49){const _0xa1f205=a0_0x58e1e0,_0x23f8f4={'HyJSh':function(_0xd4d4c8,_0x4bd6c9){return _0xd4d4c8===_0x4bd6c9;}},_0x872adf=this[_0xa1f205(0x1c2)][_0x55bc49];if(!_0x872adf||_0x872adf[_0xa1f205(0x169)]!=='cron'||_0x23f8f4[_0xa1f205(0x18f)](_0x872adf['enabled'],![]))return null;const _0x519389=this[_0xa1f205(0x1e3)][_0x872adf['queue']||_0xa1f205(0x1f8)];if(!_0x519389)return null;try{if(typeof _0x519389['getJobSchedulers']==='function'){const _0x4004a0=await _0x519389[_0xa1f205(0x1b0)](0x0,0x64),_0x953bd1=_0x4004a0['find'](_0x11302c=>_0x11302c['name']===_0x55bc49);return _0x953bd1?.[_0xa1f205(0x1f2)]?new Date(_0x953bd1[_0xa1f205(0x1f2)]):null;}}catch(_0x41aff5){}return null;}async['setAllJobsOffline'](){const _0x2895e0=a0_0x58e1e0,_0x253274={'euiGk':function(_0x19be25,_0x2f9772){return _0x19be25===_0x2f9772;},'muDki':_0x2895e0(0x132),'VwDpJ':function(_0x115579,_0x52257a){return _0x115579===_0x52257a;}},_0x41ca74=this[_0x2895e0(0x171)]();if(!_0x41ca74)return;const _0x4bf4d0=this['getDbType']();try{if(_0x253274[_0x2895e0(0x188)](_0x4bf4d0,_0x253274['muDki']))await _0x41ca74['executeQuery'](_0x2895e0(0xf1));else _0x253274[_0x2895e0(0x18b)](_0x4bf4d0,'mysql')?await _0x41ca74['executeQuery'](_0x2895e0(0x1d3)):await _0x41ca74[_0x2895e0(0x152)]('UPDATE\x20job_registry\x20SET\x20status\x20=\x20\x27offline\x27,\x20next_run_at\x20=\x20NULL,\x20updated_at\x20=\x20NOW()');}catch(_0x36f2e4){logger[_0x2895e0(0x100)]({'event':'job_registry_offline_error','error':_0x36f2e4['message']},_0x2895e0(0x1c3)+_0x36f2e4['message']);}}[a0_0x58e1e0(0x171)](){const _0xda4fb8=a0_0x58e1e0,_0x88f268={'aWFym':'postgresql','DWZww':function(_0x49f65a,_0x5b2466){return _0x49f65a===_0x5b2466;},'awwyL':'oracle','ryIrH':function(_0x58d204,_0x3c5dee){return _0x58d204(_0x3c5dee);},'njkrs':_0xda4fb8(0x143),'xrsVZ':_0xda4fb8(0x212),'MBOKE':function(_0x4f94e0,_0x5aedfe){return _0x4f94e0(_0x5aedfe);},'ybvYy':_0xda4fb8(0x1c5),'hHJJV':'db_mysql_unavailable','ICyDU':'MySQL\x20DB\x20module\x20not\x20available','RTbll':function(_0x2455f3,_0x14023b){return _0x2455f3(_0x14023b);},'QmQmO':'db_pg_unavailable'},_0x4a93bc=(process['env'][_0xda4fb8(0x135)]||_0x88f268[_0xda4fb8(0x136)])['toLowerCase']();if(_0x88f268[_0xda4fb8(0x125)](_0x4a93bc,_0x88f268['awwyL']))try{const _0x55ad22=_0x88f268['ryIrH'](require,'../../utils/db-oracle');return{'executeQuery':(_0x390c6b,_0x483e99)=>_0x55ad22[_0xda4fb8(0x152)](_0x390c6b,_0x483e99),'executeTransaction':_0x34b493=>_0x55ad22[_0xda4fb8(0x181)](_0x34b493),'getPool':()=>_0x55ad22[_0xda4fb8(0x1a7)]()};}catch(_0x3e791e){return logger[_0xda4fb8(0x100)]({'event':'db_oracle_unavailable'},_0x88f268[_0xda4fb8(0x20f)]),null;}if(_0x4a93bc===_0x88f268[_0xda4fb8(0x1fb)])try{const _0x33f476=_0x88f268['MBOKE'](require,_0x88f268[_0xda4fb8(0x164)]);return{'executeQuery':(_0x1518c8,_0x3f6409)=>_0x33f476['executeQuery'](_0x1518c8,_0x3f6409),'executeTransaction':_0x44bdb3=>_0x33f476['executeTransaction'](_0x44bdb3),'getPool':()=>_0x33f476[_0xda4fb8(0x1a7)]()};}catch(_0x466372){return logger['warn']({'event':_0x88f268['hHJJV']},_0x88f268['ICyDU']),null;}try{const _0x285655=_0x88f268['RTbll'](require,_0xda4fb8(0x15c));return{'executeQuery':_0x285655['executeQuery'],'executeTransaction':_0x285655['executeTransaction'],'getPool':_0x285655['getPool']};}catch(_0xdee833){return logger[_0xda4fb8(0x100)]({'event':_0x88f268['QmQmO']},_0xda4fb8(0x1db)),null;}}['getRedisClient'](){const _0xf20a89=a0_0x58e1e0,_0x3d6871={'gmPzQ':'../../utils/redis-client'};try{const _0x219797=require(_0x3d6871[_0xf20a89(0x1d8)]);return _0x219797['getClient']?_0x219797[_0xf20a89(0x1fa)]():_0x219797;}catch(_0x5dc054){return null;}}['getKafkaService'](){const _0x13cbce=a0_0x58e1e0,_0x38c8a1={'iMJkN':function(_0x143ecf,_0x459a78){return _0x143ecf===_0x459a78;},'mdVGg':_0x13cbce(0xee)};try{if(_0x38c8a1['iMJkN'](process['env']['KAFKA_ENABLED'],'true')){const _0x242e33=require(_0x38c8a1[_0x13cbce(0x1d6)]);return _0x242e33[_0x13cbce(0x1ef)]?_0x242e33['getInstance']():_0x242e33;}}catch(_0x1d5bdd){}return null;}['getCacheManager'](){try{return require('../../utils/cache-manager');}catch(_0xc37f91){return null;}}async[a0_0x58e1e0(0x163)](_0x378a4f,_0xa4e4e6={}){const _0x25d72a=a0_0x58e1e0,_0x42cb3f={'sNmMb':_0x25d72a(0x1f8),'kPZwC':_0x25d72a(0x159),'PAyJP':_0x25d72a(0x1c1)},_0x82cabe=this['jobConfigs'][_0x378a4f];if(!_0x82cabe)throw new Error(_0x25d72a(0x210)+_0x378a4f);const _0x1b6d97=this[_0x25d72a(0x1e3)][_0x82cabe[_0x25d72a(0x10c)]||_0x42cb3f['sNmMb']],_0x1a13f=await _0x1b6d97[_0x25d72a(0x109)](_0x378a4f,{..._0xa4e4e6,'handler':_0x82cabe[_0x25d72a(0x1b3)],'triggeredBy':_0x25d72a(0x1e2)},{'attempts':_0x82cabe[_0x25d72a(0x117)]?.[_0x25d72a(0x20a)]||0x3,'backoff':{'type':_0x82cabe[_0x25d72a(0x117)]?.['backoff']||_0x42cb3f[_0x25d72a(0x102)],'delay':_0x82cabe[_0x25d72a(0x117)]?.['initialDelay']||0x1388},'timeout':_0x82cabe[_0x25d72a(0x177)]||0x7530});return logger['info']({'event':_0x42cb3f['PAyJP'],'jobId':_0x1a13f['id'],'name':_0x378a4f,'triggeredBy':'api'},_0x25d72a(0x19e)+_0x378a4f+_0x25d72a(0xfe)+_0x1a13f['id']+')'),{'jobId':_0x1a13f['id'],'name':_0x378a4f};}async[a0_0x58e1e0(0x175)](_0x21f668,_0x7343fa={},_0x4d5cc3=0x0){const _0xfed686=a0_0x58e1e0,_0x3dd798={'MoYjo':_0xfed686(0x190)},_0x35cca3=this[_0xfed686(0x1c2)][_0x21f668];if(!_0x35cca3)throw new Error(_0xfed686(0x210)+_0x21f668);const _0x17bcc0=this['queues'][_0x35cca3[_0xfed686(0x10c)]||_0xfed686(0x1f8)],_0x3ffa2c=await _0x17bcc0[_0xfed686(0x109)](_0x21f668,{..._0x7343fa,'handler':_0x35cca3[_0xfed686(0x1b3)],'triggeredBy':_0xfed686(0x1dc)},{'delay':_0x4d5cc3,'attempts':_0x35cca3['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x35cca3[_0xfed686(0x117)]?.[_0xfed686(0x11a)]||_0xfed686(0x159),'delay':_0x35cca3['retry']?.['initialDelay']||0x1388},'timeout':_0x35cca3['timeout']||0x7530});return logger['info']({'event':_0x3dd798[_0xfed686(0xf9)],'jobId':_0x3ffa2c['id'],'name':_0x21f668,'delayMs':_0x4d5cc3},_0xfed686(0x133)+_0x4d5cc3+'ms):\x20'+_0x21f668+'\x20(id:\x20'+_0x3ffa2c['id']+')'),{'jobId':_0x3ffa2c['id'],'name':_0x21f668};}async[a0_0x58e1e0(0x1bb)](_0x3b0d05){const _0x24fa71=a0_0x58e1e0;for(const _0x1c0b51 of Object['values'](this[_0x24fa71(0x1e3)])){const _0x372b7f=await _0x1c0b51['getJob'](_0x3b0d05);if(_0x372b7f){const _0x38c59b=await _0x372b7f[_0x24fa71(0x1d4)]();return{'jobId':_0x372b7f['id'],'name':_0x372b7f[_0x24fa71(0x16e)],'state':_0x38c59b,'progress':_0x372b7f['progress'],'attemptsMade':_0x372b7f['attemptsMade'],'failedReason':_0x372b7f['failedReason'],'returnvalue':_0x372b7f['returnvalue'],'data':_0x372b7f[_0x24fa71(0x185)],'timestamps':{'created':_0x372b7f['timestamp'],'started':_0x372b7f[_0x24fa71(0x123)],'completed':_0x372b7f[_0x24fa71(0x20b)]}};}}return null;}['listJobs'](){const _0x598de6=a0_0x58e1e0;return Object['values'](this[_0x598de6(0x1c2)])[_0x598de6(0x14f)](_0x2b975f=>({'name':_0x2b975f[_0x598de6(0x16e)],'description':_0x2b975f[_0x598de6(0x14e)]||'','type':_0x2b975f['type'],'schedule':_0x2b975f[_0x598de6(0x1cc)],'handler':_0x2b975f[_0x598de6(0x1b3)],'enabled':_0x2b975f[_0x598de6(0x16c)]!==![],'queue':_0x2b975f[_0x598de6(0x10c)]||'default','timeout':_0x2b975f['timeout']||0x7530,'retry':_0x2b975f[_0x598de6(0x117)]||{'maxAttempts':0x3,'backoff':'exponential','initialDelay':0x1388},'metadata':_0x2b975f['metadata']||{}}));}async[a0_0x58e1e0(0x187)](){const _0x1e0b2b=a0_0x58e1e0,_0x4edd18=[];for(const [_0x37b280,_0x5b2889]of Object[_0x1e0b2b(0x19d)](this['queues'])){const _0x10535e=await _0x5b2889[_0x1e0b2b(0x16b)](['active']);for(const _0x502685 of _0x10535e){_0x4edd18['push']({'jobId':_0x502685['id'],'name':_0x502685['name'],'queue':_0x37b280,'progress':_0x502685['progress'],'attemptsMade':_0x502685['attemptsMade'],'startedAt':_0x502685[_0x1e0b2b(0x123)]});}}return _0x4edd18;}async['getHistory'](_0xdac66={}){const _0x991e70=a0_0x58e1e0,_0x2f320a={'dOPuA':function(_0x19f327,_0x460422,_0x5d4be9){return _0x19f327(_0x460422,_0x5d4be9);},'zcKct':function(_0x5b7908,_0x21ec51){return _0x5b7908*_0x21ec51;},'qiSKz':function(_0x165de5,_0x46d71b){return _0x165de5-_0x46d71b;},'kOEJc':'completed'},_0xc0683e=_0x2f320a['dOPuA'](parseInt,_0xdac66['page'],0xa)||0x1,_0x274088=Math[_0x991e70(0x1a1)](_0x2f320a[_0x991e70(0x1eb)](parseInt,_0xdac66[_0x991e70(0x1ae)],0xa)||0x14,0x64),_0x760c7b=_0x2f320a[_0x991e70(0x11c)](_0x2f320a['qiSKz'](_0xc0683e,0x1),_0x274088),_0x347950=_0x760c7b+_0x274088-0x1,_0x2bfb64=[];for(const [_0x356f39,_0x3a3983]of Object['entries'](this['queues'])){const _0x1e817b=await _0x3a3983['getJobs']([_0x2f320a['kOEJc']],_0x760c7b,_0x347950),_0x2c420a=await _0x3a3983[_0x991e70(0x16b)](['failed'],_0x760c7b,_0x347950);for(const _0x4cea95 of[..._0x1e817b,..._0x2c420a]){const _0x48cd23=await _0x4cea95[_0x991e70(0x1d4)]();_0x2bfb64['push']({'jobId':_0x4cea95['id'],'name':_0x4cea95[_0x991e70(0x16e)],'state':_0x48cd23,'queue':_0x356f39,'attemptsMade':_0x4cea95['attemptsMade'],'failedReason':_0x4cea95[_0x991e70(0x203)],'returnvalue':_0x4cea95[_0x991e70(0x1b9)],'timestamps':{'created':_0x4cea95['timestamp'],'started':_0x4cea95['processedOn'],'completed':_0x4cea95[_0x991e70(0x20b)]}});}}return _0x2bfb64['sort']((_0x1ab99d,_0x54e5c4)=>(_0x54e5c4['timestamps'][_0x991e70(0x19f)]||0x0)-(_0x1ab99d['timestamps'][_0x991e70(0x19f)]||0x0)),{'jobs':_0x2bfb64[_0x991e70(0x19c)](0x0,_0x274088),'total':_0x2bfb64[_0x991e70(0x17f)],'page':_0xc0683e,'limit':_0x274088};}async['cancelJob'](_0x38b69d){const _0x38c6d8=a0_0x58e1e0,_0x33bb07={'ZvDJZ':function(_0x66208f,_0x2ee7a2){return _0x66208f===_0x2ee7a2;},'FkjGn':_0x38c6d8(0x1c4),'LuYgQ':'waiting'};for(const _0x289e79 of Object[_0x38c6d8(0x14d)](this[_0x38c6d8(0x1e3)])){const _0x3125fe=await _0x289e79[_0x38c6d8(0x1ea)](_0x38b69d);if(_0x3125fe){const _0x4b3254=await _0x3125fe['getState']();if(_0x33bb07['ZvDJZ'](_0x4b3254,'active'))return await _0x3125fe[_0x38c6d8(0x1dd)](new Error(_0x38c6d8(0x166)),_0x33bb07['FkjGn'],!![]),{'success':!![],'message':'Job\x20'+_0x38b69d+_0x38c6d8(0x1c0)};if(_0x33bb07['ZvDJZ'](_0x4b3254,_0x33bb07['LuYgQ'])||_0x4b3254===_0x38c6d8(0x141))return await _0x3125fe['remove'](),{'success':!![],'message':_0x38c6d8(0x1e6)+_0x38b69d+'\x20removed\x20(was\x20'+_0x4b3254+')'};return{'success':![],'message':_0x38c6d8(0x1e6)+_0x38b69d+_0x38c6d8(0x1e1)+_0x4b3254+')'};}}return{'success':![],'message':_0x38c6d8(0x1e6)+_0x38b69d+_0x38c6d8(0x18d)};}async[a0_0x58e1e0(0x170)](){const _0xc53a3c=a0_0x58e1e0,_0x32835b={'YsONc':_0xc53a3c(0x1e4),'OnTmO':'completed','SMkgz':'paused','ByHNq':_0xc53a3c(0x149)},_0x23aee0={};for(const [_0x678289,_0x5a2302]of Object[_0xc53a3c(0x19d)](this[_0xc53a3c(0x1e3)])){try{const _0x860589=await _0x5a2302[_0xc53a3c(0x178)](_0x32835b[_0xc53a3c(0x1e8)],_0x32835b['OnTmO'],'delayed','failed',_0x32835b['SMkgz'],_0x32835b['ByHNq']);_0x23aee0[_0x678289]=_0x860589;}catch(_0x592568){_0x23aee0[_0x678289]={'error':_0x592568['message']};}}const _0x4ae8df={};for(const [_0x43c0d1,_0x48604]of Object[_0xc53a3c(0x19d)](this['workers'])){_0x4ae8df[_0x43c0d1]={'running':_0x48604[_0xc53a3c(0x213)](),'paused':_0x48604[_0xc53a3c(0xf2)]()};}return{'initialized':this['initialized'],'registeredJobs':Object['keys'](this[_0xc53a3c(0x1c2)])['length'],'redisConnections':this[_0xc53a3c(0x1cf)][_0xc53a3c(0x17f)],'queues':_0x23aee0,'workers':_0x4ae8df};}async['onJobCompleted'](_0x3753f5,_0x137ec5){const _0x1b867b=a0_0x58e1e0,_0x711be6={'gjQoY':'after_job_complete_hook_error','eGCcw':function(_0x49db75,_0x17bbb5){return _0x49db75-_0x17bbb5;},'sUZEk':'string','WiWiP':_0x1b867b(0x160),'wMqwK':function(_0x54cc88,_0x4bfd38){return _0x54cc88===_0x4bfd38;},'kgRAE':_0x1b867b(0x1ba),'gykhq':'job-scheduler'},_0x18cb3b=logger[_0x1b867b(0x200)]({'jobId':_0x3753f5['id'],'jobName':_0x3753f5[_0x1b867b(0x16e)]});_0x18cb3b['info']({'event':_0x1b867b(0x194),'attemptsMade':_0x3753f5['attemptsMade'],'duration':_0x3753f5[_0x1b867b(0x20b)]?_0x711be6[_0x1b867b(0x101)](_0x3753f5['finishedOn'],_0x3753f5[_0x1b867b(0x123)]):null},'Job\x20completed:\x20'+_0x3753f5[_0x1b867b(0x16e)]);const _0x42fd94=this[_0x1b867b(0x1a3)]['get'](_0x3753f5['id']);if(_0x42fd94){if(_0x42fd94[_0x1b867b(0x1f9)])await _0x42fd94['insertPromise'];const _0x190a3b=_0x3753f5['finishedOn']&&_0x3753f5['processedOn']?_0x3753f5[_0x1b867b(0x20b)]-_0x3753f5[_0x1b867b(0x123)]:null,_0x17846b=typeof _0x137ec5===_0x711be6[_0x1b867b(0x11d)]?_0x137ec5:_0x137ec5?JSON[_0x1b867b(0x139)](_0x137ec5)[_0x1b867b(0x1ad)](0x0,0x1f4):null;await this[_0x1b867b(0x103)](_0x42fd94[_0x1b867b(0x127)],_0x190a3b,_0x17846b);const _0x4c3407=await this[_0x1b867b(0x10a)](_0x3753f5[_0x1b867b(0x16e)]);await this['updateRegistryCounters'](_0x3753f5['name'],_0x711be6[_0x1b867b(0x112)],_0x190a3b,_0x4c3407),this['activeHistoryIds']['delete'](_0x3753f5['id']);}const _0xe764e1=getComponentEngine();if(_0xe764e1&&_0x711be6['wMqwK'](typeof _0xe764e1['executeEventHandlers'],'function')){const _0x1c15ec={'jobId':_0x3753f5['id'],'jobName':_0x3753f5['name'],'result':_0x137ec5,'config':this[_0x1b867b(0x1c2)][_0x3753f5[_0x1b867b(0x16e)]]||{}};_0xe764e1[_0x1b867b(0x131)](_0x711be6['kgRAE'],_0x1c15ec,![])[_0x1b867b(0x173)](_0x31bb3d=>{const _0x5cddc6=_0x1b867b;_0x18cb3b[_0x5cddc6(0x100)]({'event':_0x711be6['gjQoY'],'error':_0x31bb3d['message']},_0x5cddc6(0x154));});}const _0x1bf7c7=this['getKafkaService']();if(_0x1bf7c7)try{await _0x1bf7c7['publishEvent'](_0x1b867b(0x1f5),'JOB_COMPLETED',null,{'jobId':_0x3753f5['id'],'name':_0x3753f5['name'],'result':_0x137ec5},{'module':_0x711be6[_0x1b867b(0x1fe)],'endpoint':_0x3753f5[_0x1b867b(0x16e)]});}catch(_0x1cdf5f){_0x18cb3b[_0x1b867b(0x100)]({'event':_0x1b867b(0x158),'error':_0x1cdf5f[_0x1b867b(0x1de)]},_0x1b867b(0xf4));}}async[a0_0x58e1e0(0x1af)](_0x3b4bf3,_0x569f3c){const _0x534457=a0_0x58e1e0,_0x4a05c0={'lhlUc':'onAfterJobFailed\x20handler\x20error\x20(non-blocking)','ykotq':function(_0x454998,_0x2c6a9f){return _0x454998<_0x2c6a9f;},'fobqE':function(_0x307adb,_0x5951fd){return _0x307adb-_0x5951fd;},'pOTBS':function(_0x3d9792){return _0x3d9792();},'vmKKl':'function','AMrzj':_0x534457(0x1fd),'EskPz':_0x534457(0x193),'CmuqY':_0x534457(0x158),'dQoVy':_0x534457(0x17d)},_0x244416=logger[_0x534457(0x200)]({'jobId':_0x3b4bf3['id'],'jobName':_0x3b4bf3[_0x534457(0x16e)]});_0x244416['error']({'event':'job_failed','attemptsMade':_0x3b4bf3[_0x534457(0x140)],'failedReason':_0x569f3c?.[_0x534457(0x1de)],'willRetry':_0x4a05c0['ykotq'](_0x3b4bf3['attemptsMade'],this[_0x534457(0x1c2)][_0x3b4bf3['name']]?.['retry']?.[_0x534457(0x20a)]||0x3)},'Job\x20failed:\x20'+_0x3b4bf3[_0x534457(0x16e)]+_0x534457(0x1c9)+_0x569f3c?.[_0x534457(0x1de)]);const _0x55b7b1=this[_0x534457(0x1a3)]['get'](_0x3b4bf3['id']);if(_0x55b7b1){if(_0x55b7b1[_0x534457(0x1f9)])await _0x55b7b1[_0x534457(0x1f9)];const _0x41a759=_0x3b4bf3[_0x534457(0x20b)]&&_0x3b4bf3[_0x534457(0x123)]?_0x4a05c0[_0x534457(0x198)](_0x3b4bf3[_0x534457(0x20b)],_0x3b4bf3['processedOn']):null;await this['updateJobHistoryFailed'](_0x55b7b1[_0x534457(0x127)],_0x41a759,_0x3b4bf3[_0x534457(0x1e9)],_0x569f3c?.['message'],_0x569f3c?.['stack']);const _0x454f85=await this[_0x534457(0x10a)](_0x3b4bf3[_0x534457(0x16e)]);await this['updateRegistryCounters'](_0x3b4bf3['name'],_0x534457(0x186),_0x41a759,_0x454f85),this[_0x534457(0x1a3)]['delete'](_0x3b4bf3['id']);}const _0x2ca46a=_0x4a05c0['pOTBS'](getComponentEngine);if(_0x2ca46a&&typeof _0x2ca46a['executeEventHandlers']===_0x4a05c0['vmKKl']){const _0x34d6bf={'jobId':_0x3b4bf3['id'],'jobName':_0x3b4bf3['name'],'error':_0x569f3c?.[_0x534457(0x1de)],'attemptsMade':_0x3b4bf3['attemptsMade'],'config':this[_0x534457(0x1c2)][_0x3b4bf3[_0x534457(0x16e)]]||{}};_0x2ca46a[_0x534457(0x131)](_0x4a05c0['AMrzj'],_0x34d6bf,![])[_0x534457(0x173)](_0x5e4f37=>{const _0x2bb356=_0x534457;_0x244416['warn']({'event':_0x2bb356(0x1bf),'error':_0x5e4f37[_0x2bb356(0x1de)]},_0x4a05c0['lhlUc']);});}const _0x5e9736=this[_0x534457(0x1f1)]();if(_0x5e9736)try{await _0x5e9736['publishEvent']('restforge.jobs.failed',_0x4a05c0[_0x534457(0x15a)],null,{'jobId':_0x3b4bf3['id'],'name':_0x3b4bf3['name'],'error':_0x569f3c?.['message'],'attemptsMade':_0x3b4bf3['attemptsMade']},{'module':_0x534457(0x20c),'endpoint':_0x3b4bf3['name']});}catch(_0xd0baba){_0x244416[_0x534457(0x100)]({'event':_0x4a05c0[_0x534457(0x151)],'error':_0xd0baba[_0x534457(0x1de)]},_0x4a05c0['dQoVy']);}}[a0_0x58e1e0(0x106)](_0x3e14e3,_0x151a79){const _0x3acf41=a0_0x58e1e0;logger[_0x3acf41(0x1a8)]({'event':_0x3acf41(0x104),'jobId':_0x3e14e3['id'],'jobName':_0x3e14e3[_0x3acf41(0x16e)],'progress':_0x151a79},'Job\x20progress:\x20'+_0x3e14e3[_0x3acf41(0x16e)]+_0x3acf41(0x1c9)+_0x151a79+'%');}}module['exports']=new JobManager();
1
+ const a0_0x52d112=a0_0x2644;function a0_0x2644(_0x259321,_0x3ee3ab){_0x259321=_0x259321-0x83;const _0x796ecb=a0_0x796e();let _0x26442e=_0x796ecb[_0x259321];if(a0_0x2644['IzlseE']===undefined){var _0x3d6cac=function(_0x56e4ab){const _0x9fdfe3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4a496a='',_0x46c1f2='';for(let _0x2e3343=0x0,_0x859523,_0x229139,_0x4d92a5=0x0;_0x229139=_0x56e4ab['charAt'](_0x4d92a5++);~_0x229139&&(_0x859523=_0x2e3343%0x4?_0x859523*0x40+_0x229139:_0x229139,_0x2e3343++%0x4)?_0x4a496a+=String['fromCharCode'](0xff&_0x859523>>(-0x2*_0x2e3343&0x6)):0x0){_0x229139=_0x9fdfe3['indexOf'](_0x229139);}for(let _0x19e50c=0x0,_0x447a4a=_0x4a496a['length'];_0x19e50c<_0x447a4a;_0x19e50c++){_0x46c1f2+='%'+('00'+_0x4a496a['charCodeAt'](_0x19e50c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x46c1f2);};a0_0x2644['LjryQM']=_0x3d6cac,a0_0x2644['DCpzfk']={},a0_0x2644['IzlseE']=!![];}const _0x10f75f=_0x796ecb[0x0],_0x20b967=_0x259321+_0x10f75f,_0x14f62b=a0_0x2644['DCpzfk'][_0x20b967];return!_0x14f62b?(_0x26442e=a0_0x2644['LjryQM'](_0x26442e),a0_0x2644['DCpzfk'][_0x20b967]=_0x26442e):_0x26442e=_0x14f62b,_0x26442e;}(function(_0xf8b93b,_0x2316ed){const _0x306b4e=a0_0x2644,_0xa26963=_0xf8b93b();while(!![]){try{const _0x2d686=parseInt(_0x306b4e(0x10f))/0x1+parseInt(_0x306b4e(0x1a9))/0x2+-parseInt(_0x306b4e(0x16d))/0x3+parseInt(_0x306b4e(0x193))/0x4+parseInt(_0x306b4e(0x133))/0x5*(parseInt(_0x306b4e(0x155))/0x6)+-parseInt(_0x306b4e(0x10d))/0x7*(-parseInt(_0x306b4e(0x13b))/0x8)+-parseInt(_0x306b4e(0x195))/0x9*(parseInt(_0x306b4e(0xc4))/0xa);if(_0x2d686===_0x2316ed)break;else _0xa26963['push'](_0xa26963['shift']());}catch(_0x444016){_0xa26963['push'](_0xa26963['shift']());}}}(a0_0x796e,0x8203f));const {Queue,Worker}=require(a0_0x52d112(0x159)),Redis=require('ioredis'),crypto=require('crypto'),{v7:uuidv7}=require(a0_0x52d112(0xfe)),fs=require('fs'),path=require(a0_0x52d112(0x16b)),{logger}=require(a0_0x52d112(0x197)),jobValidator=require(a0_0x52d112(0x140));function a0_0x796e(){const _0x27ee17=['EhrprLC','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','DhjPz2DLCMvKqNK','wxngBu0','Aw5PDgLHBgL6zwq','C3vIC3rYAw5N','nZDOC3zWvwW','ufHjuvq','mZmZndy1tvnZz0Tu','vMvMC0m','CxvPDa','uMvKAxmGy29UBMvJDgLVBIbMywLSzwq6ia','B25bzNrLCKPVyKzHAwXLzcbOyw5KBgvYigvYCM9YicHUB24TyMXVy2TPBMCP','y0TvEhm','zfvpALC','iokaLca','y2XVC2u','t3zhEfi','zxjYB3i','BwLU','qxffC0W','s1HPq3C','zxHWB25LBNrPywW','yNvSBg1Xx3jLzgLZx2vYCM9Y','reLSyNe','sM9IigzHAwXLzdOG','z2v0sw5ZDgfUy2u','rw5uvve','AM9Ix2HPC3rVCNLFAw5Zzxj0x2jNx2vYCM9Y','CfLPtLi','AM9Ix3jLz2LZDhj5x2nVDw50zxjFzxjYB3i','sM9IignHBMnLBgXLzcbIEsbVBKjLzM9YzuPVyKv4zwn1Dgu6ia','C3LZDgvT','zgjFB3jHy2XLx3vUyxzHAwXHyMXL','vKrnugq','ignHBMnLBgXLzcaOD2fZigfJDgL2zsK','DxbKyxrLuhjVz3jLC3m','sK9cx1nuquXmrurFsu5urvjwquW','AxzgDMi','C3bSAxq','BgLTAxq','icHHDhrLBxb0ia','rM9SzgvYihbHEwXVywqVAM9ICY8GDgLKywSGzgL0zw11A2fU','B2zMBgLUzq','nuvyyu1oyW','C2XvrMu','u0DVweG','zxjYB3jZ','thLSALy','sM9Iig1VBML0B3jPBMCGDgfIBgvZigvUC3vYzwqGka','sM9Iie1HBMfNzxiGCMvHzhK6ia','DNvQsKi','ntGWotuYteLqr1fY','yxbPlwnHBMnLBa','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa/lcbSyxn0x3j1BL9HDca9ie5pvYGPifDirvjfigPVyL9Uyw1Lid0GpW','sM9IigrPC3bHDgnOzwqGkgrLBgf5zwqG','zgvSzxrL','lI9QB2iTDMfSAwrHDg9Y','ChjVz3jLC3m','C2H1DgrVD24','DxbKyxrLsM9IsgLZDg9YEunVBxbSzxrLza','AgLZDg9YEuLK','BeP5tue','B25kB2jdB21WBgv0zwq','AM9Ix3nXBf9UB3rFzM91BMq','sgPyBKi','u2zrq2e','z2v0sM9Iq291BNrZ','AM9Ix2rIx3r5CgvFDw5ZDxbWB3j0zwq','sK9cx1jfvevoveLptL9it1vsuW','DufSugK','Dg90ywXFzMfPBgvK','mYbcDwXStveGuxvLDwvZignYzwf0zwqGkgHPz2GSigrLzMf1BhqSigXVDYK','AM9Ix2nVBMzPz3nFBg9HzgvK','AM9Ix21HBMfNzxjFC2H1DgrVD25FC3rHCNq','s1nMuvG','CNvUBMLUzW','igPVyIHZksbYzwDPC3rLCMvKlca','ntC1nZG4mLPnt2XStq','BMfTzq','AM9Ix2THzMTHx3b1yMXPC2HFzxjYB3i','CMv0CNK','yNvSBg1X','DhjPz2DLCLr5Cgu','sMHPCLO','ywrK','rw9cyLu','zMLUAxnOzwrpBG','rgzHCxe','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteW','AM9Ix2vUC3vYzv90ywjSzxnFzxjYB3i','C3vJy2vZCW','zw5ZDxjLvgfIBgvZ','AM9Ix2HHBMrSzxjFzg9Uzq','zgjFCgDFDw5HDMfPBgfIBgu','zMLUza','zw52','z2v0q2XPzw50','DgLTzw91Da','DxbKyxrLuMvNAxn0CNLdB3vUDgvYCW','Cgf0Aa','ChjVy2vZC0PVyG','mJy5mZi1nKjJDMHABG','zgLZCgf0y2HezwXHEwvK','zw5HyMXLza','y3jLyxrLza','sK9cx01bwf9tvefmtevex0npvu5u','AffRsfG','wLr1Efi','ktOG','jYb0AwrHAYbKAwr1A3vUzYb1BNr1AYbQB2iGBw9UAxrVCMLUzYb0ywjSzxm','sfjnzg0','ChjVy2vZC2vKt24','z2v0sM9Iu2nOzwr1BgvYCW','zgvMyxvSDa','vgLnr3a','C3jJ','ChvIBgLZAev2zw50','rMfPBgvKihrVihjLz2LZDgvYigPVyJOG','DxbKyxrLsM9IsgLZDg9YEuzHAwXLza','wLP3t0W','q3jVBIbYzwDPC3rLCMvKoIa','zgf0yq','B3jHy2XL','Aw5JBhvKzxm','y2XLyxi','t2PiCvK','z2v0rgjvDgLSCW','veDVy2y','z2v0rgjuExbL','AM9Ix3jLz2LZDhj5x3vWC2vYDf9LCNjVCG','z2v0ug9VBa','igPVyIbJB25MAwCOCYKGzNjVBsbWyxLSB2fKl2PVyNmV','AhzXCMq','CMvHzgrPCLn5BMm','Bwf4qxr0zw1WDhm','uKnkEw0','sM9Iihn0yxj0zwq6ia','Ew5bwKy','Aw5Zzxj0uhjVBwLZzq','oduYnJuYyKjPv2Pr','BwvZC2fNzq','mZy4mJa4v1zYEenn','C2nOzwr1Bgu','lI4VlI4VDxrPBhmVBg9Nz2vY','z2v0sgvHBhrOu3rHDhvZ','oMPVyG','zw5KC1DPDgG','y3jVBL9YzwDPC3rLCMvK','DxbZzxj0sM9Iu2nOzwr1BgvY','DMfSDwvZ','Ae1gwKy','zMXKwg0','ug9ZDgDYzvnrtcbeqIbTB2r1BguGBM90igf2ywLSywjSzq','Cwvrt20','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNzMfPBgvKjYWGy29TCgXLDgvKx2f0id0GtK9xkcKScIaGicaGicaGicaGzhvYyxrPB25FBxmGpsaKmsWGChjVz3jLC3mGpsaKmIWGzxjYB3jFBwvZC2fNzsa9icqZlcbLCNjVCL9ZDgfJAYa9icq0ifDirvjfigLKid0Gjdu','ruzpANO','id0G','rg13wgO','sM9Iia','rMfPBgvKihrVihvWzgf0zsbQB2iGAgLZDg9YEsaOzMfPBgvKktOG','B25bzNrLCKPVyKnVBxbSzxrLigHHBMrSzxiGzxjYB3iGkg5VBI1IBg9JA2LUzYK','mtaZmJqZofndALr2Ea','ywz0zxjFAM9Ix2nVBxbSzxrLx2HVB2TFzxjYB3i','BgvUz3rO','rgf0ywjHC2uGDgLKywSGDgvYC2vKAweSihnRAxaGyxv0BY1JCMvHDguGAM9IihrHyMXLCW','sgHoy3a','Aw5PDgLHBerLBgf5','Dw5RBM93BG','CMv0DxjUDMfSDwu','ihjLBw92zwqGkhDHCYa','z2v0tMv4Dfj1BKzYB21cDwXStve','AM9Ix2zHAwXLza','DhjPBq','DxLqsLe','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ie5pvYGPlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GpYWGChjVz3jLC3mGpsaXmdaSihjLC3vSDf9ZDw1Tyxj5id0GpYbxsevsrsbPzca9id8','DxbZzxj0sM9IuMvNAxn0CNK','DNjVEwi','CgLK','qNvSBe1rifDVCMTLCIbLCNjVCIaO','yMfJA29MzG','zMLSDgvY','uKXNufe','CgLUzW','CMvZDgzVCMDLlMPVyNmUzMfPBgvK','DMfSAwq','DMDWAeW','icSGmsWkicaGicaGicaGicbUzxH0x3j1BL9HDca9id8Gv0HfuKuGAM9Ix25HBwuGpsa/','Aw5Zzxj0sM9IsgLZDg9YEq','sKrfqwy','y29UBMvJDgLVBNm','CgfNzq','y3jVBG','AM9PBG','AM9Iq29UzMLNCW','uKvesvnFueftu1DpuKq','rgHtBw0','rNPPruq','D29YA2vYCW','zxHLy3v0zvf1zxj5','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteWSihvWzgf0zwrFyxqGpsbot1COkq','z2v0s2fMA2ftzxj2AwnL','ywn0AxzLsgLZDg9YEuLKCW','zxHLy3v0zvrYyw5Zywn0Aw9U','C3Hste8','EeL0Be0','vgLKywSGywrHigPVyIbJB25MAwCGzgL0zw11A2fUigrPihbHEwXVywqVAM9ICY8UiePVyIbnyw5Hz2vYigfRDgLMihrHBNbHignYB24U','rMfdrNy','AM9Ix2HPC3rVCNLFAw5Zzxj0x2vYCM9Y','Dg9mB3DLCKnHC2u','zw50CMLLCW','zgvSyxLLza','vvrUB2C','D29YA2LUz0rPCG','zhvWBgLJyxrL','y1vqCue','sM9IihbYB2DYzxnZoIa','C3rHCNrZv2L0Aa','y29UzMLNrMLSzq','C2v0','sK9cx1jfreLtx1bsruzjwa','CxvLDwu','zeHIwhG','z2v0sM9ICW','Bwv0ywrHDge','wKnWtgS','t3jHy2XLiercig1VzhvSzsbUB3qGyxzHAwXHyMXL','AfvduwO','AM9Ix21HBMfNzxjFywXYzwfKEv9PBML0AwfSAxPLza','rLj5swq','yxr0zw1WDhnnywrL','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ie5pvYGPlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GjdeSihbYB2DYzxnZid0GmtaWlcbYzxn1BhrFC3vTBwfYEsa9icqYifDirvjfigLKid0Gjdm','ChvZAa','ihrPzgfRigjPC2eGzgKTy2fUy2vSicHZDgf0ztOG','qMfJA2DYB3vUzcbPBNnLCNqGAM9IigHPC3rVCNKGzMfPBgvKoIa','DgLTzxPVBMu','svrzDwS','zNvUy3rPB24','B25SAw5L','mZqWvvLkAg1t','ifjLzgLZignVBM5Ly3rPB25Z','AM9Ix21HBMfNzxjFAw5PDf9ZDgfYDa','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsaKmsWGBgfZDf9YDw5FyxqGpsbot1COksWkicaGicaGicaGicb1CgrHDgvKx2f0id0GtK9xkcKGv0HfuKuGAM9Ix25HBwuGpsaKmG','D2fPDgLUzW','zxHLy3v0zuv2zw50sgfUzgXLCNm','thPnr3a','tu5qChi','B25bzNrLCKPVyKnVBxbSzxrL','y3jLyxrLqNvSBe1rq29UBMvJDgLVBG','yxbP','zgvZy3jPChrPB24','x3nVDxjJzuzPBgu','rgTcwKq','rgD5DKy','BMv4Da','r1z2y0y','Bgjwrfa','BxLZCwWUC3fS','qvDXC3i','D2fYBG','lI4VlI4VDxrPBhmVy29TCg9Uzw50lwvUz2LUzq','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNzMfPBgvKjYWGy29TCgXLDgvKx2f0id0Gu1LtveLnrvnuqu1qlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GoJeSihbYB2DYzxnZid0GoJiSigvYCM9Yx21LC3nHz2uGpsa6mYWGzxjYB3jFC3rHy2SGpsa6ncbxsevsrsbPzca9idO1','z2v0','BxLZCwW','y29TCgXLDgvK','AM9ICW','v3Dcr08','AM9Ix3DVCMTLCNnFy3jLyxrLza','DhLWzq','AgfUzgXLCG','AM9Ix2HPC3rVCNLFy29TCgXLDgvFzxjYB3i','Aw5PDgLHBgL6zq','sM9IignHBMnLBgXLzcb2AweGqvbj','sM9IigHHBMrSzxiGy29TCgXLDgvKoIa','s0fgs0fFru5bqKXfra','AM9ItMfTzq','AM9Ix2rPC3bHDgnOzwrFzgvSyxLLza','zMfPBgvK','Du1Zwu8','C2v0qwXSsM9IC09MzMXPBMu','CxvLDwvZ','icSGmsWkicaGicaGicaGicbUzxH0x3j1BL9HDca9idOZlcb1CgrHDgvKx2f0id0Gu1LtveLnrvnuqu1qifDirvjfigPVyL9Uyw1Lid0GoJq','B25kB2jqCM9NCMvZCW','sgfUzgXLCIb0AwrHAYbKAxrLBxvRyw4GDw50DwSGAM9IoIa','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa/lcbSyxn0x2r1CMf0Aw9Ux21Zid0GpYWkicaGicaGicaGica','BwfW','y2f0y2G','zgvIDwC','z2v0q2fJAgvnyw5Hz2vY','A2v5CW','B05PD0C','Aw5MBW','ywn0AxzL','ywXS','z2v0u3rHDgu','AxnqyxvZzwq','rLzHtLu','DxvPza','yxbPlwrLBgf5zwq','AM9Ix3bYB2DYzxnZ','tffQD1m','rMfPBgvKihrVihb1yMXPC2GGsK9cx0zbsuXfrcb0BYblywzRyq','Aw9KB3G','DgLTzxn0yw1WCW','rMfPBgvKihrVigvUC3vYzsbQB2iGDgfIBgvZoIa','sM9Iie1HBMfNzxiGC2H1DgrVD24Gy29TCgXLDgu'];a0_0x796e=function(){return _0x27ee17;};return a0_0x796e();}let componentEngine=null;function getComponentEngine(){const _0x573a08=a0_0x52d112;if(!componentEngine)try{const _0x32072f=require(_0x573a08(0xd9));componentEngine=_0x32072f['componentEngine']||_0x32072f;}catch(_0x226143){}return componentEngine;}class JobManager{constructor(){const _0x4abcc0=a0_0x52d112;this[_0x4abcc0(0xed)]={},this[_0x4abcc0(0x9b)]={},this['jobConfigs']={},this['handlers']={},this[_0x4abcc0(0x93)]=[],this[_0x4abcc0(0x10b)]=![],this['workingDir']=process['cwd'](),this['activeHistoryIds']=new Map();}[a0_0x52d112(0xcd)](){const _0x1ff42a=a0_0x52d112,_0x2e9c47={'CtKZK':function(_0x2f7eb5,_0x38e54a){return _0x2f7eb5*_0x38e54a;},'LzMGp':_0x1ff42a(0x11e),'xItlM':'localhost','vSLzq':'error'},_0x32f5e8=new Redis({'host':process['env']['REDIS_HOST']||_0x2e9c47[_0x1ff42a(0xa2)],'port':parseInt(process['env']['REDIS_PORT'],0xa)||0x18ec,'password':process[_0x1ff42a(0x167)][_0x1ff42a(0x98)]||undefined,'db':parseInt(process[_0x1ff42a(0x167)]['REDIS_DB'],0xa)||0x0,'maxRetriesPerRequest':null,'retryStrategy'(_0x42f382){const _0x343d5c=_0x1ff42a,_0xfde4a0=Math[_0x343d5c(0x11a)](_0x2e9c47['CtKZK'](_0x42f382,0x32),0x7d0);return _0xfde4a0;}});return _0x32f5e8['on'](_0x2e9c47['vSLzq'],_0x69d010=>{const _0x1899f7=_0x1ff42a;logger['error']({'event':_0x2e9c47[_0x1899f7(0xca)],'error':_0x69d010['message']},'BullMQ\x20Redis\x20connection\x20error:\x20'+_0x69d010[_0x1899f7(0x194)]);}),this[_0x1ff42a(0x93)]['push'](_0x32f5e8),_0x32f5e8;}async[a0_0x52d112(0xe4)](){const _0x6def55=a0_0x52d112,_0x1c5060={'PXIQT':'job_stalled','JDEAf':'bullmq_worker_error','BVozU':'Job\x20Manager\x20sudah\x20diinisialisasi,\x20skip','cKUxs':'Initializing\x20Job\x20Manager...','YsFmM':'job_redis_connected','rzqqi':_0x6def55(0x161),'ZCpLk':'unknown','hUCQj':function(_0x49797d,_0x77e5ed,_0x3df111){return _0x49797d(_0x77e5ed,_0x3df111);},'jGNWN':function(_0x180d7d,_0xbc83cc){return _0x180d7d*_0xbc83cc;},'hGbSf':function(_0x37abc5,_0x4e1ac0){return _0x37abc5*_0x4e1ac0;},'TnCUd':'high','slUFe':'default','brkaj':'low','AWqsr':_0x6def55(0x14f),'HbDgx':function(_0x3547f,_0x73b791,_0x594042){return _0x3547f(_0x73b791,_0x594042);},'RNxdr':function(_0x46d3b1,_0x2ab43b,_0xa236fb){return _0x46d3b1(_0x2ab43b,_0xa236fb);},'DkBZD':_0x6def55(0xea),'vujJB':_0x6def55(0x141),'XnKKv':'stalled','uyPJQ':'job_manager_ready'};if(this['initialized']){logger['warn']({'event':_0x6def55(0xb9)},_0x1c5060['BVozU']);return;}logger['info']({'event':_0x6def55(0xc6)},_0x1c5060[_0x6def55(0x114)]);const _0x2d618b=this[_0x6def55(0xcd)]();try{await _0x2d618b[_0x6def55(0x8c)](),logger[_0x6def55(0xf8)]({'event':_0x1c5060[_0x6def55(0x10a)]},'BullMQ\x20Redis\x20connection\x20verified');}catch(_0x37b375){logger['error']({'event':'job_redis_failed','error':_0x37b375[_0x6def55(0x194)]},_0x6def55(0x112)+_0x37b375[_0x6def55(0x194)]+'.\x20Job\x20Scheduler\x20tidak\x20akan\x20aktif.');try{await _0x2d618b[_0x6def55(0x111)]();}catch(_0xd1a460){}this[_0x6def55(0x93)]=this[_0x6def55(0x93)][_0x6def55(0x8a)](_0x518b5e=>_0x518b5e!==_0x2d618b);return;}try{await _0x2d618b[_0x6def55(0x111)]();}catch(_0x15d0b4){}this[_0x6def55(0x93)]=this['connections']['filter'](_0x5d4d3b=>_0x5d4d3b!==_0x2d618b);try{await this[_0x6def55(0x163)]();}catch(_0x1c641d){logger['warn']({'event':_0x1c5060['rzqqi'],'error':_0x1c641d[_0x6def55(0x194)]},_0x6def55(0x105)+_0x1c641d[_0x6def55(0x194)]+'.\x20DB\x20monitoring\x20disabled.');}const _0x3597de=this['loadJobConfigs']();_0x3597de['length']===0x0&&logger['info']({'event':'job_no_configs'},_0x6def55(0xa3));const _0x3517d8=[];for(const _0x227de8 of _0x3597de){const _0x34fddb=jobValidator['validateConfig'](_0x227de8,this['workingDir']);_0x34fddb[_0x6def55(0x8e)]?_0x3517d8['push'](_0x227de8):logger['error']({'event':'job_config_invalid','name':_0x227de8[_0x6def55(0x156)]||'unknown','errors':_0x34fddb[_0x6def55(0x136)]},'Job\x20config\x20invalid:\x20'+(_0x227de8[_0x6def55(0x156)]||_0x1c5060[_0x6def55(0xb6)])+_0x6def55(0x116)+_0x34fddb[_0x6def55(0x136)]['join'](';\x20'));}const _0x3762ce=process[_0x6def55(0x167)][_0x6def55(0x108)]||_0x6def55(0x179),_0x536f5d=process[_0x6def55(0x167)][_0x6def55(0xb1)]||'rf:'+_0x3762ce+_0x6def55(0x199),_0x44778a=_0x1c5060[_0x6def55(0xb8)](parseInt,process[_0x6def55(0x167)][_0x6def55(0x14c)],0xa)||0x48,_0x598297=_0x1c5060[_0x6def55(0xb8)](parseInt,process[_0x6def55(0x167)]['JOB_FAILED_RETENTION_HOURS'],0xa)||0xa8,_0x4b7f63={'removeOnComplete':{'age':_0x1c5060['jGNWN'](_0x44778a,0xe10)},'removeOnFail':{'age':_0x1c5060['hGbSf'](_0x598297,0xe10)}},_0x6ea8bf={'high-priority':_0x1c5060['TnCUd'],'default':_0x1c5060[_0x6def55(0x134)],'low-priority':_0x1c5060['brkaj']};for(const [_0x41e4df,_0x28eb34]of Object['entries'](_0x6ea8bf)){this[_0x6def55(0xed)][_0x41e4df]=new Queue(_0x28eb34,{'connection':this['createBullMQConnection'](),'prefix':_0x536f5d,'defaultJobOptions':_0x4b7f63});}logger['info']({'event':'job_queues_created','count':0x3},_0x1c5060[_0x6def55(0xd7)]);const _0x48e5fb=parseInt(process[_0x6def55(0x167)]['JOB_CONCURRENCY'],0xa)||0x5,_0x52a7be=_0x1c5060['HbDgx'](parseInt,process['env'][_0x6def55(0x12c)],0xa)||0x7530,_0x51fe31=_0x1c5060['RNxdr'](parseInt,process[_0x6def55(0x167)][_0x6def55(0x171)],0xa)||0x2;for(const [_0x1825c4,_0x68af24]of Object['entries'](_0x6ea8bf)){const _0x259bf1=new Worker(_0x68af24,async _0x155d4a=>this[_0x6def55(0x16c)](_0x155d4a),{'connection':this[_0x6def55(0xcd)](),'prefix':_0x536f5d,'concurrency':_0x48e5fb,'stalledInterval':_0x52a7be,'maxStalledCount':_0x51fe31});_0x259bf1['on'](_0x6def55(0xdd),(_0x4ad77c,_0x252301)=>this['onJobCompleted'](_0x4ad77c,_0x252301)),_0x259bf1['on'](_0x1c5060[_0x6def55(0xd1)],(_0x7030df,_0xde3bca)=>this['onJobFailed'](_0x7030df,_0xde3bca)),_0x259bf1['on'](_0x1c5060[_0x6def55(0x13a)],(_0x46cc30,_0x31c65c)=>this['onJobProgress'](_0x46cc30,_0x31c65c)),_0x259bf1['on'](_0x1c5060['XnKKv'],_0x49b57b=>{const _0x37dd31=_0x6def55;logger[_0x37dd31(0xd8)]({'event':_0x1c5060[_0x37dd31(0x10e)],'jobId':_0x49b57b},'Job\x20stalled:\x20'+_0x49b57b);}),_0x259bf1['on'](_0x6def55(0x119),_0x32b16a=>{const _0x4fe962=_0x6def55;logger[_0x4fe962(0x119)]({'event':_0x1c5060[_0x4fe962(0x92)],'queue':_0x1825c4,'error':_0x32b16a[_0x4fe962(0x194)]},_0x4fe962(0x88)+_0x1825c4+_0x4fe962(0x174)+_0x32b16a['message']);}),this[_0x6def55(0x9b)][_0x1825c4]=_0x259bf1;}logger[_0x6def55(0xf8)]({'event':_0x6def55(0xe0),'count':0x3,'concurrency':_0x48e5fb},'3\x20BullMQ\x20Workers\x20created\x20(concurrency:\x20'+_0x48e5fb+')');let _0x341e6a=0x0;for(const _0x3c08eb of _0x3517d8){try{await this['registerJob'](_0x3c08eb),_0x341e6a++;}catch(_0x4322f4){logger['error']({'event':'job_register_failed','name':_0x3c08eb['name'],'error':_0x4322f4[_0x6def55(0x194)]},_0x6def55(0x17d)+_0x3c08eb[_0x6def55(0x156)]+'\x20—\x20'+_0x4322f4[_0x6def55(0x194)]);}}this[_0x6def55(0x10b)]=!![];const _0x567570=this['connections']['length'];logger['info']({'event':_0x1c5060[_0x6def55(0x83)],'registeredJobs':_0x341e6a,'totalConfigs':_0x3517d8[_0x6def55(0x1ab)],'redisConnections':_0x567570},_0x6def55(0x139)+_0x341e6a+_0x6def55(0x154)+_0x567570+_0x6def55(0xc5));}async[a0_0x52d112(0x142)](){const _0x85d906=a0_0x52d112,_0x56260c={'ITYuk':function(_0x51f36f,_0x36cd87){return _0x51f36f<_0x36cd87;},'cIDvQ':function(_0x5e719e,_0x455b1b){return _0x5e719e-_0x455b1b;},'sAiKv':function(_0x307e0d,_0xfa1aaf){return _0x307e0d===_0xfa1aaf;},'pLZIe':_0x85d906(0x106)};if(!this['initialized'])return;const _0x2a5f2f=parseInt(process['env']['JOB_SHUTDOWN_TIMEOUT'],0xa)||0x2710;logger[_0x85d906(0xf8)]({'event':_0x85d906(0x151),'timeoutMs':_0x2a5f2f},'Job\x20Manager\x20shutting\x20down\x20(timeout:\x20'+_0x2a5f2f+'ms)...');const _0x5a175a=Object['values'](this[_0x85d906(0x9b)])['map'](async _0x501fc9=>{try{await _0x501fc9['pause']();}catch(_0x41e216){}});await Promise[_0x85d906(0xfa)](_0x5a175a);const _0x28a908=Date['now']();while(_0x56260c[_0x85d906(0xc1)](_0x56260c['cIDvQ'](Date['now'](),_0x28a908),_0x2a5f2f)){let _0x3872a7=0x0;for(const _0x28d38b of Object[_0x85d906(0x19d)](this['queues'])){try{const _0x261264=await _0x28d38b['getJobCounts'](_0x85d906(0xf9));_0x3872a7+=_0x261264[_0x85d906(0xf9)]||0x0;}catch(_0x126164){}}if(_0x56260c['sAiKv'](_0x3872a7,0x0))break;await new Promise(_0x382583=>setTimeout(_0x382583,0x1f4));}const _0x582c4f=Object[_0x85d906(0x19d)](this[_0x85d906(0x9b)])['map'](async _0x1eb910=>{try{await _0x1eb910['close']();}catch(_0x190dce){}});await Promise[_0x85d906(0xfa)](_0x582c4f);const _0x3d695b=Object[_0x85d906(0x19d)](this[_0x85d906(0xed)])['map'](async _0x21294e=>{const _0x36b090=_0x85d906;try{await _0x21294e[_0x36b090(0x117)]();}catch(_0x176040){}});await Promise['all'](_0x3d695b);for(const _0x39c0da of this['connections']){try{await _0x39c0da['quit']();}catch(_0x8f4128){}}this['queues']={},this[_0x85d906(0x9b)]={},this[_0x85d906(0x93)]=[],await this[_0x85d906(0xec)](),this[_0x85d906(0x9f)][_0x85d906(0x184)](),this[_0x85d906(0x10b)]=![],logger[_0x85d906(0xf8)]({'event':'job_manager_shutdown_complete'},_0x56260c['pLZIe']);}['loadJobConfigs'](){const _0x53c56e=a0_0x52d112,_0x4522e7={'oNUnb':'job_config_dir_missing','RAURP':_0x53c56e(0x131),'uMsYO':'utf8','lDssV':'job_config_parse_error'},_0x451ef8=path[_0x53c56e(0x96)](this[_0x53c56e(0xaa)],'payload','jobs');if(!fs['existsSync'](_0x451ef8))return logger['info']({'event':_0x4522e7['oNUnb'],'path':_0x451ef8},_0x4522e7['RAURP']),[];const _0x1d1bb7=fs[_0x53c56e(0x18d)](_0x451ef8)['filter'](_0x2c75e7=>_0x2c75e7[_0x53c56e(0x19a)]('.json')),_0x697a92=[];for(const _0x194967 of _0x1d1bb7){const _0x53e151=path[_0x53c56e(0x96)](_0x451ef8,_0x194967);try{const _0x4aef43=fs['readFileSync'](_0x53e151,_0x4522e7[_0x53c56e(0xeb)]),_0x31b651=JSON['parse'](_0x4aef43);_0x31b651[_0x53c56e(0xd0)]=_0x194967,_0x697a92[_0x53c56e(0xbd)](_0x31b651);}catch(_0x3d3696){logger['error']({'event':_0x4522e7['lDssV'],'file':_0x194967,'error':_0x3d3696['message']},'Failed\x20to\x20parse\x20job\x20config:\x20'+_0x194967+_0x53c56e(0x116)+_0x3d3696[_0x53c56e(0x194)]);}}return logger['info']({'event':_0x53c56e(0x150),'count':_0x697a92[_0x53c56e(0x1ab)]},'Loaded\x20'+_0x697a92[_0x53c56e(0x1ab)]+_0x53c56e(0x18b)),_0x697a92;}async['registerJob'](_0x2bc1e){const _0x1cc522=a0_0x52d112,_0x446c8f={'lJyMA':'cron','iodox':function(_0x169757,_0x6e2c1d){return _0x169757!==_0x6e2c1d;},'dUOjW':_0x1cc522(0x11d),'LVPcx':_0x1cc522(0x179),'yfetZ':function(_0x39275d,_0xad253a){return _0x39275d===_0xad253a;},'KXiCw':function(_0x2e39e6,_0x5391a1){return _0x2e39e6!==_0x5391a1;},'HRMdm':_0x1cc522(0xc3)},_0x1b0376=path[_0x1cc522(0x96)](this['workingDir'],_0x1cc522(0x17b),_0x1cc522(0xde),_0x2bc1e['handler']+'.js');this['handlers'][_0x2bc1e['name']]=require(_0x1b0376),this[_0x1cc522(0x97)][_0x2bc1e[_0x1cc522(0x156)]]=_0x2bc1e;if(_0x2bc1e['type']===_0x446c8f[_0x1cc522(0x145)]&&_0x446c8f[_0x1cc522(0x103)](_0x2bc1e['enabled'],![])){const _0x5a4e0d=this['queues'][_0x2bc1e['queue']||_0x1cc522(0x179)];await _0x5a4e0d[_0x1cc522(0x19c)](_0x2bc1e['name'],{'pattern':_0x2bc1e[_0x1cc522(0x196)],'tz':_0x2bc1e[_0x1cc522(0xc0)]||undefined},{'name':_0x2bc1e['name'],'data':{'handler':_0x2bc1e['handler'],'triggeredBy':_0x446c8f[_0x1cc522(0x145)],'metadata':_0x2bc1e[_0x1cc522(0xb5)]||{}},'opts':{'attempts':_0x2bc1e[_0x1cc522(0x158)]?.[_0x1cc522(0x18e)]||0x3,'backoff':{'type':_0x2bc1e[_0x1cc522(0x158)]?.[_0x1cc522(0x89)]||_0x446c8f[_0x1cc522(0x115)],'delay':_0x2bc1e['retry']?.[_0x1cc522(0x1ae)]||0x1388},'timeout':_0x2bc1e['timeout']||0x7530}}),logger[_0x1cc522(0xf8)]({'event':_0x1cc522(0x19b),'name':_0x2bc1e['name'],'schedule':_0x2bc1e['schedule'],'queue':_0x2bc1e[_0x1cc522(0xb2)]||_0x446c8f['LVPcx']},_0x1cc522(0x180)+_0x2bc1e['name']+'\x20['+_0x2bc1e['schedule']+']');}const _0x5a92f8=_0x446c8f['yfetZ'](_0x2bc1e['type'],'cron')&&_0x446c8f[_0x1cc522(0x11c)](_0x2bc1e[_0x1cc522(0x16f)],![])?'online':_0x1cc522(0x132);let _0x52247b=null;_0x446c8f['yfetZ'](_0x5a92f8,_0x446c8f[_0x1cc522(0x176)])&&(_0x52247b=await this['getNextRunFromBullMQ'](_0x2bc1e['name'])),await this[_0x1cc522(0x85)](_0x2bc1e,_0x5a92f8,_0x52247b);}async['processJob'](_0x3e211c){const _0x42b0c3=a0_0x52d112,_0x4826d5={'GGRxz':'job_started','DhSmm':function(_0x37f01f,_0x3f3e66){return _0x37f01f+_0x3f3e66;},'GSqwF':function(_0x2d66a3){return _0x2d66a3();},'EnTUQ':_0x42b0c3(0x1af),'hvqrd':function(_0x45067e,_0x3d4a16){return _0x45067e===_0x3d4a16;},'ySOcD':'api','oAssS':'cron','MPOJo':function(_0x3658a5,_0xd20cae){return _0x3658a5===_0xd20cae;},'yvGog':_0x42b0c3(0x179),'sxRLO':function(_0x11fd19){return _0x11fd19();}},_0xed18=this[_0x42b0c3(0x97)][_0x3e211c[_0x42b0c3(0x156)]],_0x112bf3=this['handlers'][_0x3e211c['name']];if(!_0x112bf3)throw new Error(_0x42b0c3(0xf0)+_0x3e211c[_0x42b0c3(0x156)]);const _0x991681=logger['child']({'jobId':_0x3e211c['id'],'jobName':_0x3e211c[_0x42b0c3(0x156)]});_0x991681['info']({'event':_0x4826d5['GGRxz'],'attempt':_0x3e211c[_0x42b0c3(0xbb)]+0x1,'triggeredBy':_0x3e211c['data']?.['triggeredBy']||'unknown'},_0x42b0c3(0x190)+_0x3e211c['name']+_0x42b0c3(0x130)+_0x4826d5[_0x42b0c3(0x99)](_0x3e211c['attemptsMade'],0x1)+')');const _0x32ca1b=_0x4826d5['GSqwF'](uuidv7),_0x59d419=_0x3e211c['data']?.['triggeredBy']||_0x4826d5[_0x42b0c3(0x122)],_0x348fb2=this[_0x42b0c3(0x91)]({'id':_0x32ca1b,'jobName':_0x3e211c[_0x42b0c3(0x156)],'bullmqJobId':_0x3e211c['id'],'triggerType':_0x59d419==='api-delayed'?_0x42b0c3(0xa8):_0x4826d5[_0x42b0c3(0x18c)](_0x59d419,_0x4826d5['ySOcD'])?'manual':_0x4826d5['oAssS'],'triggeredBy':_0x4826d5['MPOJo'](_0x59d419,'cron')?'system':_0x59d419,'queue':_0xed18?.['queue']||_0x4826d5['yvGog'],'attempt':_0x3e211c['attemptsMade']+0x1,'configFile':_0xed18?.[_0x42b0c3(0xd0)]||null})[_0x42b0c3(0xf3)](_0x4fc881=>{const _0x567b98=_0x42b0c3;_0x991681[_0x567b98(0xd8)]({'event':_0x567b98(0x123),'error':_0x4fc881[_0x567b98(0x194)]},_0x567b98(0xbf)+_0x4fc881['message']);});this[_0x42b0c3(0x9f)][_0x42b0c3(0xb0)](_0x3e211c['id'],{'historyId':_0x32ca1b,'insertPromise':_0x348fb2});const _0x17c285=this['buildContext'](_0x3e211c,_0xed18,_0x991681),_0x5765b1=_0x4826d5[_0x42b0c3(0xa1)](getComponentEngine);if(_0x5765b1&&typeof _0x5765b1[_0x42b0c3(0xc9)]===_0x42b0c3(0xc2)){const _0x766981=await _0x5765b1['executeEventHandlers']('onBeforeJobExecute',_0x17c285,!![]);if(!_0x766981['success'])throw new Error(_0x42b0c3(0x126)+_0x766981[_0x42b0c3(0x119)]);}const _0x307163=await _0x112bf3(_0x17c285);return _0x991681[_0x42b0c3(0xf8)]({'event':_0x42b0c3(0x164),'result':_0x307163},_0x42b0c3(0xe6)+_0x3e211c['name']),_0x307163;}['buildContext'](_0x47015c,_0x55b942,_0x150452){const _0x5dadc3=a0_0x52d112,_0x59060b={'dQJjt':'JOB_EVENT','rnfhF':'job-scheduler','fldXm':function(_0xdb4326,_0x1260e9){return _0xdb4326||_0x1260e9;}};return{'jobId':_0x47015c['id'],'jobName':_0x47015c['name'],'attempt':_0x47015c['attemptsMade']+0x1,'maxAttempts':_0x55b942?.['retry']?.['maxAttempts']||0x3,'payload':_0x47015c[_0x5dadc3(0x181)]||{},'config':_0x59060b[_0x5dadc3(0x19f)](_0x55b942,{}),'db':this['getDbUtils'](),'redis':this['getRedisClient'](),'logger':_0x150452,'kafka':this['getKafkaService'](),'cache':this['getCacheManager'](),'updateProgress':async _0x3efe0c=>{const _0x5f0e8d=_0x5dadc3;await _0x47015c[_0x5f0e8d(0x12b)](_0x3efe0c);},'emit':async(_0x306a0d,_0x22251d)=>{const _0x2ef8ca=_0x5dadc3,_0x33ea46=this[_0x2ef8ca(0x9e)]();_0x33ea46&&await _0x33ea46['publishEvent'](_0x306a0d,_0x59060b['dQJjt'],null,_0x22251d,{'module':_0x59060b['rnfhF'],'endpoint':_0x47015c[_0x2ef8ca(0x156)]});},'job':_0x47015c};}['getDbType'](){const _0x4d9e7d=a0_0x52d112,_0x9ce494={'SGoXH':'postgresql'};return(process['env']['DB_TYPE']||_0x9ce494[_0x4d9e7d(0x135)])[_0x4d9e7d(0xa6)]();}async['ensureTables'](){const _0x1401c1=a0_0x52d112,_0x2da2a9={'DmwXj':'job_db_unavailable','dHbXx':'postgresql.sql','lLuic':'already\x20exists'},_0x5a2e3a=this[_0x1401c1(0x186)]();if(!_0x5a2e3a){logger['warn']({'event':_0x2da2a9[_0x1401c1(0x1a5)]},_0x1401c1(0x1ac));return;}const _0x109d41=this[_0x1401c1(0x188)](),_0x29ce23={'postgresql':_0x2da2a9[_0x1401c1(0xb3)],'oracle':'oracle.sql','mysql':_0x1401c1(0xd6)},_0x2747bb=_0x29ce23[_0x109d41];if(!_0x2747bb){logger[_0x1401c1(0xd8)]({'event':_0x1401c1(0x14b),'dbType':_0x109d41},'DB_TYPE\x20\x27'+_0x109d41+_0x1401c1(0x175));return;}const _0x5661c5=path[_0x1401c1(0x96)](__dirname,'sql-scripts',_0x2747bb);if(!fs['existsSync'](_0x5661c5)){logger[_0x1401c1(0xd8)]({'event':_0x1401c1(0x147),'path':_0x5661c5},'SQL\x20script\x20tidak\x20ditemukan:\x20'+_0x5661c5);return;}const _0xc17f2f=fs['readFileSync'](_0x5661c5,'utf8'),_0x377132=this['splitSqlStatements'](_0xc17f2f,_0x109d41);let _0x4165bc=0x0;for(const _0x59cdd1 of _0x377132){try{await _0x5a2e3a[_0x1401c1(0x9c)](_0x59cdd1),_0x4165bc++;}catch(_0x4bfb03){const _0x3091c1=(_0x4bfb03['message']||'')[_0x1401c1(0xa6)](),_0x39a4d0=_0x3091c1['includes'](_0x2da2a9['lLuic'])||_0x3091c1[_0x1401c1(0x183)]('ora-00955')||_0x3091c1[_0x1401c1(0x183)](_0x1401c1(0xab));!_0x39a4d0&&logger[_0x1401c1(0xd8)]({'event':'job_ensure_tables_warn','error':_0x4bfb03['message']},'Job\x20ensureTables\x20warning:\x20'+_0x4bfb03[_0x1401c1(0x194)]);}}logger[_0x1401c1(0xf8)]({'event':'job_tables_ensured','dbType':_0x109d41,'executed':_0x4165bc},_0x1401c1(0x138)+_0x109d41+')');}['splitSqlStatements'](_0x5b84c4,_0x196104){const _0x456152=a0_0x52d112;let _0x544d83;return _0x196104==='oracle'?_0x544d83=_0x5b84c4[_0x456152(0x12e)](/\n\/\s*(?:\n|$)/):_0x544d83=_0x5b84c4[_0x456152(0x12e)](/;\s*(?:\n|$)/),_0x544d83[_0x456152(0xf2)](_0x54fa51=>_0x54fa51[_0x456152(0x1b4)]())['filter'](_0x588a0d=>{const _0x9cc5b6=_0x456152;if(_0x588a0d[_0x9cc5b6(0x1ab)]===0x0)return![];const _0x320e06=_0x588a0d['split']('\x0a')['filter'](_0x23add4=>!_0x23add4['trim']()[_0x9cc5b6(0xae)]('--')&&_0x23add4['trim']()[_0x9cc5b6(0x1ab)]>0x0);return _0x320e06['length']>0x0;});}async['upsertJobRegistry'](_0x2f9849,_0x34791a=a0_0x52d112(0xc3),_0x3c77a8=null){const _0x7594b9=a0_0x52d112,_0x3234b1={'PpmCn':_0x7594b9(0x95),'KLLfY':'default','DIlbq':'mysql'},_0x44ff64=this[_0x7594b9(0x186)]();if(!_0x44ff64)return;const _0x1fef8c=this['getDbType'](),_0x51fc73=[_0x2f9849[_0x7594b9(0x156)],_0x2f9849['description']||_0x2f9849[_0x7594b9(0x156)],_0x2f9849['type']||_0x3234b1['PpmCn'],_0x2f9849[_0x7594b9(0x196)]||null,_0x2f9849['queue']||_0x3234b1['KLLfY'],_0x2f9849[_0x7594b9(0xe2)],_0x2f9849[_0x7594b9(0xd0)]||'',_0x2f9849['timeout']||0x7530,_0x2f9849['retry']?.[_0x7594b9(0x18e)]||0x3,_0x2f9849['retry']?.['backoff']||'exponential',_0x34791a,_0x3c77a8];try{if(_0x1fef8c===_0x7594b9(0x182))await _0x44ff64['executeQuery']('MERGE\x20INTO\x20job_registry\x20r\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20USING\x20(SELECT\x20:1\x20AS\x20jn\x20FROM\x20DUAL)\x20s\x20ON\x20(r.job_name\x20=\x20s.jn)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHEN\x20MATCHED\x20THEN\x20UPDATE\x20SET\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display_name\x20=\x20:2,\x20type\x20=\x20:3,\x20schedule\x20=\x20:4,\x20queue\x20=\x20:5,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20handler\x20=\x20:6,\x20config_file\x20=\x20:7,\x20timeout\x20=\x20:8,\x20retry_max\x20=\x20:9,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20retry_backoff\x20=\x20:10,\x20status\x20=\x20:11,\x20next_run_at\x20=\x20:12,\x20updated_at\x20=\x20SYSTIMESTAMP\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHEN\x20NOT\x20MATCHED\x20THEN\x20INSERT\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(job_name,\x20display_name,\x20type,\x20schedule,\x20queue,\x20handler,\x20config_file,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20timeout,\x20retry_max,\x20retry_backoff,\x20status,\x20next_run_at,\x20created_at,\x20updated_at)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(:1,\x20:2,\x20:3,\x20:4,\x20:5,\x20:6,\x20:7,\x20:8,\x20:9,\x20:10,\x20:11,\x20:12,\x20SYSTIMESTAMP,\x20SYSTIMESTAMP)',_0x51fc73);else _0x1fef8c===_0x3234b1[_0x7594b9(0x11f)]?await _0x44ff64['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)',_0x51fc73):await _0x44ff64['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()',_0x51fc73);}catch(_0x321e8d){logger['warn']({'event':_0x7594b9(0x189),'name':_0x2f9849['name'],'error':_0x321e8d[_0x7594b9(0x194)]},'Failed\x20to\x20upsert\x20job\x20registry:\x20'+_0x2f9849['name']+'\x20—\x20'+_0x321e8d['message']);}}async['insertJobHistory'](_0x534466){const _0x4989ab=a0_0x52d112,_0x41e2f3={'MMdij':_0x4989ab(0x127),'BFtQo':'default','HnIYO':function(_0xe6fb1e,_0x30d632){return _0xe6fb1e===_0x30d632;},'veGbN':_0x4989ab(0x182),'SfQCa':_0x4989ab(0xdc),'OvGxR':_0x4989ab(0x153)},_0x5debbc=this[_0x4989ab(0x186)]();if(!_0x5debbc)return;const _0x28644a=this['getDbType'](),_0x577144=[_0x534466['id'],_0x534466[_0x4989ab(0xe8)],_0x534466['bullmqJobId']||null,_0x534466[_0x4989ab(0x15a)]||'cron',_0x534466[_0x4989ab(0x109)]||_0x41e2f3['MMdij'],_0x534466['queue']||_0x41e2f3['BFtQo'],_0x534466['attempt']||0x1,_0x534466[_0x4989ab(0xaf)]||null,process[_0x4989ab(0x87)]];try{if(_0x41e2f3['HnIYO'](_0x28644a,_0x41e2f3['veGbN']))await _0x5debbc[_0x4989ab(0x9c)]('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)',_0x577144);else _0x28644a===_0x41e2f3[_0x4989ab(0x149)]?await _0x5debbc[_0x4989ab(0x9c)]('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())',_0x577144):await _0x5debbc['executeQuery']('INSERT\x20INTO\x20job_history\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(id,\x20job_name,\x20bullmq_job_id,\x20trigger_type,\x20triggered_by,\x20status,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20queue,\x20attempt,\x20config_file,\x20started_at,\x20worker_pid,\x20created_at)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$5,\x20\x27running\x27,\x20$6,\x20$7,\x20$8,\x20NOW(),\x20$9,\x20NOW())',_0x577144);await this['updateRegistryStatus'](_0x534466['jobName'],_0x41e2f3[_0x4989ab(0x118)]);}catch(_0x478f4c){logger['warn']({'event':_0x4989ab(0xa5),'jobName':_0x534466['jobName'],'error':_0x478f4c['message']},'Failed\x20to\x20insert\x20job\x20history:\x20'+_0x478f4c[_0x4989ab(0x194)]);}}async[a0_0x52d112(0x143)](_0x300871,_0x59b5a4,_0x451690){const _0x2dea3b=a0_0x52d112,_0x5ab0ac={'cUPqA':function(_0x3c7f10,_0xacfbbb){return _0x3c7f10(_0xacfbbb);},'RLgPQ':function(_0x457cf4,_0x2fceb9){return _0x457cf4===_0x2fceb9;},'sXooh':'oracle','OrqIA':_0x2dea3b(0xe3)},_0x58bba1=this[_0x2dea3b(0x186)]();if(!_0x58bba1)return;const _0x2822a5=this['getDbType'](),_0x148d0f=_0x451690?_0x5ab0ac[_0x2dea3b(0xac)](String,_0x451690)['substring'](0x0,0x1f4):null;try{if(_0x5ab0ac['RLgPQ'](_0x2822a5,_0x5ab0ac['sXooh']))await _0x58bba1[_0x2dea3b(0x9c)]('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',[_0x59b5a4,_0x148d0f,_0x300871]);else _0x5ab0ac[_0x2dea3b(0x8b)](_0x2822a5,'mysql')?await _0x58bba1[_0x2dea3b(0x9c)](_0x2dea3b(0x84),[_0x59b5a4,_0x148d0f,_0x300871]):await _0x58bba1['executeQuery'](_0x2dea3b(0xbc),[_0x59b5a4,_0x148d0f,_0x300871]);}catch(_0xaa26ac){logger['warn']({'event':_0x5ab0ac['OrqIA'],'historyId':_0x300871,'error':_0xaa26ac[_0x2dea3b(0x194)]},'Failed\x20to\x20update\x20job\x20history\x20(completed):\x20'+_0xaa26ac['message']);}}async['updateJobHistoryFailed'](_0x3bf5c8,_0x25d83f,_0x555a8a,_0x363040,_0x28811c){const _0x529fbe=a0_0x52d112,_0x51df85={'nmgIY':function(_0x294c17,_0x4ddebf){return _0x294c17(_0x4ddebf);},'AOsdq':function(_0x4f5c0f,_0x7ed4e1){return _0x4f5c0f===_0x7ed4e1;},'ynAZF':'mysql','jnRCH':function(_0x4e5042,_0x51890b){return _0x4e5042||_0x51890b;},'PfShM':function(_0x139793,_0xf76316){return _0x139793||_0xf76316;}},_0x197834=this['getDbUtils']();if(!_0x197834)return;const _0x1ed48f=this[_0x529fbe(0x188)](),_0x1cbeea=_0x363040?_0x51df85['nmgIY'](String,_0x363040)['substring'](0x0,0x3e8):null,_0x4e1afc=_0x28811c?String(_0x28811c)['substring'](0x0,0xfa0):null;try{if(_0x51df85['AOsdq'](_0x1ed48f,'oracle'))await _0x197834[_0x529fbe(0x9c)](_0x529fbe(0xda),[_0x25d83f,_0x555a8a||0x0,_0x1cbeea,_0x4e1afc,_0x3bf5c8]);else _0x1ed48f===_0x51df85[_0x529fbe(0x191)]?await _0x197834['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?',[_0x25d83f,_0x51df85['jnRCH'](_0x555a8a,0x0),_0x1cbeea,_0x4e1afc,_0x3bf5c8]):await _0x197834[_0x529fbe(0x9c)](_0x529fbe(0x1a2),[_0x25d83f,_0x51df85['PfShM'](_0x555a8a,0x0),_0x1cbeea,_0x4e1afc,_0x3bf5c8]);}catch(_0x2dd1bd){logger[_0x529fbe(0xd8)]({'event':'job_history_failed_error','historyId':_0x3bf5c8,'error':_0x2dd1bd[_0x529fbe(0x194)]},_0x529fbe(0x1a7)+_0x2dd1bd['message']);}}async['updateRegistryStatus'](_0x35b12e,_0x3eecf0){const _0x4e1696=a0_0x52d112,_0xcad2a7={'rLbuN':function(_0x1bc60e,_0x2677bb){return _0x1bc60e===_0x2677bb;},'POomk':_0x4e1696(0x182),'TiMGp':function(_0xfdbd48,_0xdcc708){return _0xfdbd48===_0xdcc708;},'qhpZW':_0x4e1696(0xdc)},_0x28b2b8=this['getDbUtils']();if(!_0x28b2b8)return;const _0x3685d7=this[_0x4e1696(0x188)]();try{if(_0xcad2a7['rLbuN'](_0x3685d7,_0xcad2a7['POomk']))await _0x28b2b8[_0x4e1696(0x9c)]('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20:1,\x20last_run_at\x20=\x20SYSTIMESTAMP,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updated_at\x20=\x20SYSTIMESTAMP\x20WHERE\x20job_name\x20=\x20:2',[_0x3eecf0,_0x35b12e]);else _0xcad2a7[_0x4e1696(0x17a)](_0x3685d7,_0xcad2a7['qhpZW'])?await _0x28b2b8['executeQuery'](_0x4e1696(0x13d),[_0x3eecf0,_0x35b12e]):await _0x28b2b8['executeQuery'](_0x4e1696(0xc7),[_0x3eecf0,_0x35b12e]);}catch(_0x7824c0){}}async['updateRegistryCounters'](_0x23ccb1,_0xa013d6,_0x50e31e,_0x2522a2){const _0x1ea091=a0_0x52d112,_0x1aa503={'FRyId':function(_0x1c1fcb,_0x54f669){return _0x1c1fcb===_0x54f669;},'PMxYm':'total_success','omelS':_0x1ea091(0x14e),'RCJym':function(_0x12045b,_0x34f089){return _0x12045b===_0x34f089;},'GVvcF':'oracle','QgIKl':'mysql'},_0x34deb3=this[_0x1ea091(0x186)]();if(!_0x34deb3)return;const _0x52a9e3=this[_0x1ea091(0x188)](),_0x3f24f2=_0x1aa503[_0x1ea091(0xba)](_0xa013d6,'success')?_0x1aa503['PMxYm']:_0x1aa503['omelS'];try{if(_0x1aa503[_0x1ea091(0x18f)](_0x52a9e3,_0x1aa503[_0x1ea091(0xd4)]))await _0x34deb3['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'+_0x3f24f2+'\x20=\x20'+_0x3f24f2+_0x1ea091(0xee),[_0xa013d6,_0x50e31e,_0x2522a2,_0x23ccb1]);else _0x1aa503['RCJym'](_0x52a9e3,_0x1aa503['QgIKl'])?await _0x34deb3[_0x1ea091(0x9c)](_0x1ea091(0xf1)+_0x3f24f2+_0x1ea091(0x1a4)+_0x3f24f2+_0x1ea091(0x90),[_0xa013d6,_0x50e31e,_0x2522a2,_0x23ccb1]):await _0x34deb3['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'+_0x3f24f2+'\x20=\x20'+_0x3f24f2+'\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',[_0xa013d6,_0x50e31e,_0x2522a2,_0x23ccb1]);}catch(_0x19192f){logger[_0x1ea091(0xd8)]({'event':_0x1ea091(0x125),'jobName':_0x23ccb1,'error':_0x19192f[_0x1ea091(0x194)]},'Failed\x20to\x20update\x20job\x20registry\x20counters:\x20'+_0x19192f[_0x1ea091(0x194)]);}}async['getNextRunFromBullMQ'](_0xeb5b42){const _0x2cc9b9=a0_0x52d112,_0x182704={'WwBGO':'cron','Geoiw':_0x2cc9b9(0x179),'qeQOm':function(_0x13bf31,_0x103128){return _0x13bf31===_0x103128;}},_0x3fcbb4=this[_0x2cc9b9(0x97)][_0xeb5b42];if(!_0x3fcbb4||_0x3fcbb4[_0x2cc9b9(0xe1)]!==_0x182704[_0x2cc9b9(0xdf)]||_0x3fcbb4[_0x2cc9b9(0x16f)]===![])return null;const _0x11752a=this[_0x2cc9b9(0xed)][_0x3fcbb4[_0x2cc9b9(0xb2)]||_0x182704['Geoiw']];if(!_0x11752a)return null;try{if(_0x182704[_0x2cc9b9(0x1a1)](typeof _0x11752a[_0x2cc9b9(0x178)],'function')){const _0x40c4b0=await _0x11752a[_0x2cc9b9(0x178)](0x0,0x64),_0x2c3684=_0x40c4b0[_0x2cc9b9(0x166)](_0x311c0a=>_0x311c0a[_0x2cc9b9(0x156)]===_0xeb5b42);return _0x2c3684?.[_0x2cc9b9(0xd3)]?new Date(_0x2c3684[_0x2cc9b9(0xd3)]):null;}}catch(_0xb2fbb9){}return null;}async['setAllJobsOffline'](){const _0x3fb3dc=a0_0x52d112,_0x380dd0={'LyljV':function(_0x3aea29,_0x509437){return _0x3aea29===_0x509437;},'HjXnB':'mysql','FVaNU':'job_registry_offline_error'},_0x186b81=this[_0x3fb3dc(0x186)]();if(!_0x186b81)return;const _0x4e04e3=this['getDbType']();try{if(_0x4e04e3==='oracle')await _0x186b81['executeQuery']('UPDATE\x20job_registry\x20SET\x20status\x20=\x20\x27offline\x27,\x20next_run_at\x20=\x20NULL,\x20updated_at\x20=\x20SYSTIMESTAMP');else _0x380dd0[_0x3fb3dc(0x137)](_0x4e04e3,_0x380dd0[_0x3fb3dc(0x148)])?await _0x186b81[_0x3fb3dc(0x9c)](_0x3fb3dc(0x160)):await _0x186b81['executeQuery'](_0x3fb3dc(0x9d));}catch(_0x2291ae){logger['warn']({'event':_0x380dd0[_0x3fb3dc(0xfd)],'error':_0x2291ae[_0x3fb3dc(0x194)]},'Failed\x20to\x20set\x20jobs\x20offline:\x20'+_0x2291ae['message']);}}[a0_0x52d112(0x186)](){const _0x3df45d=a0_0x52d112,_0x2840cc={'lZLUq':'postgresql','ZZwOL':function(_0x485347,_0x317c91){return _0x485347(_0x317c91);},'JhirZ':_0x3df45d(0x128),'oNiwG':_0x3df45d(0xb7),'DgyvF':function(_0x4135e8,_0x8d194){return _0x4135e8===_0x8d194;},'hMFZF':_0x3df45d(0xdc),'EFOjz':function(_0xbe628f,_0x26534d){return _0xbe628f(_0x26534d);},'VVdez':'db_mysql_unavailable','FaCFv':'MySQL\x20DB\x20module\x20not\x20available','DeRLy':_0x3df45d(0x165),'FziED':_0x3df45d(0x1a0)},_0x92e646=(process['env']['DB_TYPE']||_0x2840cc['lZLUq'])[_0x3df45d(0xa6)]();if(_0x92e646==='oracle')try{const _0x25b457=_0x2840cc[_0x3df45d(0x17f)](require,'../../utils/db-oracle');return{'executeQuery':(_0x208c71,_0x11713e)=>_0x25b457['executeQuery'](_0x208c71,_0x11713e),'executeTransaction':_0x4ca7c8=>_0x25b457[_0x3df45d(0xa0)](_0x4ca7c8),'getPool':()=>_0x25b457['getPool']()};}catch(_0x4531b8){return logger[_0x3df45d(0xd8)]({'event':_0x2840cc[_0x3df45d(0x15b)]},_0x2840cc[_0x3df45d(0xf7)]),null;}if(_0x2840cc[_0x3df45d(0xd2)](_0x92e646,_0x2840cc[_0x3df45d(0x19e)]))try{const _0x2e4e53=_0x2840cc[_0x3df45d(0x1a3)](require,'../../utils/db-mysql');return{'executeQuery':(_0xc34d27,_0x54e98e)=>_0x2e4e53[_0x3df45d(0x9c)](_0xc34d27,_0x54e98e),'executeTransaction':_0xae448e=>_0x2e4e53['executeTransaction'](_0xae448e),'getPool':()=>_0x2e4e53['getPool']()};}catch(_0x5b4082){return logger[_0x3df45d(0xd8)]({'event':_0x2840cc['VVdez']},_0x2840cc[_0x3df45d(0xa4)]),null;}try{const _0x10ee32=_0x2840cc['ZZwOL'](require,'../../utils/db');return{'executeQuery':_0x10ee32['executeQuery'],'executeTransaction':_0x10ee32[_0x3df45d(0xa0)],'getPool':_0x10ee32[_0x3df45d(0x18a)]};}catch(_0x51c86f){return logger[_0x3df45d(0xd8)]({'event':_0x2840cc['DeRLy']},_0x2840cc[_0x3df45d(0x9a)]),null;}}['getRedisClient'](){const _0x3daf25=a0_0x52d112,_0x526ac7={'OjHqY':'../../utils/redis-client'};try{const _0x1c9d9f=require(_0x526ac7[_0x3daf25(0x185)]);return _0x1c9d9f['getClient']?_0x1c9d9f[_0x3daf25(0x168)]():_0x1c9d9f;}catch(_0x384bb8){return null;}}['getKafkaService'](){const _0x5a7d09=a0_0x52d112,_0x1a930e={'MdPeI':'true','Krlov':function(_0x50f6d0,_0x2ef11c){return _0x50f6d0(_0x2ef11c);}};try{if(process[_0x5a7d09(0x167)][_0x5a7d09(0xe7)]===_0x1a930e['MdPeI']){const _0x1c392c=_0x1a930e['Krlov'](require,'../../services/kafkaService');return _0x1c392c[_0x5a7d09(0x121)]?_0x1c392c['getInstance']():_0x1c392c;}}catch(_0x2c7272){}return null;}[a0_0x52d112(0xf5)](){const _0x57db31={'seduG':function(_0x4845b6,_0xfed848){return _0x4845b6(_0xfed848);},'xVWrr':'../../utils/cache-manager'};try{return _0x57db31['seduG'](require,_0x57db31['xVWrr']);}catch(_0x372da1){return null;}}async['dispatch'](_0xe29fca,_0x521e0d={}){const _0x395cc2=a0_0x52d112,_0x2d4d2f={'WqqCq':_0x395cc2(0x11d),'EeSrU':'job_dispatched'},_0x389a0c=this[_0x395cc2(0x97)][_0xe29fca];if(!_0x389a0c)throw new Error('Job\x20tidak\x20ditemukan:\x20'+_0xe29fca);const _0x5be3d6=this['queues'][_0x389a0c[_0x395cc2(0xb2)]||'default'],_0x5a69b0=await _0x5be3d6['add'](_0xe29fca,{..._0x521e0d,'handler':_0x389a0c[_0x395cc2(0xe2)],'triggeredBy':'api'},{'attempts':_0x389a0c[_0x395cc2(0x158)]?.[_0x395cc2(0x18e)]||0x3,'backoff':{'type':_0x389a0c['retry']?.[_0x395cc2(0x89)]||_0x2d4d2f['WqqCq'],'delay':_0x389a0c['retry']?.[_0x395cc2(0x1ae)]||0x1388},'timeout':_0x389a0c[_0x395cc2(0x169)]||0x7530});return logger['info']({'event':_0x2d4d2f['EeSrU'],'jobId':_0x5a69b0['id'],'name':_0xe29fca,'triggeredBy':_0x395cc2(0xce)},'Job\x20dispatched:\x20'+_0xe29fca+'\x20(id:\x20'+_0x5a69b0['id']+')'),{'jobId':_0x5a69b0['id'],'name':_0xe29fca};}async[a0_0x52d112(0x16e)](_0x561513,_0x161f8c={},_0x2d3408=0x0){const _0x1b880f=a0_0x52d112,_0x2fe68a={'HhNcp':_0x1b880f(0xff),'pYiNR':_0x1b880f(0xe9)},_0xe12974=this[_0x1b880f(0x97)][_0x561513];if(!_0xe12974)throw new Error('Job\x20tidak\x20ditemukan:\x20'+_0x561513);const _0x549f8a=this['queues'][_0xe12974['queue']||'default'],_0x250d6a=await _0x549f8a[_0x1b880f(0x15c)](_0x561513,{..._0x161f8c,'handler':_0xe12974[_0x1b880f(0xe2)],'triggeredBy':_0x2fe68a[_0x1b880f(0x1ad)]},{'delay':_0x2d3408,'attempts':_0xe12974['retry']?.[_0x1b880f(0x18e)]||0x3,'backoff':{'type':_0xe12974['retry']?.['backoff']||'exponential','delay':_0xe12974[_0x1b880f(0x158)]?.[_0x1b880f(0x1ae)]||0x1388},'timeout':_0xe12974['timeout']||0x7530});return logger['info']({'event':_0x2fe68a[_0x1b880f(0x124)],'jobId':_0x250d6a['id'],'name':_0x561513,'delayMs':_0x2d3408},_0x1b880f(0x13e)+_0x2d3408+'ms):\x20'+_0x561513+'\x20(id:\x20'+_0x250d6a['id']+')'),{'jobId':_0x250d6a['id'],'name':_0x561513};}async['getJobStatus'](_0x55bfab){const _0x7cb99f=a0_0x52d112;for(const _0x58bd10 of Object[_0x7cb99f(0x19d)](this[_0x7cb99f(0xed)])){const _0x54766d=await _0x58bd10['getJob'](_0x55bfab);if(_0x54766d){const _0x1dcd35=await _0x54766d[_0x7cb99f(0xfb)]();return{'jobId':_0x54766d['id'],'name':_0x54766d['name'],'state':_0x1dcd35,'progress':_0x54766d[_0x7cb99f(0x141)],'attemptsMade':_0x54766d[_0x7cb99f(0xbb)],'failedReason':_0x54766d['failedReason'],'returnvalue':_0x54766d[_0x7cb99f(0x1b0)],'data':_0x54766d['data'],'timestamps':{'created':_0x54766d['timestamp'],'started':_0x54766d[_0x7cb99f(0x177)],'completed':_0x54766d['finishedOn']}};}}return null;}['listJobs'](){const _0x3b4230=a0_0x52d112;return Object[_0x3b4230(0x19d)](this['jobConfigs'])['map'](_0x3fde7c=>({'name':_0x3fde7c['name'],'description':_0x3fde7c[_0x3b4230(0xcf)]||'','type':_0x3fde7c['type'],'schedule':_0x3fde7c['schedule'],'handler':_0x3fde7c[_0x3b4230(0xe2)],'enabled':_0x3fde7c[_0x3b4230(0x16f)]!==![],'queue':_0x3fde7c['queue']||_0x3b4230(0x179),'timeout':_0x3fde7c['timeout']||0x7530,'retry':_0x3fde7c[_0x3b4230(0x158)]||{'maxAttempts':0x3,'backoff':_0x3b4230(0x11d),'initialDelay':0x1388},'metadata':_0x3fde7c[_0x3b4230(0xb5)]||{}}));}async['listRunning'](){const _0x2c214c=a0_0x52d112,_0x44f2c0=[];for(const [_0x5a2ec4,_0x11f7eb]of Object[_0x2c214c(0xa7)](this[_0x2c214c(0xed)])){const _0x3bfc44=await _0x11f7eb['getJobs'](['active']);for(const _0x23a636 of _0x3bfc44){_0x44f2c0['push']({'jobId':_0x23a636['id'],'name':_0x23a636['name'],'queue':_0x5a2ec4,'progress':_0x23a636[_0x2c214c(0x141)],'attemptsMade':_0x23a636[_0x2c214c(0xbb)],'startedAt':_0x23a636[_0x2c214c(0x177)]});}}return _0x44f2c0;}async['getHistory'](_0x3fb0b4={}){const _0x1b87a2=a0_0x52d112,_0x39ce14={'KSfQX':function(_0x16758f,_0x330b46,_0x411395){return _0x16758f(_0x330b46,_0x411395);},'oBTxA':function(_0x1dbe2,_0x19c578,_0x3343e4){return _0x1dbe2(_0x19c578,_0x3343e4);},'oOoDq':function(_0x3cc9ef,_0x8bd1e0){return _0x3cc9ef*_0x8bd1e0;},'uAlPi':function(_0x20a8a5,_0x3bb695){return _0x20a8a5-_0x3bb695;},'xtOFW':'completed','EoBbU':'failed'},_0x479b2d=_0x39ce14[_0x1b87a2(0x152)](parseInt,_0x3fb0b4[_0x1b87a2(0x94)],0xa)||0x1,_0x4144e0=Math[_0x1b87a2(0x11a)](_0x39ce14['oBTxA'](parseInt,_0x3fb0b4[_0x1b87a2(0x12f)],0xa)||0x14,0x64),_0x3819b3=_0x39ce14['oOoDq'](_0x479b2d-0x1,_0x4144e0),_0x382488=_0x39ce14[_0x1b87a2(0x14d)](_0x3819b3+_0x4144e0,0x1),_0x15be7f=[];for(const [_0x1646cf,_0x4c4f0e]of Object[_0x1b87a2(0xa7)](this[_0x1b87a2(0xed)])){const _0x405353=await _0x4c4f0e['getJobs']([_0x39ce14[_0x1b87a2(0x107)]],_0x3819b3,_0x382488),_0x39da8=await _0x4c4f0e[_0x1b87a2(0xb4)]([_0x39ce14[_0x1b87a2(0x15d)]],_0x3819b3,_0x382488);for(const _0x203905 of[..._0x405353,..._0x39da8]){const _0x1ece7c=await _0x203905['getState']();_0x15be7f[_0x1b87a2(0xbd)]({'jobId':_0x203905['id'],'name':_0x203905[_0x1b87a2(0x156)],'state':_0x1ece7c,'queue':_0x1646cf,'attemptsMade':_0x203905[_0x1b87a2(0xbb)],'failedReason':_0x203905['failedReason'],'returnvalue':_0x203905[_0x1b87a2(0x1b0)],'timestamps':{'created':_0x203905['timestamp'],'started':_0x203905[_0x1b87a2(0x177)],'completed':_0x203905[_0x1b87a2(0x15e)]}});}}return _0x15be7f['sort']((_0xb3c2f,_0x3e249b)=>(_0x3e249b['timestamps'][_0x1b87a2(0x170)]||0x0)-(_0xb3c2f[_0x1b87a2(0x104)][_0x1b87a2(0x170)]||0x0)),{'jobs':_0x15be7f['slice'](0x0,_0x4144e0),'total':_0x15be7f['length'],'page':_0x479b2d,'limit':_0x4144e0};}async['cancelJob'](_0x1eaa19){const _0x4c243a=a0_0x52d112,_0x2b1422={'AqEsL':function(_0xfb358d,_0x49744e){return _0xfb358d===_0x49744e;},'bSqbU':_0x4c243a(0xe5),'VDMPd':_0x4c243a(0xa8)};for(const _0x3312d8 of Object['values'](this['queues'])){const _0x5dc9ee=await _0x3312d8['getJob'](_0x1eaa19);if(_0x5dc9ee){const _0xeab2d8=await _0x5dc9ee[_0x4c243a(0xfb)]();if(_0x2b1422['AqEsL'](_0xeab2d8,_0x4c243a(0xf9)))return await _0x5dc9ee['moveToFailed'](new Error(_0x2b1422['bSqbU']),_0x4c243a(0x13c),!![]),{'success':!![],'message':_0x4c243a(0x1a6)+_0x1eaa19+_0x4c243a(0x12a)};if(_0x2b1422[_0x4c243a(0x11b)](_0xeab2d8,_0x4c243a(0xc8))||_0x2b1422[_0x4c243a(0x11b)](_0xeab2d8,_0x2b1422[_0x4c243a(0x129)]))return await _0x5dc9ee['remove'](),{'success':!![],'message':'Job\x20'+_0x1eaa19+_0x4c243a(0x1b1)+_0xeab2d8+')'};return{'success':![],'message':_0x4c243a(0x1a6)+_0x1eaa19+_0x4c243a(0xbe)+_0xeab2d8+')'};}}return{'success':![],'message':'Job\x20'+_0x1eaa19+'\x20tidak\x20ditemukan'};}async[a0_0x52d112(0x198)](){const _0x539c2b=a0_0x52d112,_0x475bab={'kANxi':'paused','GFVhs':'waiting'},_0x3049b0={};for(const [_0x3f200e,_0x34e36e]of Object[_0x539c2b(0xa7)](this[_0x539c2b(0xed)])){try{const _0x43f19e=await _0x34e36e[_0x539c2b(0x14a)](_0x539c2b(0xf9),'completed',_0x539c2b(0xa8),_0x539c2b(0xea),_0x475bab['kANxi'],_0x475bab['GFVhs']);_0x3049b0[_0x3f200e]=_0x43f19e;}catch(_0x4799d9){_0x3049b0[_0x3f200e]={'error':_0x4799d9[_0x539c2b(0x194)]};}}const _0x63856b={};for(const [_0x5eaf24,_0x459b5c]of Object['entries'](this[_0x539c2b(0x9b)])){_0x63856b[_0x5eaf24]={'running':_0x459b5c['isRunning'](),'paused':_0x459b5c[_0x539c2b(0xfc)]()};}return{'initialized':this['initialized'],'registeredJobs':Object[_0x539c2b(0xf6)](this['jobConfigs'])[_0x539c2b(0x1ab)],'redisConnections':this['connections']['length'],'queues':_0x3049b0,'workers':_0x63856b};}async[a0_0x52d112(0x146)](_0x5e9dbc,_0x231aa1){const _0x6e297=a0_0x52d112,_0x198786={'BFgIc':_0x6e297(0x1a8),'DVPKg':'job_completed','LQjwS':function(_0x4e9a43,_0x516ba9){return _0x4e9a43-_0x516ba9;},'ivFvb':function(_0x506428,_0x328058){return _0x506428-_0x328058;},'UTnog':function(_0x4a50ad,_0x12c517){return _0x4a50ad===_0x12c517;},'VefsC':'string','MNPpr':'function','XGAKS':_0x6e297(0xcc),'zwXta':'job_kafka_publish_error','Dfaqq':'Failed\x20to\x20publish\x20JOB_COMPLETED\x20to\x20Kafka'},_0x23422f=logger['child']({'jobId':_0x5e9dbc['id'],'jobName':_0x5e9dbc[_0x6e297(0x156)]});_0x23422f['info']({'event':_0x198786['DVPKg'],'attemptsMade':_0x5e9dbc['attemptsMade'],'duration':_0x5e9dbc[_0x6e297(0x15e)]?_0x198786[_0x6e297(0x101)](_0x5e9dbc[_0x6e297(0x15e)],_0x5e9dbc[_0x6e297(0x177)]):null},'Job\x20completed:\x20'+_0x5e9dbc[_0x6e297(0x156)]);const _0xded654=this[_0x6e297(0x9f)][_0x6e297(0xdb)](_0x5e9dbc['id']);if(_0xded654){if(_0xded654['insertPromise'])await _0xded654['insertPromise'];const _0x3ad2b9=_0x5e9dbc[_0x6e297(0x15e)]&&_0x5e9dbc[_0x6e297(0x177)]?_0x198786[_0x6e297(0x12d)](_0x5e9dbc[_0x6e297(0x15e)],_0x5e9dbc[_0x6e297(0x177)]):null,_0x37f099=_0x198786[_0x6e297(0xa9)](typeof _0x231aa1,_0x198786[_0x6e297(0x110)])?_0x231aa1:_0x231aa1?JSON['stringify'](_0x231aa1)[_0x6e297(0x10c)](0x0,0x1f4):null;await this[_0x6e297(0x143)](_0xded654[_0x6e297(0x144)],_0x3ad2b9,_0x37f099);const _0x5d59af=await this[_0x6e297(0x1b2)](_0x5e9dbc['name']);await this['updateRegistryCounters'](_0x5e9dbc[_0x6e297(0x156)],_0x6e297(0x162),_0x3ad2b9,_0x5d59af),this['activeHistoryIds'][_0x6e297(0x13f)](_0x5e9dbc['id']);}const _0xd2018c=getComponentEngine();if(_0xd2018c&&typeof _0xd2018c['executeEventHandlers']===_0x198786[_0x6e297(0xcb)]){const _0x214a81={'jobId':_0x5e9dbc['id'],'jobName':_0x5e9dbc[_0x6e297(0x156)],'result':_0x231aa1,'config':this[_0x6e297(0x97)][_0x5e9dbc['name']]||{}};_0xd2018c['executeEventHandlers'](_0x198786['XGAKS'],_0x214a81,![])[_0x6e297(0xf3)](_0x147b03=>{const _0x21f3ee=_0x6e297;_0x23422f['warn']({'event':_0x21f3ee(0x1aa),'error':_0x147b03['message']},_0x198786['BFgIc']);});}const _0x469427=this['getKafkaService']();if(_0x469427)try{await _0x469427['publishEvent']('restforge.jobs.completed','JOB_COMPLETED',null,{'jobId':_0x5e9dbc['id'],'name':_0x5e9dbc['name'],'result':_0x231aa1},{'module':'job-scheduler','endpoint':_0x5e9dbc['name']});}catch(_0x2b49b3){_0x23422f['warn']({'event':_0x198786['zwXta'],'error':_0x2b49b3[_0x6e297(0x194)]},_0x198786[_0x6e297(0x15f)]);}}async['onJobFailed'](_0x568aca,_0x18f37d){const _0xe0ba71=a0_0x52d112,_0x1a437c={'lbVDP':'after_job_failed_hook_error','hQkHX':_0xe0ba71(0x1b3),'ZTuxR':function(_0xeddacc,_0x36e7de){return _0xeddacc<_0x36e7de;},'vroyb':function(_0x1ea52a,_0x45a8de){return _0x1ea52a-_0x45a8de;},'TGocf':function(_0x102fa9){return _0x102fa9();},'bNEgI':function(_0x5b89ac,_0x44c799){return _0x5b89ac===_0x44c799;},'vgphL':'JOB_FAILED','PuDtu':_0xe0ba71(0x157),'uoJwM':_0xe0ba71(0x102)},_0xa5883e=logger['child']({'jobId':_0x568aca['id'],'jobName':_0x568aca['name']});_0xa5883e['error']({'event':_0x1a437c[_0xe0ba71(0x172)],'attemptsMade':_0x568aca['attemptsMade'],'failedReason':_0x18f37d?.[_0xe0ba71(0x194)],'willRetry':_0x1a437c[_0xe0ba71(0x173)](_0x568aca[_0xe0ba71(0xbb)],this['jobConfigs'][_0x568aca['name']]?.['retry']?.[_0xe0ba71(0x18e)]||0x3)},_0xe0ba71(0x120)+_0x568aca[_0xe0ba71(0x156)]+_0xe0ba71(0x116)+_0x18f37d?.[_0xe0ba71(0x194)]);const _0xde73a=this[_0xe0ba71(0x9f)][_0xe0ba71(0xdb)](_0x568aca['id']);if(_0xde73a){if(_0xde73a['insertPromise'])await _0xde73a[_0xe0ba71(0x192)];const _0x1989ca=_0x568aca['finishedOn']&&_0x568aca[_0xe0ba71(0x177)]?_0x1a437c[_0xe0ba71(0x86)](_0x568aca['finishedOn'],_0x568aca['processedOn']):null;await this[_0xe0ba71(0x17e)](_0xde73a['historyId'],_0x1989ca,_0x568aca[_0xe0ba71(0x141)],_0x18f37d?.['message'],_0x18f37d?.['stack']);const _0x1316d8=await this[_0xe0ba71(0x1b2)](_0x568aca['name']);await this[_0xe0ba71(0x16a)](_0x568aca['name'],'failed',_0x1989ca,_0x1316d8),this[_0xe0ba71(0x9f)]['delete'](_0x568aca['id']);}const _0x365eb4=_0x1a437c[_0xe0ba71(0x187)](getComponentEngine);if(_0x365eb4&&_0x1a437c['bNEgI'](typeof _0x365eb4[_0xe0ba71(0xc9)],_0xe0ba71(0xc2))){const _0x3c0257={'jobId':_0x568aca['id'],'jobName':_0x568aca[_0xe0ba71(0x156)],'error':_0x18f37d?.['message'],'attemptsMade':_0x568aca['attemptsMade'],'config':this[_0xe0ba71(0x97)][_0x568aca['name']]||{}};_0x365eb4[_0xe0ba71(0xc9)]('onAfterJobFailed',_0x3c0257,![])[_0xe0ba71(0xf3)](_0x2b1564=>{const _0x5cf5a0=_0xe0ba71;_0xa5883e['warn']({'event':_0x1a437c[_0x5cf5a0(0xd5)],'error':_0x2b1564['message']},_0x5cf5a0(0x113));});}const _0x4503f7=this[_0xe0ba71(0x9e)]();if(_0x4503f7)try{await _0x4503f7[_0xe0ba71(0x17c)](_0xe0ba71(0x8d),_0x1a437c[_0xe0ba71(0x8f)],null,{'jobId':_0x568aca['id'],'name':_0x568aca['name'],'error':_0x18f37d?.[_0xe0ba71(0x194)],'attemptsMade':_0x568aca[_0xe0ba71(0xbb)]},{'module':'job-scheduler','endpoint':_0x568aca['name']});}catch(_0x1eed27){_0xa5883e['warn']({'event':_0x1a437c['PuDtu'],'error':_0x1eed27[_0xe0ba71(0x194)]},_0x1a437c['uoJwM']);}}[a0_0x52d112(0xef)](_0xc4a468,_0x2d9dfb){const _0x57da4f=a0_0x52d112,_0x4a0780={'MRklC':_0x57da4f(0x100)};logger[_0x57da4f(0xf4)]({'event':_0x4a0780['MRklC'],'jobId':_0xc4a468['id'],'jobName':_0xc4a468[_0x57da4f(0x156)],'progress':_0x2d9dfb},_0x57da4f(0xad)+_0xc4a468[_0x57da4f(0x156)]+'\x20—\x20'+_0x2d9dfb+'%');}}module['exports']=new JobManager();
@@ -1 +1 @@
1
- function a0_0x1213(){const _0x26ee86=['CfbZq1q','lMPZB24','zMfPBgvKuMvHC29U','Bg93','zgvMyxvSDa','t0D5zvm','y29TCgXLDgvK','C2nOzwr1Bgu','Ceryywe','ou92thHcAW','y3jLyxrLza','zgvZy3jPChrPB24','AM9ICW','uKvesvnFrei','BgvUz3rO','qw1xA2y','mJGYode2oeX1yNzyqW','zw50CMLLCW','DgLTzw91Da','uKvesvnFue9sva','Aw5MBW','rxjYB3iGz2v0DgLUzYbQB2iGC3rHDhvZ','l3n0yxr1CY86AM9Iswq','rKvotMG','l2HLywX0Aa','yxbP','ANnVBG','DMfSDwvZ','yNnstNG','BMfTzq','ihrPzgfRigjPC2eGzgKTy2fUy2vSicHZDgf0ztOG','sM9IihrYAwDNzxjLzcb2AweGqvbjoIa','C1DHD04','mJfxAeP5BeC','AM9Ix2HPC3rVCNLFzxjYB3i','z2v0sM9ICW','ywrK','AgLNAa','ChjVz3jLC3m','CMvHzezPBgvtEw5J','ywn0AxzL','CgfYC2u','ihrPzgfRigrPDgvTDwTHBG','mtm2ntmWnZbczLrwu04','vujMve4','Cgf1C2vK','zMLSDgvY','BNHqEwG','zgvSyxLLza','sLD3sge','CgfYyw1Z','DhLWzq','y3DK','rxjYB3iGy2fUy2vSBgLUzYbQB2i','DNL4CgS','AM9Ix3f1zxvLC19LCNjVCG','zxHPC3rZu3LUyW','CxvLDwu','BwvZC2fNzq','Cgf5Bg9Hza','l2nHBMnLBc86AM9Iswq','Bw92zvrVrMfPBgvK','odeYmZK2ng56BhDzqW','zxHWB25LBNrPywW','z2v0','z2v0sM9I','DxrMoa','igjLCMHHC2LSigrPlxrYAwDNzxi','CMvHzgrPCLn5BMm','AM9PBG','s0XjwwC','vLPerum','CxvLCNK','mJK5odaYA1rxDu9Q','ENnuvvG','ndiZotKWu3nStgvh','yMfJA29MzG','sK9cx1jfreLtx1bsruzjwa','BwfW','Bwf4qxr0zw1WDhm','ihjLBw92zwqGkhDHCYa','zxHWB3j0CW','zw5KC1DPDgG','C29YDa','CMv0CNK','CMy6AM9I','zxjYB3i','A1nkwum','mtm0mtCXoeH0DNP3CW','Cg9ZDa','C3rHDhvZ','D2fPDgLUzW','t21zq2m','tM1NCwW','sg5cquG','Bwv0ywrHDge','lI4VlI4VDxrPBhmVBg9Nz2vY','B3zcsNO','DgLTzxn0yw1WCW','uKvesvnFse9tva','y29UBMvJDgvK','zw52','yLz0qwu','yxr0zw1WDhnnywrL','tKzhB24','sM9Iia','mZKWntzeDMHWzg4','nuzSBMv5Cq','zMLUAxnOzwrpBG','AgfUzgXLCG','z2v0u3rHDgu','ChjVy2vZC2vKt24'];a0_0x1213=function(){return _0x26ee86;};return a0_0x1213();}const a0_0x275eec=a0_0x13e9;(function(_0x36fa1d,_0x2edc79){const _0x39e5b4=a0_0x13e9,_0x4e486d=_0x36fa1d();while(!![]){try{const _0x50d54e=parseInt(_0x39e5b4(0x195))/0x1+-parseInt(_0x39e5b4(0x197))/0x2+-parseInt(_0x39e5b4(0x16d))/0x3*(-parseInt(_0x39e5b4(0x146))/0x4)+parseInt(_0x39e5b4(0x147))/0x5*(parseInt(_0x39e5b4(0x18a))/0x6)+parseInt(_0x39e5b4(0x1a4))/0x7+parseInt(_0x39e5b4(0x15c))/0x8+parseInt(_0x39e5b4(0x155))/0x9*(-parseInt(_0x39e5b4(0x177))/0xa);if(_0x50d54e===_0x2edc79)break;else _0x4e486d['push'](_0x4e486d['shift']());}catch(_0x51eae7){_0x4e486d['push'](_0x4e486d['shift']());}}}(a0_0x1213,0xa8775));const express=require('express'),{Queue}=require('bullmq'),Redis=require('ioredis'),{logger}=require(a0_0x275eec(0x1ac));let readConnection=null,readQueues=null,cachedJobConfigs=null;const QUEUE_NAMES={'high-priority':a0_0x275eec(0x171),'default':a0_0x275eec(0x150),'low-priority':a0_0x275eec(0x14f)};function a0_0x13e9(_0x4596a0,_0x142fe0){_0x4596a0=_0x4596a0-0x13e;const _0x12139d=a0_0x1213();let _0x13e952=_0x12139d[_0x4596a0];if(a0_0x13e9['CHshAQ']===undefined){var _0x5abdf7=function(_0x4ed278){const _0x3192e4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4b54fe='',_0x261c0f='';for(let _0x142a41=0x0,_0x3b1f07,_0x3b79c0,_0x454b12=0x0;_0x3b79c0=_0x4ed278['charAt'](_0x454b12++);~_0x3b79c0&&(_0x3b1f07=_0x142a41%0x4?_0x3b1f07*0x40+_0x3b79c0:_0x3b79c0,_0x142a41++%0x4)?_0x4b54fe+=String['fromCharCode'](0xff&_0x3b1f07>>(-0x2*_0x142a41&0x6)):0x0){_0x3b79c0=_0x3192e4['indexOf'](_0x3b79c0);}for(let _0x31fecd=0x0,_0x325ecf=_0x4b54fe['length'];_0x31fecd<_0x325ecf;_0x31fecd++){_0x261c0f+='%'+('00'+_0x4b54fe['charCodeAt'](_0x31fecd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x261c0f);};a0_0x13e9['uZYyqu']=_0x5abdf7,a0_0x13e9['aARQep']={},a0_0x13e9['CHshAQ']=!![];}const _0x3bd82d=_0x12139d[0x0],_0x582bd0=_0x4596a0+_0x3bd82d,_0x2c9aea=a0_0x13e9['aARQep'][_0x582bd0];return!_0x2c9aea?(_0x13e952=a0_0x13e9['uZYyqu'](_0x13e952),a0_0x13e9['aARQep'][_0x582bd0]=_0x13e952):_0x13e952=_0x2c9aea,_0x13e952;}function getReadQueues(){const _0x3f5157=a0_0x275eec,_0x5869e1={'oaLUZ':'job_routes_redis_error','bsRNx':_0x3f5157(0x1a1),'ovBJz':'localhost','AmWkf':function(_0x3571a4,_0x26e20b,_0xc93552){return _0x3571a4(_0x26e20b,_0xc93552);}};if(readQueues)return readQueues;const _0x5973e9=process['env'][_0x3f5157(0x199)]||_0x5869e1[_0x3f5157(0x168)];readConnection=new Redis({'host':process['env'][_0x3f5157(0x13f)]||_0x5869e1[_0x3f5157(0x1ad)],'port':parseInt(process['env'][_0x3f5157(0x15f)],0xa)||0x18ec,'password':process[_0x3f5157(0x141)]['REDIS_PASSWORD']||undefined,'db':_0x5869e1[_0x3f5157(0x15b)](parseInt,process['env'][_0x3f5157(0x159)],0xa)||0x0,'maxRetriesPerRequest':null}),readConnection['on'](_0x3f5157(0x1a2),_0x5ea2f0=>{const _0x12beee=_0x3f5157;logger[_0x12beee(0x1a2)]({'event':_0x5869e1['oaLUZ'],'error':_0x5ea2f0['message']},'Job\x20Routes\x20Redis\x20error:\x20'+_0x5ea2f0['message']);}),readQueues={};for(const [_0x40e7f3,_0x406e01]of Object[_0x3f5157(0x15d)](QUEUE_NAMES)){readQueues[_0x40e7f3]=new Queue(_0x406e01,{'connection':readConnection,'prefix':_0x5973e9});}return readQueues;}function createJobRoutes(_0x30fb9c){const _0x499739=a0_0x275eec,_0x471e81={'JWwHa':function(_0x3c6fc8,_0x5c05bf){return _0x3c6fc8(_0x5c05bf);},'pPsCT':'path','oMCAR':_0x499739(0x158),'VZDEC':'job_list_error','FENNh':'Error\x20listing\x20jobs','sWawN':function(_0x5a247c,_0x2243fb){return _0x5a247c(_0x2243fb);},'vyxpk':function(_0x37d7be){return _0x37d7be();},'Lgadl':_0x499739(0x18b),'zsTUX':'job_triggered_via_api','KLIYg':'job_trigger_error','QYwTI':'Error\x20triggering\x20job','uBbLb':_0x499739(0x174),'kSJYC':'api-cancel','RWiJN':function(_0x4ec7b5,_0x252c59){return _0x4ec7b5===_0x252c59;},'bVtAe':_0x499739(0x1a7),'OmYCc':_0x499739(0x17c),'nFoCY':_0x499739(0x181),'pDXaa':function(_0x9646a8,_0x3ea5d4,_0x102436){return _0x9646a8(_0x3ea5d4,_0x102436);},'UBfTN':function(_0x5675aa,_0x1d2a3b){return _0x5675aa-_0x1d2a3b;},'nADhx':function(_0x3cf5bd,_0x48564a){return _0x3cf5bd-_0x48564a;},'HnBAH':'completed','OGyeS':'failed','WAoKC':_0x499739(0x16e),'NFGon':'Error\x20getting\x20job\x20history','Nmgql':function(_0x4e362c){return _0x4e362c();},'nxPyh':'degraded','FyvLf':'disconnected'},_0x2b3f6a=express['Router']();return _0x30fb9c&&Object['keys'](_0x30fb9c)[_0x499739(0x15a)]>0x0&&(cachedJobConfigs=_0x30fb9c),_0x2b3f6a['get']('/list',(_0x5ab192,_0x56b686)=>{const _0x3dcf71=_0x499739;try{if(cachedJobConfigs){const _0x5ca111=Object[_0x3dcf71(0x167)](cachedJobConfigs)[_0x3dcf71(0x19a)](_0x18a7ad=>({'name':_0x18a7ad[_0x3dcf71(0x169)],'description':_0x18a7ad[_0x3dcf71(0x157)]||'','type':_0x18a7ad[_0x3dcf71(0x17f)],'schedule':_0x18a7ad[_0x3dcf71(0x153)],'handler':_0x18a7ad[_0x3dcf71(0x149)],'enabled':_0x18a7ad['enabled']!==![],'queue':_0x18a7ad['queue']||_0x3dcf71(0x150),'timeout':_0x18a7ad['timeout']||0x7530,'retry':_0x18a7ad[_0x3dcf71(0x1a0)]||{'maxAttempts':0x3,'backoff':'exponential','initialDelay':0x1388},'metadata':_0x18a7ad[_0x3dcf71(0x1ab)]||{}}));return _0x56b686['json']({'success':!![],'data':_0x5ca111,'total':_0x5ca111['length']});}const _0x11314f=require('fs'),_0x4dcae6=_0x471e81[_0x3dcf71(0x17d)](require,_0x471e81['pPsCT']),_0xac8ce4=_0x4dcae6['join'](process['cwd'](),_0x3dcf71(0x187),_0x471e81['oMCAR']);if(!_0x11314f['existsSync'](_0xac8ce4))return _0x56b686[_0x3dcf71(0x166)]({'success':!![],'data':[],'total':0x0});const _0xc13674=_0x11314f[_0x3dcf71(0x190)](_0xac8ce4)[_0x3dcf71(0x17a)](_0x596025=>_0x596025[_0x3dcf71(0x19e)](_0x3dcf71(0x14d))),_0x2486d8=[];for(const _0x3f40f9 of _0xc13674){try{const _0x27d7f2=_0x11314f['readFileSync'](_0x4dcae6[_0x3dcf71(0x191)](_0xac8ce4,_0x3f40f9),_0x3dcf71(0x18e)),_0x593ad2=JSON[_0x3dcf71(0x175)](_0x27d7f2);_0x2486d8['push']({'name':_0x593ad2['name'],'description':_0x593ad2[_0x3dcf71(0x157)]||'','type':_0x593ad2[_0x3dcf71(0x17f)],'schedule':_0x593ad2[_0x3dcf71(0x153)],'handler':_0x593ad2['handler'],'enabled':_0x593ad2['enabled']!==![],'queue':_0x593ad2['queue']||'default','timeout':_0x593ad2[_0x3dcf71(0x15e)]||0x7530,'retry':_0x593ad2[_0x3dcf71(0x1a0)]||{},'metadata':_0x593ad2[_0x3dcf71(0x1ab)]||{}});}catch(_0x5b0e8e){}}_0x56b686[_0x3dcf71(0x166)]({'success':!![],'data':_0x2486d8,'total':_0x2486d8[_0x3dcf71(0x15a)]});}catch(_0x25332f){logger['error']({'event':_0x471e81[_0x3dcf71(0x193)],'error':_0x25332f['message']},_0x471e81[_0x3dcf71(0x163)]),_0x56b686['status'](0x1f4)[_0x3dcf71(0x166)]({'success':![],'error':_0x25332f[_0x3dcf71(0x186)]});}}),_0x2b3f6a[_0x499739(0x18c)](_0x499739(0x162),async(_0x29b61d,_0x5cee69)=>{const _0x2d4aea=_0x499739;try{const {jobId:_0x4f0f78}=_0x29b61d['params'],_0x40be0e=getReadQueues();for(const _0x5938eb of Object[_0x2d4aea(0x167)](_0x40be0e)){const _0x193f19=await _0x5938eb[_0x2d4aea(0x18d)](_0x4f0f78);if(_0x193f19){const _0x501e05=await _0x193f19['getState']();return _0x5cee69[_0x2d4aea(0x166)]({'success':!![],'data':{'jobId':_0x193f19['id'],'name':_0x193f19[_0x2d4aea(0x169)],'state':_0x501e05,'progress':_0x193f19[_0x2d4aea(0x172)],'attemptsMade':_0x193f19[_0x2d4aea(0x143)],'failedReason':_0x193f19[_0x2d4aea(0x14e)],'returnvalue':_0x193f19['returnvalue'],'data':_0x193f19['data'],'timestamps':{'created':_0x193f19['timestamp'],'started':_0x193f19[_0x2d4aea(0x14b)],'completed':_0x193f19[_0x2d4aea(0x148)]}}});}}_0x5cee69['status'](0x194)[_0x2d4aea(0x166)]({'success':![],'error':_0x2d4aea(0x145)+_0x4f0f78+_0x2d4aea(0x176)});}catch(_0x56d432){logger[_0x2d4aea(0x1a2)]({'event':'job_status_error','error':_0x56d432['message']},_0x2d4aea(0x161)),_0x5cee69[_0x2d4aea(0x1a6)](0x1f4)[_0x2d4aea(0x166)]({'success':![],'error':_0x56d432['message']});}}),_0x2b3f6a[_0x499739(0x1a5)]('/trigger/:jobName',async(_0x8337bd,_0x57c9d1)=>{const _0x20b166=_0x499739;try{const {jobName:_0x2e18e5}=_0x8337bd['params'],_0x430fa0=_0x8337bd['body']||{};let _0x55f8e3=cachedJobConfigs?.[_0x2e18e5];if(!_0x55f8e3){const _0x2dc3bd=_0x471e81['JWwHa'](require,'fs'),_0x531e64=_0x471e81[_0x20b166(0x16c)](require,_0x471e81[_0x20b166(0x14c)]),_0x438650=_0x531e64[_0x20b166(0x191)](process[_0x20b166(0x180)](),'payload',_0x471e81['oMCAR']),_0x3eb9be=_0x2dc3bd[_0x20b166(0x184)](_0x438650)?_0x2dc3bd[_0x20b166(0x190)](_0x438650)['filter'](_0x26bfe7=>_0x26bfe7['endsWith']('.json')):[];for(const _0x32a2cd of _0x3eb9be){try{const _0x2245c0=_0x2dc3bd[_0x20b166(0x173)](_0x531e64['join'](_0x438650,_0x32a2cd),_0x20b166(0x18e)),_0x3c8e44=JSON['parse'](_0x2245c0);if(_0x3c8e44[_0x20b166(0x169)]===_0x2e18e5){_0x55f8e3=_0x3c8e44;break;}}catch(_0x5a80a7){}}}if(!_0x55f8e3)return _0x57c9d1['status'](0x194)['json']({'success':![],'error':'Job\x20\x22'+_0x2e18e5+'\x22\x20tidak\x20ditemukan\x20di\x20konfigurasi'});const _0x53682c=_0x471e81[_0x20b166(0x182)](getReadQueues),_0x5438dd=_0x53682c[_0x55f8e3[_0x20b166(0x185)]||'default'],_0x35a9f5=await _0x5438dd[_0x20b166(0x170)](_0x2e18e5,{..._0x430fa0,'handler':_0x55f8e3[_0x20b166(0x149)],'triggeredBy':_0x20b166(0x165)},{'attempts':_0x55f8e3['retry']?.[_0x20b166(0x19b)]||0x3,'backoff':{'type':_0x55f8e3[_0x20b166(0x1a0)]?.[_0x20b166(0x198)]||_0x471e81['Lgadl'],'delay':_0x55f8e3['retry']?.['initialDelay']||0x1388},'timeout':_0x55f8e3['timeout']||0x7530});logger[_0x20b166(0x160)]({'event':_0x471e81[_0x20b166(0x196)],'jobId':_0x35a9f5['id'],'name':_0x2e18e5},_0x20b166(0x16b)+_0x2e18e5+'\x20(id:\x20'+_0x35a9f5['id']+')'),_0x57c9d1['json']({'success':!![],'jobId':_0x35a9f5['id'],'message':_0x20b166(0x145)+_0x2e18e5+_0x20b166(0x18f)});}catch(_0x5b7293){logger[_0x20b166(0x1a2)]({'event':_0x471e81[_0x20b166(0x192)],'error':_0x5b7293[_0x20b166(0x186)]},_0x471e81['QYwTI']),_0x57c9d1['status'](0x1f4)['json']({'success':![],'error':_0x5b7293[_0x20b166(0x186)]});}}),_0x2b3f6a[_0x499739(0x1a5)](_0x499739(0x188),async(_0x5a8c96,_0x386ad9)=>{const _0x154d9f=_0x499739;try{const {jobId:_0x339521}=_0x5a8c96[_0x154d9f(0x17e)],_0x1cb52e=getReadQueues();for(const _0x2943a6 of Object[_0x154d9f(0x167)](_0x1cb52e)){const _0x2b823b=await _0x2943a6['getJob'](_0x339521);if(_0x2b823b){const _0x3f587a=await _0x2b823b['getState']();if(_0x3f587a===_0x471e81['uBbLb'])return await _0x2b823b[_0x154d9f(0x189)](new Error('Job\x20cancelled\x20via\x20API'),_0x471e81[_0x154d9f(0x1a3)],!![]),_0x386ad9['json']({'success':!![],'message':'Job\x20'+_0x339521+'\x20cancelled\x20(was\x20active)'});if(_0x471e81['RWiJN'](_0x3f587a,_0x471e81[_0x154d9f(0x142)])||_0x3f587a===_0x471e81['OmYCc'])return await _0x2b823b['remove'](),_0x386ad9[_0x154d9f(0x166)]({'success':!![],'message':_0x154d9f(0x145)+_0x339521+_0x154d9f(0x19c)+_0x3f587a+')'});return _0x386ad9[_0x154d9f(0x166)]({'success':![],'message':'Job\x20'+_0x339521+_0x154d9f(0x16a)+_0x3f587a+')'});}}_0x386ad9[_0x154d9f(0x1a6)](0x194)[_0x154d9f(0x166)]({'success':![],'error':'Job\x20'+_0x339521+_0x154d9f(0x176)});}catch(_0x252256){logger['error']({'event':'job_cancel_error','error':_0x252256[_0x154d9f(0x186)]},_0x471e81['nFoCY']),_0x386ad9[_0x154d9f(0x1a6)](0x1f4)[_0x154d9f(0x166)]({'success':![],'error':_0x252256[_0x154d9f(0x186)]});}}),_0x2b3f6a['get']('/history',async(_0x171ecd,_0x364a9a)=>{const _0x57cad4=_0x499739;try{const _0xa297e6=_0x471e81['pDXaa'](parseInt,_0x171ecd['query']['page'],0xa)||0x1,_0x3db5bf=Math['min'](_0x471e81[_0x57cad4(0x154)](parseInt,_0x171ecd[_0x57cad4(0x194)]['limit'],0xa)||0x14,0x64),_0x39f52c=_0x471e81[_0x57cad4(0x178)](_0xa297e6,0x1)*_0x3db5bf,_0x16fd2c=_0x471e81['nADhx'](_0x39f52c+_0x3db5bf,0x1),_0x59239c=_0x471e81['vyxpk'](getReadQueues),_0x1023cf=[];for(const [_0x213b88,_0x3301a3]of Object[_0x57cad4(0x15d)](_0x59239c)){const _0x2d6430=await _0x3301a3['getJobs']([_0x471e81[_0x57cad4(0x1aa)]],_0x39f52c,_0x16fd2c),_0x2222fd=await _0x3301a3[_0x57cad4(0x16f)]([_0x471e81['OGyeS']],_0x39f52c,_0x16fd2c);for(const _0xc3c7b3 of[..._0x2d6430,..._0x2222fd]){const _0x922187=await _0xc3c7b3[_0x57cad4(0x14a)]();_0x1023cf['push']({'jobId':_0xc3c7b3['id'],'name':_0xc3c7b3['name'],'state':_0x922187,'queue':_0x213b88,'attemptsMade':_0xc3c7b3['attemptsMade'],'failedReason':_0xc3c7b3[_0x57cad4(0x14e)],'returnvalue':_0xc3c7b3['returnvalue'],'timestamps':{'created':_0xc3c7b3['timestamp'],'started':_0xc3c7b3['processedOn'],'completed':_0xc3c7b3['finishedOn']}});}}_0x1023cf[_0x57cad4(0x19f)]((_0x12415e,_0x28a5ed)=>(_0x28a5ed['timestamps'][_0x57cad4(0x156)]||0x0)-(_0x12415e[_0x57cad4(0x13e)][_0x57cad4(0x156)]||0x0)),_0x364a9a['json']({'success':!![],'data':_0x1023cf['slice'](0x0,_0x3db5bf),'total':_0x1023cf[_0x57cad4(0x15a)],'page':_0xa297e6,'limit':_0x3db5bf});}catch(_0x82277b){logger['error']({'event':_0x471e81['WAoKC'],'error':_0x82277b['message']},_0x471e81[_0x57cad4(0x144)]),_0x364a9a['status'](0x1f4)[_0x57cad4(0x166)]({'success':![],'error':_0x82277b[_0x57cad4(0x186)]});}}),_0x2b3f6a['get']('/queues',async(_0x366912,_0x9bb344)=>{const _0x322c1f=_0x499739;try{const _0x360779=_0x471e81[_0x322c1f(0x1a9)](getReadQueues),_0x564771={};for(const [_0x40fc2d,_0x424f05]of Object['entries'](_0x360779)){try{const _0x3a8f65=await _0x424f05['getJobCounts'](_0x322c1f(0x174),_0x322c1f(0x152),_0x471e81[_0x322c1f(0x1a8)],_0x471e81[_0x322c1f(0x151)],_0x322c1f(0x179),_0x471e81['bVtAe']);_0x564771[_0x40fc2d]=_0x3a8f65;}catch(_0x4d6b31){_0x564771[_0x40fc2d]={'error':_0x4d6b31[_0x322c1f(0x186)]};}}_0x9bb344['json']({'success':!![],'data':_0x564771});}catch(_0x4a24aa){logger['error']({'event':_0x322c1f(0x183),'error':_0x4a24aa['message']},'Error\x20getting\x20queue\x20stats'),_0x9bb344[_0x322c1f(0x1a6)](0x1f4)[_0x322c1f(0x166)]({'success':![],'error':_0x4a24aa['message']});}}),_0x2b3f6a['get'](_0x499739(0x164),async(_0x1a3ff6,_0x18a39f)=>{const _0x353806=_0x499739;try{const _0x9a367b=getReadQueues(),_0x1c4d2d={};let _0x18a891=![];for(const [_0x3996d7,_0x2257bb]of Object[_0x353806(0x15d)](_0x9a367b)){try{const _0x3b2264=await _0x2257bb['getJobCounts'](_0x353806(0x174),'waiting',_0x471e81[_0x353806(0x151)]);_0x1c4d2d[_0x3996d7]=_0x3b2264,_0x18a891=!![];}catch(_0x5a47df){_0x1c4d2d[_0x3996d7]={'error':_0x5a47df['message']};}}let _0x556ca4=0x0;cachedJobConfigs&&(_0x556ca4=Object['keys'](cachedJobConfigs)['length']),_0x18a39f['json']({'success':!![],'data':{'status':_0x18a891?'healthy':_0x471e81[_0x353806(0x17b)],'redis':_0x18a891?_0x353806(0x140):_0x471e81['FyvLf'],'registeredJobs':_0x556ca4,'queues':_0x1c4d2d}});}catch(_0x229855){_0x18a39f['status'](0x1f7)[_0x353806(0x166)]({'success':![],'data':{'status':'unhealthy','error':_0x229855['message']}});}}),_0x2b3f6a;}module[a0_0x275eec(0x19d)]=createJobRoutes;
1
+ const a0_0x16a0b3=a0_0x2c93;(function(_0x17d666,_0x5b7426){const _0x39a090=a0_0x2c93,_0x4a66ea=_0x17d666();while(!![]){try{const _0x1bbc45=-parseInt(_0x39a090(0x1bc))/0x1*(parseInt(_0x39a090(0x176))/0x2)+-parseInt(_0x39a090(0x185))/0x3*(parseInt(_0x39a090(0x1b0))/0x4)+-parseInt(_0x39a090(0x1cf))/0x5+parseInt(_0x39a090(0x18f))/0x6+-parseInt(_0x39a090(0x199))/0x7+parseInt(_0x39a090(0x175))/0x8+parseInt(_0x39a090(0x1a2))/0x9;if(_0x1bbc45===_0x5b7426)break;else _0x4a66ea['push'](_0x4a66ea['shift']());}catch(_0x3dfedc){_0x4a66ea['push'](_0x4a66ea['shift']());}}}(a0_0x102b,0x7f2c2));const express=require('express'),{Queue}=require(a0_0x16a0b3(0x198)),Redis=require(a0_0x16a0b3(0x1a0)),{logger}=require('../../utils/logger');let readConnection=null,readQueues=null,cachedJobConfigs=null;function a0_0x102b(){const _0x2a572c=['shnxzMq','rxjYB3iGDhjPz2DLCMLUzYbQB2i','AgfUzgXLCG','qMzXA3m','l2nHBMnLBc86AM9Iswq','zxjYB3i','nZK4mgDhA2Xzra','Cgf0Aa','y3DK','rxjYB3iGy2fUy2vSBgLUzYbQB2i','vMn6rKK','z2v0sM9I','q0jVEMu','CMvHzgrPCLn5BMm','ChjVy2vZC2vKt24','A2TNv0i','Bg9JywXOB3n0','z2v0u3rHDgu','mta1mwrZvenKrq','y29UBMvJDgvK','wwn2A1q','DhLWzq','AM9Ix2nHBMnLBf9LCNjVCG','zMfPBgvK','yxbP','CxvLCNK','yKPLAeC','Cgf1C2vK','A2v5CW','z2v0sM9Iq291BNrZ','Bfb2zKe','CxvLDwu','AM9Ix3rYAwDNzxjFzxjYB3i','CgfYC2u','Aw5PDgLHBerLBgf5','l2HPC3rVCNK','zMLUAxnOzwrpBG','mZmZodb6zLzntxu','zMfPBgvKuMvHC29U','rxjYB3iGz2v0DgLUzYbXDwv1zsbZDgf0CW','Cgf5Bg9Hza','AM9PBG','vLLWrM8','DgLTzxn0yw1W','uM91DgvY','ANnVBG','z2XwEvO','A3Pqz3m','yM9KEq','vKD3Dhu','z2v0','ueTgy2W','CMv0DxjUDMfSDwu','weXzrgG','BgvUz3rO','nZy2ntqWmejHrgfOtW','mtC0nLPKy3HHtW','AM9Ix2XPC3rFzxjYB3i','u2LrDwG','CgfYyw1Z','sM9Iia','rxjYB3iGBgLZDgLUzYbQB2jZ','BwvZC2fNzq','D2fPDgLUzW','EK1Rs2K','igjLCMHHC2LSigrPlxrYAwDNzxi','swDdtui','sK9cx1jfreLtx1bsruzjwa','u1DJDLC','CMvHzezPBgvtEw5J','zw52','ndiWzuffq3Hc','CMv0CNK','DNvAyMG','BgLTAxq','CxbbBee','sM9IihrYAwDNzxjLzcb2AweGqvbjoIa','Cg9ZDa','DgLTzxn0yw1WCW','CMvTB3zL','l3n0yxr1CY86AM9Iswq','ntmWmdm2nhzRBhPurG','zw50CMLLCW','zgvZy3jPChrPB24','BMfTzq','y3jLyxrLza','AM9Ix3jVDxrLC19YzwrPC19LCNjVCG','weTNr3O','ihrPzgfRigrPDgvTDwTHBG','Bw92zvrVrMfPBgvK','yNvSBg1X','mJG4otCYnKLjD3DnCa','DMfSDwvZ','D0rLEwi','ywn0AxzL','zxHWB25LBNrPywW','CKn1zwS','Bwv0ywrHDge','Aw9YzwrPCW','qvvMCKS','mJy2mdGXneXZBKfWDG','yMfJA29MzG','sM9Iici','ChvZAa','zMLSDgvY','CK9psg8','C3rHDhvZ','AM9ICW'];a0_0x102b=function(){return _0x2a572c;};return a0_0x102b();}const QUEUE_NAMES={'high-priority':'high','default':'default','low-priority':'low'};function getReadQueues(){const _0x430915=a0_0x16a0b3,_0x5805b3={'zMkKi':'rf:job','HsWfd':function(_0x187858,_0x220d35,_0x16766c){return _0x187858(_0x220d35,_0x16766c);},'FGjlc':'error'};if(readQueues)return readQueues;const _0x1b4e5c=process[_0x430915(0x184)][_0x430915(0x181)]||_0x5805b3[_0x430915(0x17e)];readConnection=new Redis({'host':process[_0x430915(0x184)]['REDIS_HOST']||_0x430915(0x1ba),'port':parseInt(process['env']['REDIS_PORT'],0xa)||0x18ec,'password':process['env']['REDIS_PASSWORD']||undefined,'db':_0x5805b3[_0x430915(0x1aa)](parseInt,process['env']['REDIS_DB'],0xa)||0x0,'maxRetriesPerRequest':null}),readConnection['on'](_0x5805b3['FGjlc'],_0x3778f8=>{const _0x2b9467=_0x430915;logger['error']({'event':_0x2b9467(0x194),'error':_0x3778f8[_0x2b9467(0x17c)]},'Job\x20Routes\x20Redis\x20error:\x20'+_0x3778f8[_0x2b9467(0x17c)]);}),readQueues={};for(const [_0x39965d,_0x9d2f6b]of Object[_0x430915(0x190)](QUEUE_NAMES)){readQueues[_0x39965d]=new Queue(_0x9d2f6b,{'connection':readConnection,'prefix':_0x1b4e5c});}return readQueues;}function createJobRoutes(_0x5a8fac){const _0x7c722a=a0_0x16a0b3,_0x35f364={'QosvL':function(_0x497c93,_0x51b0a5){return _0x497c93(_0x51b0a5);},'bJehG':function(_0x22fc3e,_0x44ca7f){return _0x22fc3e(_0x44ca7f);},'SiQuh':_0x7c722a(0x1b1),'mshZn':_0x7c722a(0x1a9),'rOOHo':'utf8','VczFI':function(_0x57bcf5,_0xf4bdef){return _0x57bcf5!==_0xf4bdef;},'lPvfA':_0x7c722a(0x177),'XLYDh':function(_0x4d0c88){return _0x4d0c88();},'oxYBv':'job_status_error','Olxvn':function(_0x47f593,_0x270d0d){return _0x47f593(_0x270d0d);},'vWtDy':function(_0x2f5fd5,_0xcee705){return _0x2f5fd5(_0xcee705);},'kHkQN':_0x7c722a(0x1d2),'TwZuE':function(_0x40287d,_0x164305){return _0x40287d===_0x164305;},'Bfqks':'default','rvoSi':_0x7c722a(0x1c2),'PKFcl':'exponential','IgCMB':function(_0x3034cd){return _0x3034cd();},'CBoze':'Job\x20cancelled\x20via\x20API','MxPYl':'waiting','VYpFo':function(_0x2a9434,_0x33cd8f){return _0x2a9434===_0x33cd8f;},'qpAlA':'delayed','AxBhG':_0x7c722a(0x1c0),'vuZbh':_0x7c722a(0x1b3),'VGwtu':function(_0x1e1a64,_0x3543ab){return _0x1e1a64-_0x3543ab;},'XKgGz':function(_0x59c936,_0x2cab49){return _0x59c936-_0x2cab49;},'AUfrK':function(_0x34c2c0,_0x22d0e3){return _0x34c2c0+_0x22d0e3;},'kzPgs':_0x7c722a(0x1c1),'kkgWB':_0x7c722a(0x1c5),'rCuek':'job_queues_error','iukEm':'healthy','SWcvW':_0x7c722a(0x1bd),'YcvkT':'disconnected','glVyZ':_0x7c722a(0x18e),'wJVuD':'/trigger/:jobName','wDeyb':'/queues','YibEm':'/health'},_0x261cba=express[_0x7c722a(0x1d6)]();return _0x5a8fac&&Object[_0x7c722a(0x1c6)](_0x5a8fac)[_0x7c722a(0x174)]>0x0&&(cachedJobConfigs=_0x5a8fac),_0x261cba[_0x7c722a(0x170)]('/list',(_0x37563a,_0x169082)=>{const _0x3854cc=_0x7c722a;try{if(cachedJobConfigs){const _0x35f58b=Object[_0x3854cc(0x19a)](cachedJobConfigs)['map'](_0x530c70=>({'name':_0x530c70[_0x3854cc(0x192)],'description':_0x530c70[_0x3854cc(0x191)]||'','type':_0x530c70[_0x3854cc(0x1bf)],'schedule':_0x530c70['schedule'],'handler':_0x530c70[_0x3854cc(0x1ac)],'enabled':_0x530c70['enabled']!==![],'queue':_0x530c70['queue']||'default','timeout':_0x530c70['timeout']||0x7530,'retry':_0x530c70[_0x3854cc(0x186)]||{'maxAttempts':0x3,'backoff':_0x3854cc(0x19d),'initialDelay':0x1388},'metadata':_0x530c70['metadata']||{}}));return _0x169082[_0x3854cc(0x1d7)]({'success':!![],'data':_0x35f58b,'total':_0x35f58b[_0x3854cc(0x174)]});}const _0x216895=_0x35f364['QosvL'](require,'fs'),_0x1d7370=_0x35f364[_0x3854cc(0x1c4)](require,_0x35f364[_0x3854cc(0x178)]),_0x462892=_0x1d7370[_0x3854cc(0x1d3)](process['cwd'](),'payload',_0x35f364['mshZn']);if(!_0x216895['existsSync'](_0x462892))return _0x169082['json']({'success':!![],'data':[],'total':0x0});const _0x133114=_0x216895[_0x3854cc(0x1b7)](_0x462892)[_0x3854cc(0x1a6)](_0x5dcfb6=>_0x5dcfb6['endsWith']('.json')),_0x1db437=[];for(const _0x327f59 of _0x133114){try{const _0x448141=_0x216895[_0x3854cc(0x183)](_0x1d7370['join'](_0x462892,_0x327f59),_0x35f364[_0x3854cc(0x1a7)]),_0x2371eb=JSON[_0x3854cc(0x1cb)](_0x448141);_0x1db437[_0x3854cc(0x1a5)]({'name':_0x2371eb['name'],'description':_0x2371eb['description']||'','type':_0x2371eb['type'],'schedule':_0x2371eb['schedule'],'handler':_0x2371eb[_0x3854cc(0x1ac)],'enabled':_0x35f364[_0x3854cc(0x1b4)](_0x2371eb['enabled'],![]),'queue':_0x2371eb[_0x3854cc(0x1c9)]||'default','timeout':_0x2371eb['timeout']||0x7530,'retry':_0x2371eb['retry']||{},'metadata':_0x2371eb[_0x3854cc(0x19f)]||{}});}catch(_0x1d5e89){}}_0x169082['json']({'success':!![],'data':_0x1db437,'total':_0x1db437['length']});}catch(_0x167805){logger[_0x3854cc(0x1af)]({'event':_0x35f364[_0x3854cc(0x1c8)],'error':_0x167805[_0x3854cc(0x17c)]},_0x3854cc(0x17b)),_0x169082['status'](0x1f4)[_0x3854cc(0x1d7)]({'success':![],'error':_0x167805[_0x3854cc(0x17c)]});}}),_0x261cba[_0x7c722a(0x170)](_0x35f364[_0x7c722a(0x1d8)],async(_0x2ccd3e,_0x17fd06)=>{const _0x1649c5=_0x7c722a;try{const {jobId:_0x3d358d}=_0x2ccd3e['params'],_0xa9fd41=_0x35f364[_0x1649c5(0x173)](getReadQueues);for(const _0x52f40e of Object['values'](_0xa9fd41)){const _0x335f7e=await _0x52f40e['getJob'](_0x3d358d);if(_0x335f7e){const _0x238cac=await _0x335f7e['getState']();return _0x17fd06[_0x1649c5(0x1d7)]({'success':!![],'data':{'jobId':_0x335f7e['id'],'name':_0x335f7e['name'],'state':_0x238cac,'progress':_0x335f7e['progress'],'attemptsMade':_0x335f7e['attemptsMade'],'failedReason':_0x335f7e['failedReason'],'returnvalue':_0x335f7e[_0x1649c5(0x172)],'data':_0x335f7e['data'],'timestamps':{'created':_0x335f7e['timestamp'],'started':_0x335f7e['processedOn'],'completed':_0x335f7e['finishedOn']}}});}}_0x17fd06[_0x1649c5(0x1a8)](0x194)[_0x1649c5(0x1d7)]({'success':![],'error':_0x1649c5(0x17a)+_0x3d358d+_0x1649c5(0x196)});}catch(_0x4a92e4){logger[_0x1649c5(0x1af)]({'event':_0x35f364['oxYBv'],'error':_0x4a92e4[_0x1649c5(0x17c)]},'Error\x20getting\x20job\x20status'),_0x17fd06['status'](0x1f4)['json']({'success':![],'error':_0x4a92e4['message']});}}),_0x261cba[_0x7c722a(0x18b)](_0x35f364['wJVuD'],async(_0x49df32,_0x458180)=>{const _0x44de5a=_0x7c722a;try{const {jobName:_0x6f98ec}=_0x49df32[_0x44de5a(0x179)],_0x2191ac=_0x49df32[_0x44de5a(0x1da)]||{};let _0x40d646=cachedJobConfigs?.[_0x6f98ec];if(!_0x40d646){const _0x221f6e=_0x35f364['Olxvn'](require,'fs'),_0x89bd58=_0x35f364['vWtDy'](require,_0x44de5a(0x1b1)),_0x4f1ed3=_0x89bd58['join'](process[_0x44de5a(0x1b2)](),_0x35f364['kHkQN'],'jobs'),_0x104643=_0x221f6e['existsSync'](_0x4f1ed3)?_0x221f6e['readdirSync'](_0x4f1ed3)['filter'](_0x129d9e=>_0x129d9e['endsWith']('.json')):[];for(const _0xf7bc50 of _0x104643){try{const _0x474e64=_0x221f6e['readFileSync'](_0x89bd58[_0x44de5a(0x1d3)](_0x4f1ed3,_0xf7bc50),_0x35f364['rOOHo']),_0x4468e2=JSON['parse'](_0x474e64);if(_0x35f364['TwZuE'](_0x4468e2[_0x44de5a(0x192)],_0x6f98ec)){_0x40d646=_0x4468e2;break;}}catch(_0x2fafea){}}}if(!_0x40d646)return _0x458180[_0x44de5a(0x1a8)](0x194)[_0x44de5a(0x1d7)]({'success':![],'error':_0x44de5a(0x1a4)+_0x6f98ec+'\x22\x20tidak\x20ditemukan\x20di\x20konfigurasi'});const _0xcaaa94=getReadQueues(),_0x41a890=_0xcaaa94[_0x40d646[_0x44de5a(0x1c9)]||_0x35f364[_0x44de5a(0x1ad)]],_0x459ea9=await _0x41a890['add'](_0x6f98ec,{..._0x2191ac,'handler':_0x40d646[_0x44de5a(0x1ac)],'triggeredBy':_0x35f364['rvoSi']},{'attempts':_0x40d646['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x40d646['retry']?.[_0x44de5a(0x1a3)]||_0x35f364[_0x44de5a(0x171)],'delay':_0x40d646['retry']?.[_0x44de5a(0x1cc)]||0x1388},'timeout':_0x40d646['timeout']||0x7530});logger['info']({'event':'job_triggered_via_api','jobId':_0x459ea9['id'],'name':_0x6f98ec},_0x44de5a(0x18a)+_0x6f98ec+'\x20(id:\x20'+_0x459ea9['id']+')'),_0x458180['json']({'success':!![],'jobId':_0x459ea9['id'],'message':_0x44de5a(0x17a)+_0x6f98ec+_0x44de5a(0x17f)});}catch(_0x3cdcb6){logger['error']({'event':_0x44de5a(0x1ca),'error':_0x3cdcb6['message']},_0x44de5a(0x1ab)),_0x458180[_0x44de5a(0x1a8)](0x1f4)[_0x44de5a(0x1d7)]({'success':![],'error':_0x3cdcb6['message']});}}),_0x261cba[_0x7c722a(0x18b)](_0x7c722a(0x1ae),async(_0x180992,_0x1b0429)=>{const _0x48acd2=_0x7c722a;try{const {jobId:_0x22e216}=_0x180992['params'],_0x404338=_0x35f364[_0x48acd2(0x180)](getReadQueues);for(const _0x29a1e2 of Object['values'](_0x404338)){const _0x39a38e=await _0x29a1e2[_0x48acd2(0x1b5)](_0x22e216);if(_0x39a38e){const _0x23a4db=await _0x39a38e[_0x48acd2(0x1bb)]();if(_0x23a4db==='active')return await _0x39a38e[_0x48acd2(0x197)](new Error(_0x35f364[_0x48acd2(0x1b6)]),'api-cancel',!![]),_0x1b0429[_0x48acd2(0x1d7)]({'success':!![],'message':_0x48acd2(0x17a)+_0x22e216+'\x20cancelled\x20(was\x20active)'});if(_0x23a4db===_0x35f364['MxPYl']||_0x35f364[_0x48acd2(0x1d4)](_0x23a4db,_0x35f364[_0x48acd2(0x189)]))return await _0x39a38e[_0x48acd2(0x18d)](),_0x1b0429[_0x48acd2(0x1d7)]({'success':!![],'message':'Job\x20'+_0x22e216+'\x20removed\x20(was\x20'+_0x23a4db+')'});return _0x1b0429['json']({'success':![],'message':'Job\x20'+_0x22e216+'\x20tidak\x20bisa\x20di-cancel\x20(state:\x20'+_0x23a4db+')'});}}_0x1b0429['status'](0x194)[_0x48acd2(0x1d7)]({'success':![],'error':'Job\x20'+_0x22e216+_0x48acd2(0x196)});}catch(_0x24dbaa){logger[_0x48acd2(0x1af)]({'event':_0x35f364['AxBhG'],'error':_0x24dbaa[_0x48acd2(0x17c)]},_0x35f364[_0x48acd2(0x187)]),_0x1b0429['status'](0x1f4)['json']({'success':![],'error':_0x24dbaa['message']});}}),_0x261cba['get'](_0x7c722a(0x1cd),async(_0x142ba4,_0x53b6b1)=>{const _0x123839=_0x7c722a;try{const _0x2f813c=parseInt(_0x142ba4['query']['page'],0xa)||0x1,_0x4c29aa=Math['min'](parseInt(_0x142ba4[_0x123839(0x1c3)][_0x123839(0x188)],0xa)||0x14,0x64),_0x1a1f89=_0x35f364[_0x123839(0x1db)](_0x2f813c,0x1)*_0x4c29aa,_0x234c47=_0x35f364[_0x123839(0x195)](_0x35f364[_0x123839(0x1a1)](_0x1a1f89,_0x4c29aa),0x1),_0x55a42b=getReadQueues(),_0x53a035=[];for(const [_0x37a7ec,_0x530172]of Object[_0x123839(0x190)](_0x55a42b)){const _0x2ab4a5=await _0x530172['getJobs'](['completed'],_0x1a1f89,_0x234c47),_0xed6bf5=await _0x530172['getJobs']([_0x35f364['kzPgs']],_0x1a1f89,_0x234c47);for(const _0x5aa6d8 of[..._0x2ab4a5,..._0xed6bf5]){const _0xe33791=await _0x5aa6d8['getState']();_0x53a035[_0x123839(0x1a5)]({'jobId':_0x5aa6d8['id'],'name':_0x5aa6d8['name'],'state':_0xe33791,'queue':_0x37a7ec,'attemptsMade':_0x5aa6d8['attemptsMade'],'failedReason':_0x5aa6d8[_0x123839(0x1d0)],'returnvalue':_0x5aa6d8['returnvalue'],'timestamps':{'created':_0x5aa6d8[_0x123839(0x1d5)],'started':_0x5aa6d8[_0x123839(0x1b8)],'completed':_0x5aa6d8[_0x123839(0x1ce)]}});}}_0x53a035['sort']((_0x7161fe,_0x183ad3)=>(_0x183ad3[_0x123839(0x18c)]['created']||0x0)-(_0x7161fe['timestamps'][_0x123839(0x193)]||0x0)),_0x53b6b1[_0x123839(0x1d7)]({'success':!![],'data':_0x53a035['slice'](0x0,_0x4c29aa),'total':_0x53a035['length'],'page':_0x2f813c,'limit':_0x4c29aa});}catch(_0x32db89){logger['error']({'event':'job_history_error','error':_0x32db89[_0x123839(0x17c)]},'Error\x20getting\x20job\x20history'),_0x53b6b1[_0x123839(0x1a8)](0x1f4)['json']({'success':![],'error':_0x32db89[_0x123839(0x17c)]});}}),_0x261cba[_0x7c722a(0x170)](_0x35f364[_0x7c722a(0x19b)],async(_0xbaaee2,_0xcc09eb)=>{const _0x5319c0=_0x7c722a;try{const _0x554d90=getReadQueues(),_0x4ebcf1={};for(const [_0x18c94f,_0x23dc74]of Object['entries'](_0x554d90)){try{const _0x5f216a=await _0x23dc74[_0x5319c0(0x1c7)](_0x5319c0(0x19c),'completed',_0x35f364['qpAlA'],_0x35f364[_0x5319c0(0x1d9)],_0x35f364[_0x5319c0(0x1b9)],_0x35f364['MxPYl']);_0x4ebcf1[_0x18c94f]=_0x5f216a;}catch(_0x179ea7){_0x4ebcf1[_0x18c94f]={'error':_0x179ea7[_0x5319c0(0x17c)]};}}_0xcc09eb[_0x5319c0(0x1d7)]({'success':!![],'data':_0x4ebcf1});}catch(_0x4046ae){logger[_0x5319c0(0x1af)]({'event':_0x35f364[_0x5319c0(0x19e)],'error':_0x4046ae['message']},_0x5319c0(0x1d1)),_0xcc09eb[_0x5319c0(0x1a8)](0x1f4)[_0x5319c0(0x1d7)]({'success':![],'error':_0x4046ae['message']});}}),_0x261cba['get'](_0x35f364['YibEm'],async(_0x53e054,_0xa00fb0)=>{const _0x2fcc1a=_0x7c722a;try{const _0x5906a8=getReadQueues(),_0x4d2578={};let _0x5a99db=![];for(const [_0x4de976,_0x58756d]of Object['entries'](_0x5906a8)){try{const _0x24cbeb=await _0x58756d[_0x2fcc1a(0x1c7)]('active',_0x2fcc1a(0x17d),_0x35f364[_0x2fcc1a(0x1d9)]);_0x4d2578[_0x4de976]=_0x24cbeb,_0x5a99db=!![];}catch(_0x5af054){_0x4d2578[_0x4de976]={'error':_0x5af054[_0x2fcc1a(0x17c)]};}}let _0x5e2589=0x0;cachedJobConfigs&&(_0x5e2589=Object[_0x2fcc1a(0x1c6)](cachedJobConfigs)[_0x2fcc1a(0x174)]),_0xa00fb0[_0x2fcc1a(0x1d7)]({'success':!![],'data':{'status':_0x5a99db?_0x35f364['iukEm']:'degraded','redis':_0x5a99db?_0x35f364[_0x2fcc1a(0x182)]:_0x35f364[_0x2fcc1a(0x1be)],'registeredJobs':_0x5e2589,'queues':_0x4d2578}});}catch(_0x209a98){_0xa00fb0['status'](0x1f7)['json']({'success':![],'data':{'status':'unhealthy','error':_0x209a98[_0x2fcc1a(0x17c)]}});}}),_0x261cba;}function a0_0x2c93(_0x2076b0,_0x18b213){_0x2076b0=_0x2076b0-0x170;const _0x102b7e=a0_0x102b();let _0x2c93ee=_0x102b7e[_0x2076b0];if(a0_0x2c93['bWwNkX']===undefined){var _0x32a91d=function(_0x4cb74a){const _0x4dbcc3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5fa7d3='',_0x8eea9e='';for(let _0x249298=0x0,_0x23fd1b,_0x4b376b,_0x5197a2=0x0;_0x4b376b=_0x4cb74a['charAt'](_0x5197a2++);~_0x4b376b&&(_0x23fd1b=_0x249298%0x4?_0x23fd1b*0x40+_0x4b376b:_0x4b376b,_0x249298++%0x4)?_0x5fa7d3+=String['fromCharCode'](0xff&_0x23fd1b>>(-0x2*_0x249298&0x6)):0x0){_0x4b376b=_0x4dbcc3['indexOf'](_0x4b376b);}for(let _0x3b697e=0x0,_0x168e5f=_0x5fa7d3['length'];_0x3b697e<_0x168e5f;_0x3b697e++){_0x8eea9e+='%'+('00'+_0x5fa7d3['charCodeAt'](_0x3b697e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x8eea9e);};a0_0x2c93['WaVOiy']=_0x32a91d,a0_0x2c93['yjsRpi']={},a0_0x2c93['bWwNkX']=!![];}const _0x184696=_0x102b7e[0x0],_0x46020e=_0x2076b0+_0x184696,_0x130424=a0_0x2c93['yjsRpi'][_0x46020e];return!_0x130424?(_0x2c93ee=a0_0x2c93['WaVOiy'](_0x2c93ee),a0_0x2c93['yjsRpi'][_0x46020e]=_0x2c93ee):_0x2c93ee=_0x130424,_0x2c93ee;}module['exports']=createJobRoutes;
@@ -1 +1 @@
1
- const a0_0xd940a6=a0_0x180b;(function(_0x189faf,_0xe3cbd0){const _0x23f6e1=a0_0x180b,_0x21190c=_0x189faf();while(!![]){try{const _0x43c778=-parseInt(_0x23f6e1(0x13e))/0x1+-parseInt(_0x23f6e1(0x159))/0x2*(-parseInt(_0x23f6e1(0x123))/0x3)+parseInt(_0x23f6e1(0x15b))/0x4+-parseInt(_0x23f6e1(0x135))/0x5*(-parseInt(_0x23f6e1(0x15a))/0x6)+-parseInt(_0x23f6e1(0x170))/0x7*(parseInt(_0x23f6e1(0x149))/0x8)+-parseInt(_0x23f6e1(0x138))/0x9*(parseInt(_0x23f6e1(0x141))/0xa)+parseInt(_0x23f6e1(0x14c))/0xb*(-parseInt(_0x23f6e1(0x13c))/0xc);if(_0x43c778===_0xe3cbd0)break;else _0x21190c['push'](_0x21190c['shift']());}catch(_0x457fe8){_0x21190c['push'](_0x21190c['shift']());}}}(a0_0x5155,0x7ac2b));const fs=require('fs'),path=require('path'),VALID_QUEUE_NAMES=[a0_0xd940a6(0x13f),'default','low-priority'],VALID_BACKOFF_TYPES=[a0_0xd940a6(0x161),'exponential'],SLUG_REGEX=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;function a0_0x5155(){const _0x2a8e5b=['Aw5PDgLHBerLBgf5','r01VvwK','y29Uy3vYCMvUy3K','Bwf4','iJOGBMLSywKGiG','C3bSAxq','DgvZDa','q29UzMLNigHHCNvZigjLCNvWysbVyMPLy3q','rMLLBgqGiNr5CguIigHHCNvZicjJCM9UiIWGzgL0zw11A2fUoIaI','veX5te0','zxjYB3jZ','uNLrDgq','igzPzwXKoIaI','BMfTzq','rMLLBgqGiNr5CguIihDHAMLIigrPAxnPicHZDhjPBMCP','mZe5nuvrt1PZtW','whfKt3C','Aw5JBhvKzxm','mZC4ndiZsvnyz1fV','BgvUz3rO','AgfUzgXLCG','C2nOzwr1Bgu','nteYotiYme9kAvnQzq','rMLLBgqGiNjLDhj5lM1HEef0DgvTChrZiIbOyxj1CYbUDw1IzxiGyw50yxjHideTmta','mJe5otGYvNvgCw5u','AgLNAc1WCMLVCML0Eq','B2jQzwn0','ntbfyxrjDuu','zgf5lw9Mlw1VBNrO','EenHu2q','rMLLBgqGiM5HBwuIihDHAMLIigrPAxnPicHZDhjPBMCP','rMLLBgqGiM5HBwuIigHHCNvZihnSDwCGzM9YBwf0icHSB3DLCMnHC2uSigrHC2GPoIaI','Bwv0ywrHDge','BwLU','zw5HyMXLza','mJrervLLsMO','C3rYAw5N','AM9ICW','mtfMAwTywMG','x2LZvMfSAwrsyw5Nzq','iJOGyMfZzsaI','quXtr2q','DMfSAwrHDgvdCM9UrxHWCMvZC2LVBG','q3jVBIbLEhbYzxnZAw9UigHHCNvZiduGzMLLBgqGkg1PBNv0zsbOB3vYigrHEsbTB250Acb3zwvRzgf5ksWGzgL0zw11A2fUia','q3jVBIbMAwvSzcaI','uvzjqvG','tKPsvK0','iIb0AwrHAYb2ywXPzc4GugLSAwHHBJOG','thjHDhG','q2fAAK8','rMLLBgqGiNrPBwvVDxqIigHHCNvZig51BwjLCIa+idaGkgrHBgfTig1Zkq','nJi1mty2yxHfDgzS','mJmZng5QBMfnsa','mZG2mti3mNjyq0HtyW','DhLWzq','ChvZAa','DhjPBq','DMfSAwq','EeHkvvq','zML4zwq','DgLTzw91Da','BNvTyMvY','CxvLDwu','y3jVBG','AxnbCNjHEq','zgf5lw9MlxDLzwS','DMfSAwrHDgvrDwv1zu5HBwu','lMPZicHHyNnVBhv0ztOG','rMLLBgqGiNnJAgvKDwXLiIb3ywPPyIbKAwLZAsaOy3jVBIbLEhbYzxnZAw9Uihn0CMLUzYK','rKXJzMe','DMfSAwrHDgvszxrYEunVBMzPzW','Bwf4qxr0zw1WDhm','iIbHDgf1ici','AM9PBG','mZG3mZe3AvbpDfbq','CMv0CNK','ChrXr1i','D1ziDKy','zxHWB3j0CW','m3rytxr1wq','BhDOzvK','AKHWsgK'];a0_0x5155=function(){return _0x2a8e5b;};return a0_0x5155();}function a0_0x180b(_0xdf1d1a,_0x5b0a37){_0xdf1d1a=_0xdf1d1a-0x121;const _0x5155fe=a0_0x5155();let _0x180b1a=_0x5155fe[_0xdf1d1a];if(a0_0x180b['rqXOet']===undefined){var _0x298d2f=function(_0x383869){const _0x5f0d67='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x14a296='',_0x4d521a='';for(let _0x10eb4=0x0,_0x2e674d,_0x5897a2,_0x46433f=0x0;_0x5897a2=_0x383869['charAt'](_0x46433f++);~_0x5897a2&&(_0x2e674d=_0x10eb4%0x4?_0x2e674d*0x40+_0x5897a2:_0x5897a2,_0x10eb4++%0x4)?_0x14a296+=String['fromCharCode'](0xff&_0x2e674d>>(-0x2*_0x10eb4&0x6)):0x0){_0x5897a2=_0x5f0d67['indexOf'](_0x5897a2);}for(let _0x29a2d0=0x0,_0x4e00cb=_0x14a296['length'];_0x29a2d0<_0x4e00cb;_0x29a2d0++){_0x4d521a+='%'+('00'+_0x14a296['charCodeAt'](_0x29a2d0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4d521a);};a0_0x180b['CBVAvt']=_0x298d2f,a0_0x180b['IsbnFM']={},a0_0x180b['rqXOet']=!![];}const _0x99b85e=_0x5155fe[0x0],_0x492193=_0xdf1d1a+_0x99b85e,_0x39b22f=a0_0x180b['IsbnFM'][_0x492193];return!_0x39b22f?(_0x180b1a=a0_0x180b['CBVAvt'](_0x180b1a),a0_0x180b['IsbnFM'][_0x492193]=_0x180b1a):_0x180b1a=_0x39b22f,_0x180b1a;}class JobValidator{['validateConfig'](_0x3a8e68,_0x44c05a){const _0x224d86=a0_0xd940a6,_0x33b88c={'ALSGd':_0x224d86(0x140),'XqdOw':function(_0x2a35a2,_0x303f77){return _0x2a35a2!==_0x303f77;},'sFiGU':_0x224d86(0x14a),'uCJdf':_0x224d86(0x144),'xCaSd':_0x224d86(0x134),'NPixI':_0x224d86(0x16a),'sEyGv':'Field\x20\x22handler\x22\x20wajib\x20diisi\x20(path\x20relatif\x20dari\x20src/jobs/)','Lratx':'boolean','yNRpS':'Field\x20\x22enabled\x22\x20harus\x20boolean','jHpHi':function(_0x1543bb,_0x1ae76d){return _0x1543bb<=_0x1ae76d;},'wVHvF':function(_0x511fa1,_0x257a63){return _0x511fa1===_0x257a63;},'sPaxO':function(_0x5d27d0,_0x446db5){return _0x5d27d0!==_0x446db5;}},_0x2be1c1=[];if(!_0x3a8e68||typeof _0x3a8e68!==_0x33b88c['ALSGd'])return{'valid':![],'errors':[_0x224d86(0x12d)]};if(!_0x3a8e68[_0x224d86(0x133)]||_0x33b88c[_0x224d86(0x136)](typeof _0x3a8e68[_0x224d86(0x133)],_0x33b88c['sFiGU']))_0x2be1c1['push'](_0x33b88c['uCJdf']);else!SLUG_REGEX[_0x224d86(0x12c)](_0x3a8e68[_0x224d86(0x133)])&&_0x2be1c1[_0x224d86(0x15d)](_0x224d86(0x145)+_0x3a8e68['name']+'\x22');if(!_0x3a8e68[_0x224d86(0x15c)]||_0x33b88c['XqdOw'](typeof _0x3a8e68['type'],_0x33b88c['sFiGU']))_0x2be1c1['push'](_0x33b88c[_0x224d86(0x143)]);else _0x33b88c['XqdOw'](_0x3a8e68[_0x224d86(0x15c)],_0x224d86(0x165))&&_0x2be1c1[_0x224d86(0x15d)](_0x224d86(0x12e)+_0x3a8e68['type']+'\x22');if(!_0x3a8e68[_0x224d86(0x13b)]||typeof _0x3a8e68[_0x224d86(0x13b)]!==_0x224d86(0x14a))_0x2be1c1[_0x224d86(0x15d)](_0x33b88c['NPixI']);else{const _0x5ac588=this['validateCronExpression'](_0x3a8e68['schedule']);!_0x5ac588[_0x224d86(0x15f)]&&_0x2be1c1['push'](..._0x5ac588[_0x224d86(0x130)]);}if(!_0x3a8e68[_0x224d86(0x13a)]||typeof _0x3a8e68['handler']!==_0x33b88c['sFiGU'])_0x2be1c1[_0x224d86(0x15d)](_0x33b88c['sEyGv']);else{if(_0x44c05a){const _0x6f2c5b=this['validateHandlerExists'](_0x3a8e68[_0x224d86(0x13a)],_0x44c05a);!_0x6f2c5b['valid']&&_0x2be1c1[_0x224d86(0x15d)](..._0x6f2c5b['errors']);}}_0x3a8e68[_0x224d86(0x148)]!==undefined&&typeof _0x3a8e68[_0x224d86(0x148)]!==_0x33b88c[_0x224d86(0x156)]&&_0x2be1c1['push'](_0x33b88c['yNRpS']);_0x3a8e68['timeout']!==undefined&&((_0x33b88c[_0x224d86(0x136)](typeof _0x3a8e68[_0x224d86(0x162)],_0x224d86(0x163))||_0x33b88c[_0x224d86(0x125)](_0x3a8e68['timeout'],0x0))&&_0x2be1c1['push'](_0x224d86(0x158)));if(_0x3a8e68[_0x224d86(0x164)]!==undefined){const _0x1f3f2c=this['validateQueueName'](_0x3a8e68['queue']);!_0x1f3f2c[_0x224d86(0x15f)]&&_0x2be1c1['push'](..._0x1f3f2c['errors']);}_0x3a8e68[_0x224d86(0x128)]!==undefined&&((_0x33b88c['XqdOw'](typeof _0x3a8e68[_0x224d86(0x128)],'number')||_0x3a8e68[_0x224d86(0x128)]<0x1||_0x3a8e68['concurrency']>0x32)&&_0x2be1c1['push']('Field\x20\x22concurrency\x22\x20harus\x20number\x20antara\x201-50'));if(_0x3a8e68['retry']!==undefined){if(typeof _0x3a8e68[_0x224d86(0x171)]!==_0x33b88c['ALSGd']||_0x33b88c[_0x224d86(0x121)](_0x3a8e68[_0x224d86(0x171)],null))_0x2be1c1['push']('Field\x20\x22retry\x22\x20harus\x20berupa\x20object');else{const _0x451315=this[_0x224d86(0x16c)](_0x3a8e68[_0x224d86(0x171)]);!_0x451315['valid']&&_0x2be1c1['push'](..._0x451315['errors']);}}return _0x33b88c['sPaxO'](_0x3a8e68[_0x224d86(0x146)],undefined)&&((typeof _0x3a8e68['metadata']!==_0x33b88c[_0x224d86(0x14f)]||_0x3a8e68[_0x224d86(0x146)]===null||Array[_0x224d86(0x166)](_0x3a8e68['metadata']))&&_0x2be1c1['push']('Field\x20\x22metadata\x22\x20harus\x20berupa\x20object')),{'valid':_0x2be1c1['length']===0x0,'errors':_0x2be1c1};}[a0_0xd940a6(0x150)](_0x1a36bf){const _0xbaca09=a0_0xd940a6,_0x342b9c={'zIPIL':function(_0x4ba333,_0x7407f9){return _0x4ba333!==_0x7407f9;},'PicTo':'hour','FLcfa':_0xbaca09(0x142),'xHJUT':_0xbaca09(0x167),'blqUl':function(_0x568856,_0x5efb5e){return _0x568856<_0x5efb5e;},'TLyLM':function(_0x2abf29,_0x92cd03){return _0x2abf29===_0x92cd03;},'cLooC':function(_0x4a184d,_0x4b5940){return _0x4a184d===_0x4b5940;}},_0x47c180=[],_0x1a4cef=_0x1a36bf[_0xbaca09(0x15e)]()[_0xbaca09(0x12b)](/\s+/);if(_0x342b9c['zIPIL'](_0x1a4cef['length'],0x5))return _0x47c180[_0xbaca09(0x15d)](_0xbaca09(0x151)+_0x1a4cef[_0xbaca09(0x139)]+_0xbaca09(0x132)+_0x1a36bf+'\x22'),{'valid':![],'errors':_0x47c180};const _0x171f5a=['minute',_0x342b9c['PicTo'],_0x342b9c[_0xbaca09(0x16b)],'month',_0x342b9c[_0xbaca09(0x160)]],_0x2cc27a=[{'min':0x0,'max':0x3b},{'min':0x0,'max':0x17},{'min':0x1,'max':0x1f},{'min':0x1,'max':0xc},{'min':0x0,'max':0x7}],_0x13f8aa=/^(\*|[0-9]+(-[0-9]+)?)([,/](\*|[0-9]+(-[0-9]+)?))*$/;for(let _0x3544cd=0x0;_0x342b9c['blqUl'](_0x3544cd,0x5);_0x3544cd++){const _0x907d4d=_0x1a4cef[_0x3544cd];if(_0x342b9c[_0xbaca09(0x12f)](_0x907d4d,'*'))continue;if(_0x907d4d[_0xbaca09(0x137)]('/')){const [_0x1cad11,_0x1f9526]=_0x907d4d['split']('/');_0x1cad11!=='*'&&!this[_0xbaca09(0x14d)](_0x1cad11,_0x2cc27a[_0x3544cd])&&_0x47c180[_0xbaca09(0x15d)]('Cron\x20field\x20\x22'+_0x171f5a[_0x3544cd]+_0xbaca09(0x14e)+_0x1cad11+'\x22\x20tidak\x20valid');const _0x25a5a8=parseInt(_0x1f9526,0xa);(isNaN(_0x25a5a8)||_0x25a5a8<0x1)&&_0x47c180[_0xbaca09(0x15d)]('Cron\x20field\x20\x22'+_0x171f5a[_0x3544cd]+'\x22:\x20step\x20\x22/'+_0x1f9526+'\x22\x20harus\x20angka\x20>\x200');continue;}const _0x195f41=_0x907d4d['split'](',');for(const _0x1563c8 of _0x195f41){!this[_0xbaca09(0x14d)](_0x1563c8,_0x2cc27a[_0x3544cd])&&_0x47c180[_0xbaca09(0x15d)](_0xbaca09(0x152)+_0x171f5a[_0x3544cd]+_0xbaca09(0x12a)+_0x1563c8+'\x22\x20di\x20luar\x20range\x20'+_0x2cc27a[_0x3544cd]['min']+'-'+_0x2cc27a[_0x3544cd][_0xbaca09(0x129)]);}}return{'valid':_0x342b9c['cLooC'](_0x47c180[_0xbaca09(0x139)],0x0),'errors':_0x47c180};}['_isValidRange'](_0x23725a,_0x358ce1){const _0x27e1fa=a0_0xd940a6,_0x2b9e5={'CaZjO':function(_0x527f9f,_0x20280c){return _0x527f9f<=_0x20280c;},'ptqGR':function(_0x48d062,_0x5a1775){return _0x48d062>=_0x5a1775;},'yRZkn':function(_0x3c5d33,_0x48a185){return _0x3c5d33>=_0x48a185;}};if(_0x23725a['includes']('-')){const [_0x3bf27b,_0x44b6c2]=_0x23725a[_0x27e1fa(0x12b)]('-')['map'](Number);return!isNaN(_0x3bf27b)&&!isNaN(_0x44b6c2)&&_0x3bf27b>=_0x358ce1['min']&&_0x2b9e5[_0x27e1fa(0x157)](_0x3bf27b,_0x358ce1['max'])&&_0x2b9e5[_0x27e1fa(0x172)](_0x44b6c2,_0x358ce1[_0x27e1fa(0x147)])&&_0x44b6c2<=_0x358ce1[_0x27e1fa(0x129)]&&_0x3bf27b<=_0x44b6c2;}const _0x3f9a9b=parseInt(_0x23725a,0xa);return!isNaN(_0x3f9a9b)&&_0x2b9e5['yRZkn'](_0x3f9a9b,_0x358ce1['min'])&&_0x3f9a9b<=_0x358ce1['max'];}[a0_0xd940a6(0x168)](_0x2e1000){const _0x25f445=a0_0xd940a6;if(!VALID_QUEUE_NAMES[_0x25f445(0x137)](_0x2e1000))return{'valid':![],'errors':['Queue\x20\x22'+_0x2e1000+_0x25f445(0x155)+VALID_QUEUE_NAMES[_0x25f445(0x16f)](',\x20')]};return{'valid':!![],'errors':[]};}['validateRetryConfig'](_0x424206){const _0x9431d9=a0_0xd940a6,_0x32127f={'RyQtd':function(_0x5c77a5,_0xa38f0c){return _0x5c77a5!==_0xa38f0c;},'VdoZb':function(_0x1d14a8,_0x3c44da){return _0x1d14a8<_0x3c44da;},'lwheY':function(_0x1efff3,_0xe129a3){return _0x1efff3>_0xe129a3;},'QVIAX':_0x9431d9(0x13d),'voRAj':function(_0x57a383,_0x5a3765){return _0x57a383!==_0x5a3765;},'NJRVM':_0x9431d9(0x163),'GMoUi':function(_0x165d0b,_0x2ead9b){return _0x165d0b<=_0x2ead9b;}},_0x26bbd4=[];return _0x32127f['RyQtd'](_0x424206['maxAttempts'],undefined)&&((typeof _0x424206[_0x9431d9(0x16d)]!==_0x9431d9(0x163)||_0x32127f['VdoZb'](_0x424206['maxAttempts'],0x1)||_0x32127f[_0x9431d9(0x124)](_0x424206[_0x9431d9(0x16d)],0xa))&&_0x26bbd4[_0x9431d9(0x15d)](_0x32127f[_0x9431d9(0x153)])),_0x32127f['voRAj'](_0x424206['backoff'],undefined)&&(!VALID_BACKOFF_TYPES[_0x9431d9(0x137)](_0x424206['backoff'])&&_0x26bbd4['push']('Field\x20\x22retry.backoff\x22\x20harus\x20\x22'+VALID_BACKOFF_TYPES[_0x9431d9(0x16f)](_0x9431d9(0x16e))+'\x22')),_0x424206['initialDelay']!==undefined&&((_0x32127f[_0x9431d9(0x131)](typeof _0x424206[_0x9431d9(0x126)],_0x32127f[_0x9431d9(0x154)])||_0x32127f[_0x9431d9(0x127)](_0x424206['initialDelay'],0x0))&&_0x26bbd4['push']('Field\x20\x22retry.initialDelay\x22\x20harus\x20number\x20>\x200\x20(dalam\x20ms)')),{'valid':_0x26bbd4['length']===0x0,'errors':_0x26bbd4};}['validateHandlerExists'](_0x5746d2,_0x109c3d){const _0x57c753=a0_0xd940a6,_0x17e616=path[_0x57c753(0x16f)](_0x109c3d,'src',_0x57c753(0x14b),_0x5746d2+'.js');if(!fs['existsSync'](_0x17e616))return{'valid':![],'errors':['Handler\x20file\x20tidak\x20ditemukan:\x20src/jobs/'+_0x5746d2+_0x57c753(0x169)+_0x17e616+')']};return{'valid':!![],'errors':[]};}}module[a0_0xd940a6(0x122)]=new JobValidator();
1
+ function a0_0x1edc(){const _0x379b98=['q3jVBIbLEhbYzxnZAw9UigHHCNvZiduGzMLLBgqGkg1PBNv0zsbOB3vYigrHEsbTB250Acb3zwvRzgf5ksWGzgL0zw11A2fUia','Cgf0Aa','mty0mdq5nNfSsxbtsa','iJOGBMLSywKGiG','DMfSAwrHDgvszxrYEunVBMzPzW','zxHWB25LBNrPywW','DMfSAwq','wMz1CNi','DMfSAwrHDgvrDwv1zu5HBwu','DvHPuKW','wur1C20','tM9AzKO','C3bSAxq','rMLLBgqGiNr5CguIigHHCNvZicjJCM9UiIWGzgL0zw11A2fUoIaI','DgvZDa','vwfPCe0','yvvswhK','Bwf4qxr0zw1WDhm','rMLLBgqGiM5HBwuIihDHAMLIigrPAxnPicHZDhjPBMCP','x2LZvMfSAwrsyw5Nzq','C2nOzwr1Bgu','AgfUzgXLCG','Bwf4','q29UzMLNigHHCNvZigjLCNvWysbVyMPLy3q','BNvTyMvY','zgf5lw9MlxDLzwS','BgvUz3rO','zw5HyMXLza','iIbKAsbSDwfYihjHBMDLia','BwLU','Bwv0ywrHDge','DMfSAwrHDgvdB25MAwC','zxjYB3jZ','uNjZt3K','CxvLDwu','B2jQzwn0','mtuYnZyXrvjmy05g','iJOGyMfZzsaI','Bw9UDgG','mJe4mtC3mNzmBfLuvq','mZe3ntmYEKDgsvvw','Aw5PDgLHBerLBgf5','DgLTzw91Da','BwLUDxrL','y29Uy3vYCMvUy3K','EgPwDNm','rMLLBgqGiNrPBwvVDxqIigHHCNvZig51BwjLCIa+idaGkgrHBgfTig1Zkq','ndGYotjWvvDRAg8','ChvZAa','rejhz2W','zML4zwq','zgf5lw9Mlw1VBNrO','DMfSAwrHDgviyw5KBgvYrxHPC3rZ','rMLLBgqGiM1LDgfKyxrHiIbOyxj1CYbIzxj1CgeGB2jQzwn0','mti5nJLQrg5iBge','BMfTzq','igzPzwXKoIaI','rxzjqKW','B1fUAfi','rMLLBgqGiMvUywjSzwqIigHHCNvZigjVB2XLyw4','DMfSAwrHDgvdCM9UrxHWCMvZC2LVBG','rMLLBgqGiNjLDhj5lM1HEef0DgvTChrZiIbOyxj1CYbUDw1IzxiGyw50yxjHideTmta','y3jVBG','lMPZicHHyNnVBhv0ztOG','twXowLm','sgrTCxa','AM9PBG','iIbHDgf1ici','mJKWntDLqK9YEKm','iIbOyxj1CYbHBMDRysa+ida','Aw5JBhvKzxm','Eu1wEuC','mtqWmgr2tNbKzW','mteXrhPzD2nh','nJvJrLrPBuu','CNHVu0G','Du5nsMG','yuTNsMu','rMLLBgqGiNjLDhj5lMjHy2TVzMyIigHHCNvZici','DhLWzq'];a0_0x1edc=function(){return _0x379b98;};return a0_0x1edc();}const a0_0x1eff8c=a0_0x18d8;(function(_0x858c13,_0x39bfa0){const _0x1cb88b=a0_0x18d8,_0x20f486=_0x858c13();while(!![]){try{const _0x5ae7cb=-parseInt(_0x1cb88b(0x98))/0x1+parseInt(_0x1cb88b(0x9b))/0x2+parseInt(_0x1cb88b(0xbd))/0x3*(-parseInt(_0x1cb88b(0xa3))/0x4)+-parseInt(_0x1cb88b(0xbe))/0x5*(-parseInt(_0x1cb88b(0x9c))/0x6)+-parseInt(_0x1cb88b(0xb8))/0x7+-parseInt(_0x1cb88b(0xc6))/0x8+-parseInt(_0x1cb88b(0xaa))/0x9*(parseInt(_0x1cb88b(0xbc))/0xa);if(_0x5ae7cb===_0x39bfa0)break;else _0x20f486['push'](_0x20f486['shift']());}catch(_0x2754d6){_0x20f486['push'](_0x20f486['shift']());}}}(a0_0x1edc,0xbb9c9));const fs=require('fs'),path=require(a0_0x1eff8c(0xc5)),VALID_QUEUE_NAMES=['high-priority','default','low-priority'],VALID_BACKOFF_TYPES=[a0_0x1eff8c(0xa6),a0_0x1eff8c(0xc9)],SLUG_REGEX=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;class JobValidator{[a0_0x1eff8c(0x93)](_0x5f06f4,_0x2834ae){const _0x3bf725=a0_0x1eff8c,_0x17d1ee={'EvIBL':_0x3bf725(0x8b),'aURXy':'string','Hdmqp':function(_0x3f335c,_0x3fa518){return _0x3f335c!==_0x3fa518;},'VHvkV':'Field\x20\x22type\x22\x20wajib\x20diisi\x20(string)','Zfurr':_0x3bf725(0xb2),'DBGgl':function(_0x2d9be1,_0x4f00f2){return _0x2d9be1!==_0x4f00f2;},'VVNVz':'Field\x20\x22handler\x22\x20wajib\x20diisi\x20(path\x20relatif\x20dari\x20src/jobs/)','gmYfY':function(_0x1802f7,_0x1bae5c){return _0x1802f7!==_0x1bae5c;},'UaipM':_0x3bf725(0x8c),'rxoSH':function(_0x3e3b36,_0xdcfec4){return _0x3e3b36<_0xdcfec4;},'uNMJh':function(_0x23d68a,_0x462d0e){return _0x23d68a>_0x462d0e;},'JvSSF':'Field\x20\x22concurrency\x22\x20harus\x20number\x20antara\x201-50','RrsOy':_0x3bf725(0xa9),'gddno':function(_0x50cf62,_0x589452){return _0x50cf62===_0x589452;}},_0x3c00b5=[];if(!_0x5f06f4||typeof _0x5f06f4!=='object')return{'valid':![],'errors':[_0x17d1ee[_0x3bf725(0xad)]]};if(!_0x5f06f4['name']||typeof _0x5f06f4['name']!==_0x17d1ee['aURXy'])_0x3c00b5[_0x3bf725(0xa4)](_0x3bf725(0xd6));else!SLUG_REGEX[_0x3bf725(0xd2)](_0x5f06f4['name'])&&_0x3c00b5['push']('Field\x20\x22name\x22\x20harus\x20slug\x20format\x20(lowercase,\x20dash):\x20\x22'+_0x5f06f4[_0x3bf725(0xab)]+'\x22');if(!_0x5f06f4[_0x3bf725(0xc3)]||_0x17d1ee['Hdmqp'](typeof _0x5f06f4['type'],'string'))_0x3c00b5[_0x3bf725(0xa4)](_0x17d1ee['VHvkV']);else _0x5f06f4[_0x3bf725(0xc3)]!==_0x17d1ee[_0x3bf725(0xcb)]&&_0x3c00b5[_0x3bf725(0xa4)](_0x3bf725(0xd1)+_0x5f06f4['type']+'\x22');if(!_0x5f06f4['schedule']||_0x17d1ee[_0x3bf725(0xa5)](typeof _0x5f06f4[_0x3bf725(0xd8)],_0x17d1ee['aURXy']))_0x3c00b5[_0x3bf725(0xa4)]('Field\x20\x22schedule\x22\x20wajib\x20diisi\x20(cron\x20expression\x20string)');else{const _0x418d7f=this[_0x3bf725(0xb0)](_0x5f06f4['schedule']);!_0x418d7f[_0x3bf725(0xca)]&&_0x3c00b5[_0x3bf725(0xa4)](..._0x418d7f[_0x3bf725(0x94)]);}if(!_0x5f06f4['handler']||_0x17d1ee[_0x3bf725(0xa5)](typeof _0x5f06f4[_0x3bf725(0x89)],_0x17d1ee[_0x3bf725(0xd4)]))_0x3c00b5[_0x3bf725(0xa4)](_0x17d1ee['VVNVz']);else{if(_0x2834ae){const _0x594d6e=this[_0x3bf725(0xa8)](_0x5f06f4['handler'],_0x2834ae);!_0x594d6e['valid']&&_0x3c00b5[_0x3bf725(0xa4)](..._0x594d6e[_0x3bf725(0x94)]);}}_0x17d1ee[_0x3bf725(0xb5)](_0x5f06f4[_0x3bf725(0x8f)],undefined)&&_0x17d1ee[_0x3bf725(0xb5)](typeof _0x5f06f4[_0x3bf725(0x8f)],'boolean')&&_0x3c00b5[_0x3bf725(0xa4)](_0x3bf725(0xaf));_0x5f06f4[_0x3bf725(0x9e)]!==undefined&&((_0x17d1ee[_0x3bf725(0xa5)](typeof _0x5f06f4['timeout'],_0x3bf725(0x8c))||_0x5f06f4[_0x3bf725(0x9e)]<=0x0)&&_0x3c00b5[_0x3bf725(0xa4)](_0x3bf725(0xa2)));if(_0x17d1ee['gmYfY'](_0x5f06f4[_0x3bf725(0x96)],undefined)){const _0x1d2b01=this[_0x3bf725(0xcc)](_0x5f06f4['queue']);!_0x1d2b01['valid']&&_0x3c00b5[_0x3bf725(0xa4)](..._0x1d2b01['errors']);}_0x17d1ee[_0x3bf725(0xa5)](_0x5f06f4['concurrency'],undefined)&&((typeof _0x5f06f4[_0x3bf725(0xa0)]!==_0x17d1ee[_0x3bf725(0xd3)]||_0x17d1ee[_0x3bf725(0xbf)](_0x5f06f4[_0x3bf725(0xa0)],0x1)||_0x17d1ee[_0x3bf725(0xc0)](_0x5f06f4[_0x3bf725(0xa0)],0x32))&&_0x3c00b5[_0x3bf725(0xa4)](_0x17d1ee['JvSSF']));if(_0x5f06f4['retry']!==undefined){if(typeof _0x5f06f4['retry']!==_0x3bf725(0x97)||_0x5f06f4['retry']===null)_0x3c00b5[_0x3bf725(0xa4)]('Field\x20\x22retry\x22\x20harus\x20berupa\x20object');else{const _0x3d5f8c=this[_0x3bf725(0xc8)](_0x5f06f4['retry']);!_0x3d5f8c[_0x3bf725(0xca)]&&_0x3c00b5[_0x3bf725(0xa4)](..._0x3d5f8c['errors']);}}return _0x5f06f4[_0x3bf725(0x92)]!==undefined&&((typeof _0x5f06f4[_0x3bf725(0x92)]!=='object'||_0x5f06f4['metadata']===null||Array['isArray'](_0x5f06f4['metadata']))&&_0x3c00b5[_0x3bf725(0xa4)](_0x17d1ee[_0x3bf725(0x95)])),{'valid':_0x17d1ee['gddno'](_0x3c00b5[_0x3bf725(0x8e)],0x0),'errors':_0x3c00b5};}[a0_0x1eff8c(0xb0)](_0x579cf4){const _0x480715=a0_0x1eff8c,_0x140898={'NoZfJ':_0x480715(0xa7),'oQnhR':function(_0x263981,_0x4474e8){return _0x263981!==_0x4474e8;},'eubqU':function(_0x305c6e,_0x33f447,_0x51e672){return _0x305c6e(_0x33f447,_0x51e672);},'yMVyG':function(_0xa8694e,_0x2c59d1){return _0xa8694e(_0x2c59d1);},'aOjiT':function(_0x37f595,_0x82250c){return _0x37f595<_0x82250c;}},_0x279467=[],_0x56be80=_0x579cf4['trim']()['split'](/\s+/);if(_0x56be80[_0x480715(0x8e)]!==0x5)return _0x279467['push'](_0x480715(0xc4)+_0x56be80['length']+_0x480715(0xac)+_0x579cf4+'\x22'),{'valid':![],'errors':_0x279467};const _0x36152a=[_0x480715(0x9f),'hour',_0x140898[_0x480715(0xcf)],_0x480715(0x9a),_0x480715(0x8d)],_0x3d4c2d=[{'min':0x0,'max':0x3b},{'min':0x0,'max':0x17},{'min':0x1,'max':0x1f},{'min':0x1,'max':0xc},{'min':0x0,'max':0x7}],_0x3198ba=/^(\*|[0-9]+(-[0-9]+)?)([,/](\*|[0-9]+(-[0-9]+)?))*$/;for(let _0x609011=0x0;_0x609011<0x5;_0x609011++){const _0x14fcf1=_0x56be80[_0x609011];if(_0x14fcf1==='*')continue;if(_0x14fcf1[_0x480715(0xba)]('/')){const [_0x239a09,_0x402980]=_0x14fcf1[_0x480715(0xd0)]('/');_0x140898[_0x480715(0xae)](_0x239a09,'*')&&!this['_isValidRange'](_0x239a09,_0x3d4c2d[_0x609011])&&_0x279467[_0x480715(0xa4)]('Cron\x20field\x20\x22'+_0x36152a[_0x609011]+_0x480715(0x99)+_0x239a09+'\x22\x20tidak\x20valid');const _0x29ff60=_0x140898['eubqU'](parseInt,_0x402980,0xa);(_0x140898[_0x480715(0xbb)](isNaN,_0x29ff60)||_0x140898['aOjiT'](_0x29ff60,0x1))&&_0x279467[_0x480715(0xa4)]('Cron\x20field\x20\x22'+_0x36152a[_0x609011]+'\x22:\x20step\x20\x22/'+_0x402980+_0x480715(0xb9));continue;}const _0x3d4cf5=_0x14fcf1['split'](',');for(const _0x13dc01 of _0x3d4cf5){!this[_0x480715(0xd7)](_0x13dc01,_0x3d4c2d[_0x609011])&&_0x279467['push']('Cron\x20field\x20\x22'+_0x36152a[_0x609011]+_0x480715(0xc7)+_0x13dc01+_0x480715(0x90)+_0x3d4c2d[_0x609011]['min']+'-'+_0x3d4c2d[_0x609011]['max']);}}return{'valid':_0x279467['length']===0x0,'errors':_0x279467};}[a0_0x1eff8c(0xd7)](_0x10df46,_0x2a9481){const _0x493814=a0_0x1eff8c,_0x1e7ae7={'uTlco':function(_0x5b1231,_0x5e8064){return _0x5b1231>=_0x5e8064;},'wmdfE':function(_0x22f861,_0x59d35d){return _0x22f861<=_0x59d35d;},'uXiRL':function(_0x975262,_0x229276,_0x272778){return _0x975262(_0x229276,_0x272778);},'MlNZS':function(_0x3a8c00,_0x36ef35){return _0x3a8c00(_0x36ef35);},'cbUGQ':function(_0x51e667,_0x11f471){return _0x51e667>=_0x11f471;}};if(_0x10df46[_0x493814(0xba)]('-')){const [_0x3a67fb,_0x43090a]=_0x10df46[_0x493814(0xd0)]('-')['map'](Number);return!isNaN(_0x3a67fb)&&!isNaN(_0x43090a)&&_0x3a67fb>=_0x2a9481[_0x493814(0x91)]&&_0x3a67fb<=_0x2a9481['max']&&_0x1e7ae7['uTlco'](_0x43090a,_0x2a9481['min'])&&_0x43090a<=_0x2a9481[_0x493814(0x8a)]&&_0x1e7ae7['wmdfE'](_0x3a67fb,_0x43090a);}const _0xa9ebe0=_0x1e7ae7[_0x493814(0xcd)](parseInt,_0x10df46,0xa);return!_0x1e7ae7[_0x493814(0xb4)](isNaN,_0xa9ebe0)&&_0x1e7ae7['cbUGQ'](_0xa9ebe0,_0x2a9481['min'])&&_0xa9ebe0<=_0x2a9481['max'];}[a0_0x1eff8c(0xcc)](_0x1e29e7){if(!VALID_QUEUE_NAMES['includes'](_0x1e29e7))return{'valid':![],'errors':['Queue\x20\x22'+_0x1e29e7+'\x22\x20tidak\x20valid.\x20Pilihan:\x20'+VALID_QUEUE_NAMES['join'](',\x20')]};return{'valid':!![],'errors':[]};}[a0_0x1eff8c(0xc8)](_0x56d3fe){const _0x980d28=a0_0x1eff8c,_0x546e4d={'jSyiB':function(_0x3c72fc,_0x17b505){return _0x3c72fc!==_0x17b505;},'xjVvs':'number','HpHCj':function(_0x5edb7d,_0x134470){return _0x5edb7d<_0x134470;},'CSWEN':function(_0x36abd1,_0x1dff99){return _0x36abd1>_0x1dff99;},'fMFgm':_0x980d28(0xb7),'MXWin':function(_0x2bb9da,_0x22e4fe){return _0x2bb9da!==_0x22e4fe;},'YDusm':function(_0x11d4c3,_0x44fbaa){return _0x11d4c3<=_0x44fbaa;},'aKgJe':'Field\x20\x22retry.initialDelay\x22\x20harus\x20number\x20>\x200\x20(dalam\x20ms)'},_0x361d3b=[];return _0x56d3fe[_0x980d28(0xd5)]!==undefined&&((_0x546e4d['jSyiB'](typeof _0x56d3fe[_0x980d28(0xd5)],_0x546e4d[_0x980d28(0xa1)])||_0x546e4d['HpHCj'](_0x56d3fe[_0x980d28(0xd5)],0x1)||_0x546e4d['CSWEN'](_0x56d3fe[_0x980d28(0xd5)],0xa))&&_0x361d3b[_0x980d28(0xa4)](_0x980d28(0xb1))),_0x56d3fe['backoff']!==undefined&&(!VALID_BACKOFF_TYPES['includes'](_0x56d3fe['backoff'])&&_0x361d3b['push'](_0x980d28(0xc2)+VALID_BACKOFF_TYPES['join'](_0x546e4d['fMFgm'])+'\x22')),_0x546e4d['MXWin'](_0x56d3fe[_0x980d28(0x9d)],undefined)&&((typeof _0x56d3fe['initialDelay']!=='number'||_0x546e4d[_0x980d28(0xce)](_0x56d3fe[_0x980d28(0x9d)],0x0))&&_0x361d3b['push'](_0x546e4d[_0x980d28(0xc1)])),{'valid':_0x361d3b[_0x980d28(0x8e)]===0x0,'errors':_0x361d3b};}[a0_0x1eff8c(0xa8)](_0x3a4dfc,_0x3079e5){const _0x2b85d0=a0_0x1eff8c,_0x3e0b4a={'yDAif':'jobs'},_0x3054f8=path[_0x2b85d0(0xb6)](_0x3079e5,'src',_0x3e0b4a['yDAif'],_0x3a4dfc+'.js');if(!fs['existsSync'](_0x3054f8))return{'valid':![],'errors':['Handler\x20file\x20tidak\x20ditemukan:\x20src/jobs/'+_0x3a4dfc+_0x2b85d0(0xb3)+_0x3054f8+')']};return{'valid':!![],'errors':[]};}}function a0_0x18d8(_0x21f13e,_0xf1edb){_0x21f13e=_0x21f13e-0x89;const _0x1edce9=a0_0x1edc();let _0x18d828=_0x1edce9[_0x21f13e];if(a0_0x18d8['XmuGQp']===undefined){var _0x309b12=function(_0xdc5732){const _0x100d2d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5bff85='',_0x5a6fc5='';for(let _0x18aae1=0x0,_0x5761c5,_0xedb4b1,_0x5932d7=0x0;_0xedb4b1=_0xdc5732['charAt'](_0x5932d7++);~_0xedb4b1&&(_0x5761c5=_0x18aae1%0x4?_0x5761c5*0x40+_0xedb4b1:_0xedb4b1,_0x18aae1++%0x4)?_0x5bff85+=String['fromCharCode'](0xff&_0x5761c5>>(-0x2*_0x18aae1&0x6)):0x0){_0xedb4b1=_0x100d2d['indexOf'](_0xedb4b1);}for(let _0x20e930=0x0,_0xe2a0ea=_0x5bff85['length'];_0x20e930<_0xe2a0ea;_0x20e930++){_0x5a6fc5+='%'+('00'+_0x5bff85['charCodeAt'](_0x20e930)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5a6fc5);};a0_0x18d8['NioPrY']=_0x309b12,a0_0x18d8['QpPmYl']={},a0_0x18d8['XmuGQp']=!![];}const _0x5ac57b=_0x1edce9[0x0],_0x3c72be=_0x21f13e+_0x5ac57b,_0x24c3f4=a0_0x18d8['QpPmYl'][_0x3c72be];return!_0x24c3f4?(_0x18d828=a0_0x18d8['NioPrY'](_0x18d828),a0_0x18d8['QpPmYl'][_0x3c72be]=_0x18d828):_0x18d828=_0x24c3f4,_0x18d828;}module['exports']=new JobValidator();