@restforgejs/platform 5.0.0 → 5.0.3
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.
- package/build-info.json +2 -2
- package/cli/consumer-deploy.js +1 -1
- package/cli/consumer.js +1 -1
- package/generators/cli/init.js +4 -104
- package/generators/cli/payload/migrate.js +1 -1
- package/generators/cli/schema/list.js +82 -18
- package/generators/cli/schema/migrate.js +23 -3
- package/generators/lib/dbschema-kit/diff-engine.js +715 -715
- package/generators/lib/migrate/field-type-resolver.js +9 -3
- package/generators/lib/migrate/migrate-runner.js +244 -38
- package/generators/lib/migrate/naming.js +9 -0
- package/generators/lib/payload/payload-runner.js +20 -0
- package/generators/lib/templates/dashboard-catalog.js +1 -1
- package/generators/lib/templates/db-connection-env.js +1 -1
- package/generators/lib/templates/dbschema-catalog.js +1 -1
- package/generators/lib/templates/field-validation-catalog.js +1 -1
- package/generators/lib/templates/mysql-template.js +1 -1
- package/generators/lib/templates/oracle-template.js +1 -1
- package/generators/lib/templates/postgres-template.js +1 -1
- package/generators/lib/templates/query-declarative-catalog.js +1 -1
- package/generators/lib/templates/sqlite-template.js +1 -1
- package/integrity-manifest.json +18 -18
- package/package.json +1 -1
- package/scripts/verify-integrity.js +1 -1
- package/server.js +1 -1
- package/src/components/handlers/adjust_handler.js +1 -1
- package/src/components/handlers/audit_handler.js +1 -1
- package/src/components/handlers/delete_handler.js +1 -1
- package/src/components/handlers/export_handler.js +1 -1
- package/src/components/handlers/import_handler.js +1 -1
- package/src/components/handlers/insert_handler.js +1 -1
- package/src/components/handlers/update_handler.js +1 -1
- package/src/components/handlers/upload_handler.js +1 -1
- package/src/components/handlers/workflow_handler.js +1 -1
- package/src/components/integrations/webhook.js +1 -1
- package/src/consumers/baseConsumer.js +1 -1
- package/src/consumers/declarativeMapper.js +1 -1
- package/src/consumers/handlers/apiHandler.js +1 -1
- package/src/consumers/handlers/consoleHandler.js +1 -1
- package/src/consumers/handlers/databaseHandler.js +1 -1
- package/src/consumers/handlers/index.js +1 -1
- package/src/consumers/handlers/kafkaHandler.js +1 -1
- package/src/consumers/index.js +1 -1
- package/src/consumers/messageTransformer.js +1 -1
- package/src/consumers/validator.js +1 -1
- package/src/core/db/dialect/base-dialect.js +1 -1
- package/src/core/db/dialect/index.js +1 -1
- package/src/core/db/dialect/mysql-dialect.js +1 -1
- package/src/core/db/dialect/oracle-dialect.js +1 -1
- package/src/core/db/dialect/postgres-dialect.js +1 -1
- package/src/core/db/dialect/sqlite-dialect.js +1 -1
- package/src/core/db/flatten-helper.js +1 -1
- package/src/core/db/query-builder-error.js +1 -1
- package/src/core/db/query-builder.js +1 -1
- package/src/core/db/relation-helper.js +1 -1
- package/src/core/handlers/delete_handler.js +1 -1
- package/src/core/handlers/insert_handler.js +1 -1
- package/src/core/handlers/update_handler.js +1 -1
- package/src/core/models/base-model.js +1 -1
- package/src/core/utils/cache-manager.js +1 -1
- package/src/core/utils/component-engine.js +1 -1
- package/src/core/utils/context-builder.js +1 -1
- package/src/core/utils/datetime-formatter.js +1 -1
- package/src/core/utils/datetime-parser.js +1 -1
- package/src/core/utils/db.js +1 -1
- package/src/core/utils/logger.js +1 -1
- package/src/core/utils/payload-loader.js +1 -1
- package/src/core/utils/security-checks.js +1 -1
- package/src/middleware/body-options.js +1 -1
- package/src/middleware/cors.js +1 -1
- package/src/middleware/idempotency.js +1 -1
- package/src/middleware/rate-limiter.js +1 -1
- package/src/middleware/request-logger.js +1 -1
- package/src/middleware/security-headers.js +1 -1
- package/src/models/base-model-mysql.js +1 -1
- package/src/models/base-model-oracle.js +1 -1
- package/src/models/base-model-sqlite.js +1 -1
- package/src/models/base-model.js +1 -1
- package/src/pro/caching/redis-client.js +1 -1
- package/src/pro/caching/redis-helper.js +1 -1
- package/src/pro/consumers/baseConsumer.js +1 -1
- package/src/pro/consumers/declarativeMapper.js +1 -1
- package/src/pro/consumers/handlers/apiHandler.js +1 -1
- package/src/pro/consumers/handlers/consoleHandler.js +1 -1
- package/src/pro/consumers/handlers/databaseHandler.js +1 -1
- package/src/pro/consumers/handlers/index.js +1 -1
- package/src/pro/consumers/handlers/kafkaHandler.js +1 -1
- package/src/pro/consumers/index.js +1 -1
- package/src/pro/consumers/messageTransformer.js +1 -1
- package/src/pro/consumers/validator.js +1 -1
- package/src/pro/database/base-model-mysql.js +1 -1
- package/src/pro/database/base-model-oracle.js +1 -1
- package/src/pro/database/base-model-sqlite.js +1 -1
- package/src/pro/database/db-mysql.js +1 -1
- package/src/pro/database/db-oracle.js +1 -1
- package/src/pro/database/db-sqlite.js +1 -1
- package/src/pro/excel/excel-generator.js +1 -1
- package/src/pro/excel/excel-parser.js +1 -1
- package/src/pro/excel/export-service.js +1 -1
- package/src/pro/excel/export_handler.js +1 -1
- package/src/pro/excel/import-service.js +1 -1
- package/src/pro/excel/import-validator.js +1 -1
- package/src/pro/excel/import_handler.js +1 -1
- package/src/pro/excel/upsert-builder.js +1 -1
- package/src/pro/idgen/idgen-routes.js +1 -1
- package/src/pro/integrations/lookup-resolver.js +1 -1
- package/src/pro/integrations/upload-handler-v2.js +1 -1
- package/src/pro/integrations/upload-handler.js +1 -1
- package/src/pro/integrations/webhook.js +1 -1
- package/src/pro/locking/lock-routes.js +1 -1
- package/src/pro/locking/resource-lock-manager.js +1 -1
- package/src/pro/messaging/kafkaConsumerService.js +1 -1
- package/src/pro/messaging/kafkaService.js +1 -1
- package/src/pro/messaging/messagehubService.js +1 -1
- package/src/pro/messaging/rabbitmqService.js +1 -1
- package/src/pro/scheduler/job-manager.js +1 -1
- package/src/pro/scheduler/job-routes.js +1 -1
- package/src/pro/scheduler/job-validator.js +1 -1
- package/src/pro/storage/base-storage-provider.js +1 -1
- package/src/pro/storage/file-metadata-helper.js +1 -1
- package/src/pro/storage/index.js +1 -1
- package/src/pro/storage/local-storage-provider.js +1 -1
- package/src/pro/storage/s3-storage-provider.js +1 -1
- package/src/pro/storage/upload-cleanup-job.js +1 -1
- package/src/pro/storage/upload-cleanup-scheduler.js +1 -1
- package/src/pro/storage/upload-pending-tracker.js +1 -1
- package/src/pro/websocket/broadcast-helper.js +1 -1
- package/src/pro/websocket/index.js +1 -1
- package/src/pro/websocket/livesync-server.js +1 -1
- package/src/pro/websocket/ws-broadcaster.js +1 -1
- package/src/services/export-service.js +1 -1
- package/src/services/import-service.js +1 -1
- package/src/services/kafkaConsumerService.js +1 -1
- package/src/services/kafkaService.js +1 -1
- package/src/services/messagehubService.js +1 -1
- package/src/services/rabbitmqService.js +1 -1
- package/src/utils/cache-invalidation-registry.js +1 -1
- package/src/utils/cache-manager.js +1 -1
- package/src/utils/component-engine.js +1 -1
- package/src/utils/config-extractor.js +1 -1
- package/src/utils/consumerLogger.js +1 -1
- package/src/utils/context-builder.js +1 -1
- package/src/utils/dashboard-helpers.js +1 -1
- package/src/utils/dateHelper.js +1 -1
- package/src/utils/datetime-formatter.js +1 -1
- package/src/utils/datetime-parser.js +1 -1
- package/src/utils/db-bootstrap.js +1 -1
- package/src/utils/db-mysql.js +1 -1
- package/src/utils/db-oracle.js +1 -1
- package/src/utils/db-sqlite.js +1 -1
- package/src/utils/db.js +1 -1
- package/src/utils/demo-generator.js +1 -1
- package/src/utils/excel-generator.js +1 -1
- package/src/utils/excel-parser.js +1 -1
- package/src/utils/file-watcher.js +1 -1
- package/src/utils/id-generator.js +1 -1
- package/src/utils/idempotency-manager.js +1 -1
- package/src/utils/import-validator.js +1 -1
- package/src/utils/license-client.js +1 -1
- package/src/utils/lock-manager.js +1 -1
- package/src/utils/logger.js +1 -1
- package/src/utils/lookup-resolver.js +1 -1
- package/src/utils/payload-loader.js +1 -1
- package/src/utils/processor-response.js +1 -1
- package/src/utils/rabbitmq.js +1 -1
- package/src/utils/redis-client.js +1 -1
- package/src/utils/redis-helper.js +1 -1
- package/src/utils/request-scope.js +1 -1
- package/src/utils/security-checks.js +1 -1
- package/src/utils/service-resolver.js +1 -1
- package/src/utils/shutdown-coordinator.js +1 -1
- package/src/utils/trusted-keys.js +1 -1
- package/src/utils/upload-handler.js +1 -1
- package/src/utils/upsert-builder.js +1 -1
- package/src/utils/workflow-hook-executor.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
function a0_0x225e(_0x25aad0,_0x44d6be){_0x25aad0=_0x25aad0-0x1f3;const _0x3df48d=a0_0x3df4();let _0x225e6c=_0x3df48d[_0x25aad0];if(a0_0x225e['lKZVXv']===undefined){var _0x1a0159=function(_0x1fa50d){const _0x1a7b7b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x34ceeb='',_0x25bde7='';for(let _0x31a460=0x0,_0x530ff0,_0xb86e2f,_0x3acfac=0x0;_0xb86e2f=_0x1fa50d['charAt'](_0x3acfac++);~_0xb86e2f&&(_0x530ff0=_0x31a460%0x4?_0x530ff0*0x40+_0xb86e2f:_0xb86e2f,_0x31a460++%0x4)?_0x34ceeb+=String['fromCharCode'](0xff&_0x530ff0>>(-0x2*_0x31a460&0x6)):0x0){_0xb86e2f=_0x1a7b7b['indexOf'](_0xb86e2f);}for(let _0x442cc8=0x0,_0x397290=_0x34ceeb['length'];_0x442cc8<_0x397290;_0x442cc8++){_0x25bde7+='%'+('00'+_0x34ceeb['charCodeAt'](_0x442cc8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x25bde7);};a0_0x225e['VBZVLd']=_0x1a0159,a0_0x225e['lGjBhu']={},a0_0x225e['lKZVXv']=!![];}const _0x3a7f84=_0x3df48d[0x0],_0x41953d=_0x25aad0+_0x3a7f84,_0x45bc71=a0_0x225e['lGjBhu'][_0x41953d];return!_0x45bc71?(_0x225e6c=a0_0x225e['VBZVLd'](_0x225e6c),a0_0x225e['lGjBhu'][_0x41953d]=_0x225e6c):_0x225e6c=_0x45bc71,_0x225e6c;}const a0_0x376222=a0_0x225e;(function(_0x1a1fa0,_0x45365a){const _0x37fc12=a0_0x225e,_0x850c2e=_0x1a1fa0();while(!![]){try{const _0x264a75=-parseInt(_0x37fc12(0x228))/0x1*(parseInt(_0x37fc12(0x216))/0x2)+-parseInt(_0x37fc12(0x212))/0x3*(parseInt(_0x37fc12(0x249))/0x4)+parseInt(_0x37fc12(0x24b))/0x5*(-parseInt(_0x37fc12(0x21a))/0x6)+-parseInt(_0x37fc12(0x1f6))/0x7+parseInt(_0x37fc12(0x213))/0x8*(parseInt(_0x37fc12(0x1f3))/0x9)+parseInt(_0x37fc12(0x1fd))/0xa+parseInt(_0x37fc12(0x21f))/0xb;if(_0x264a75===_0x45365a)break;else _0x850c2e['push'](_0x850c2e['shift']());}catch(_0x5a1a67){_0x850c2e['push'](_0x850c2e['shift']());}}}(a0_0x3df4,0x24b8a));function a0_0x3df4(){const _0x3b2438=['ChjVCgvYDgLLCW','y29UzMLN','nteXndCWm0fxugrpra','z2v0vgLTzq','yMLUzff1zxvL','vhj5Aw5NigfSDgvYBMf0AxzLihf1zxvLig5HBwuUlI4','xsbfCNjVCIbZywf0ihnLDhvWigLUzNjHC3rYDwT0Dxi6ia','lI4VDxrPBhmVzgf0zuHLBhbLCG','wNjkrgC','xsbdyw5UB3qGC3rHCNqGy29UC3vTAw5NoIbUB3qGy29UBMvJDgvKihrVifjHyMjPDe1r','ignYzwf0zwq','mJuWmtmYEMj5C3HN','zgLYzwn0','zxjYB3i','rKrkDgK','BwvZC2fNzuHHBMrSzxjZ','yxv0B19YzxrYEq','DNLprhu','C2vUzfrVuxvLDwu','yuDeBuy','ignYzwf0zwqVCMvHzhK','xsbqCMvMzxrJAcbKAwf0DxiGA2uGmq','ywnR','CMvJB25Uzwn0','ChvIBgLZAa','Dg9tDhjPBMC','Aw5PDgLHBgL6zq','C3rYAw5NAwz5','C2v0DxbdB2XSzwn0B3jjBMzYyxn0CNvJDhvYzq','teD6teS','ksbJCMvHDgvK','re1AqwS','zw52','EfzSthG','yKDmy1q','shHJt3C','yxnZzxj0uxvLDwu','xsbgywLSzwqGDg8GCgfYC2uGBwvZC2fNztOG','rgf0ysbZzw50ihrVihf1zxvLihn1y2nLC3nMDwXSEq','zNjVBq','zxHWB3j0CW','ChjVy2vZC01LC3nHz2u','swzxwKK','zLPzzxq','mty5nZmYDe5tC1fu','thz5BxC','mJiWmJaWA1vAwMTn','y29UDgvUDa','y29UBMvJDgLVBG','CxvLDwuT','CMvNAxn0zxjnzxnZywDLsgfUzgXLCG','ouH0DfLVsq','yxnZzxj0rxHJAgfUz2u','zu9gv2m','nJKZndiWuLvvrNrL','xsbcAw5KAw5Nia','CxvLDwu','CM91DgLUz0TLEq','AxndB25Uzwn0zwq','zM91BMq','y3jLyxrLzc9YzwfKEq','mJeZndyXmgz6sufdzq','twvZC2fNzsbJB250zw50oIa','xsblB25LA3nPifjHyMjPDe1rihrLCNb1DhvZ','igLZigfSCMvHzhKGAw4GDxnLihDPDgGGysbKAwzMzxjLBNqGCM91DgLUzYbRzxKU','Aw5LCxvPDMfSzw50igfYzW','Dg9ju09tDhjPBMC','zxHJAgfUz2u','y2HHBM5LBa','xsbnzxnZywDLihnLBNqGDg8GuMfIyML0tveGC3vJy2vZC2z1BgX5oG','r3vUzfG','Aw5JBhvKzxm','xsbtDwnJzxnZzNvSBhKGCMvJB25Uzwn0zwqGDg8GuMfIyML0tve','xsbgywLSzwqGDg8GC3rHCNqGy29UC3vTAw5NoIa','zgvMyxvSDa','ihDPDgGGreXy','Bg9N','C3vIC3rYAw5N','ignYzwf0zwqGD2L0AcbetfG','wuTywLe','xsbfEgnOyw5Nzsa','BwvZC2fNzq','nNrjBNL0rG','mZa1mJmYwMHUu2HL','BMfJAW','xsbfCNjVCIbWCM9JzxnZAw5Nig1LC3nHz2u6ia','mKTXDgvfBW','xsbfuLjpuJOGuxvLDwuG','xsbszxrYEsbIAw5KAw5NigzVCIa','xsbfCNjVCIbJCMvHDgLUzYbXDwv1zsa','mtHns3n2uK8','BfbhAuG','Ec1KzwfKlwXLDhrLCI1YB3v0Aw5NlwTLEq'];a0_0x3df4=function(){return _0x3b2438;};return a0_0x3df4();}const {createConnection,createChannel,setupInfrastructure,closeConnection,getConfig}=require('../utils/rabbitmq'),{formatDate}=require(a0_0x376222(0x224));class RabbitMQService{constructor(){const _0x3f85db=a0_0x376222;this['connection']=null,this[_0x3f85db(0x204)]=null,this[_0x3f85db(0x21e)]=getConfig(),this['isConnected']=![],this[_0x3f85db(0x22c)]=[];}async[a0_0x376222(0x237)](){const _0x467f71=a0_0x376222,_0x4f2a99={'eOFWc':function(_0x43a553,_0x4ddcea){return _0x43a553(_0x4ddcea);},'IMITf':function(_0x17557f,_0x5ccf90){return _0x17557f(_0x5ccf90);}};try{return this[_0x467f71(0x24d)]=await createConnection(),this[_0x467f71(0x204)]=await _0x4f2a99['eOFWc'](createChannel,this['connection']),await this[_0x467f71(0x204)]['prefetch'](0x1),console[_0x467f71(0x20c)]('['+_0x4f2a99[_0x467f71(0x1f5)](formatDate,new Date())+_0x467f71(0x232)),await _0x4f2a99['eOFWc'](setupInfrastructure,this['channel']),this['isConnected']=!![],this['connection']['on']('close',()=>{const _0x3272c8=_0x467f71;console['error']('['+formatDate(new Date())+_0x3272c8(0x1ff)),this['isConnected']=![],setTimeout(()=>this[_0x3272c8(0x234)](),0x1388);}),!![];}catch(_0x27c7f8){return console['error']('['+_0x4f2a99['IMITf'](formatDate,new Date())+']\x20Failed\x20to\x20initialize\x20RabbitMQ:\x20'+_0x27c7f8['message']),this[_0x467f71(0x1fa)]=![],![];}}async['reconnect'](){const _0x58d28c=a0_0x376222,_0x53b67b={'vyODu':function(_0x16a67b,_0x3d9852){return _0x16a67b(_0x3d9852);},'IfWZI':function(_0x2614b4,_0x155d46){return _0x2614b4(_0x155d46);}};console['log']('['+formatDate(new Date())+']\x20Attempting\x20to\x20reconnect\x20to\x20RabbitMQ...');try{await this['initialize'](),this['isConnected']&&(console[_0x58d28c(0x20c)]('['+_0x53b67b[_0x58d28c(0x22e)](formatDate,new Date())+_0x58d28c(0x208)),await this['startConsume']());}catch(_0x3ee631){console[_0x58d28c(0x22a)]('['+_0x53b67b[_0x58d28c(0x247)](formatDate,new Date())+']\x20Failed\x20to\x20reconnect\x20to\x20RabbitMQ:\x20'+_0x3ee631[_0x58d28c(0x211)]),setTimeout(()=>this[_0x58d28c(0x234)](),0x1388);}}async[a0_0x376222(0x239)](_0x216734){const _0xf0f115=a0_0x376222,_0x5a51ad={'DQPaS':function(_0x1d8024,_0x5bc782){return _0x1d8024(_0x5bc782);},'lPGiH':_0xf0f115(0x20a),'xVlLx':_0xf0f115(0x229),'Lvymw':function(_0x5df8ce,_0x4a1956){return _0x5df8ce(_0x4a1956);},'FDJti':function(_0x48dd85,_0x4611c6){return _0x48dd85===_0x4611c6;},'yvasQ':_0xf0f115(0x1fb),'YKXZQ':_0xf0f115(0x201)};try{!this['isConnected']&&(this[_0xf0f115(0x24d)]=await createConnection(),this['channel']=await _0x5a51ad['DQPaS'](createChannel,this['connection']),this[_0xf0f115(0x1fa)]=!![]);const _0x8d911a=process[_0xf0f115(0x23d)]['RESTFORGE_PROJECT_NAME']||_0x5a51ad[_0xf0f115(0x21b)],_0x324f87=_0x8d911a+'-retry-exchange';await this[_0xf0f115(0x204)][_0xf0f115(0x1f4)](_0x324f87,_0x5a51ad['xVlLx'],{'durable':!![],'autoDelete':![]}),console[_0xf0f115(0x20c)]('['+formatDate(new Date())+']\x20Retry\x20exchange\x20'+_0x324f87+_0xf0f115(0x231)),await this[_0xf0f115(0x204)][_0xf0f115(0x1f4)](_0x216734['exchange'],_0x5a51ad[_0xf0f115(0x23e)],{'durable':!![],'autoDelete':![]}),console[_0xf0f115(0x20c)]('['+formatDate(new Date())+_0xf0f115(0x210)+_0x216734[_0xf0f115(0x203)]+_0xf0f115(0x231));const _0x25a825=_0x216734[_0xf0f115(0x1f9)]+'_retry',_0xe0823d={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':_0x216734[_0xf0f115(0x203)],'x-dead-letter-routing-key':_0x216734['routingKey']}};await this[_0xf0f115(0x204)]['assertQueue'](_0x25a825,_0xe0823d),console['log']('['+formatDate(new Date())+']\x20Retry\x20queue\x20'+_0x25a825+'\x20created/ready'),await this['channel']['bindQueue'](_0x25a825,_0x324f87,_0x216734['routingKey']),console['log']('['+formatDate(new Date())+_0xf0f115(0x218)+_0x216734[_0xf0f115(0x1f9)]+_0xf0f115(0x227));const _0x2e3a89={'durable':!![],'arguments':{'x-dead-letter-exchange':_0x324f87,'x-dead-letter-routing-key':_0x216734['routingKey']}};try{const _0x597266=await this['channel']['assertQueue'](_0x216734[_0xf0f115(0x1f8)],_0x2e3a89);console['log']('['+_0x5a51ad[_0xf0f115(0x24a)](formatDate,new Date())+']\x20Queue\x20'+_0x216734['queue']+'\x20'+(_0x5a51ad[_0xf0f115(0x22b)](_0x597266['queue'],_0x216734['queue'])?_0xf0f115(0x1fc):_0x5a51ad['yvasQ'])+_0xf0f115(0x20b)),await this['channel'][_0xf0f115(0x221)](_0x216734['queue'],_0x216734[_0xf0f115(0x203)],_0x216734['routingKey']),console[_0xf0f115(0x20c)]('['+_0x5a51ad[_0xf0f115(0x24a)](formatDate,new Date())+_0xf0f115(0x1f7)+_0x216734['exchange']+'\x20->\x20'+_0x216734[_0xf0f115(0x1f8)]+'\x20('+_0x216734['routingKey']+_0xf0f115(0x23b));}catch(_0x564b15){if(_0x564b15['message'][_0xf0f115(0x207)](_0x5a51ad[_0xf0f115(0x20f)])&&_0x564b15[_0xf0f115(0x211)]['includes'](_0xf0f115(0x21c))){console['error']('\x0a['+formatDate(new Date())+_0xf0f115(0x217)+_0x216734[_0xf0f115(0x1f8)]+_0xf0f115(0x200)),console[_0xf0f115(0x22a)](_0xf0f115(0x222));const _0x1de0aa=_0x216734['routingKey']+'_queue',_0x90d825=await this['channel'][_0xf0f115(0x241)](_0x1de0aa,_0x2e3a89);console[_0xf0f115(0x20c)]('['+formatDate(new Date())+']\x20Alternative\x20queue\x20'+_0x1de0aa+_0xf0f115(0x20e)),await this['channel']['bindQueue'](_0x1de0aa,_0x216734['exchange'],_0x216734[_0xf0f115(0x1f9)]),console['log']('['+formatDate(new Date())+_0xf0f115(0x1f7)+_0x216734['exchange']+'\x20->\x20'+_0x1de0aa+'\x20('+_0x216734[_0xf0f115(0x1f9)]+')\x20created'),_0x216734[_0xf0f115(0x1f8)]=_0x1de0aa;}else{console[_0xf0f115(0x22a)]('['+formatDate(new Date())+_0xf0f115(0x219)+_0x216734[_0xf0f115(0x1f8)]+':',_0x564b15['message']);throw _0x564b15;}}return!![];}catch(_0x4acd63){return console[_0xf0f115(0x22a)]('['+_0x5a51ad['DQPaS'](formatDate,new Date())+_0xf0f115(0x223)+_0x4acd63['message']),![];}}async[a0_0x376222(0x22f)](_0x9e68fe,_0x235615){const _0x71f832=a0_0x376222,_0x3a5f94={'LGzLK':function(_0x24599c,_0x1a4ba7){return _0x24599c(_0x1a4ba7);},'HxcOw':_0x71f832(0x243),'fZYet':'Failed\x20to\x20send\x20message\x20to\x20RabbitMQ'};if(!this['isConnected'])try{await this['initialize']();}catch(_0x1b6408){return{'success':![],'message':'Cannot\x20connect\x20to\x20RabbitMQ:\x20'+_0x1b6408['message'],'data':null};}try{const _0xa10cee=_0x235615[_0x71f832(0x22d)]!==undefined?_0x235615['auto_retry']:![],_0x8a7cb0=_0x235615['max_retries']||0x3,_0x5ae50d={'rabbitmq':{'exchange':_0x235615[_0x71f832(0x203)],'queue':_0x235615[_0x71f832(0x1f8)],'routing_key':_0x235615[_0x71f832(0x1f9)],'auto_retry':_0xa10cee,'max_retries':_0x8a7cb0},'message':_0x9e68fe};await this[_0x71f832(0x239)](_0x235615);const _0x689880=new Date(),_0x2251af={'timestamp':_0x689880[_0x71f832(0x202)](),'content':JSON[_0x71f832(0x238)](_0x5ae50d)},_0x183fd3=this[_0x71f832(0x204)][_0x71f832(0x235)](_0x235615['exchange'],_0x235615[_0x71f832(0x1f9)],Buffer[_0x71f832(0x244)](JSON['stringify'](_0x2251af)),{'persistent':!![],'contentType':'application/json','timestamp':_0x689880['getTime'](),'messageId':_0x689880['getTime']()+'-'+Math['random']()['toString'](0x24)[_0x71f832(0x20d)](0x7),'headers':{'x-auto-retry':_0xa10cee,'x-max-retry':_0x8a7cb0,'x-retry-count':0x0,'x-retry-interval':0x2710}});if(_0x183fd3){console['log']('['+_0x3a5f94[_0x71f832(0x23a)](formatDate,_0x689880)+_0x71f832(0x205),{'exchange':_0x235615['exchange'],'routing_key':_0x235615['routingKey'],'queue':_0x235615[_0x71f832(0x1f8)],'sendAt':_0x689880['toISOString']()});const _0x33e1ec=_0x71f832(0x24e)+_0x689880[_0x71f832(0x220)]()+'-'+Math['random']()[_0x71f832(0x236)](0x24)[_0x71f832(0x20d)](0x7);return{'success':!![],'message':_0x3a5f94[_0x71f832(0x240)],'data':{'id':_0x33e1ec,'queueInfo':{'exchange':_0x235615[_0x71f832(0x203)],'queue':_0x235615[_0x71f832(0x1f8)],'routingKey':_0x235615[_0x71f832(0x1f9)]}}};}else throw new Error(_0x3a5f94[_0x71f832(0x248)]);}catch(_0xe9be3f){return console['error']('['+formatDate(new Date())+']\x20Error\x20sending\x20to\x20RabbitMQ:\x20'+_0xe9be3f[_0x71f832(0x211)]),{'success':![],'message':'Error:\x20'+_0xe9be3f['message'],'data':null};}}[a0_0x376222(0x24f)](_0x4f10dc){const _0x225c86=a0_0x376222,_0x4a00a7={'ZrJDg':function(_0xb1caad,_0x12149a){return _0xb1caad===_0x12149a;}};_0x4a00a7[_0x225c86(0x225)](typeof _0x4f10dc,'function')?(this[_0x225c86(0x22c)]['push'](_0x4f10dc),console['log']('['+formatDate(new Date())+']\x20Message\x20handler\x20registered')):console[_0x225c86(0x22a)]('['+formatDate(new Date())+']\x20Message\x20handler\x20must\x20be\x20a\x20function');}async[a0_0x376222(0x246)](_0x4f8c98){const _0x4d0469=a0_0x376222,_0x574435={'DMZAk':function(_0x4f947d,_0x287656){return _0x4f947d(_0x287656);},'trtGm':function(_0x5a8187,_0x4d7a8a){return _0x5a8187(_0x4d7a8a);}};if(this['messageHandlers']['length']===0x0)return console['warn']('['+formatDate(new Date())+']\x20No\x20handlers\x20registered\x20to\x20process\x20messages'),!![];try{for(const _0x474f35 of this[_0x4d0469(0x22c)]){await _0x574435[_0x4d0469(0x23c)](_0x474f35,_0x4f8c98);}return!![];}catch(_0x49c4a2){return console[_0x4d0469(0x22a)]('['+_0x574435['trtGm'](formatDate,new Date())+_0x4d0469(0x215)+_0x49c4a2['message']),![];}}async['startConsume'](){const _0x11bd17=a0_0x376222,_0x226bf9={'NTHur':function(_0x429cea,_0x12e4cf){return _0x429cea!==_0x12e4cf;},'bGLcT':function(_0x472039,_0x50ff35){return _0x472039(_0x50ff35);},'aGDmF':'---'};if(!this[_0x11bd17(0x1fa)])return console[_0x11bd17(0x22a)]('['+_0x226bf9[_0x11bd17(0x23f)](formatDate,new Date())+_0x11bd17(0x226)),![];try{return console['log']('['+formatDate(new Date())+']\x20Start\x20consuming\x20messages\x20from\x20queue\x20\x22'+this['config']['queue']+'\x22...'),this['channel']['consume'](this['config']['queue'],async _0x1529b1=>{const _0x530448=_0x11bd17;if(_0x226bf9['NTHur'](_0x1529b1,null)){const _0x382cef=new Date();let _0x4e3b05;try{_0x4e3b05=JSON['parse'](_0x1529b1['content']['toString']());}catch(_0x58eb16){console['error']('['+_0x226bf9[_0x530448(0x23f)](formatDate,_0x382cef)+_0x530448(0x242)+_0x58eb16['message']),console['error'](_0x530448(0x1fe)+_0x1529b1[_0x530448(0x24c)]['toString']()),this['channel'][_0x530448(0x233)](_0x1529b1);return;}const _0x2880ec=_0x1529b1['properties']['timestamp']?new Date(_0x1529b1[_0x530448(0x21d)]['timestamp']):new Date(),_0x43d398=await this[_0x530448(0x246)](_0x4e3b05);_0x43d398?(console['log']('['+formatDate(new Date())+']\x20Message\x20processed\x20successfully'),this['channel'][_0x530448(0x233)](_0x1529b1)):(console[_0x530448(0x22a)]('['+formatDate(new Date())+']\x20Failed\x20to\x20process\x20message,\x20requeuing'),this['channel'][_0x530448(0x214)](_0x1529b1,![],!![])),console['log'](_0x226bf9[_0x530448(0x230)]);}},{'noAck':![]}),!![];}catch(_0x2c6129){return console[_0x11bd17(0x22a)]('['+formatDate(new Date())+_0x11bd17(0x209)+_0x2c6129[_0x11bd17(0x211)]),![];}}async['close'](){const _0x4473e1=a0_0x376222,_0x4346c9={'GundX':function(_0x2e8716,_0x2b92ce){return _0x2e8716(_0x2b92ce);}};this['connection']&&(await _0x4346c9[_0x4473e1(0x206)](closeConnection,this[_0x4473e1(0x24d)]),this['isConnected']=![]);}}let instance=null;function getInstance(){return!instance&&(instance=new RabbitMQService()),instance;}module[a0_0x376222(0x245)]={'getInstance':getInstance};
|
|
1
|
+
function a0_0x2494(_0x1f9e45,_0x509946){_0x1f9e45=_0x1f9e45-0x8d;const _0x8c5f90=a0_0x8c5f();let _0x249461=_0x8c5f90[_0x1f9e45];if(a0_0x2494['MRzxOU']===undefined){var _0x52851f=function(_0x229abd){const _0x1b9213='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5a0e8f='',_0x1b9f10='';for(let _0x4e4278=0x0,_0x1ce5d9,_0xe1dd72,_0x16f9bf=0x0;_0xe1dd72=_0x229abd['charAt'](_0x16f9bf++);~_0xe1dd72&&(_0x1ce5d9=_0x4e4278%0x4?_0x1ce5d9*0x40+_0xe1dd72:_0xe1dd72,_0x4e4278++%0x4)?_0x5a0e8f+=String['fromCharCode'](0xff&_0x1ce5d9>>(-0x2*_0x4e4278&0x6)):0x0){_0xe1dd72=_0x1b9213['indexOf'](_0xe1dd72);}for(let _0x297e10=0x0,_0x5543d4=_0x5a0e8f['length'];_0x297e10<_0x5543d4;_0x297e10++){_0x1b9f10+='%'+('00'+_0x5a0e8f['charCodeAt'](_0x297e10)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1b9f10);};a0_0x2494['jUTneo']=_0x52851f,a0_0x2494['BbuTcO']={},a0_0x2494['MRzxOU']=!![];}const _0x190a27=_0x8c5f90[0x0],_0x4054fe=_0x1f9e45+_0x190a27,_0x800b78=a0_0x2494['BbuTcO'][_0x4054fe];return!_0x800b78?(_0x249461=a0_0x2494['jUTneo'](_0x249461),a0_0x2494['BbuTcO'][_0x4054fe]=_0x249461):_0x249461=_0x800b78,_0x249461;}const a0_0x22982a=a0_0x2494;(function(_0x3f4f78,_0x221184){const _0x2a5740=a0_0x2494,_0x188d57=_0x3f4f78();while(!![]){try{const _0x37078a=parseInt(_0x2a5740(0xa4))/0x1+parseInt(_0x2a5740(0xac))/0x2+parseInt(_0x2a5740(0x9c))/0x3+-parseInt(_0x2a5740(0xb2))/0x4+parseInt(_0x2a5740(0xcd))/0x5*(-parseInt(_0x2a5740(0x9e))/0x6)+-parseInt(_0x2a5740(0xaf))/0x7*(parseInt(_0x2a5740(0x90))/0x8)+-parseInt(_0x2a5740(0x9f))/0x9*(-parseInt(_0x2a5740(0x8f))/0xa);if(_0x37078a===_0x221184)break;else _0x188d57['push'](_0x188d57['shift']());}catch(_0x27cc5a){_0x188d57['push'](_0x188d57['shift']());}}}(a0_0x8c5f,0x7e615));const {createConnection,createChannel,setupInfrastructure,closeConnection,getConfig}=require(a0_0x22982a(0xd3)),{formatDate}=require('../utils/dateHelper');function a0_0x8c5f(){const _0x132d76=['Dg9tDhjPBMC','yxnZzxj0rxHJAgfUz2u','lI4VDxrPBhmVCMfIyML0Bxe','zNvUy3rPB24','yxv0B19YzxrYEq','BwvZC2fNzq','ENrsAuG','y29UzMLN','Aw5JBhvKzxm','zxHJAgfUz2u','xsbtDwnJzxnZzNvSBhKGCMvJB25Uzwn0zwqGDg8GuMfIyML0tve','DgLTzxn0yw1W','q2fUBM90ignVBM5Ly3qGDg8GuMfIyML0tve6ia','CxvLDwu','zxjYB3i','C3vIC3rYAw5N','q1vMzfa','xsbszxrYEsbIAw5KAw5NigzVCIa','x3jLDhj5','CgfYC2u','ndbeCezgyKe','mtm2DgzWq3rJ','tgL6s2q','xsbgywLSzwqGDg8GChjVy2vZCYbTzxnZywDLlcbYzxf1zxvPBMC','C3rHCNrdB25ZDw1L','C3rYAw5NAwz5','Dg9ju09tDhjPBMC','BgvUz3rO','y2XVC2u','xsbgywLSzwqGDg8GAw5PDgLHBgL6zsbsywjIAxrnutOG','xsbcAw5KAw5Nia','zM91BMq','yxnZzxj0uxvLDwu','mtuZotK1ngLmEeHLAa','C2v0DxbdB2XSzwn0B3jjBMzYyxn0CNvJDhvYzq','mtu0nZK0r0Pqu0j2','nJmWotu0DePbzKnY','AxndB25Uzwn0zwq','y29UBMvJDgLVBG','xsblB25LA3nPifjHyMjPDe1rihrLCNb1DhvZ','zMfvtvO','otK4mda5DxviqM1Z','ksbJCMvHDgvK','zxDpvLi','zvb2rNC','xsboBYbOyw5KBgvYCYbYzwDPC3rLCMvKihrVihbYB2nLC3mGBwvZC2fNzxm','Bwf4x3jLDhjPzxm','zwrkrum','xsbqCMvMzxrJAcbKAwf0DxiGA2uGmq','mte4ntm2y2Lmse5s','CNnTyw4','BwvZC2fNzuHHBMrSzxjZ','mZi2ndeWCeHZr0zb','CMfUzg9T','y3jLyxrLzc9YzwfKEq','nJe0nJG0z0n0v2zK','iI4UlG','ls0T','DwHtv0C','CM91DgLUz0TLEq','ignYzwf0zwqVCMvHzhK','nNW3Fdj8nhWWFdf8nxWZ','xsbbDhrLBxb0Aw5NihrVihjLy29UBMvJDcb0BYbsywjIAxrnus4UlG','yMLUzff1zxvL','Aw5PDgLHBgL6zq','q0nqD1u','xsbfCNjVCIbZzw5KAw5NihrVifjHyMjPDe1roIa','zgLYzwn0','CxvLDwuT','D2fYBG','z0XJB3q','xsbgywLSzwqGDg8GC3rHCNqGy29UC3vTAw5NoIa','rxjYB3i6ia','xsbfuLjpuJOGuxvLDwuG','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','Bg9N','y29UDgvUDa','ic0+ia','z2v0vgLTzq','lxjLDhj5lwv4y2HHBMDL','y2HHBM5LBa','xsbnzxnZywDLigHHBMrSzxiGCMvNAxn0zxjLza','nZvJswr4tNm','qxvste0','yKf3s0u','ywnR'];a0_0x8c5f=function(){return _0x132d76;};return a0_0x8c5f();}class RabbitMQService{constructor(){const _0x15df7b=a0_0x22982a,_0x37e760={'edJEC':function(_0x3b37d9){return _0x3b37d9();}};this[_0x15df7b(0xa1)]=null,this[_0x15df7b(0xcb)]=null,this['config']=_0x37e760[_0x15df7b(0xaa)](getConfig),this['isConnected']=![],this['messageHandlers']=[];}async['initialize'](){const _0x36d7d6=a0_0x22982a,_0x243a45={'faUMZ':function(_0x4af4f6,_0x5437e0){return _0x4af4f6(_0x5437e0);},'JlReI':function(_0x2e36e1,_0x129890,_0xd35cd7){return _0x2e36e1(_0x129890,_0xd35cd7);},'qsWBr':function(_0x49bfeb,_0x591b03){return _0x49bfeb(_0x591b03);},'ewOVR':'close'};try{const _0x32d0af=_0x36d7d6(0xb8)['split']('|');let _0x22be98=0x0;while(!![]){switch(_0x32d0af[_0x22be98++]){case'0':await _0x243a45['qsWBr'](setupInfrastructure,this[_0x36d7d6(0xcb)]);continue;case'1':this[_0x36d7d6(0xa0)]=!![];continue;case'2':await this[_0x36d7d6(0xcb)]['prefetch'](0x1);continue;case'3':return!![];case'4':console['log']('['+formatDate(new Date())+_0x36d7d6(0xab));continue;case'5':this[_0x36d7d6(0xa1)]['on'](_0x243a45[_0x36d7d6(0xa6)],()=>{const _0x1ab0a7=_0x36d7d6;console['error']('['+_0x243a45[_0x1ab0a7(0xa3)](formatDate,new Date())+_0x1ab0a7(0xa2)),this[_0x1ab0a7(0xa0)]=![],_0x243a45['JlReI'](setTimeout,()=>this['reconnect'](),0x1388);});continue;case'6':this[_0x36d7d6(0xa1)]=await createConnection();continue;case'7':this[_0x36d7d6(0xcb)]=await _0x243a45['qsWBr'](createChannel,this['connection']);continue;}break;}}catch(_0x45e60e){return console[_0x36d7d6(0xdf)]('['+formatDate(new Date())+_0x36d7d6(0x98)+_0x45e60e['message']),this['isConnected']=![],![];}}async['reconnect'](){const _0x33b47e=a0_0x22982a,_0x24874c={'rsman':function(_0x1294ca,_0xc081ee){return _0x1294ca(_0xc081ee);},'ecNON':function(_0x2e661f,_0x4abc39){return _0x2e661f(_0x4abc39);}};console['log']('['+_0x24874c[_0x33b47e(0xad)](formatDate,new Date())+_0x33b47e(0xb9));try{await this[_0x33b47e(0xbb)](),this['isConnected']&&(console[_0x33b47e(0xc6)]('['+formatDate(new Date())+_0x33b47e(0xdb)),await this[_0x33b47e(0x93)]());}catch(_0x1c18b9){console['error']('['+_0x24874c['ecNON'](formatDate,new Date())+']\x20Failed\x20to\x20reconnect\x20to\x20RabbitMQ:\x20'+_0x1c18b9[_0x33b47e(0xd6)]),setTimeout(()=>this['reconnect'](),0x1388);}}async['setupCollectorInfrastructure'](_0x13b819){const _0x5296b5=a0_0x22982a,_0x47fd08={'efIJs':_0x5296b5(0xbe),'ePvFw':function(_0x72f3a4,_0x5112a1){return _0x72f3a4(_0x5112a1);},'aHGCH':function(_0x4017ff,_0x3f4ac1){return _0x4017ff===_0x3f4ac1;},'CUfdP':_0x5296b5(0x9a),'AuRLM':function(_0x38e3be,_0x252558){return _0x38e3be(_0x252558);}};try{!this['isConnected']&&(this[_0x5296b5(0xa1)]=await createConnection(),this[_0x5296b5(0xcb)]=await createChannel(this[_0x5296b5(0xa1)]),this[_0x5296b5(0xa0)]=!![]);const _0x39d7ac=process['env'][_0x5296b5(0xc5)]||'default',_0x39c8c5=_0x39d7ac+_0x5296b5(0xca);await this['channel'][_0x5296b5(0xd2)](_0x39c8c5,_0x47fd08['efIJs'],{'durable':!![],'autoDelete':![]}),console['log']('['+formatDate(new Date())+']\x20Retry\x20exchange\x20'+_0x39c8c5+_0x5296b5(0xb7)),await this['channel']['assertExchange'](_0x13b819['exchange'],_0x5296b5(0xbe),{'durable':!![],'autoDelete':![]}),console[_0x5296b5(0xc6)]('['+_0x47fd08['ePvFw'](formatDate,new Date())+']\x20Exchange\x20'+_0x13b819[_0x5296b5(0xda)]+_0x5296b5(0xb7));const _0x2edfc1=_0x13b819['routingKey']+_0x5296b5(0x8d),_0x189461={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':_0x13b819['exchange'],'x-dead-letter-routing-key':_0x13b819[_0x5296b5(0xb6)]}};await this['channel'][_0x5296b5(0x9b)](_0x2edfc1,_0x189461),console[_0x5296b5(0xc6)]('['+formatDate(new Date())+']\x20Retry\x20queue\x20'+_0x2edfc1+_0x5296b5(0xb7)),await this[_0x5296b5(0xcb)]['bindQueue'](_0x2edfc1,_0x39c8c5,_0x13b819[_0x5296b5(0xb6)]),console[_0x5296b5(0xc6)]('['+formatDate(new Date())+_0x5296b5(0xe2)+_0x13b819[_0x5296b5(0xb6)]+'\x20created');const _0x288aa5={'durable':!![],'arguments':{'x-dead-letter-exchange':_0x39c8c5,'x-dead-letter-routing-key':_0x13b819[_0x5296b5(0xb6)]}};try{const _0x4336cb=await this[_0x5296b5(0xcb)]['assertQueue'](_0x13b819[_0x5296b5(0xde)],_0x288aa5);console['log']('['+_0x47fd08['ePvFw'](formatDate,new Date())+']\x20Queue\x20'+_0x13b819[_0x5296b5(0xde)]+'\x20'+(_0x47fd08['aHGCH'](_0x4336cb[_0x5296b5(0xde)],_0x13b819[_0x5296b5(0xde)])?_0x5296b5(0xb1):_0x47fd08[_0x5296b5(0xe1)])+'\x20with\x20DLX'),await this[_0x5296b5(0xcb)]['bindQueue'](_0x13b819[_0x5296b5(0xde)],_0x13b819['exchange'],_0x13b819['routingKey']),console[_0x5296b5(0xc6)]('['+_0x47fd08['ePvFw'](formatDate,new Date())+_0x5296b5(0x99)+_0x13b819[_0x5296b5(0xda)]+_0x5296b5(0xc8)+_0x13b819['queue']+'\x20('+_0x13b819['routingKey']+_0x5296b5(0xa5));}catch(_0x192e72){if(_0x192e72[_0x5296b5(0xd6)][_0x5296b5(0xd9)]('inequivalent\x20arg')&&_0x192e72['message'][_0x5296b5(0xd9)]('x-dead-letter-routing-key')){console[_0x5296b5(0xdf)]('\x0a['+_0x47fd08[_0x5296b5(0xce)](formatDate,new Date())+_0x5296b5(0xc4)+_0x13b819[_0x5296b5(0xde)]+'\x20is\x20already\x20in\x20use\x20with\x20a\x20different\x20routing\x20key.'),console[_0x5296b5(0xdf)]('Trying\x20alternative\x20queue\x20name...');const _0x2589ba=_0x13b819[_0x5296b5(0xb6)]+'_queue',_0x34c84f=await this['channel']['assertQueue'](_0x2589ba,_0x288aa5);console[_0x5296b5(0xc6)]('['+_0x47fd08[_0x5296b5(0xa7)](formatDate,new Date())+']\x20Alternative\x20queue\x20'+_0x2589ba+'\x20created\x20with\x20DLX'),await this[_0x5296b5(0xcb)][_0x5296b5(0xba)](_0x2589ba,_0x13b819['exchange'],_0x13b819[_0x5296b5(0xb6)]),console[_0x5296b5(0xc6)]('['+_0x47fd08[_0x5296b5(0xa7)](formatDate,new Date())+_0x5296b5(0x99)+_0x13b819[_0x5296b5(0xda)]+'\x20->\x20'+_0x2589ba+'\x20('+_0x13b819['routingKey']+')\x20created'),_0x13b819['queue']=_0x2589ba;}else{console['error']('['+formatDate(new Date())+']\x20Error\x20creating\x20queue\x20'+_0x13b819[_0x5296b5(0xde)]+':',_0x192e72['message']);throw _0x192e72;}}return!![];}catch(_0x1bd0ef){return console['error']('['+_0x47fd08['ePvFw'](formatDate,new Date())+']\x20Error\x20saat\x20setup\x20infrastruktur:\x20'+_0x1bd0ef['message']),![];}}async['sendToQueue'](_0x2d4b91,_0x25cb21){const _0x2da4dd=a0_0x22982a,_0x9909c3={'IpIFm':function(_0x569d93,_0xe721ac){return _0x569d93(_0xe721ac);},'gLcot':'Failed\x20to\x20send\x20message\x20to\x20RabbitMQ','YLpCQ':function(_0x41f0a3,_0x2edfd6){return _0x41f0a3(_0x2edfd6);}};if(!this['isConnected'])try{await this['initialize']();}catch(_0x49ec67){return{'success':![],'message':_0x2da4dd(0xdd)+_0x49ec67['message'],'data':null};}try{const _0x128d6c=_0x25cb21[_0x2da4dd(0xd5)]!==undefined?_0x25cb21['auto_retry']:![],_0x1c7ba1=_0x25cb21[_0x2da4dd(0xa9)]||0x3,_0x10bae3={'rabbitmq':{'exchange':_0x25cb21[_0x2da4dd(0xda)],'queue':_0x25cb21['queue'],'routing_key':_0x25cb21[_0x2da4dd(0xb6)],'auto_retry':_0x128d6c,'max_retries':_0x1c7ba1},'message':_0x2d4b91};await this[_0x2da4dd(0x9d)](_0x25cb21);const _0x27fe48=new Date(),_0x2b8ede={'timestamp':_0x27fe48[_0x2da4dd(0x95)](),'content':JSON[_0x2da4dd(0x94)](_0x10bae3)},_0x3af103=this[_0x2da4dd(0xcb)]['publish'](_0x25cb21['exchange'],_0x25cb21[_0x2da4dd(0xb6)],Buffer['from'](JSON['stringify'](_0x2b8ede)),{'persistent':!![],'contentType':'application/json','timestamp':_0x27fe48['getTime'](),'messageId':_0x27fe48[_0x2da4dd(0xc9)]()+'-'+Math[_0x2da4dd(0xb0)]()[_0x2da4dd(0xd1)](0x24)[_0x2da4dd(0xe0)](0x7),'headers':{'x-auto-retry':_0x128d6c,'x-max-retry':_0x1c7ba1,'x-retry-count':0x0,'x-retry-interval':0x2710}});if(_0x3af103){console['log']('['+_0x9909c3['IpIFm'](formatDate,_0x27fe48)+']\x20Message\x20sent\x20to\x20RabbitMQ\x20successfully:',{'exchange':_0x25cb21['exchange'],'routing_key':_0x25cb21[_0x2da4dd(0xb6)],'queue':_0x25cb21['queue'],'sendAt':_0x27fe48[_0x2da4dd(0x95)]()});const _0x33f2ff=_0x2da4dd(0xbf)+_0x27fe48['getTime']()+'-'+Math[_0x2da4dd(0xb0)]()['toString'](0x24)['substring'](0x7);return{'success':!![],'message':'Data\x20sent\x20to\x20queue\x20successfully','data':{'id':_0x33f2ff,'queueInfo':{'exchange':_0x25cb21[_0x2da4dd(0xda)],'queue':_0x25cb21['queue'],'routingKey':_0x25cb21[_0x2da4dd(0xb6)]}}};}else throw new Error(_0x9909c3[_0x2da4dd(0xc1)]);}catch(_0x1ce315){return console[_0x2da4dd(0xdf)]('['+_0x9909c3['YLpCQ'](formatDate,new Date())+_0x2da4dd(0xbd)+_0x1ce315[_0x2da4dd(0xd6)]),{'success':![],'message':_0x2da4dd(0xc3)+_0x1ce315['message'],'data':null};}}['registerMessageHandler'](_0x511293){const _0x2c367a=a0_0x22982a,_0x962464={'fVTsr':function(_0x579366,_0x51b2fd){return _0x579366===_0x51b2fd;},'ztRiH':function(_0x5b41d9,_0x31d2c1){return _0x5b41d9(_0x31d2c1);}};_0x962464['fVTsr'](typeof _0x511293,_0x2c367a(0xd4))?(this['messageHandlers']['push'](_0x511293),console['log']('['+formatDate(new Date())+_0x2c367a(0xcc))):console['error']('['+_0x962464[_0x2c367a(0xd7)](formatDate,new Date())+']\x20Message\x20handler\x20must\x20be\x20a\x20function');}async['processMessage'](_0x2369af){const _0x5b28aa=a0_0x22982a,_0x86bca6={'nGYnc':function(_0x19c6ae,_0x28f467){return _0x19c6ae(_0x28f467);},'VSsik':function(_0x43c8bb,_0x509f02){return _0x43c8bb(_0x509f02);}};if(this[_0x5b28aa(0xae)][_0x5b28aa(0x96)]===0x0)return console[_0x5b28aa(0xc0)]('['+formatDate(new Date())+_0x5b28aa(0xa8)),!![];try{for(const _0x46d7ad of this[_0x5b28aa(0xae)]){await _0x86bca6['nGYnc'](_0x46d7ad,_0x2369af);}return!![];}catch(_0x363c59){return console[_0x5b28aa(0xdf)]('['+_0x86bca6['VSsik'](formatDate,new Date())+']\x20Error\x20processing\x20message:\x20'+_0x363c59[_0x5b28aa(0xd6)]),![];}}async[a0_0x22982a(0x93)](){const _0x573cd6=a0_0x22982a,_0x162ea7={'bAwKE':function(_0x1e5cd8,_0x281510){return _0x1e5cd8!==_0x281510;},'CCPwU':function(_0x280d88,_0x2e8152){return _0x280d88(_0x2e8152);},'LizKd':_0x573cd6(0xb4),'uhSWG':function(_0x3ef6a8,_0xcea6b1){return _0x3ef6a8(_0xcea6b1);}};if(!this['isConnected'])return console[_0x573cd6(0xdf)]('['+formatDate(new Date())+']\x20Cannot\x20start\x20consuming:\x20not\x20connected\x20to\x20RabbitMQ'),![];try{return console['log']('['+formatDate(new Date())+']\x20Start\x20consuming\x20messages\x20from\x20queue\x20\x22'+this['config']['queue']+_0x573cd6(0xb3)),this[_0x573cd6(0xcb)]['consume'](this[_0x573cd6(0xd8)][_0x573cd6(0xde)],async _0x4db157=>{const _0xe5c979=_0x573cd6;if(_0x162ea7[_0xe5c979(0xcf)](_0x4db157,null)){const _0x1910bf=new Date();let _0x4dd1b0;try{_0x4dd1b0=JSON[_0xe5c979(0x8e)](_0x4db157[_0xe5c979(0xc7)][_0xe5c979(0xd1)]());}catch(_0x596d94){console[_0xe5c979(0xdf)]('['+_0x162ea7[_0xe5c979(0xbc)](formatDate,_0x1910bf)+']\x20Failed\x20to\x20parse\x20message:\x20'+_0x596d94['message']),console[_0xe5c979(0xdf)]('Message\x20content:\x20'+_0x4db157['content'][_0xe5c979(0xd1)]()),this['channel'][_0xe5c979(0xd0)](_0x4db157);return;}const _0x1c6936=_0x4db157['properties'][_0xe5c979(0xdc)]?new Date(_0x4db157['properties'][_0xe5c979(0xdc)]):new Date(),_0xd0b3d7=await this['processMessage'](_0x4dd1b0);_0xd0b3d7?(console['log']('['+formatDate(new Date())+']\x20Message\x20processed\x20successfully'),this[_0xe5c979(0xcb)]['ack'](_0x4db157)):(console[_0xe5c979(0xdf)]('['+_0x162ea7[_0xe5c979(0xbc)](formatDate,new Date())+_0xe5c979(0x92)),this['channel']['nack'](_0x4db157,![],!![])),console[_0xe5c979(0xc6)](_0x162ea7[_0xe5c979(0x91)]);}},{'noAck':![]}),!![];}catch(_0x5d4f37){return console['error']('['+_0x162ea7[_0x573cd6(0xb5)](formatDate,new Date())+_0x573cd6(0xc2)+_0x5d4f37[_0x573cd6(0xd6)]),![];}}async[a0_0x22982a(0x97)](){const _0x431ffe=a0_0x22982a;this['connection']&&(await closeConnection(this[_0x431ffe(0xa1)]),this['isConnected']=![]);}}let instance=null;function getInstance(){return!instance&&(instance=new RabbitMQService()),instance;}module['exports']={'getInstance':getInstance};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x31ad9f=a0_0x26f4;(function(_0x4e084e,_0x2127ae){const _0x1c7432=a0_0x26f4,_0x59f217=_0x4e084e();while(!![]){try{const _0x28b75b=parseInt(_0x1c7432(0x1de))/0x1*(parseInt(_0x1c7432(0x23d))/0x2)+parseInt(_0x1c7432(0x24f))/0x3*(parseInt(_0x1c7432(0x1fa))/0x4)+-parseInt(_0x1c7432(0x265))/0x5+-parseInt(_0x1c7432(0x25e))/0x6+parseInt(_0x1c7432(0x202))/0x7*(parseInt(_0x1c7432(0x228))/0x8)+-parseInt(_0x1c7432(0x2c0))/0x9*(parseInt(_0x1c7432(0x1ee))/0xa)+-parseInt(_0x1c7432(0x1ea))/0xb;if(_0x28b75b===_0x2127ae)break;else _0x59f217['push'](_0x59f217['shift']());}catch(_0x1d96e5){_0x59f217['push'](_0x59f217['shift']());}}}(a0_0x41d4,0x47735));const {Queue,Worker}=require(a0_0x31ad9f(0x2a1)),Redis=require('ioredis'),crypto=require(a0_0x31ad9f(0x2fd)),{v7:uuidv7}=require(a0_0x31ad9f(0x2c3)),fs=require('fs'),path=require('path'),{logger}=require(a0_0x31ad9f(0x1f2)),jobValidator=require(a0_0x31ad9f(0x1c4));let componentEngine=null;function a0_0x41d4(){const _0x141c8f=['yxr0zw1WDhnnywrL','ChjVy2vZC0PVyG','zw5KC1DPDgG','C3rYAw5NAwz5','Bg93','CMvNAxn0zxjkB2i','CxvLDwu','y2f0y2G','sM9IihrPzgfRigrPDgvTDwTHBJOG','sM9Iie1HBMfNzxiGCMvHzhK6ia','rMfPBgvKihrVigvUC3vYzsbQB2iGDgfIBgvZoIa','qxzVyKW','C2nOzwr1Bgu','AM9Ix2rIx3r5CgvFDw5ZDxbWB3j0zwq','ueDACuy','yxbPlwrLBgf5zwq','Cgf1C2u','mtuZoxL6ywPSqq','uMHcDgO','Bg9HzePVyKnVBMzPz3m','DxvPza','sM9IigzHAwXLzdOG','B3jHy2XL','rejFvfLqrq','zgvMyxvSDa','ywn0AxzL','qMfJA2DYB3vUzcbPBNnLCNqGAM9IigHPC3rVCNKGzMfPBgvKoIa','z2v0tMv4Dfj1BKzYB21cDwXStve','B25bzNrLCKPVyKzHAwXLzcbOyw5KBgvYigvYCM9YicHUB24TyMXVy2TPBMCP','rfzcsKu','zgvZy3jPChrPB24','ChjVz3jLC3m','DxbKyxrLsM9IsgLZDg9YEuzHAwXLza','DgLTzxn0yw1W','AM9Ix2HPC3rVCNLFy29TCgXLDgvFzxjYB3i','icSGmsWkicaGicaGicaGicbUzxH0x3j1BL9HDca9idOZlcb1CgrHDgvKx2f0id0Gu1LtveLnrvnuqu1qifDirvjfigPVyL9Uyw1Lid0GoJq','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteWSihvWzgf0zwrFyxqGpsbot1COkq','BwLU','yNvSBg1Xx3jLzgLZx2vYCM9Y','ChvZAa','AM9Ix3jLzgLZx2nVBM5Ly3rLza','D29YA2vYCW','Aw5MBW','lI4VlI4VC2vYDMLJzxmVA2fMA2ftzxj2AwnL','C3rYAw5N','DMXZBge','sK9cx1jfreLtx1bsruzjwa','ywz0zxjFAM9Ix2zHAwXLzf9OB29Rx2vYCM9Y','sM9Iie1HBMfNzxiGC3vKywGGzgLPBMLZAwfSAxnHC2KSihnRAxa','AxnsDw5UAw5N','r0DsyLG','DxbKyxrLuMvNAxn0CNLtDgf0Dxm','y2HPBgq','rerOu1q','DxbKyxrLsM9IsgLZDg9YEunVBxbSzxrLza','oMPVyG','sM9Iie1HBMfNzxiGC2H1DhrPBMCGzg93BIaODgLTzw91DdOG','AM9Ix2THzMTHx3b1yMXPC2HFzxjYB3i','C21ntwG','Aw5PDgLHBgL6zwq','rMrlwLC','y2HuDNO','AM9Ix3jLzgLZx2zHAwXLza','rMfPBgvKihrVihb1yMXPC2GGsK9cx0zbsuXfrcb0BYblywzRyq','C2H1DgrVD24','sK9cx0nptvbmrvrfra','icSGmsWkicaGicaGicaGicbUzxH0x3j1BL9HDca9icqZlcb1CgrHDgvKx2f0id0GtK9xkcKGv0HfuKuGAM9Ix25HBwuGpsaKna','ywXYzwfKEsbLEgLZDhm','wKH1Cvm','AuL4s3a','AM9Ix2HPC3rVCNLFzMfPBgvKx2vYCM9Y','z2v0sM9I','BLvsqvq','AM9Ix2nVBMzPz19PBNzHBgLK','AM9Ix3jLz2LZDhj5x3vWC2vYDf9LCNjVCG','vgLKywSGywrHigPVyIbJB25MAwCGzgL0zw11A2fUigrPihbHEwXVywqVAM9ICY8UiePVyIbnyw5Hz2vYigfRDgLMihrHBNbHignYB24U','sK9cx0zbsuXfrf9srvrftLrjt05Fse9vuLm','yKjRuLO','y3j5ChrV','twrVtwC','zxHLy3v0zuv2zw50sgfUzgXLCNm','AMnfzxy','DhLWzq','ywz0zxjFAM9Ix2nVBxbSzxrLx2HVB2TFzxjYB3i','zxHLy3v0zvf1zxj5','z2v0q2XPzw50','qNPLt2y','lI4VlI4VDxrPBhmVzgi','Aw5PDgLHBerLBgf5','txLuDMG','z2v0u3rHDgu','qM5cBvm','lI9QB2iTDMfSAwrHDg9Y','uKvesvnFueftu1DpuKq','CLv6yKe','CMvHzezPBgvtEw5J','zhrjA0u','sM9IihbYB2DYzxnZoIa','z25PrNG','DMfSAwq','y3jLyxrLqNvSBe1rq29UBMvJDgLVBG','z2v0sgvHBhrOu3rHDhvZ','ihrPzgfRigjPC2eGzgKTy2fUy2vSicHZDgf0ztOG','tNjHyKu','DMfSAwrHDgvdB25MAwC','sK9cx1nivvret1Dox1rjtuvpvvq','y2fUy2vSsM9I','uhb5BMO','z2v0sM9Iq291BNrZ','BgvUz3rO','C3vJy2vZCW','ug9ZDgDYzvnrtcbeqIbTB2r1BguGBM90igf2ywLSywjSzq','u1fmihnJCMLWDcb0AwrHAYbKAxrLBxvRyw46ia','DxrMoa','z2v0sM9Iu2nOzwr1BgvYCW','zgjFBxLZCwXFDw5HDMfPBgfIBgu','t3Lguvu','BwvZC2fNzq','ntiWnK1gue9Syq','AgfUzgXLCNm','B3jHltaWotu1','AM9Ix3n0yxj0zwq','CgLK','BgLZDfj1BM5PBMC','DLbNv2i','DwvSwuu','DgLTzw91Da','s0fgs0fFru5bqKXfra','q2jQEe0','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa6msWGBgfZDf9KDxjHDgLVBL9TCYa9idOYlaOGicaGicaGicaGia','mJqXmtu5nKreD2XNvW','AM9PBG','u3HRz2m','BMHsCvO','mtG1mtbLtMTkB1u','Bwf4qxr0zw1WDhm','qMDlt2C','Efftz1i','lI4VlI4VDxrPBhmVBg9Nz2vY','B25czwzVCMvkB2jfEgvJDxrL','qvHpAg0','y3jLyxrLza','BKTYwgq','id0G','C2TXweC','AM9Ix3rHyMXLC19LBNn1CMvK','mta0nJb2Cxf5vvq','Dg9mB3DLCKnHC2u','sK9cx0vwru5u','A2zJvMq','C3bSAxrtCwXtDgf0zw1LBNrZ','tefkDhG','z2v0s2fMA2ftzxj2AwnL','zgvSzxrL','mZa5mtm0n1fkAfjmEq','vK1bEhy','zxjYB3jZ','sM9Iia','DhjPz2DLCMvKqNK','zhvOCgi','DxbKyxrLuMvNAxn0CNLdB3vUDgvYCW','B25KDu4','DhjPBq','B25bzNrLCKPVyKzHAwXLza','y3jVBG','z2v0','Cg9ZDgDYzxnXBa','C3zND1q','AM9Ix21HBMfNzxjFywXYzwfKEv9PBML0AwfSAxPLza','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticG/lca/lca/lca/lca/lcaNCNvUBMLUzYCSid8Sid8Sid8Sie5pvYGPlca/lcbot1COksK','y2XVC2u','AM9Ix3jLz2LZDhj5x2nVDw50zxjFzxjYB3i','z2v0rgjvDgLSCW','C3rHCNrZv2L0Aa','AM9Ix2HPC3rVCNLFAw5Zzxj0x2vYCM9Y','Cg9ZDgDYzxnXBc5ZCwW','tMXpwhm','rw5ct1u','r3jgt1C','AM9Iq29UzMLNCW','zw50CMLLCW','yMfJA29MzG','AM9Ix2nVBMzPz19WyxjZzv9LCNjVCG','zxHPC3rZu3LUyW','CxvLDwvZ','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticGKmsWGjdiSicqZlcaKncWGjduSicDYDw5UAw5NjYWGjdySicq3lcaKocWGtK9xkcKSicq5lcbot1COksK','C3vIC3rYAw5N','DefjC0u','rejFvfLqrsaN','Dw5RBM93BG','lI4VlI4VDxrPBhmVzgiTBxLZCwW','tMz3shu','oefcu2LwBW','z2v0sM9Iu3rHDhvZ','iokaLca','C3LZDgvT','zxjYB3i','ExbwruC','C3rHy2S','BhjfDhm','BKTps3i','y2LcDNK','y29TCg9Uzw50rw5NAw5L','Dg90ywXFzMfPBgvK','Ewj6D2e','ihjLBw92zwqGkhDHCYa','Cu1Tzem','zgvSyxLLza','AhPrCNO','AM9Ix3nXBf9UB3rFzM91BMq','B25kB2jdB21WBgv0zwq','DMfSDwvZ','Cgf5Bg9Hza','mte4D3f6ALLq','rMfPBgvKihrVigLUC2vYDcbQB2iGAgLZDg9YEtOG','DLLmr0y','AM9Ix2HPC3rVCNLFAw5Zzxj0x2jNx2vYCM9Y','rvHdEvC','vfv4y1q','se5xENq','DgLTzxn0yw1WCW','v0nswLK','zxHWB25LBNrPywW','zMLUAxnOzwrpBG','sM9IignHBMnLBgXLzcbIEsbVBKjLzM9YzuPVyKv4zwn1Dgu6ia','zgLZCgf0y2G','zgf0yq','qNvSBe1rifjLzgLZignVBM5Ly3rPB24GDMvYAwzPzwq','zw52','z2v0rgjuExbL','y29UzMLNrMLSzq','nduZCLPVB21l','C29YDa','CgfNzq','txLtuuWGreiGBw9KDwXLig5VDcbHDMfPBgfIBgu','C2v0','BM93','Dgn2B2O','Dg90ywXFC3vJy2vZCW','ihrPzgfRigrPDgvTDwTHBG','zLvbzem','shjrA2S','AM9Ix3jLz2LZDhj5x29MzMXPBMvFzxjYB3i','BMfTzq','zxvQEfe','x3nVDxjJzuzPBgu','mtmYnda4mejXrfLtCG','B25kB2jqCM9NCMvZCW','B0zKzvq','r09Lwhm','uuzzueu','icHPzdOG','AgLZDg9YEuLK','ndCYnZeWrKPIzMTk','zw5ZDxjLvgfIBgvZ','z2v0sgLZDg9YEq','sM9Iie1HBMfNzxiGC2H1DgrVD24Gy29TCgXLDgu','CMv0DxjUDMfSDwu','vKnSsfy','sK9cx1nuquXmrurFsu5urvjwquW','ze1ozhG','Aw5Zzxj0uhjVBwLZzq','BwLLv3u','AM9ItMfTzq','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ie5pvYGPlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GjdeSihbYB2DYzxnZid0GmtaWlcbYzxn1BhrFC3vTBwfYEsa9icqYifDirvjfigLKid0Gjdm','DKfVwei','uKvesvnFse9tva','zMLUBxC','zMLSDgvY','Aw5JBhvKzxm','y090s1y','AgLNAa','wfjzD3e','AgfUzgXLCG','AM9Ix21HBMfNzxjFCMvHzhK','z2v0ug9VBa','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNzMfPBgvKjYWGy29TCgXLDgvKx2f0id0GtK9xkcKScIaGicaGicaGicaGzhvYyxrPB25FBxmGpsa/lcbWCM9NCMvZCYa9id8SigvYCM9Yx21LC3nHz2uGpsa/lcbLCNjVCL9ZDgfJAYa9id8Gv0HfuKuGAwqGpsa/','yxbP','z3v1z1G','C3rHBgXLza','D29YA2LUz0rPCG','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteWSihvWzgf0zwrFyxqGpsbtwvnusu1fu1rbtva','t3jHy2XLiercig1VzhvSzsbUB3qGyxzHAwXHyMXL','yKDVDfa','sefwwhq','yxfMuwm','zw5HyMXLza','ywn0AxzLsgLZDg9YEuLKCW','CMvHzgrPCLn5BMm','z2v0q2fJAgvnyw5Hz2vY','yxr0zw1WDa','zMfPBgvK','icHHDhrLBxb0ia','CgLUzW','y2XLyxi','CMv0CNK','qwjAr3u','ywXS','sw5PDgLHBgL6Aw5NiePVyIbnyw5Hz2vYlI4U','CNvUBMLUzW','EerIBMC','CxvPDa','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa6msWGBgfZDf9YDw5FyxqGpsbtwvnusu1fu1rbtvaScIaGicaGicaGicaGDxbKyxrLzf9HDca9ifnzu1rjtuvtvefnucbxsevsrsbQB2jFBMfTzsa9idOY','Befcv2y','BNLhBgC','BxLZCwW','txjuww8','yNvSBg1XsM9Iswq','AM9Ix2nVBMzPz3nFBg9HzgvK','D0n3zLa','y29TCgXLDgvK','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNzMfPBgvKjYWGy29TCgXLDgvKx2f0id0GtK9xkcKScIaGicaGicaGicaGzhvYyxrPB25FBxmGpsaKmsWGChjVz3jLC3mGpsaKmIWGzxjYB3jFBwvZC2fNzsa9icqZlcbLCNjVCL9ZDgfJAYa9icq0ifDirvjfigLKid0Gjdu','sxnUvgy','yNvSBg1X','ww9XCgy','ChjVy2vZC2vKt24','AM9IlxnJAgvKDwXLCG','rMfPBgvKihrVihvWzgf0zsbQB2iGAgLZDg9YEsaOzMfPBgvKktOG','rgf0ywjHC2uGDgLKywSGDgvYC2vKAweSihnRAxaGyxv0BY1JCMvHDguGAM9IihrHyMXLCW','Bw54uLm','CKj1A3u','AM9Ix21HBMfNzxjFC2H1DgrVD25FC3rHCNq','sM9IigrPC3bHDgnOzwq6ia','sM9IigHHBMrSzxiGy29TCgXLDgvKoIa','D2fYBG','y29UBMvJDgLVBNm','BwfW'];a0_0x41d4=function(){return _0x141c8f;};return a0_0x41d4();}function getComponentEngine(){const _0x4efcf9=a0_0x31ad9f,_0x1da13c={'agGqi':function(_0x29318e,_0x20c2f1){return _0x29318e(_0x20c2f1);}};if(!componentEngine)try{const _0x4aeb4c=_0x1da13c['agGqi'](require,'../../utils/component-engine');componentEngine=_0x4aeb4c[_0x4efcf9(0x232)]||_0x4aeb4c;}catch(_0x4071ca){}return componentEngine;}class JobManager{constructor(){const _0xf05dd9=a0_0x31ad9f;this['queues']={},this[_0xf05dd9(0x2d8)]={},this['jobConfigs']={},this[_0xf05dd9(0x1df)]={},this[_0xf05dd9(0x2ad)]=[],this[_0xf05dd9(0x2ea)]=![],this[_0xf05dd9(0x280)]=process['cwd'](),this['activeHistoryIds']=new Map();}[a0_0x31ad9f(0x1cc)](){const _0x153ec0=a0_0x31ad9f,_0x1cff60={'bBkRZ':_0x153ec0(0x2d5),'wxlja':'localhost','PGZqF':function(_0x243b0f,_0x171f5c,_0x21142f){return _0x243b0f(_0x171f5c,_0x21142f);}},_0x524d4a=new Redis({'host':process[_0x153ec0(0x24c)][_0x153ec0(0x272)]||_0x1cff60['wxlja'],'port':_0x1cff60[_0x153ec0(0x2bd)](parseInt,process['env']['REDIS_PORT'],0xa)||0x18ec,'password':process['env'][_0x153ec0(0x1c5)]||undefined,'db':_0x1cff60['PGZqF'](parseInt,process['env']['REDIS_DB'],0xa)||0x0,'maxRetriesPerRequest':null,'retryStrategy'(_0x5277e6){const _0x556df0=_0x153ec0,_0x541872=Math[_0x556df0(0x2d4)](_0x5277e6*0x32,0x7d0);return _0x541872;}});return _0x524d4a['on']('error',_0x3643d8=>{const _0x258c19=_0x153ec0;logger['error']({'event':_0x1cff60[_0x258c19(0x2fc)],'error':_0x3643d8['message']},'BullMQ\x20Redis\x20connection\x20error:\x20'+_0x3643d8[_0x258c19(0x1dd)]);}),this['connections'][_0x153ec0(0x2d6)](_0x524d4a),_0x524d4a;}async['initialize'](){const _0x3b18e3=a0_0x31ad9f,_0x56fe93={'gcFWs':'job_stalled','pObRW':'bullmq_worker_error','GrFOW':_0x3b18e3(0x210),'AXOhm':_0x3b18e3(0x2df),'nKOKr':'job_manager_init_start','HWjyB':_0x3b18e3(0x292),'Yoqpf':_0x3b18e3(0x2d7),'FzwfA':_0x3b18e3(0x2ed),'FdKZW':'job_ensure_tables_error','RapHg':function(_0x9012fc,_0x591f19){return _0x9012fc===_0x591f19;},'ybzwa':'job_no_configs','XCMkD':_0x3b18e3(0x2f8),'kOnqU':function(_0x2e2fef,_0x1c9396,_0x4d79ca){return _0x2e2fef(_0x1c9396,_0x4d79ca);},'uelYE':function(_0x5f521e,_0x1a9c3a,_0x52b81d){return _0x5f521e(_0x1a9c3a,_0x52b81d);},'aNMze':'default','HAVXt':'job_queues_created','uMaOz':_0x3b18e3(0x29e),'KoQFm':_0x3b18e3(0x28b),'UYbvg':_0x3b18e3(0x27f),'QKPNU':_0x3b18e3(0x22c),'MyTvh':_0x3b18e3(0x27a)};if(this['initialized']){logger['warn']({'event':_0x56fe93[_0x3b18e3(0x21a)]},_0x56fe93[_0x3b18e3(0x1f4)]);return;}logger[_0x3b18e3(0x2d9)]({'event':_0x56fe93[_0x3b18e3(0x230)]},_0x56fe93['HWjyB']);const _0x981d9b=this['createBullMQConnection']();try{await _0x981d9b[_0x3b18e3(0x28d)](),logger[_0x3b18e3(0x2d9)]({'event':_0x56fe93[_0x3b18e3(0x2a2)]},_0x3b18e3(0x24b));}catch(_0xab3d67){logger['error']({'event':_0x56fe93['FzwfA'],'error':_0xab3d67['message']},'Redis\x20connection\x20failed:\x20'+_0xab3d67['message']+'.\x20Job\x20Scheduler\x20tidak\x20akan\x20aktif.');try{await _0x981d9b[_0x3b18e3(0x295)]();}catch(_0x160b49){}this[_0x3b18e3(0x2ad)]=this['connections']['filter'](_0x26f2cf=>_0x26f2cf!==_0x981d9b);return;}try{await _0x981d9b[_0x3b18e3(0x295)]();}catch(_0x10488c){}this[_0x3b18e3(0x2ad)]=this[_0x3b18e3(0x2ad)][_0x3b18e3(0x274)](_0x329409=>_0x329409!==_0x981d9b);try{await this[_0x3b18e3(0x266)]();}catch(_0x1ba759){logger['warn']({'event':_0x56fe93[_0x3b18e3(0x2eb)],'error':_0x1ba759[_0x3b18e3(0x1dd)]},_0x3b18e3(0x2b9)+_0x1ba759[_0x3b18e3(0x1dd)]+'.\x20DB\x20monitoring\x20disabled.');}const _0x182e4d=this[_0x3b18e3(0x2c2)]();_0x56fe93['RapHg'](_0x182e4d['length'],0x0)&&logger[_0x3b18e3(0x2d9)]({'event':_0x56fe93[_0x3b18e3(0x234)]},_0x3b18e3(0x2fa));const _0x28c992=[];for(const _0xcf3bb9 of _0x182e4d){const _0x36a0cd=jobValidator[_0x3b18e3(0x1d0)](_0xcf3bb9,this['workingDir']);_0x36a0cd[_0x3b18e3(0x1cb)]?_0x28c992[_0x3b18e3(0x2d6)](_0xcf3bb9):logger[_0x3b18e3(0x22c)]({'event':_0x56fe93['XCMkD'],'name':_0xcf3bb9['name']||_0x3b18e3(0x225),'errors':_0x36a0cd[_0x3b18e3(0x204)]},'Job\x20config\x20invalid:\x20'+(_0xcf3bb9[_0x3b18e3(0x25b)]||'unknown')+'\x20—\x20'+_0x36a0cd['errors'][_0x3b18e3(0x1eb)](';\x20'));}const _0x5a3fb3=process[_0x3b18e3(0x24c)]['RESTFORGE_PROJECT_NAME']||'default',_0x3d1d0b=process[_0x3b18e3(0x24c)][_0x3b18e3(0x2dd)]||'rf:'+_0x5a3fb3+_0x3b18e3(0x2e6),_0xe66ebc=_0x56fe93['kOnqU'](parseInt,process[_0x3b18e3(0x24c)]['JOB_RETENTION_HOURS'],0xa)||0x48,_0x360252=_0x56fe93['uelYE'](parseInt,process[_0x3b18e3(0x24c)][_0x3b18e3(0x2fb)],0xa)||0xa8,_0x15ffaf={'removeOnComplete':{'age':_0xe66ebc*0xe10},'removeOnFail':{'age':_0x360252*0xe10}},_0x377310={'high-priority':_0x3b18e3(0x277),'default':_0x56fe93['aNMze'],'low-priority':_0x3b18e3(0x2b3)};for(const [_0x53607d,_0x22508a]of Object[_0x3b18e3(0x21c)](_0x377310)){this['queues'][_0x53607d]=new Queue(_0x22508a,{'connection':this[_0x3b18e3(0x1cc)](),'prefix':_0x3d1d0b,'defaultJobOptions':_0x15ffaf});}logger['info']({'event':_0x56fe93[_0x3b18e3(0x284)],'count':0x3},'3\x20BullMQ\x20Queues\x20created\x20(high,\x20default,\x20low)');const _0x5a4565=parseInt(process['env']['JOB_CONCURRENCY'],0xa)||0x5,_0x9ef87c=_0x56fe93['uelYE'](parseInt,process[_0x3b18e3(0x24c)][_0x3b18e3(0x26b)],0xa)||0x7530,_0x12ad17=_0x56fe93[_0x3b18e3(0x1e5)](parseInt,process[_0x3b18e3(0x24c)]['JOB_MAX_STALLED_COUNT'],0xa)||0x2;for(const [_0x59bee3,_0x503415]of Object[_0x3b18e3(0x21c)](_0x377310)){const _0x2fc413=new Worker(_0x503415,async _0xcaac0a=>this[_0x3b18e3(0x2b0)](_0xcaac0a),{'connection':this['createBullMQConnection'](),'prefix':_0x3d1d0b,'concurrency':_0x5a4565,'stalledInterval':_0x9ef87c,'maxStalledCount':_0x12ad17});_0x2fc413['on'](_0x56fe93['uMaOz'],(_0x234b68,_0x782aa2)=>this[_0x3b18e3(0x23a)](_0x234b68,_0x782aa2)),_0x2fc413['on'](_0x56fe93['KoQFm'],(_0x124ba1,_0x1797d8)=>this['onJobFailed'](_0x124ba1,_0x1797d8)),_0x2fc413['on'](_0x3b18e3(0x2ce),(_0x5896cd,_0x1ac2ee)=>this['onJobProgress'](_0x5896cd,_0x1ac2ee)),_0x2fc413['on'](_0x56fe93['UYbvg'],_0x189d4e=>{logger['warn']({'event':_0x56fe93['gcFWs'],'jobId':_0x189d4e},'Job\x20stalled:\x20'+_0x189d4e);}),_0x2fc413['on'](_0x56fe93['QKPNU'],_0x3aa02e=>{logger['error']({'event':_0x56fe93['pObRW'],'queue':_0x59bee3,'error':_0x3aa02e['message']},'BullMQ\x20Worker\x20error\x20('+_0x59bee3+'):\x20'+_0x3aa02e['message']);}),this['workers'][_0x59bee3]=_0x2fc413;}logger[_0x3b18e3(0x2d9)]({'event':'job_workers_created','count':0x3,'concurrency':_0x5a4565},'3\x20BullMQ\x20Workers\x20created\x20(concurrency:\x20'+_0x5a4565+')');let _0x3d8e1a=0x0;for(const _0x1912c3 of _0x28c992){try{await this[_0x3b18e3(0x2b4)](_0x1912c3),_0x3d8e1a++;}catch(_0x460dc9){logger[_0x3b18e3(0x22c)]({'event':'job_register_failed','name':_0x1912c3[_0x3b18e3(0x25b)],'error':_0x460dc9['message']},'Failed\x20to\x20register\x20job:\x20'+_0x1912c3['name']+_0x3b18e3(0x22a)+_0x460dc9['message']);}}this[_0x3b18e3(0x2ea)]=!![];const _0x3a1a1c=this[_0x3b18e3(0x2ad)][_0x3b18e3(0x1d5)];logger['info']({'event':_0x56fe93[_0x3b18e3(0x1c1)],'registeredJobs':_0x3d8e1a,'totalConfigs':_0x28c992['length'],'redisConnections':_0x3a1a1c},_0x3b18e3(0x2b8)+_0x3d8e1a+'\x20job(s)\x20registered,\x20'+_0x3a1a1c+'\x20Redis\x20connections');}async[a0_0x31ad9f(0x2ef)](){const _0x21a9dc=a0_0x31ad9f,_0x5c23f6={'oFdeT':function(_0xf2d9f8,_0x2766f8,_0x38871c){return _0xf2d9f8(_0x2766f8,_0x38871c);},'EnBOU':_0x21a9dc(0x2c8),'cOtKV':function(_0x173a3b,_0x26024b){return _0x173a3b===_0x26024b;},'efrFA':'job_manager_shutdown_complete','WqvcH':_0x21a9dc(0x268)};if(!this['initialized'])return;const _0x1e626b=_0x5c23f6[_0x21a9dc(0x260)](parseInt,process['env'][_0x21a9dc(0x1d1)],0xa)||0x2710;logger['info']({'event':_0x21a9dc(0x2a9),'timeoutMs':_0x1e626b},_0x21a9dc(0x2e7)+_0x1e626b+'ms)...');const _0x35d017=Object[_0x21a9dc(0x23b)](this['workers'])['map'](async _0x58d79a=>{const _0x40593=_0x21a9dc;try{await _0x58d79a[_0x40593(0x2bf)]();}catch(_0x4d46e5){}});await Promise['all'](_0x35d017);const _0x4784ac=Date['now']();while(Date[_0x21a9dc(0x254)]()-_0x4784ac<_0x1e626b){let _0x1ea7e1=0x0;for(const _0x55810b of Object[_0x21a9dc(0x23b)](this['queues'])){try{const _0xe44d45=await _0x55810b[_0x21a9dc(0x1d4)](_0x5c23f6[_0x21a9dc(0x219)]);_0x1ea7e1+=_0xe44d45['active']||0x0;}catch(_0x3e4bbf){}}if(_0x5c23f6[_0x21a9dc(0x276)](_0x1ea7e1,0x0))break;await new Promise(_0x33134c=>setTimeout(_0x33134c,0x1f4));}const _0x2b4695=Object[_0x21a9dc(0x23b)](this['workers'])['map'](async _0x455333=>{try{await _0x455333['close']();}catch(_0x25be4f){}});await Promise['all'](_0x2b4695);const _0xb51f87=Object['values'](this['queues'])[_0x21a9dc(0x2ae)](async _0x1fd6b8=>{const _0x3ecd90=_0x21a9dc;try{await _0x1fd6b8[_0x3ecd90(0x212)]();}catch(_0x28b2e9){}});await Promise[_0x21a9dc(0x291)](_0xb51f87);for(const _0x586ec4 of this['connections']){try{await _0x586ec4[_0x21a9dc(0x295)]();}catch(_0x481d52){}}this['queues']={},this[_0x21a9dc(0x2d8)]={},this[_0x21a9dc(0x2ad)]=[],await this['setAllJobsOffline'](),this['activeHistoryIds'][_0x21a9dc(0x28e)](),this[_0x21a9dc(0x2ea)]=![],logger['info']({'event':_0x5c23f6['efrFA']},_0x5c23f6['WqvcH']);}[a0_0x31ad9f(0x2c2)](){const _0x5abdbe=a0_0x31ad9f,_0x20ce29={'CbjxM':'jobs','Edpta':'job_config_dir_missing','FSjZY':_0x5abdbe(0x21e),'GOeXs':_0x5abdbe(0x29c)},_0x2d9c72=path['join'](this['workingDir'],_0x5abdbe(0x23c),_0x20ce29[_0x5abdbe(0x1e8)]);if(!fs[_0x5abdbe(0x21f)](_0x2d9c72))return logger['info']({'event':_0x20ce29['Edpta'],'path':_0x2d9c72},'Folder\x20payload/jobs/\x20tidak\x20ditemukan'),[];const _0x2231cb=fs[_0x5abdbe(0x288)](_0x2d9c72)['filter'](_0x78308b=>_0x78308b[_0x5abdbe(0x2b1)]('.json')),_0x4f7399=[];for(const _0x3b464f of _0x2231cb){const _0x4178c1=path['join'](_0x2d9c72,_0x3b464f);try{const _0x59b1d9=fs[_0x5abdbe(0x1c7)](_0x4178c1,_0x5abdbe(0x1d9)),_0x1ebbb0=JSON['parse'](_0x59b1d9);_0x1ebbb0[_0x5abdbe(0x25d)]=_0x3b464f,_0x4f7399['push'](_0x1ebbb0);}catch(_0x2139e3){logger[_0x5abdbe(0x22c)]({'event':_0x20ce29['FSjZY'],'file':_0x3b464f,'error':_0x2139e3[_0x5abdbe(0x1dd)]},'Failed\x20to\x20parse\x20job\x20config:\x20'+_0x3b464f+'\x20—\x20'+_0x2139e3['message']);}}return logger['info']({'event':_0x20ce29[_0x5abdbe(0x261)],'count':_0x4f7399[_0x5abdbe(0x1d5)]},'Loaded\x20'+_0x4f7399[_0x5abdbe(0x1d5)]+'\x20job\x20config(s)\x20from\x20payload/jobs/'),_0x4f7399;}async['registerJob'](_0x4a38c4){const _0x2d7d0e=a0_0x31ad9f,_0x59e207={'ZVssI':'src','fUAdC':function(_0x48f162,_0x2d63a7){return _0x48f162===_0x2d63a7;},'BzeOf':_0x2d7d0e(0x20c),'xoaxp':function(_0x3cabbf,_0x5abd23){return _0x3cabbf!==_0x5abd23;},'DDhST':'online','BgOCf':'offline'},_0x401235=path['join'](this[_0x2d7d0e(0x280)],_0x59e207['ZVssI'],'jobs',_0x4a38c4['handler']+'.js');this['handlers'][_0x4a38c4[_0x2d7d0e(0x25b)]]=require(_0x401235),this[_0x2d7d0e(0x21b)][_0x4a38c4[_0x2d7d0e(0x25b)]]=_0x4a38c4;if(_0x59e207[_0x2d7d0e(0x258)](_0x4a38c4[_0x2d7d0e(0x301)],_0x59e207[_0x2d7d0e(0x1be)])&&_0x4a38c4[_0x2d7d0e(0x286)]!==![]){const _0x1e34ef=this['queues'][_0x4a38c4['queue']||'default'];await _0x1e34ef['upsertJobScheduler'](_0x4a38c4[_0x2d7d0e(0x25b)],{'pattern':_0x4a38c4['schedule'],'tz':_0x4a38c4['timezone']||undefined},{'name':_0x4a38c4['name'],'data':{'handler':_0x4a38c4['handler'],'triggeredBy':'cron','metadata':_0x4a38c4['metadata']||{}},'opts':{'attempts':_0x4a38c4[_0x2d7d0e(0x28f)]?.['maxAttempts']||0x3,'backoff':{'type':_0x4a38c4[_0x2d7d0e(0x28f)]?.['backoff']||'exponential','delay':_0x4a38c4['retry']?.['initialDelay']||0x1388},'timeout':_0x4a38c4['timeout']||0x7530}}),logger[_0x2d7d0e(0x2d9)]({'event':'cron_registered','name':_0x4a38c4[_0x2d7d0e(0x25b)],'schedule':_0x4a38c4[_0x2d7d0e(0x2bb)],'queue':_0x4a38c4['queue']||'default'},'Cron\x20registered:\x20'+_0x4a38c4['name']+'\x20['+_0x4a38c4[_0x2d7d0e(0x2bb)]+']');}const _0x429e66=_0x4a38c4['type']===_0x59e207[_0x2d7d0e(0x1be)]&&_0x59e207['xoaxp'](_0x4a38c4[_0x2d7d0e(0x286)],![])?_0x59e207[_0x2d7d0e(0x2e4)]:_0x59e207['BgOCf'];let _0x34d873=null;_0x429e66===_0x59e207['DDhST']&&(_0x34d873=await this['getNextRunFromBullMQ'](_0x4a38c4[_0x2d7d0e(0x25b)])),await this['upsertJobRegistry'](_0x4a38c4,_0x429e66,_0x34d873);}async[a0_0x31ad9f(0x2b0)](_0x59276b){const _0x41f44f=a0_0x31ad9f,_0x2d4363={'kUTHP':_0x41f44f(0x240),'rBuku':function(_0x359ed5,_0x8f02e3){return _0x359ed5+_0x8f02e3;},'wCwfP':_0x41f44f(0x225),'DVBJE':function(_0x2d3456,_0x1babdf){return _0x2d3456===_0x1babdf;},'jKAfn':'cron','chTvz':function(_0x4a3e01){return _0x4a3e01();},'xQSgR':'job_handler_done'},_0x4b73d8=this[_0x41f44f(0x21b)][_0x59276b['name']],_0x312e36=this['handlers'][_0x59276b[_0x41f44f(0x25b)]];if(!_0x312e36)throw new Error('Handler\x20tidak\x20ditemukan\x20untuk\x20job:\x20'+_0x59276b[_0x41f44f(0x25b)]);const _0x770647=logger['child']({'jobId':_0x59276b['id'],'jobName':_0x59276b['name']});_0x770647['info']({'event':_0x41f44f(0x1e1),'attempt':_0x2d4363[_0x41f44f(0x2a8)](_0x59276b[_0x41f44f(0x2af)],0x1),'triggeredBy':_0x59276b[_0x41f44f(0x24a)]?.['triggeredBy']||_0x2d4363[_0x41f44f(0x29d)]},'Job\x20started:\x20'+_0x59276b[_0x41f44f(0x25b)]+_0x41f44f(0x28c)+(_0x59276b[_0x41f44f(0x2af)]+0x1)+')');const _0x20b70a=uuidv7(),_0x469388=_0x59276b['data']?.[_0x41f44f(0x206)]||_0x41f44f(0x225),_0x521447=this['insertJobHistory']({'id':_0x20b70a,'jobName':_0x59276b[_0x41f44f(0x25b)],'bullmqJobId':_0x59276b['id'],'triggerType':_0x2d4363[_0x41f44f(0x2cc)](_0x469388,_0x41f44f(0x2be))?'delayed':_0x2d4363['DVBJE'](_0x469388,_0x41f44f(0x27d))?'manual':'cron','triggeredBy':_0x2d4363[_0x41f44f(0x2cc)](_0x469388,_0x2d4363['jKAfn'])?_0x41f44f(0x22b):_0x469388,'queue':_0x4b73d8?.[_0x41f44f(0x2b5)]||'default','attempt':_0x59276b[_0x41f44f(0x2af)]+0x1,'configFile':_0x4b73d8?.[_0x41f44f(0x25d)]||null})['catch'](_0x2b55e5=>{const _0x243b17=_0x41f44f;_0x770647['warn']({'event':_0x2d4363['kUTHP'],'error':_0x2b55e5[_0x243b17(0x1dd)]},_0x243b17(0x2c9)+_0x2b55e5[_0x243b17(0x1dd)]);});this[_0x41f44f(0x287)][_0x41f44f(0x253)](_0x59276b['id'],{'historyId':_0x20b70a,'insertPromise':_0x521447});const _0x347d6a=this['buildContext'](_0x59276b,_0x4b73d8,_0x770647),_0x45781a=_0x2d4363[_0x41f44f(0x2ec)](getComponentEngine);if(_0x45781a&&typeof _0x45781a['executeEventHandlers']==='function'){const _0xf95414=await _0x45781a[_0x41f44f(0x2ff)](_0x41f44f(0x1f3),_0x347d6a,!![]);if(!_0xf95414['success'])throw new Error(_0x41f44f(0x248)+_0xf95414[_0x41f44f(0x22c)]);}const _0x1050ba=await _0x312e36(_0x347d6a);return _0x770647[_0x41f44f(0x2d9)]({'event':_0x2d4363[_0x41f44f(0x1f1)],'result':_0x1050ba},_0x41f44f(0x2ab)+_0x59276b['name']),_0x1050ba;}['buildContext'](_0x2ca430,_0xc415f3,_0x5d3c28){const _0x1967cb=a0_0x31ad9f,_0x56c37a={'XRYwq':function(_0x34f79d,_0x4ab372){return _0x34f79d||_0x4ab372;}};return{'jobId':_0x2ca430['id'],'jobName':_0x2ca430['name'],'attempt':_0x2ca430[_0x1967cb(0x2af)]+0x1,'maxAttempts':_0xc415f3?.[_0x1967cb(0x28f)]?.[_0x1967cb(0x1ef)]||0x3,'payload':_0x2ca430[_0x1967cb(0x24a)]||{},'config':_0x56c37a[_0x1967cb(0x278)](_0xc415f3,{}),'db':this[_0x1967cb(0x214)](),'redis':this['getRedisClient'](),'logger':_0x5d3c28,'kafka':this['getKafkaService'](),'cache':this[_0x1967cb(0x289)](),'updateProgress':async _0x5a5140=>{await _0x2ca430['updateProgress'](_0x5a5140);},'emit':async(_0x1879b3,_0x31826e)=>{const _0x5780bd=_0x1967cb,_0x2a052c=this[_0x5780bd(0x200)]();_0x2a052c&&await _0x2a052c['publishEvent'](_0x1879b3,_0x5780bd(0x1fc),null,_0x31826e,{'module':_0x5780bd(0x2a4),'endpoint':_0x2ca430['name']});},'job':_0x2ca430};}[a0_0x31ad9f(0x24d)](){const _0x50a82d=a0_0x31ad9f,_0xce804d={'qgxGl':_0x50a82d(0x20e)};return(process[_0x50a82d(0x24c)][_0x50a82d(0x2c6)]||_0xce804d['qgxGl'])['toLowerCase']();}async['ensureTables'](){const _0x549a96=a0_0x31ad9f,_0x54122b={'vAoXB':'job_db_unavailable','finmw':_0x549a96(0x2a6),'Sxkgc':'mysql.sql','qFoBY':_0x549a96(0x239),'VMAxv':_0x549a96(0x1d9),'nyGlg':_0x549a96(0x1e0),'IsnTf':'duplicate','iAmxP':_0x549a96(0x1f9)},_0x3ae22e=this[_0x549a96(0x214)]();if(!_0x3ae22e){logger[_0x549a96(0x2ac)]({'event':_0x54122b[_0x549a96(0x271)]},_0x54122b[_0x549a96(0x273)]);return;}const _0x3d662f=this['getDbType'](),_0x1f02c7={'postgresql':_0x549a96(0x217),'oracle':'oracle.sql','mysql':_0x54122b[_0x549a96(0x1ec)]},_0x22dea5=_0x1f02c7[_0x3d662f];if(!_0x22dea5){logger[_0x549a96(0x2ac)]({'event':_0x549a96(0x2bc),'dbType':_0x3d662f},_0x549a96(0x224)+_0x3d662f+'\x27\x20tidak\x20didukung\x20untuk\x20job\x20monitoring\x20tables');return;}const _0x19c9d6=path['join'](__dirname,'sql-scripts',_0x22dea5);if(!fs['existsSync'](_0x19c9d6)){logger[_0x549a96(0x2ac)]({'event':_0x54122b['qFoBY'],'path':_0x19c9d6},_0x549a96(0x1d8)+_0x19c9d6);return;}const _0x210ae8=fs['readFileSync'](_0x19c9d6,_0x54122b[_0x549a96(0x203)]),_0x354e96=this['splitSqlStatements'](_0x210ae8,_0x3d662f);let _0x3d0247=0x0;for(const _0x45a709 of _0x354e96){try{await _0x3ae22e[_0x549a96(0x303)](_0x45a709),_0x3d0247++;}catch(_0xd02ccf){const _0x4ed5c4=(_0xd02ccf[_0x549a96(0x1dd)]||'')['toLowerCase'](),_0x404230=_0x4ed5c4[_0x549a96(0x275)](_0x549a96(0x2f2))||_0x4ed5c4['includes'](_0x54122b[_0x549a96(0x298)])||_0x4ed5c4['includes'](_0x54122b[_0x549a96(0x2a0)]);!_0x404230&&logger[_0x549a96(0x2ac)]({'event':'job_ensure_tables_warn','error':_0xd02ccf[_0x549a96(0x1dd)]},'Job\x20ensureTables\x20warning:\x20'+_0xd02ccf[_0x549a96(0x1dd)]);}}logger[_0x549a96(0x2d9)]({'event':_0x54122b['iAmxP'],'dbType':_0x3d662f,'executed':_0x3d0247},'Job\x20monitoring\x20tables\x20ensured\x20('+_0x3d662f+')');}[a0_0x31ad9f(0x1fe)](_0x39536f,_0x24fdc6){const _0x40d56f=a0_0x31ad9f,_0x59da6f={'AvobL':function(_0x1bcf4c,_0x4fabb2){return _0x1bcf4c>_0x4fabb2;},'mnxRS':'oracle'};let _0x8e6330;return _0x24fdc6===_0x59da6f[_0x40d56f(0x2a7)]?_0x8e6330=_0x39536f['split'](/\n\/\s*(?:\n|$)/):_0x8e6330=_0x39536f['split'](/;\s*(?:\n|$)/),_0x8e6330[_0x40d56f(0x2ae)](_0x4b75e6=>_0x4b75e6[_0x40d56f(0x20a)]())['filter'](_0x2c63f8=>{const _0xa2c7ad=_0x40d56f;if(_0x2c63f8[_0xa2c7ad(0x1d5)]===0x0)return![];const _0x520c56=_0x2c63f8['split']('\x0a')['filter'](_0x161299=>!_0x161299[_0xa2c7ad(0x20a)]()[_0xa2c7ad(0x215)]('--')&&_0x161299['trim']()[_0xa2c7ad(0x1d5)]>0x0);return _0x59da6f[_0xa2c7ad(0x2ba)](_0x520c56[_0xa2c7ad(0x1d5)],0x0);});}async['upsertJobRegistry'](_0x4a21a4,_0x181958='online',_0x2f2d71=null){const _0x2c2bf9=a0_0x31ad9f,_0x539965={'vPgWb':'mysql'},_0x26aece=this['getDbUtils']();if(!_0x26aece)return;const _0x5969cc=this['getDbType'](),_0x541ddc=[_0x4a21a4[_0x2c2bf9(0x25b)],_0x4a21a4[_0x2c2bf9(0x2cd)]||_0x4a21a4[_0x2c2bf9(0x25b)],_0x4a21a4['type']||'cron',_0x4a21a4['schedule']||null,_0x4a21a4['queue']||_0x2c2bf9(0x2c7),_0x4a21a4['handler'],_0x4a21a4[_0x2c2bf9(0x25d)]||'',_0x4a21a4['timeout']||0x7530,_0x4a21a4[_0x2c2bf9(0x28f)]?.[_0x2c2bf9(0x1ef)]||0x3,_0x4a21a4['retry']?.[_0x2c2bf9(0x21d)]||_0x2c2bf9(0x246),_0x181958,_0x2f2d71];try{if(_0x5969cc==='oracle')await _0x26aece[_0x2c2bf9(0x303)]('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)',_0x541ddc);else _0x5969cc===_0x539965[_0x2c2bf9(0x1e4)]?await _0x26aece['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)',_0x541ddc):await _0x26aece['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()',_0x541ddc);}catch(_0x2b4cfb){logger[_0x2c2bf9(0x2ac)]({'event':_0x2c2bf9(0x2f9),'name':_0x4a21a4[_0x2c2bf9(0x25b)],'error':_0x2b4cfb[_0x2c2bf9(0x1dd)]},'Failed\x20to\x20upsert\x20job\x20registry:\x20'+_0x4a21a4['name']+'\x20—\x20'+_0x2b4cfb['message']);}}async['insertJobHistory'](_0x52097b){const _0x532979=a0_0x31ad9f,_0x48a049={'iIxKp':'default','eujxQ':function(_0x30c599,_0x17ce37){return _0x30c599===_0x17ce37;},'NrabE':'oracle','shjkD':function(_0x548c82,_0x752e9){return _0x548c82===_0x752e9;},'lrEts':'mysql','gniFx':_0x532979(0x293)},_0x2c6c7d=this['getDbUtils']();if(!_0x2c6c7d)return;const _0x584273=this[_0x532979(0x24d)](),_0x3d68ef=[_0x52097b['id'],_0x52097b[_0x532979(0x26f)],_0x52097b[_0x532979(0x29b)]||null,_0x52097b['triggerType']||'cron',_0x52097b[_0x532979(0x206)]||_0x532979(0x22b),_0x52097b[_0x532979(0x2b5)]||_0x48a049[_0x532979(0x2f4)],_0x52097b[_0x532979(0x28a)]||0x1,_0x52097b[_0x532979(0x24e)]||null,process[_0x532979(0x1e2)]];try{if(_0x48a049[_0x532979(0x25c)](_0x584273,_0x48a049[_0x532979(0x1cf)]))await _0x2c6c7d[_0x532979(0x303)]('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)',_0x3d68ef);else _0x48a049['shjkD'](_0x584273,_0x48a049[_0x532979(0x22f)])?await _0x2c6c7d['executeQuery'](_0x532979(0x211),_0x3d68ef):await _0x2c6c7d['executeQuery'](_0x532979(0x221),_0x3d68ef);await this[_0x532979(0x2e2)](_0x52097b['jobName'],_0x48a049[_0x532979(0x1ca)]);}catch(_0x162826){logger['warn']({'event':_0x532979(0x216),'jobName':_0x52097b['jobName'],'error':_0x162826['message']},_0x532979(0x23e)+_0x162826['message']);}}async['updateJobHistoryCompleted'](_0x539680,_0x92ab94,_0x33a6df){const _0x24bb08=a0_0x31ad9f,_0x55107a={'WiqQz':function(_0x2cad25,_0x500c72){return _0x2cad25===_0x500c72;},'svgwT':function(_0x2f60d8,_0x8c907b){return _0x2f60d8===_0x8c907b;},'ciBvy':_0x24bb08(0x299)},_0x29eae3=this[_0x24bb08(0x214)]();if(!_0x29eae3)return;const _0x51dfc1=this[_0x24bb08(0x24d)](),_0xc90ee9=_0x33a6df?String(_0x33a6df)['substring'](0x0,0x1f4):null;try{if(_0x55107a['WiqQz'](_0x51dfc1,'oracle'))await _0x29eae3[_0x24bb08(0x303)]('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',[_0x92ab94,_0xc90ee9,_0x539680]);else _0x55107a[_0x24bb08(0x20f)](_0x51dfc1,_0x55107a[_0x24bb08(0x231)])?await _0x29eae3[_0x24bb08(0x303)]('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?',[_0x92ab94,_0xc90ee9,_0x539680]):await _0x29eae3[_0x24bb08(0x303)](_0x24bb08(0x270),[_0x92ab94,_0xc90ee9,_0x539680]);}catch(_0x50443c){logger[_0x24bb08(0x2ac)]({'event':_0x24bb08(0x2d1),'historyId':_0x539680,'error':_0x50443c[_0x24bb08(0x1dd)]},'Failed\x20to\x20update\x20job\x20history\x20(completed):\x20'+_0x50443c['message']);}}async['updateJobHistoryFailed'](_0x3bacb0,_0x3b3526,_0x5ba7f6,_0x5c6f11,_0x928914){const _0x579a07=a0_0x31ad9f,_0x8daf92={'BnBmS':function(_0x4fe715,_0x354770){return _0x4fe715(_0x354770);},'bTSYq':function(_0x4cf2ff,_0x259a26){return _0x4cf2ff===_0x259a26;},'aqfQc':_0x579a07(0x2c5),'vYLGF':_0x579a07(0x299),'mieWu':function(_0x1373e9,_0x42995f){return _0x1373e9||_0x42995f;}},_0xf05e98=this[_0x579a07(0x214)]();if(!_0xf05e98)return;const _0x17b2bd=this[_0x579a07(0x24d)](),_0x553383=_0x5c6f11?String(_0x5c6f11)['substring'](0x0,0x3e8):null,_0x5bda89=_0x928914?_0x8daf92[_0x579a07(0x1c3)](String,_0x928914)['substring'](0x0,0xfa0):null;try{if(_0x8daf92['bTSYq'](_0x17b2bd,_0x8daf92[_0x579a07(0x285)]))await _0xf05e98[_0x579a07(0x303)]('UPDATE\x20job_history\x20SET\x20status\x20=\x20\x27failed\x27,\x20completed_at\x20=\x20SYSTIMESTAMP,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20duration_ms\x20=\x20:1,\x20progress\x20=\x20:2,\x20error_message\x20=\x20:3,\x20error_stack\x20=\x20:4\x20WHERE\x20id\x20=\x20:5',[_0x3b3526,_0x5ba7f6||0x0,_0x553383,_0x5bda89,_0x3bacb0]);else _0x17b2bd===_0x8daf92[_0x579a07(0x23f)]?await _0xf05e98[_0x579a07(0x303)](_0x579a07(0x27c),[_0x3b3526,_0x5ba7f6||0x0,_0x553383,_0x5bda89,_0x3bacb0]):await _0xf05e98[_0x579a07(0x303)](_0x579a07(0x29f),[_0x3b3526,_0x8daf92[_0x579a07(0x26e)](_0x5ba7f6,0x0),_0x553383,_0x5bda89,_0x3bacb0]);}catch(_0x90583c){logger[_0x579a07(0x2ac)]({'event':_0x579a07(0x2f5),'historyId':_0x3bacb0,'error':_0x90583c['message']},_0x579a07(0x2a5)+_0x90583c[_0x579a07(0x1dd)]);}}async['updateRegistryStatus'](_0x520472,_0x1e9999){const _0x2a4c96=a0_0x31ad9f,_0x32fc9e={'oqPnV':function(_0x45bd72,_0x2a426e){return _0x45bd72===_0x2a426e;},'dMNdx':function(_0x7a7266,_0x40ab1b){return _0x7a7266===_0x40ab1b;}},_0x347b0e=this[_0x2a4c96(0x214)]();if(!_0x347b0e)return;const _0x3504c5=this[_0x2a4c96(0x24d)]();try{if(_0x32fc9e['oqPnV'](_0x3504c5,'oracle'))await _0x347b0e['executeQuery'](_0x2a4c96(0x296),[_0x1e9999,_0x520472]);else _0x32fc9e[_0x2a4c96(0x26c)](_0x3504c5,'mysql')?await _0x347b0e[_0x2a4c96(0x303)]('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20?,\x20last_run_at\x20=\x20NOW()\x20WHERE\x20job_name\x20=\x20?',[_0x1e9999,_0x520472]):await _0x347b0e[_0x2a4c96(0x303)]('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',[_0x1e9999,_0x520472]);}catch(_0x1c3485){}}async['updateRegistryCounters'](_0x2d60d6,_0x21d88b,_0x453ca3,_0x4c20ef){const _0x4280eb=a0_0x31ad9f,_0x1096bf={'fscVb':function(_0x329efb,_0x4ac46e){return _0x329efb===_0x4ac46e;},'LAJtx':'success','QFYPE':_0x4280eb(0x256),'MdoMg':_0x4280eb(0x233),'EXCyW':function(_0xd410c8,_0x4a0d97){return _0xd410c8===_0x4a0d97;},'ZHuqS':_0x4280eb(0x2c5),'TUxcT':_0x4280eb(0x299),'dtIkE':_0x4280eb(0x213)},_0xb1272e=this[_0x4280eb(0x214)]();if(!_0xb1272e)return;const _0x46c77e=this[_0x4280eb(0x24d)](),_0x399b98=_0x1096bf['fscVb'](_0x21d88b,_0x1096bf[_0x4280eb(0x1ff)])?_0x1096bf[_0x4280eb(0x262)]:_0x1096bf[_0x4280eb(0x2fe)];try{if(_0x1096bf[_0x4280eb(0x241)](_0x46c77e,_0x1096bf[_0x4280eb(0x2f3)]))await _0xb1272e[_0x4280eb(0x303)](_0x4280eb(0x1e9)+_0x399b98+'\x20=\x20'+_0x399b98+_0x4280eb(0x2d2),[_0x21d88b,_0x453ca3,_0x4c20ef,_0x2d60d6]);else _0x46c77e===_0x1096bf[_0x4280eb(0x242)]?await _0xb1272e[_0x4280eb(0x303)]('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'+_0x399b98+'\x20=\x20'+_0x399b98+'\x20+\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20next_run_at\x20=\x20?\x20WHERE\x20job_name\x20=\x20?',[_0x21d88b,_0x453ca3,_0x4c20ef,_0x2d60d6]):await _0xb1272e['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'+_0x399b98+_0x4280eb(0x1f7)+_0x399b98+_0x4280eb(0x2f1),[_0x21d88b,_0x453ca3,_0x4c20ef,_0x2d60d6]);}catch(_0x8d5d71){logger[_0x4280eb(0x2ac)]({'event':_0x1096bf[_0x4280eb(0x1c8)],'jobName':_0x2d60d6,'error':_0x8d5d71[_0x4280eb(0x1dd)]},'Failed\x20to\x20update\x20job\x20registry\x20counters:\x20'+_0x8d5d71['message']);}}async['getNextRunFromBullMQ'](_0x4a270d){const _0x397fe5=a0_0x31ad9f,_0x3cec80={'ASdzA':function(_0x4816e5,_0x300fd6){return _0x4816e5===_0x300fd6;},'lABWf':_0x397fe5(0x2c7),'eoeAm':'function'},_0x1d2ef9=this[_0x397fe5(0x21b)][_0x4a270d];if(!_0x1d2ef9||_0x1d2ef9['type']!=='cron'||_0x3cec80['ASdzA'](_0x1d2ef9['enabled'],![]))return null;const _0x300177=this[_0x397fe5(0x220)][_0x1d2ef9[_0x397fe5(0x2b5)]||_0x3cec80[_0x397fe5(0x297)]];if(!_0x300177)return null;try{if(typeof _0x300177[_0x397fe5(0x1da)]===_0x3cec80['eoeAm']){const _0x3b7f69=await _0x300177['getJobSchedulers'](0x0,0x64),_0x57f0d3=_0x3b7f69['find'](_0x5a2c90=>_0x5a2c90[_0x397fe5(0x25b)]===_0x4a270d);return _0x57f0d3?.['next']?new Date(_0x57f0d3['next']):null;}}catch(_0x420cac){}return null;}async['setAllJobsOffline'](){const _0x1a940e=a0_0x31ad9f,_0x13b3fc={'MXTDp':function(_0x5e303b,_0x60304c){return _0x5e303b===_0x60304c;},'MXwEM':'mysql'},_0x414201=this['getDbUtils']();if(!_0x414201)return;const _0x3a3c27=this[_0x1a940e(0x24d)]();try{if(_0x13b3fc['MXTDp'](_0x3a3c27,_0x1a940e(0x2c5)))await _0x414201['executeQuery'](_0x1a940e(0x281));else _0x3a3c27===_0x13b3fc['MXwEM']?await _0x414201['executeQuery']('UPDATE\x20job_registry\x20SET\x20status\x20=\x20\x27offline\x27,\x20next_run_at\x20=\x20NULL'):await _0x414201['executeQuery'](_0x1a940e(0x2d3));}catch(_0x599852){logger['warn']({'event':_0x1a940e(0x25a),'error':_0x599852['message']},'Failed\x20to\x20set\x20jobs\x20offline:\x20'+_0x599852[_0x1a940e(0x1dd)]);}}['getDbUtils'](){const _0x83526=a0_0x31ad9f,_0x123b6b={'HNWzt':_0x83526(0x20e),'AbZGu':_0x83526(0x2c5),'onduN':function(_0x1226b2,_0x4be484){return _0x1226b2(_0x4be484);},'uVDrO':'../../utils/db-oracle','BgKOg':'db_oracle_unavailable','DAJrj':function(_0x53d9dc,_0x7b3253){return _0x53d9dc===_0x7b3253;},'tFiyu':_0x83526(0x299),'duhpb':function(_0xad96d4,_0x2295d8){return _0xad96d4(_0x2295d8);},'guugX':_0x83526(0x226),'ypVEG':_0x83526(0x1db),'JPJBM':_0x83526(0x1bf)},_0x4ce687=(process['env']['DB_TYPE']||_0x123b6b[_0x83526(0x243)])[_0x83526(0x1fb)]();if(_0x4ce687===_0x123b6b[_0x83526(0x290)])try{const _0x5c07f0=_0x123b6b[_0x83526(0x209)](require,_0x123b6b['uVDrO']);return{'executeQuery':(_0x23eab4,_0x425a15)=>_0x5c07f0['executeQuery'](_0x23eab4,_0x425a15),'executeTransaction':_0x161cf9=>_0x5c07f0['executeTransaction'](_0x161cf9),'getPool':()=>_0x5c07f0['getPool']()};}catch(_0x29a28c){return logger['warn']({'event':_0x123b6b[_0x83526(0x1f0)]},_0x83526(0x282)),null;}if(_0x123b6b['DAJrj'](_0x4ce687,_0x123b6b['tFiyu']))try{const _0x2ca84e=_0x123b6b[_0x83526(0x207)](require,_0x123b6b[_0x83526(0x27e)]);return{'executeQuery':(_0x3c7df0,_0x44de86)=>_0x2ca84e[_0x83526(0x303)](_0x3c7df0,_0x44de86),'executeTransaction':_0xa13499=>_0x2ca84e['executeTransaction'](_0xa13499),'getPool':()=>_0x2ca84e['getPool']()};}catch(_0x578fd1){return logger[_0x83526(0x2ac)]({'event':_0x123b6b[_0x83526(0x22d)]},_0x83526(0x252)),null;}try{const _0x585e9e=require(_0x123b6b['JPJBM']);return{'executeQuery':_0x585e9e['executeQuery'],'executeTransaction':_0x585e9e['executeTransaction'],'getPool':_0x585e9e[_0x83526(0x27b)]};}catch(_0x1a3f79){return logger['warn']({'event':'db_pg_unavailable'},_0x83526(0x1d7)),null;}}['getRedisClient'](){const _0x2527fb=a0_0x31ad9f,_0x3e519a={'tAIsE':function(_0x4a3f51,_0x525d07){return _0x4a3f51(_0x525d07);},'nhRqZ':'../../utils/redis-client'};try{const _0x368661=_0x3e519a[_0x2527fb(0x223)](require,_0x3e519a[_0x2527fb(0x1ed)]);return _0x368661[_0x2527fb(0x304)]?_0x368661[_0x2527fb(0x304)]():_0x368661;}catch(_0x1f9205){return null;}}[a0_0x31ad9f(0x200)](){const _0x53a8b3=a0_0x31ad9f,_0x850e2d={'GGRbX':'true','mEvWE':function(_0x35a8e5,_0x179acc){return _0x35a8e5(_0x179acc);},'vlsla':_0x53a8b3(0x2da)};try{if(process[_0x53a8b3(0x24c)][_0x53a8b3(0x1e7)]===_0x850e2d[_0x53a8b3(0x2e1)]){const _0x229f00=_0x850e2d['mEvWE'](require,_0x850e2d[_0x53a8b3(0x2dc)]);return _0x229f00['getInstance']?_0x229f00['getInstance']():_0x229f00;}}catch(_0x560ebb){}return null;}['getCacheManager'](){const _0x3f2080=a0_0x31ad9f,_0x2c3920={'xDbng':'../../utils/cache-manager'};try{return require(_0x2c3920[_0x3f2080(0x294)]);}catch(_0x31c00b){return null;}}async[a0_0x31ad9f(0x249)](_0xa9b444,_0x31693d={}){const _0x28ec72=a0_0x31ad9f,_0x360a9d={'VClHV':_0x28ec72(0x2c7)},_0x468c69=this['jobConfigs'][_0xa9b444];if(!_0x468c69)throw new Error('Job\x20tidak\x20ditemukan:\x20'+_0xa9b444);const _0x493382=this['queues'][_0x468c69[_0x28ec72(0x2b5)]||_0x360a9d[_0x28ec72(0x26a)]],_0x3f3e42=await _0x493382['add'](_0xa9b444,{..._0x31693d,'handler':_0x468c69[_0x28ec72(0x279)],'triggeredBy':'api'},{'attempts':_0x468c69[_0x28ec72(0x28f)]?.['maxAttempts']||0x3,'backoff':{'type':_0x468c69['retry']?.['backoff']||_0x28ec72(0x246),'delay':_0x468c69[_0x28ec72(0x28f)]?.[_0x28ec72(0x1c0)]||0x1388},'timeout':_0x468c69['timeout']||0x7530});return logger[_0x28ec72(0x2d9)]({'event':'job_dispatched','jobId':_0x3f3e42['id'],'name':_0xa9b444,'triggeredBy':'api'},_0x28ec72(0x2aa)+_0xa9b444+_0x28ec72(0x263)+_0x3f3e42['id']+')'),{'jobId':_0x3f3e42['id'],'name':_0xa9b444};}async['dispatchDelayed'](_0x5d7b31,_0x534b67={},_0x107753=0x0){const _0x2ef010=a0_0x31ad9f,_0x278d35={'HAKkX':_0x2ef010(0x2c7),'cZmDv':_0x2ef010(0x246),'RhBtj':'job_dispatched_delayed'},_0x443b47=this[_0x2ef010(0x21b)][_0x5d7b31];if(!_0x443b47)throw new Error(_0x2ef010(0x2b7)+_0x5d7b31);const _0x1dacef=this[_0x2ef010(0x220)][_0x443b47['queue']||_0x278d35['HAKkX']],_0x3cfc38=await _0x1dacef['add'](_0x5d7b31,{..._0x534b67,'handler':_0x443b47['handler'],'triggeredBy':'api-delayed'},{'delay':_0x107753,'attempts':_0x443b47['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x443b47['retry']?.['backoff']||_0x278d35['cZmDv'],'delay':_0x443b47[_0x2ef010(0x28f)]?.[_0x2ef010(0x1c0)]||0x1388},'timeout':_0x443b47['timeout']||0x7530});return logger[_0x2ef010(0x2d9)]({'event':_0x278d35[_0x2ef010(0x2c1)],'jobId':_0x3cfc38['id'],'name':_0x5d7b31,'delayMs':_0x107753},'Job\x20dispatched\x20(delayed\x20'+_0x107753+'ms):\x20'+_0x5d7b31+_0x2ef010(0x263)+_0x3cfc38['id']+')'),{'jobId':_0x3cfc38['id'],'name':_0x5d7b31};}async[a0_0x31ad9f(0x229)](_0x5df782){const _0x3528f5=a0_0x31ad9f;for(const _0x32ad66 of Object[_0x3528f5(0x23b)](this['queues'])){const _0x293dc5=await _0x32ad66[_0x3528f5(0x2f6)](_0x5df782);if(_0x293dc5){const _0x2ba79f=await _0x293dc5[_0x3528f5(0x1c2)]();return{'jobId':_0x293dc5['id'],'name':_0x293dc5[_0x3528f5(0x25b)],'state':_0x2ba79f,'progress':_0x293dc5['progress'],'attemptsMade':_0x293dc5['attemptsMade'],'failedReason':_0x293dc5['failedReason'],'returnvalue':_0x293dc5['returnvalue'],'data':_0x293dc5['data'],'timestamps':{'created':_0x293dc5[_0x3528f5(0x2d0)],'started':_0x293dc5[_0x3528f5(0x2a3)],'completed':_0x293dc5[_0x3528f5(0x247)]}};}}return null;}['listJobs'](){const _0x5aa050=a0_0x31ad9f;return Object[_0x5aa050(0x23b)](this['jobConfigs'])['map'](_0x3fac69=>({'name':_0x3fac69['name'],'description':_0x3fac69['description']||'','type':_0x3fac69['type'],'schedule':_0x3fac69[_0x5aa050(0x2bb)],'handler':_0x3fac69['handler'],'enabled':_0x3fac69[_0x5aa050(0x286)]!==![],'queue':_0x3fac69[_0x5aa050(0x2b5)]||_0x5aa050(0x2c7),'timeout':_0x3fac69[_0x5aa050(0x1e6)]||0x7530,'retry':_0x3fac69['retry']||{'maxAttempts':0x3,'backoff':'exponential','initialDelay':0x1388},'metadata':_0x3fac69['metadata']||{}}));}async[a0_0x31ad9f(0x1e3)](){const _0x2920e1=a0_0x31ad9f,_0x168395={'PNMxU':'active'},_0x5cee54=[];for(const [_0x4a0616,_0x19e714]of Object['entries'](this['queues'])){const _0x2f9582=await _0x19e714['getJobs']([_0x168395['PNMxU']]);for(const _0x5319a8 of _0x2f9582){_0x5cee54[_0x2920e1(0x2d6)]({'jobId':_0x5319a8['id'],'name':_0x5319a8[_0x2920e1(0x25b)],'queue':_0x4a0616,'progress':_0x5319a8[_0x2920e1(0x2ce)],'attemptsMade':_0x5319a8[_0x2920e1(0x2af)],'startedAt':_0x5319a8[_0x2920e1(0x2a3)]});}}return _0x5cee54;}async[a0_0x31ad9f(0x267)](_0x3af076={}){const _0x20821e=a0_0x31ad9f,_0x41e72d={'Ppynj':function(_0x489ecf,_0x436620,_0x3a2786){return _0x489ecf(_0x436620,_0x3a2786);},'yLVWY':function(_0x17140d,_0x2e7143){return _0x17140d*_0x2e7143;},'nURAT':function(_0x99f2c2,_0x39289e){return _0x99f2c2-_0x39289e;},'qMmdC':function(_0x58ae51,_0x30f12e){return _0x58ae51-_0x30f12e;},'tcvoj':'failed'},_0x59fd61=_0x41e72d[_0x20821e(0x1d3)](parseInt,_0x3af076[_0x20821e(0x251)],0xa)||0x1,_0x2efcae=Math['min'](_0x41e72d['Ppynj'](parseInt,_0x3af076['limit'],0xa)||0x14,0x64),_0x15d1a2=_0x41e72d['yLVWY'](_0x41e72d[_0x20821e(0x2f7)](_0x59fd61,0x1),_0x2efcae),_0x50c723=_0x41e72d[_0x20821e(0x236)](_0x15d1a2+_0x2efcae,0x1),_0x1d9148=[];for(const [_0x188515,_0x51cc07]of Object[_0x20821e(0x21c)](this['queues'])){const _0x5b347e=await _0x51cc07['getJobs']([_0x20821e(0x29e)],_0x15d1a2,_0x50c723),_0xa39e2a=await _0x51cc07['getJobs']([_0x41e72d[_0x20821e(0x255)]],_0x15d1a2,_0x50c723);for(const _0x143686 of[..._0x5b347e,..._0xa39e2a]){const _0x4a5b5c=await _0x143686[_0x20821e(0x1c2)]();_0x1d9148[_0x20821e(0x2d6)]({'jobId':_0x143686['id'],'name':_0x143686['name'],'state':_0x4a5b5c,'queue':_0x188515,'attemptsMade':_0x143686[_0x20821e(0x2af)],'failedReason':_0x143686['failedReason'],'returnvalue':_0x143686[_0x20821e(0x269)],'timestamps':{'created':_0x143686['timestamp'],'started':_0x143686['processedOn'],'completed':_0x143686['finishedOn']}});}}return _0x1d9148[_0x20821e(0x250)]((_0x1372c3,_0x5e159b)=>(_0x5e159b[_0x20821e(0x244)][_0x20821e(0x1f5)]||0x0)-(_0x1372c3[_0x20821e(0x244)][_0x20821e(0x1f5)]||0x0)),{'jobs':_0x1d9148['slice'](0x0,_0x2efcae),'total':_0x1d9148[_0x20821e(0x1d5)],'page':_0x59fd61,'limit':_0x2efcae};}async[a0_0x31ad9f(0x1d2)](_0x2c8e9c){const _0x12fc30=a0_0x31ad9f,_0x5dfeec={'OyFQU':function(_0x2e8b1d,_0x438d9f){return _0x2e8b1d===_0x438d9f;},'hzQrz':_0x12fc30(0x2c8),'dbmXR':'Job\x20cancelled\x20via\x20API','tiNpD':'api-cancel','HrQkk':'waiting','WCRZY':function(_0x30286e,_0x3ac221){return _0x30286e===_0x3ac221;}};for(const _0x309098 of Object['values'](this['queues'])){const _0x1b6e06=await _0x309098[_0x12fc30(0x2f6)](_0x2c8e9c);if(_0x1b6e06){const _0x3bc4cc=await _0x1b6e06[_0x12fc30(0x1c2)]();if(_0x5dfeec['OyFQU'](_0x3bc4cc,_0x5dfeec[_0x12fc30(0x238)]))return await _0x1b6e06['moveToFailed'](new Error(_0x5dfeec['dbmXR']),_0x5dfeec['tiNpD'],!![]),{'success':!![],'message':'Job\x20'+_0x2c8e9c+'\x20cancelled\x20(was\x20active)'};if(_0x5dfeec[_0x12fc30(0x1dc)](_0x3bc4cc,_0x5dfeec[_0x12fc30(0x259)])||_0x5dfeec[_0x12fc30(0x245)](_0x3bc4cc,'delayed'))return await _0x1b6e06['remove'](),{'success':!![],'message':'Job\x20'+_0x2c8e9c+_0x12fc30(0x235)+_0x3bc4cc+')'};return{'success':![],'message':_0x12fc30(0x205)+_0x2c8e9c+_0x12fc30(0x1ce)+_0x3bc4cc+')'};}}return{'success':![],'message':_0x12fc30(0x205)+_0x2c8e9c+_0x12fc30(0x257)};}async[a0_0x31ad9f(0x1cd)](){const _0x2a587f=a0_0x31ad9f,_0x1753c7={'bGotP':_0x2a587f(0x237),'smMMh':'paused','rUzbA':'waiting'},_0x4960d5={};for(const [_0x25d489,_0x5416b3]of Object[_0x2a587f(0x21c)](this['queues'])){try{const _0x264447=await _0x5416b3['getJobCounts']('active',_0x2a587f(0x29e),_0x1753c7[_0x2a587f(0x283)],'failed',_0x1753c7[_0x2a587f(0x2e9)],_0x1753c7[_0x2a587f(0x1c6)]);_0x4960d5[_0x25d489]=_0x264447;}catch(_0x3c1ff3){_0x4960d5[_0x25d489]={'error':_0x3c1ff3['message']};}}const _0x1e03a7={};for(const [_0x5950e3,_0xc4f247]of Object['entries'](this[_0x2a587f(0x2d8)])){_0x1e03a7[_0x5950e3]={'running':_0xc4f247[_0x2a587f(0x2e0)](),'paused':_0xc4f247['isPaused']()};}return{'initialized':this[_0x2a587f(0x2ea)],'registeredJobs':Object['keys'](this[_0x2a587f(0x21b)])[_0x2a587f(0x1d5)],'redisConnections':this[_0x2a587f(0x2ad)]['length'],'queues':_0x4960d5,'workers':_0x1e03a7};}async[a0_0x31ad9f(0x23a)](_0x29db14,_0x59a4c4){const _0x140085=a0_0x31ad9f,_0x2b903e={'UFKEk':_0x140085(0x302),'tQrcD':'onAfterJobComplete\x20handler\x20error\x20(non-blocking)','MrTYo':function(_0x1cd893,_0x3fe10c){return _0x1cd893-_0x3fe10c;},'jcEev':function(_0x58f991,_0x2c7b89){return _0x58f991===_0x2c7b89;},'lORut':function(_0x189358){return _0x189358();},'gEStk':function(_0x24f919,_0x2264e8){return _0x24f919===_0x2264e8;},'FFhEL':'Failed\x20to\x20publish\x20JOB_COMPLETED\x20to\x20Kafka'},_0x468b49=logger[_0x140085(0x2e3)]({'jobId':_0x29db14['id'],'jobName':_0x29db14[_0x140085(0x25b)]});_0x468b49[_0x140085(0x2d9)]({'event':'job_completed','attemptsMade':_0x29db14[_0x140085(0x2af)],'duration':_0x29db14[_0x140085(0x247)]?_0x2b903e[_0x140085(0x29a)](_0x29db14['finishedOn'],_0x29db14['processedOn']):null},'Job\x20completed:\x20'+_0x29db14[_0x140085(0x25b)]);const _0x68c251=this['activeHistoryIds'][_0x140085(0x20d)](_0x29db14['id']);if(_0x68c251){if(_0x68c251[_0x140085(0x26d)])await _0x68c251['insertPromise'];const _0x39e70b=_0x29db14[_0x140085(0x247)]&&_0x29db14[_0x140085(0x2a3)]?_0x29db14['finishedOn']-_0x29db14['processedOn']:null,_0x1d9278=_0x2b903e[_0x140085(0x300)](typeof _0x59a4c4,_0x140085(0x2db))?_0x59a4c4:_0x59a4c4?JSON[_0x140085(0x2b2)](_0x59a4c4)[_0x140085(0x222)](0x0,0x1f4):null;await this[_0x140085(0x2e5)](_0x68c251[_0x140085(0x264)],_0x39e70b,_0x1d9278);const _0x307633=await this[_0x140085(0x2ca)](_0x29db14['name']);await this[_0x140085(0x208)](_0x29db14['name'],_0x140085(0x1d6),_0x39e70b,_0x307633),this['activeHistoryIds'][_0x140085(0x201)](_0x29db14['id']);}const _0x2a9e55=_0x2b903e['lORut'](getComponentEngine);if(_0x2a9e55&&_0x2b903e['gEStk'](typeof _0x2a9e55[_0x140085(0x2ff)],'function')){const _0x1c6017={'jobId':_0x29db14['id'],'jobName':_0x29db14['name'],'result':_0x59a4c4,'config':this[_0x140085(0x21b)][_0x29db14['name']]||{}};_0x2a9e55['executeEventHandlers']('onAfterJobComplete',_0x1c6017,![])['catch'](_0x27fe8e=>{const _0x1267da=_0x140085;_0x468b49['warn']({'event':_0x2b903e['UFKEk'],'error':_0x27fe8e[_0x1267da(0x1dd)]},_0x2b903e['tQrcD']);});}const _0x24e93d=this[_0x140085(0x200)]();if(_0x24e93d)try{await _0x24e93d['publishEvent']('restforge.jobs.completed',_0x140085(0x2f0),null,{'jobId':_0x29db14['id'],'name':_0x29db14['name'],'result':_0x59a4c4},{'module':_0x140085(0x2a4),'endpoint':_0x29db14['name']});}catch(_0x4222a9){_0x468b49['warn']({'event':_0x140085(0x2e8),'error':_0x4222a9[_0x140085(0x1dd)]},_0x2b903e['FFhEL']);}}async['onJobFailed'](_0x1f4a8c,_0x203086){const _0x1f6d2f=a0_0x31ad9f,_0xafbe74={'kfcVd':function(_0x2bdd68,_0xb60bf0){return _0x2bdd68-_0xb60bf0;},'osNJK':'failed','NlOXs':'function','pGyjT':_0x1f6d2f(0x20b),'NfwHu':'JOB_FAILED','nKrXd':'job_kafka_publish_error','skqXG':_0x1f6d2f(0x2ee)},_0x2cc8ce=logger[_0x1f6d2f(0x2e3)]({'jobId':_0x1f4a8c['id'],'jobName':_0x1f4a8c[_0x1f6d2f(0x25b)]});_0x2cc8ce['error']({'event':'job_failed','attemptsMade':_0x1f4a8c[_0x1f6d2f(0x2af)],'failedReason':_0x203086?.[_0x1f6d2f(0x1dd)],'willRetry':_0x1f4a8c['attemptsMade']<(this[_0x1f6d2f(0x21b)][_0x1f4a8c[_0x1f6d2f(0x25b)]]?.[_0x1f6d2f(0x28f)]?.['maxAttempts']||0x3)},_0x1f6d2f(0x2c4)+_0x1f4a8c['name']+_0x1f6d2f(0x22a)+_0x203086?.[_0x1f6d2f(0x1dd)]);const _0x1d4ff7=this[_0x1f6d2f(0x287)][_0x1f6d2f(0x20d)](_0x1f4a8c['id']);if(_0x1d4ff7){if(_0x1d4ff7['insertPromise'])await _0x1d4ff7['insertPromise'];const _0x182c59=_0x1f4a8c[_0x1f6d2f(0x247)]&&_0x1f4a8c['processedOn']?_0xafbe74[_0x1f6d2f(0x1fd)](_0x1f4a8c[_0x1f6d2f(0x247)],_0x1f4a8c['processedOn']):null;await this[_0x1f6d2f(0x2cf)](_0x1d4ff7['historyId'],_0x182c59,_0x1f4a8c['progress'],_0x203086?.[_0x1f6d2f(0x1dd)],_0x203086?.[_0x1f6d2f(0x22e)]);const _0x30dab2=await this['getNextRunFromBullMQ'](_0x1f4a8c['name']);await this['updateRegistryCounters'](_0x1f4a8c['name'],_0xafbe74['osNJK'],_0x182c59,_0x30dab2),this[_0x1f6d2f(0x287)][_0x1f6d2f(0x201)](_0x1f4a8c['id']);}const _0x30308f=getComponentEngine();if(_0x30308f&&typeof _0x30308f[_0x1f6d2f(0x2ff)]===_0xafbe74[_0x1f6d2f(0x218)]){const _0x469e3b={'jobId':_0x1f4a8c['id'],'jobName':_0x1f4a8c[_0x1f6d2f(0x25b)],'error':_0x203086?.['message'],'attemptsMade':_0x1f4a8c['attemptsMade'],'config':this[_0x1f6d2f(0x21b)][_0x1f4a8c['name']]||{}};_0x30308f['executeEventHandlers'](_0xafbe74['pGyjT'],_0x469e3b,![])[_0x1f6d2f(0x2b6)](_0x1690fd=>{const _0x18d730=_0x1f6d2f;_0x2cc8ce[_0x18d730(0x2ac)]({'event':_0x18d730(0x2de),'error':_0x1690fd['message']},_0x18d730(0x2cb));});}const _0x2d85ed=this[_0x1f6d2f(0x200)]();if(_0x2d85ed)try{await _0x2d85ed['publishEvent']('restforge.jobs.failed',_0xafbe74[_0x1f6d2f(0x227)],null,{'jobId':_0x1f4a8c['id'],'name':_0x1f4a8c[_0x1f6d2f(0x25b)],'error':_0x203086?.[_0x1f6d2f(0x1dd)],'attemptsMade':_0x1f4a8c['attemptsMade']},{'module':'job-scheduler','endpoint':_0x1f4a8c['name']});}catch(_0x29231c){_0x2cc8ce['warn']({'event':_0xafbe74[_0x1f6d2f(0x1f6)],'error':_0x29231c[_0x1f6d2f(0x1dd)]},_0xafbe74[_0x1f6d2f(0x1f8)]);}}[a0_0x31ad9f(0x25f)](_0x1af7ce,_0x3a6872){const _0x127345=a0_0x31ad9f;logger['debug']({'event':'job_progress','jobId':_0x1af7ce['id'],'jobName':_0x1af7ce['name'],'progress':_0x3a6872},_0x127345(0x1c9)+_0x1af7ce['name']+'\x20—\x20'+_0x3a6872+'%');}}function a0_0x26f4(_0x4c5ac6,_0x1213c6){_0x4c5ac6=_0x4c5ac6-0x1be;const _0x41d494=a0_0x41d4();let _0x26f4c3=_0x41d494[_0x4c5ac6];if(a0_0x26f4['WqZWfN']===undefined){var _0x3d6bd2=function(_0x137dcf){const _0x3d4e25='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x9cbb6d='',_0x3b5f7e='';for(let _0xadb362=0x0,_0x29cc44,_0x1a1fd2,_0x58b93d=0x0;_0x1a1fd2=_0x137dcf['charAt'](_0x58b93d++);~_0x1a1fd2&&(_0x29cc44=_0xadb362%0x4?_0x29cc44*0x40+_0x1a1fd2:_0x1a1fd2,_0xadb362++%0x4)?_0x9cbb6d+=String['fromCharCode'](0xff&_0x29cc44>>(-0x2*_0xadb362&0x6)):0x0){_0x1a1fd2=_0x3d4e25['indexOf'](_0x1a1fd2);}for(let _0x67d959=0x0,_0x5ae89e=_0x9cbb6d['length'];_0x67d959<_0x5ae89e;_0x67d959++){_0x3b5f7e+='%'+('00'+_0x9cbb6d['charCodeAt'](_0x67d959)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3b5f7e);};a0_0x26f4['cuAMbx']=_0x3d6bd2,a0_0x26f4['oTaFpw']={},a0_0x26f4['WqZWfN']=!![];}const _0xdb3549=_0x41d494[0x0],_0x804f0a=_0x4c5ac6+_0xdb3549,_0x1fe9a2=a0_0x26f4['oTaFpw'][_0x804f0a];return!_0x1fe9a2?(_0x26f4c3=a0_0x26f4['cuAMbx'](_0x26f4c3),a0_0x26f4['oTaFpw'][_0x804f0a]=_0x26f4c3):_0x26f4c3=_0x1fe9a2,_0x26f4c3;}module['exports']=new JobManager();
|
|
1
|
+
const a0_0x22225f=a0_0x2230;(function(_0x46dd67,_0x1b432f){const _0x438648=a0_0x2230,_0x50bb2b=_0x46dd67();while(!![]){try{const _0x2f354a=parseInt(_0x438648(0x2a2))/0x1*(-parseInt(_0x438648(0x2d6))/0x2)+-parseInt(_0x438648(0x249))/0x3+-parseInt(_0x438648(0x20f))/0x4+parseInt(_0x438648(0x1bb))/0x5+-parseInt(_0x438648(0x269))/0x6+-parseInt(_0x438648(0x2b2))/0x7*(-parseInt(_0x438648(0x2a9))/0x8)+parseInt(_0x438648(0x226))/0x9*(parseInt(_0x438648(0x209))/0xa);if(_0x2f354a===_0x1b432f)break;else _0x50bb2b['push'](_0x50bb2b['shift']());}catch(_0x56173e){_0x50bb2b['push'](_0x50bb2b['shift']());}}}(a0_0x39bd,0x867f1));const {Queue,Worker}=require('bullmq'),Redis=require('ioredis'),crypto=require(a0_0x22225f(0x23d)),{v7:uuidv7}=require(a0_0x22225f(0x283)),fs=require('fs'),path=require('path'),{logger}=require('../../utils/logger'),jobValidator=require('./job-validator');function a0_0x2230(_0x2e5dc6,_0x3651e0){_0x2e5dc6=_0x2e5dc6-0x1b4;const _0x39bd7d=a0_0x39bd();let _0x223057=_0x39bd7d[_0x2e5dc6];if(a0_0x2230['BXACES']===undefined){var _0x50d758=function(_0x438564){const _0x51858c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x31696b='',_0x23d888='';for(let _0x281ee3=0x0,_0x1eca27,_0x3fb705,_0x28a987=0x0;_0x3fb705=_0x438564['charAt'](_0x28a987++);~_0x3fb705&&(_0x1eca27=_0x281ee3%0x4?_0x1eca27*0x40+_0x3fb705:_0x3fb705,_0x281ee3++%0x4)?_0x31696b+=String['fromCharCode'](0xff&_0x1eca27>>(-0x2*_0x281ee3&0x6)):0x0){_0x3fb705=_0x51858c['indexOf'](_0x3fb705);}for(let _0x3619c2=0x0,_0xf2d201=_0x31696b['length'];_0x3619c2<_0xf2d201;_0x3619c2++){_0x23d888+='%'+('00'+_0x31696b['charCodeAt'](_0x3619c2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x23d888);};a0_0x2230['xtjBTY']=_0x50d758,a0_0x2230['qtJFMI']={},a0_0x2230['BXACES']=!![];}const _0x5c20e5=_0x39bd7d[0x0],_0x682d3b=_0x2e5dc6+_0x5c20e5,_0x4e3637=a0_0x2230['qtJFMI'][_0x682d3b];return!_0x4e3637?(_0x223057=a0_0x2230['xtjBTY'](_0x223057),a0_0x2230['qtJFMI'][_0x682d3b]=_0x223057):_0x223057=_0x4e3637,_0x223057;}function a0_0x39bd(){const _0xf5f253=['zw5KC1DPDgG','lMPZ','Aw5Zzxj0uhjVBwLZzq','DNP4s2m','y3jVBL9YzwDPC3rLCMvK','y3jLyxrLqNvSBe1rq29UBMvJDgLVBG','mtG1ndu4mMPuzevfBq','B3jHy2XL','ywXS','ywXYzwfKEsbLEgLZDhm','BwLU','z2v0rgjuExbL','yxbP','z2v0u3rHDgu','AM9Ix2HPC3rVCNLFAw5Zzxj0x2jNx2vYCM9Y','B2zMBgLUzq','igPVyIbJB25MAwCOCYKGzNjVBsbWyxLSB2fKl2PVyNmV','ug9gugu','Bwf4qxr0zw1WDhm','sM9IignVBMzPzYbPBNzHBgLKoIa','BgzSC0S','yunptwm','icSGmsWkicaGicaGicaGicbUzxH0x3j1BL9HDca9id8Gv0HfuKuGAM9Ix25HBwuGpsa/','C3rYAw5N','zKDZu0e','C3bSAxq','qMfJA2DYB3vUzcbPBNnLCNqGAM9IigHPC3rVCNKGzMfPBgvKoIa','AM9Ix2nVBMzPz3nFBg9HzgvK','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa6msWGBgfZDf9KDxjHDgLVBL9TCYa9idOYlaOGicaGicaGicaGia','rM9SzgvYihbHEwXVywqVAM9ICY8GDgLKywSGzgL0zw11A2fU','C0LRqve','Euzzv08','CMvHzgrPCLn5BMm','q3jVBIbYzwDPC3rLCMvKoIa','rg5cug0','ALj4Dfy','sK9cx1nivvret1Dox1rjtuvpvvq','Aw5JBhvKzxm','nti1ndqWnen6v0HsCG','sM9Iie1HBMfNzxiGC3vKywGGzgLPBMLZAwfSAxnHC2KSihnRAxa','AM9PBG','AM9Iq29UzMLNCW','C3fSlxnJCMLWDhm','z2v0sM9I','Dhj1zq','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ie5pvYGPlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GjdeSihbYB2DYzxnZid0GmtaWlcbYzxn1BhrFC3vTBwfYEsa9icqYifDirvjfigLKid0Gjdm','qNvSBe1rifjLzgLZignVBM5Ly3rPB24GDMvYAwzPzwq','icSGmsWkicaGicaGicaGicbUzxH0x3j1BL9HDca9icqZlcb1CgrHDgvKx2f0id0GtK9xkcKGv0HfuKuGAM9Ix25HBwuGpsaKna','zgvMyxvSDa','Cgf1C2vK','mNWXFdn8nNW3Fdv8nhWW','zgvSyxLLza','AM9Ix3jLzgLZx2nVBM5Ly3rLza','AM9Ix3f1zxvLC19JCMvHDgvK','A0zICvu','DxbKyxrLuMvNAxn0CNLdB3vUDgvYCW','DMfSAwq','zNvUy3rPB24','DhjPBq','z2v0uMvKAxndBgLLBNq','AM9ItMfTzq','lI4VlI4VC2vYDMLJzxmVA2fMA2ftzxj2AwnL','uNLYvvq','y2HPBgq','DxvPza','BwfUDwfS','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa/lcbSyxn0x3j1BL9HDca9ie5pvYGPifDirvjfigPVyL9Uyw1Lid0GpW','ChjVy2vZC2vKt24','z2v0q2fJAgvnyw5Hz2vY','sM9Iihn0ywXSzwq6ia','C3jJ','DhLWzq','z2v0q2XPzw50','qKroCgK','sM9IigHHBMrSzxiGy29TCgXLDgvKoIa','C1LZy1K','ChjVy2vZC0PVyG','AM9Ix2THzMTHx3b1yMXPC2HFzxjYB3i','C2nOzwr1Bgu','ywz0zxjFAM9Ix2zHAwXLzf9OB29Rx2vYCM9Y','BK1muhe','CgLK','y29UzMLNrMLSzq','rMfPBgvKihrVigvUC3vYzsbQB2iGDgfIBgvZoIa','AM9Ix2rPC3bHDgnOzwrFzgvSyxLLza','Dw5RBM93BG','y29UBMvJDgLVBNm','Eg9Uzxy','zw50CMLLCW','CuX2AxC','BgvUz3rO','Aw5PDgLHBerLBgf5','vMfnDKO','Aw5Zzxj0sM9IsgLZDg9YEq','uvLfwLy','mtCWouHmwfzcra','ihjLBw92zwqGkhDHCYa','icSGmsWkicaGicaGicaGicbUzxH0x3j1BL9HDca9idOZlcb1CgrHDgvKx2f0id0Gu1LtveLnrvnuqu1qifDirvjfigPVyL9Uyw1Lid0GoJq','rMfPBgvKihrVihjLz2LZDgvYigPVyJOG','sK9cx1jfvevoveLptL9it1vsuW','y2XVC2u','B25kB2jgywLSzwq','mZyWntzorwTIwva','y29TCgXLDgvK','sM9Iihn0yxj0zwq6ia','zMLSDgvY','iokaLca','sKfXt0S','ChjVz3jLC3m','B25czwzVCMvkB2jfEgvJDxrL','Aw5PDgLHBgL6zwq','nJq0yxjMCe1V','ExHcwwq','q3HXyvm','ChvZAa','AgfUzgXLCNm','ywLgu0W','B3jHltaWotu1','AM9Ix2zHAwXLza','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteW','BxLZCwW','BgLZDePVyNm','t1jUBe8','zxHLy3v0zvrYyw5Zywn0Aw9U','se9uCvy','zxHLy3v0zvf1zxj5','v092DvG','uKvesvnFse9tva','BgLTAxq','zxHWB3j0CW','wKDpDgW','yNvSBg1Xx3DVCMTLCL9LCNjVCG','D2fYBG','u1fmihnJCMLWDcb0AwrHAYbKAxrLBxvRyw46ia','DxbKyxrLsM9IsgLZDg9YEuzHAwXLza','EM5YzM0','ywrK','A2PfwuC','rgf0ywjHC2uGDgLKywSGDgvYC2vKAweSihnRAxaGyxv0BY1JCMvHDguGAM9IihrHyMXLCW','zgLZCgf0y2G','zMfPBgvK','ywn0AxzLsgLZDg9YEuLKCW','BLLOy2K','sK9cx0vwru5u','zLnoBgG','B25kB2jdB21WBgv0zwq','rMfPBgvKihrVihvWC2vYDcbQB2iGCMvNAxn0CNK6ia','otm0tfH4u1bj','sK9cx0zbsuXfra','sM9Iia','zhvWBgLJyxrL','sM9Iig1VBML0B3jPBMCGDgfIBgvZigvUC3vYzwqGka','B25kB2jqCM9NCMvZCW','uKvesvnFue9sva','z0Plq1K','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','Bg9JywXOB3n0','zxjYB3jZ','AM9Ix21HBMfNzxjFCMvHzhK','z2v0rgjvDgLSCW','lI4VlI4VDxrPBhmVzgiTB3jHy2XL','zgvSzxrL','D29YA2LUz0rPCG','ALPpEhq','Bw92zvrVrMfPBgvK','C3rYAw5NAwz5','Aw5PDgLHBgL6zq','AgLZDg9YEuLK','rLHxweu','sM9Iie1HBMfNzxiGCMvHzhK6ia','AM9IlxnJAgvKDwXLCG','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNzMfPBgvKjYWGy29TCgXLDgvKx2f0id0GtK9xkcKScIaGicaGicaGicaGzhvYyxrPB25FBxmGpsa/lcbWCM9NCMvZCYa9id8SigvYCM9Yx21LC3nHz2uGpsa/lcbLCNjVCL9ZDgfJAYa9id8Gv0HfuKuGAwqGpsa/','mte3nJiWme1xCuLVCG','AM9ICW','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNzMfPBgvKjYWGy29TCgXLDgvKx2f0id0GtK9xkcKScIaGicaGicaGicaGzhvYyxrPB25FBxmGpsaKmsWGChjVz3jLC3mGpsaKmIWGzxjYB3jFBwvZC2fNzsa9icqZlcbLCNjVCL9ZDgfJAYa9icq0ifDirvjfigLKid0Gjdu','BwPxEMS','rhLkwKC','mYbcDwXStveGuxvLDwvZignYzwf0zwqGkgHPz2GSigrLzMf1BhqSigXVDYK','rxzHv2m','sMrvvM4','B25SAw5L','zgvIDwC','oMPVyG','sM9Iie1HBMfNzxiGC2H1DhrPBMCGzg93BIaODgLTzw91DdOG','y2fUy2vSsM9I','AM9Ix2HPC3rVCNLFAw5Zzxj0x2vYCM9Y','BMv4Da','BLzWrxa','id0G','sM9IigrPC3bHDgnOzwqGkgrLBgf5zwqG','yMfJA29MzG','yxbPlwrLBgf5zwq','zLnkr2y','C3rfrKm','CMvZDgzVCMDLlMPVyNmUzMfPBgvK','sM9IigrPC3bHDgnOzwq6ia','CgfNzq','DxbZzxj0sM9Iu2nOzwr1BgvY','zMLUAxnOzwrpBG','CMvTB3zL','DxrMoa','DgLTzxn0yw1W','Dg9mB3DLCKnHC2u','y0XVsg8','lIbkB2iGu2nOzwr1BgvYihrPzgfRigfRyw4GywT0AwyU','CxvLDwvZ','z2v0sM9Iu2nOzwr1BgvYCW','z2v0sw5ZDgfUy2u','AM9Ix3nXBf9UB3rFzM91BMq','mYbcDwXStveGv29YA2vYCYbJCMvHDgvKicHJB25JDxjYzw5JEtOG','su5trvjuieLove8GAM9Ix3jLz2LZDhj5cIaGicaGicaGicaGkgPVyL9Uyw1LlcbKAxnWBgf5x25HBwuSihr5CguSihnJAgvKDwXLlcbXDwv1zsWGAgfUzgXLCIWGy29UzMLNx2zPBguScIaGicaGicaGicaGihrPBwvVDxqSihjLDhj5x21HEcWGCMv0CNLFyMfJA29MzIWGC3rHDhvZlcbUzxH0x3j1BL9HDcWGy3jLyxrLzf9HDcWGDxbKyxrLzf9HDcKkicaGicaGicaGicbwquXvrvmGkd8Sid8Sid8Sid8Sid8Sid8Sid8Sid8Sid8Sid8Sid8Sid8Sie5pvYGPlcbot1COksKkicaGicaGicaGicbptIbevvbmsunbveuGs0vzifvqrefurqOGicaGicaGicaGicaGzgLZCgXHEv9Uyw1Lid0GvKfmvuvtkgrPC3bSyxLFBMfTzsKSihr5CguGpsbwquXvrvmODhLWzsKScIaGicaGicaGicaGicbZy2HLzhvSzsa9ifzbtfvfuYHZy2HLzhvSzsKSihf1zxvLid0GvKfmvuvtkhf1zxvLksWkicaGicaGicaGicaGigHHBMrSzxiGpsbwquXvrvmOAgfUzgXLCIKSignVBMzPz19MAwXLid0GvKfmvuvtkgnVBMzPz19MAwXLksWkicaGicaGicaGicaGihrPBwvVDxqGpsbwquXvrvmODgLTzw91DcKSihjLDhj5x21HEca9ifzbtfvfuYHYzxrYEv9TyxGPlaOGicaGicaGicaGicaGCMv0CNLFyMfJA29MzIa9ifzbtfvfuYHYzxrYEv9IywnRB2zMksWGC3rHDhvZid0GvKfmvuvtkhn0yxr1CYKScIaGicaGicaGicaGicbUzxH0x3j1BL9HDca9ifzbtfvfuYHUzxH0x3j1BL9HDcK','y3DK','Ew9LBxO','DgLTzxPVBMu','lMPZB24','sw90Chm','BgLZDfj1BM5PBMC','su5trvjuieLove8GAM9Ix3jLz2LZDhj5cIaGicaGicaGicaGkgPVyL9Uyw1LlcbKAxnWBgf5x25HBwuSihr5CguSihnJAgvKDwXLlcbXDwv1zsWGAgfUzgXLCIWGy29UzMLNx2zPBguScIaGicaGicaGicaGihrPBwvVDxqSihjLDhj5x21HEcWGCMv0CNLFyMfJA29MzIWGC3rHDhvZlcbUzxH0x3j1BL9HDcWGy3jLyxrLzf9HDcWGDxbKyxrLzf9HDcKkicaGicaGicaGicbwquXvrvmGkcqXlcaKmIWGjdmSicq0lcaKnsWGjdySicq3lcaKocWGjdKSicqXmcWGjdeXlcaKmtiSie5pvYGPlcbot1COksKkicaGicaGicaGicbptIbdt05gteLdvcaOAM9Ix25HBwuPierpifvqrefursbtrvqkicaGicaGicaGicaGigrPC3bSyxLFBMfTzsa9ievyq0XvrevelMrPC3bSyxLFBMfTzsWGDhLWzsa9ievyq0XvrevelNr5CguScIaGicaGicaGicaGicbZy2HLzhvSzsa9ievyq0XvrevelNnJAgvKDwXLlcbXDwv1zsa9ievyq0XvrevelNf1zxvLlaOGicaGicaGicaGicaGAgfUzgXLCIa9ievyq0XvrevelMHHBMrSzxiSignVBMzPz19MAwXLid0GrvHdtfveruqUy29UzMLNx2zPBguScIaGicaGicaGicaGicb0Aw1LB3v0id0GrvHdtfveruqUDgLTzw91DcWGCMv0CNLFBwf4id0GrvHdtfveruqUCMv0CNLFBwf4laOGicaGicaGicaGicaGCMv0CNLFyMfJA29MzIa9ievyq0XvrevelNjLDhj5x2jHy2TVzMySihn0yxr1CYa9ievyq0XvrevelNn0yxr1CYWkicaGicaGicaGicaGig5LEhrFCNvUx2f0id0GrvHdtfveruqUBMv4Df9YDw5FyxqSihvWzgf0zwrFyxqGpsbot1COkq','zw5HyMXLza','rfbit1y','sK9cx1nuquXmrurFsu5urvjwquW','y3jVBG','BM93','ywz0zxjFAM9Ix2nVBxbSzxrLx2HVB2TFzxjYB3i','z2v0tMv4Dfj1BKzYB21cDwXStve','zgjFBxLZCwXFDw5HDMfPBgfIBgu','sgfUzgXLCIb0AwrHAYbKAxrLBxvRyw4GDw50DwSGAM9IoIa','AM9Ix3jLz2LZDhj5x2nVDw50zxjFzxjYB3i','tM1yCM4','EwrcCe8','D29YA2vYCW','Bg9HzePVyKnVBMzPz3m','DgLTzxn0yw1WCW','DMfSAwrHDgvdB25MAwC','DMfSDwvZ','uefOtMK','Cgf5Bg9Hza','DhjPz2DLCMvKqNK','y2XLyxi','Aw5MBW','rMfPBgvKihrVihvWzgf0zsbQB2iGAgLZDg9YEsaOy29TCgXLDgvKktOG','sMXgtuS','rK1QAem','zxjYB3i','txLtuuWGreiGBw9KDwXLig5VDcbHDMfPBgfIBgu','BwvZC2fNzq','y0D6wu4','z2v0sM9Iq291BNrZ','twfQv0e','wM1KBei','mZi4nty3mhbOAhHbEa','C3rHCNrZv2L0Aa','z2v0sM9ICW','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteWSihvWzgf0zwrFyxqGpsbot1COkq','BwfW','y3jLyxrLza','ndm3mduWne11yMfoBa','zxHLy3v0zuv2zw50sgfUzgXLCNm','zgf0yq','yNvSBg1XsM9Iswq','tvzLCLO','AM9Ix21HBMfNzxjFC2H1DgrVD25Fy29TCgXLDgu','zxHWB25LBNrPywW','CMvNAxn0zxjkB2i','B3jHy2XLlNnXBa','AgTczuC','C3bSAxrtCwXtDgf0zw1LBNrZ','CxvLDwu','DxbKyxrLuMvNAxn0CNLtDgf0Dxm','sK9cx1jfreLtx1bsruzjwa','t2r0CMy','uKvesvnFrei','yNvPBgrdB250zxH0','AM9Ix2HPC3rVCNLFzMfPBgvKx2vYCM9Y','DgLTzw91Da','icHHDhrLBxb0ia','y2f0y2G','AM9Ix2vUC3vYzv90ywjSzxnFzxjYB3i','BMfTzq','otbduNPPtLq','zgjFB3jHy2XLx3vUyxzHAwXHyMXL','senAqxm','sM9IignVBxbSzxrLzdOG','C2v0','AM9Ix2rIx3vUyxzHAwXHyMXL','qLnYAu8','C3vIC3rYAw5N','yxr0zw1WDhnnywrL','rgTMqvi','zfzlq1i','zw52','AgfUzgXLCG','rejFvfLqrq','ChvIBgLZAev2zw50','AM9Ix2nVBxbSzxrLza','AxnqyxvZzwq','sM9IignHBMnLBgXLzcb2AweGqvbj','CMvHzezPBgvtEw5J','ywn0AxzL','vgLKywSGywrHigPVyIbJB25MAwCGzgL0zw11A2fUigrPihbHEwXVywqVAM9ICY8UiePVyIbnyw5Hz2vYigfRDgLMihrHBNbHignYB24U','Cg9ZDgDYzxnXBc5ZCwW','AM9Ix3jLzgLZx2zHAwXLza','y3j5ChrV','CMv0CNK','sK9cx0zbsuXfrf9srvrftLrjt05Fse9vuLm','CxvPDa','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticGKmsWGjdiSicqZlcaKncWGjduSicDYDw5UAw5NjYWGjdySicq3lcaKocWGtK9xkcKSicq5lcbot1COksK','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ifnzu1rjtuvtvefnucWkicaGicaGicaGicbKDxjHDgLVBL9TCYa9idOXlcbWCM9NCMvZCYa9ideWmcWGCMvZDwX0x3n1Bw1HCNKGpsa6mIbxsevsrsbPzca9idOZ'];a0_0x39bd=function(){return _0xf5f253;};return a0_0x39bd();}let componentEngine=null;function getComponentEngine(){const _0x43be18=a0_0x22225f,_0x369305={'dVKCR':function(_0x824dac,_0x364444){return _0x824dac(_0x364444);}};if(!componentEngine)try{const _0x1a2443=_0x369305[_0x43be18(0x230)](require,'../../utils/component-engine');componentEngine=_0x1a2443['componentEngine']||_0x1a2443;}catch(_0x25c410){}return componentEngine;}class JobManager{constructor(){const _0x3e90ee=a0_0x22225f,_0xce96ee=_0x3e90ee(0x275)['split']('|');let _0x22ce3b=0x0;while(!![]){switch(_0xce96ee[_0x22ce3b++]){case'0':this['activeHistoryIds']=new Map();continue;case'1':this[_0x3e90ee(0x1f5)]={};continue;case'2':this['queues']={};continue;case'3':this[_0x3e90ee(0x26c)]={};continue;case'4':this['workingDir']=process[_0x3e90ee(0x1e2)]();continue;case'5':this['initialized']=![];continue;case'6':this['handlers']={};continue;case'7':this[_0x3e90ee(0x299)]=[];continue;}break;}}[a0_0x22225f(0x248)](){const _0x538da5=a0_0x22225f,_0x21d082={'fSNlh':'bullmq_redis_error','mEGme':_0x538da5(0x2df),'rAcGl':function(_0x49991e,_0x97f8e3,_0x479c7e){return _0x49991e(_0x97f8e3,_0x479c7e);},'CsPEi':function(_0x22fd02,_0x357ef9,_0x4713bf){return _0x22fd02(_0x357ef9,_0x4713bf);},'yFYWO':_0x538da5(0x202)},_0x1865ef=new Redis({'host':process['env'][_0x538da5(0x2c2)]||_0x21d082['mEGme'],'port':_0x21d082['rAcGl'](parseInt,process[_0x538da5(0x231)][_0x538da5(0x2dc)],0xa)||0x18ec,'password':process['env']['REDIS_PASSWORD']||undefined,'db':_0x21d082['CsPEi'](parseInt,process['env'][_0x538da5(0x21e)],0xa)||0x0,'maxRetriesPerRequest':null,'retryStrategy'(_0x2b110d){const _0x501b89=_0x538da5,_0x5ef36f=Math[_0x501b89(0x24d)](_0x2b110d*0x32,0x7d0);return _0x5ef36f;}});return _0x1865ef['on'](_0x21d082[_0x538da5(0x262)],_0x2155a6=>{const _0x1d53cf=_0x538da5;logger[_0x1d53cf(0x202)]({'event':_0x21d082[_0x1d53cf(0x2d3)],'error':_0x2155a6[_0x1d53cf(0x204)]},'BullMQ\x20Redis\x20connection\x20error:\x20'+_0x2155a6[_0x1d53cf(0x204)]);}),this[_0x538da5(0x299)]['push'](_0x1865ef),_0x1865ef;}async[a0_0x22225f(0x1b5)](){const _0x435cd0=a0_0x22225f,_0x584264={'XfQeP':'job_stalled','QYEZV':'Initializing\x20Job\x20Manager...','JdUVn':_0x435cd0(0x23c),'kpuFw':'job_no_configs','XkNoH':'high','hkBeG':'low','Elley':_0x435cd0(0x1c0),'AyFIm':function(_0x5f390c,_0x496062,_0x425087){return _0x5f390c(_0x496062,_0x425087);},'NmXrn':function(_0x4d6b16,_0x24abdc,_0x57499c){return _0x4d6b16(_0x24abdc,_0x57499c);},'lToCC':_0x435cd0(0x2aa),'PAhNi':_0x435cd0(0x202)};if(this['initialized']){logger[_0x435cd0(0x2c7)]({'event':'job_manager_already_initialized'},_0x435cd0(0x26a));return;}logger['info']({'event':'job_manager_init_start'},_0x584264[_0x435cd0(0x2a1)]);const _0x2a5358=this[_0x435cd0(0x248)]();try{await _0x2a5358['ping'](),logger[_0x435cd0(0x1fe)]({'event':_0x435cd0(0x277)},_0x435cd0(0x271));}catch(_0x8a0daa){logger[_0x435cd0(0x202)]({'event':_0x584264[_0x435cd0(0x1c2)],'error':_0x8a0daa['message']},'Redis\x20connection\x20failed:\x20'+_0x8a0daa['message']+_0x435cd0(0x1db));try{await _0x2a5358['quit']();}catch(_0x4870ed){}this[_0x435cd0(0x299)]=this[_0x435cd0(0x299)][_0x435cd0(0x2ac)](_0x18d837=>_0x18d837!==_0x2a5358);return;}try{await _0x2a5358[_0x435cd0(0x240)]();}catch(_0x28df1a){}this['connections']=this[_0x435cd0(0x299)][_0x435cd0(0x2ac)](_0x167856=>_0x167856!==_0x2a5358);try{await this['ensureTables']();}catch(_0x289b3d){logger[_0x435cd0(0x2c7)]({'event':_0x435cd0(0x224),'error':_0x289b3d['message']},_0x435cd0(0x296)+_0x289b3d['message']+'.\x20DB\x20monitoring\x20disabled.');}const _0x1b3297=this[_0x435cd0(0x1f6)]();_0x1b3297[_0x435cd0(0x29d)]===0x0&&logger['info']({'event':_0x584264['kpuFw']},_0x435cd0(0x23a));const _0x2e81fb=[];for(const _0x477d3c of _0x1b3297){const _0x107779=jobValidator[_0x435cd0(0x1f8)](_0x477d3c,this[_0x435cd0(0x2e5)]);_0x107779[_0x435cd0(0x27b)]?_0x2e81fb['push'](_0x477d3c):logger[_0x435cd0(0x202)]({'event':'job_config_invalid','name':_0x477d3c[_0x435cd0(0x225)]||_0x435cd0(0x298),'errors':_0x107779['errors']},_0x435cd0(0x256)+(_0x477d3c['name']||'unknown')+'\x20—\x20'+_0x107779[_0x435cd0(0x2e0)][_0x435cd0(0x26b)](';\x20'));}const _0x3b2dcf=process['env'][_0x435cd0(0x2de)]||'default',_0x4277fa=process['env'][_0x435cd0(0x21c)]||'rf:'+_0x3b2dcf+_0x435cd0(0x1c5),_0x36758d=parseInt(process[_0x435cd0(0x231)][_0x435cd0(0x2a6)],0xa)||0x48,_0x2823a3=parseInt(process['env'][_0x435cd0(0x23f)],0xa)||0xa8,_0x1d3985={'removeOnComplete':{'age':_0x36758d*0xe10},'removeOnFail':{'age':_0x2823a3*0xe10}},_0x1b8745={'high-priority':_0x584264['XkNoH'],'default':'default','low-priority':_0x584264[_0x435cd0(0x218)]};for(const [_0x3b38ab,_0x38a674]of Object['entries'](_0x1b8745)){this[_0x435cd0(0x1dc)][_0x3b38ab]=new Queue(_0x38a674,{'connection':this['createBullMQConnection'](),'prefix':_0x4277fa,'defaultJobOptions':_0x1d3985});}logger['info']({'event':_0x435cd0(0x278),'count':0x3},_0x584264['Elley']);const _0x4f2fd4=_0x584264['AyFIm'](parseInt,process[_0x435cd0(0x231)]['JOB_CONCURRENCY'],0xa)||0x5,_0x3492fd=_0x584264[_0x435cd0(0x1f3)](parseInt,process[_0x435cd0(0x231)][_0x435cd0(0x1eb)],0xa)||0x7530,_0x353bfa=parseInt(process[_0x435cd0(0x231)]['JOB_MAX_STALLED_COUNT'],0xa)||0x2;for(const [_0x3945df,_0x1f1af7]of Object[_0x435cd0(0x29b)](_0x1b8745)){const _0x405f2a=new Worker(_0x1f1af7,async _0x203733=>this[_0x435cd0(0x28f)](_0x203733),{'connection':this['createBullMQConnection'](),'prefix':_0x4277fa,'concurrency':_0x4f2fd4,'stalledInterval':_0x3492fd,'maxStalledCount':_0x353bfa});_0x405f2a['on'](_0x584264['lToCC'],(_0x264889,_0x87f0bf)=>this['onJobCompleted'](_0x264889,_0x87f0bf)),_0x405f2a['on'](_0x435cd0(0x2cf),(_0xa835e1,_0x1fbc69)=>this['onJobFailed'](_0xa835e1,_0x1fbc69)),_0x405f2a['on']('progress',(_0x5cff18,_0x196b01)=>this[_0x435cd0(0x2db)](_0x5cff18,_0x196b01)),_0x405f2a['on']('stalled',_0x33b3ef=>{const _0x22f323=_0x435cd0;logger[_0x22f323(0x2c7)]({'event':_0x584264['XfQeP'],'jobId':_0x33b3ef},_0x22f323(0x288)+_0x33b3ef);}),_0x405f2a['on'](_0x584264[_0x435cd0(0x1fa)],_0x5c787b=>{const _0x1c8694=_0x435cd0;logger[_0x1c8694(0x202)]({'event':_0x1c8694(0x2c6),'queue':_0x3945df,'error':_0x5c787b['message']},'BullMQ\x20Worker\x20error\x20('+_0x3945df+'):\x20'+_0x5c787b[_0x1c8694(0x204)]);}),this['workers'][_0x3945df]=_0x405f2a;}logger[_0x435cd0(0x1fe)]({'event':'job_workers_created','count':0x3,'concurrency':_0x4f2fd4},_0x435cd0(0x1e0)+_0x4f2fd4+')');let _0x5b0d07=0x0;for(const _0x2e3dc7 of _0x2e81fb){try{await this[_0x435cd0(0x216)](_0x2e3dc7),_0x5b0d07++;}catch(_0x1fcedb){logger['error']({'event':'job_register_failed','name':_0x2e3dc7['name'],'error':_0x1fcedb['message']},_0x435cd0(0x2a5)+_0x2e3dc7[_0x435cd0(0x225)]+_0x435cd0(0x2ad)+_0x1fcedb['message']);}}this[_0x435cd0(0x2b1)]=!![];const _0x57323f=this[_0x435cd0(0x299)]['length'];logger['info']({'event':_0x435cd0(0x2e1),'registeredJobs':_0x5b0d07,'totalConfigs':_0x2e81fb['length'],'redisConnections':_0x57323f},_0x435cd0(0x1b8)+_0x5b0d07+'\x20job(s)\x20registered,\x20'+_0x57323f+'\x20Redis\x20connections');}async['shutdown'](){const _0x53d800=a0_0x22225f,_0x59e230={'JIbJB':function(_0x372ee9,_0x9c96b9){return _0x372ee9<_0x9c96b9;},'tTGEh':'active','mjWzk':_0x53d800(0x214),'HOTqV':'Job\x20Manager\x20shutdown\x20complete'};if(!this[_0x53d800(0x2b1)])return;const _0x3d116d=parseInt(process[_0x53d800(0x231)][_0x53d800(0x267)],0xa)||0x2710;logger['info']({'event':'job_manager_shutdown_start','timeoutMs':_0x3d116d},_0x53d800(0x1c6)+_0x3d116d+'ms)...');const _0x30a85e=Object['values'](this[_0x53d800(0x1f5)])[_0x53d800(0x20d)](async _0x58fb8e=>{try{await _0x58fb8e['pause']();}catch(_0x42aff3){}});await Promise['all'](_0x30a85e);const _0x568554=Date[_0x53d800(0x1ed)]();while(_0x59e230['JIbJB'](Date['now']()-_0x568554,_0x3d116d)){let _0x56e599=0x0;for(const _0x3c903b of Object[_0x53d800(0x1f9)](this['queues'])){try{const _0x19d2ba=await _0x3c903b['getJobCounts'](_0x59e230['tTGEh']);_0x56e599+=_0x19d2ba[_0x53d800(0x239)]||0x0;}catch(_0x5af39c){}}if(_0x56e599===0x0)break;await new Promise(_0x2f6eac=>setTimeout(_0x2f6eac,0x1f4));}const _0x4bd9e9=Object['values'](this[_0x53d800(0x1f5)])[_0x53d800(0x20d)](async _0x72da7c=>{try{await _0x72da7c['close']();}catch(_0xf771ee){}});await Promise[_0x53d800(0x24b)](_0x4bd9e9);const _0x74a3b8=Object['values'](this['queues'])[_0x53d800(0x20d)](async _0x2a8bd7=>{const _0x1379cf=_0x53d800;try{await _0x2a8bd7[_0x1379cf(0x2a7)]();}catch(_0x55025f){}});await Promise['all'](_0x74a3b8);for(const _0x3e5d0a of this['connections']){try{await _0x3e5d0a[_0x53d800(0x240)]();}catch(_0x21b52d){}}this[_0x53d800(0x1dc)]={},this['workers']={},this['connections']=[],await this['setAllJobsOffline'](),this['activeHistoryIds'][_0x53d800(0x1fd)](),this[_0x53d800(0x2b1)]=![],logger[_0x53d800(0x1fe)]({'event':_0x59e230[_0x53d800(0x1be)]},_0x59e230[_0x53d800(0x2bf)]);}['loadJobConfigs'](){const _0x15a631=a0_0x22225f,_0x5697a6={'KRLoc':_0x15a631(0x1bc),'DPHOV':_0x15a631(0x1d7),'cLoHo':'job_config_parse_error'},_0x18b68e=path['join'](this[_0x15a631(0x2e5)],_0x15a631(0x1fb),_0x5697a6['KRLoc']);if(!fs['existsSync'](_0x18b68e))return logger['info']({'event':'job_config_dir_missing','path':_0x18b68e},_0x15a631(0x260)),[];const _0x39a7a2=fs[_0x15a631(0x263)](_0x18b68e)[_0x15a631(0x2ac)](_0x38b96c=>_0x38b96c[_0x15a631(0x243)](_0x15a631(0x1e5))),_0x5b7e4d=[];for(const _0x598865 of _0x39a7a2){const _0x2edadb=path['join'](_0x18b68e,_0x598865);try{const _0x5aa718=fs['readFileSync'](_0x2edadb,_0x5697a6[_0x15a631(0x1ea)]),_0x5d1bd0=JSON['parse'](_0x5aa718);_0x5d1bd0['_sourceFile']=_0x598865,_0x5b7e4d['push'](_0x5d1bd0);}catch(_0x580e02){logger['error']({'event':_0x5697a6[_0x15a631(0x1da)],'file':_0x598865,'error':_0x580e02[_0x15a631(0x204)]},'Failed\x20to\x20parse\x20job\x20config:\x20'+_0x598865+'\x20—\x20'+_0x580e02['message']);}}return logger['info']({'event':_0x15a631(0x25e),'count':_0x5b7e4d[_0x15a631(0x29d)]},'Loaded\x20'+_0x5b7e4d['length']+_0x15a631(0x253)),_0x5b7e4d;}async[a0_0x22225f(0x216)](_0x34369b){const _0x161a02=a0_0x22225f,_0x5c97de={'TprWm':_0x161a02(0x1bc),'kjEYG':function(_0x30c435,_0x3a2a1){return _0x30c435(_0x3a2a1);},'nVpEp':function(_0x4a9b93,_0x221845){return _0x4a9b93===_0x221845;},'KoIkE':function(_0x4e36e0,_0x113909){return _0x4e36e0!==_0x113909;},'ktQmY':'cron','lflsK':_0x161a02(0x252),'mDlWm':_0x161a02(0x1c3)},_0x213f41=path[_0x161a02(0x26b)](this['workingDir'],_0x161a02(0x289),_0x5c97de['TprWm'],_0x34369b[_0x161a02(0x232)]+_0x161a02(0x244));this[_0x161a02(0x2b6)][_0x34369b[_0x161a02(0x225)]]=_0x5c97de[_0x161a02(0x2cc)](require,_0x213f41),this['jobConfigs'][_0x34369b[_0x161a02(0x225)]]=_0x34369b;if(_0x5c97de['nVpEp'](_0x34369b['type'],'cron')&&_0x5c97de['KoIkE'](_0x34369b['enabled'],![])){const _0x3fe8fb=this['queues'][_0x34369b[_0x161a02(0x21a)]||_0x161a02(0x273)];await _0x3fe8fb[_0x161a02(0x1d4)](_0x34369b['name'],{'pattern':_0x34369b[_0x161a02(0x291)],'tz':_0x34369b[_0x161a02(0x1e4)]||undefined},{'name':_0x34369b['name'],'data':{'handler':_0x34369b['handler'],'triggeredBy':'cron','metadata':_0x34369b['metadata']||{}},'opts':{'attempts':_0x34369b['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x34369b['retry']?.[_0x161a02(0x1cd)]||_0x161a02(0x215),'delay':_0x34369b['retry']?.[_0x161a02(0x29e)]||0x1388},'timeout':_0x34369b['timeout']||0x7530}}),logger[_0x161a02(0x1fe)]({'event':_0x161a02(0x247),'name':_0x34369b['name'],'schedule':_0x34369b['schedule'],'queue':_0x34369b[_0x161a02(0x21a)]||'default'},_0x161a02(0x264)+_0x34369b['name']+'\x20['+_0x34369b['schedule']+']');}const _0x2ca09f=_0x34369b[_0x161a02(0x28a)]===_0x5c97de['ktQmY']&&_0x34369b[_0x161a02(0x1e9)]!==![]?_0x161a02(0x1c3):_0x5c97de[_0x161a02(0x257)];let _0x2a29c6=null;_0x5c97de[_0x161a02(0x1ca)](_0x2ca09f,_0x5c97de['mDlWm'])&&(_0x2a29c6=await this[_0x161a02(0x1ef)](_0x34369b['name'])),await this['upsertJobRegistry'](_0x34369b,_0x2ca09f,_0x2a29c6);}async['processJob'](_0x4047d2){const _0x574be0=a0_0x22225f,_0x349c42={'pJavV':'job_started','yurmW':function(_0x16305c,_0x5de4d0){return _0x16305c+_0x5de4d0;},'FMjhC':'unknown','RyrUT':_0x574be0(0x1ce),'ydBpO':'delayed','Ounyw':function(_0x33750c,_0x23f9ea){return _0x33750c===_0x23f9ea;},'ORnlO':_0x574be0(0x1ec),'mIDNV':function(_0x12776a,_0x44e478){return _0x12776a+_0x44e478;},'KFxuC':function(_0xd8f24){return _0xd8f24();},'QpoSA':function(_0x57304e,_0x32fcc1){return _0x57304e===_0x32fcc1;},'yjVIv':'function','HCZAs':_0x574be0(0x2b0),'xonev':function(_0x54e30b,_0x28d0cd){return _0x54e30b(_0x28d0cd);},'GgGtC':'job_handler_done'},_0x4b8750=this[_0x574be0(0x26c)][_0x4047d2['name']],_0x52fb72=this[_0x574be0(0x2b6)][_0x4047d2['name']];if(!_0x52fb72)throw new Error(_0x574be0(0x1f1)+_0x4047d2['name']);const _0x291190=logger[_0x574be0(0x282)]({'jobId':_0x4047d2['id'],'jobName':_0x4047d2['name']});_0x291190[_0x574be0(0x1fe)]({'event':_0x349c42['pJavV'],'attempt':_0x4047d2['attemptsMade']+0x1,'triggeredBy':_0x4047d2[_0x574be0(0x211)]?.['triggeredBy']||_0x574be0(0x298)},_0x574be0(0x2ab)+_0x4047d2[_0x574be0(0x225)]+_0x574be0(0x222)+_0x349c42['yurmW'](_0x4047d2['attemptsMade'],0x1)+')');const _0x3c17b1=uuidv7(),_0xe14384=_0x4047d2['data']?.[_0x574be0(0x1fc)]||_0x349c42[_0x574be0(0x201)],_0x200ba9=this[_0x574be0(0x2a0)]({'id':_0x3c17b1,'jobName':_0x4047d2[_0x574be0(0x225)],'bullmqJobId':_0x4047d2['id'],'triggerType':_0xe14384===_0x349c42[_0x574be0(0x281)]?_0x349c42[_0x574be0(0x1f4)]:_0x349c42['Ounyw'](_0xe14384,'api')?_0x574be0(0x284):_0x349c42[_0x574be0(0x2bd)],'triggeredBy':_0xe14384===_0x574be0(0x1ec)?'system':_0xe14384,'queue':_0x4b8750?.[_0x574be0(0x21a)]||'default','attempt':_0x349c42['mIDNV'](_0x4047d2['attemptsMade'],0x1),'configFile':_0x4b8750?.['_sourceFile']||null})['catch'](_0x5e02d0=>{const _0x880b0=_0x574be0;_0x291190['warn']({'event':_0x880b0(0x251),'error':_0x5e02d0[_0x880b0(0x204)]},_0x880b0(0x25d)+_0x5e02d0[_0x880b0(0x204)]);});this[_0x574be0(0x2d0)][_0x574be0(0x22a)](_0x4047d2['id'],{'historyId':_0x3c17b1,'insertPromise':_0x200ba9});const _0x75f328=this[_0x574be0(0x21f)](_0x4047d2,_0x4b8750,_0x291190),_0x2e2356=_0x349c42['KFxuC'](getComponentEngine);if(_0x2e2356&&_0x349c42['QpoSA'](typeof _0x2e2356[_0x574be0(0x210)],_0x349c42['yjVIv'])){const _0x1b3ba7=await _0x2e2356['executeEventHandlers'](_0x349c42[_0x574be0(0x228)],_0x75f328,!![]);if(!_0x1b3ba7['success'])throw new Error('Job\x20cancelled\x20by\x20onBeforeJobExecute:\x20'+_0x1b3ba7[_0x574be0(0x202)]);}const _0x41f9a8=await _0x349c42[_0x574be0(0x29a)](_0x52fb72,_0x75f328);return _0x291190[_0x574be0(0x1fe)]({'event':_0x349c42['GgGtC'],'result':_0x41f9a8},_0x574be0(0x28d)+_0x4047d2[_0x574be0(0x225)]),_0x41f9a8;}['buildContext'](_0x381999,_0x20c633,_0x2755fb){const _0x133da3=a0_0x22225f,_0x3b0962={'MVerZ':_0x133da3(0x2d2),'yxBYd':function(_0x542a5b,_0x519994){return _0x542a5b||_0x519994;}};return{'jobId':_0x381999['id'],'jobName':_0x381999['name'],'attempt':_0x381999[_0x133da3(0x22e)]+0x1,'maxAttempts':_0x20c633?.['retry']?.['maxAttempts']||0x3,'payload':_0x381999[_0x133da3(0x211)]||{},'config':_0x3b0962[_0x133da3(0x2b3)](_0x20c633,{}),'db':this['getDbUtils'](),'redis':this['getRedisClient'](),'logger':_0x2755fb,'kafka':this['getKafkaService'](),'cache':this['getCacheManager'](),'updateProgress':async _0x22b70d=>{await _0x381999['updateProgress'](_0x22b70d);},'emit':async(_0x128f7a,_0x1c68c5)=>{const _0x3da999=_0x133da3,_0x55a0dd=this['getKafkaService']();_0x55a0dd&&await _0x55a0dd[_0x3da999(0x234)](_0x128f7a,_0x3b0962[_0x3da999(0x213)],null,_0x1c68c5,{'module':'job-scheduler','endpoint':_0x381999['name']});},'job':_0x381999};}[a0_0x22225f(0x24e)](){const _0x1fc06d=a0_0x22225f,_0x338728={'jRxtV':'postgresql'};return(process[_0x1fc06d(0x231)]['DB_TYPE']||_0x338728[_0x1fc06d(0x266)])[_0x1fc06d(0x1d9)]();}async['ensureTables'](){const _0x504a8f=a0_0x22225f,_0x153f3f={'XvHvS':_0x504a8f(0x23b),'YZRFo':_0x504a8f(0x217),'DnBPm':'job_db_type_unsupported','vzxKc':_0x504a8f(0x1d7),'okMjC':_0x504a8f(0x24c),'TRZyO':_0x504a8f(0x2b8),'mEAnx':_0x504a8f(0x2d9),'vflOF':'job_ensure_tables_warn','CxqaS':'job_tables_ensured'},_0x282e70=this['getDbUtils']();if(!_0x282e70){logger['warn']({'event':_0x504a8f(0x22b)},_0x504a8f(0x2cd));return;}const _0xdd9c53=this[_0x504a8f(0x24e)](),_0x3f2825={'postgresql':_0x153f3f['XvHvS'],'oracle':_0x153f3f['YZRFo'],'mysql':'mysql.sql'},_0x34fbdd=_0x3f2825[_0xdd9c53];if(!_0x34fbdd){logger[_0x504a8f(0x2c7)]({'event':_0x153f3f[_0x504a8f(0x265)],'dbType':_0xdd9c53},'DB_TYPE\x20\x27'+_0xdd9c53+'\x27\x20tidak\x20didukung\x20untuk\x20job\x20monitoring\x20tables');return;}const _0x10eb55=path[_0x504a8f(0x26b)](__dirname,_0x504a8f(0x26d),_0x34fbdd);if(!fs['existsSync'](_0x10eb55)){logger[_0x504a8f(0x2c7)]({'event':_0x504a8f(0x1df),'path':_0x10eb55},_0x504a8f(0x2c8)+_0x10eb55);return;}const _0x1b4432=fs[_0x504a8f(0x238)](_0x10eb55,_0x153f3f[_0x504a8f(0x246)]),_0x1c275c=this[_0x504a8f(0x219)](_0x1b4432,_0xdd9c53);let _0x62226f=0x0;for(const _0x578ebf of _0x1c275c){try{await _0x282e70[_0x504a8f(0x2c0)](_0x578ebf),_0x62226f++;}catch(_0x5a1e2b){const _0x4c3493=(_0x5a1e2b[_0x504a8f(0x204)]||'')[_0x504a8f(0x1d9)](),_0x92583f=_0x4c3493['includes'](_0x153f3f['okMjC'])||_0x4c3493['includes'](_0x153f3f['TRZyO'])||_0x4c3493[_0x504a8f(0x268)](_0x153f3f['mEAnx']);!_0x92583f&&logger[_0x504a8f(0x2c7)]({'event':_0x153f3f['vflOF'],'error':_0x5a1e2b['message']},'Job\x20ensureTables\x20warning:\x20'+_0x5a1e2b[_0x504a8f(0x204)]);}}logger[_0x504a8f(0x1fe)]({'event':_0x153f3f[_0x504a8f(0x2b4)],'dbType':_0xdd9c53,'executed':_0x62226f},_0x504a8f(0x2da)+_0xdd9c53+')');}['splitSqlStatements'](_0x3e0431,_0x317853){const _0xf2d3e2=a0_0x22225f,_0x5b6d70={'JAqOK':function(_0x5f05c9,_0x46fbea){return _0x5f05c9===_0x46fbea;},'gPOmP':'oracle'};let _0x530d50;return _0x5b6d70[_0xf2d3e2(0x2ae)](_0x317853,_0x5b6d70['gPOmP'])?_0x530d50=_0x3e0431['split'](/\n\/\s*(?:\n|$)/):_0x530d50=_0x3e0431['split'](/;\s*(?:\n|$)/),_0x530d50['map'](_0x4c16da=>_0x4c16da['trim']())['filter'](_0x144569=>{const _0xc9d64e=_0xf2d3e2;if(_0x144569[_0xc9d64e(0x29d)]===0x0)return![];const _0x3e1de3=_0x144569[_0xc9d64e(0x25c)]('\x0a')[_0xc9d64e(0x2ac)](_0x347525=>!_0x347525['trim']()[_0xc9d64e(0x20a)]('--')&&_0x347525[_0xc9d64e(0x27d)]()['length']>0x0);return _0x3e1de3[_0xc9d64e(0x29d)]>0x0;});}async['upsertJobRegistry'](_0x289f87,_0x44ee3b=a0_0x22225f(0x1c3),_0x165c9=null){const _0xd36599=a0_0x22225f,_0xfeecae={'nddHk':_0xd36599(0x2bb)},_0xf80765=this[_0xd36599(0x2e2)]();if(!_0xf80765)return;const _0x21bba9=this[_0xd36599(0x24e)](),_0x304100=[_0x289f87['name'],_0x289f87['description']||_0x289f87['name'],_0x289f87[_0xd36599(0x28a)]||_0xd36599(0x1ec),_0x289f87['schedule']||null,_0x289f87[_0xd36599(0x21a)]||_0xd36599(0x273),_0x289f87[_0xd36599(0x232)],_0x289f87['_sourceFile']||'',_0x289f87[_0xd36599(0x221)]||0x7530,_0x289f87['retry']?.[_0xd36599(0x255)]||0x3,_0x289f87[_0xd36599(0x23e)]?.[_0xd36599(0x1cd)]||_0xd36599(0x215),_0x44ee3b,_0x165c9];try{if(_0x21bba9===_0xd36599(0x24a))await _0xf80765[_0xd36599(0x2c0)]('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)',_0x304100);else _0x21bba9===_0xfeecae['nddHk']?await _0xf80765[_0xd36599(0x2c0)](_0xd36599(0x1e1),_0x304100):await _0xf80765[_0xd36599(0x2c0)](_0xd36599(0x1e8),_0x304100);}catch(_0x2974be){logger['warn']({'event':'job_registry_upsert_error','name':_0x289f87[_0xd36599(0x225)],'error':_0x2974be[_0xd36599(0x204)]},_0xd36599(0x2d5)+_0x289f87['name']+_0xd36599(0x2ad)+_0x2974be['message']);}}async['insertJobHistory'](_0x4d5448){const _0x391136=a0_0x22225f,_0x2bc9f8={'qmPQj':'system','stEFC':_0x391136(0x273),'jJIWd':function(_0x3318a7,_0x3f0857){return _0x3318a7===_0x3f0857;},'MVsXk':_0x391136(0x2bb),'vAcrE':_0x391136(0x1c8)},_0x26b611=this[_0x391136(0x2e2)]();if(!_0x26b611)return;const _0x55a161=this[_0x391136(0x24e)](),_0x5543f1=[_0x4d5448['id'],_0x4d5448['jobName'],_0x4d5448[_0x391136(0x212)]||null,_0x4d5448['triggerType']||_0x391136(0x1ec),_0x4d5448[_0x391136(0x1fc)]||_0x2bc9f8['qmPQj'],_0x4d5448['queue']||_0x2bc9f8[_0x391136(0x1d0)],_0x4d5448['attempt']||0x1,_0x4d5448[_0x391136(0x295)]||null,process[_0x391136(0x294)]];try{if(_0x55a161==='oracle')await _0x26b611['executeQuery']('INSERT\x20INTO\x20job_history\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(id,\x20job_name,\x20bullmq_job_id,\x20trigger_type,\x20triggered_by,\x20status,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20queue,\x20attempt,\x20config_file,\x20started_at,\x20worker_pid,\x20created_at)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(:1,\x20:2,\x20:3,\x20:4,\x20:5,\x20\x27running\x27,\x20:6,\x20:7,\x20:8,\x20SYSTIMESTAMP,\x20:9,\x20SYSTIMESTAMP)',_0x5543f1);else _0x2bc9f8['jJIWd'](_0x55a161,_0x2bc9f8['MVsXk'])?await _0x26b611['executeQuery']('INSERT\x20INTO\x20job_history\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(id,\x20job_name,\x20bullmq_job_id,\x20trigger_type,\x20triggered_by,\x20status,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20queue,\x20attempt,\x20config_file,\x20started_at,\x20worker_pid,\x20created_at)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20\x27running\x27,\x20?,\x20?,\x20?,\x20NOW(),\x20?,\x20NOW())',_0x5543f1):await _0x26b611['executeQuery'](_0x391136(0x241),_0x5543f1);await this[_0x391136(0x21b)](_0x4d5448['jobName'],'running');}catch(_0x3a873b){logger[_0x391136(0x2c7)]({'event':_0x2bc9f8['vAcrE'],'jobName':_0x4d5448[_0x391136(0x27f)],'error':_0x3a873b['message']},'Failed\x20to\x20insert\x20job\x20history:\x20'+_0x3a873b['message']);}}async['updateJobHistoryCompleted'](_0x2ac49f,_0x4c579e,_0x3cec2b){const _0x4a2651=a0_0x22225f,_0x3147b8={'fSJGf':function(_0xb6c741,_0x346a4a){return _0xb6c741===_0x346a4a;},'kFbqU':'oracle','gJKCY':function(_0x4da7d0,_0x4f2c59){return _0x4da7d0===_0x4f2c59;},'ZmdlB':'job_history_complete_error'},_0x2ac7ae=this['getDbUtils']();if(!_0x2ac7ae)return;const _0x3b653b=this[_0x4a2651(0x24e)](),_0x44d8cf=_0x3cec2b?String(_0x3cec2b)['substring'](0x0,0x1f4):null;try{if(_0x3147b8[_0x4a2651(0x1cf)](_0x3b653b,_0x3147b8[_0x4a2651(0x279)]))await _0x2ac7ae['executeQuery'](_0x4a2651(0x242),[_0x4c579e,_0x44d8cf,_0x2ac49f]);else _0x3147b8[_0x4a2651(0x2dd)](_0x3b653b,'mysql')?await _0x2ac7ae['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?',[_0x4c579e,_0x44d8cf,_0x2ac49f]):await _0x2ac7ae['executeQuery'](_0x4a2651(0x270),[_0x4c579e,_0x44d8cf,_0x2ac49f]);}catch(_0x2be73f){logger[_0x4a2651(0x2c7)]({'event':_0x3147b8[_0x4a2651(0x208)],'historyId':_0x2ac49f,'error':_0x2be73f[_0x4a2651(0x204)]},_0x4a2651(0x1ff)+_0x2be73f[_0x4a2651(0x204)]);}}async[a0_0x22225f(0x2c9)](_0x495a1c,_0x5c2983,_0x12a2e0,_0x2bda84,_0x2640e8){const _0x3a5ed6=a0_0x22225f,_0x46b3ee={'JlFMK':function(_0x2b7097,_0x5cac6f){return _0x2b7097(_0x5cac6f);},'znrfm':_0x3a5ed6(0x24a),'sYscY':function(_0x4ccc17,_0x360f41){return _0x4ccc17||_0x360f41;},'sHakJ':function(_0x4cf164,_0x1ffadb){return _0x4cf164||_0x1ffadb;}},_0x4f654b=this['getDbUtils']();if(!_0x4f654b)return;const _0x3ef4ba=this[_0x3a5ed6(0x24e)](),_0x3fc78b=_0x2bda84?_0x46b3ee['JlFMK'](String,_0x2bda84)['substring'](0x0,0x3e8):null,_0x3094bf=_0x2640e8?_0x46b3ee[_0x3a5ed6(0x200)](String,_0x2640e8)['substring'](0x0,0xfa0):null;try{if(_0x3ef4ba===_0x46b3ee[_0x3a5ed6(0x2ca)])await _0x4f654b['executeQuery']('UPDATE\x20job_history\x20SET\x20status\x20=\x20\x27failed\x27,\x20completed_at\x20=\x20SYSTIMESTAMP,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20duration_ms\x20=\x20:1,\x20progress\x20=\x20:2,\x20error_message\x20=\x20:3,\x20error_stack\x20=\x20:4\x20WHERE\x20id\x20=\x20:5',[_0x5c2983,_0x46b3ee[_0x3a5ed6(0x28e)](_0x12a2e0,0x0),_0x3fc78b,_0x3094bf,_0x495a1c]);else _0x3ef4ba===_0x3a5ed6(0x2bb)?await _0x4f654b[_0x3a5ed6(0x2c0)](_0x3a5ed6(0x1ba),[_0x5c2983,_0x12a2e0||0x0,_0x3fc78b,_0x3094bf,_0x495a1c]):await _0x4f654b[_0x3a5ed6(0x2c0)](_0x3a5ed6(0x1bd),[_0x5c2983,_0x46b3ee['sHakJ'](_0x12a2e0,0x0),_0x3fc78b,_0x3094bf,_0x495a1c]);}catch(_0x3cf6a2){logger[_0x3a5ed6(0x2c7)]({'event':_0x3a5ed6(0x220),'historyId':_0x495a1c,'error':_0x3cf6a2[_0x3a5ed6(0x204)]},'Failed\x20to\x20update\x20job\x20history\x20(failed):\x20'+_0x3cf6a2['message']);}}async[a0_0x22225f(0x21b)](_0x44394e,_0x2b1bf){const _0x441b09=a0_0x22225f,_0x183851={'nMLPq':_0x441b09(0x24a),'PoFPe':function(_0x486d29,_0x2d68c2){return _0x486d29===_0x2d68c2;}},_0x47cdb1=this[_0x441b09(0x2e2)]();if(!_0x47cdb1)return;const _0x3822b8=this[_0x441b09(0x24e)]();try{if(_0x3822b8===_0x183851[_0x441b09(0x293)])await _0x47cdb1['executeQuery']('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20:1,\x20last_run_at\x20=\x20SYSTIMESTAMP,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updated_at\x20=\x20SYSTIMESTAMP\x20WHERE\x20job_name\x20=\x20:2',[_0x2b1bf,_0x44394e]);else _0x183851[_0x441b09(0x254)](_0x3822b8,'mysql')?await _0x47cdb1[_0x441b09(0x2c0)](_0x441b09(0x285),[_0x2b1bf,_0x44394e]):await _0x47cdb1['executeQuery']('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20$1,\x20last_run_at\x20=\x20NOW(),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updated_at\x20=\x20NOW()\x20WHERE\x20job_name\x20=\x20$2',[_0x2b1bf,_0x44394e]);}catch(_0x24372a){}}async[a0_0x22225f(0x27a)](_0x122ae5,_0x49413d,_0xed3856,_0x5c5a96){const _0x31470e=a0_0x22225f,_0x13b253={'Odtrf':'success','DyJZG':'oracle','UqDfC':_0x31470e(0x1f2)},_0x47079f=this['getDbUtils']();if(!_0x47079f)return;const _0x1aa7a2=this['getDbType'](),_0x31771f=_0x49413d===_0x13b253[_0x31470e(0x21d)]?'total_success':'total_failed';try{if(_0x1aa7a2===_0x13b253[_0x31470e(0x1bf)])await _0x47079f[_0x31470e(0x2c0)](_0x31470e(0x25f)+_0x31771f+'\x20=\x20'+_0x31771f+_0x31470e(0x2a4),[_0x49413d,_0xed3856,_0x5c5a96,_0x122ae5]);else _0x1aa7a2===_0x31470e(0x2bb)?await _0x47079f['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'+_0x31771f+_0x31470e(0x1cb)+_0x31771f+_0x31470e(0x259),[_0x49413d,_0xed3856,_0x5c5a96,_0x122ae5]):await _0x47079f[_0x31470e(0x2c0)]('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'+_0x31771f+'\x20=\x20'+_0x31771f+_0x31470e(0x272),[_0x49413d,_0xed3856,_0x5c5a96,_0x122ae5]);}catch(_0x120614){logger['warn']({'event':_0x13b253['UqDfC'],'jobName':_0x122ae5,'error':_0x120614['message']},'Failed\x20to\x20update\x20job\x20registry\x20counters:\x20'+_0x120614[_0x31470e(0x204)]);}}async[a0_0x22225f(0x1ef)](_0x5b0f75){const _0x45592b=a0_0x22225f,_0x34a19d={'nYhci':function(_0x3866d2,_0x15c218){return _0x3866d2===_0x15c218;},'ayXPo':function(_0x48cf78,_0x435747){return _0x48cf78===_0x435747;},'jZOxt':_0x45592b(0x27c)},_0x23d28b=this['jobConfigs'][_0x5b0f75];if(!_0x23d28b||_0x23d28b[_0x45592b(0x28a)]!=='cron'||_0x34a19d[_0x45592b(0x2d1)](_0x23d28b[_0x45592b(0x1e9)],![]))return null;const _0x1d5658=this['queues'][_0x23d28b['queue']||'default'];if(!_0x1d5658)return null;try{if(_0x34a19d['ayXPo'](typeof _0x1d5658[_0x45592b(0x1dd)],_0x34a19d[_0x45592b(0x2e6)])){const _0x3eb9bf=await _0x1d5658['getJobSchedulers'](0x0,0x64),_0x5a0cdf=_0x3eb9bf['find'](_0x2e96f2=>_0x2e96f2[_0x45592b(0x225)]===_0x5b0f75);return _0x5a0cdf?.['next']?new Date(_0x5a0cdf[_0x45592b(0x1c9)]):null;}}catch(_0x5903b0){}return null;}async['setAllJobsOffline'](){const _0x590873=a0_0x22225f,_0x30a641={'fGsSA':'job_registry_offline_error'},_0x465e40=this['getDbUtils']();if(!_0x465e40)return;const _0x1e5680=this['getDbType']();try{if(_0x1e5680==='oracle')await _0x465e40[_0x590873(0x2c0)]('UPDATE\x20job_registry\x20SET\x20status\x20=\x20\x27offline\x27,\x20next_run_at\x20=\x20NULL,\x20updated_at\x20=\x20SYSTIMESTAMP');else _0x1e5680===_0x590873(0x2bb)?await _0x465e40['executeQuery'](_0x590873(0x2ba)):await _0x465e40['executeQuery'](_0x590873(0x20c));}catch(_0x3da5d1){logger[_0x590873(0x2c7)]({'event':_0x30a641[_0x590873(0x25b)],'error':_0x3da5d1['message']},'Failed\x20to\x20set\x20jobs\x20offline:\x20'+_0x3da5d1[_0x590873(0x204)]);}}[a0_0x22225f(0x2e2)](){const _0x46cb9e=a0_0x22225f,_0x5e7683={'BSriO':function(_0x4384a7,_0x4f6a30){return _0x4384a7===_0x4f6a30;},'ZGOtl':function(_0x43f773,_0x39d50a){return _0x43f773(_0x39d50a);},'HosxN':_0x46cb9e(0x227),'yuybk':'Oracle\x20DB\x20module\x20not\x20available','WkqeL':function(_0x1c96ee,_0x46be71){return _0x1c96ee===_0x46be71;},'CgMJL':'mysql','crXve':'../../utils/db-mysql'},_0x410757=(process['env'][_0x46cb9e(0x233)]||'postgresql')['toLowerCase']();if(_0x5e7683[_0x46cb9e(0x22c)](_0x410757,'oracle'))try{const _0x59baba=_0x5e7683[_0x46cb9e(0x2c5)](require,_0x46cb9e(0x2e3));return{'executeQuery':(_0x3c917d,_0x2f8e80)=>_0x59baba[_0x46cb9e(0x2c0)](_0x3c917d,_0x2f8e80),'executeTransaction':_0x244586=>_0x59baba['executeTransaction'](_0x244586),'getPool':()=>_0x59baba['getPool']()};}catch(_0x4da421){return logger[_0x46cb9e(0x2c7)]({'event':_0x5e7683['HosxN']},_0x5e7683['yuybk']),null;}if(_0x5e7683['WkqeL'](_0x410757,_0x5e7683['CgMJL']))try{const _0x2e699b=_0x5e7683[_0x46cb9e(0x2c5)](require,_0x5e7683['crXve']);return{'executeQuery':(_0x2a61e3,_0x377445)=>_0x2e699b['executeQuery'](_0x2a61e3,_0x377445),'executeTransaction':_0x5cf8e0=>_0x2e699b['executeTransaction'](_0x5cf8e0),'getPool':()=>_0x2e699b['getPool']()};}catch(_0x5dbcda){return logger['warn']({'event':_0x46cb9e(0x1f0)},_0x46cb9e(0x203)),null;}try{const _0x38159b=require('../../utils/db');return{'executeQuery':_0x38159b['executeQuery'],'executeTransaction':_0x38159b[_0x46cb9e(0x2be)],'getPool':_0x38159b['getPool']};}catch(_0x3d743c){return logger[_0x46cb9e(0x2c7)]({'event':'db_pg_unavailable'},'PostgreSQL\x20DB\x20module\x20not\x20available'),null;}}[a0_0x22225f(0x27e)](){const _0x53f1ab=a0_0x22225f,_0x2963f2={'qLviw':function(_0x3fbd5f,_0x390a52){return _0x3fbd5f(_0x390a52);},'FXWXE':'../../utils/redis-client'};try{const _0x1aeb3e=_0x2963f2[_0x53f1ab(0x29c)](require,_0x2963f2[_0x53f1ab(0x1b7)]);return _0x1aeb3e[_0x53f1ab(0x28b)]?_0x1aeb3e['getClient']():_0x1aeb3e;}catch(_0x3ceb88){return null;}}['getKafkaService'](){const _0x5d0f18=a0_0x22225f,_0x5951bd={'xrwot':function(_0x43b3fb,_0x3327d2){return _0x43b3fb(_0x3327d2);}};try{if(process[_0x5d0f18(0x231)]['KAFKA_ENABLED']===_0x5d0f18(0x26f)){const _0x577bd6=_0x5951bd['xrwot'](require,_0x5d0f18(0x280));return _0x577bd6[_0x5d0f18(0x1de)]?_0x577bd6['getInstance']():_0x577bd6;}}catch(_0x7b6cf4){}return null;}[a0_0x22225f(0x287)](){const _0x117c18={'EYYXo':function(_0x1dbd84,_0xcd3a0b){return _0x1dbd84(_0xcd3a0b);},'RNvBD':'../../utils/cache-manager'};try{return _0x117c18['EYYXo'](require,_0x117c18['RNvBD']);}catch(_0x475f30){return null;}}async[a0_0x22225f(0x2ce)](_0x4d1c30,_0x2ca44e={}){const _0xe29592=a0_0x22225f,_0x42b400={'ShTcb':'exponential','BDNpi':'api'},_0x4c8a47=this['jobConfigs'][_0x4d1c30];if(!_0x4c8a47)throw new Error('Job\x20tidak\x20ditemukan:\x20'+_0x4d1c30);const _0x59239c=this[_0xe29592(0x1dc)][_0x4c8a47[_0xe29592(0x21a)]||_0xe29592(0x273)],_0x27f16f=await _0x59239c[_0xe29592(0x2cb)](_0x4d1c30,{..._0x2ca44e,'handler':_0x4c8a47[_0xe29592(0x232)],'triggeredBy':_0xe29592(0x24f)},{'attempts':_0x4c8a47['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x4c8a47[_0xe29592(0x23e)]?.['backoff']||_0x42b400['ShTcb'],'delay':_0x4c8a47['retry']?.['initialDelay']||0x1388},'timeout':_0x4c8a47['timeout']||0x7530});return logger[_0xe29592(0x1fe)]({'event':'job_dispatched','jobId':_0x27f16f['id'],'name':_0x4d1c30,'triggeredBy':_0x42b400[_0xe29592(0x28c)]},_0xe29592(0x1d2)+_0x4d1c30+'\x20(id:\x20'+_0x27f16f['id']+')'),{'jobId':_0x27f16f['id'],'name':_0x4d1c30};}async['dispatchDelayed'](_0x1dc17d,_0x1a5a31={},_0x540773=0x0){const _0x1931c4=a0_0x22225f,_0x1254b1={'EvaWc':_0x1931c4(0x297)},_0x14c0de=this[_0x1931c4(0x26c)][_0x1dc17d];if(!_0x14c0de)throw new Error('Job\x20tidak\x20ditemukan:\x20'+_0x1dc17d);const _0x19beeb=this['queues'][_0x14c0de[_0x1931c4(0x21a)]||'default'],_0x2f0db7=await _0x19beeb[_0x1931c4(0x2cb)](_0x1dc17d,{..._0x1a5a31,'handler':_0x14c0de[_0x1931c4(0x232)],'triggeredBy':_0x1931c4(0x1ce)},{'delay':_0x540773,'attempts':_0x14c0de['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x14c0de['retry']?.['backoff']||'exponential','delay':_0x14c0de['retry']?.[_0x1931c4(0x29e)]||0x1388},'timeout':_0x14c0de['timeout']||0x7530});return logger[_0x1931c4(0x1fe)]({'event':_0x1254b1[_0x1931c4(0x1c1)],'jobId':_0x2f0db7['id'],'name':_0x1dc17d,'delayMs':_0x540773},_0x1931c4(0x1cc)+_0x540773+'ms):\x20'+_0x1dc17d+'\x20(id:\x20'+_0x2f0db7['id']+')'),{'jobId':_0x2f0db7['id'],'name':_0x1dc17d};}async['getJobStatus'](_0x5c9121){const _0x5810bc=a0_0x22225f;for(const _0x2cda26 of Object['values'](this['queues'])){const _0x29b475=await _0x2cda26['getJob'](_0x5c9121);if(_0x29b475){const _0x39cd55=await _0x29b475['getState']();return{'jobId':_0x29b475['id'],'name':_0x29b475['name'],'state':_0x39cd55,'progress':_0x29b475[_0x5810bc(0x2af)],'attemptsMade':_0x29b475[_0x5810bc(0x22e)],'failedReason':_0x29b475['failedReason'],'returnvalue':_0x29b475['returnvalue'],'data':_0x29b475[_0x5810bc(0x211)],'timestamps':{'created':_0x29b475[_0x5810bc(0x1d8)],'started':_0x29b475[_0x5810bc(0x286)],'completed':_0x29b475[_0x5810bc(0x1d5)]}};}}return null;}[a0_0x22225f(0x2bc)](){const _0x5c581d=a0_0x22225f;return Object[_0x5c581d(0x1f9)](this[_0x5c581d(0x26c)])[_0x5c581d(0x20d)](_0x244fc4=>({'name':_0x244fc4['name'],'description':_0x244fc4['description']||'','type':_0x244fc4[_0x5c581d(0x28a)],'schedule':_0x244fc4[_0x5c581d(0x291)],'handler':_0x244fc4['handler'],'enabled':_0x244fc4['enabled']!==![],'queue':_0x244fc4[_0x5c581d(0x21a)]||'default','timeout':_0x244fc4[_0x5c581d(0x221)]||0x7530,'retry':_0x244fc4[_0x5c581d(0x23e)]||{'maxAttempts':0x3,'backoff':'exponential','initialDelay':0x1388},'metadata':_0x244fc4['metadata']||{}}));}async[a0_0x22225f(0x1e7)](){const _0x2c7042=a0_0x22225f,_0x5de499={'OzdCQ':'active'},_0x51d0b2=[];for(const [_0x32c7a3,_0xaf98d8]of Object['entries'](this['queues'])){const _0x991bfe=await _0xaf98d8[_0x2c7042(0x20b)]([_0x5de499['OzdCQ']]);for(const _0x308662 of _0x991bfe){_0x51d0b2['push']({'jobId':_0x308662['id'],'name':_0x308662[_0x2c7042(0x225)],'queue':_0x32c7a3,'progress':_0x308662[_0x2c7042(0x2af)],'attemptsMade':_0x308662['attemptsMade'],'startedAt':_0x308662['processedOn']});}}return _0x51d0b2;}async['getHistory'](_0x53675f={}){const _0x268aee=a0_0x22225f,_0x506dd2={'DkfAR':function(_0x4c3a55,_0x468cfb,_0x2e9393){return _0x4c3a55(_0x468cfb,_0x2e9393);},'gBEfm':'failed'},_0x499576=_0x506dd2[_0x268aee(0x22f)](parseInt,_0x53675f[_0x268aee(0x1d3)],0xa)||0x1,_0x2e0915=Math['min'](_0x506dd2[_0x268aee(0x22f)](parseInt,_0x53675f[_0x268aee(0x2c3)],0xa)||0x14,0x64),_0x49640c=(_0x499576-0x1)*_0x2e0915,_0x111a82=_0x49640c+_0x2e0915-0x1,_0x42a30c=[];for(const [_0x13390a,_0x4e60b7]of Object['entries'](this['queues'])){const _0x225cf6=await _0x4e60b7[_0x268aee(0x20b)](['completed'],_0x49640c,_0x111a82),_0x450ac0=await _0x4e60b7['getJobs']([_0x506dd2['gBEfm']],_0x49640c,_0x111a82);for(const _0x2192c9 of[..._0x225cf6,..._0x450ac0]){const _0x38d816=await _0x2192c9['getState']();_0x42a30c[_0x268aee(0x2b5)]({'jobId':_0x2192c9['id'],'name':_0x2192c9['name'],'state':_0x38d816,'queue':_0x13390a,'attemptsMade':_0x2192c9[_0x268aee(0x22e)],'failedReason':_0x2192c9['failedReason'],'returnvalue':_0x2192c9['returnvalue'],'timestamps':{'created':_0x2192c9[_0x268aee(0x1d8)],'started':_0x2192c9[_0x268aee(0x286)],'completed':_0x2192c9[_0x268aee(0x1d5)]}});}}return _0x42a30c['sort']((_0x336fef,_0x5c24e4)=>(_0x5c24e4[_0x268aee(0x1f7)]['created']||0x0)-(_0x336fef['timestamps'][_0x268aee(0x20e)]||0x0)),{'jobs':_0x42a30c['slice'](0x0,_0x2e0915),'total':_0x42a30c['length'],'page':_0x499576,'limit':_0x2e0915};}async[a0_0x22225f(0x1c7)](_0x48f39e){const _0x379ab3=a0_0x22225f,_0x5ce477={'CaraN':function(_0x5831fc,_0x3caa37){return _0x5831fc===_0x3caa37;},'cGzYN':_0x379ab3(0x239),'WbNpH':_0x379ab3(0x237),'Awztm':'waiting','WOvuX':'delayed'};for(const _0x36a407 of Object[_0x379ab3(0x1f9)](this['queues'])){const _0x40f494=await _0x36a407[_0x379ab3(0x26e)](_0x48f39e);if(_0x40f494){const _0x552ec7=await _0x40f494[_0x379ab3(0x250)]();if(_0x5ce477['CaraN'](_0x552ec7,_0x5ce477[_0x379ab3(0x205)]))return await _0x40f494[_0x379ab3(0x2e7)](new Error(_0x5ce477['WbNpH']),'api-cancel',!![]),{'success':!![],'message':_0x379ab3(0x2d8)+_0x48f39e+'\x20cancelled\x20(was\x20active)'};if(_0x5ce477['CaraN'](_0x552ec7,_0x5ce477['Awztm'])||_0x5ce477['CaraN'](_0x552ec7,_0x5ce477[_0x379ab3(0x2c1)]))return await _0x40f494[_0x379ab3(0x1d6)](),{'success':!![],'message':_0x379ab3(0x2d8)+_0x48f39e+_0x379ab3(0x2a3)+_0x552ec7+')'};return{'success':![],'message':'Job\x20'+_0x48f39e+'\x20tidak\x20bisa\x20di-cancel\x20(state:\x20'+_0x552ec7+')'};}}return{'success':![],'message':'Job\x20'+_0x48f39e+'\x20tidak\x20ditemukan'};}async['getHealthStatus'](){const _0x54f306=a0_0x22225f,_0x3e4985={'vJWCt':_0x54f306(0x239),'ROTlE':_0x54f306(0x276),'zmkij':'waiting'},_0x32c597={};for(const [_0x4c2bca,_0x58f0e3]of Object['entries'](this[_0x54f306(0x1dc)])){try{const _0x354e20=await _0x58f0e3[_0x54f306(0x206)](_0x3e4985['vJWCt'],'completed',_0x3e4985['ROTlE'],_0x54f306(0x2cf),_0x54f306(0x274),_0x3e4985['zmkij']);_0x32c597[_0x4c2bca]=_0x354e20;}catch(_0x22c0c7){_0x32c597[_0x4c2bca]={'error':_0x22c0c7[_0x54f306(0x204)]};}}const _0xe0c52e={};for(const [_0x5eaaea,_0x18f293]of Object['entries'](this[_0x54f306(0x1f5)])){_0xe0c52e[_0x5eaaea]={'running':_0x18f293['isRunning'](),'paused':_0x18f293[_0x54f306(0x236)]()};}return{'initialized':this[_0x54f306(0x2b1)],'registeredJobs':Object['keys'](this['jobConfigs'])['length'],'redisConnections':this[_0x54f306(0x299)]['length'],'queues':_0x32c597,'workers':_0xe0c52e};}async[a0_0x22225f(0x2d4)](_0x1be580,_0x40a426){const _0x66a9e9=a0_0x22225f,_0x3f358c={'sIkAQ':_0x66a9e9(0x1ee),'VaMvJ':function(_0x117915,_0x31f6a4){return _0x117915-_0x31f6a4;},'Iotps':'success','MajWA':function(_0x190ed0,_0x19ab1f){return _0x190ed0===_0x19ab1f;},'EDJEU':_0x66a9e9(0x27c),'uTmuC':_0x66a9e9(0x290)},_0x56a930=logger['child']({'jobId':_0x1be580['id'],'jobName':_0x1be580['name']});_0x56a930['info']({'event':_0x66a9e9(0x235),'attemptsMade':_0x1be580[_0x66a9e9(0x22e)],'duration':_0x1be580['finishedOn']?_0x3f358c[_0x66a9e9(0x29f)](_0x1be580[_0x66a9e9(0x1d5)],_0x1be580[_0x66a9e9(0x286)]):null},_0x66a9e9(0x229)+_0x1be580['name']);const _0x58aab7=this[_0x66a9e9(0x2d0)]['get'](_0x1be580['id']);if(_0x58aab7){if(_0x58aab7[_0x66a9e9(0x245)])await _0x58aab7[_0x66a9e9(0x245)];const _0x4557dc=_0x1be580['finishedOn']&&_0x1be580['processedOn']?_0x1be580['finishedOn']-_0x1be580[_0x66a9e9(0x286)]:null,_0x1927b0=typeof _0x40a426===_0x66a9e9(0x25a)?_0x40a426:_0x40a426?JSON[_0x66a9e9(0x1b4)](_0x40a426)[_0x66a9e9(0x22d)](0x0,0x1f4):null;await this['updateJobHistoryCompleted'](_0x58aab7[_0x66a9e9(0x1b6)],_0x4557dc,_0x1927b0);const _0x3087fd=await this[_0x66a9e9(0x1ef)](_0x1be580['name']);await this[_0x66a9e9(0x27a)](_0x1be580[_0x66a9e9(0x225)],_0x3f358c[_0x66a9e9(0x1e6)],_0x4557dc,_0x3087fd),this[_0x66a9e9(0x2d0)][_0x66a9e9(0x2e4)](_0x1be580['id']);}const _0x39f1d3=getComponentEngine();if(_0x39f1d3&&_0x3f358c[_0x66a9e9(0x207)](typeof _0x39f1d3['executeEventHandlers'],_0x3f358c['EDJEU'])){const _0x22ce00={'jobId':_0x1be580['id'],'jobName':_0x1be580['name'],'result':_0x40a426,'config':this[_0x66a9e9(0x26c)][_0x1be580['name']]||{}};_0x39f1d3['executeEventHandlers']('onAfterJobComplete',_0x22ce00,![])['catch'](_0x39667b=>{const _0x3242d2=_0x66a9e9;_0x56a930[_0x3242d2(0x2c7)]({'event':_0x3f358c[_0x3242d2(0x261)],'error':_0x39667b['message']},'onAfterJobComplete\x20handler\x20error\x20(non-blocking)');});}const _0x157813=this['getKafkaService']();if(_0x157813)try{await _0x157813[_0x66a9e9(0x234)]('restforge.jobs.completed','JOB_COMPLETED',null,{'jobId':_0x1be580['id'],'name':_0x1be580['name'],'result':_0x40a426},{'module':_0x66a9e9(0x1b9),'endpoint':_0x1be580[_0x66a9e9(0x225)]});}catch(_0x1dbef6){_0x56a930['warn']({'event':_0x3f358c['uTmuC'],'error':_0x1dbef6[_0x66a9e9(0x204)]},'Failed\x20to\x20publish\x20JOB_COMPLETED\x20to\x20Kafka');}}async[a0_0x22225f(0x2a8)](_0x5d3d67,_0xdc0f8f){const _0x3e0b21=a0_0x22225f,_0x2babe7={'YbvjX':'onAfterJobFailed\x20handler\x20error\x20(non-blocking)','aCOMc':function(_0x45e2cb,_0x29bf11){return _0x45e2cb<_0x29bf11;},'OomKW':function(_0x49d51c,_0x436b22){return _0x49d51c-_0x436b22;},'aiFSL':function(_0x3fc5bf){return _0x3fc5bf();},'yoemz':'function','tUdsY':'onAfterJobFailed','UPbmJ':'Failed\x20to\x20publish\x20JOB_FAILED\x20to\x20Kafka'},_0x2c7b3a=logger[_0x3e0b21(0x282)]({'jobId':_0x5d3d67['id'],'jobName':_0x5d3d67['name']});_0x2c7b3a[_0x3e0b21(0x202)]({'event':_0x3e0b21(0x2b9),'attemptsMade':_0x5d3d67[_0x3e0b21(0x22e)],'failedReason':_0xdc0f8f?.[_0x3e0b21(0x204)],'willRetry':_0x2babe7[_0x3e0b21(0x258)](_0x5d3d67[_0x3e0b21(0x22e)],this['jobConfigs'][_0x5d3d67['name']]?.['retry']?.[_0x3e0b21(0x255)]||0x3)},'Job\x20failed:\x20'+_0x5d3d67['name']+'\x20—\x20'+_0xdc0f8f?.[_0x3e0b21(0x204)]);const _0x2b4bf1=this[_0x3e0b21(0x2d0)]['get'](_0x5d3d67['id']);if(_0x2b4bf1){if(_0x2b4bf1[_0x3e0b21(0x245)])await _0x2b4bf1['insertPromise'];const _0x5985a6=_0x5d3d67[_0x3e0b21(0x1d5)]&&_0x5d3d67[_0x3e0b21(0x286)]?_0x2babe7['OomKW'](_0x5d3d67[_0x3e0b21(0x1d5)],_0x5d3d67[_0x3e0b21(0x286)]):null;await this[_0x3e0b21(0x2c9)](_0x2b4bf1['historyId'],_0x5985a6,_0x5d3d67[_0x3e0b21(0x2af)],_0xdc0f8f?.[_0x3e0b21(0x204)],_0xdc0f8f?.['stack']);const _0xa38836=await this['getNextRunFromBullMQ'](_0x5d3d67[_0x3e0b21(0x225)]);await this[_0x3e0b21(0x27a)](_0x5d3d67['name'],'failed',_0x5985a6,_0xa38836),this['activeHistoryIds']['delete'](_0x5d3d67['id']);}const _0x27bd0d=_0x2babe7[_0x3e0b21(0x2b7)](getComponentEngine);if(_0x27bd0d&&typeof _0x27bd0d['executeEventHandlers']===_0x2babe7[_0x3e0b21(0x1e3)]){const _0x5b24f5={'jobId':_0x5d3d67['id'],'jobName':_0x5d3d67[_0x3e0b21(0x225)],'error':_0xdc0f8f?.['message'],'attemptsMade':_0x5d3d67[_0x3e0b21(0x22e)],'config':this[_0x3e0b21(0x26c)][_0x5d3d67['name']]||{}};_0x27bd0d[_0x3e0b21(0x210)](_0x2babe7['tUdsY'],_0x5b24f5,![])[_0x3e0b21(0x223)](_0x595ba7=>{const _0x47a5d1=_0x3e0b21;_0x2c7b3a[_0x47a5d1(0x2c7)]({'event':_0x47a5d1(0x292),'error':_0x595ba7['message']},_0x2babe7['YbvjX']);});}const _0x51c80c=this['getKafkaService']();if(_0x51c80c)try{await _0x51c80c['publishEvent'](_0x3e0b21(0x1d1),_0x3e0b21(0x2d7),null,{'jobId':_0x5d3d67['id'],'name':_0x5d3d67['name'],'error':_0xdc0f8f?.[_0x3e0b21(0x204)],'attemptsMade':_0x5d3d67[_0x3e0b21(0x22e)]},{'module':'job-scheduler','endpoint':_0x5d3d67['name']});}catch(_0x1e6fc1){_0x2c7b3a['warn']({'event':'job_kafka_publish_error','error':_0x1e6fc1[_0x3e0b21(0x204)]},_0x2babe7['UPbmJ']);}}['onJobProgress'](_0x59b5be,_0x2bda4b){const _0x494eb6=a0_0x22225f;logger[_0x494eb6(0x1c4)]({'event':'job_progress','jobId':_0x59b5be['id'],'jobName':_0x59b5be['name'],'progress':_0x2bda4b},'Job\x20progress:\x20'+_0x59b5be['name']+_0x494eb6(0x2ad)+_0x2bda4b+'%');}}module[a0_0x22225f(0x2c4)]=new JobManager();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function a0_0x2370(){const _0x981853=['CxvLCNK','CMvHzgrPCLn5BMm','zw5KC1DPDgG','rxjYB3iGz2v0DgLUzYbXDwv1zsbZDgf0CW','CMvTB3zL','Aw9YzwrPCW','mtm2ndHIEunvseq','A2v5CW','zhr2yuW','rvzLAwG','t2HAveS','zgvMyxvSDa','Dw5OzwfSDgH5','CMvHzezPBgvtEw5J','AM9Ix2XPC3rFzxjYB3i','DgLTzxn0yw1WCW','BMfTzq','mtu5mtC0m2vfBeXlDa','C3rHDhvZ','uKvesvnFueftu1DpuKq','ntKWmdjgA1rdA04','CgfYC2u','zxHWCMvZCW','AM9Ix3f1zxvLC19LCNjVCG','nJGWnZi4m3rvtvnHzG','rxjYB3iGy2fUy2vSBgLUzYbQB2i','AgvHBhrOEq','odiWodKYALDJEMr4','zgvNCMfKzwq','z2XHvuC','DgLTzw91Da','zw52','zMLSDgvY','C2XPy2u','rxjYB3iGz2v0DgLUzYbQB2iGC3rHDhvZ','CMv0DxjUDMfSDwu','CgfYyw1Z','DxrMoa','z2v0','ChjVy2vZC2vKt24','lI4VlI4VDxrPBhmVBg9Nz2vY','lMPZB24','AM9PBG','mZvXz3fUtum','BwvZC2fNzq','tvLNBg0','C2nOzwr1Bgu','Bw92zvrVrMfPBgvK','zMfPBgvK','ihrPzgfRigrPDgvTDwTHBG','CMv0CNK','zw50CMLLCW','DMfSDwvZ','mJe4mta0oejhrvvYuG','uKj5wM8','zxjYB3i','sK9cx1jfreLtx1bsruzjwa','nJeYovL0uNbSvG','tM54rLu','zgvSyxLLza','uxbQCui','y3D5sM4','sxjrr2i','ywrK','r2fZB1C','zxHPC3rZu3LUyW','y3DK','BgvUz3rO','l3f1zxvLCW','Bg93','uhfTA0C','ufjMugu','Aw5MBW','ndDnquj3u2K','igjLCMHHC2LSigrPlxrYAwDNzxi','uKvesvnFue9sva','z2v0sM9I','yxr0zw1WDhnnywrL','sM9Iia','Bwf4qxr0zw1WDhm','zgLZy29UBMvJDgvK','DffutMq','ANnVBG','ue93teq','z2v0u3rHDgu','AgfUzgXLCG','CxvLDwu','AKDgyNO','z2v0sM9Iq291BNrZ','zgf0yq','mteYmJG2mZbvB0n2zgu','DgLTzxn0yw1W','AM9Ix2nHBMnLBf9LCNjVCG','rxjYB3iGDhjPz2DLCMLUzYbQB2i','zxHWB3j0CW','yMfJA29MzG'];a0_0x2370=function(){return _0x981853;};return a0_0x2370();}const a0_0xd5b548=a0_0x5956;(function(_0x266c2c,_0x52c052){const _0x2a768d=a0_0x5956,_0x48ad73=_0x266c2c();while(!![]){try{const _0x42bc46=-parseInt(_0x2a768d(0x1a2))/0x1*(-parseInt(_0x2a768d(0x16d))/0x2)+-parseInt(_0x2a768d(0x16a))/0x3+-parseInt(_0x2a768d(0x174))/0x4*(-parseInt(_0x2a768d(0x184))/0x5)+-parseInt(_0x2a768d(0x18e))/0x6+-parseInt(_0x2a768d(0x171))/0x7+parseInt(_0x2a768d(0x15f))/0x8*(-parseInt(_0x2a768d(0x192))/0x9)+parseInt(_0x2a768d(0x1b3))/0xa;if(_0x42bc46===_0x52c052)break;else _0x48ad73['push'](_0x48ad73['shift']());}catch(_0x1075f6){_0x48ad73['push'](_0x48ad73['shift']());}}}(a0_0x2370,0xe007b));function a0_0x5956(_0x99e6f8,_0x4e4646){_0x99e6f8=_0x99e6f8-0x15f;const _0x237083=a0_0x2370();let _0x595619=_0x237083[_0x99e6f8];if(a0_0x5956['mFLyVW']===undefined){var _0x130837=function(_0x58f7ba){const _0x26f90b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3883d2='',_0x3d9c75='';for(let _0x58e7ff=0x0,_0x5c182d,_0x4e8d30,_0x253b8b=0x0;_0x4e8d30=_0x58f7ba['charAt'](_0x253b8b++);~_0x4e8d30&&(_0x5c182d=_0x58e7ff%0x4?_0x5c182d*0x40+_0x4e8d30:_0x4e8d30,_0x58e7ff++%0x4)?_0x3883d2+=String['fromCharCode'](0xff&_0x5c182d>>(-0x2*_0x58e7ff&0x6)):0x0){_0x4e8d30=_0x26f90b['indexOf'](_0x4e8d30);}for(let _0x1b855b=0x0,_0x1bc333=_0x3883d2['length'];_0x1b855b<_0x1bc333;_0x1b855b++){_0x3d9c75+='%'+('00'+_0x3883d2['charCodeAt'](_0x1b855b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3d9c75);};a0_0x5956['mmHjKy']=_0x130837,a0_0x5956['fkWlhC']={},a0_0x5956['mFLyVW']=!![];}const _0x329ca6=_0x237083[0x0],_0x6b45a7=_0x99e6f8+_0x329ca6,_0x10bb2b=a0_0x5956['fkWlhC'][_0x6b45a7];return!_0x10bb2b?(_0x595619=a0_0x5956['mmHjKy'](_0x595619),a0_0x5956['fkWlhC'][_0x6b45a7]=_0x595619):_0x595619=_0x10bb2b,_0x595619;}const express=require(a0_0xd5b548(0x16f)),{Queue}=require('bullmq'),Redis=require(a0_0xd5b548(0x1be)),{logger}=require(a0_0xd5b548(0x181));let readConnection=null,readQueues=null,cachedJobConfigs=null;const QUEUE_NAMES={'high-priority':'high','default':a0_0xd5b548(0x164),'low-priority':a0_0xd5b548(0x19e)};function getReadQueues(){const _0x1e4ed1=a0_0xd5b548,_0x2b50c1={'IrQGb':'job_routes_redis_error','rNTCb':'rf:job','WyCrh':function(_0x57dea4,_0x747b04,_0x7781ba){return _0x57dea4(_0x747b04,_0x7781ba);}};if(readQueues)return readQueues;const _0x2218fe=process['env'][_0x1e4ed1(0x191)]||_0x2b50c1['rNTCb'];readConnection=new Redis({'host':process['env']['REDIS_HOST']||'localhost','port':parseInt(process['env'][_0x1e4ed1(0x1a4)],0xa)||0x18ec,'password':process[_0x1e4ed1(0x178)][_0x1e4ed1(0x16c)]||undefined,'db':_0x2b50c1['WyCrh'](parseInt,process['env']['REDIS_DB'],0xa)||0x0,'maxRetriesPerRequest':null}),readConnection['on'](_0x1e4ed1(0x190),_0x83f7b9=>{const _0x1f0f5c=_0x1e4ed1;logger[_0x1f0f5c(0x190)]({'event':_0x2b50c1[_0x1f0f5c(0x197)],'error':_0x83f7b9['message']},'Job\x20Routes\x20Redis\x20error:\x20'+_0x83f7b9[_0x1f0f5c(0x185)]);}),readQueues={};for(const [_0x2b1c10,_0x436f92]of Object[_0x1e4ed1(0x18c)](QUEUE_NAMES)){readQueues[_0x2b1c10]=new Queue(_0x436f92,{'connection':readConnection,'prefix':_0x2218fe});}return readQueues;}function createJobRoutes(_0x1001ef){const _0x12a453=a0_0xd5b548,_0x458ee6={'cpLih':'path','PqmkG':'utf8','KDIfP':'default','bCuAZ':_0x12a453(0x167),'EVeih':'job_status_error','XhgnD':function(_0x5c7a9a,_0x4a8b24){return _0x5c7a9a(_0x4a8b24);},'NnxFU':'jobs','OhZTK':'exponential','kEfcd':'job_trigger_error','ISMGk':_0x12a453(0x1b6),'PRfPe':function(_0x41315c){return _0x41315c();},'tQTNd':function(_0x4e4b74,_0x169b2b){return _0x4e4b74===_0x169b2b;},'cwyJn':'active','qWerk':'waiting','Acech':_0x12a453(0x1b5),'MYglm':function(_0x29c54d,_0x456172){return _0x29c54d*_0x456172;},'oQQHV':function(_0x547e73,_0x1ae399){return _0x547e73+_0x1ae399;},'dtvaL':'completed','hlYpZ':'job_history_error','RByZo':'Error\x20getting\x20job\x20history','BJFan':_0x12a453(0x170),'NFeus':_0x12a453(0x1bc),'GZAgm':_0x12a453(0x173),'POwLD':_0x12a453(0x175),'GasoW':function(_0x67007d,_0x4507f3){return _0x67007d>_0x4507f3;},'jGFbz':'/list','glaUG':'/status/:jobId','QpjqB':'/trigger/:jobName','UKqfl':'/health'},_0x111257=express['Router']();return _0x1001ef&&_0x458ee6[_0x12a453(0x199)](Object['keys'](_0x1001ef)['length'],0x0)&&(cachedJobConfigs=_0x1001ef),_0x111257['get'](_0x458ee6[_0x12a453(0x1b0)],(_0x3445bf,_0x353164)=>{const _0x7654e1=_0x12a453;try{if(cachedJobConfigs){const _0xc49684=Object['values'](cachedJobConfigs)['map'](_0x378cbe=>({'name':_0x378cbe[_0x7654e1(0x169)],'description':_0x378cbe['description']||'','type':_0x378cbe['type'],'schedule':_0x378cbe[_0x7654e1(0x187)],'handler':_0x378cbe[_0x7654e1(0x1ae)],'enabled':_0x378cbe['enabled']!==![],'queue':_0x378cbe[_0x7654e1(0x1af)]||'default','timeout':_0x378cbe[_0x7654e1(0x177)]||0x7530,'retry':_0x378cbe[_0x7654e1(0x18b)]||{'maxAttempts':0x3,'backoff':'exponential','initialDelay':0x1388},'metadata':_0x378cbe['metadata']||{}}));return _0x353164[_0x7654e1(0x1ab)]({'success':!![],'data':_0xc49684,'total':_0xc49684[_0x7654e1(0x19c)]});}const _0x5c06f2=require('fs'),_0x54afd8=require(_0x458ee6['cpLih']),_0x2ef0dd=_0x54afd8[_0x7654e1(0x183)](process[_0x7654e1(0x19b)](),'payload','jobs');if(!_0x5c06f2[_0x7654e1(0x19a)](_0x2ef0dd))return _0x353164['json']({'success':!![],'data':[],'total':0x0});const _0x331dbb=_0x5c06f2['readdirSync'](_0x2ef0dd)[_0x7654e1(0x179)](_0xed4e44=>_0xed4e44['endsWith']('.json')),_0xec2739=[];for(const _0xa9d4c4 of _0x331dbb){try{const _0x10341e=_0x5c06f2[_0x7654e1(0x166)](_0x54afd8[_0x7654e1(0x183)](_0x2ef0dd,_0xa9d4c4),_0x458ee6[_0x7654e1(0x19f)]),_0x9ccdb3=JSON['parse'](_0x10341e);_0xec2739['push']({'name':_0x9ccdb3[_0x7654e1(0x169)],'description':_0x9ccdb3['description']||'','type':_0x9ccdb3['type'],'schedule':_0x9ccdb3['schedule'],'handler':_0x9ccdb3[_0x7654e1(0x1ae)],'enabled':_0x9ccdb3['enabled']!==![],'queue':_0x9ccdb3['queue']||_0x458ee6['KDIfP'],'timeout':_0x9ccdb3['timeout']||0x7530,'retry':_0x9ccdb3['retry']||{},'metadata':_0x9ccdb3['metadata']||{}});}catch(_0x466ba0){}}_0x353164['json']({'success':!![],'data':_0xec2739,'total':_0xec2739[_0x7654e1(0x19c)]});}catch(_0x2d1b47){logger['error']({'event':_0x458ee6['bCuAZ'],'error':_0x2d1b47['message']},'Error\x20listing\x20jobs'),_0x353164['status'](0x1f4)['json']({'success':![],'error':_0x2d1b47['message']});}}),_0x111257['get'](_0x458ee6[_0x12a453(0x176)],async(_0x9f319c,_0x3b5cb9)=>{const _0x1e580a=_0x12a453;try{const {jobId:_0x5222b6}=_0x9f319c['params'],_0xfe1c5d=getReadQueues();for(const _0x3d4fd6 of Object['values'](_0xfe1c5d)){const _0x1659c0=await _0x3d4fd6[_0x1e580a(0x1a5)](_0x5222b6);if(_0x1659c0){const _0x25871c=await _0x1659c0['getState']();return _0x3b5cb9[_0x1e580a(0x1ab)]({'success':!![],'data':{'jobId':_0x1659c0['id'],'name':_0x1659c0[_0x1e580a(0x169)],'state':_0x25871c,'progress':_0x1659c0['progress'],'attemptsMade':_0x1659c0['attemptsMade'],'failedReason':_0x1659c0['failedReason'],'returnvalue':_0x1659c0[_0x1e580a(0x17c)],'data':_0x1659c0[_0x1e580a(0x1b2)],'timestamps':{'created':_0x1659c0[_0x1e580a(0x1b4)],'started':_0x1659c0['processedOn'],'completed':_0x1659c0['finishedOn']}}});}}_0x3b5cb9['status'](0x194)['json']({'success':![],'error':_0x1e580a(0x1a7)+_0x5222b6+_0x1e580a(0x18a)});}catch(_0x2e9708){logger['error']({'event':_0x458ee6[_0x1e580a(0x162)],'error':_0x2e9708['message']},_0x1e580a(0x17b)),_0x3b5cb9[_0x1e580a(0x16b)](0x1f4)[_0x1e580a(0x1ab)]({'success':![],'error':_0x2e9708[_0x1e580a(0x185)]});}}),_0x111257['post'](_0x458ee6[_0x12a453(0x195)],async(_0x17556f,_0x4399ad)=>{const _0x16072e=_0x12a453;try{const {jobName:_0x145eeb}=_0x17556f['params'],_0x4b149a=_0x17556f['body']||{};let _0x410cf2=cachedJobConfigs?.[_0x145eeb];if(!_0x410cf2){const _0x4569ab=_0x458ee6['XhgnD'](require,'fs'),_0x10e84e=require('path'),_0x164dfe=_0x10e84e[_0x16072e(0x183)](process['cwd'](),'payload',_0x458ee6[_0x16072e(0x193)]),_0x1a79e6=_0x4569ab[_0x16072e(0x19a)](_0x164dfe)?_0x4569ab[_0x16072e(0x1ba)](_0x164dfe)['filter'](_0x20259c=>_0x20259c[_0x16072e(0x1bb)](_0x16072e(0x182))):[];for(const _0x569a3d of _0x1a79e6){try{const _0x10b13a=_0x4569ab['readFileSync'](_0x10e84e[_0x16072e(0x183)](_0x164dfe,_0x569a3d),_0x16072e(0x17e)),_0x152553=JSON[_0x16072e(0x16e)](_0x10b13a);if(_0x152553[_0x16072e(0x169)]===_0x145eeb){_0x410cf2=_0x152553;break;}}catch(_0x1a573e){}}}if(!_0x410cf2)return _0x4399ad['status'](0x194)['json']({'success':![],'error':'Job\x20\x22'+_0x145eeb+'\x22\x20tidak\x20ditemukan\x20di\x20konfigurasi'});const _0x29f4fc=getReadQueues(),_0x7a33b8=_0x29f4fc[_0x410cf2[_0x16072e(0x1af)]||'default'],_0x43c505=await _0x7a33b8[_0x16072e(0x198)](_0x145eeb,{..._0x4b149a,'handler':_0x410cf2['handler'],'triggeredBy':'api'},{'attempts':_0x410cf2[_0x16072e(0x18b)]?.[_0x16072e(0x1a8)]||0x3,'backoff':{'type':_0x410cf2[_0x16072e(0x18b)]?.[_0x16072e(0x1b8)]||_0x458ee6[_0x16072e(0x163)],'delay':_0x410cf2[_0x16072e(0x18b)]?.['initialDelay']||0x1388},'timeout':_0x410cf2['timeout']||0x7530});logger[_0x16072e(0x1a1)]({'event':'job_triggered_via_api','jobId':_0x43c505['id'],'name':_0x145eeb},'Job\x20triggered\x20via\x20API:\x20'+_0x145eeb+'\x20(id:\x20'+_0x43c505['id']+')'),_0x4399ad['json']({'success':!![],'jobId':_0x43c505['id'],'message':_0x16072e(0x1a7)+_0x145eeb+_0x16072e(0x1a3)});}catch(_0x10f48d){logger[_0x16072e(0x190)]({'event':_0x458ee6['kEfcd'],'error':_0x10f48d['message']},_0x458ee6['ISMGk']),_0x4399ad['status'](0x1f4)[_0x16072e(0x1ab)]({'success':![],'error':_0x10f48d[_0x16072e(0x185)]});}}),_0x111257['post']('/cancel/:jobId',async(_0x450469,_0x393968)=>{const _0x14822e=_0x12a453;try{const {jobId:_0x543987}=_0x450469[_0x14822e(0x17d)],_0x58e248=_0x458ee6['PRfPe'](getReadQueues);for(const _0x40c442 of Object[_0x14822e(0x18d)](_0x58e248)){const _0x4fe9d1=await _0x40c442['getJob'](_0x543987);if(_0x4fe9d1){const _0x25166f=await _0x4fe9d1['getState']();if(_0x458ee6[_0x14822e(0x1aa)](_0x25166f,_0x458ee6['cwyJn']))return await _0x4fe9d1[_0x14822e(0x188)](new Error('Job\x20cancelled\x20via\x20API'),'api-cancel',!![]),_0x393968['json']({'success':!![],'message':'Job\x20'+_0x543987+'\x20cancelled\x20(was\x20active)'});if(_0x458ee6[_0x14822e(0x1aa)](_0x25166f,_0x458ee6['qWerk'])||_0x458ee6['tQTNd'](_0x25166f,'delayed'))return await _0x4fe9d1[_0x14822e(0x1bd)](),_0x393968['json']({'success':!![],'message':_0x14822e(0x1a7)+_0x543987+'\x20removed\x20(was\x20'+_0x25166f+')'});return _0x393968[_0x14822e(0x1ab)]({'success':![],'message':'Job\x20'+_0x543987+'\x20tidak\x20bisa\x20di-cancel\x20(state:\x20'+_0x25166f+')'});}}_0x393968['status'](0x194)[_0x14822e(0x1ab)]({'success':![],'error':_0x14822e(0x1a7)+_0x543987+_0x14822e(0x18a)});}catch(_0x2094c7){logger[_0x14822e(0x190)]({'event':_0x458ee6['Acech'],'error':_0x2094c7['message']},_0x14822e(0x172)),_0x393968[_0x14822e(0x16b)](0x1f4)['json']({'success':![],'error':_0x2094c7[_0x14822e(0x185)]});}}),_0x111257['get']('/history',async(_0x5e4e51,_0x18656f)=>{const _0x47812d=_0x12a453;try{const _0x57e3d9=parseInt(_0x5e4e51[_0x47812d(0x1b9)]['page'],0xa)||0x1,_0x2716a3=Math['min'](parseInt(_0x5e4e51[_0x47812d(0x1b9)]['limit'],0xa)||0x14,0x64),_0x16b208=_0x458ee6[_0x47812d(0x186)](_0x57e3d9-0x1,_0x2716a3),_0x4266b3=_0x458ee6['oQQHV'](_0x16b208,_0x2716a3)-0x1,_0x333e52=getReadQueues(),_0x66dd56=[];for(const [_0x453c18,_0x3f50ba]of Object[_0x47812d(0x18c)](_0x333e52)){const _0x54e472=await _0x3f50ba['getJobs']([_0x458ee6[_0x47812d(0x161)]],_0x16b208,_0x4266b3),_0x2b264c=await _0x3f50ba['getJobs']([_0x47812d(0x189)],_0x16b208,_0x4266b3);for(const _0x1c29e8 of[..._0x54e472,..._0x2b264c]){const _0x5e3009=await _0x1c29e8[_0x47812d(0x1ad)]();_0x66dd56['push']({'jobId':_0x1c29e8['id'],'name':_0x1c29e8[_0x47812d(0x169)],'state':_0x5e3009,'queue':_0x453c18,'attemptsMade':_0x1c29e8[_0x47812d(0x1a6)],'failedReason':_0x1c29e8['failedReason'],'returnvalue':_0x1c29e8['returnvalue'],'timestamps':{'created':_0x1c29e8[_0x47812d(0x1b4)],'started':_0x1c29e8[_0x47812d(0x180)],'completed':_0x1c29e8['finishedOn']}});}}_0x66dd56['sort']((_0x33a8eb,_0x42dc4f)=>(_0x42dc4f[_0x47812d(0x168)]['created']||0x0)-(_0x33a8eb[_0x47812d(0x168)]['created']||0x0)),_0x18656f[_0x47812d(0x1ab)]({'success':!![],'data':_0x66dd56[_0x47812d(0x17a)](0x0,_0x2716a3),'total':_0x66dd56[_0x47812d(0x19c)],'page':_0x57e3d9,'limit':_0x2716a3});}catch(_0x5068c4){logger[_0x47812d(0x190)]({'event':_0x458ee6['hlYpZ'],'error':_0x5068c4['message']},_0x458ee6[_0x47812d(0x18f)]),_0x18656f['status'](0x1f4)[_0x47812d(0x1ab)]({'success':![],'error':_0x5068c4[_0x47812d(0x185)]});}}),_0x111257[_0x12a453(0x17f)](_0x12a453(0x19d),async(_0x429fcb,_0x5a3d56)=>{const _0x35b9cd=_0x12a453;try{const _0xf85e61=_0x458ee6[_0x35b9cd(0x1a0)](getReadQueues),_0x578b1c={};for(const [_0x24ce07,_0xc017ba]of Object[_0x35b9cd(0x18c)](_0xf85e61)){try{const _0x2eec3a=await _0xc017ba['getJobCounts'](_0x458ee6[_0x35b9cd(0x196)],_0x458ee6['dtvaL'],_0x35b9cd(0x194),'failed','paused','waiting');_0x578b1c[_0x24ce07]=_0x2eec3a;}catch(_0x21882f){_0x578b1c[_0x24ce07]={'error':_0x21882f['message']};}}_0x5a3d56['json']({'success':!![],'data':_0x578b1c});}catch(_0x4b6ae2){logger['error']({'event':_0x458ee6['BJFan'],'error':_0x4b6ae2['message']},_0x458ee6['NFeus']),_0x5a3d56['status'](0x1f4)[_0x35b9cd(0x1ab)]({'success':![],'error':_0x4b6ae2[_0x35b9cd(0x185)]});}}),_0x111257[_0x12a453(0x17f)](_0x458ee6['UKqfl'],async(_0x1f604e,_0xe0da92)=>{const _0x3cf396=_0x12a453;try{const _0x774f45=getReadQueues(),_0x2545ea={};let _0x52f7bb=![];for(const [_0x353983,_0x40f53c]of Object['entries'](_0x774f45)){try{const _0x4aaf77=await _0x40f53c[_0x3cf396(0x1b1)](_0x458ee6[_0x3cf396(0x196)],_0x458ee6['qWerk'],'failed');_0x2545ea[_0x353983]=_0x4aaf77,_0x52f7bb=!![];}catch(_0x323ae5){_0x2545ea[_0x353983]={'error':_0x323ae5['message']};}}let _0x5013c0=0x0;cachedJobConfigs&&(_0x5013c0=Object[_0x3cf396(0x160)](cachedJobConfigs)[_0x3cf396(0x19c)]),_0xe0da92[_0x3cf396(0x1ab)]({'success':!![],'data':{'status':_0x52f7bb?_0x458ee6['GZAgm']:_0x458ee6[_0x3cf396(0x1ac)],'redis':_0x52f7bb?'connected':_0x3cf396(0x1a9),'registeredJobs':_0x5013c0,'queues':_0x2545ea}});}catch(_0x303c19){_0xe0da92[_0x3cf396(0x16b)](0x1f7)[_0x3cf396(0x1ab)]({'success':![],'data':{'status':_0x3cf396(0x165),'error':_0x303c19[_0x3cf396(0x185)]}});}}),_0x111257;}module[a0_0xd5b548(0x1b7)]=createJobRoutes;
|
|
1
|
+
const a0_0x2bc7d0=a0_0x781b;(function(_0x5940fc,_0x51c358){const _0x373770=a0_0x781b,_0x2e131a=_0x5940fc();while(!![]){try{const _0x3fa4bb=-parseInt(_0x373770(0x1bc))/0x1+parseInt(_0x373770(0x189))/0x2*(parseInt(_0x373770(0x177))/0x3)+parseInt(_0x373770(0x176))/0x4+-parseInt(_0x373770(0x1b4))/0x5*(parseInt(_0x373770(0x191))/0x6)+-parseInt(_0x373770(0x199))/0x7+-parseInt(_0x373770(0x19e))/0x8+parseInt(_0x373770(0x18f))/0x9;if(_0x3fa4bb===_0x51c358)break;else _0x2e131a['push'](_0x2e131a['shift']());}catch(_0x2d70fe){_0x2e131a['push'](_0x2e131a['shift']());}}}(a0_0x6feb,0xdc65e));function a0_0x6feb(){const _0x26daeb=['ignHBMnLBgXLzcaOD2fZigfJDgL2zsK','mteYmJyYnJrgshjUy08','zgvSyxLLza','v1LqvK8','ChjVz3jLC3m','yuPgBLa','nJuYmJmWnhHLDerbuq','CMy6AM9I','zxHWB25LBNrPywW','Cg9ZDa','DgLTzw91Da','DMfSDwvZ','Dw5OzwfSDgH5','ChvZAa','yxbP','zgf0yq','zMfPBgvK','Aw9YzwrPCW','C3rHDhvZ','z2v0sM9ICW','CMv0DxjUDMfSDwu','ANnVBG','z2v0u3rHDgu','Bwv0ywrHDge','sK9cx1jfreLtx1bsruzjwa','C2nOzwr1Bgu','uKvesvnFueftu1DpuKq','zMLUAxnOzwrpBG','nda0nte5mhrUDu5pBW','CgfYyw1Z','zw50CMLLCW','BwfW','tvvdC1O','CgfNzq','ChLVvvK','yKvtyMi','nJGZotb4yNDWyum','zxHPC3rZu3LUyW','AM9Ix2HPC3rVCNLFzxjYB3i','zMfPBgvKuMvHC29U','DgLTzxn0yw1W','ChjVy2vZC2vKt24','AgfUzgXLCG','CgfYC2u','zxjYB3i','DxrMoa','sM9IifjVDxrLCYbszwrPCYbLCNjVCJOG','yM9KEq','BLfXEei','A2v5CW','rMrZr2u','uKLhu1e','zxHWB3j0CW','Bw92zvrVrMfPBgvK','yuzeA1i','AgvHBhrOEq','CMvTB3zL','ihrPzgfRigrPDgvTDwTHBG','z2v0sM9I','y29UBMvJDgvK','Aw5MBW','D2fPDgLUzW','icHPzdOG','DhLWzq','CMvHzgrPCLn5BMm','z2v0','Aw5PDgLHBerLBgf5','BMfTzq','Cgf5Bg9Hza','z2v0sM9Iq291BNrZ','rxjYB3iGz2v0DgLUzYbQB2iGAgLZDg9YEq','AM9Ix3n0yxr1C19LCNjVCG','yxr0zw1WDhnnywrL','CMv0CNK','AM9ICW','mtu0ntaYnhfJtgzdBq','ndaYvxn2Dur0','Bwf4qxr0zw1WDhm','BgvUz3rO','zw52','lMPZB24','r25mDgm','EM1rEwe','AM9PBG','DxnXvhO','Bg93','BwLU','AM9Ix3rYAwDNzxjFzxjYB3i','sM9Iia','lI4VlI4VDxrPBhmVBg9Nz2vY','q0DOrNq','zgvMyxvSDa','zw1ZDhy','ExDUCNq','nJa3nK9Zr05SyG','AM9Ix2nHBMnLBf9LCNjVCG','CxvLDwu','y29TCgXLDgvK','tKvOr1K','zw5HyMXLza','mZC5mZqXnZjZs0Hctxi','zw5KC1DPDgG','mtjJCLvXueG','BwvZC2fNzq','uM91DgvY','rxjYB3iGBgLZDgLUzYbQB2jZ','D2rTuM8','Cgf0Aa','ywn0AxzL'];a0_0x6feb=function(){return _0x26daeb;};return a0_0x6feb();}const express=require('express'),{Queue}=require('bullmq'),Redis=require(a0_0x2bc7d0(0x1a9)),{logger}=require(a0_0x2bc7d0(0x184));let readConnection=null,readQueues=null,cachedJobConfigs=null;const QUEUE_NAMES={'high-priority':'high','default':'default','low-priority':a0_0x2bc7d0(0x180)};function getReadQueues(){const _0x15cc90=a0_0x2bc7d0,_0xc81d36={'zTvoB':_0x15cc90(0x19f)};if(readQueues)return readQueues;const _0x18b6fb=process[_0x15cc90(0x17a)][_0x15cc90(0x1b0)]||_0xc81d36['zTvoB'];readConnection=new Redis({'host':process['env']['REDIS_HOST']||'localhost','port':parseInt(process[_0x15cc90(0x17a)]['REDIS_PORT'],0xa)||0x18ec,'password':process[_0x15cc90(0x17a)][_0x15cc90(0x1b2)]||undefined,'db':parseInt(process['env']['REDIS_DB'],0xa)||0x0,'maxRetriesPerRequest':null}),readConnection['on']('error',_0x36eda2=>{const _0x1e3f0d=_0x15cc90;logger[_0x1e3f0d(0x1c4)]({'event':'job_routes_redis_error','error':_0x36eda2['message']},_0x1e3f0d(0x1c6)+_0x36eda2[_0x1e3f0d(0x192)]);}),readQueues={};for(const [_0x5f1eab,_0x3f420e]of Object[_0x15cc90(0x1b6)](QUEUE_NAMES)){readQueues[_0x5f1eab]=new Queue(_0x3f420e,{'connection':readConnection,'prefix':_0x18b6fb});}return readQueues;}function createJobRoutes(_0x253856){const _0x1588bd=a0_0x2bc7d0,_0x5cc87e={'uacVR':function(_0x3b92f5,_0x46077d){return _0x3b92f5(_0x46077d);},'GgNlE':function(_0x1faea1,_0x235668){return _0x1faea1(_0x235668);},'usqTz':_0x1588bd(0x175),'TeEda':_0x1588bd(0x1c5),'gLLSL':_0x1588bd(0x194),'NEhGY':function(_0x248e3a){return _0x248e3a();},'bESbb':'Error\x20getting\x20job\x20status','FdsGe':function(_0x457040,_0xa7a032){return _0x457040(_0xa7a032);},'aFDkR':function(_0x3b39d4,_0x5b3ec6){return _0x3b39d4(_0x5b3ec6);},'ZfsdK':'path','GnLtc':'default','MUCsZ':_0x1588bd(0x1a6),'AjxPG':_0x1588bd(0x182),'OVEGf':function(_0x1607c1,_0x169d5d){return _0x1607c1===_0x169d5d;},'CGhFt':'Error\x20cancelling\x20job','nQqxB':function(_0x6b3326,_0x221a07,_0x2edd64){return _0x6b3326(_0x221a07,_0x2edd64);},'blZlK':function(_0x182c30,_0xd0f1cb){return _0x182c30*_0xd0f1cb;},'YofRR':function(_0xd4a96c,_0x572793){return _0xd4a96c-_0x572793;},'aJFnP':function(_0x3a5611,_0x282850){return _0x3a5611-_0x282850;},'tymGf':_0x1588bd(0x18c),'ywnrt':_0x1588bd(0x1a8),'YoHTg':'paused','wdmRo':function(_0x2c1ba5){return _0x2c1ba5();},'zbWmP':_0x1588bd(0x197),'RIGSQ':_0x1588bd(0x1d5),'YfbxF':_0x1588bd(0x1cf),'emstv':'degraded','wMrDL':_0x1588bd(0x1d3),'pyoUY':'disconnected','BtlKi':_0x1588bd(0x1a4),'euJKz':function(_0x376244,_0x193984){return _0x376244>_0x193984;},'WYPVO':'/list','zmQya':'/status/:jobId','qernU':'/queues','YdZea':'/health'},_0x3adeb9=express[_0x1588bd(0x193)]();return _0x253856&&_0x5cc87e['euJKz'](Object[_0x1588bd(0x1c9)](_0x253856)[_0x1588bd(0x179)],0x0)&&(cachedJobConfigs=_0x253856),_0x3adeb9[_0x1588bd(0x16c)](_0x5cc87e[_0x1588bd(0x19b)],(_0x193e8b,_0x1efef1)=>{const _0x4eaab1=_0x1588bd;try{if(cachedJobConfigs){const _0x29bc63=Object[_0x4eaab1(0x1a3)](cachedJobConfigs)[_0x4eaab1(0x1b7)](_0x4b213d=>({'name':_0x4b213d['name'],'description':_0x4b213d['description']||'','type':_0x4b213d[_0x4eaab1(0x16a)],'schedule':_0x4b213d[_0x4eaab1(0x1b1)],'handler':_0x4b213d[_0x4eaab1(0x1c2)],'enabled':_0x4b213d[_0x4eaab1(0x18e)]!==![],'queue':_0x4b213d[_0x4eaab1(0x18b)]||_0x4eaab1(0x186),'timeout':_0x4b213d['timeout']||0x7530,'retry':_0x4b213d['retry']||{'maxAttempts':0x3,'backoff':_0x4eaab1(0x1a0),'initialDelay':0x1388},'metadata':_0x4b213d[_0x4eaab1(0x1af)]||{}}));return _0x1efef1['json']({'success':!![],'data':_0x29bc63,'total':_0x29bc63['length']});}const _0x27f66d=_0x5cc87e['uacVR'](require,'fs'),_0x5df1c6=_0x5cc87e['GgNlE'](require,_0x4eaab1(0x196)),_0x59a350=_0x5df1c6[_0x4eaab1(0x17e)](process['cwd'](),'payload',_0x5cc87e['usqTz']);if(!_0x27f66d[_0x4eaab1(0x1bd)](_0x59a350))return _0x1efef1['json']({'success':!![],'data':[],'total':0x0});const _0x584611=_0x27f66d['readdirSync'](_0x59a350)['filter'](_0x544511=>_0x544511['endsWith'](_0x4eaab1(0x17b))),_0xdbf04=[];for(const _0x2c2436 of _0x584611){try{const _0xdb74d2=_0x27f66d['readFileSync'](_0x5df1c6['join'](_0x59a350,_0x2c2436),_0x5cc87e['TeEda']),_0x55e91c=JSON['parse'](_0xdb74d2);_0xdbf04['push']({'name':_0x55e91c[_0x4eaab1(0x16e)],'description':_0x55e91c['description']||'','type':_0x55e91c[_0x4eaab1(0x16a)],'schedule':_0x55e91c[_0x4eaab1(0x1b1)],'handler':_0x55e91c['handler'],'enabled':_0x55e91c['enabled']!==![],'queue':_0x55e91c[_0x4eaab1(0x18b)]||'default','timeout':_0x55e91c['timeout']||0x7530,'retry':_0x55e91c[_0x4eaab1(0x174)]||{},'metadata':_0x55e91c[_0x4eaab1(0x1af)]||{}});}catch(_0x100f88){}}_0x1efef1['json']({'success':!![],'data':_0xdbf04,'total':_0xdbf04[_0x4eaab1(0x179)]});}catch(_0x6b6eda){logger[_0x4eaab1(0x1c4)]({'event':'job_list_error','error':_0x6b6eda['message']},_0x5cc87e['gLLSL']),_0x1efef1['status'](0x1f4)[_0x4eaab1(0x1ad)]({'success':![],'error':_0x6b6eda['message']});}}),_0x3adeb9[_0x1588bd(0x16c)](_0x5cc87e[_0x1588bd(0x17d)],async(_0x180bf3,_0x261373)=>{const _0x1f5378=_0x1588bd;try{const {jobId:_0x4d8927}=_0x180bf3['params'],_0x3f5ca8=_0x5cc87e[_0x1f5378(0x18d)](getReadQueues);for(const _0xfe9964 of Object[_0x1f5378(0x1a3)](_0x3f5ca8)){const _0x2815d1=await _0xfe9964[_0x1f5378(0x1d2)](_0x4d8927);if(_0x2815d1){const _0x10d2ca=await _0x2815d1[_0x1f5378(0x1ae)]();return _0x261373[_0x1f5378(0x1ad)]({'success':!![],'data':{'jobId':_0x2815d1['id'],'name':_0x2815d1[_0x1f5378(0x16e)],'state':_0x10d2ca,'progress':_0x2815d1[_0x1f5378(0x19c)],'attemptsMade':_0x2815d1['attemptsMade'],'failedReason':_0x2815d1[_0x1f5378(0x1bf)],'returnvalue':_0x2815d1[_0x1f5378(0x1ac)],'data':_0x2815d1[_0x1f5378(0x1a7)],'timestamps':{'created':_0x2815d1[_0x1f5378(0x1c0)],'started':_0x2815d1['processedOn'],'completed':_0x2815d1['finishedOn']}}});}}_0x261373[_0x1f5378(0x1aa)](0x194)['json']({'success':![],'error':'Job\x20'+_0x4d8927+'\x20tidak\x20ditemukan'});}catch(_0x3862a6){logger['error']({'event':_0x1f5378(0x172),'error':_0x3862a6['message']},_0x5cc87e[_0x1f5378(0x1bb)]),_0x261373['status'](0x1f4)['json']({'success':![],'error':_0x3862a6[_0x1f5378(0x192)]});}}),_0x3adeb9[_0x1588bd(0x1a1)]('/trigger/:jobName',async(_0x5b2e1d,_0x27f6d7)=>{const _0x7458cc=_0x1588bd;try{const {jobName:_0x4d2e41}=_0x5b2e1d[_0x7458cc(0x1b5)],_0x430d25=_0x5b2e1d[_0x7458cc(0x1c7)]||{};let _0xd06c74=cachedJobConfigs?.[_0x4d2e41];if(!_0xd06c74){const _0x56c6b5=_0x5cc87e[_0x7458cc(0x1ca)](require,'fs'),_0x34a0ef=_0x5cc87e[_0x7458cc(0x1ce)](require,_0x5cc87e['ZfsdK']),_0x1da3e2=_0x34a0ef[_0x7458cc(0x17e)](process['cwd'](),_0x7458cc(0x16f),_0x5cc87e[_0x7458cc(0x17f)]),_0x4d76aa=_0x56c6b5['existsSync'](_0x1da3e2)?_0x56c6b5[_0x7458cc(0x16b)](_0x1da3e2)['filter'](_0xbd608e=>_0xbd608e[_0x7458cc(0x190)](_0x7458cc(0x17b))):[];for(const _0x45492c of _0x4d76aa){try{const _0x9781c3=_0x56c6b5['readFileSync'](_0x34a0ef['join'](_0x1da3e2,_0x45492c),_0x7458cc(0x1c5)),_0x39dbba=JSON[_0x7458cc(0x1c3)](_0x9781c3);if(_0x39dbba['name']===_0x4d2e41){_0xd06c74=_0x39dbba;break;}}catch(_0x2c2675){}}}if(!_0xd06c74)return _0x27f6d7['status'](0x194)[_0x7458cc(0x1ad)]({'success':![],'error':'Job\x20\x22'+_0x4d2e41+'\x22\x20tidak\x20ditemukan\x20di\x20konfigurasi'});const _0x4603c7=getReadQueues(),_0x17f292=_0x4603c7[_0xd06c74[_0x7458cc(0x18b)]||_0x5cc87e[_0x7458cc(0x17c)]],_0x36db41=await _0x17f292['add'](_0x4d2e41,{..._0x430d25,'handler':_0xd06c74[_0x7458cc(0x1c2)],'triggeredBy':_0x5cc87e[_0x7458cc(0x1b8)]},{'attempts':_0xd06c74[_0x7458cc(0x174)]?.[_0x7458cc(0x178)]||0x3,'backoff':{'type':_0xd06c74[_0x7458cc(0x174)]?.['backoff']||_0x7458cc(0x1a0),'delay':_0xd06c74[_0x7458cc(0x174)]?.[_0x7458cc(0x16d)]||0x1388},'timeout':_0xd06c74[_0x7458cc(0x1a2)]||0x7530});logger[_0x7458cc(0x1d4)]({'event':'job_triggered_via_api','jobId':_0x36db41['id'],'name':_0x4d2e41},'Job\x20triggered\x20via\x20API:\x20'+_0x4d2e41+_0x7458cc(0x169)+_0x36db41['id']+')'),_0x27f6d7['json']({'success':!![],'jobId':_0x36db41['id'],'message':'Job\x20'+_0x4d2e41+'\x20berhasil\x20di-trigger'});}catch(_0x532774){logger[_0x7458cc(0x1c4)]({'event':_0x5cc87e['AjxPG'],'error':_0x532774['message']},'Error\x20triggering\x20job'),_0x27f6d7[_0x7458cc(0x1aa)](0x1f4)[_0x7458cc(0x1ad)]({'success':![],'error':_0x532774['message']});}}),_0x3adeb9[_0x1588bd(0x1a1)]('/cancel/:jobId',async(_0x3f2e4a,_0x478639)=>{const _0x29ce8d=_0x1588bd;try{const {jobId:_0x41dbab}=_0x3f2e4a[_0x29ce8d(0x1b5)],_0x5ab138=getReadQueues();for(const _0x5f5428 of Object['values'](_0x5ab138)){const _0x1cb5c1=await _0x5f5428[_0x29ce8d(0x1d2)](_0x41dbab);if(_0x1cb5c1){const _0x31f913=await _0x1cb5c1['getState']();if(_0x31f913===_0x29ce8d(0x197))return await _0x1cb5c1[_0x29ce8d(0x1cd)](new Error('Job\x20cancelled\x20via\x20API'),'api-cancel',!![]),_0x478639[_0x29ce8d(0x1ad)]({'success':!![],'message':_0x29ce8d(0x183)+_0x41dbab+_0x29ce8d(0x198)});if(_0x31f913==='waiting'||_0x5cc87e['OVEGf'](_0x31f913,_0x29ce8d(0x19a)))return await _0x1cb5c1[_0x29ce8d(0x1d0)](),_0x478639['json']({'success':!![],'message':_0x29ce8d(0x183)+_0x41dbab+'\x20removed\x20(was\x20'+_0x31f913+')'});return _0x478639[_0x29ce8d(0x1ad)]({'success':![],'message':'Job\x20'+_0x41dbab+'\x20tidak\x20bisa\x20di-cancel\x20(state:\x20'+_0x31f913+')'});}}_0x478639[_0x29ce8d(0x1aa)](0x194)['json']({'success':![],'error':'Job\x20'+_0x41dbab+_0x29ce8d(0x1d1)});}catch(_0xe1ebf0){logger['error']({'event':_0x29ce8d(0x18a),'error':_0xe1ebf0['message']},_0x5cc87e[_0x29ce8d(0x185)]),_0x478639[_0x29ce8d(0x1aa)](0x1f4)['json']({'success':![],'error':_0xe1ebf0['message']});}}),_0x3adeb9[_0x1588bd(0x16c)]('/history',async(_0x5cae67,_0x23224d)=>{const _0xb6247=_0x1588bd;try{const _0x1e03e3=parseInt(_0x5cae67['query'][_0xb6247(0x1b9)],0xa)||0x1,_0x39f21f=Math[_0xb6247(0x181)](_0x5cc87e[_0xb6247(0x1c8)](parseInt,_0x5cae67['query']['limit'],0xa)||0x14,0x64),_0x2d1926=_0x5cc87e['blZlK'](_0x5cc87e['YofRR'](_0x1e03e3,0x1),_0x39f21f),_0x2e56ab=_0x5cc87e[_0xb6247(0x19d)](_0x2d1926+_0x39f21f,0x1),_0x12496f=getReadQueues(),_0x410d0a=[];for(const [_0x4b0315,_0x4a2664]of Object['entries'](_0x12496f)){const _0x88f334=await _0x4a2664[_0xb6247(0x1ab)]([_0x5cc87e['tymGf']],_0x2d1926,_0x2e56ab),_0x580ce7=await _0x4a2664['getJobs']([_0x5cc87e[_0xb6247(0x188)]],_0x2d1926,_0x2e56ab);for(const _0x918558 of[..._0x88f334,..._0x580ce7]){const _0x5b36e1=await _0x918558['getState']();_0x410d0a[_0xb6247(0x1a5)]({'jobId':_0x918558['id'],'name':_0x918558['name'],'state':_0x5b36e1,'queue':_0x4b0315,'attemptsMade':_0x918558[_0xb6247(0x173)],'failedReason':_0x918558[_0xb6247(0x1bf)],'returnvalue':_0x918558[_0xb6247(0x1ac)],'timestamps':{'created':_0x918558[_0xb6247(0x1c0)],'started':_0x918558[_0xb6247(0x1c1)],'completed':_0x918558[_0xb6247(0x1b3)]}});}}_0x410d0a['sort']((_0x2a7758,_0x43a429)=>(_0x43a429['timestamps']['created']||0x0)-(_0x2a7758['timestamps']['created']||0x0)),_0x23224d['json']({'success':!![],'data':_0x410d0a['slice'](0x0,_0x39f21f),'total':_0x410d0a['length'],'page':_0x1e03e3,'limit':_0x39f21f});}catch(_0x2807c3){logger['error']({'event':_0xb6247(0x1be),'error':_0x2807c3['message']},_0xb6247(0x171)),_0x23224d['status'](0x1f4)['json']({'success':![],'error':_0x2807c3['message']});}}),_0x3adeb9[_0x1588bd(0x16c)](_0x5cc87e['qernU'],async(_0x501a72,_0x922717)=>{const _0x2394c2=_0x1588bd;try{const _0x14022e=getReadQueues(),_0xd53f4a={};for(const [_0xd89df3,_0x248250]of Object['entries'](_0x14022e)){try{const _0x2a45ee=await _0x248250['getJobCounts']('active','completed',_0x2394c2(0x19a),_0x5cc87e['ywnrt'],_0x5cc87e['YoHTg'],'waiting');_0xd53f4a[_0xd89df3]=_0x2a45ee;}catch(_0x43ffb1){_0xd53f4a[_0xd89df3]={'error':_0x43ffb1[_0x2394c2(0x192)]};}}_0x922717['json']({'success':!![],'data':_0xd53f4a});}catch(_0x39c9ef){logger['error']({'event':'job_queues_error','error':_0x39c9ef['message']},'Error\x20getting\x20queue\x20stats'),_0x922717[_0x2394c2(0x1aa)](0x1f4)['json']({'success':![],'error':_0x39c9ef[_0x2394c2(0x192)]});}}),_0x3adeb9['get'](_0x5cc87e['YdZea'],async(_0x39227d,_0x401bfe)=>{const _0x57228b=_0x1588bd;try{const _0x4a8f45=_0x5cc87e[_0x57228b(0x195)](getReadQueues),_0x50bacd={};let _0x13a7b7=![];for(const [_0x2c0d65,_0x3eb685]of Object[_0x57228b(0x1b6)](_0x4a8f45)){try{const _0x39c6f2=await _0x3eb685[_0x57228b(0x170)](_0x5cc87e['zbWmP'],_0x5cc87e[_0x57228b(0x1cb)],'failed');_0x50bacd[_0x2c0d65]=_0x39c6f2,_0x13a7b7=!![];}catch(_0x567b26){_0x50bacd[_0x2c0d65]={'error':_0x567b26[_0x57228b(0x192)]};}}let _0x18610b=0x0;cachedJobConfigs&&(_0x18610b=Object[_0x57228b(0x1c9)](cachedJobConfigs)['length']),_0x401bfe['json']({'success':!![],'data':{'status':_0x13a7b7?_0x5cc87e['YfbxF']:_0x5cc87e[_0x57228b(0x187)],'redis':_0x13a7b7?_0x5cc87e['wMrDL']:_0x5cc87e[_0x57228b(0x1ba)],'registeredJobs':_0x18610b,'queues':_0x50bacd}});}catch(_0x3e37ca){_0x401bfe[_0x57228b(0x1aa)](0x1f7)[_0x57228b(0x1ad)]({'success':![],'data':{'status':_0x5cc87e['BtlKi'],'error':_0x3e37ca[_0x57228b(0x192)]}});}}),_0x3adeb9;}function a0_0x781b(_0x54dc23,_0x27c95a){_0x54dc23=_0x54dc23-0x169;const _0x6feba6=a0_0x6feb();let _0x781b81=_0x6feba6[_0x54dc23];if(a0_0x781b['xYMfPD']===undefined){var _0x439f9f=function(_0x512321){const _0x2c5053='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xa8bad3='',_0x4aae59='';for(let _0x58ac38=0x0,_0x27f80,_0x17b109,_0x5a87e2=0x0;_0x17b109=_0x512321['charAt'](_0x5a87e2++);~_0x17b109&&(_0x27f80=_0x58ac38%0x4?_0x27f80*0x40+_0x17b109:_0x17b109,_0x58ac38++%0x4)?_0xa8bad3+=String['fromCharCode'](0xff&_0x27f80>>(-0x2*_0x58ac38&0x6)):0x0){_0x17b109=_0x2c5053['indexOf'](_0x17b109);}for(let _0x1eea99=0x0,_0x1fae4b=_0xa8bad3['length'];_0x1eea99<_0x1fae4b;_0x1eea99++){_0x4aae59+='%'+('00'+_0xa8bad3['charCodeAt'](_0x1eea99)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4aae59);};a0_0x781b['JeNBRY']=_0x439f9f,a0_0x781b['jHmkWg']={},a0_0x781b['xYMfPD']=!![];}const _0x46fdde=_0x6feba6[0x0],_0x284ad3=_0x54dc23+_0x46fdde,_0x21f225=a0_0x781b['jHmkWg'][_0x284ad3];return!_0x21f225?(_0x781b81=a0_0x781b['JeNBRY'](_0x781b81),a0_0x781b['jHmkWg'][_0x284ad3]=_0x781b81):_0x781b81=_0x21f225,_0x781b81;}module[a0_0x2bc7d0(0x1cc)]=createJobRoutes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x41da97=a0_0x5196;(function(_0x399842,_0x526f82){const _0x3dad49=a0_0x5196,_0x55e45f=_0x399842();while(!![]){try{const _0x1534c5=parseInt(_0x3dad49(0x1fa))/0x1+parseInt(_0x3dad49(0x227))/0x2+parseInt(_0x3dad49(0x20c))/0x3+-parseInt(_0x3dad49(0x207))/0x4*(-parseInt(_0x3dad49(0x218))/0x5)+-parseInt(_0x3dad49(0x1f6))/0x6*(-parseInt(_0x3dad49(0x228))/0x7)+-parseInt(_0x3dad49(0x236))/0x8+-parseInt(_0x3dad49(0x215))/0x9;if(_0x1534c5===_0x526f82)break;else _0x55e45f['push'](_0x55e45f['shift']());}catch(_0xa8599d){_0x55e45f['push'](_0x55e45f['shift']());}}}(a0_0xf35d,0x845f3));function a0_0xf35d(){const _0x11ce63=['EgTOywK','C1HmAeq','rMLLBgqGiNr5CguIihDHAMLIigrPAxnPicHZDhjPBMCP','Cgf0Aa','zgf5lw9Mlw1VBNrO','rMLLBgqGiM5HBwuIihDHAMLIigrPAxnPicHZDhjPBMCP','zxHPC3rZu3LUyW','nNP0rMnQyG','rMLLBgqGiM5HBwuIigHHCNvZihnSDwCGzM9YBwf0icHSB3DLCMnHC2uSigrHC2GPoIaI','DMfSAwrHDgvrDwv1zu5HBwu','igzPzwXKoIaI','mZG2mdmWzwTRBNHq','DgvZDa','C2nOzwr1Bgu','s05sBhu','zgvMyxvSDa','Eujpuxa','AvD5rMW','y29Uy3vYCMvUy3K','iJOGC3rLCcaIlW','Bwv0ywrHDge','zgf5lw9MlxDLzwS','u1zIreG','rMLLBgqGiMnVBMn1CNjLBMn5iIbOyxj1CYbUDw1IzxiGyw50yxjHideTnta','mtq0nte2ngfywMT4EG','BgvUz3rO','Ag91CG','DhjPBq','zxHWB25LBNrPywW','mJy5nJa4nxnIuwLitq','DMfSAwrHDgviyw5KBgvYrxHPC3rZ','DhLWzq','yKvVBhK','Dffoqvi','AxnbCNjHEq','BNvTyMvY','BMfTzq','ChvZAa','mte4ote3mZzOq3zvAuy','DMfSAwq','Bwf4qxr0zw1WDhm','mtbzBxnXv3i','BwLU','A0zcuKq','x2LZvMfSAwrsyw5Nzq','rfPhywq','zMnbtKy','lMPZicHHyNnVBhv0ztOG','sgfUzgXLCIbMAwXLihrPzgfRigrPDgvTDwTHBJOGC3jJl2PVyNmV','DgLTzw91Da','yMfJA29MzG','AM9PBG','rMLLBgqGiNr5CguIigHHCNvZicjJCM9UiIWGzgL0zw11A2fUoIaI','CxvLDwu','Au5TzLG','CMv0CNK','mZG3mJy4v1bbww1K','oteZotLNzNDUvxu','iJOGyMfZzsaI','rvnxy1C','vwD0uwq','DMfSAwrHDgvdCM9UrxHWCMvZC2LVBG','lMPZ','rMLLBgqGiNjLDhj5lMLUAxrPywXezwXHEsiGAgfYDxmGBNvTyMvYid4GmcaOzgfSyw0GBxmP','zxjYB3jZ','C3bSAxq','q29VAKm','Dwrhwuq','Bwf4','wLrHu2W','Aw5JBhvKzxm','mJGWmZK5mNDwA1jvCG','q3jVBIbMAwvSzcaI','Bw9UDgG','AgfUzgXLCG','DMfSAwrHDgvdB25MAwC','Aw5PDgLHBerLBgf5','DMfSAwrHDgvszxrYEunVBMzPzW','B3H5uwy'];a0_0xf35d=function(){return _0x11ce63;};return a0_0xf35d();}function a0_0x5196(_0x120297,_0x4454fe){_0x120297=_0x120297-0x1ec;const _0xf35dc6=a0_0xf35d();let _0x519669=_0xf35dc6[_0x120297];if(a0_0x5196['YFezsn']===undefined){var _0x2ed215=function(_0x57fb2e){const _0x4e8918='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x556586='',_0x4869e7='';for(let _0xb97e9c=0x0,_0xc89dde,_0x5c5190,_0xde5259=0x0;_0x5c5190=_0x57fb2e['charAt'](_0xde5259++);~_0x5c5190&&(_0xc89dde=_0xb97e9c%0x4?_0xc89dde*0x40+_0x5c5190:_0x5c5190,_0xb97e9c++%0x4)?_0x556586+=String['fromCharCode'](0xff&_0xc89dde>>(-0x2*_0xb97e9c&0x6)):0x0){_0x5c5190=_0x4e8918['indexOf'](_0x5c5190);}for(let _0x256914=0x0,_0x5d6ba6=_0x556586['length'];_0x256914<_0x5d6ba6;_0x256914++){_0x4869e7+='%'+('00'+_0x556586['charCodeAt'](_0x256914)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4869e7);};a0_0x5196['SnoYsG']=_0x2ed215,a0_0x5196['mhimzA']={},a0_0x5196['YFezsn']=!![];}const _0x5b191b=_0xf35dc6[0x0],_0x498488=_0x120297+_0x5b191b,_0x85c23f=a0_0x5196['mhimzA'][_0x498488];return!_0x85c23f?(_0x519669=a0_0x5196['SnoYsG'](_0x519669),a0_0x5196['mhimzA'][_0x498488]=_0x519669):_0x519669=_0x85c23f,_0x519669;}const fs=require('fs'),path=require(a0_0x41da97(0x1f2)),VALID_QUEUE_NAMES=['high-priority',a0_0x41da97(0x1fe),'low-priority'],VALID_BACKOFF_TYPES=['fixed',a0_0x41da97(0x20b)],SLUG_REGEX=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;class JobValidator{[a0_0x41da97(0x23a)](_0x15c89f,_0x4ad654){const _0xc76d4c=a0_0x41da97,_0x3f5e93={'KNRlu':'string','UgtQd':function(_0x29224c,_0x3251bd){return _0x29224c!==_0x3251bd;},'OjfcJ':'Field\x20\x22schedule\x22\x20wajib\x20diisi\x20(cron\x20expression\x20string)','udGYD':function(_0xb295b7,_0xbafdd){return _0xb295b7!==_0xbafdd;},'yBOQp':function(_0x2bb23b,_0x4c09e9){return _0x2bb23b!==_0x4c09e9;},'xkhai':'boolean','ZTaSl':'Field\x20\x22enabled\x22\x20harus\x20boolean','pDYUJ':_0xc76d4c(0x212),'kFBRD':'Field\x20\x22timeout\x22\x20harus\x20number\x20>\x200\x20(dalam\x20ms)','ESWcW':function(_0x1888c0,_0x5cd163){return _0x1888c0>_0x5cd163;},'GNfOh':_0xc76d4c(0x206),'aYkaY':function(_0x20b063,_0x52c6b8){return _0x20b063===_0x52c6b8;},'CVJkI':'object'},_0x4bb483=[];if(!_0x15c89f||typeof _0x15c89f!=='object')return{'valid':![],'errors':['Config\x20harus\x20berupa\x20object']};if(!_0x15c89f['name']||typeof _0x15c89f['name']!==_0x3f5e93['KNRlu'])_0x4bb483['push'](_0xc76d4c(0x1f4));else!SLUG_REGEX[_0xc76d4c(0x1fb)](_0x15c89f['name'])&&_0x4bb483['push'](_0xc76d4c(0x1f7)+_0x15c89f[_0xc76d4c(0x213)]+'\x22');if(!_0x15c89f['type']||_0x3f5e93[_0xc76d4c(0x22b)](typeof _0x15c89f[_0xc76d4c(0x20e)],'string'))_0x4bb483['push'](_0xc76d4c(0x1f1));else _0x15c89f[_0xc76d4c(0x20e)]!=='cron'&&_0x4bb483[_0xc76d4c(0x214)](_0xc76d4c(0x223)+_0x15c89f[_0xc76d4c(0x20e)]+'\x22');if(!_0x15c89f[_0xc76d4c(0x1fc)]||typeof _0x15c89f['schedule']!==_0x3f5e93[_0xc76d4c(0x1fd)])_0x4bb483['push'](_0x3f5e93['OjfcJ']);else{const _0x45cd88=this[_0xc76d4c(0x22c)](_0x15c89f['schedule']);!_0x45cd88['valid']&&_0x4bb483[_0xc76d4c(0x214)](..._0x45cd88[_0xc76d4c(0x22f)]);}if(!_0x15c89f['handler']||_0x3f5e93['udGYD'](typeof _0x15c89f['handler'],_0x3f5e93['KNRlu']))_0x4bb483['push']('Field\x20\x22handler\x22\x20wajib\x20diisi\x20(path\x20relatif\x20dari\x20src/jobs/)');else{if(_0x4ad654){const _0x49c417=this[_0xc76d4c(0x20d)](_0x15c89f[_0xc76d4c(0x239)],_0x4ad654);!_0x49c417[_0xc76d4c(0x216)]&&_0x4bb483[_0xc76d4c(0x214)](..._0x49c417[_0xc76d4c(0x22f)]);}}_0x15c89f['enabled']!==undefined&&_0x3f5e93[_0xc76d4c(0x1ff)](typeof _0x15c89f['enabled'],_0x3f5e93[_0xc76d4c(0x1ef)])&&_0x4bb483[_0xc76d4c(0x214)](_0x3f5e93[_0xc76d4c(0x234)]);_0x3f5e93[_0xc76d4c(0x232)](_0x15c89f['timeout'],undefined)&&((typeof _0x15c89f[_0xc76d4c(0x220)]!==_0x3f5e93['pDYUJ']||_0x15c89f['timeout']<=0x0)&&_0x4bb483['push'](_0x3f5e93[_0xc76d4c(0x21a)]));if(_0x3f5e93['UgtQd'](_0x15c89f['queue'],undefined)){const _0x2470fb=this[_0xc76d4c(0x1f8)](_0x15c89f[_0xc76d4c(0x224)]);!_0x2470fb[_0xc76d4c(0x216)]&&_0x4bb483['push'](..._0x2470fb[_0xc76d4c(0x22f)]);}_0x3f5e93['UgtQd'](_0x15c89f['concurrency'],undefined)&&((_0x3f5e93['yBOQp'](typeof _0x15c89f['concurrency'],_0xc76d4c(0x212))||_0x15c89f[_0xc76d4c(0x201)]<0x1||_0x3f5e93[_0xc76d4c(0x22a)](_0x15c89f['concurrency'],0x32))&&_0x4bb483[_0xc76d4c(0x214)](_0x3f5e93['GNfOh']));if(_0x3f5e93['yBOQp'](_0x15c89f[_0xc76d4c(0x226)],undefined)){if(typeof _0x15c89f['retry']!=='object'||_0x3f5e93['aYkaY'](_0x15c89f[_0xc76d4c(0x226)],null))_0x4bb483[_0xc76d4c(0x214)]('Field\x20\x22retry\x22\x20harus\x20berupa\x20object');else{const _0x40a417=this['validateRetryConfig'](_0x15c89f['retry']);!_0x40a417['valid']&&_0x4bb483['push'](..._0x40a417[_0xc76d4c(0x22f)]);}}return _0x3f5e93['yBOQp'](_0x15c89f['metadata'],undefined)&&((_0x3f5e93['yBOQp'](typeof _0x15c89f[_0xc76d4c(0x203)],_0x3f5e93['CVJkI'])||_0x15c89f[_0xc76d4c(0x203)]===null||Array[_0xc76d4c(0x211)](_0x15c89f[_0xc76d4c(0x203)]))&&_0x4bb483[_0xc76d4c(0x214)]('Field\x20\x22metadata\x22\x20harus\x20berupa\x20object')),{'valid':_0x4bb483[_0xc76d4c(0x208)]===0x0,'errors':_0x4bb483};}[a0_0x41da97(0x22c)](_0x1b296e){const _0x126531=a0_0x41da97,_0x2d92c4={'iNmfX':function(_0x442d26,_0x364ec2){return _0x442d26!==_0x364ec2;},'iWyFl':'minute','nEJrA':_0x126531(0x209),'fcANF':_0x126531(0x1f3),'YKrgm':function(_0x11fa10,_0x110d7b){return _0x11fa10(_0x110d7b);},'MAHpJ':function(_0x32dac2,_0x1ab2c1){return _0x32dac2<_0x1ab2c1;}},_0x3579e8=[],_0x2bfd6e=_0x1b296e[_0x126531(0x20a)]()['split'](/\s+/);if(_0x2d92c4[_0x126531(0x225)](_0x2bfd6e['length'],0x5))return _0x3579e8[_0x126531(0x214)]('Cron\x20expression\x20harus\x205\x20field\x20(minute\x20hour\x20day\x20month\x20weekday),\x20ditemukan\x20'+_0x2bfd6e[_0x126531(0x208)]+_0x126531(0x1f9)+_0x1b296e+'\x22'),{'valid':![],'errors':_0x3579e8};const _0x104594=[_0x2d92c4[_0x126531(0x200)],_0x2d92c4['nEJrA'],_0x2d92c4[_0x126531(0x21d)],_0x126531(0x238),_0x126531(0x204)],_0xe15aeb=[{'min':0x0,'max':0x3b},{'min':0x0,'max':0x17},{'min':0x1,'max':0x1f},{'min':0x1,'max':0xc},{'min':0x0,'max':0x7}],_0x142542=/^(\*|[0-9]+(-[0-9]+)?)([,/](\*|[0-9]+(-[0-9]+)?))*$/;for(let _0x3b70ad=0x0;_0x3b70ad<0x5;_0x3b70ad++){const _0x5f9e5=_0x2bfd6e[_0x3b70ad];if(_0x5f9e5==='*')continue;if(_0x5f9e5['includes']('/')){const [_0x240064,_0x19bbdf]=_0x5f9e5[_0x126531(0x230)]('/');_0x2d92c4[_0x126531(0x225)](_0x240064,'*')&&!this[_0x126531(0x21b)](_0x240064,_0xe15aeb[_0x3b70ad])&&_0x3579e8['push'](_0x126531(0x237)+_0x104594[_0x3b70ad]+_0x126531(0x229)+_0x240064+'\x22\x20tidak\x20valid');const _0x31896a=parseInt(_0x19bbdf,0xa);(_0x2d92c4['YKrgm'](isNaN,_0x31896a)||_0x2d92c4['MAHpJ'](_0x31896a,0x1))&&_0x3579e8['push'](_0x126531(0x237)+_0x104594[_0x3b70ad]+_0x126531(0x202)+_0x19bbdf+'\x22\x20harus\x20angka\x20>\x200');continue;}const _0x33df9b=_0x5f9e5['split'](',');for(const _0x1e56c1 of _0x33df9b){!this[_0x126531(0x21b)](_0x1e56c1,_0xe15aeb[_0x3b70ad])&&_0x3579e8['push'](_0x126531(0x237)+_0x104594[_0x3b70ad]+'\x22:\x20nilai\x20\x22'+_0x1e56c1+'\x22\x20di\x20luar\x20range\x20'+_0xe15aeb[_0x3b70ad]['min']+'-'+_0xe15aeb[_0x3b70ad]['max']);}}return{'valid':_0x3579e8[_0x126531(0x208)]===0x0,'errors':_0x3579e8};}[a0_0x41da97(0x21b)](_0x243e5e,_0x5c4bdc){const _0x1367ca=a0_0x41da97,_0x3b5774={'tQNAR':function(_0x43caf5,_0x43774c){return _0x43caf5(_0x43774c);},'sXLhD':function(_0x59adf,_0x2ebe0f){return _0x59adf>=_0x2ebe0f;},'ldaQb':function(_0x9581e1,_0x3e91e2){return _0x9581e1<=_0x3e91e2;},'KkOZF':function(_0x1eafeb,_0x4ca73a){return _0x1eafeb<=_0x4ca73a;},'SVbDH':function(_0x23b15c,_0x43868f){return _0x23b15c(_0x43868f);}};if(_0x243e5e[_0x1367ca(0x235)]('-')){const [_0x97b95d,_0x58ef64]=_0x243e5e['split']('-')['map'](Number);return!_0x3b5774['tQNAR'](isNaN,_0x97b95d)&&!_0x3b5774[_0x1367ca(0x210)](isNaN,_0x58ef64)&&_0x3b5774[_0x1367ca(0x1f0)](_0x97b95d,_0x5c4bdc['min'])&&_0x3b5774['ldaQb'](_0x97b95d,_0x5c4bdc[_0x1367ca(0x233)])&&_0x58ef64>=_0x5c4bdc['min']&&_0x3b5774['KkOZF'](_0x58ef64,_0x5c4bdc[_0x1367ca(0x233)])&&_0x97b95d<=_0x58ef64;}const _0x55c063=parseInt(_0x243e5e,0xa);return!_0x3b5774[_0x1367ca(0x205)](isNaN,_0x55c063)&&_0x55c063>=_0x5c4bdc[_0x1367ca(0x219)]&&_0x55c063<=_0x5c4bdc['max'];}['validateQueueName'](_0x57096b){if(!VALID_QUEUE_NAMES['includes'](_0x57096b))return{'valid':![],'errors':['Queue\x20\x22'+_0x57096b+'\x22\x20tidak\x20valid.\x20Pilihan:\x20'+VALID_QUEUE_NAMES['join'](',\x20')]};return{'valid':!![],'errors':[]};}[a0_0x41da97(0x1ed)](_0x44dcc1){const _0x305d16=a0_0x41da97,_0x5330e0={'CoojC':function(_0x11865e,_0x40e0a9){return _0x11865e!==_0x40e0a9;},'oxyQf':'Field\x20\x22retry.maxAttempts\x22\x20harus\x20number\x20antara\x201-10','bEoly':'\x22\x20atau\x20\x22'},_0x13161a=[];return _0x5330e0['CoojC'](_0x44dcc1[_0x305d16(0x217)],undefined)&&((typeof _0x44dcc1[_0x305d16(0x217)]!=='number'||_0x44dcc1['maxAttempts']<0x1||_0x44dcc1[_0x305d16(0x217)]>0xa)&&_0x13161a[_0x305d16(0x214)](_0x5330e0[_0x305d16(0x1ee)])),_0x5330e0[_0x305d16(0x231)](_0x44dcc1[_0x305d16(0x221)],undefined)&&(!VALID_BACKOFF_TYPES['includes'](_0x44dcc1[_0x305d16(0x221)])&&_0x13161a[_0x305d16(0x214)]('Field\x20\x22retry.backoff\x22\x20harus\x20\x22'+VALID_BACKOFF_TYPES[_0x305d16(0x222)](_0x5330e0[_0x305d16(0x20f)])+'\x22')),_0x44dcc1['initialDelay']!==undefined&&((typeof _0x44dcc1[_0x305d16(0x1ec)]!==_0x305d16(0x212)||_0x44dcc1[_0x305d16(0x1ec)]<=0x0)&&_0x13161a['push'](_0x305d16(0x22e))),{'valid':_0x13161a[_0x305d16(0x208)]===0x0,'errors':_0x13161a};}[a0_0x41da97(0x20d)](_0x34796d,_0x36ee05){const _0x5beec0=a0_0x41da97,_0x263268={'DZGad':'src'},_0xe5ae59=path[_0x5beec0(0x222)](_0x36ee05,_0x263268[_0x5beec0(0x21c)],'jobs',_0x34796d+_0x5beec0(0x22d));if(!fs[_0x5beec0(0x1f5)](_0xe5ae59))return{'valid':![],'errors':[_0x5beec0(0x21f)+_0x34796d+_0x5beec0(0x21e)+_0xe5ae59+')']};return{'valid':!![],'errors':[]};}}module['exports']=new JobValidator();
|
|
1
|
+
function a0_0x41e8(_0x2533d9,_0x46d4e5){_0x2533d9=_0x2533d9-0x1f3;const _0x4a76e8=a0_0x4a76();let _0x41e881=_0x4a76e8[_0x2533d9];if(a0_0x41e8['YkWCYj']===undefined){var _0x144613=function(_0x48d59b){const _0x13aef4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x23fa23='',_0x406238='';for(let _0x202dd2=0x0,_0x121f73,_0x1917ba,_0x3a4a41=0x0;_0x1917ba=_0x48d59b['charAt'](_0x3a4a41++);~_0x1917ba&&(_0x121f73=_0x202dd2%0x4?_0x121f73*0x40+_0x1917ba:_0x1917ba,_0x202dd2++%0x4)?_0x23fa23+=String['fromCharCode'](0xff&_0x121f73>>(-0x2*_0x202dd2&0x6)):0x0){_0x1917ba=_0x13aef4['indexOf'](_0x1917ba);}for(let _0x2a2483=0x0,_0x95880e=_0x23fa23['length'];_0x2a2483<_0x95880e;_0x2a2483++){_0x406238+='%'+('00'+_0x23fa23['charCodeAt'](_0x2a2483)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x406238);};a0_0x41e8['RQJGPb']=_0x144613,a0_0x41e8['CUNynp']={},a0_0x41e8['YkWCYj']=!![];}const _0xfe011a=_0x4a76e8[0x0],_0x3e2c89=_0x2533d9+_0xfe011a,_0x24711c=a0_0x41e8['CUNynp'][_0x3e2c89];return!_0x24711c?(_0x41e881=a0_0x41e8['RQJGPb'](_0x41e881),a0_0x41e8['CUNynp'][_0x3e2c89]=_0x41e881):_0x41e881=_0x24711c,_0x41e881;}const a0_0x4a1c85=a0_0x41e8;(function(_0x421678,_0x14f7a2){const _0x1ae497=a0_0x41e8,_0x4cc540=_0x421678();while(!![]){try{const _0x9be908=-parseInt(_0x1ae497(0x23a))/0x1*(parseInt(_0x1ae497(0x215))/0x2)+parseInt(_0x1ae497(0x23b))/0x3*(parseInt(_0x1ae497(0x208))/0x4)+-parseInt(_0x1ae497(0x20b))/0x5*(-parseInt(_0x1ae497(0x20e))/0x6)+parseInt(_0x1ae497(0x22b))/0x7+parseInt(_0x1ae497(0x220))/0x8*(-parseInt(_0x1ae497(0x1f4))/0x9)+parseInt(_0x1ae497(0x212))/0xa+-parseInt(_0x1ae497(0x221))/0xb;if(_0x9be908===_0x14f7a2)break;else _0x4cc540['push'](_0x4cc540['shift']());}catch(_0x445556){_0x4cc540['push'](_0x4cc540['shift']());}}}(a0_0x4a76,0xa238f));const fs=require('fs'),path=require(a0_0x4a1c85(0x1fa)),VALID_QUEUE_NAMES=[a0_0x4a1c85(0x213),'default','low-priority'],VALID_BACKOFF_TYPES=[a0_0x4a1c85(0x23d),'exponential'],SLUG_REGEX=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;class JobValidator{[a0_0x4a1c85(0x22e)](_0x22a36c,_0x443d60){const _0x9c1535=a0_0x4a1c85,_0xfcbeea={'KnYdb':function(_0x501473,_0xd0a94d){return _0x501473!==_0xd0a94d;},'VQaIQ':'Config\x20harus\x20berupa\x20object','aZrgg':'string','YLPMq':_0x9c1535(0x207),'SXtun':function(_0x49f207,_0x3c321e){return _0x49f207!==_0x3c321e;},'CiYUw':function(_0x37f2f4,_0x3151d5){return _0x37f2f4!==_0x3151d5;},'cJPRe':_0x9c1535(0x1fe),'vlvKR':_0x9c1535(0x218),'nMhYg':function(_0x52073b,_0x328762){return _0x52073b>_0x328762;},'SqPjF':_0x9c1535(0x203),'GetoJ':function(_0x2f2827,_0x27d5e8){return _0x2f2827!==_0x27d5e8;},'auijR':_0x9c1535(0x23f),'Uuikw':function(_0x39b5b7,_0x17ec90){return _0x39b5b7===_0x17ec90;}},_0x434085=[];if(!_0x22a36c||_0xfcbeea[_0x9c1535(0x219)](typeof _0x22a36c,_0x9c1535(0x23f)))return{'valid':![],'errors':[_0xfcbeea[_0x9c1535(0x1fd)]]};if(!_0x22a36c['name']||typeof _0x22a36c['name']!==_0x9c1535(0x225))_0x434085[_0x9c1535(0x20a)]('Field\x20\x22name\x22\x20wajib\x20diisi\x20(string)');else!SLUG_REGEX[_0x9c1535(0x229)](_0x22a36c['name'])&&_0x434085['push']('Field\x20\x22name\x22\x20harus\x20slug\x20format\x20(lowercase,\x20dash):\x20\x22'+_0x22a36c['name']+'\x22');if(!_0x22a36c['type']||typeof _0x22a36c[_0x9c1535(0x235)]!==_0xfcbeea['aZrgg'])_0x434085[_0x9c1535(0x20a)](_0xfcbeea['YLPMq']);else _0xfcbeea['SXtun'](_0x22a36c['type'],_0x9c1535(0x1f5))&&_0x434085['push'](_0x9c1535(0x22f)+_0x22a36c['type']+'\x22');if(!_0x22a36c['schedule']||_0xfcbeea['CiYUw'](typeof _0x22a36c['schedule'],_0xfcbeea[_0x9c1535(0x1fc)]))_0x434085[_0x9c1535(0x20a)](_0xfcbeea[_0x9c1535(0x209)]);else{const _0x22dc4d=this['validateCronExpression'](_0x22a36c[_0x9c1535(0x20d)]);!_0x22dc4d['valid']&&_0x434085[_0x9c1535(0x20a)](..._0x22dc4d['errors']);}if(!_0x22a36c['handler']||_0xfcbeea[_0x9c1535(0x22d)](typeof _0x22a36c['handler'],_0xfcbeea['aZrgg']))_0x434085[_0x9c1535(0x20a)](_0x9c1535(0x224));else{if(_0x443d60){const _0x539f03=this[_0x9c1535(0x230)](_0x22a36c['handler'],_0x443d60);!_0x539f03['valid']&&_0x434085[_0x9c1535(0x20a)](..._0x539f03['errors']);}}_0x22a36c[_0x9c1535(0x233)]!==undefined&&typeof _0x22a36c[_0x9c1535(0x233)]!=='boolean'&&_0x434085[_0x9c1535(0x20a)](_0xfcbeea['vlvKR']);_0x22a36c[_0x9c1535(0x205)]!==undefined&&((typeof _0x22a36c['timeout']!==_0x9c1535(0x200)||_0x22a36c['timeout']<=0x0)&&_0x434085['push'](_0x9c1535(0x20c)));if(_0x22a36c['queue']!==undefined){const _0x296910=this[_0x9c1535(0x21c)](_0x22a36c[_0x9c1535(0x1f3)]);!_0x296910['valid']&&_0x434085['push'](..._0x296910[_0x9c1535(0x1fb)]);}_0x22a36c[_0x9c1535(0x21a)]!==undefined&&((_0xfcbeea['SXtun'](typeof _0x22a36c[_0x9c1535(0x21a)],_0x9c1535(0x200))||_0x22a36c[_0x9c1535(0x21a)]<0x1||_0xfcbeea['nMhYg'](_0x22a36c[_0x9c1535(0x21a)],0x32))&&_0x434085['push'](_0xfcbeea['SqPjF']));if(_0xfcbeea['CiYUw'](_0x22a36c[_0x9c1535(0x1f8)],undefined)){if(_0xfcbeea[_0x9c1535(0x1f9)](typeof _0x22a36c['retry'],_0xfcbeea['auijR'])||_0x22a36c[_0x9c1535(0x1f8)]===null)_0x434085[_0x9c1535(0x20a)](_0x9c1535(0x1ff));else{const _0x23aef6=this['validateRetryConfig'](_0x22a36c['retry']);!_0x23aef6['valid']&&_0x434085['push'](..._0x23aef6[_0x9c1535(0x1fb)]);}}return _0xfcbeea['SXtun'](_0x22a36c[_0x9c1535(0x226)],undefined)&&((typeof _0x22a36c['metadata']!==_0x9c1535(0x23f)||_0x22a36c[_0x9c1535(0x226)]===null||Array[_0x9c1535(0x20f)](_0x22a36c['metadata']))&&_0x434085['push']('Field\x20\x22metadata\x22\x20harus\x20berupa\x20object')),{'valid':_0xfcbeea['Uuikw'](_0x434085['length'],0x0),'errors':_0x434085};}['validateCronExpression'](_0x47e1c1){const _0x260a50=a0_0x4a1c85,_0xdbf314={'hQaTw':'hour','MYmla':'day-of-month','dmUUg':_0x260a50(0x1f7),'ZMdZH':function(_0x317646,_0x15dcf3,_0x465c74){return _0x317646(_0x15dcf3,_0x465c74);},'QthBA':function(_0x2add63,_0x2243c6){return _0x2add63<_0x2243c6;},'QYLhN':function(_0x43964a,_0x22782f){return _0x43964a===_0x22782f;}},_0x1e00bd=[],_0x2cdb39=_0x47e1c1[_0x260a50(0x227)]()[_0x260a50(0x234)](/\s+/);if(_0x2cdb39['length']!==0x5)return _0x1e00bd[_0x260a50(0x20a)]('Cron\x20expression\x20harus\x205\x20field\x20(minute\x20hour\x20day\x20month\x20weekday),\x20ditemukan\x20'+_0x2cdb39[_0x260a50(0x237)]+'\x20field:\x20\x22'+_0x47e1c1+'\x22'),{'valid':![],'errors':_0x1e00bd};const _0x3386a8=[_0x260a50(0x22a),_0xdbf314[_0x260a50(0x236)],_0xdbf314['MYmla'],'month',_0xdbf314['dmUUg']],_0x2fc985=[{'min':0x0,'max':0x3b},{'min':0x0,'max':0x17},{'min':0x1,'max':0x1f},{'min':0x1,'max':0xc},{'min':0x0,'max':0x7}],_0x47e670=/^(\*|[0-9]+(-[0-9]+)?)([,/](\*|[0-9]+(-[0-9]+)?))*$/;for(let _0x1f7653=0x0;_0x1f7653<0x5;_0x1f7653++){const _0x3f2f28=_0x2cdb39[_0x1f7653];if(_0x3f2f28==='*')continue;if(_0x3f2f28['includes']('/')){const [_0x3f5557,_0x380016]=_0x3f2f28['split']('/');_0x3f5557!=='*'&&!this[_0x260a50(0x244)](_0x3f5557,_0x2fc985[_0x1f7653])&&_0x1e00bd[_0x260a50(0x20a)](_0x260a50(0x21b)+_0x3386a8[_0x1f7653]+_0x260a50(0x201)+_0x3f5557+'\x22\x20tidak\x20valid');const _0x464d22=_0xdbf314[_0x260a50(0x245)](parseInt,_0x380016,0xa);(isNaN(_0x464d22)||_0xdbf314['QthBA'](_0x464d22,0x1))&&_0x1e00bd['push'](_0x260a50(0x21b)+_0x3386a8[_0x1f7653]+_0x260a50(0x239)+_0x380016+_0x260a50(0x23c));continue;}const _0x4c71c2=_0x3f2f28['split'](',');for(const _0x3c30c2 of _0x4c71c2){!this['_isValidRange'](_0x3c30c2,_0x2fc985[_0x1f7653])&&_0x1e00bd['push']('Cron\x20field\x20\x22'+_0x3386a8[_0x1f7653]+_0x260a50(0x1f6)+_0x3c30c2+'\x22\x20di\x20luar\x20range\x20'+_0x2fc985[_0x1f7653]['min']+'-'+_0x2fc985[_0x1f7653]['max']);}}return{'valid':_0xdbf314[_0x260a50(0x240)](_0x1e00bd[_0x260a50(0x237)],0x0),'errors':_0x1e00bd};}[a0_0x4a1c85(0x244)](_0x5c9905,_0x5c2f10){const _0x22011a=a0_0x4a1c85,_0x27347a={'hzLON':function(_0x266f9a,_0x3dd433){return _0x266f9a(_0x3dd433);},'bcMIA':function(_0x31c237,_0x3f05e5){return _0x31c237<=_0x3f05e5;},'TKPbn':function(_0x8d703c,_0xca759b,_0x2bfbd9){return _0x8d703c(_0xca759b,_0x2bfbd9);},'nafdK':function(_0x48766e,_0x27cc36){return _0x48766e(_0x27cc36);},'LukDl':function(_0x3959f6,_0x147ca4){return _0x3959f6>=_0x147ca4;}};if(_0x5c9905[_0x22011a(0x228)]('-')){const [_0x566dc6,_0x4b9d02]=_0x5c9905['split']('-')['map'](Number);return!isNaN(_0x566dc6)&&!_0x27347a[_0x22011a(0x232)](isNaN,_0x4b9d02)&&_0x566dc6>=_0x5c2f10[_0x22011a(0x210)]&&_0x27347a['bcMIA'](_0x566dc6,_0x5c2f10[_0x22011a(0x21e)])&&_0x4b9d02>=_0x5c2f10['min']&&_0x27347a['bcMIA'](_0x4b9d02,_0x5c2f10['max'])&&_0x566dc6<=_0x4b9d02;}const _0x261fa0=_0x27347a['TKPbn'](parseInt,_0x5c9905,0xa);return!_0x27347a['nafdK'](isNaN,_0x261fa0)&&_0x27347a['LukDl'](_0x261fa0,_0x5c2f10[_0x22011a(0x210)])&&_0x27347a[_0x22011a(0x21d)](_0x261fa0,_0x5c2f10[_0x22011a(0x21e)]);}[a0_0x4a1c85(0x21c)](_0x597400){const _0x1c9945=a0_0x4a1c85;if(!VALID_QUEUE_NAMES[_0x1c9945(0x228)](_0x597400))return{'valid':![],'errors':[_0x1c9945(0x214)+_0x597400+'\x22\x20tidak\x20valid.\x20Pilihan:\x20'+VALID_QUEUE_NAMES['join'](',\x20')]};return{'valid':!![],'errors':[]};}['validateRetryConfig'](_0x5cd756){const _0x36c83e=a0_0x4a1c85,_0x473228={'aOYHz':function(_0x419016,_0x30c4f2){return _0x419016!==_0x30c4f2;},'VJaZX':_0x36c83e(0x200),'xMqwa':function(_0x3c5f0c,_0x13203c){return _0x3c5f0c>_0x13203c;},'BBCrk':_0x36c83e(0x222),'pQbuz':_0x36c83e(0x231),'JXRlt':function(_0x5de0b1,_0x5d0f56){return _0x5de0b1!==_0x5d0f56;}},_0x1d93d2=[];return _0x5cd756['maxAttempts']!==undefined&&((_0x473228['aOYHz'](typeof _0x5cd756[_0x36c83e(0x238)],_0x473228['VJaZX'])||_0x5cd756['maxAttempts']<0x1||_0x473228['xMqwa'](_0x5cd756[_0x36c83e(0x238)],0xa))&&_0x1d93d2[_0x36c83e(0x20a)](_0x473228['BBCrk'])),_0x5cd756[_0x36c83e(0x242)]!==undefined&&(!VALID_BACKOFF_TYPES[_0x36c83e(0x228)](_0x5cd756[_0x36c83e(0x242)])&&_0x1d93d2['push'](_0x36c83e(0x202)+VALID_BACKOFF_TYPES[_0x36c83e(0x243)](_0x473228[_0x36c83e(0x216)])+'\x22')),_0x5cd756['initialDelay']!==undefined&&((_0x473228[_0x36c83e(0x217)](typeof _0x5cd756['initialDelay'],'number')||_0x5cd756[_0x36c83e(0x21f)]<=0x0)&&_0x1d93d2[_0x36c83e(0x20a)](_0x36c83e(0x223))),{'valid':_0x1d93d2[_0x36c83e(0x237)]===0x0,'errors':_0x1d93d2};}['validateHandlerExists'](_0x31e34b,_0x3e93b3){const _0x2f23b6=a0_0x4a1c85,_0x2147e3={'hmWPq':_0x2f23b6(0x241),'vAEyy':_0x2f23b6(0x206)},_0x5617b5=path['join'](_0x3e93b3,_0x2147e3[_0x2f23b6(0x246)],_0x2147e3[_0x2f23b6(0x22c)],_0x31e34b+_0x2f23b6(0x23e));if(!fs['existsSync'](_0x5617b5))return{'valid':![],'errors':['Handler\x20file\x20tidak\x20ditemukan:\x20src/jobs/'+_0x31e34b+_0x2f23b6(0x204)+_0x5617b5+')']};return{'valid':!![],'errors':[]};}}module[a0_0x4a1c85(0x211)]=new JobValidator();function a0_0x4a76(){const _0x10f7eb=['iJOGyMfZzsaI','rMLLBgqGiNjLDhj5lMjHy2TVzMyIigHHCNvZici','rMLLBgqGiMnVBMn1CNjLBMn5iIbOyxj1CYbUDw1IzxiGyw50yxjHideTnta','lMPZicHHyNnVBhv0ztOG','DgLTzw91Da','AM9ICW','rMLLBgqGiNr5CguIihDHAMLIigrPAxnPicHZDhjPBMCP','ngncwK9UzG','y0PquMu','ChvZAa','mtyWqw1Nvw9P','rMLLBgqGiNrPBwvVDxqIigHHCNvZig51BwjLCIa+idaGkgrHBgfTig1Zkq','C2nOzwr1Bgu','mJqXnZi4twf2BeXY','AxnbCNjHEq','BwLU','zxHWB3j0CW','mJa4ndKYmhz4qwzNwq','AgLNAc1WCMLVCML0Eq','uxvLDwuGiG','mJK4otK0quf3zuDz','CffIDxO','sLHsBhq','rMLLBgqGiMvUywjSzwqIigHHCNvZigjVB2XLyw4','s25zzgi','y29Uy3vYCMvUy3K','q3jVBIbMAwvSzcaI','DMfSAwrHDgvrDwv1zu5HBwu','yMnnsue','Bwf4','Aw5PDgLHBerLBgf5','nZC5mJHJDeHct1K','mtaZntCYntLty3jKyNi','rMLLBgqGiNjLDhj5lM1HEef0DgvTChrZiIbOyxj1CYbUDw1IzxiGyw50yxjHideTmta','rMLLBgqGiNjLDhj5lMLUAxrPywXezwXHEsiGAgfYDxmGBNvTyMvYid4GmcaOzgfSyw0GBxmP','rMLLBgqGiMHHBMrSzxiIihDHAMLIigrPAxnPicHWyxrOihjLBgf0AwyGzgfYAsbZCMmVAM9ICY8P','C3rYAw5N','Bwv0ywrHDge','DhjPBq','Aw5JBhvKzxm','DgvZDa','BwLUDxrL','nJi3mteZoxbzCwv5sW','DKffExK','u1H0Dw4','DMfSAwrHDgvdB25MAwC','rMLLBgqGiNr5CguIigHHCNvZicjJCM9UiIWGzgL0zw11A2fUoIaI','DMfSAwrHDgviyw5KBgvYrxHPC3rZ','iIbHDgf1ici','AhPmt04','zw5HyMXLza','C3bSAxq','DhLWzq','AffHvhC','BgvUz3rO','Bwf4qxr0zw1WDhm','iJOGC3rLCcaIlW','nfHgyNbqCa','mZy2ndqXA3ngDuDm','iIbOyxj1CYbHBMDRysa+ida','zML4zwq','lMPZ','B2jQzwn0','uvLmAe4','C3jJ','yMfJA29MzG','AM9PBG','x2LZvMfSAwrsyw5Nzq','wK1KwKG','Ag1xuhe','CxvLDwu','mJG4uKnzEffg','y3jVBG','iJOGBMLSywKGiG','zgf5lw9MlxDLzwS','CMv0CNK','r2v0B0O','Cgf0Aa','zxjYB3jZ','yvPYz2C','vLfHsve','rMLLBgqGiNnJAgvKDwXLiIb3ywPPyIbKAwLZAsaOy3jVBIbLEhbYzxnZAw9Uihn0CMLUzYK','rMLLBgqGiNjLDhj5iIbOyxj1CYbIzxj1CgeGB2jQzwn0','BNvTyMvY'];a0_0x4a76=function(){return _0x10f7eb;};return a0_0x4a76();}
|