@restforgejs/platform 4.3.8 → 5.0.1
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/bin/sdf-tools.exe +0 -0
- 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 +96 -96
- package/generators/cli/schema/list.js +82 -18
- package/generators/cli/schema/migrate.js +23 -3
- package/generators/lib/dbschema-kit/apply-engine.js +211 -46
- package/generators/lib/dbschema-kit/diff-engine.js +715 -703
- package/generators/lib/dbschema-kit/emitters/alter-table.js +96 -2
- package/generators/lib/dbschema-kit/introspect-mapper.js +9 -0
- package/generators/lib/migrate/backend-payload-migrator.js +221 -221
- package/generators/lib/migrate/field-type-resolver.js +325 -319
- package/generators/lib/migrate/label-generator.js +38 -38
- package/generators/lib/migrate/migrate-runner.js +244 -38
- package/generators/lib/migrate/naming.js +52 -43
- package/generators/lib/migrate/sql-parser.js +124 -124
- 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/node_modules/brace-expansion/index.js +1 -1
- package/node_modules/brace-expansion/package.json +1 -1
- package/node_modules/dayjs/CHANGELOG.md +7 -0
- package/node_modules/dayjs/README.md +12 -10
- package/node_modules/dayjs/dayjs.min.js +1 -1
- package/node_modules/dayjs/esm/constant.js +1 -1
- package/node_modules/dayjs/esm/plugin/duration/index.js +5 -4
- package/node_modules/dayjs/locale.json +1 -1
- package/node_modules/dayjs/package.json +2 -2
- package/node_modules/dayjs/plugin/duration.js +1 -1
- package/node_modules/tmp/lib/tmp.js +37 -7
- package/node_modules/tmp/package.json +4 -16
- 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
|
-
const a0_0x7718f0=a0_0x44ec;function a0_0x4a7e(){const _0x1b45b9=['xsbcAw5KAw5Nia','otrVEMTbzgi','x3jLDhj5','wM14Dxu','mte1nZi2nen0rwPKrG','zxHJAgfUz2u','Ec1KzwfKlwXLDhrLCI1YB3v0Aw5NlwTLEq','lxjLDhj5lwv4y2HHBMDL','CxvLDwu','yxnZzxj0rxHJAgfUz2u','A1Hywgm','Awz3rLu','Dg9tDhjPBMC','BwvZC2fNzuHHBMrSzxjZ','C3vIC3rYAw5N','qMHwzLG','y29UDgvUDa','uMnWAxy','C3rHCNrdB25ZDw1L','C2v0DxbdB2XSzwn0B3jjBMzYyxn0CNvJDhvYzq','xsbgywLSzwqGDg8GCMvJB25Uzwn0ihrVifjHyMjPDe1roIa','yxnZzxj0uxvLDwu','y3jLyxrLzc9YzwfKEq','xsbfCNjVCIbWCM9JzxnZAw5Nig1LC3nHz2u6ia','ywnR','AxndB25Uzwn0zwq','y2HHBM5LBa','xsbrDwv1zsa','y29UzMLN','sKzosKm','m3WXFdj8n3W1Fdz8nhWW','C3rYAw5NAwz5','CwHiwxu','twvZC2fNzsbJB250zw50oIa','lI4VDxrPBhmVzgf0zuHLBhbLCG','r3fMr1a','ouXzrNLMtW','CMfUzg9T','y2XVC2u','ihDPDgGGreXy','y29UBMvJDgLVBG','nJaWnJeYrLDUsxL0','xsbnzxnZywDLihnLBNqGDg8GuMfIyML0tveGC3vJy2vZC2z1BgX5oG','qxPUyxq','zxjYB3i','Aw5JBhvKzxm','BfvfCxO','xsbgywLSzwqGDg8GC3rHCNqGy29UC3vTAw5NoIa','rxjYB3i6ia','ChvIBgLZAa','veLYEKm','BgvUz3rO','CMvJB25Uzwn0','xsbgywLSzwqGDg8GCgfYC2uGBwvZC2fNztOG','ignYzwf0zwqVCMvHzhK','C1rUDwq','BwvZC2fNzq','mtC1mdHzz0zMDfq','mtbHyunOyLO','AM1gs3K','y1virKu','ignYzwf0zwq','CMvNAxn0zxjnzxnZywDLsgfUzgXLCG','oda1yML2AuvK','mtG1mdK5nunyy29itq','ChjVCgvYDgLLCW','xsbtDwnJzxnZzNvSBhKGCMvJB25Uzwn0zwqGDg8GuMfIyML0tve','xsbszxrYEsbLEgnOyw5Nzsa','xsbbBhrLCM5HDgL2zsbXDwv1zsa','rhj3rue','uezRt3C','xsbnzxnZywDLigHHBMrSzxiGBxvZDcbIzsbHigz1BMn0Aw9U','ngPIvenzEa','EMjUve4','nJu0murKwMvjwq','BMfJAW','yMLUzff1zxvL','lI4VDxrPBhmVCMfIyML0Bxe','xsbfEgnOyw5Nzsa','ChjVy2vZC01LC3nHz2u','xsboBYbOyw5KBgvYCYbYzwDPC3rLCMvKihrVihbYB2nLC3mGBwvZC2fNzxm','C2vUzfrVuxvLDwu','ChjLzMv0y2G','mZe0mJa1nLL6vg9XDG','xsbnzxnZywDLigHHBMrSzxiGCMvNAxn0zxjLza','CM91DgLUz0TLEq','CNLuA0C','BxLJCvy','xsbfCNjVCIbJCMvHDgLUzYbXDwv1zsa','zNjVBq','nJK4mti0oujpyKHHyG','vhj5Aw5NigfSDgvYBMf0AxzLihf1zxvLig5HBwuUlI4','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','Bg9N','Aw5PDgLHBgL6zq','CgfYC2u','Dg9ju09tDhjPBMC','xsbbDhrLBxb0Aw5NihrVihjLy29UBMvJDcb0BYbsywjIAxrnus4UlG','xsbnzxnZywDLihbYB2nLC3nLzcbZDwnJzxnZzNvSBhK'];a0_0x4a7e=function(){return _0x1b45b9;};return a0_0x4a7e();}(function(_0x3136b0,_0x432980){const _0x9d5f2e=a0_0x44ec,_0x3929d6=_0x3136b0();while(!![]){try{const _0x312a62=parseInt(_0x9d5f2e(0x105))/0x1*(parseInt(_0x9d5f2e(0x11f))/0x2)+-parseInt(_0x9d5f2e(0x10e))/0x3*(-parseInt(_0x9d5f2e(0x103))/0x4)+-parseInt(_0x9d5f2e(0xfb))/0x5+-parseInt(_0x9d5f2e(0xf4))/0x6*(-parseInt(_0x9d5f2e(0xfa))/0x7)+-parseInt(_0x9d5f2e(0x122))/0x8*(parseInt(_0x9d5f2e(0xdf))/0x9)+-parseInt(_0x9d5f2e(0xf5))/0xa*(parseInt(_0x9d5f2e(0x115))/0xb)+parseInt(_0x9d5f2e(0xe4))/0xc;if(_0x312a62===_0x432980)break;else _0x3929d6['push'](_0x3929d6['shift']());}catch(_0x4a58ed){_0x3929d6['push'](_0x3929d6['shift']());}}}(a0_0x4a7e,0x90424));const {createConnection,createChannel,setupInfrastructure,closeConnection,getConfig}=require(a0_0x7718f0(0x108)),{formatDate}=require(a0_0x7718f0(0xdd));class RabbitMQService{constructor(){const _0xefcba=a0_0x7718f0,_0xa60424={'DrwEA':function(_0xa2bcfe){return _0xa2bcfe();}};this[_0xefcba(0xe3)]=null,this[_0xefcba(0xd5)]=null,this[_0xefcba(0xd7)]=_0xa60424[_0xefcba(0x100)](getConfig),this['isConnected']=![],this[_0xefcba(0x12b)]=[];}async[a0_0x7718f0(0x119)](){const _0x21f9ea=a0_0x7718f0,_0xf424ca={'BhVfX':function(_0x45839b,_0x5da43a){return _0x45839b(_0x5da43a);},'Aznat':_0x21f9ea(0xd9),'slvwa':_0x21f9ea(0xe1),'cUHFE':function(_0x42c899,_0x203b83){return _0x42c899(_0x203b83);},'mycqV':function(_0x50fc04,_0x15a751){return _0x50fc04(_0x15a751);}};try{const _0xc36f35=_0xf424ca[_0x21f9ea(0xe6)]['split']('|');let _0x427ad8=0x0;while(!![]){switch(_0xc36f35[_0x427ad8++]){case'0':return!![];case'1':this[_0x21f9ea(0xd5)]=await _0xf424ca[_0x21f9ea(0x12d)](createChannel,this['connection']);continue;case'2':await this['channel'][_0x21f9ea(0x10d)](0x1);continue;case'3':this[_0x21f9ea(0xe3)]=await createConnection();continue;case'4':this['connection']['on'](_0xf424ca['slvwa'],()=>{const _0xcb115e=_0x21f9ea;console['error']('['+_0xf424ca[_0xcb115e(0x12d)](formatDate,new Date())+']\x20Koneksi\x20RabbitMQ\x20terputus'),this['isConnected']=![],setTimeout(()=>this['reconnect'](),0x1388);});continue;case'5':await _0xf424ca['cUHFE'](setupInfrastructure,this['channel']);continue;case'6':this[_0x21f9ea(0xd4)]=!![];continue;case'7':console[_0x21f9ea(0x118)]('['+_0xf424ca[_0x21f9ea(0xf7)](formatDate,new Date())+']\x20Prefetch\x20diatur\x20ke\x201');continue;}break;}}catch(_0xbcaf84){return console['error']('['+_0xf424ca[_0x21f9ea(0x112)](formatDate,new Date())+']\x20Failed\x20to\x20initialize\x20RabbitMQ:\x20'+_0xbcaf84[_0x21f9ea(0xf3)]),this[_0x21f9ea(0xd4)]=![],![];}}async['reconnect'](){const _0x354b62=a0_0x7718f0,_0x4e5355={'Rcpiv':function(_0x4bb272,_0x49e8d5){return _0x4bb272(_0x49e8d5);},'TIrzC':function(_0x2119a7,_0x52ddb8,_0x485383){return _0x2119a7(_0x52ddb8,_0x485383);}};console['log']('['+formatDate(new Date())+_0x354b62(0x11c));try{await this['initialize'](),this[_0x354b62(0xd4)]&&(console[_0x354b62(0x118)]('['+_0x4e5355[_0x354b62(0x12f)](formatDate,new Date())+_0x354b62(0xfd)),await this[_0x354b62(0x130)]());}catch(_0x2617c0){console['error']('['+_0x4e5355[_0x354b62(0x12f)](formatDate,new Date())+_0x354b62(0x132)+_0x2617c0['message']),_0x4e5355[_0x354b62(0xed)](setTimeout,()=>this[_0x354b62(0xef)](),0x1388);}}async[a0_0x7718f0(0x131)](_0x2b8029){const _0x25d0ec=a0_0x7718f0,_0x62bcac={'ifwFU':function(_0x22f11f){return _0x22f11f();},'Zmxuu':function(_0x10bd06,_0x656c7){return _0x10bd06(_0x656c7);},'KLYBT':'direct','KLZbd':function(_0xe60cf3,_0xd8d08d){return _0xe60cf3===_0xd8d08d;},'PKhjx':'found','PFkOw':'inequivalent\x20arg','qhHYu':_0x25d0ec(0x124),'kXXXc':function(_0x530287,_0x30756d){return _0x530287(_0x30756d);}};try{!this[_0x25d0ec(0xd4)]&&(this['connection']=await _0x62bcac[_0x25d0ec(0x129)](createConnection),this['channel']=await createChannel(this[_0x25d0ec(0xe3)]),this['isConnected']=!![]);const _0x445851=process['env'][_0x25d0ec(0x117)]||'default',_0x3ba796=_0x445851+_0x25d0ec(0x125);await this['channel'][_0x25d0ec(0x127)](_0x3ba796,'direct',{'durable':!![],'autoDelete':![]}),console['log']('['+_0x62bcac[_0x25d0ec(0x121)](formatDate,new Date())+_0x25d0ec(0xfe)+_0x3ba796+'\x20created/ready'),await this[_0x25d0ec(0xd5)][_0x25d0ec(0x127)](_0x2b8029[_0x25d0ec(0x123)],_0x62bcac['KLYBT'],{'durable':!![],'autoDelete':![]}),console[_0x25d0ec(0x118)]('['+formatDate(new Date())+_0x25d0ec(0x109)+_0x2b8029['exchange']+_0x25d0ec(0xf1));const _0xfd4c00=_0x2b8029[_0x25d0ec(0x110)]+_0x25d0ec(0x120),_0x439796={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':_0x2b8029['exchange'],'x-dead-letter-routing-key':_0x2b8029['routingKey']}};await this[_0x25d0ec(0xd5)]['assertQueue'](_0xfd4c00,_0x439796),console[_0x25d0ec(0x118)]('['+formatDate(new Date())+']\x20Retry\x20queue\x20'+_0xfd4c00+'\x20created/ready'),await this['channel'][_0x25d0ec(0x107)](_0xfd4c00,_0x3ba796,_0x2b8029[_0x25d0ec(0x110)]),console[_0x25d0ec(0x118)]('['+_0x62bcac[_0x25d0ec(0x121)](formatDate,new Date())+']\x20Retry\x20binding\x20for\x20'+_0x2b8029['routingKey']+_0x25d0ec(0xf8));const _0xef41ee={'durable':!![],'arguments':{'x-dead-letter-exchange':_0x3ba796,'x-dead-letter-routing-key':_0x2b8029['routingKey']}};try{const _0x34e6e7=await this[_0x25d0ec(0xd5)][_0x25d0ec(0xd0)](_0x2b8029['queue'],_0xef41ee);console['log']('['+_0x62bcac['Zmxuu'](formatDate,new Date())+_0x25d0ec(0xd6)+_0x2b8029[_0x25d0ec(0x126)]+'\x20'+(_0x62bcac['KLZbd'](_0x34e6e7['queue'],_0x2b8029[_0x25d0ec(0x126)])?_0x25d0ec(0xd1):_0x62bcac['PKhjx'])+_0x25d0ec(0xe2)),await this[_0x25d0ec(0xd5)][_0x25d0ec(0x107)](_0x2b8029['queue'],_0x2b8029['exchange'],_0x2b8029['routingKey']),console[_0x25d0ec(0x118)]('['+_0x62bcac[_0x25d0ec(0x121)](formatDate,new Date())+_0x25d0ec(0x11e)+_0x2b8029[_0x25d0ec(0x123)]+'\x20->\x20'+_0x2b8029['queue']+'\x20('+_0x2b8029['routingKey']+')\x20created');}catch(_0x57670a){if(_0x57670a[_0x25d0ec(0xf3)][_0x25d0ec(0xe8)](_0x62bcac[_0x25d0ec(0x101)])&&_0x57670a['message']['includes'](_0x62bcac[_0x25d0ec(0xdb)])){console['error']('\x0a['+formatDate(new Date())+']\x20ERROR:\x20Queue\x20'+_0x2b8029['queue']+'\x20is\x20already\x20in\x20use\x20with\x20a\x20different\x20routing\x20key.'),console[_0x25d0ec(0xe7)](_0x25d0ec(0x116));const _0x5d6aa0=_0x2b8029['routingKey']+'_queue',_0xc7baa7=await this[_0x25d0ec(0xd5)][_0x25d0ec(0xd0)](_0x5d6aa0,_0xef41ee);console[_0x25d0ec(0x118)]('['+formatDate(new Date())+_0x25d0ec(0xff)+_0x5d6aa0+'\x20created\x20with\x20DLX'),await this[_0x25d0ec(0xd5)]['bindQueue'](_0x5d6aa0,_0x2b8029[_0x25d0ec(0x123)],_0x2b8029[_0x25d0ec(0x110)]),console[_0x25d0ec(0x118)]('['+_0x62bcac[_0x25d0ec(0x128)](formatDate,new Date())+_0x25d0ec(0x11e)+_0x2b8029[_0x25d0ec(0x123)]+'\x20->\x20'+_0x5d6aa0+'\x20('+_0x2b8029['routingKey']+')\x20created'),_0x2b8029[_0x25d0ec(0x126)]=_0x5d6aa0;}else{console[_0x25d0ec(0xe7)]('['+formatDate(new Date())+_0x25d0ec(0x113)+_0x2b8029['queue']+':',_0x57670a[_0x25d0ec(0xf3)]);throw _0x57670a;}}return!![];}catch(_0x339c60){return console['error']('['+formatDate(new Date())+']\x20Error\x20saat\x20setup\x20infrastruktur:\x20'+_0x339c60['message']),![];}}async[a0_0x7718f0(0x10c)](_0x4b2990,_0x369daa){const _0x135425=a0_0x7718f0,_0x4df202={'jmFKy':function(_0x4d2014,_0x3ecd02){return _0x4d2014!==_0x3ecd02;},'cnVGI':function(_0x3752ee,_0x1f7a90){return _0x3752ee(_0x1f7a90);},'zbnTN':'Data\x20sent\x20to\x20queue\x20successfully','ryTkG':function(_0x1ff5d5,_0x4fcf71){return _0x1ff5d5(_0x4fcf71);}};if(!this[_0x135425(0xd4)])try{await this[_0x135425(0x119)]();}catch(_0x2ab30c){return{'success':![],'message':'Cannot\x20connect\x20to\x20RabbitMQ:\x20'+_0x2ab30c[_0x135425(0xf3)],'data':null};}try{const _0x403613=_0x4df202[_0x135425(0xf6)](_0x369daa['auto_retry'],undefined)?_0x369daa['auto_retry']:![],_0x47e672=_0x369daa['max_retries']||0x3,_0x567648={'rabbitmq':{'exchange':_0x369daa['exchange'],'queue':_0x369daa[_0x135425(0x126)],'routing_key':_0x369daa[_0x135425(0x110)],'auto_retry':_0x403613,'max_retries':_0x47e672},'message':_0x4b2990};await this['setupCollectorInfrastructure'](_0x369daa);const _0x3b8aea=new Date(),_0x448080={'timestamp':_0x3b8aea[_0x135425(0x11b)](),'content':JSON[_0x135425(0xda)](_0x567648)},_0x2b28b9=this['channel'][_0x135425(0xec)](_0x369daa[_0x135425(0x123)],_0x369daa['routingKey'],Buffer[_0x135425(0x114)](JSON[_0x135425(0xda)](_0x448080)),{'persistent':!![],'contentType':'application/json','timestamp':_0x3b8aea['getTime'](),'messageId':_0x3b8aea['getTime']()+'-'+Math[_0x135425(0xe0)]()['toString'](0x24)[_0x135425(0x12c)](0x7),'headers':{'x-auto-retry':_0x403613,'x-max-retry':_0x47e672,'x-retry-count':0x0,'x-retry-interval':0x2710}});if(_0x2b28b9){console[_0x135425(0x118)]('['+_0x4df202['cnVGI'](formatDate,_0x3b8aea)+_0x135425(0xe5),{'exchange':_0x369daa[_0x135425(0x123)],'routing_key':_0x369daa[_0x135425(0x110)],'queue':_0x369daa[_0x135425(0x126)],'sendAt':_0x3b8aea[_0x135425(0x11b)]()});const _0x48d20b='queue-'+_0x3b8aea['getTime']()+'-'+Math['random']()[_0x135425(0x12a)](0x24)['substring'](0x7);return{'success':!![],'message':_0x4df202[_0x135425(0x104)],'data':{'id':_0x48d20b,'queueInfo':{'exchange':_0x369daa['exchange'],'queue':_0x369daa[_0x135425(0x126)],'routingKey':_0x369daa[_0x135425(0x110)]}}};}else throw new Error('Failed\x20to\x20send\x20message\x20to\x20RabbitMQ');}catch(_0x132264){return console['error']('['+_0x4df202[_0x135425(0x111)](formatDate,new Date())+']\x20Error\x20sending\x20to\x20RabbitMQ:\x20'+_0x132264['message']),{'success':![],'message':_0x135425(0xeb)+_0x132264[_0x135425(0xf3)],'data':null};}}[a0_0x7718f0(0xf9)](_0xcb5040){const _0x472aed=a0_0x7718f0,_0x38d155={'aRFwe':function(_0x40eee3,_0xfd7fe1){return _0x40eee3===_0xfd7fe1;},'jEraU':'function','JFNJC':function(_0x2e3bff,_0x404431){return _0x2e3bff(_0x404431);}};_0x38d155['aRFwe'](typeof _0xcb5040,_0x38d155['jEraU'])?(this['messageHandlers']['push'](_0xcb5040),console[_0x472aed(0x118)]('['+_0x38d155['JFNJC'](formatDate,new Date())+_0x472aed(0x10f))):console['error']('['+_0x38d155[_0x472aed(0xd8)](formatDate,new Date())+_0x472aed(0x102));}async[a0_0x7718f0(0x10a)](_0x4a7772){const _0x1ca00e=a0_0x7718f0,_0x41bae3={'lUEqz':function(_0x5726b6,_0x1fea95){return _0x5726b6===_0x1fea95;},'sTnud':function(_0x98874c,_0x560f72){return _0x98874c(_0x560f72);}};if(_0x41bae3[_0x1ca00e(0xe9)](this[_0x1ca00e(0x12b)][_0x1ca00e(0xee)],0x0))return console['warn']('['+_0x41bae3['sTnud'](formatDate,new Date())+_0x1ca00e(0x10b)),!![];try{for(const _0x1f9c74 of this['messageHandlers']){await _0x1f9c74(_0x4a7772);}return!![];}catch(_0x2156bd){return console['error']('['+_0x41bae3[_0x1ca00e(0xf2)](formatDate,new Date())+_0x1ca00e(0xd2)+_0x2156bd[_0x1ca00e(0xf3)]),![];}}async['startConsume'](){const _0x30fc2e=a0_0x7718f0,_0x45ad6c={'GqfGP':function(_0x51d92c,_0x167093){return _0x51d92c(_0x167093);},'SnpBJ':function(_0x3e1d44,_0x1f9d62){return _0x3e1d44(_0x1f9d62);},'EsAWg':'---'};if(!this['isConnected'])return console['error']('['+formatDate(new Date())+']\x20Cannot\x20start\x20consuming:\x20not\x20connected\x20to\x20RabbitMQ'),![];try{return console[_0x30fc2e(0x118)]('['+_0x45ad6c[_0x30fc2e(0xde)](formatDate,new Date())+']\x20Start\x20consuming\x20messages\x20from\x20queue\x20\x22'+this[_0x30fc2e(0xd7)]['queue']+'\x22...'),this['channel']['consume'](this[_0x30fc2e(0xd7)][_0x30fc2e(0x126)],async _0x424549=>{const _0x1a6852=_0x30fc2e;if(_0x424549!==null){const _0x17f212=new Date();let _0x5d4484;try{_0x5d4484=JSON[_0x1a6852(0x11a)](_0x424549[_0x1a6852(0x12e)][_0x1a6852(0x12a)]());}catch(_0x5e1c08){console['error']('['+_0x45ad6c[_0x1a6852(0xde)](formatDate,_0x17f212)+_0x1a6852(0xf0)+_0x5e1c08['message']),console[_0x1a6852(0xe7)](_0x1a6852(0xdc)+_0x424549[_0x1a6852(0x12e)][_0x1a6852(0x12a)]()),this[_0x1a6852(0xd5)][_0x1a6852(0xd3)](_0x424549);return;}const _0x1891d6=_0x424549[_0x1a6852(0xfc)]['timestamp']?new Date(_0x424549[_0x1a6852(0xfc)]['timestamp']):new Date(),_0x4cdc8c=await this['processMessage'](_0x5d4484);_0x4cdc8c?(console['log']('['+formatDate(new Date())+_0x1a6852(0x11d)),this[_0x1a6852(0xd5)][_0x1a6852(0xd3)](_0x424549)):(console['error']('['+_0x45ad6c['SnpBJ'](formatDate,new Date())+']\x20Failed\x20to\x20process\x20message,\x20requeuing'),this['channel'][_0x1a6852(0x106)](_0x424549,![],!![])),console[_0x1a6852(0x118)](_0x45ad6c['EsAWg']);}},{'noAck':![]}),!![];}catch(_0x29fe19){return console[_0x30fc2e(0xe7)]('['+formatDate(new Date())+_0x30fc2e(0xea)+_0x29fe19['message']),![];}}async['close'](){this['connection']&&(await closeConnection(this['connection']),this['isConnected']=![]);}}function a0_0x44ec(_0x46bf60,_0x53cac8){_0x46bf60=_0x46bf60-0xd0;const _0x4a7e3c=a0_0x4a7e();let _0x44ec47=_0x4a7e3c[_0x46bf60];if(a0_0x44ec['ZKimmL']===undefined){var _0x21046f=function(_0x58377e){const _0x5b911d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x308878='',_0x3bc700='';for(let _0x2dd771=0x0,_0x2c758f,_0x463b0b,_0x1c1b83=0x0;_0x463b0b=_0x58377e['charAt'](_0x1c1b83++);~_0x463b0b&&(_0x2c758f=_0x2dd771%0x4?_0x2c758f*0x40+_0x463b0b:_0x463b0b,_0x2dd771++%0x4)?_0x308878+=String['fromCharCode'](0xff&_0x2c758f>>(-0x2*_0x2dd771&0x6)):0x0){_0x463b0b=_0x5b911d['indexOf'](_0x463b0b);}for(let _0x40b06b=0x0,_0x1e3d2e=_0x308878['length'];_0x40b06b<_0x1e3d2e;_0x40b06b++){_0x3bc700+='%'+('00'+_0x308878['charCodeAt'](_0x40b06b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3bc700);};a0_0x44ec['DfvztB']=_0x21046f,a0_0x44ec['wfBBdo']={},a0_0x44ec['ZKimmL']=!![];}const _0x41cfd0=_0x4a7e3c[0x0],_0x1e154a=_0x46bf60+_0x41cfd0,_0x1312ea=a0_0x44ec['wfBBdo'][_0x1e154a];return!_0x1312ea?(_0x44ec47=a0_0x44ec['DfvztB'](_0x44ec47),a0_0x44ec['wfBBdo'][_0x1e154a]=_0x44ec47):_0x44ec47=_0x1312ea,_0x44ec47;}let instance=null;function getInstance(){return!instance&&(instance=new RabbitMQService()),instance;}module['exports']={'getInstance':getInstance};
|
|
1
|
+
const a0_0x483524=a0_0x22ee;(function(_0xb587e5,_0x21e4a1){const _0x2b722d=a0_0x22ee,_0x48dded=_0xb587e5();while(!![]){try{const _0x158013=parseInt(_0x2b722d(0x159))/0x1+parseInt(_0x2b722d(0x180))/0x2+-parseInt(_0x2b722d(0x168))/0x3+-parseInt(_0x2b722d(0x14e))/0x4*(parseInt(_0x2b722d(0x19b))/0x5)+parseInt(_0x2b722d(0x19e))/0x6+parseInt(_0x2b722d(0x16c))/0x7*(-parseInt(_0x2b722d(0x172))/0x8)+-parseInt(_0x2b722d(0x19d))/0x9;if(_0x158013===_0x21e4a1)break;else _0x48dded['push'](_0x48dded['shift']());}catch(_0xb836b0){_0x48dded['push'](_0x48dded['shift']());}}}(a0_0x4a60,0x8b4c9));const {createConnection,createChannel,setupInfrastructure,closeConnection,getConfig}=require(a0_0x483524(0x155)),{formatDate}=require(a0_0x483524(0x17b));class RabbitMQService{constructor(){const _0x3b57dd=a0_0x483524,_0xad5c12={'nTgmf':'0|2|3|1|4'},_0x2522f8=_0xad5c12[_0x3b57dd(0x17f)][_0x3b57dd(0x191)]('|');let _0x35fb01=0x0;while(!![]){switch(_0x2522f8[_0x35fb01++]){case'0':this[_0x3b57dd(0x1a5)]=null;continue;case'1':this['isConnected']=![];continue;case'2':this[_0x3b57dd(0x17a)]=null;continue;case'3':this[_0x3b57dd(0x14c)]=getConfig();continue;case'4':this['messageHandlers']=[];continue;}break;}}async[a0_0x483524(0x16a)](){const _0x57c4bc=a0_0x483524,_0x335559={'qtOrM':function(_0x79b068){return _0x79b068();},'jkIqW':_0x57c4bc(0x164),'hdBke':function(_0x299aa4,_0x284a54){return _0x299aa4(_0x284a54);}};try{return this['connection']=await _0x335559[_0x57c4bc(0x15c)](createConnection),this['channel']=await createChannel(this['connection']),await this[_0x57c4bc(0x17a)][_0x57c4bc(0x196)](0x1),console['log']('['+formatDate(new Date())+_0x57c4bc(0x193)),await setupInfrastructure(this[_0x57c4bc(0x17a)]),this[_0x57c4bc(0x16e)]=!![],this[_0x57c4bc(0x1a5)]['on'](_0x335559[_0x57c4bc(0x183)],()=>{const _0x4eba98=_0x57c4bc;console['error']('['+formatDate(new Date())+']\x20Koneksi\x20RabbitMQ\x20terputus'),this[_0x4eba98(0x16e)]=![],setTimeout(()=>this[_0x4eba98(0x18e)](),0x1388);}),!![];}catch(_0x376f99){return console[_0x57c4bc(0x157)]('['+_0x335559[_0x57c4bc(0x195)](formatDate,new Date())+_0x57c4bc(0x197)+_0x376f99[_0x57c4bc(0x153)]),this['isConnected']=![],![];}}async[a0_0x483524(0x18e)](){const _0x4302fa=a0_0x483524,_0x1a9202={'XVfxS':function(_0x55e9a1,_0x184591){return _0x55e9a1(_0x184591);}};console['log']('['+formatDate(new Date())+']\x20Attempting\x20to\x20reconnect\x20to\x20RabbitMQ...');try{await this[_0x4302fa(0x16a)](),this['isConnected']&&(console['log']('['+formatDate(new Date())+']\x20Successfully\x20reconnected\x20to\x20RabbitMQ'),await this['startConsume']());}catch(_0x1c6a54){console[_0x4302fa(0x157)]('['+_0x1a9202[_0x4302fa(0x199)](formatDate,new Date())+_0x4302fa(0x169)+_0x1c6a54['message']),setTimeout(()=>this[_0x4302fa(0x18e)](),0x1388);}}async[a0_0x483524(0x1a0)](_0x7ba26e){const _0x49f737=a0_0x483524,_0x305d49={'OcUbX':function(_0x571fbc,_0x3607c7){return _0x571fbc(_0x3607c7);},'fHnWs':function(_0x180264,_0x1e596b){return _0x180264(_0x1e596b);},'gTQjD':function(_0x1cdd8b,_0x4318eb){return _0x1cdd8b(_0x4318eb);},'zrMEB':function(_0x139f02,_0x35f9df){return _0x139f02===_0x35f9df;},'WYWln':_0x49f737(0x176),'qjNhf':function(_0x6e4175,_0x275735){return _0x6e4175(_0x275735);},'HLIRH':_0x49f737(0x14f),'buCMT':function(_0x3db14c,_0x12e61e){return _0x3db14c(_0x12e61e);},'TyHwH':function(_0x27d55b,_0x54936b){return _0x27d55b(_0x54936b);},'IGewW':function(_0x1e5d2e,_0xc92fd6){return _0x1e5d2e(_0xc92fd6);},'rIRGA':function(_0x3c42a7,_0x4fc162){return _0x3c42a7(_0x4fc162);},'rmXqF':function(_0x326776,_0x21d9ef){return _0x326776(_0x21d9ef);}};try{!this['isConnected']&&(this[_0x49f737(0x1a5)]=await createConnection(),this[_0x49f737(0x17a)]=await _0x305d49[_0x49f737(0x19c)](createChannel,this['connection']),this[_0x49f737(0x16e)]=!![]);const _0x50684a=process[_0x49f737(0x177)]['RESTFORGE_PROJECT_NAME']||_0x49f737(0x189),_0x1aef74=_0x50684a+_0x49f737(0x149);await this['channel']['assertExchange'](_0x1aef74,'direct',{'durable':!![],'autoDelete':![]}),console['log']('['+_0x305d49[_0x49f737(0x166)](formatDate,new Date())+_0x49f737(0x18b)+_0x1aef74+'\x20created/ready'),await this['channel']['assertExchange'](_0x7ba26e['exchange'],_0x49f737(0x163),{'durable':!![],'autoDelete':![]}),console[_0x49f737(0x17c)]('['+_0x305d49[_0x49f737(0x165)](formatDate,new Date())+']\x20Exchange\x20'+_0x7ba26e[_0x49f737(0x18d)]+'\x20created/ready');const _0x77bf2=_0x7ba26e['routingKey']+'_retry',_0x2ae318={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':_0x7ba26e['exchange'],'x-dead-letter-routing-key':_0x7ba26e['routingKey']}};await this['channel']['assertQueue'](_0x77bf2,_0x2ae318),console[_0x49f737(0x17c)]('['+_0x305d49['gTQjD'](formatDate,new Date())+']\x20Retry\x20queue\x20'+_0x77bf2+'\x20created/ready'),await this['channel'][_0x49f737(0x17e)](_0x77bf2,_0x1aef74,_0x7ba26e[_0x49f737(0x161)]),console['log']('['+formatDate(new Date())+']\x20Retry\x20binding\x20for\x20'+_0x7ba26e[_0x49f737(0x161)]+'\x20created');const _0x34c3d3={'durable':!![],'arguments':{'x-dead-letter-exchange':_0x1aef74,'x-dead-letter-routing-key':_0x7ba26e[_0x49f737(0x161)]}};try{const _0x46d15a=await this[_0x49f737(0x17a)][_0x49f737(0x150)](_0x7ba26e[_0x49f737(0x14a)],_0x34c3d3);console[_0x49f737(0x17c)]('['+formatDate(new Date())+_0x49f737(0x14b)+_0x7ba26e['queue']+'\x20'+(_0x305d49[_0x49f737(0x15f)](_0x46d15a['queue'],_0x7ba26e[_0x49f737(0x14a)])?_0x305d49[_0x49f737(0x15d)]:_0x49f737(0x16d))+'\x20with\x20DLX'),await this['channel'][_0x49f737(0x17e)](_0x7ba26e['queue'],_0x7ba26e['exchange'],_0x7ba26e['routingKey']),console['log']('['+_0x305d49['qjNhf'](formatDate,new Date())+']\x20Binding\x20'+_0x7ba26e[_0x49f737(0x18d)]+'\x20->\x20'+_0x7ba26e[_0x49f737(0x14a)]+'\x20('+_0x7ba26e['routingKey']+_0x49f737(0x154));}catch(_0x2cc80a){if(_0x2cc80a[_0x49f737(0x153)][_0x49f737(0x175)](_0x49f737(0x158))&&_0x2cc80a[_0x49f737(0x153)][_0x49f737(0x175)](_0x305d49['HLIRH'])){console['error']('\x0a['+_0x305d49['buCMT'](formatDate,new Date())+']\x20ERROR:\x20Queue\x20'+_0x7ba26e[_0x49f737(0x14a)]+'\x20is\x20already\x20in\x20use\x20with\x20a\x20different\x20routing\x20key.'),console[_0x49f737(0x157)](_0x49f737(0x181));const _0x230be7=_0x7ba26e['routingKey']+_0x49f737(0x179),_0x597642=await this['channel'][_0x49f737(0x150)](_0x230be7,_0x34c3d3);console['log']('['+_0x305d49[_0x49f737(0x15a)](formatDate,new Date())+']\x20Alternative\x20queue\x20'+_0x230be7+'\x20created\x20with\x20DLX'),await this[_0x49f737(0x17a)][_0x49f737(0x17e)](_0x230be7,_0x7ba26e['exchange'],_0x7ba26e['routingKey']),console['log']('['+_0x305d49[_0x49f737(0x1a4)](formatDate,new Date())+']\x20Binding\x20'+_0x7ba26e['exchange']+_0x49f737(0x188)+_0x230be7+'\x20('+_0x7ba26e[_0x49f737(0x161)]+')\x20created'),_0x7ba26e[_0x49f737(0x14a)]=_0x230be7;}else{console['error']('['+_0x305d49['rIRGA'](formatDate,new Date())+_0x49f737(0x19a)+_0x7ba26e[_0x49f737(0x14a)]+':',_0x2cc80a[_0x49f737(0x153)]);throw _0x2cc80a;}}return!![];}catch(_0x405e0f){return console[_0x49f737(0x157)]('['+_0x305d49[_0x49f737(0x19f)](formatDate,new Date())+']\x20Error\x20saat\x20setup\x20infrastruktur:\x20'+_0x405e0f['message']),![];}}async['sendToQueue'](_0x3625eb,_0x308440){const _0x4da0a6=a0_0x483524,_0x392849={'iivFE':_0x4da0a6(0x178),'mNnwb':function(_0x5db1e6,_0x1b6afd){return _0x5db1e6(_0x1b6afd);}};if(!this[_0x4da0a6(0x16e)])try{await this[_0x4da0a6(0x16a)]();}catch(_0xa80aad){return{'success':![],'message':_0x4da0a6(0x184)+_0xa80aad['message'],'data':null};}try{const _0x90fa09=_0x308440['auto_retry']!==undefined?_0x308440['auto_retry']:![],_0x5da965=_0x308440[_0x4da0a6(0x16b)]||0x3,_0x59f422={'rabbitmq':{'exchange':_0x308440[_0x4da0a6(0x18d)],'queue':_0x308440['queue'],'routing_key':_0x308440[_0x4da0a6(0x161)],'auto_retry':_0x90fa09,'max_retries':_0x5da965},'message':_0x3625eb};await this['setupCollectorInfrastructure'](_0x308440);const _0x36ef53=new Date(),_0x116b2e={'timestamp':_0x36ef53['toISOString'](),'content':JSON[_0x4da0a6(0x192)](_0x59f422)},_0x1ce2ff=this['channel'][_0x4da0a6(0x194)](_0x308440['exchange'],_0x308440[_0x4da0a6(0x161)],Buffer[_0x4da0a6(0x186)](JSON['stringify'](_0x116b2e)),{'persistent':!![],'contentType':'application/json','timestamp':_0x36ef53['getTime'](),'messageId':_0x36ef53['getTime']()+'-'+Math[_0x4da0a6(0x185)]()[_0x4da0a6(0x1a3)](0x24)[_0x4da0a6(0x1a2)](0x7),'headers':{'x-auto-retry':_0x90fa09,'x-max-retry':_0x5da965,'x-retry-count':0x0,'x-retry-interval':0x2710}});if(_0x1ce2ff){console[_0x4da0a6(0x17c)]('['+formatDate(_0x36ef53)+']\x20Message\x20sent\x20to\x20RabbitMQ\x20successfully:',{'exchange':_0x308440[_0x4da0a6(0x18d)],'routing_key':_0x308440[_0x4da0a6(0x161)],'queue':_0x308440['queue'],'sendAt':_0x36ef53[_0x4da0a6(0x1a6)]()});const _0x5dfe3c='queue-'+_0x36ef53[_0x4da0a6(0x1a1)]()+'-'+Math[_0x4da0a6(0x185)]()[_0x4da0a6(0x1a3)](0x24)[_0x4da0a6(0x1a2)](0x7);return{'success':!![],'message':_0x392849['iivFE'],'data':{'id':_0x5dfe3c,'queueInfo':{'exchange':_0x308440['exchange'],'queue':_0x308440[_0x4da0a6(0x14a)],'routingKey':_0x308440[_0x4da0a6(0x161)]}}};}else throw new Error(_0x4da0a6(0x173));}catch(_0x216123){return console[_0x4da0a6(0x157)]('['+_0x392849['mNnwb'](formatDate,new Date())+']\x20Error\x20sending\x20to\x20RabbitMQ:\x20'+_0x216123[_0x4da0a6(0x153)]),{'success':![],'message':'Error:\x20'+_0x216123['message'],'data':null};}}['registerMessageHandler'](_0x3720ff){const _0x3c12f5=a0_0x483524,_0x2a5472={'ioJyU':function(_0x17e02c,_0x1da27e){return _0x17e02c===_0x1da27e;},'gxWqM':_0x3c12f5(0x187),'Evvpq':function(_0x315191,_0x48d68c){return _0x315191(_0x48d68c);}};_0x2a5472[_0x3c12f5(0x160)](typeof _0x3720ff,_0x2a5472['gxWqM'])?(this[_0x3c12f5(0x151)]['push'](_0x3720ff),console[_0x3c12f5(0x17c)]('['+_0x2a5472['Evvpq'](formatDate,new Date())+_0x3c12f5(0x156))):console['error']('['+formatDate(new Date())+_0x3c12f5(0x15b));}async['processMessage'](_0x577d28){const _0x15be71=a0_0x483524,_0x5cbe96={'mgOCl':function(_0x3a84c5,_0x38b64e){return _0x3a84c5(_0x38b64e);}};if(this[_0x15be71(0x151)][_0x15be71(0x198)]===0x0)return console['warn']('['+_0x5cbe96['mgOCl'](formatDate,new Date())+_0x15be71(0x18f)),!![];try{for(const _0xfdcc35 of this[_0x15be71(0x151)]){await _0x5cbe96['mgOCl'](_0xfdcc35,_0x577d28);}return!![];}catch(_0x45eb91){return console[_0x15be71(0x157)]('['+formatDate(new Date())+']\x20Error\x20processing\x20message:\x20'+_0x45eb91[_0x15be71(0x153)]),![];}}async[a0_0x483524(0x152)](){const _0x3254de=a0_0x483524,_0x1437a6={'egWQK':function(_0x47d30a,_0x595fe8){return _0x47d30a!==_0x595fe8;},'ctAvm':function(_0x373cda,_0x301534){return _0x373cda(_0x301534);},'qenmk':'---','rguKJ':function(_0x4ef1ef,_0x364f7e){return _0x4ef1ef(_0x364f7e);}};if(!this['isConnected'])return console['error']('['+_0x1437a6['ctAvm'](formatDate,new Date())+_0x3254de(0x15e)),![];try{return console['log']('['+_0x1437a6['ctAvm'](formatDate,new Date())+_0x3254de(0x171)+this[_0x3254de(0x14c)]['queue']+_0x3254de(0x16f)),this[_0x3254de(0x17a)][_0x3254de(0x167)](this[_0x3254de(0x14c)][_0x3254de(0x14a)],async _0x3f4c7c=>{const _0x1a02ae=_0x3254de;if(_0x1437a6[_0x1a02ae(0x170)](_0x3f4c7c,null)){const _0x5bd21e=new Date();let _0x1ace5d;try{_0x1ace5d=JSON['parse'](_0x3f4c7c['content']['toString']());}catch(_0x1f85ff){console[_0x1a02ae(0x157)]('['+formatDate(_0x5bd21e)+']\x20Failed\x20to\x20parse\x20message:\x20'+_0x1f85ff['message']),console['error'](_0x1a02ae(0x14d)+_0x3f4c7c['content'][_0x1a02ae(0x1a3)]()),this[_0x1a02ae(0x17a)]['ack'](_0x3f4c7c);return;}const _0x5d801f=_0x3f4c7c['properties'][_0x1a02ae(0x17d)]?new Date(_0x3f4c7c['properties']['timestamp']):new Date(),_0x2a4551=await this[_0x1a02ae(0x18a)](_0x1ace5d);_0x2a4551?(console['log']('['+_0x1437a6['ctAvm'](formatDate,new Date())+_0x1a02ae(0x18c)),this[_0x1a02ae(0x17a)]['ack'](_0x3f4c7c)):(console[_0x1a02ae(0x157)]('['+formatDate(new Date())+_0x1a02ae(0x162)),this['channel']['nack'](_0x3f4c7c,![],!![])),console['log'](_0x1437a6['qenmk']);}},{'noAck':![]}),!![];}catch(_0x4ef88c){return console[_0x3254de(0x157)]('['+_0x1437a6[_0x3254de(0x174)](formatDate,new Date())+']\x20Failed\x20to\x20start\x20consuming:\x20'+_0x4ef88c['message']),![];}}async['close'](){const _0x4d4afc=a0_0x483524,_0x4a0a40={'ynCRY':function(_0x26f73f,_0x1204f5){return _0x26f73f(_0x1204f5);}};this['connection']&&(await _0x4a0a40[_0x4d4afc(0x182)](closeConnection,this[_0x4d4afc(0x1a5)]),this['isConnected']=![]);}}let instance=null;function a0_0x4a60(){const _0xd20ec5=['xsboBYbOyw5KBgvYCYbYzwDPC3rLCMvKihrVihbYB2nLC3mGBwvZC2fNzxm','zxHWB3j0CW','C3bSAxq','C3rYAw5NAwz5','xsbqCMvMzxrJAcbKAwf0DxiGA2uGmq','ChvIBgLZAa','AgrcA2u','ChjLzMv0y2G','xsbgywLSzwqGDg8GAw5PDgLHBgL6zsbsywjIAxrnutOG','BgvUz3rO','wfzMEfm','xsbfCNjVCIbJCMvHDgLUzYbXDwv1zsa','nJvJBvL3uvm','t2nvyLG','mtC2mJG1n2r5vNvbAq','odK4nJi2DhnqANP3','CM1yCuy','C2v0DxbdB2XSzwn0B3jjBMzYyxn0CNvJDhvYzq','z2v0vgLTzq','C3vIC3rYAw5N','Dg9tDhjPBMC','suDLD1C','y29UBMvJDgLVBG','Dg9ju09tDhjPBMC','lxjLDhj5lwv4y2HHBMDL','CxvLDwu','xsbrDwv1zsa','y29UzMLN','twvZC2fNzsbJB250zw50oIa','mtmZmte2ue14DKHn','Ec1KzwfKlwXLDhrLCI1YB3v0Aw5NlwTLEq','yxnZzxj0uxvLDwu','BwvZC2fNzuHHBMrSzxjZ','C3rHCNrdB25ZDw1L','BwvZC2fNzq','ksbJCMvHDgvK','lI4VDxrPBhmVCMfIyML0Bxe','xsbnzxnZywDLigHHBMrSzxiGCMvNAxn0zxjLza','zxjYB3i','Aw5LCxvPDMfSzw50igfYzW','mta3mZeWmKjUDwnrAW','vhLiD0G','xsbnzxnZywDLigHHBMrSzxiGBxvZDcbIzsbHigz1BMn0Aw9U','CxrpCK0','v1LxBg4','xsbdyw5UB3qGC3rHCNqGy29UC3vTAw5NoIbUB3qGy29UBMvJDgvKihrVifjHyMjPDe1r','ENjnrui','Aw9kEvu','CM91DgLUz0TLEq','xsbgywLSzwqGDg8GChjVy2vZCYbTzxnZywDLlcbYzxf1zxvPBMC','zgLYzwn0','y2XVC2u','z1rrAKq','zKHUv3m','y29UC3vTzq','nJy1ntu5t05Nz1fb','xsbgywLSzwqGDg8GCMvJB25Uzwn0ihrVifjHyMjPDe1roIa','Aw5PDgLHBgL6zq','Bwf4x3jLDhjPzxm','mti3ng1SsK9nsq','zM91BMq','AxndB25Uzwn0zwq','iI4UlG','zwDxuuS','xsbtDgfYDcbJB25ZDw1PBMCGBwvZC2fNzxmGzNjVBsbXDwv1zsaI','mty0ofz5BMzfrG','rMfPBgvKihrVihnLBMqGBwvZC2fNzsb0BYbsywjIAxrnuq','CMD1s0O','Aw5JBhvKzxm','y3jLyxrLzc9YzwfKEq','zw52','rgf0ysbZzw50ihrVihf1zxvLihn1y2nLC3nMDwXSEq','x3f1zxvL','y2HHBM5LBa','lI4VDxrPBhmVzgf0zuHLBhbLCG','Bg9N','DgLTzxn0yw1W','yMLUzff1zxvL','BLrNBwy','ndCXmdGYANbhrMzQ','vhj5Aw5NigfSDgvYBMf0AxzLihf1zxvLig5HBwuUlI4','Ew5duLK','AMTjCvC','q2fUBM90ignVBM5Ly3qGDg8GuMfIyML0tve6ia','CMfUzg9T','zNjVBq','zNvUy3rPB24','ic0+ia','zgvMyxvSDa','ChjVy2vZC01LC3nHz2u','xsbszxrYEsbLEgnOyw5Nzsa','xsbnzxnZywDLihbYB2nLC3nLzcbZDwnJzxnZzNvSBhK','zxHJAgfUz2u','CMvJB25Uzwn0'];a0_0x4a60=function(){return _0xd20ec5;};return a0_0x4a60();}function a0_0x22ee(_0x236aed,_0x4c727f){_0x236aed=_0x236aed-0x149;const _0x4a6040=a0_0x4a60();let _0x22ee15=_0x4a6040[_0x236aed];if(a0_0x22ee['gIPQnh']===undefined){var _0x1f4746=function(_0xbe380b){const _0x19b087='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2eba19='',_0x51dd29='';for(let _0x44da54=0x0,_0x20f570,_0x366ec8,_0x206a93=0x0;_0x366ec8=_0xbe380b['charAt'](_0x206a93++);~_0x366ec8&&(_0x20f570=_0x44da54%0x4?_0x20f570*0x40+_0x366ec8:_0x366ec8,_0x44da54++%0x4)?_0x2eba19+=String['fromCharCode'](0xff&_0x20f570>>(-0x2*_0x44da54&0x6)):0x0){_0x366ec8=_0x19b087['indexOf'](_0x366ec8);}for(let _0xef1982=0x0,_0x5b1b38=_0x2eba19['length'];_0xef1982<_0x5b1b38;_0xef1982++){_0x51dd29+='%'+('00'+_0x2eba19['charCodeAt'](_0xef1982)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x51dd29);};a0_0x22ee['unhHlY']=_0x1f4746,a0_0x22ee['MGTnbO']={},a0_0x22ee['gIPQnh']=!![];}const _0x502511=_0x4a6040[0x0],_0x1d58a8=_0x236aed+_0x502511,_0x300b9a=a0_0x22ee['MGTnbO'][_0x1d58a8];return!_0x300b9a?(_0x22ee15=a0_0x22ee['unhHlY'](_0x22ee15),a0_0x22ee['MGTnbO'][_0x1d58a8]=_0x22ee15):_0x22ee15=_0x300b9a,_0x22ee15;}function getInstance(){return!instance&&(instance=new RabbitMQService()),instance;}module[a0_0x483524(0x190)]={'getInstance':getInstance};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x3e2f79=a0_0x1aad;(function(_0x386bfd,_0x3b184d){const _0x44297a=a0_0x1aad,_0x5a289d=_0x386bfd();while(!![]){try{const _0xda6e93=parseInt(_0x44297a(0x19d))/0x1*(parseInt(_0x44297a(0x1ec))/0x2)+-parseInt(_0x44297a(0xee))/0x3+-parseInt(_0x44297a(0x1ca))/0x4*(-parseInt(_0x44297a(0x177))/0x5)+parseInt(_0x44297a(0x1b3))/0x6*(parseInt(_0x44297a(0x153))/0x7)+parseInt(_0x44297a(0xe1))/0x8*(parseInt(_0x44297a(0x1d1))/0x9)+-parseInt(_0x44297a(0xda))/0xa+-parseInt(_0x44297a(0x1e6))/0xb;if(_0xda6e93===_0x3b184d)break;else _0x5a289d['push'](_0x5a289d['shift']());}catch(_0x1da5d8){_0x5a289d['push'](_0x5a289d['shift']());}}}(a0_0x4f59,0x2475b));function a0_0x4f59(){const _0x54f54c=['zxHPC3rZu3LUyW','z2v0rgjvDgLSCW','zMfPBgvKuMvHC29U','igPVyIbJB25MAwCOCYKGzNjVBsbWyxLSB2fKl2PVyNmV','DgLTzxn0yw1W','C2v0','B25SAw5L','BwfW','sM9IignHBMnLBgXLzcb2AweGqvbj','y29UzMLNrMLSzq','AM9Ix3jLz2LZDhj5x29MzMXPBMvFzxjYB3i','DxbKyxrLuMvNAxn0CNLtDgf0Dxm','vK1uCNm','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteWSihvWzgf0zwrFyxqGpsbtwvnusu1fu1rbtva','CuvmwgC','sK9cx1nuquXmrurFsu5urvjwquW','s2DOBvu','B3jHy2XL','DMfSAwq','Be1dyMm','BMv4Da','sM9Iie1HBMfNzxiGC3vKywGGzgLPBMLZAwfSAxnHC2KSihnRAxa','AwvnDuC','C3vIC3rYAw5N','Cgf1C2u','z2v0q2fJAgvnyw5Hz2vY','q2vsAum','rMveCg8','rKXZrfy','AM9Ix2vUC3vYzv90ywjSzxnFD2fYBG','zgvZy3jPChrPB24','AM9Ix3bYB2DYzxnZ','nZq1mZuZtgn4zuzy','B25kB2jgywLSzwq','y2f0y2G','z2v0q2XPzw50','Aw5JBhvKzxm','zxHLy3v0zuv2zw50sgfUzgXLCNm','BMfTzq','zhD3sgu','DgLTzxPVBMu','ywn0AxzL','y2XVC2u','rejFvfLqrq','Aw5PDgLHBgL6zwq','AM9Ix3DVCMTLCNnFy3jLyxrLza','B25kB2jqCM9NCMvZCW','BM93','Dw5RBM93BG','zw52','DLLeve8','u1fmihnJCMLWDcb0AwrHAYbKAxrLBxvRyw46ia','AM9Ix2HPC3rVCNLFzMfPBgvKx2vYCM9Y','qMTXr24','z2v0u3rHDgu','AM9Ix3jLz2LZDgvYx2zHAwXLza','AM9Ix21HBMfNzxjFywXYzwfKEv9PBML0AwfSAxPLza','igPVyIHZksbYzwDPC3rLCMvKlca','z1LoC1u','D2fYBG','CMy6','BxmPoIa','vezAvhu','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticG/lca/lca/lca/lca/lcaNCNvUBMLUzYCSid8Sid8Sid8Sie5pvYGPlca/lcbot1COksK','CxvPDa','uePhvNa','Aw5PDgLHBerLBgf5','AM9PBG','mtm0mduWs3z5Agfs','Aw5Zzxj0uhjVBwLZzq','DMfSAwrHDgvdB25MAwC','Bwf4qxr0zw1WDhm','AgLZDg9YEuLK','A09vuxi','sM9Iie1HBMfNzxiGCMvHzhK6ia','ChjVy2vZC2vKt24','uMvKAxmGy29UBMvJDgLVBIbMywLSzwq6ia','C29YDa','ifjLzgLZignVBM5Ly3rPB25Z','y3DK','AM9ICW','C3b0Ee8','wvvSr0m','yMfJA29MzG','AM9Ix2nVBxbSzxrLza','CxvLDwu','BxLZCwWUC3fS','y29TCgXLDgvK','sM9IihrPzgfRigrPDgvTDwTHBJOG','Aw5Zzxj0sM9IsgLZDg9YEq','ChjVz3jLC3m','DgLTzw91Da','sM9IigrPC3bHDgnOzwqGkgrLBgf5zwqG','qNDJDwy','zxHLy3v0zvrYyw5Zywn0Aw9U','BwLU','vhHQy1a','x3nVDxjJzuzPBgu','sM9IignVBxbSzxrLzdOG','AM9Iq29UzMLNCW','zgjFCgDFDw5HDMfPBgfIBgu','rMfPBgvKihrVihvWzgf0zsbQB2iGAgLZDg9YEsaOzMfPBgvKktOG','zw5ZDxjLvgfIBgvZ','AgfUzgXLCNm','ChvZAa','yM16rfK','mxrNqwnjwq','zwzLA2q','zgvSzxrL','zMLUAxnOzwrpBG','iokaLca','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNzMfPBgvKjYWGy29TCgXLDgvKx2f0id0GtK9xkcKScIaGicaGicaGicaGzhvYyxrPB25FBxmGpsa/lcbWCM9NCMvZCYa9id8SigvYCM9Yx21LC3nHz2uGpsa/lcbLCNjVCL9ZDgfJAYa9id8Gv0HfuKuGAwqGpsa/','q0Drrhe','Awf3Egi','ChvIBgLZAev2zw50','rMfPBgvKihrVihvWC2vYDcbQB2iGCMvNAxn0CNK6ia','zw5HyMXLza','AM9Ix3n0ywXSzwq','z2v0ug9VBa','rMfPBgvKihrVihb1yMXPC2GGsK9cx0nptvbmrvrfrcb0BYblywzRyq','yxr0zw1WDhnnywrL','yNvSBg1Xx3jLzgLZx2vYCM9Y','ywn0AxzLsgLZDg9YEuLKCW','B3jHy2XLlNnXBa','tMv5qvC','zgvMyxvSDa','rgzAzK4','r2TAt3G','nNzns2LXyq','lIbkB2iGu2nOzwr1BgvYihrPzgfRigfRyw4GywT0AwyU','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa/lcbSyxn0x2r1CMf0Aw9Ux21Zid0GpYWkicaGicaGicaGica','BwfUDwfS','uKvesvnFueftu1DpuKq','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticGKmsWGjdiSicqZlcaKncWGjduSicDYDw5UAw5NjYWGjdySicq3lcaKocWGtK9xkcKSicq5lcbot1COksK','sgfUzgXLCIb0AwrHAYbKAxrLBxvRyw4GDw50DwSGAM9IoIa','CMvHzezPBgvtEw5J','lI4VlI4VC2vYDMLJzxmVA2fMA2ftzxj2AwnL','y29UBMvJDgLVBNm','z2v0s2fMA2ftzxj2AwnL','AM9Ix3jLzgLZx2nVBM5Ly3rLza','CgHQtgS','ywrK','sK9cx0zbsuXfrf9srvrftLrjt05Fse9vuLm','z2v0uMvKAxndBgLLBNq','z2v0rgjuExbL','vgPcDwi','DxbZzxj0sM9IuMvNAxn0CNK','BgLZDfj1BM5PBMC','icHHDhrLBxb0ia','r0nuAuG','Aw5MBW','mJHVy1zYt0u','ihjLBw92zwqGkhDHCYa','vgrPDxC','q0zWr2O','zgvSyxLLza','y29TCg9Uzw50rw5NAw5L','zNvUy3rPB24','ou9tuvvmuG','zw50CMLLCW','sK9cx0nptKnvuLjftKnz','u1bgEhq','id0G','EuTzuKm','reflsxe','uKvesvnFue9sva','z2v0sM9ICW','CxvLDwvZ','txLtuuWGreiGBw9KDwXLig5VDcbHDMfPBgfIBgu','DxvPza','sM9Iihn0ywXSzwq6ia','CMv0CNK','Dvj3C0O','AM9Ix2rPC3bHDgnOzwq','wuvzB0q','Bg93','q3jVBIbYzwDPC3rLCMvKoIa','D29YA2LUz0rPCG','zwrZue0','mJe2mdy4nKHeqwvTrG','z2vPt2e','ChjVy2vZC0PVyG','zgf0yq','zMLSDgvY','zxHWB25LBNrPywW','ntiXmti0AM9dvKny','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa6msWGBgfZDf9YDw5FyxqGpsbtwvnusu1fu1rbtvaScIaGicaGicaGicaGDxbKyxrLzf9HDca9ifnzu1rjtuvtvefnucbxsevsrsbQB2jFBMfTzsa9idOY','vvLOtKu','sujPBuW','AM9Ix3jLzgLZx2zHAwXLza','AM9Ix3jLz2LZDhj5x2nVDw50zxjFzxjYB3i','rMfPBgvKihrVihnLDcbQB2jZig9MzMXPBMu6ia','Aw5PDgLHBgL6zq','DxbKyxrLuMvNAxn0CNLdB3vUDgvYCW','CgLK','v3HfzKi','Dg90ywXFC3vJy2vZCW','AxnsDw5UAw5N','ywz0zxjFAM9Ix2zHAwXLzf9OB29Rx2vYCM9Y','y3jLyxrLqNvSBe1rq29UBMvJDgLVBG','mZCYntaWAvzssgfg','Cgf0Aa','C3rHBgXLza','z2v0sgvHBhrOu3rHDhvZ','DxbKyxrLuhjVz3jLC3m','lI4VlI4VDxrPBhmVzgiTB3jHy2XL','lI4VlI4VDxrPBhmVzgiTBxLZCwW','mZiWnJr1AMnZweC','B3DxsNm','zw5KC1DPDgG','Bwv0ywrHDge','sK9cx0vwru5u','rM9SzgvYihbHEwXVywqVAM9ICY8GDgLKywSGzgL0zw11A2fU','Cvvuv3O','z2v0sM9Iu2nOzwr1BgvYCW','BgLMD00','wMz2BeC','AgfUzgXLCG','zxjYB3jZ','C3vJy2vZCW','nti3mteYDgzwueTA','t0Doufm','C3fSlxnJCMLWDhm','y3jVBG','DhLWzq','rvnYCgy','rMfPBgvKihrVihbHCNnLigPVyIbJB25MAwC6ia','BMT2the','sK9cx1jfvevoveLptL9it1vsuW','DgLTzxn0yw1WCW','Chzlq2S','yxbPlwrLBgf5zwq','BwvZC2fNzq','D2fPDgLUzW','CMv0DxjUDMfSDwu','DMfSDwvZ','mYbcDwXStveGv29YA2vYCYbJCMvHDgvKicHJB25JDxjYzw5JEtOG','CgLUzW','z2v0tMv4Dfj1BKzYB21cDwXStve','y2HPBgq','zMfPBgvK','C3bSAxq','EvveEwW','rejFvfLqrsaN','CMvNAxn0zxjkB2i','y0zyBha','ignHBMnLBgXLzcaOD2fZigfJDgL2zsK','t0P0qK4','DxbKyxrLsM9IsgLZDg9YEuzHAwXLza','AM9Ix2nVBMzPz19PBNzHBgLK','qMfJA2DYB3vUzcbPBNnLCNqGAM9IigHPC3rVCNKGzMfPBgvKoIa','B2zMBgLUzq','icHPzdOG','CMzXueq','B25bzNrLCKPVyKzHAwXLzcbOyw5KBgvYigvYCM9YicHUB24TyMXVy2TPBMCP','zxjYB3i','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','A0vJBfC','qNvSBe1rifjLzgLZignVBM5Ly3rPB24GzxjYB3i6ia','C2nOzwr1Bgu','lMPZ','C0fxzxG','B25bzNrLCKPVyKzHAwXLza','z2v0sgLZDg9YEq','sM9Iia','zxHLy3v0zvf1zxj5','BxLZCwW','BeDKwvm','sM9IignHBMnLBgXLzcbIEsbVBKjLzM9YzuPVyKv4zwn1Dgu6ia','AM9ItMfTzq','suLUzeC','D29YA2vYCW','yxr0zw1WDa','BgvUz3rO','tNrwrvu','AM9Ix2HPC3rVCNLFAw5Zzxj0x2vYCM9Y','BgLZDePVyNm','AM9Ix3f1zxvLC19JCMvHDgvK','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ie5pvYGPlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GjdeSihbYB2DYzxnZid0GmtaWlcbYzxn1BhrFC3vTBwfYEsa9icqYifDirvjfigLKid0Gjdm','DhjPBq','yxbP','AM9Ix2vUC3vYzv90ywjSzxnFzxjYB3i','C3jJ','Buryv3K','svHxwLO','lI4VlI4VDxrPBhmVy2fJAguTBwfUywDLCG','qNvSBe1rifjLzgLZignVBM5Ly3rPB24GDMvYAwzPzwq','DxrMoa','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsaKmsWGBgfZDf9YDw5FyxqGpsbot1COksWkicaGicaGicaGicb1CgrHDgvKx2f0id0GtK9xkcKGv0HfuKuGAM9Ix25HBwuGpsaKmG'];a0_0x4f59=function(){return _0x54f54c;};return a0_0x4f59();}const {Queue,Worker}=require('bullmq'),Redis=require('ioredis'),crypto=require('crypto'),{v7:uuidv7}=require(a0_0x3e2f79(0x1dc)),fs=require('fs'),path=require(a0_0x3e2f79(0xdb)),{logger}=require('../../utils/logger'),jobValidator=require('./job-validator');let componentEngine=null;function getComponentEngine(){const _0x94e953=a0_0x3e2f79,_0x4c3caf={'WxEfB':'../../utils/component-engine'};if(!componentEngine)try{const _0xf81587=require(_0x4c3caf[_0x94e953(0x1f6)]);componentEngine=_0xf81587[_0x94e953(0x1cf)]||_0xf81587;}catch(_0x381f79){}return componentEngine;}function a0_0x1aad(_0x1cfb0a,_0x30a244){_0x1cfb0a=_0x1cfb0a-0xd8;const _0x4f5941=a0_0x4f59();let _0x1aad94=_0x4f5941[_0x1cfb0a];if(a0_0x1aad['RQuxQe']===undefined){var _0x4976ff=function(_0x9f64ba){const _0x309aff='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xff2bb='',_0x48680e='';for(let _0x5a0c34=0x0,_0x5546e4,_0x1ecff0,_0x425a91=0x0;_0x1ecff0=_0x9f64ba['charAt'](_0x425a91++);~_0x1ecff0&&(_0x5546e4=_0x5a0c34%0x4?_0x5546e4*0x40+_0x1ecff0:_0x1ecff0,_0x5a0c34++%0x4)?_0xff2bb+=String['fromCharCode'](0xff&_0x5546e4>>(-0x2*_0x5a0c34&0x6)):0x0){_0x1ecff0=_0x309aff['indexOf'](_0x1ecff0);}for(let _0x3a1e9b=0x0,_0x5b9723=_0xff2bb['length'];_0x3a1e9b<_0x5b9723;_0x3a1e9b++){_0x48680e+='%'+('00'+_0xff2bb['charCodeAt'](_0x3a1e9b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x48680e);};a0_0x1aad['CHJVpc']=_0x4976ff,a0_0x1aad['xzlKzs']={},a0_0x1aad['RQuxQe']=!![];}const _0xb778ab=_0x4f5941[0x0],_0x3fb03f=_0x1cfb0a+_0xb778ab,_0x323423=a0_0x1aad['xzlKzs'][_0x3fb03f];return!_0x323423?(_0x1aad94=a0_0x1aad['CHJVpc'](_0x1aad94),a0_0x1aad['xzlKzs'][_0x3fb03f]=_0x1aad94):_0x1aad94=_0x323423,_0x1aad94;}class JobManager{constructor(){const _0x1103a0=a0_0x3e2f79,_0x3bf969={'qELXg':'4|1|5|0|3|6|2|7'},_0x55d982=_0x3bf969[_0x1103a0(0x141)]['split']('|');let _0x314ac8=0x0;while(!![]){switch(_0x55d982[_0x314ac8++]){case'0':this['handlers']={};continue;case'1':this['workers']={};continue;case'2':this[_0x1103a0(0x1e4)]=process[_0x1103a0(0x182)]();continue;case'3':this['connections']=[];continue;case'4':this['queues']={};continue;case'5':this['jobConfigs']={};continue;case'6':this['initialized']=![];continue;case'7':this[_0x1103a0(0x1ad)]=new Map();continue;}break;}}[a0_0x3e2f79(0xd9)](){const _0x151723=a0_0x3e2f79,_0x4052ae={'BUFEG':function(_0x16c42f,_0x3302aa,_0x3d8259){return _0x16c42f(_0x3302aa,_0x3d8259);},'KghmU':_0x151723(0x111)},_0x4ebe18=new Redis({'host':process[_0x151723(0x164)]['REDIS_HOST']||'localhost','port':_0x4052ae['BUFEG'](parseInt,process['env'][_0x151723(0x1d8)],0xa)||0x18ec,'password':process[_0x151723(0x164)][_0x151723(0x1b7)]||undefined,'db':_0x4052ae['BUFEG'](parseInt,process[_0x151723(0x164)]['REDIS_DB'],0xa)||0x0,'maxRetriesPerRequest':null,'retryStrategy'(_0x4a93da){const _0x19fe12=Math['min'](_0x4a93da*0x32,0x7d0);return _0x19fe12;}});return _0x4ebe18['on'](_0x4052ae[_0x151723(0x143)],_0x282055=>{const _0x24bcfa=_0x151723;logger['error']({'event':_0x24bcfa(0x1ac),'error':_0x282055[_0x24bcfa(0xfa)]},_0x24bcfa(0x114)+_0x282055['message']);}),this['connections'][_0x151723(0x19b)](_0x4ebe18),_0x4ebe18;}async[a0_0x3e2f79(0x1f3)](){const _0x3237c1=a0_0x3e2f79,_0x1c8dc1={'Tikds':_0x3237c1(0x1a8),'DfZfN':'bullmq_worker_error','JAfeV':_0x3237c1(0x16b),'Lwbax':_0x3237c1(0x148),'MbDQk':'job_manager_init_start','gThhK':'unknown','TxjcP':'default','TjBub':function(_0x317ecc,_0x53c774,_0x11fb41){return _0x317ecc(_0x53c774,_0x11fb41);},'igePj':function(_0x912e5a,_0x92ff94){return _0x912e5a*_0x92ff94;},'XPwEw':'high','POnQQ':'3\x20BullMQ\x20Queues\x20created\x20(high,\x20default,\x20low)','lhSfW':function(_0x2fbc20,_0x4b5a32,_0x121192){return _0x2fbc20(_0x4b5a32,_0x121192);},'lMCbc':'failed','NeyAW':'progress','NtVEU':_0x3237c1(0xdc),'YUlGC':_0x3237c1(0x160),'yKYRC':_0x3237c1(0x16a),'RzKFU':'job_manager_ready'};if(this[_0x3237c1(0x15f)]){logger['warn']({'event':_0x1c8dc1['JAfeV']},_0x1c8dc1['Lwbax']);return;}logger['info']({'event':_0x1c8dc1['MbDQk']},'Initializing\x20Job\x20Manager...');const _0x2af6fb=this[_0x3237c1(0xd9)]();try{await _0x2af6fb[_0x3237c1(0xff)](),logger[_0x3237c1(0x1c9)]({'event':_0x3237c1(0x1be)},_0x3237c1(0x130));}catch(_0x27828f){logger['error']({'event':_0x3237c1(0x1f0),'error':_0x27828f['message']},_0x3237c1(0x17f)+_0x27828f['message']+_0x3237c1(0x1b4));try{await _0x2af6fb[_0x3237c1(0x173)]();}catch(_0x2f508b){}this[_0x3237c1(0x1bc)]=this[_0x3237c1(0x1bc)]['filter'](_0x9cb274=>_0x9cb274!==_0x2af6fb);return;}try{await _0x2af6fb[_0x3237c1(0x173)]();}catch(_0x38dc58){}this[_0x3237c1(0x1bc)]=this['connections'][_0x3237c1(0x1ea)](_0x19c04b=>_0x19c04b!==_0x2af6fb);try{await this[_0x3237c1(0x199)]();}catch(_0x404267){logger['warn']({'event':_0x3237c1(0x12b),'error':_0x404267[_0x3237c1(0xfa)]},'Failed\x20to\x20ensure\x20job\x20tables:\x20'+_0x404267[_0x3237c1(0xfa)]+'.\x20DB\x20monitoring\x20disabled.');}const _0x4e3f1a=this['loadJobConfigs']();_0x4e3f1a['length']===0x0&&logger['info']({'event':'job_no_configs'},'Tidak\x20ada\x20job\x20config\x20ditemukan\x20di\x20payload/jobs/.\x20Job\x20Manager\x20aktif\x20tanpa\x20cron.');const _0x579883=[];for(const _0x28677b of _0x4e3f1a){const _0x4a61aa=jobValidator[_0x3237c1(0x179)](_0x28677b,this[_0x3237c1(0x1e4)]);_0x4a61aa[_0x3237c1(0x145)]?_0x579883['push'](_0x28677b):logger[_0x3237c1(0x111)]({'event':_0x3237c1(0x10b),'name':_0x28677b['name']||_0x1c8dc1['gThhK'],'errors':_0x4a61aa[_0x3237c1(0xec)]},'Job\x20config\x20invalid:\x20'+(_0x28677b[_0x3237c1(0x159)]||_0x3237c1(0x163))+'\x20—\x20'+_0x4a61aa[_0x3237c1(0xec)]['join'](';\x20'));}const _0x152e8b=process[_0x3237c1(0x164)][_0x3237c1(0x112)]||_0x1c8dc1[_0x3237c1(0x193)],_0x24a528=process['env']['JOB_REDIS_PREFIX']||_0x3237c1(0x16f)+_0x152e8b+':job',_0x243d80=parseInt(process[_0x3237c1(0x164)][_0x3237c1(0xf6)],0xa)||0x48,_0x353330=_0x1c8dc1[_0x3237c1(0x1c4)](parseInt,process['env'][_0x3237c1(0x1c1)],0xa)||0xa8,_0x43be6e={'removeOnComplete':{'age':_0x243d80*0xe10},'removeOnFail':{'age':_0x1c8dc1['igePj'](_0x353330,0xe10)}},_0x56be78={'high-priority':_0x1c8dc1['XPwEw'],'default':_0x3237c1(0x1b0),'low-priority':_0x3237c1(0x1e2)};for(const [_0x1e7018,_0x4cac18]of Object['entries'](_0x56be78)){this[_0x3237c1(0x1da)][_0x1e7018]=new Queue(_0x4cac18,{'connection':this[_0x3237c1(0xd9)](),'prefix':_0x24a528,'defaultJobOptions':_0x43be6e});}logger['info']({'event':_0x3237c1(0x127),'count':0x3},_0x1c8dc1['POnQQ']);const _0x54c359=_0x1c8dc1['TjBub'](parseInt,process[_0x3237c1(0x164)][_0x3237c1(0x1d3)],0xa)||0x5,_0x1b8ad7=_0x1c8dc1['lhSfW'](parseInt,process[_0x3237c1(0x164)][_0x3237c1(0x142)],0xa)||0x7530,_0x2bc8ec=parseInt(process[_0x3237c1(0x164)]['JOB_MAX_STALLED_COUNT'],0xa)||0x2;for(const [_0x571f4e,_0x57f7a1]of Object['entries'](_0x56be78)){const _0xb235db=new Worker(_0x57f7a1,async _0x47d897=>this['processJob'](_0x47d897),{'connection':this['createBullMQConnection'](),'prefix':_0x24a528,'concurrency':_0x54c359,'stalledInterval':_0x1b8ad7,'maxStalledCount':_0x2bc8ec});_0xb235db['on']('completed',(_0x2d79df,_0x2c7492)=>this['onJobCompleted'](_0x2d79df,_0x2c7492)),_0xb235db['on'](_0x1c8dc1[_0x3237c1(0x146)],(_0x32776a,_0x384179)=>this['onJobFailed'](_0x32776a,_0x384179)),_0xb235db['on'](_0x1c8dc1[_0x3237c1(0x1af)],(_0x3f026a,_0xc94e92)=>this[_0x3237c1(0x161)](_0x3f026a,_0xc94e92)),_0xb235db['on'](_0x1c8dc1[_0x3237c1(0x124)],_0x507e04=>{const _0x561174=_0x3237c1;logger['warn']({'event':_0x1c8dc1['Tikds'],'jobId':_0x507e04},_0x561174(0x1dd)+_0x507e04);}),_0xb235db['on'](_0x3237c1(0x111),_0x42adeb=>{const _0x3f2cfb=_0x3237c1;logger[_0x3f2cfb(0x111)]({'event':_0x1c8dc1[_0x3f2cfb(0x1b1)],'queue':_0x571f4e,'error':_0x42adeb['message']},'BullMQ\x20Worker\x20error\x20('+_0x571f4e+'):\x20'+_0x42adeb[_0x3f2cfb(0xfa)]);}),this[_0x3237c1(0x121)][_0x571f4e]=_0xb235db;}logger[_0x3237c1(0x1c9)]({'event':_0x1c8dc1[_0x3237c1(0x185)],'count':0x3,'concurrency':_0x54c359},_0x3237c1(0xfe)+_0x54c359+')');let _0x11e31e=0x0;for(const _0x2db26e of _0x579883){try{await this[_0x3237c1(0x106)](_0x2db26e),_0x11e31e++;}catch(_0x4a2600){logger[_0x3237c1(0x111)]({'event':_0x1c8dc1[_0x3237c1(0x1d6)],'name':_0x2db26e['name'],'error':_0x4a2600[_0x3237c1(0xfa)]},'Failed\x20to\x20register\x20job:\x20'+_0x2db26e[_0x3237c1(0x159)]+'\x20—\x20'+_0x4a2600['message']);}}this['initialized']=!![];const _0xad9908=this['connections']['length'];logger[_0x3237c1(0x1c9)]({'event':_0x1c8dc1['RzKFU'],'registeredJobs':_0x11e31e,'totalConfigs':_0x579883['length'],'redisConnections':_0xad9908},_0x3237c1(0x17d)+_0x11e31e+_0x3237c1(0x16c)+_0xad9908+_0x3237c1(0x181));}async['shutdown'](){const _0x5f432d=a0_0x3e2f79,_0x4eb835={'RqbKS':function(_0x3eccb8,_0x1ce2da,_0x2b931b){return _0x3eccb8(_0x1ce2da,_0x2b931b);},'MXrPm':_0x5f432d(0x15c)};if(!this[_0x5f432d(0x15f)])return;const _0x1cd988=_0x4eb835['RqbKS'](parseInt,process[_0x5f432d(0x164)]['JOB_SHUTDOWN_TIMEOUT'],0xa)||0x2710;logger['info']({'event':'job_manager_shutdown_start','timeoutMs':_0x1cd988},'Job\x20Manager\x20shutting\x20down\x20(timeout:\x20'+_0x1cd988+'ms)...');const _0x34c228=Object['values'](this[_0x5f432d(0x121)])[_0x5f432d(0x13a)](async _0x41bcdd=>{const _0x5f1a1a=_0x5f432d;try{await _0x41bcdd[_0x5f1a1a(0x14b)]();}catch(_0x2bb34e){}});await Promise['all'](_0x34c228);const _0x5f4293=Date[_0x5f432d(0x162)]();while(Date['now']()-_0x5f4293<_0x1cd988){let _0x1d9853=0x0;for(const _0x6b11aa of Object[_0x5f432d(0xfd)](this['queues'])){try{const _0x23e152=await _0x6b11aa['getJobCounts'](_0x4eb835['MXrPm']);_0x1d9853+=_0x23e152['active']||0x0;}catch(_0x4b0eba){}}if(_0x1d9853===0x0)break;await new Promise(_0x192243=>setTimeout(_0x192243,0x1f4));}const _0x5469fa=Object['values'](this['workers'])['map'](async _0xe841af=>{try{await _0xe841af['close']();}catch(_0x41b257){}});await Promise['all'](_0x5469fa);const _0x3d1418=Object['values'](this[_0x5f432d(0x1da)])['map'](async _0x8415ad=>{const _0x169fc2=_0x5f432d;try{await _0x8415ad[_0x169fc2(0x15d)]();}catch(_0x1c7d1a){}});await Promise['all'](_0x3d1418);for(const _0x2d189d of this[_0x5f432d(0x1bc)]){try{await _0x2d189d['quit']();}catch(_0x259e57){}}this[_0x5f432d(0x1da)]={},this['workers']={},this[_0x5f432d(0x1bc)]=[],await this['setAllJobsOffline'](),this['activeHistoryIds']['clear'](),this['initialized']=![],logger['info']({'event':'job_manager_shutdown_complete'},'Job\x20Manager\x20shutdown\x20complete');}['loadJobConfigs'](){const _0x35a899=a0_0x3e2f79,_0x2d2375={'ttocY':'payload','lQahE':'utf8'},_0x33f4d3=path[_0x35a899(0x176)](this['workingDir'],_0x2d2375['ttocY'],'jobs');if(!fs['existsSync'](_0x33f4d3))return logger['info']({'event':'job_config_dir_missing','path':_0x33f4d3},_0x35a899(0xe6)),[];const _0x362978=fs['readdirSync'](_0x33f4d3)['filter'](_0x43525c=>_0x43525c[_0x35a899(0xe3)]('.json')),_0x121b3a=[];for(const _0x37fadf of _0x362978){const _0x5805c4=path['join'](_0x33f4d3,_0x37fadf);try{const _0x4c0bd6=fs[_0x35a899(0x1ba)](_0x5805c4,_0x2d2375['lQahE']),_0xe1d9a2=JSON['parse'](_0x4c0bd6);_0xe1d9a2['_sourceFile']=_0x37fadf,_0x121b3a[_0x35a899(0x19b)](_0xe1d9a2);}catch(_0x107d38){logger[_0x35a899(0x111)]({'event':'job_config_parse_error','file':_0x37fadf,'error':_0x107d38[_0x35a899(0xfa)]},_0x35a899(0xf4)+_0x37fadf+_0x35a899(0x1a1)+_0x107d38['message']);}}return logger[_0x35a899(0x1c9)]({'event':'job_configs_loaded','count':_0x121b3a['length']},'Loaded\x20'+_0x121b3a['length']+_0x35a899(0x136)),_0x121b3a;}async[a0_0x3e2f79(0x106)](_0x2fd6f1){const _0x2d4eda=a0_0x3e2f79,_0x4843d3={'bGcCe':_0x2d4eda(0x12c),'FAaJC':function(_0x34ec2c,_0x38b1ed){return _0x34ec2c(_0x38b1ed);},'qmeuw':function(_0x21bbc6,_0x11a448){return _0x21bbc6===_0x11a448;},'rfqPD':_0x2d4eda(0xf1),'WsNWy':function(_0xc8e4a2,_0x3bd981){return _0xc8e4a2!==_0x3bd981;},'YRaSi':'default','GSVdk':function(_0xe92d78,_0x4108c6){return _0xe92d78!==_0x4108c6;},'qUTWz':_0x2d4eda(0x139),'EbBKY':_0x2d4eda(0x10d)},_0x4d70f0=path[_0x2d4eda(0x176)](this[_0x2d4eda(0x1e4)],_0x4843d3['bGcCe'],_0x2d4eda(0x183),_0x2fd6f1['handler']+_0x2d4eda(0x116));this[_0x2d4eda(0x19a)][_0x2fd6f1[_0x2d4eda(0x159)]]=_0x4843d3['FAaJC'](require,_0x4d70f0),this[_0x2d4eda(0x196)][_0x2fd6f1['name']]=_0x2fd6f1;if(_0x4843d3['qmeuw'](_0x2fd6f1[_0x2d4eda(0xf2)],_0x4843d3[_0x2d4eda(0x10f)])&&_0x4843d3['WsNWy'](_0x2fd6f1['enabled'],![])){const _0xb0855e=this[_0x2d4eda(0x1da)][_0x2fd6f1[_0x2d4eda(0x188)]||'default'];await _0xb0855e['upsertJobScheduler'](_0x2fd6f1['name'],{'pattern':_0x2fd6f1['schedule'],'tz':_0x2fd6f1[_0x2d4eda(0x15b)]||undefined},{'name':_0x2fd6f1[_0x2d4eda(0x159)],'data':{'handler':_0x2fd6f1[_0x2d4eda(0xeb)],'triggeredBy':_0x2d4eda(0xf1),'metadata':_0x2fd6f1[_0x2d4eda(0xe4)]||{}},'opts':{'attempts':_0x2fd6f1[_0x2d4eda(0x1de)]?.['maxAttempts']||0x3,'backoff':{'type':_0x2fd6f1['retry']?.['backoff']||_0x2d4eda(0x1eb),'delay':_0x2fd6f1['retry']?.[_0x2d4eda(0x175)]||0x1388},'timeout':_0x2fd6f1['timeout']||0x7530}}),logger['info']({'event':'cron_registered','name':_0x2fd6f1[_0x2d4eda(0x159)],'schedule':_0x2fd6f1['schedule'],'queue':_0x2fd6f1['queue']||_0x4843d3['YRaSi']},_0x2d4eda(0x1e3)+_0x2fd6f1['name']+'\x20['+_0x2fd6f1[_0x2d4eda(0x115)]+']');}const _0xb0a8ba=_0x2fd6f1['type']==='cron'&&_0x4843d3['GSVdk'](_0x2fd6f1['enabled'],![])?_0x4843d3['qUTWz']:_0x4843d3['EbBKY'];let _0x4123da=null;_0x4843d3['qmeuw'](_0xb0a8ba,_0x4843d3[_0x2d4eda(0xe7)])&&(_0x4123da=await this['getNextRunFromBullMQ'](_0x2fd6f1[_0x2d4eda(0x159)])),await this['upsertJobRegistry'](_0x2fd6f1,_0xb0a8ba,_0x4123da);}async[a0_0x3e2f79(0x1e8)](_0x23876e){const _0x19af03=a0_0x3e2f79,_0x38e45f={'UYhNE':function(_0x21b1e5,_0x388932){return _0x21b1e5+_0x388932;},'mDXWy':'unknown','bmzDY':function(_0x1fca56){return _0x1fca56();},'Sbkuv':_0x19af03(0xf9),'cpPTy':'delayed','GAcSW':function(_0x48f031,_0x294504){return _0x48f031===_0x294504;},'fVoMl':function(_0x4df3b6,_0x5052eb){return _0x4df3b6===_0x5052eb;},'xLZat':function(_0x424f68){return _0x424f68();},'edsPM':function(_0x3588dd,_0x3c3293){return _0x3588dd===_0x3c3293;},'BkqGn':_0x19af03(0x1d0),'geiOa':'onBeforeJobExecute','VMTrs':function(_0xa744b8,_0x50c00a){return _0xa744b8(_0x50c00a);}},_0x2f67ee=this[_0x19af03(0x196)][_0x23876e[_0x19af03(0x159)]],_0x4ace22=this['handlers'][_0x23876e[_0x19af03(0x159)]];if(!_0x4ace22)throw new Error(_0x19af03(0x1b9)+_0x23876e[_0x19af03(0x159)]);const _0x2df705=logger[_0x19af03(0x101)]({'jobId':_0x23876e['id'],'jobName':_0x23876e[_0x19af03(0x159)]});_0x2df705['info']({'event':'job_started','attempt':_0x38e45f[_0x19af03(0x1ee)](_0x23876e[_0x19af03(0x1ab)],0x1),'triggeredBy':_0x23876e[_0x19af03(0x1e9)]?.['triggeredBy']||_0x38e45f[_0x19af03(0x12d)]},'Job\x20started:\x20'+_0x23876e[_0x19af03(0x159)]+_0x19af03(0x1c7)+(_0x23876e[_0x19af03(0x1ab)]+0x1)+')');const _0x1a162e=_0x38e45f[_0x19af03(0x19c)](uuidv7),_0x4c6377=_0x23876e[_0x19af03(0x1e9)]?.['triggeredBy']||_0x38e45f['mDXWy'],_0x5951ea=this[_0x19af03(0x18c)]({'id':_0x1a162e,'jobName':_0x23876e['name'],'bullmqJobId':_0x23876e['id'],'triggerType':_0x4c6377===_0x38e45f['Sbkuv']?_0x38e45f['cpPTy']:_0x38e45f['GAcSW'](_0x4c6377,_0x19af03(0x12a))?_0x19af03(0x1b6):'cron','triggeredBy':_0x38e45f['fVoMl'](_0x4c6377,_0x19af03(0xf1))?'system':_0x4c6377,'queue':_0x2f67ee?.['queue']||_0x19af03(0x1b0),'attempt':_0x23876e['attemptsMade']+0x1,'configFile':_0x2f67ee?.[_0x19af03(0x194)]||null})['catch'](_0x390faa=>{const _0x392441=_0x19af03;_0x2df705[_0x392441(0x16e)]({'event':'job_history_insert_bg_error','error':_0x390faa[_0x392441(0xfa)]},_0x392441(0x10c)+_0x390faa['message']);});this['activeHistoryIds'][_0x19af03(0x138)](_0x23876e['id'],{'historyId':_0x1a162e,'insertPromise':_0x5951ea});const _0x8eeaa9=this['buildContext'](_0x23876e,_0x2f67ee,_0x2df705),_0x41fff4=_0x38e45f['xLZat'](getComponentEngine);if(_0x41fff4&&_0x38e45f[_0x19af03(0x1e5)](typeof _0x41fff4['executeEventHandlers'],_0x38e45f[_0x19af03(0x168)])){const _0x1470b4=await _0x41fff4[_0x19af03(0x158)](_0x38e45f[_0x19af03(0x1e7)],_0x8eeaa9,!![]);if(!_0x1470b4[_0x19af03(0xed)])throw new Error(_0x19af03(0x11e)+_0x1470b4[_0x19af03(0x111)]);}const _0x21299f=await _0x38e45f[_0x19af03(0x13f)](_0x4ace22,_0x8eeaa9);return _0x2df705['info']({'event':'job_handler_done','result':_0x21299f},'Job\x20handler\x20completed:\x20'+_0x23876e[_0x19af03(0x159)]),_0x21299f;}['buildContext'](_0x24351b,_0x4a6cf5,_0x43a9b2){const _0x62e169=a0_0x3e2f79,_0x205399={'kEclW':_0x62e169(0xe5),'lGdYS':function(_0x1b95fd,_0x5f2e19){return _0x1b95fd+_0x5f2e19;},'xzZPP':function(_0x202be1,_0x183548){return _0x202be1||_0x183548;}};return{'jobId':_0x24351b['id'],'jobName':_0x24351b['name'],'attempt':_0x205399[_0x62e169(0x11d)](_0x24351b[_0x62e169(0x1ab)],0x1),'maxAttempts':_0x4a6cf5?.[_0x62e169(0x1de)]?.['maxAttempts']||0x3,'payload':_0x24351b['data']||{},'config':_0x205399['xzZPP'](_0x4a6cf5,{}),'db':this['getDbUtils'](),'redis':this['getRedisClient'](),'logger':_0x43a9b2,'kafka':this[_0x62e169(0x1bd)](),'cache':this['getCacheManager'](),'updateProgress':async _0x4d6d05=>{const _0x5e9c9d=_0x62e169;await _0x24351b[_0x5e9c9d(0xde)](_0x4d6d05);},'emit':async(_0x4d146f,_0x47e598)=>{const _0x12f76a=_0x62e169,_0x8f2d61=this[_0x12f76a(0x1bd)]();_0x8f2d61&&await _0x8f2d61[_0x12f76a(0x1a5)](_0x4d146f,_0x205399[_0x12f76a(0x113)],null,_0x47e598,{'module':'job-scheduler','endpoint':_0x24351b['name']});},'job':_0x24351b};}['getDbType'](){const _0x183cda=a0_0x3e2f79,_0x43ac2f={'TFZTu':'postgresql'};return(process['env'][_0x183cda(0x15e)]||_0x43ac2f[_0x183cda(0x171)])['toLowerCase']();}async['ensureTables'](){const _0x2a9464=a0_0x3e2f79,_0x496493={'ESrpf':'job_db_unavailable','CGQDq':_0x2a9464(0x1ae),'ZfvlG':'job_db_type_unsupported','phjLk':'job_sql_not_found','KfDEX':'ora-00955','owWJs':'duplicate'},_0x3795be=this[_0x2a9464(0x134)]();if(!_0x3795be){logger['warn']({'event':_0x496493[_0x2a9464(0xf3)]},'Database\x20tidak\x20tersedia,\x20skip\x20auto-create\x20job\x20tables');return;}const _0x925141=this[_0x2a9464(0x1c3)](),_0x2d25f8={'postgresql':'postgresql.sql','oracle':_0x496493[_0x2a9464(0x1a3)],'mysql':_0x2a9464(0x189)},_0x2e36e6=_0x2d25f8[_0x925141];if(!_0x2e36e6){logger[_0x2a9464(0x16e)]({'event':_0x496493[_0x2a9464(0xea)],'dbType':_0x925141},_0x2a9464(0x105)+_0x925141+'\x27\x20tidak\x20didukung\x20untuk\x20job\x20monitoring\x20tables');return;}const _0x195627=path['join'](__dirname,_0x2a9464(0xf0),_0x2e36e6);if(!fs[_0x2a9464(0x133)](_0x195627)){logger[_0x2a9464(0x16e)]({'event':_0x496493[_0x2a9464(0x1bf)],'path':_0x195627},_0x2a9464(0x166)+_0x195627);return;}const _0x4641e1=fs['readFileSync'](_0x195627,_0x2a9464(0x131)),_0x5b56fb=this['splitSqlStatements'](_0x4641e1,_0x925141);let _0x187d60=0x0;for(const _0x23ccdf of _0x5b56fb){try{await _0x3795be[_0x2a9464(0x11b)](_0x23ccdf),_0x187d60++;}catch(_0xbe027c){const _0x4a4b83=(_0xbe027c['message']||'')['toLowerCase'](),_0x4c41b7=_0x4a4b83['includes']('already\x20exists')||_0x4a4b83['includes'](_0x496493['KfDEX'])||_0x4a4b83[_0x2a9464(0x157)](_0x496493[_0x2a9464(0xe2)]);!_0x4c41b7&&logger['warn']({'event':_0x2a9464(0x150),'error':_0xbe027c[_0x2a9464(0xfa)]},'Job\x20ensureTables\x20warning:\x20'+_0xbe027c[_0x2a9464(0xfa)]);}}logger['info']({'event':'job_tables_ensured','dbType':_0x925141,'executed':_0x187d60},'Job\x20monitoring\x20tables\x20ensured\x20('+_0x925141+')');}['splitSqlStatements'](_0x291ce3,_0x26ab8b){const _0x381465={'aBlnd':function(_0x49e640,_0xce593c){return _0x49e640===_0xce593c;},'HWPDy':function(_0x566c21,_0x3af412){return _0x566c21>_0x3af412;}};let _0xceabf;return _0x26ab8b==='oracle'?_0xceabf=_0x291ce3['split'](/\n\/\s*(?:\n|$)/):_0xceabf=_0x291ce3['split'](/;\s*(?:\n|$)/),_0xceabf['map'](_0x107c7a=>_0x107c7a['trim']())['filter'](_0xe7e978=>{const _0x12094f=a0_0x1aad;if(_0x381465['aBlnd'](_0xe7e978['length'],0x0))return![];const _0x5e25b0=_0xe7e978[_0x12094f(0x103)]('\x0a')['filter'](_0x23482b=>!_0x23482b[_0x12094f(0x129)]()['startsWith']('--')&&_0x23482b[_0x12094f(0x129)]()['length']>0x0);return _0x381465['HWPDy'](_0x5e25b0['length'],0x0);});}async[a0_0x3e2f79(0x1c5)](_0x4cc42d,_0xc1a1d='online',_0x21aea4=null){const _0x724dc=a0_0x3e2f79,_0x2cba37={'IXWZZ':_0x724dc(0x1eb),'iawxb':function(_0x1115d2,_0x54fcc2){return _0x1115d2===_0x54fcc2;}},_0x261f6b=this['getDbUtils']();if(!_0x261f6b)return;const _0x48adfc=this[_0x724dc(0x1c3)](),_0x5a6076=[_0x4cc42d[_0x724dc(0x159)],_0x4cc42d['description']||_0x4cc42d['name'],_0x4cc42d['type']||_0x724dc(0xf1),_0x4cc42d['schedule']||null,_0x4cc42d[_0x724dc(0x188)]||_0x724dc(0x1b0),_0x4cc42d[_0x724dc(0xeb)],_0x4cc42d['_sourceFile']||'',_0x4cc42d['timeout']||0x7530,_0x4cc42d[_0x724dc(0x1de)]?.['maxAttempts']||0x3,_0x4cc42d['retry']?.['backoff']||_0x2cba37[_0x724dc(0x12e)],_0xc1a1d,_0x21aea4];try{if(_0x48adfc===_0x724dc(0x144))await _0x261f6b[_0x724dc(0x11b)]('MERGE\x20INTO\x20job_registry\x20r\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20USING\x20(SELECT\x20:1\x20AS\x20jn\x20FROM\x20DUAL)\x20s\x20ON\x20(r.job_name\x20=\x20s.jn)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHEN\x20MATCHED\x20THEN\x20UPDATE\x20SET\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display_name\x20=\x20:2,\x20type\x20=\x20:3,\x20schedule\x20=\x20:4,\x20queue\x20=\x20:5,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20handler\x20=\x20:6,\x20config_file\x20=\x20:7,\x20timeout\x20=\x20:8,\x20retry_max\x20=\x20:9,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20retry_backoff\x20=\x20:10,\x20status\x20=\x20:11,\x20next_run_at\x20=\x20:12,\x20updated_at\x20=\x20SYSTIMESTAMP\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHEN\x20NOT\x20MATCHED\x20THEN\x20INSERT\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(job_name,\x20display_name,\x20type,\x20schedule,\x20queue,\x20handler,\x20config_file,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20timeout,\x20retry_max,\x20retry_backoff,\x20status,\x20next_run_at,\x20created_at,\x20updated_at)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(:1,\x20:2,\x20:3,\x20:4,\x20:5,\x20:6,\x20:7,\x20:8,\x20:9,\x20:10,\x20:11,\x20:12,\x20SYSTIMESTAMP,\x20SYSTIMESTAMP)',_0x5a6076);else _0x2cba37[_0x724dc(0x1a4)](_0x48adfc,_0x724dc(0x11c))?await _0x261f6b['executeQuery']('INSERT\x20INTO\x20job_registry\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(job_name,\x20display_name,\x20type,\x20schedule,\x20queue,\x20handler,\x20config_file,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20timeout,\x20retry_max,\x20retry_backoff,\x20status,\x20next_run_at,\x20created_at,\x20updated_at)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20NOW(),\x20NOW())\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20DUPLICATE\x20KEY\x20UPDATE\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display_name\x20=\x20VALUES(display_name),\x20type\x20=\x20VALUES(type),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20schedule\x20=\x20VALUES(schedule),\x20queue\x20=\x20VALUES(queue),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20handler\x20=\x20VALUES(handler),\x20config_file\x20=\x20VALUES(config_file),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20timeout\x20=\x20VALUES(timeout),\x20retry_max\x20=\x20VALUES(retry_max),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20retry_backoff\x20=\x20VALUES(retry_backoff),\x20status\x20=\x20VALUES(status),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20next_run_at\x20=\x20VALUES(next_run_at)',_0x5a6076):await _0x261f6b['executeQuery']('INSERT\x20INTO\x20job_registry\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(job_name,\x20display_name,\x20type,\x20schedule,\x20queue,\x20handler,\x20config_file,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20timeout,\x20retry_max,\x20retry_backoff,\x20status,\x20next_run_at,\x20created_at,\x20updated_at)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$5,\x20$6,\x20$7,\x20$8,\x20$9,\x20$10,\x20$11,\x20$12,\x20NOW(),\x20NOW())\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20CONFLICT\x20(job_name)\x20DO\x20UPDATE\x20SET\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display_name\x20=\x20EXCLUDED.display_name,\x20type\x20=\x20EXCLUDED.type,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20schedule\x20=\x20EXCLUDED.schedule,\x20queue\x20=\x20EXCLUDED.queue,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20handler\x20=\x20EXCLUDED.handler,\x20config_file\x20=\x20EXCLUDED.config_file,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20timeout\x20=\x20EXCLUDED.timeout,\x20retry_max\x20=\x20EXCLUDED.retry_max,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20retry_backoff\x20=\x20EXCLUDED.retry_backoff,\x20status\x20=\x20EXCLUDED.status,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20next_run_at\x20=\x20EXCLUDED.next_run_at,\x20updated_at\x20=\x20NOW()',_0x5a6076);}catch(_0x5e40d0){logger['warn']({'event':'job_registry_upsert_error','name':_0x4cc42d[_0x724dc(0x159)],'error':_0x5e40d0[_0x724dc(0xfa)]},_0x724dc(0x1a6)+_0x4cc42d[_0x724dc(0x159)]+_0x724dc(0x1a1)+_0x5e40d0['message']);}}async[a0_0x3e2f79(0x18c)](_0x45ae28){const _0x5b27eb=a0_0x3e2f79,_0x385a36={'gYNsU':'cron','hXaAe':function(_0x5a2778,_0x1f776d){return _0x5a2778===_0x1f776d;},'EPtfy':_0x5b27eb(0x11c),'iVFtF':_0x5b27eb(0x125)},_0x3f084d=this[_0x5b27eb(0x134)]();if(!_0x3f084d)return;const _0x3dbfa0=this['getDbType'](),_0x2dbfc4=[_0x45ae28['id'],_0x45ae28[_0x5b27eb(0x11f)],_0x45ae28['bullmqJobId']||null,_0x45ae28['triggerType']||_0x385a36[_0x5b27eb(0x16d)],_0x45ae28['triggeredBy']||'system',_0x45ae28['queue']||_0x5b27eb(0x1b0),_0x45ae28[_0x5b27eb(0x122)]||0x1,_0x45ae28[_0x5b27eb(0x13c)]||null,process[_0x5b27eb(0x1f5)]];try{if(_0x385a36['hXaAe'](_0x3dbfa0,_0x5b27eb(0x144)))await _0x3f084d['executeQuery']('INSERT\x20INTO\x20job_history\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(id,\x20job_name,\x20bullmq_job_id,\x20trigger_type,\x20triggered_by,\x20status,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20queue,\x20attempt,\x20config_file,\x20started_at,\x20worker_pid,\x20created_at)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(:1,\x20:2,\x20:3,\x20:4,\x20:5,\x20\x27running\x27,\x20:6,\x20:7,\x20:8,\x20SYSTIMESTAMP,\x20:9,\x20SYSTIMESTAMP)',_0x2dbfc4);else _0x3dbfa0===_0x385a36['EPtfy']?await _0x3f084d[_0x5b27eb(0x11b)](_0x5b27eb(0x172),_0x2dbfc4):await _0x3f084d['executeQuery'](_0x5b27eb(0x1b8),_0x2dbfc4);await this[_0x5b27eb(0x13e)](_0x45ae28['jobName'],'running');}catch(_0x116ec1){logger['warn']({'event':_0x385a36['iVFtF'],'jobName':_0x45ae28['jobName'],'error':_0x116ec1[_0x5b27eb(0xfa)]},'Failed\x20to\x20insert\x20job\x20history:\x20'+_0x116ec1['message']);}}async['updateJobHistoryCompleted'](_0x43cc5c,_0x56c92f,_0x323895){const _0x5aee66=a0_0x3e2f79,_0x24954c={'lcVeV':'mysql'},_0xf1e471=this[_0x5aee66(0x134)]();if(!_0xf1e471)return;const _0x37644b=this[_0x5aee66(0x1c3)](),_0x478133=_0x323895?String(_0x323895)[_0x5aee66(0x14a)](0x0,0x1f4):null;try{if(_0x37644b==='oracle')await _0xf1e471[_0x5aee66(0x11b)]('UPDATE\x20job_history\x20SET\x20status\x20=\x20\x27success\x27,\x20completed_at\x20=\x20SYSTIMESTAMP,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20duration_ms\x20=\x20:1,\x20progress\x20=\x20100,\x20result_summary\x20=\x20:2\x20WHERE\x20id\x20=\x20:3',[_0x56c92f,_0x478133,_0x43cc5c]);else _0x37644b===_0x24954c['lcVeV']?await _0xf1e471[_0x5aee66(0x11b)]('UPDATE\x20job_history\x20SET\x20status\x20=\x20\x27success\x27,\x20completed_at\x20=\x20NOW(),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20duration_ms\x20=\x20?,\x20progress\x20=\x20100,\x20result_summary\x20=\x20?\x20WHERE\x20id\x20=\x20?',[_0x56c92f,_0x478133,_0x43cc5c]):await _0xf1e471['executeQuery'](_0x5aee66(0x128),[_0x56c92f,_0x478133,_0x43cc5c]);}catch(_0x1b50b8){logger[_0x5aee66(0x16e)]({'event':'job_history_complete_error','historyId':_0x43cc5c,'error':_0x1b50b8[_0x5aee66(0xfa)]},'Failed\x20to\x20update\x20job\x20history\x20(completed):\x20'+_0x1b50b8[_0x5aee66(0xfa)]);}}async[a0_0x3e2f79(0x10a)](_0x5d9468,_0x2891f1,_0xbb1d07,_0x1671a5,_0x356f8e){const _0x1c9253=a0_0x3e2f79,_0x53157b={'UbgFv':function(_0xa2a2ba,_0x4a9dc3){return _0xa2a2ba===_0x4a9dc3;},'jhPIZ':'oracle','uRwsJ':function(_0x4a1265,_0x4bf10a){return _0x4a1265||_0x4bf10a;},'SPOcb':_0x1c9253(0x11c),'lifwM':_0x1c9253(0x167)},_0x2f8ce4=this[_0x1c9253(0x134)]();if(!_0x2f8ce4)return;const _0x32cdb5=this['getDbType'](),_0x540abd=_0x1671a5?String(_0x1671a5)[_0x1c9253(0x14a)](0x0,0x3e8):null,_0x20cabd=_0x356f8e?String(_0x356f8e)['substring'](0x0,0xfa0):null;try{if(_0x53157b['UbgFv'](_0x32cdb5,_0x53157b['jhPIZ']))await _0x2f8ce4[_0x1c9253(0x11b)]('UPDATE\x20job_history\x20SET\x20status\x20=\x20\x27failed\x27,\x20completed_at\x20=\x20SYSTIMESTAMP,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20duration_ms\x20=\x20:1,\x20progress\x20=\x20:2,\x20error_message\x20=\x20:3,\x20error_stack\x20=\x20:4\x20WHERE\x20id\x20=\x20:5',[_0x2891f1,_0x53157b[_0x1c9253(0x1df)](_0xbb1d07,0x0),_0x540abd,_0x20cabd,_0x5d9468]);else _0x32cdb5===_0x53157b['SPOcb']?await _0x2f8ce4[_0x1c9253(0x11b)](_0x1c9253(0x1a2),[_0x2891f1,_0x53157b['uRwsJ'](_0xbb1d07,0x0),_0x540abd,_0x20cabd,_0x5d9468]):await _0x2f8ce4[_0x1c9253(0x11b)]('UPDATE\x20job_history\x20SET\x20status\x20=\x20\x27failed\x27,\x20completed_at\x20=\x20NOW(),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20duration_ms\x20=\x20$1,\x20progress\x20=\x20$2,\x20error_message\x20=\x20$3,\x20error_stack\x20=\x20$4\x20WHERE\x20id\x20=\x20$5',[_0x2891f1,_0xbb1d07||0x0,_0x540abd,_0x20cabd,_0x5d9468]);}catch(_0x4432d3){logger[_0x1c9253(0x16e)]({'event':_0x53157b[_0x1c9253(0xe9)],'historyId':_0x5d9468,'error':_0x4432d3['message']},_0x1c9253(0x198)+_0x4432d3['message']);}}async[a0_0x3e2f79(0x13e)](_0x3b52b3,_0x2282af){const _0x5d95e3=a0_0x3e2f79,_0x11a33a={'SHiAT':_0x5d95e3(0x144)},_0x29c034=this[_0x5d95e3(0x134)]();if(!_0x29c034)return;const _0x3ca2e3=this[_0x5d95e3(0x1c3)]();try{if(_0x3ca2e3===_0x11a33a['SHiAT'])await _0x29c034[_0x5d95e3(0x11b)](_0x5d95e3(0x1ed),[_0x2282af,_0x3b52b3]);else _0x3ca2e3===_0x5d95e3(0x11c)?await _0x29c034[_0x5d95e3(0x11b)]('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20?,\x20last_run_at\x20=\x20NOW()\x20WHERE\x20job_name\x20=\x20?',[_0x2282af,_0x3b52b3]):await _0x29c034[_0x5d95e3(0x11b)](_0x5d95e3(0x132),[_0x2282af,_0x3b52b3]);}catch(_0x3ed47e){}}async[a0_0x3e2f79(0x1f4)](_0x369c7f,_0x25a9e2,_0x2114f8,_0x2dac57){const _0x1723b6=a0_0x3e2f79,_0x56d712={'IBimL':_0x1723b6(0xed),'gzmiV':_0x1723b6(0x1f7),'DAKIq':function(_0x17200a,_0x357b9d){return _0x17200a===_0x357b9d;},'eOyjX':function(_0x173163,_0x3d9be9){return _0x173163===_0x3d9be9;},'vYDTO':'mysql','CeRiC':_0x1723b6(0x1f1)},_0xa0e28f=this[_0x1723b6(0x134)]();if(!_0xa0e28f)return;const _0x454075=this['getDbType'](),_0x2f7786=_0x25a9e2===_0x56d712[_0x1723b6(0x1ef)]?_0x56d712['gzmiV']:'total_failed';try{if(_0x56d712[_0x1723b6(0x1d7)](_0x454075,_0x1723b6(0x144)))await _0xa0e28f['executeQuery']('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20:1,\x20last_duration_ms\x20=\x20:2,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x2f7786+_0x1723b6(0x1d5)+_0x2f7786+'\x20+\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20next_run_at\x20=\x20:3,\x20updated_at\x20=\x20SYSTIMESTAMP\x20WHERE\x20job_name\x20=\x20:4',[_0x25a9e2,_0x2114f8,_0x2dac57,_0x369c7f]);else _0x56d712['eOyjX'](_0x454075,_0x56d712[_0x1723b6(0x165)])?await _0xa0e28f['executeQuery'](_0x1723b6(0x1b5)+_0x2f7786+'\x20=\x20'+_0x2f7786+'\x20+\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20next_run_at\x20=\x20?\x20WHERE\x20job_name\x20=\x20?',[_0x25a9e2,_0x2114f8,_0x2dac57,_0x369c7f]):await _0xa0e28f['executeQuery']('UPDATE\x20job_registry\x20SET\x20last_status\x20=\x20$1,\x20last_duration_ms\x20=\x20$2,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x2f7786+'\x20=\x20'+_0x2f7786+'\x20+\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20next_run_at\x20=\x20$3,\x20updated_at\x20=\x20NOW()\x20WHERE\x20job_name\x20=\x20$4',[_0x25a9e2,_0x2114f8,_0x2dac57,_0x369c7f]);}catch(_0x32b30b){logger[_0x1723b6(0x16e)]({'event':_0x56d712[_0x1723b6(0x14d)],'jobName':_0x369c7f,'error':_0x32b30b[_0x1723b6(0xfa)]},'Failed\x20to\x20update\x20job\x20registry\x20counters:\x20'+_0x32b30b[_0x1723b6(0xfa)]);}}async['getNextRunFromBullMQ'](_0x52656f){const _0xe09e16=a0_0x3e2f79,_0x3857f1={'PJGVp':function(_0x1327a2,_0x28d848){return _0x1327a2!==_0x28d848;},'XOcmX':function(_0x167068,_0x53c8eb){return _0x167068===_0x53c8eb;},'nkvLq':'function'},_0x5ec65a=this[_0xe09e16(0x196)][_0x52656f];if(!_0x5ec65a||_0x3857f1[_0xe09e16(0x174)](_0x5ec65a['type'],_0xe09e16(0xf1))||_0x3857f1['XOcmX'](_0x5ec65a['enabled'],![]))return null;const _0x33f427=this['queues'][_0x5ec65a[_0xe09e16(0x188)]||_0xe09e16(0x1b0)];if(!_0x33f427)return null;try{if(typeof _0x33f427['getJobSchedulers']===_0x3857f1[_0xe09e16(0xf5)]){const _0x5c3450=await _0x33f427[_0xe09e16(0xe8)](0x0,0x64),_0x1149c5=_0x5c3450['find'](_0x4e0723=>_0x4e0723['name']===_0x52656f);return _0x1149c5?.[_0xe09e16(0x147)]?new Date(_0x1149c5['next']):null;}}catch(_0x6ead04){}return null;}async['setAllJobsOffline'](){const _0x2981a4=a0_0x3e2f79,_0x2238c5={'sptxO':function(_0x1cccf6,_0x2f4bb3){return _0x1cccf6===_0x2f4bb3;},'yvZEt':function(_0x2ab0b2,_0x57cda5){return _0x2ab0b2===_0x57cda5;},'YEYoD':_0x2981a4(0x11c)},_0x329ebd=this['getDbUtils']();if(!_0x329ebd)return;const _0x58a4d9=this['getDbType']();try{if(_0x2238c5[_0x2981a4(0x184)](_0x58a4d9,'oracle'))await _0x329ebd[_0x2981a4(0x11b)](_0x2981a4(0x140));else _0x2238c5['yvZEt'](_0x58a4d9,_0x2238c5[_0x2981a4(0x1e1)])?await _0x329ebd[_0x2981a4(0x11b)]('UPDATE\x20job_registry\x20SET\x20status\x20=\x20\x27offline\x27,\x20next_run_at\x20=\x20NULL'):await _0x329ebd[_0x2981a4(0x11b)]('UPDATE\x20job_registry\x20SET\x20status\x20=\x20\x27offline\x27,\x20next_run_at\x20=\x20NULL,\x20updated_at\x20=\x20NOW()');}catch(_0x1ee373){logger[_0x2981a4(0x16e)]({'event':_0x2981a4(0x13d),'error':_0x1ee373[_0x2981a4(0xfa)]},_0x2981a4(0x1f2)+_0x1ee373['message']);}}[a0_0x3e2f79(0x134)](){const _0x33f2ac=a0_0x3e2f79,_0xa60137={'fCBus':'postgresql','GkZOx':function(_0x22dff6,_0x3385d9){return _0x22dff6===_0x3385d9;},'KeEOU':_0x33f2ac(0xdf),'SPFxt':'db_oracle_unavailable','Dphgu':'Oracle\x20DB\x20module\x20not\x20available','ErDAl':function(_0x3dbdb1,_0x2da247){return _0x3dbdb1(_0x2da247);},'jeYMs':function(_0x12cc93,_0xc0af53){return _0x12cc93(_0xc0af53);},'Bwcuf':_0x33f2ac(0x197)},_0x2ea8bd=(process['env'][_0x33f2ac(0x15e)]||_0xa60137['fCBus'])['toLowerCase']();if(_0xa60137[_0x33f2ac(0x1b2)](_0x2ea8bd,'oracle'))try{const _0x25e58d=require(_0xa60137['KeEOU']);return{'executeQuery':(_0x4cbbca,_0x54e630)=>_0x25e58d['executeQuery'](_0x4cbbca,_0x54e630),'executeTransaction':_0x2ee39f=>_0x25e58d['executeTransaction'](_0x2ee39f),'getPool':()=>_0x25e58d['getPool']()};}catch(_0x41246a){return logger[_0x33f2ac(0x16e)]({'event':_0xa60137[_0x33f2ac(0x1d4)]},_0xa60137['Dphgu']),null;}if(_0x2ea8bd==='mysql')try{const _0x55c3cd=_0xa60137['ErDAl'](require,_0x33f2ac(0xe0));return{'executeQuery':(_0x1fc9c7,_0x16e2d8)=>_0x55c3cd['executeQuery'](_0x1fc9c7,_0x16e2d8),'executeTransaction':_0x24782b=>_0x55c3cd['executeTransaction'](_0x24782b),'getPool':()=>_0x55c3cd[_0x33f2ac(0x1a9)]()};}catch(_0x36c89e){return logger['warn']({'event':'db_mysql_unavailable'},_0x33f2ac(0x1db)),null;}try{const _0x3f1f2f=_0xa60137['jeYMs'](require,'../../utils/db');return{'executeQuery':_0x3f1f2f[_0x33f2ac(0x11b)],'executeTransaction':_0x3f1f2f[_0x33f2ac(0x191)],'getPool':_0x3f1f2f[_0x33f2ac(0x1a9)]};}catch(_0x30527c){return logger['warn']({'event':_0xa60137[_0x33f2ac(0x190)]},'PostgreSQL\x20DB\x20module\x20not\x20available'),null;}}[a0_0x3e2f79(0x1c2)](){const _0x2fff0d=a0_0x3e2f79;try{const _0x6d63e3=require('../../utils/redis-client');return _0x6d63e3[_0x2fff0d(0x156)]?_0x6d63e3['getClient']():_0x6d63e3;}catch(_0x36603c){return null;}}['getKafkaService'](){const _0x1eaf63=a0_0x3e2f79,_0xa594b0={'efekd':'true'};try{if(process['env']['KAFKA_ENABLED']===_0xa594b0[_0x1eaf63(0x19e)]){const _0x4ce5ae=require(_0x1eaf63(0x1bb));return _0x4ce5ae['getInstance']?_0x4ce5ae['getInstance']():_0x4ce5ae;}}catch(_0xbc4769){}return null;}[a0_0x3e2f79(0x14c)](){const _0x281d5f=a0_0x3e2f79,_0x3eea9c={'yUDyl':_0x281d5f(0x12f)};try{return require(_0x3eea9c[_0x281d5f(0x104)]);}catch(_0x294914){return null;}}async['dispatch'](_0x1aa7d9,_0x505b19={}){const _0x27886d=a0_0x3e2f79,_0x5405ff={'qtUSk':_0x27886d(0x1eb),'OGNPS':'api'},_0x59c690=this['jobConfigs'][_0x1aa7d9];if(!_0x59c690)throw new Error(_0x27886d(0x18b)+_0x1aa7d9);const _0x496643=this[_0x27886d(0x1da)][_0x59c690['queue']||_0x27886d(0x1b0)],_0x5c54c0=await _0x496643[_0x27886d(0x1c0)](_0x1aa7d9,{..._0x505b19,'handler':_0x59c690[_0x27886d(0xeb)],'triggeredBy':_0x27886d(0x12a)},{'attempts':_0x59c690['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x59c690['retry']?.[_0x27886d(0x186)]||_0x5405ff['qtUSk'],'delay':_0x59c690[_0x27886d(0x1de)]?.[_0x27886d(0x175)]||0x1388},'timeout':_0x59c690[_0x27886d(0x18e)]||0x7530});return logger['info']({'event':_0x27886d(0x1e0),'jobId':_0x5c54c0['id'],'name':_0x1aa7d9,'triggeredBy':_0x5405ff[_0x27886d(0xef)]},'Job\x20dispatched:\x20'+_0x1aa7d9+_0x27886d(0x10e)+_0x5c54c0['id']+')'),{'jobId':_0x5c54c0['id'],'name':_0x1aa7d9};}async['dispatchDelayed'](_0x37c48f,_0x4ef5df={},_0x5a99f3=0x0){const _0x5a7392=a0_0x3e2f79,_0x1bf54d={'KaCNI':'default','fdwRC':_0x5a7392(0xf9)},_0x25b826=this['jobConfigs'][_0x37c48f];if(!_0x25b826)throw new Error(_0x5a7392(0x18b)+_0x37c48f);const _0x48719a=this[_0x5a7392(0x1da)][_0x25b826['queue']||_0x1bf54d['KaCNI']],_0x10c99b=await _0x48719a[_0x5a7392(0x1c0)](_0x37c48f,{..._0x4ef5df,'handler':_0x25b826[_0x5a7392(0xeb)],'triggeredBy':_0x1bf54d['fdwRC']},{'delay':_0x5a99f3,'attempts':_0x25b826['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x25b826['retry']?.['backoff']||_0x5a7392(0x1eb),'delay':_0x25b826['retry']?.['initialDelay']||0x1388},'timeout':_0x25b826[_0x5a7392(0x18e)]||0x7530});return logger[_0x5a7392(0x1c9)]({'event':'job_dispatched_delayed','jobId':_0x10c99b['id'],'name':_0x37c48f,'delayMs':_0x5a99f3},_0x5a7392(0x18f)+_0x5a99f3+_0x5a7392(0x170)+_0x37c48f+_0x5a7392(0x10e)+_0x10c99b['id']+')'),{'jobId':_0x10c99b['id'],'name':_0x37c48f};}async['getJobStatus'](_0x23d105){const _0x3d0066=a0_0x3e2f79;for(const _0x5389aa of Object[_0x3d0066(0xfd)](this['queues'])){const _0x2dda33=await _0x5389aa['getJob'](_0x23d105);if(_0x2dda33){const _0x5a6180=await _0x2dda33['getState']();return{'jobId':_0x2dda33['id'],'name':_0x2dda33[_0x3d0066(0x159)],'state':_0x5a6180,'progress':_0x2dda33[_0x3d0066(0x18d)],'attemptsMade':_0x2dda33['attemptsMade'],'failedReason':_0x2dda33['failedReason'],'returnvalue':_0x2dda33[_0x3d0066(0xfc)],'data':_0x2dda33['data'],'timestamps':{'created':_0x2dda33[_0x3d0066(0x137)],'started':_0x2dda33['processedOn'],'completed':_0x2dda33['finishedOn']}};}}return null;}[a0_0x3e2f79(0x126)](){const _0x30bdf2=a0_0x3e2f79;return Object[_0x30bdf2(0xfd)](this['jobConfigs'])[_0x30bdf2(0x13a)](_0xb7bf56=>({'name':_0xb7bf56[_0x30bdf2(0x159)],'description':_0xb7bf56[_0x30bdf2(0x151)]||'','type':_0xb7bf56[_0x30bdf2(0xf2)],'schedule':_0xb7bf56[_0x30bdf2(0x115)],'handler':_0xb7bf56[_0x30bdf2(0xeb)],'enabled':_0xb7bf56[_0x30bdf2(0x1a7)]!==![],'queue':_0xb7bf56[_0x30bdf2(0x188)]||_0x30bdf2(0x1b0),'timeout':_0xb7bf56['timeout']||0x7530,'retry':_0xb7bf56[_0x30bdf2(0x1de)]||{'maxAttempts':0x3,'backoff':_0x30bdf2(0x1eb),'initialDelay':0x1388},'metadata':_0xb7bf56['metadata']||{}}));}async[a0_0x3e2f79(0x1c6)](){const _0x1d913a=a0_0x3e2f79,_0x2e8d5b={'FeDpo':_0x1d913a(0x15c)},_0x380ec4=[];for(const [_0x14282b,_0xcc0989]of Object[_0x1d913a(0x1d2)](this[_0x1d913a(0x1da)])){const _0x4b4504=await _0xcc0989[_0x1d913a(0x1d9)]([_0x2e8d5b[_0x1d913a(0x14e)]]);for(const _0x51ec1b of _0x4b4504){_0x380ec4[_0x1d913a(0x19b)]({'jobId':_0x51ec1b['id'],'name':_0x51ec1b[_0x1d913a(0x159)],'queue':_0x14282b,'progress':_0x51ec1b['progress'],'attemptsMade':_0x51ec1b['attemptsMade'],'startedAt':_0x51ec1b['processedOn']});}}return _0x380ec4;}async[a0_0x3e2f79(0x119)](_0x1590f5={}){const _0x5291a0=a0_0x3e2f79,_0x162974={'VQiDi':_0x5291a0(0x18a),'cFXlp':_0x5291a0(0x102)},_0x5b1e8d=parseInt(_0x1590f5['page'],0xa)||0x1,_0x32b1b9=Math[_0x5291a0(0x192)](parseInt(_0x1590f5['limit'],0xa)||0x14,0x64),_0x4eb0e7=(_0x5b1e8d-0x1)*_0x32b1b9,_0x212c14=_0x4eb0e7+_0x32b1b9-0x1,_0x53fab2=[];for(const [_0x239f8c,_0x5c6fcf]of Object[_0x5291a0(0x1d2)](this[_0x5291a0(0x1da)])){const _0x4f0bd7=await _0x5c6fcf[_0x5291a0(0x1d9)]([_0x162974['VQiDi']],_0x4eb0e7,_0x212c14),_0x645b84=await _0x5c6fcf[_0x5291a0(0x1d9)]([_0x162974[_0x5291a0(0x107)]],_0x4eb0e7,_0x212c14);for(const _0x1a0980 of[..._0x4f0bd7,..._0x645b84]){const _0x9c066d=await _0x1a0980[_0x5291a0(0x169)]();_0x53fab2[_0x5291a0(0x19b)]({'jobId':_0x1a0980['id'],'name':_0x1a0980[_0x5291a0(0x159)],'state':_0x9c066d,'queue':_0x239f8c,'attemptsMade':_0x1a0980[_0x5291a0(0x1ab)],'failedReason':_0x1a0980[_0x5291a0(0x135)],'returnvalue':_0x1a0980['returnvalue'],'timestamps':{'created':_0x1a0980[_0x5291a0(0x137)],'started':_0x1a0980['processedOn'],'completed':_0x1a0980['finishedOn']}});}}return _0x53fab2[_0x5291a0(0x180)]((_0x1587e8,_0x39bb47)=>(_0x39bb47[_0x5291a0(0xf7)]['created']||0x0)-(_0x1587e8[_0x5291a0(0xf7)]['created']||0x0)),{'jobs':_0x53fab2['slice'](0x0,_0x32b1b9),'total':_0x53fab2['length'],'page':_0x5b1e8d,'limit':_0x32b1b9};}async['cancelJob'](_0x87e51e){const _0x2ab304=a0_0x3e2f79,_0x2d96e2={'HBdmC':_0x2ab304(0x15c),'dwwHe':function(_0x5459d4,_0x34328d){return _0x5459d4===_0x34328d;},'xQPBJ':_0x2ab304(0xfb)};for(const _0x17fba8 of Object['values'](this[_0x2ab304(0x1da)])){const _0x616d46=await _0x17fba8['getJob'](_0x87e51e);if(_0x616d46){const _0x5b387b=await _0x616d46[_0x2ab304(0x169)]();if(_0x5b387b===_0x2d96e2['HBdmC'])return await _0x616d46['moveToFailed'](new Error(_0x2ab304(0x13b)),'api-cancel',!![]),{'success':!![],'message':_0x2ab304(0x11a)+_0x87e51e+_0x2ab304(0x108)};if(_0x2d96e2[_0x2ab304(0x15a)](_0x5b387b,_0x2d96e2['xQPBJ'])||_0x5b387b===_0x2ab304(0x1ce))return await _0x616d46['remove'](),{'success':!![],'message':'Job\x20'+_0x87e51e+_0x2ab304(0x1cb)+_0x5b387b+')'};return{'success':![],'message':'Job\x20'+_0x87e51e+'\x20tidak\x20bisa\x20di-cancel\x20(state:\x20'+_0x5b387b+')'};}}return{'success':![],'message':_0x2ab304(0x11a)+_0x87e51e+'\x20tidak\x20ditemukan'};}async[a0_0x3e2f79(0xdd)](){const _0x2cb806=a0_0x3e2f79,_0x42381d={'CFpGj':_0x2cb806(0x15c),'oaYnG':'completed','ieMuG':'failed','kOUQr':'waiting'},_0x346c22={};for(const [_0x1d54f1,_0xd04610]of Object[_0x2cb806(0x1d2)](this[_0x2cb806(0x1da)])){try{const _0x12b083=await _0xd04610['getJobCounts'](_0x42381d[_0x2cb806(0x1cd)],_0x42381d['oaYnG'],_0x2cb806(0x1ce),_0x42381d[_0x2cb806(0x149)],'paused',_0x42381d[_0x2cb806(0x17c)]);_0x346c22[_0x1d54f1]=_0x12b083;}catch(_0x342d02){_0x346c22[_0x1d54f1]={'error':_0x342d02[_0x2cb806(0xfa)]};}}const _0x3a4b21={};for(const [_0x38f2ce,_0x1a2d41]of Object['entries'](this['workers'])){_0x3a4b21[_0x38f2ce]={'running':_0x1a2d41[_0x2cb806(0x1f8)](),'paused':_0x1a2d41['isPaused']()};}return{'initialized':this['initialized'],'registeredJobs':Object['keys'](this[_0x2cb806(0x196)])[_0x2cb806(0x123)],'redisConnections':this[_0x2cb806(0x1bc)]['length'],'queues':_0x346c22,'workers':_0x3a4b21};}async['onJobCompleted'](_0x785373,_0xe484f6){const _0x1f4e19=a0_0x3e2f79,_0x26c973={'GCTiH':_0x1f4e19(0x187),'Tdiuw':function(_0x508499,_0x22ba37){return _0x508499-_0x22ba37;},'OJtBN':function(_0x2f6699,_0x279615){return _0x2f6699===_0x279615;},'izMiS':_0x1f4e19(0x1d0),'FLsDV':'onAfterJobComplete','IIndG':_0x1f4e19(0x1aa)},_0x3f1996=logger['child']({'jobId':_0x785373['id'],'jobName':_0x785373['name']});_0x3f1996[_0x1f4e19(0x1c9)]({'event':_0x26c973[_0x1f4e19(0x1c8)],'attemptsMade':_0x785373['attemptsMade'],'duration':_0x785373['finishedOn']?_0x785373['finishedOn']-_0x785373['processedOn']:null},_0x1f4e19(0x195)+_0x785373[_0x1f4e19(0x159)]);const _0x3ed3a0=this['activeHistoryIds']['get'](_0x785373['id']);if(_0x3ed3a0){if(_0x3ed3a0['insertPromise'])await _0x3ed3a0['insertPromise'];const _0x35ccc1=_0x785373['finishedOn']&&_0x785373['processedOn']?_0x26c973[_0x1f4e19(0x1cc)](_0x785373['finishedOn'],_0x785373[_0x1f4e19(0x17e)]):null,_0x28d2da=_0x26c973[_0x1f4e19(0x109)](typeof _0xe484f6,'string')?_0xe484f6:_0xe484f6?JSON['stringify'](_0xe484f6)[_0x1f4e19(0x14a)](0x0,0x1f4):null;await this['updateJobHistoryCompleted'](_0x3ed3a0[_0x1f4e19(0x17b)],_0x35ccc1,_0x28d2da);const _0x4895e4=await this[_0x1f4e19(0x100)](_0x785373[_0x1f4e19(0x159)]);await this[_0x1f4e19(0x1f4)](_0x785373['name'],'success',_0x35ccc1,_0x4895e4),this[_0x1f4e19(0x1ad)]['delete'](_0x785373['id']);}const _0x3a782c=getComponentEngine();if(_0x3a782c&&typeof _0x3a782c['executeEventHandlers']===_0x26c973['izMiS']){const _0x181aba={'jobId':_0x785373['id'],'jobName':_0x785373[_0x1f4e19(0x159)],'result':_0xe484f6,'config':this['jobConfigs'][_0x785373[_0x1f4e19(0x159)]]||{}};_0x3a782c[_0x1f4e19(0x158)](_0x26c973[_0x1f4e19(0x14f)],_0x181aba,![])[_0x1f4e19(0x155)](_0x19397f=>{const _0x3b7803=_0x1f4e19;_0x3f1996[_0x3b7803(0x16e)]({'event':'after_job_complete_hook_error','error':_0x19397f[_0x3b7803(0xfa)]},'onAfterJobComplete\x20handler\x20error\x20(non-blocking)');});}const _0x6cd9c8=this['getKafkaService']();if(_0x6cd9c8)try{await _0x6cd9c8[_0x1f4e19(0x1a5)]('restforge.jobs.completed','JOB_COMPLETED',null,{'jobId':_0x785373['id'],'name':_0x785373[_0x1f4e19(0x159)],'result':_0xe484f6},{'module':'job-scheduler','endpoint':_0x785373[_0x1f4e19(0x159)]});}catch(_0x5aea33){_0x3f1996['warn']({'event':'job_kafka_publish_error','error':_0x5aea33['message']},_0x26c973[_0x1f4e19(0x120)]);}}async[a0_0x3e2f79(0x154)](_0x5d33e9,_0x5815d2){const _0x502d62=a0_0x3e2f79,_0x136d5a={'mZsEk':_0x502d62(0xd8),'wVJWh':'job_failed','sAWex':function(_0x47b519,_0x1f4ba8){return _0x47b519<_0x1f4ba8;},'pFBLr':function(_0x4af0f2,_0x5be3e9){return _0x4af0f2-_0x5be3e9;},'ZKXdv':function(_0x3fc15b){return _0x3fc15b();},'kWewQ':_0x502d62(0x1d0),'pvKCk':'job-scheduler'},_0x235422=logger[_0x502d62(0x101)]({'jobId':_0x5d33e9['id'],'jobName':_0x5d33e9[_0x502d62(0x159)]});_0x235422[_0x502d62(0x111)]({'event':_0x136d5a['wVJWh'],'attemptsMade':_0x5d33e9['attemptsMade'],'failedReason':_0x5815d2?.['message'],'willRetry':_0x136d5a[_0x502d62(0x117)](_0x5d33e9[_0x502d62(0x1ab)],this[_0x502d62(0x196)][_0x5d33e9['name']]?.[_0x502d62(0x1de)]?.[_0x502d62(0x17a)]||0x3)},'Job\x20failed:\x20'+_0x5d33e9['name']+'\x20—\x20'+_0x5815d2?.[_0x502d62(0xfa)]);const _0x55a1d6=this['activeHistoryIds']['get'](_0x5d33e9['id']);if(_0x55a1d6){if(_0x55a1d6['insertPromise'])await _0x55a1d6[_0x502d62(0x178)];const _0x364ebc=_0x5d33e9[_0x502d62(0x1a0)]&&_0x5d33e9['processedOn']?_0x136d5a['pFBLr'](_0x5d33e9['finishedOn'],_0x5d33e9['processedOn']):null;await this['updateJobHistoryFailed'](_0x55a1d6['historyId'],_0x364ebc,_0x5d33e9['progress'],_0x5815d2?.[_0x502d62(0xfa)],_0x5815d2?.['stack']);const _0x21835d=await this['getNextRunFromBullMQ'](_0x5d33e9[_0x502d62(0x159)]);await this['updateRegistryCounters'](_0x5d33e9['name'],_0x502d62(0x102),_0x364ebc,_0x21835d),this['activeHistoryIds'][_0x502d62(0x19f)](_0x5d33e9['id']);}const _0x219f84=_0x136d5a['ZKXdv'](getComponentEngine);if(_0x219f84&&typeof _0x219f84[_0x502d62(0x158)]===_0x136d5a['kWewQ']){const _0x554bb1={'jobId':_0x5d33e9['id'],'jobName':_0x5d33e9[_0x502d62(0x159)],'error':_0x5815d2?.[_0x502d62(0xfa)],'attemptsMade':_0x5d33e9['attemptsMade'],'config':this['jobConfigs'][_0x5d33e9[_0x502d62(0x159)]]||{}};_0x219f84['executeEventHandlers'](_0x502d62(0x118),_0x554bb1,![])[_0x502d62(0x155)](_0x5646e8=>{const _0x41665d=_0x502d62;_0x235422[_0x41665d(0x16e)]({'event':_0x136d5a['mZsEk'],'error':_0x5646e8[_0x41665d(0xfa)]},_0x41665d(0x110));});}const _0x21cbbe=this['getKafkaService']();if(_0x21cbbe)try{await _0x21cbbe[_0x502d62(0x1a5)]('restforge.jobs.failed','JOB_FAILED',null,{'jobId':_0x5d33e9['id'],'name':_0x5d33e9['name'],'error':_0x5815d2?.[_0x502d62(0xfa)],'attemptsMade':_0x5d33e9['attemptsMade']},{'module':_0x136d5a[_0x502d62(0xf8)],'endpoint':_0x5d33e9['name']});}catch(_0x35eb55){_0x235422['warn']({'event':'job_kafka_publish_error','error':_0x35eb55[_0x502d62(0xfa)]},'Failed\x20to\x20publish\x20JOB_FAILED\x20to\x20Kafka');}}['onJobProgress'](_0x40f93f,_0x530cea){const _0x3df307=a0_0x3e2f79;logger['debug']({'event':_0x3df307(0x152),'jobId':_0x40f93f['id'],'jobName':_0x40f93f[_0x3df307(0x159)],'progress':_0x530cea},'Job\x20progress:\x20'+_0x40f93f[_0x3df307(0x159)]+_0x3df307(0x1a1)+_0x530cea+'%');}}module['exports']=new JobManager();
|
|
1
|
+
const a0_0x1b568a=a0_0x1e6b;(function(_0x935de9,_0x243904){const _0x47fa5e=a0_0x1e6b,_0x4362d6=_0x935de9();while(!![]){try{const _0x270af4=-parseInt(_0x47fa5e(0x1da))/0x1*(parseInt(_0x47fa5e(0x1cd))/0x2)+-parseInt(_0x47fa5e(0x11e))/0x3+parseInt(_0x47fa5e(0xc4))/0x4*(parseInt(_0x47fa5e(0x195))/0x5)+parseInt(_0x47fa5e(0x1ce))/0x6*(parseInt(_0x47fa5e(0x13f))/0x7)+parseInt(_0x47fa5e(0x1a1))/0x8+-parseInt(_0x47fa5e(0x121))/0x9*(-parseInt(_0x47fa5e(0x1ba))/0xa)+-parseInt(_0x47fa5e(0x171))/0xb;if(_0x270af4===_0x243904)break;else _0x4362d6['push'](_0x4362d6['shift']());}catch(_0x269515){_0x4362d6['push'](_0x4362d6['shift']());}}}(a0_0x51c0,0xd6b1a));const {Queue,Worker}=require('bullmq'),Redis=require(a0_0x1b568a(0x1ad)),crypto=require('crypto'),{v7:uuidv7}=require('uuid'),fs=require('fs'),path=require('path'),{logger}=require('../../utils/logger'),jobValidator=require(a0_0x1b568a(0xd0));let componentEngine=null;function a0_0x1e6b(_0x2a1ab3,_0xacb7a7){_0x2a1ab3=_0x2a1ab3-0xb1;const _0x51c013=a0_0x51c0();let _0x1e6ba6=_0x51c013[_0x2a1ab3];if(a0_0x1e6b['Nfezlq']===undefined){var _0x4052bc=function(_0x2eb355){const _0x275a7f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x140b98='',_0x23cde3='';for(let _0x80487=0x0,_0xb34f23,_0x528bb2,_0x59a2d7=0x0;_0x528bb2=_0x2eb355['charAt'](_0x59a2d7++);~_0x528bb2&&(_0xb34f23=_0x80487%0x4?_0xb34f23*0x40+_0x528bb2:_0x528bb2,_0x80487++%0x4)?_0x140b98+=String['fromCharCode'](0xff&_0xb34f23>>(-0x2*_0x80487&0x6)):0x0){_0x528bb2=_0x275a7f['indexOf'](_0x528bb2);}for(let _0x5771ec=0x0,_0x4d4f8a=_0x140b98['length'];_0x5771ec<_0x4d4f8a;_0x5771ec++){_0x23cde3+='%'+('00'+_0x140b98['charCodeAt'](_0x5771ec)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x23cde3);};a0_0x1e6b['IQVReE']=_0x4052bc,a0_0x1e6b['FHjrrI']={},a0_0x1e6b['Nfezlq']=!![];}const _0x4fc55a=_0x51c013[0x0],_0x480f97=_0x2a1ab3+_0x4fc55a,_0x46d6dc=a0_0x1e6b['FHjrrI'][_0x480f97];return!_0x46d6dc?(_0x1e6ba6=a0_0x1e6b['IQVReE'](_0x1e6ba6),a0_0x1e6b['FHjrrI'][_0x480f97]=_0x1e6ba6):_0x1e6ba6=_0x46d6dc,_0x1e6ba6;}function getComponentEngine(){const _0x51cbef=a0_0x1b568a,_0x1b985a={'dhbgT':function(_0x21e858,_0x3183f1){return _0x21e858(_0x3183f1);},'tqnvc':_0x51cbef(0x10b)};if(!componentEngine)try{const _0x5f0ffc=_0x1b985a[_0x51cbef(0x162)](require,_0x1b985a['tqnvc']);componentEngine=_0x5f0ffc[_0x51cbef(0x11c)]||_0x5f0ffc;}catch(_0x40fe87){}return componentEngine;}function a0_0x51c0(){const _0x2ae384=['y29UzMLNrMLSzq','AM9Iq29UzMLNCW','A2v5CW','z2v0sM9ICW','rM5KCgS','icSGmsWkicaGicaGicaGicbUzxH0x3j1BL9HDca9id8Gv0HfuKuGAM9Ix25HBwuGpsa/','vhHpvNO','BuzIAMi','rxrqCKm','sM9Iia','BxLZCwWUC3fS','DxbKyxrLuMvNAxn0CNLdB3vUDgvYCW','rMfPBgvKihrVihvWzgf0zsbQB2iGAgLZDg9YEsaOzMfPBgvKktOG','zw50CMLLCW','BgLZDfj1BM5PBMC','B0fVz0G','id0G','oMPVyG','sM9IignHBMnLBgXLzcb2AweGqvbj','ywn0AxzLsgLZDg9YEuLKCW','CMPAAM4','AM9PBG','z2v0sM9Iu3rHDhvZ','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteWSihvWzgf0zwrFyxqGpsbot1COkq','BMfTzq','qxjQA24','C3bSAxq','zgHIz1q','yxr0zw1WDhnnywrL','u1rlBvq','AM9Ix3nXBf9UB3rFzM91BMq','AM9Ix3jLz2LZDhj5x29MzMXPBMvFzxjYB3i','CxvLDwvZ','Dw5RBM93BG','AgLNAa','z2v0rgjuExbL','z2v0s2fMA2ftzxj2AwnL','DgLTzxn0yw1W','zgvMyxvSDa','BwfUDwfS','B2zMBgLUzq','sM9Iie1HBMfNzxiGCMvHzhK6ia','mJG1otKXmNnMtKLPEq','B25bzNrLCKPVyKzHAwXLzcbOyw5KBgvYigvYCM9YicHUB24TyMXVy2TPBMCP','sM9IigzHAwXLzdOG','DgLTzw91Da','z2v0ug9VBa','C3vJy2vZCW','u1fmihnJCMLWDcb0AwrHAYbKAxrLBxvRyw46ia','Aw5PDgLHBgL6zwq','sM9Iie1HBMfNzxiGC2H1DhrPBMCGzg93BIaODgLTzw91DdOG','qNvSBe1rifjLzgLZignVBM5Ly3rPB24GzxjYB3i6ia','zxHWB3j0CW','z2v0','DxbZzxj0sM9Iu2nOzwr1BgvY','uvbZzxy','zgjFCgDFDw5HDMfPBgfIBgu','yNvSBg1XsM9Iswq','ywrK','wvnvz2e','zgvSzxrL','z2v0sw5ZDgfUy2u','shzUyvK','s0fgs0fFru5bqKXfra','AM9Ix3jLzgLZx2nVBM5Ly3rLza','wfrmwe0','AM9Ix2nVBMzPz19WyxjZzv9LCNjVCG','sM9Iig1VBML0B3jPBMCGDgfIBgvZigvUC3vYzwqGka','Aw5MBW','CMvZDgzVCMDLlMPVyNmUy29TCgXLDgvK','rgncAgS','zgLZCgf0y2HezwXHEwvK','CMv0CNK','ywXYzwfKEsbLEgLZDhm','zxHLy3v0zvrYyw5Zywn0Aw9U','uKXnEM8','C3rHy2S','u1Pyshy','ntbTyunyu2q','B3jHy2XL','sK9cx1jfvevoveLptL9it1vsuW','AgfUzgXLCG','ywjsEMC','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','qNvSBe1rifjLzgLZignVBM5Ly3rPB24GDMvYAwzPzwq','sM9IihrPzgfRigrPDgvTDwTHBJOG','AM9Ix21HBMfNzxjFAw5PDf9ZDgfYDa','D2fPDgLUzW','C3rHBgXLza','CvPJr3q','nde5oduXmM9iuKLYEa','vgHjre0','yNvSBg1Xx3DVCMTLCL9LCNjVCG','iokaLca','DxbKyxrLuMvNAxn0CNLtDgf0Dxm','ChvIBgLZAev2zw50','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsaKmsWGBgfZDf9YDw5FyxqGpsbot1COksWkicaGicaGicaGicb1CgrHDgvKx2f0id0GtK9xkcKGv0HfuKuGAM9Ix25HBwuGpsaKmG','Aw5Zzxj0sM9IsgLZDg9YEq','AM9Ix3jLz2LZDhj5x2nVDw50zxjFzxjYB3i','DhLWzq','zxjYB3i','ywn0AxzL','Aw9YzwrPCW','DhjPBq','B25SAw5L','lIbeqIbTB25PDg9YAw5NigrPC2fIBgvKlG','ChjVz3jLC3m','AM9Ix2THzMTHx3b1yMXPC2HFzxjYB3i','z09TvwG','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticG/lca/lca/lca/lca/lcaNCNvUBMLUzYCSid8Sid8Sid8Sie5pvYGPlca/lcbot1COksK','AM9Ix3jLz2LZDgvYx2zHAwXLza','icSGmsWkicaGicaGicaGicbUzxH0x3j1BL9HDca9icqZlcb1CgrHDgvKx2f0id0GtK9xkcKGv0HfuKuGAM9Ix25HBwuGpsaKna','sM9IigvUC3vYzvrHyMXLCYb3yxjUAw5NoIa','D1bICMq','Bwv0ywrHDge','mJGWr3HoA0nA','Aw5PDgLHBgL6zq','yxbPlwnHBMnLBa','rMfPBgvKihrVihbHCNnLigPVyIbJB25MAwC6ia','B25kB2jgywLSzwq','AgfUzgXLCNm','y3jVBG','y3jLyxrLqNvSBe1rq29UBMvJDgLVBG','sM9Iihn0yxj0zwq6ia','BwfW','lI4VlI4VDxrPBhmVzgiTBxLZCwW','ChjVy2vZC2vKt24','vfjlAKu','B3jHy2XLlNnXBa','zffZvKq','AK9NsMW','z2v0rgjvDgLSCW','Dg90ywXFzMfPBgvK','sM9IihbYB2DYzxnZoIa','mJiYqvPpCxPi','mtqXndGZmgXxrw1qsq','AhDjB3i','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa6msWGBgfZDf9YDw5FyxqGpsbtwvnusu1fu1rbtvaScIaGicaGicaGicaGDxbKyxrLzf9HDca9ifnzu1rjtuvtvefnucbxsevsrsbQB2jFBMfTzsa9idOY','C3vIC3rYAw5N','zxjYB3jZ','CMv0DxjUDMfSDwu','y3jLyxrLza','B25czwzVCMvkB2jfEgvJDxrL','AM9Ix2rIx3r5CgvFDw5ZDxbWB3j0zwq','z2v0q2fJAgvnyw5Hz2vY','wMXRzfe','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ifnzu1rjtuvtvefnucWkicaGicaGicaGicbKDxjHDgLVBL9TCYa9idOXlcbWCM9NCMvZCYa9ideWmcWGCMvZDwX0x3n1Bw1HCNKGpsa6mIbxsevsrsbPzca9idOZ','mZaYmuvHr3PMvW','Dun5C3m','B25bzNrLCKPVyKnVBxbSzxrL','zwXby2S','zMLUAxnOzwrpBG','uKvesvnFueftu1DpuKq','zgjFB3jHy2XLx3vUyxzHAwXHyMXL','rKjlvxa','yu50rfu','yLrHANe','De9hve4','uhHcrM8','C3rHCNrZv2L0Aa','wuTZBMW','ChvZAa','Dg9mB3DLCKnHC2u','tuvsr0uGsu5utYbQB2jFCMvNAxn0CNKGCGOGicaGicaGicaGifvtsu5hicHtruXfq1qGoJeGqvmGAM4GrLjptsbevufmksbZie9oicHYlMPVyL9Uyw1Lid0GCY5QBIKkicaGicaGicaGicbxsevoie1bveniruqGveHftIbvuerbveuGu0vucIaGicaGicaGicaGicbKAxnWBgf5x25HBwuGpsa6mIWGDhLWzsa9idOZlcbZy2HLzhvSzsa9idO0lcbXDwv1zsa9idO1laOGicaGicaGicaGicaGAgfUzgXLCIa9idO2lcbJB25MAwDFzMLSzsa9idO3lcb0Aw1LB3v0id0GoJGSihjLDhj5x21HEca9idO5laOGicaGicaGicaGicaGCMv0CNLFyMfJA29MzIa9idOXmcWGC3rHDhvZid0GoJeXlcbUzxH0x3j1BL9HDca9idOXmIWGDxbKyxrLzf9HDca9ifnzu1rjtuvtvefnuaOGicaGicaGicaGifDiru4GtK9uie1bveniruqGveHftIbjtLnfuLqkicaGicaGicaGicaGicHQB2jFBMfTzsWGzgLZCgXHEv9Uyw1Llcb0ExbLlcbZy2HLzhvSzsWGCxvLDwuSigHHBMrSzxiSignVBMzPz19MAwXLlaOGicaGicaGicaGicaGihrPBwvVDxqSihjLDhj5x21HEcWGCMv0CNLFyMfJA29MzIWGC3rHDhvZlcbUzxH0x3j1BL9HDcWGy3jLyxrLzf9HDcWGDxbKyxrLzf9HDcKkicaGicaGicaGicbwquXvrvmGkdOXlca6mIWGoJmSidO0lca6nsWGoJySidO3lca6ocWGoJKSidOXmcWGoJeXlca6mtiSifnzu1rjtuvtvefnucWGu1LtveLnrvnuqu1qkq','D1HNEKW','B25bzNrLCKPVyKnVBxbSzxrLigHHBMrSzxiGzxjYB3iGkg5VBI1IBg9JA2LUzYK','vvbeqvrfigPVyL9OAxn0B3j5ifnfvcbZDgf0DxmGpsaNC3vJy2vZCYCSignVBxbSzxrLzf9HDca9ie5pvYGPlaOGicaGicaGicaGigr1CMf0Aw9Ux21Zid0GpYWGChjVz3jLC3mGpsaXmdaSihjLC3vSDf9ZDw1Tyxj5id0GpYbxsevsrsbPzca9id8','rMfPBgvKihrVigLUC2vYDcbQB2iGAgLZDg9YEtOG','BM93','rejFvfLqrsaN','BwvZC2fNzq','CMvNAxn0zxjkB2i','DMfSDwvZ','vK9ACgm','vuvqs28','Aw5PDgLHBerLBgf5','zMfPBgvK','yxbP','rMfPBgvKihrVihjLz2LZDgvYigPVyJOG','AM9IlxnJAgvKDwXLCG','mZe3mZm2CMHZwMDI','u0jlAhy','nxWYFdb8nNWZFdf8n3W0','Cw11BKu','zMLSDgvY','yxr0zw1WDa','AxnsDw5UAw5N','AM9Ix21HBMfNzxjFC2H1DgrVD25FC3rHCNq','AM9Ix2vUC3vYzv90ywjSzxnFD2fYBG','D29YA2vYCW','sNfUy0O','DxbZzxj0sM9IuMvNAxn0CNK','lI9QB2iTDMfSAwrHDg9Y','z2v0uMvKAxndBgLLBNq','tvnpz2q','CxvLDwu','zw5HyMXLza','AM9ICW','zw52','B05Wy2G','AgLZDg9YEuLK','C3rYAw5NAwz5','CgLUzW','DgLTzxn0yw1WCW','B2vSzKy','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteW','sMnKrM4','C29YDa','t3b2EKG','qMfJA2DYB3vUzcbPBNnLCNqGAM9IigHPC3rVCNKGzMfPBgvKoIa','yNvPBgrdB250zxH0','ywXS','AM9Ix3f1zxvLC19JCMvHDgvK','sK9cx1nuquXmrurFsu5urvjwquW','Dg90ywXFC3vJy2vZCW','icSGmsWkicaGicaGicaGicbUzxH0x3j1BL9HDca9idOZlcb1CgrHDgvKx2f0id0Gu1LtveLnrvnuqu1qifDirvjfigPVyL9Uyw1Lid0GoJq','AM9Ix3jLz2LZDhj5x3vWC2vYDf9LCNjVCG','AMnNsva','Bwf4qxr0zw1WDhm','uMvKAxmGy29UBMvJDgLVBIbMywLSzwq6ia','rMfPBgvKihrVihb1yMXPC2GGsK9cx0nptvbmrvrfrcb0BYblywzRyq','y2HPBgq','BxLZCwW','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa/lcbSyxn0x3j1BL9HDca9ie5pvYGPifDirvjfigPVyL9Uyw1Lid0GpW','yxbPlwrLBgf5zwq','y29TCgXLDgvK','qNvSBe1rifDVCMTLCIbLCNjVCIaO','y2rvrMW','zNvUy3rPB24','z2v0tMv4Dfj1BKzYB21cDwXStve','rMfPBgvKihrVihvWzgf0zsbQB2iGCMvNAxn0CNKGy291BNrLCNm6ia','uKvesvnFrei','CMvHzezPBgvtEw5J','ihrPzgfRigrPDgvTDwTHBG','yMfJA29MzG','CxvPDa','Dxb1qNi','zxHWB25LBNrPywW','z2v0sM9Iq291BNrZ','Bg9lvvm','v3rtvxe','y29UBMvJDgLVBNm','AM9Ix2HPC3rVCNLFzMfPBgvKx2vYCM9Y','zwHMsNm','zgvSyxLLza','EvPYExO','C3rYAw5N','z2v0q2XPzw50','zxHLy3v0zuv2zw50sgfUzgXLCNm','yNvSBg1Xx3jLzgLZx2vYCM9Y','BwLU','lI4VlI4VDxrPBhmVy29TCg9Uzw50lwvUz2LUzq','AM9Ix21HBMfNzxjFywXYzwfKEv9PBML0AwfSAxPLza','qKD4rK8','zMLUza','ChjVy2vZC0PVyG','z2v0u3rHDgu','shHwuMW','BgvUz3rO','CfryyKe','BxmPlI4U','DhjPz2DLCMvKqNK','C3LZDgvT','y3DK','zMfPBgvKuMvHC29U','DxbKyxrLuhjVz3jLC3m','Bg93','CfDYyue','y29TCg9Uzw50rw5NAw5L','rgXfrfC','mZG3mtKYown2Du5pBW','jYb0AwrHAYbKAwr1A3vUzYb1BNr1AYbQB2iGBw9UAxrVCMLUzYb0ywjSzxm','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGC3rHDhvZid0Gj29MzMXPBMuNlcbUzxH0x3j1BL9HDca9ie5vteWSihvWzgf0zwrFyxqGpsbtwvnusu1fu1rbtva','mta0mdrhAKvntNO','mYbcDwXStveGv29YA2vYCYbJCMvHDgvKicHJB25JDxjYzw5JEtOG','EKv4rgq','su5trvjuieLove8GAM9Ix2HPC3rVCNKkicaGicaGicaGicaOAwqSigPVyL9Uyw1LlcbIDwXSBxfFAM9Ix2LKlcb0CMLNz2vYx3r5CguSihrYAwDNzxjLzf9IEsWGC3rHDhvZlaOGicaGicaGicaGicbXDwv1zsWGyxr0zw1WDcWGy29UzMLNx2zPBguSihn0yxj0zwrFyxqSihDVCMTLCL9WAwqSignYzwf0zwrFyxqPcIaGicaGicaGicaGvKfmvuvticG6msWGoJiSidOZlca6ncWGoJuSicDYDw5UAw5NjYWGoJySidO3lca6ocWGu1LtveLnrvnuqu1qlca6osWGu1LtveLnrvnuqu1qkq','CMy6','C2nOzwr1Bgu','rMfPBgvKihrVihvWzgf0zsbQB2iGAgLZDg9YEsaOy29TCgXLDgvKktOG','C3bSAxrtCwXtDgf0zw1LBNrZ','BMv4Da','lI4VlI4VC2vYDMLJzxmVA2fMA2ftzxj2AwnL','Auvcq20','zgvZy3jPChrPB24','igPVyIHZksbYzwDPC3rLCMvKlca','D2fYBG','ywz0zxjFAM9Ix2nVBxbSzxrLx2HVB2TFzxjYB3i','t1bJwgS','sM9Iie1HBMfNzxiGC2H1DgrVD24Gy29TCgXLDgu','B25kB2jdB21WBgv0zwq','reTbsNG','Aw5Zzxj0uhjVBwLZzq','s09xuwS','AM9ItMfTzq','vvbeqvrfigPVyL9YzwDPC3rYEsbtrvqGBgfZDf9ZDgf0DxmGpsa/lcbSyxn0x2r1CMf0Aw9Ux21Zid0GpYWkicaGicaGicaGica','Bg9TBwm','sK9cx1nivvret1Dox1rjtuvpvvq','zuTyseK','igPVyIbJB25MAwCOCYKGzNjVBsbWyxLSB2fKl2PVyNmV','x3nVDxjJzuzPBgu','z2v0sM9I','t3jHy2XLiercig1VzhvSzsbUB3qGyxzHAwXHyMXL','ndjwywfTq0u','Bg9HzePVyKnVBMzPz3m','su1iANe','sM9Iihn0ywXSzwq6ia','AM9Ix2rPC3bHDgnOzwq','D0TPEg8','zxHLy3v0zvf1zxj5','Cg9ZDgDYzxnXBa'];a0_0x51c0=function(){return _0x2ae384;};return a0_0x51c0();}class JobManager{constructor(){const _0x506c7a=a0_0x1b568a,_0x2f4003=_0x506c7a(0xc6)[_0x506c7a(0x161)]('|');let _0x458d3a=0x0;while(!![]){switch(_0x2f4003[_0x458d3a++]){case'0':this[_0x506c7a(0x148)]={};continue;case'1':this[_0x506c7a(0x178)]=![];continue;case'2':this['workers']={};continue;case'3':this['connections']=[];continue;case'4':this[_0x506c7a(0x15a)]=new Map();continue;case'5':this[_0x506c7a(0x167)]={};continue;case'6':this['handlers']={};continue;case'7':this['workingDir']=process[_0x506c7a(0x117)]();continue;}break;}}[a0_0x1b568a(0x1c1)](){const _0x5bf1c5=a0_0x1b568a,_0x53c053={'LMNXT':_0x5bf1c5(0x109),'elAck':'localhost','zYYvI':function(_0x1c0ee7,_0x5e7aec,_0x5b24a5){return _0x1c0ee7(_0x5e7aec,_0x5b24a5);}},_0x126eef=new Redis({'host':process['env']['REDIS_HOST']||_0x53c053[_0x5bf1c5(0x1dd)],'port':parseInt(process['env']['REDIS_PORT'],0xa)||0x18ec,'password':process[_0x5bf1c5(0xd6)][_0x5bf1c5(0x1df)]||undefined,'db':_0x53c053['zYYvI'](parseInt,process['env'][_0x5bf1c5(0xf7)],0xa)||0x0,'maxRetriesPerRequest':null,'retryStrategy'(_0xe01dfd){const _0x97ab03=Math['min'](_0xe01dfd*0x32,0x7d0);return _0x97ab03;}});return _0x126eef['on'](_0x5bf1c5(0x1ab),_0xb3b7ee=>{const _0x4f4b0a=_0x5bf1c5;logger['error']({'event':_0x53c053['LMNXT'],'error':_0xb3b7ee[_0x4f4b0a(0xba)]},_0x4f4b0a(0x17a)+_0xb3b7ee['message']);}),this['connections']['push'](_0x126eef),_0x126eef;}async[a0_0x1b568a(0x1bb)](){const _0x485fd3=a0_0x1b568a,_0x33cc7b={'ZziUK':'job_stalled','oAogH':_0x485fd3(0x10c),'PFvje':_0x485fd3(0x19d),'bTajq':'Initializing\x20Job\x20Manager...','VRhbx':_0x485fd3(0x19b),'rjZjn':'job_ensure_tables_error','IMHjq':'job_no_configs','QPASW':'Tidak\x20ada\x20job\x20config\x20ditemukan\x20di\x20payload/jobs/.\x20Job\x20Manager\x20aktif\x20tanpa\x20cron.','SWYhP':'unknown','wPbrd':'default','TRKjE':function(_0x3377f3,_0x4c60cb,_0x47cf1d){return _0x3377f3(_0x4c60cb,_0x47cf1d);},'TQJTb':function(_0x109a70,_0x3f371f){return _0x109a70*_0x3f371f;},'PxBFo':function(_0x323dc0,_0x5255a4){return _0x323dc0*_0x5255a4;},'YElPD':_0x485fd3(0xe4),'ZpDiB':function(_0x11062c,_0xfc7f45,_0x16ce53){return _0x11062c(_0xfc7f45,_0x16ce53);},'YxOBN':_0x485fd3(0xc0),'zzffz':_0x485fd3(0x1b1),'yZryz':_0x485fd3(0x19f),'oNpch':_0x485fd3(0x1ab),'wXgzL':'job_workers_created'};if(this['initialized']){logger[_0x485fd3(0x12e)]({'event':_0x33cc7b[_0x485fd3(0x156)]},'Job\x20Manager\x20sudah\x20diinisialisasi,\x20skip');return;}logger['info']({'event':_0x33cc7b['PFvje']},_0x33cc7b[_0x485fd3(0x1e3)]);const _0x163dcb=this['createBullMQConnection']();try{await _0x163dcb[_0x485fd3(0xda)](),logger[_0x485fd3(0x18b)]({'event':_0x485fd3(0x187)},_0x33cc7b['VRhbx']);}catch(_0x33f386){logger['error']({'event':'job_redis_failed','error':_0x33f386['message']},_0x485fd3(0xeb)+_0x33f386[_0x485fd3(0xba)]+'.\x20Job\x20Scheduler\x20tidak\x20akan\x20aktif.');try{await _0x163dcb[_0x485fd3(0xfb)]();}catch(_0xa7e707){}this['connections']=this[_0x485fd3(0x101)]['filter'](_0x2b4bda=>_0x2b4bda!==_0x163dcb);return;}try{await _0x163dcb['quit']();}catch(_0x436bcd){}this[_0x485fd3(0x101)]=this['connections']['filter'](_0x42052a=>_0x42052a!==_0x163dcb);try{await this['ensureTables']();}catch(_0x4f68ac){logger['warn']({'event':_0x33cc7b[_0x485fd3(0x15b)],'error':_0x4f68ac[_0x485fd3(0xba)]},'Failed\x20to\x20ensure\x20job\x20tables:\x20'+_0x4f68ac[_0x485fd3(0xba)]+_0x485fd3(0x1b0));}const _0x16e099=this['loadJobConfigs']();_0x16e099['length']===0x0&&logger[_0x485fd3(0x18b)]({'event':_0x33cc7b[_0x485fd3(0x141)]},_0x33cc7b['QPASW']);const _0x5f0a4d=[];for(const _0x18fb18 of _0x16e099){const _0x295309=jobValidator['validateConfig'](_0x18fb18,this['workingDir']);_0x295309['valid']?_0x5f0a4d['push'](_0x18fb18):logger['error']({'event':'job_config_invalid','name':_0x18fb18[_0x485fd3(0x15f)]||_0x485fd3(0x168),'errors':_0x295309['errors']},'Job\x20config\x20invalid:\x20'+(_0x18fb18['name']||_0x33cc7b['SWYhP'])+_0x485fd3(0x1a4)+_0x295309[_0x485fd3(0x1d2)][_0x485fd3(0x15c)](';\x20'));}const _0x3783ba=process['env'][_0x485fd3(0x19a)]||_0x33cc7b[_0x485fd3(0x1b8)],_0x5bbea2=process[_0x485fd3(0xd6)]['JOB_REDIS_PREFIX']||_0x485fd3(0x125)+_0x3783ba+_0x485fd3(0x158),_0x2ea9c1=_0x33cc7b[_0x485fd3(0x1c6)](parseInt,process[_0x485fd3(0xd6)][_0x485fd3(0x197)],0xa)||0x48,_0x4d30c7=_0x33cc7b[_0x485fd3(0x1c6)](parseInt,process[_0x485fd3(0xd6)]['JOB_FAILED_RETENTION_HOURS'],0xa)||0xa8,_0xb2e7b3={'removeOnComplete':{'age':_0x33cc7b['TQJTb'](_0x2ea9c1,0xe10)},'removeOnFail':{'age':_0x33cc7b[_0x485fd3(0x1e5)](_0x4d30c7,0xe10)}},_0x3da72a={'high-priority':_0x485fd3(0x169),'default':_0x485fd3(0x16d),'low-priority':_0x485fd3(0x11a)};for(const [_0x26fe24,_0x743abc]of Object['entries'](_0x3da72a)){this['queues'][_0x26fe24]=new Queue(_0x743abc,{'connection':this[_0x485fd3(0x1c1)](),'prefix':_0x5bbea2,'defaultJobOptions':_0xb2e7b3});}logger[_0x485fd3(0x18b)]({'event':_0x33cc7b['YElPD'],'count':0x3},'3\x20BullMQ\x20Queues\x20created\x20(high,\x20default,\x20low)');const _0x4da85b=_0x33cc7b['ZpDiB'](parseInt,process['env']['JOB_CONCURRENCY'],0xa)||0x5,_0x3daa7b=parseInt(process['env'][_0x485fd3(0xe5)],0xa)||0x7530,_0x30999d=_0x33cc7b['ZpDiB'](parseInt,process[_0x485fd3(0xd6)]['JOB_MAX_STALLED_COUNT'],0xa)||0x2;for(const [_0x347a30,_0x36dda2]of Object['entries'](_0x3da72a)){const _0xc4a1d6=new Worker(_0x36dda2,async _0x4519e3=>this[_0x485fd3(0x10f)](_0x4519e3),{'connection':this['createBullMQConnection'](),'prefix':_0x5bbea2,'concurrency':_0x4da85b,'stalledInterval':_0x3daa7b,'maxStalledCount':_0x30999d});_0xc4a1d6['on']('completed',(_0x379fcb,_0x9b6b86)=>this[_0x485fd3(0x132)](_0x379fcb,_0x9b6b86)),_0xc4a1d6['on'](_0x33cc7b['YxOBN'],(_0x15d640,_0x2c2ff3)=>this[_0x485fd3(0x1be)](_0x15d640,_0x2c2ff3)),_0xc4a1d6['on'](_0x33cc7b['zzffz'],(_0x4aba15,_0x1cc65c)=>this['onJobProgress'](_0x4aba15,_0x1cc65c)),_0xc4a1d6['on'](_0x33cc7b[_0x485fd3(0x105)],_0x3e190f=>{const _0x5f3c20=_0x485fd3;logger['warn']({'event':_0x33cc7b['ZziUK'],'jobId':_0x3e190f},_0x5f3c20(0x142)+_0x3e190f);}),_0xc4a1d6['on'](_0x33cc7b[_0x485fd3(0xd7)],_0x1bf1de=>{const _0x9fc3e=_0x485fd3;logger[_0x9fc3e(0x1ab)]({'event':_0x9fc3e(0x1a3),'queue':_0x347a30,'error':_0x1bf1de['message']},_0x9fc3e(0xf2)+_0x347a30+'):\x20'+_0x1bf1de[_0x9fc3e(0xba)]);}),this[_0x485fd3(0xcd)][_0x347a30]=_0xc4a1d6;}logger['info']({'event':_0x33cc7b[_0x485fd3(0xb4)],'count':0x3,'concurrency':_0x4da85b},_0x485fd3(0x122)+_0x4da85b+')');let _0x15a2ea=0x0;for(const _0x1cb15d of _0x5f0a4d){try{await this[_0x485fd3(0xbb)](_0x1cb15d),_0x15a2ea++;}catch(_0x209268){logger[_0x485fd3(0x1ab)]({'event':_0x485fd3(0x1b5),'name':_0x1cb15d['name'],'error':_0x209268['message']},_0x485fd3(0xc2)+_0x1cb15d[_0x485fd3(0x15f)]+'\x20—\x20'+_0x209268[_0x485fd3(0xba)]);}}this[_0x485fd3(0x178)]=!![];const _0x550573=this['connections'][_0x485fd3(0x112)];logger[_0x485fd3(0x18b)]({'event':'job_manager_ready','registeredJobs':_0x15a2ea,'totalConfigs':_0x5f0a4d[_0x485fd3(0x112)],'redisConnections':_0x550573},_0x485fd3(0x170)+_0x15a2ea+_0x485fd3(0x12d)+_0x550573+'\x20Redis\x20connections');}async['shutdown'](){const _0x281041=a0_0x1b568a,_0x2f4104={'mqgkc':function(_0x522b23,_0x5de14c,_0x16906e){return _0x522b23(_0x5de14c,_0x16906e);},'LabaD':function(_0x350f97,_0x25ac78){return _0x350f97<_0x25ac78;},'hwIor':function(_0x3ee207,_0x218bd9){return _0x3ee207-_0x218bd9;}};if(!this['initialized'])return;const _0x43cd8c=_0x2f4104['mqgkc'](parseInt,process[_0x281041(0xd6)][_0x281041(0x139)],0xa)||0x2710;logger[_0x281041(0x18b)]({'event':_0x281041(0xcb),'timeoutMs':_0x43cd8c},_0x281041(0x179)+_0x43cd8c+_0x281041(0x114));const _0xcf8e1c=Object['values'](this[_0x281041(0xcd)])['map'](async _0x802449=>{try{await _0x802449['pause']();}catch(_0x50bf1b){}});await Promise[_0x281041(0xe3)](_0xcf8e1c);const _0x1e0f57=Date['now']();while(_0x2f4104['LabaD'](_0x2f4104[_0x281041(0x1cf)](Date[_0x281041(0xb8)](),_0x1e0f57),_0x43cd8c)){let _0x51f7d0=0x0;for(const _0x1d525e of Object[_0x281041(0xbc)](this[_0x281041(0x167)])){try{const _0x3bdfbd=await _0x1d525e[_0x281041(0xfe)]('active');_0x51f7d0+=_0x3bdfbd[_0x281041(0x1ac)]||0x0;}catch(_0x2dc89b){}}if(_0x51f7d0===0x0)break;await new Promise(_0x5d3266=>setTimeout(_0x5d3266,0x1f4));}const _0x33ac01=Object[_0x281041(0xbc)](this[_0x281041(0xcd)])['map'](async _0x16875e=>{try{await _0x16875e['close']();}catch(_0x471748){}});await Promise['all'](_0x33ac01);const _0x39759b=Object[_0x281041(0xbc)](this['queues'])[_0x281041(0x1c3)](async _0x4cceb7=>{try{await _0x4cceb7['close']();}catch(_0x265a7e){}});await Promise['all'](_0x39759b);for(const _0x14d35d of this[_0x281041(0x101)]){try{await _0x14d35d['quit']();}catch(_0x333c32){}}this['queues']={},this[_0x281041(0xcd)]={},this['connections']=[],await this['setAllJobsOffline'](),this['activeHistoryIds']['clear'](),this[_0x281041(0x178)]=![],logger[_0x281041(0x18b)]({'event':'job_manager_shutdown_complete'},_0x281041(0x131));}[a0_0x1b568a(0x140)](){const _0x51246b=a0_0x1b568a,_0x48304d={'QWnvQ':_0x51246b(0xd5),'wFGLg':'job_configs_loaded'},_0x2b0ce8=path['join'](this['workingDir'],'payload',_0x48304d['QWnvQ']);if(!fs['existsSync'](_0x2b0ce8))return logger['info']({'event':'job_config_dir_missing','path':_0x2b0ce8},'Folder\x20payload/jobs/\x20tidak\x20ditemukan'),[];const _0x175a3b=fs['readdirSync'](_0x2b0ce8)['filter'](_0x26b1ed=>_0x26b1ed['endsWith']('.json')),_0x130219=[];for(const _0x1fb2cc of _0x175a3b){const _0x3cb3a8=path['join'](_0x2b0ce8,_0x1fb2cc);try{const _0x151b1d=fs[_0x51246b(0xf8)](_0x3cb3a8,'utf8'),_0x2a7777=JSON['parse'](_0x151b1d);_0x2a7777[_0x51246b(0x13c)]=_0x1fb2cc,_0x130219[_0x51246b(0xb1)](_0x2a7777);}catch(_0x3a85bb){logger[_0x51246b(0x1ab)]({'event':_0x51246b(0x189),'file':_0x1fb2cc,'error':_0x3a85bb['message']},_0x51246b(0x1bd)+_0x1fb2cc+'\x20—\x20'+_0x3a85bb['message']);}}return logger[_0x51246b(0x18b)]({'event':_0x48304d['wFGLg'],'count':_0x130219[_0x51246b(0x112)]},'Loaded\x20'+_0x130219['length']+_0x51246b(0x13b)),_0x130219;}async[a0_0x1b568a(0xbb)](_0x11f9ab){const _0x390f08=a0_0x1b568a,_0x54f1a4={'fIDNO':'jobs','dEadN':function(_0x469d39,_0x526c3c){return _0x469d39(_0x526c3c);},'DKAJx':function(_0x23ca9d,_0x4f725e){return _0x23ca9d===_0x4f725e;},'oelfF':function(_0x527218,_0x5e756b){return _0x527218!==_0x5e756b;},'qZcGt':_0x390f08(0x1c0),'ZdpDb':_0x390f08(0x16d),'fSTrX':_0x390f08(0x16f),'OpvzH':function(_0x2003c3,_0x262331){return _0x2003c3===_0x262331;}},_0x12f211=path[_0x390f08(0x15c)](this['workingDir'],'src',_0x54f1a4['fIDNO'],_0x11f9ab['handler']+'.js');this[_0x390f08(0x1bf)][_0x11f9ab['name']]=_0x54f1a4['dEadN'](require,_0x12f211),this['jobConfigs'][_0x11f9ab[_0x390f08(0x15f)]]=_0x11f9ab;if(_0x54f1a4[_0x390f08(0x133)](_0x11f9ab[_0x390f08(0x1aa)],'cron')&&_0x54f1a4[_0x390f08(0xdc)](_0x11f9ab['enabled'],![])){const _0x577ad3=this['queues'][_0x11f9ab['queue']||_0x390f08(0x16d)];await _0x577ad3[_0x390f08(0x17d)](_0x11f9ab[_0x390f08(0x15f)],{'pattern':_0x11f9ab['schedule'],'tz':_0x11f9ab['timezone']||undefined},{'name':_0x11f9ab['name'],'data':{'handler':_0x11f9ab[_0x390f08(0x198)],'triggeredBy':_0x54f1a4[_0x390f08(0x1a0)],'metadata':_0x11f9ab[_0x390f08(0x1b9)]||{}},'opts':{'attempts':_0x11f9ab[_0x390f08(0x18f)]?.['maxAttempts']||0x3,'backoff':{'type':_0x11f9ab[_0x390f08(0x18f)]?.[_0x390f08(0xfa)]||_0x390f08(0xfd),'delay':_0x11f9ab['retry']?.['initialDelay']||0x1388},'timeout':_0x11f9ab['timeout']||0x7530}}),logger['info']({'event':'cron_registered','name':_0x11f9ab['name'],'schedule':_0x11f9ab['schedule'],'queue':_0x11f9ab[_0x390f08(0xd3)]||_0x54f1a4['ZdpDb']},'Cron\x20registered:\x20'+_0x11f9ab[_0x390f08(0x15f)]+'\x20['+_0x11f9ab[_0x390f08(0x126)]+']');}const _0x3c00e1=_0x11f9ab[_0x390f08(0x1aa)]===_0x54f1a4[_0x390f08(0x1a0)]&&_0x54f1a4['oelfF'](_0x11f9ab[_0x390f08(0xd4)],![])?_0x390f08(0x1af):_0x54f1a4['fSTrX'];let _0x3a39be=null;_0x54f1a4[_0x390f08(0xe0)](_0x3c00e1,_0x390f08(0x1af))&&(_0x3a39be=await this[_0x390f08(0xf5)](_0x11f9ab[_0x390f08(0x15f)])),await this['upsertJobRegistry'](_0x11f9ab,_0x3c00e1,_0x3a39be);}async['processJob'](_0x3e99ac){const _0x1ae079=a0_0x1b568a,_0x4d49b1={'pMQVf':'job_history_insert_bg_error','UFuKS':'job_started','TFpUV':function(_0x3eddd7,_0x3d8161){return _0x3eddd7+_0x3d8161;},'abRzg':function(_0x51627b){return _0x51627b();},'jcgIP':function(_0x5293ee,_0x44cdef){return _0x5293ee===_0x44cdef;},'jOgJl':'api-delayed','IvBwl':_0x1ae079(0x104),'cdUFl':function(_0x152cbf,_0xe124c6){return _0x152cbf===_0xe124c6;},'GspRg':_0x1ae079(0x16e),'EtPrC':'default','iWYhu':function(_0x54184b){return _0x54184b();},'MHkqv':_0x1ae079(0x1d5),'DmCpq':function(_0xbe9f81,_0x167fa4){return _0xbe9f81(_0x167fa4);},'XmcFV':'job_handler_done'},_0x672618=this[_0x1ae079(0x148)][_0x3e99ac['name']],_0x274e34=this[_0x1ae079(0x1bf)][_0x3e99ac[_0x1ae079(0x15f)]];if(!_0x274e34)throw new Error('Handler\x20tidak\x20ditemukan\x20untuk\x20job:\x20'+_0x3e99ac[_0x1ae079(0x15f)]);const _0x511e7e=logger[_0x1ae079(0xed)]({'jobId':_0x3e99ac['id'],'jobName':_0x3e99ac[_0x1ae079(0x15f)]});_0x511e7e['info']({'event':_0x4d49b1['UFuKS'],'attempt':_0x4d49b1['TFpUV'](_0x3e99ac[_0x1ae079(0x163)],0x1),'triggeredBy':_0x3e99ac['data']?.['triggeredBy']||'unknown'},_0x1ae079(0x1c2)+_0x3e99ac['name']+'\x20(attempt\x20'+(_0x3e99ac['attemptsMade']+0x1)+')');const _0x330219=_0x4d49b1[_0x1ae079(0x199)](uuidv7),_0x33c159=_0x3e99ac['data']?.[_0x1ae079(0x115)]||_0x1ae079(0x168),_0x6399be=this['insertJobHistory']({'id':_0x330219,'jobName':_0x3e99ac['name'],'bullmqJobId':_0x3e99ac['id'],'triggerType':_0x4d49b1[_0x1ae079(0xe9)](_0x33c159,_0x4d49b1[_0x1ae079(0x1c9)])?_0x4d49b1['IvBwl']:_0x4d49b1[_0x1ae079(0xf3)](_0x33c159,_0x1ae079(0xc1))?_0x4d49b1['GspRg']:'cron','triggeredBy':_0x33c159==='cron'?_0x1ae079(0x116):_0x33c159,'queue':_0x672618?.['queue']||_0x4d49b1[_0x1ae079(0x14f)],'attempt':_0x3e99ac['attemptsMade']+0x1,'configFile':_0x672618?.['_sourceFile']||null})['catch'](_0x45571d=>{const _0x32d5db=_0x1ae079;_0x511e7e[_0x32d5db(0x12e)]({'event':_0x4d49b1['pMQVf'],'error':_0x45571d[_0x32d5db(0xba)]},_0x32d5db(0xe1)+_0x45571d[_0x32d5db(0xba)]);});this[_0x1ae079(0x15a)]['set'](_0x3e99ac['id'],{'historyId':_0x330219,'insertPromise':_0x6399be});const _0x24a7aa=this['buildContext'](_0x3e99ac,_0x672618,_0x511e7e),_0x93913e=_0x4d49b1['iWYhu'](getComponentEngine);if(_0x93913e&&_0x4d49b1[_0x1ae079(0xe9)](typeof _0x93913e['executeEventHandlers'],_0x1ae079(0xf4))){const _0xe8911e=await _0x93913e['executeEventHandlers'](_0x4d49b1['MHkqv'],_0x24a7aa,!![]);if(!_0xe8911e[_0x1ae079(0x176)])throw new Error('Job\x20cancelled\x20by\x20onBeforeJobExecute:\x20'+_0xe8911e[_0x1ae079(0x1ab)]);}const _0x2e470f=await _0x4d49b1['DmCpq'](_0x274e34,_0x24a7aa);return _0x511e7e[_0x1ae079(0x18b)]({'event':_0x4d49b1['XmcFV'],'result':_0x2e470f},'Job\x20handler\x20completed:\x20'+_0x3e99ac['name']),_0x2e470f;}[a0_0x1b568a(0xe2)](_0x1e9e1f,_0x38ab62,_0x4411e3){const _0x587f88=a0_0x1b568a,_0x5643c1={'loKUS':'JOB_EVENT','eKXHI':function(_0x5e0d17,_0x51efbc){return _0x5e0d17||_0x51efbc;}};return{'jobId':_0x1e9e1f['id'],'jobName':_0x1e9e1f[_0x587f88(0x15f)],'attempt':_0x1e9e1f[_0x587f88(0x163)]+0x1,'maxAttempts':_0x38ab62?.[_0x587f88(0x18f)]?.['maxAttempts']||0x3,'payload':_0x1e9e1f['data']||{},'config':_0x5643c1[_0x587f88(0x13a)](_0x38ab62,{}),'db':this['getDbUtils'](),'redis':this['getRedisClient'](),'logger':_0x4411e3,'kafka':this[_0x587f88(0x16b)](),'cache':this[_0x587f88(0x1d7)](),'updateProgress':async _0x38f729=>{const _0x5ac422=_0x587f88;await _0x1e9e1f[_0x5ac422(0x119)](_0x38f729);},'emit':async(_0x462631,_0x4ee30a)=>{const _0x252c86=_0x587f88,_0x49431b=this['getKafkaService']();_0x49431b&&await _0x49431b[_0x252c86(0x1a6)](_0x462631,_0x5643c1[_0x252c86(0xff)],null,_0x4ee30a,{'module':_0x252c86(0xc3),'endpoint':_0x1e9e1f[_0x252c86(0x15f)]});},'job':_0x1e9e1f};}[a0_0x1b568a(0x16a)](){const _0x4ec402=a0_0x1b568a,_0x345b99={'DlEDW':'postgresql'};return(process[_0x4ec402(0xd6)]['DB_TYPE']||_0x345b99[_0x4ec402(0x11d)])[_0x4ec402(0xb2)]();}async['ensureTables'](){const _0x35216e=a0_0x1b568a,_0x29669f={'lommc':'job_db_unavailable','CbRbI':'postgresql.sql','aNtDU':_0x35216e(0x1c7),'XTLXM':'sql-scripts','ThIDM':_0x35216e(0x190),'ZxybI':'ora-00955','DcBhk':'duplicate','UEPKo':'job_tables_ensured'},_0x38435f=this['getDbUtils']();if(!_0x38435f){logger[_0x35216e(0x12e)]({'event':_0x29669f[_0x35216e(0x138)]},'Database\x20tidak\x20tersedia,\x20skip\x20auto-create\x20job\x20tables');return;}const _0x7bd9e8=this[_0x35216e(0x16a)](),_0x40841b={'postgresql':_0x29669f['CbRbI'],'oracle':_0x29669f[_0x35216e(0x1e2)],'mysql':_0x35216e(0x151)},_0x5c1c5a=_0x40841b[_0x7bd9e8];if(!_0x5c1c5a){logger['warn']({'event':_0x35216e(0x1d6),'dbType':_0x7bd9e8},_0x35216e(0xb9)+_0x7bd9e8+_0x35216e(0x11f));return;}const _0x6eaaf7=path['join'](__dirname,_0x29669f[_0x35216e(0x188)],_0x5c1c5a);if(!fs['existsSync'](_0x6eaaf7)){logger['warn']({'event':_0x35216e(0x165),'path':_0x6eaaf7},_0x35216e(0x177)+_0x6eaaf7);return;}const _0x182680=fs[_0x35216e(0xf8)](_0x6eaaf7,'utf8'),_0x1b78ca=this['splitSqlStatements'](_0x182680,_0x7bd9e8);let _0x3e50ff=0x0;for(const _0x2af91f of _0x1b78ca){try{await _0x38435f['executeQuery'](_0x2af91f),_0x3e50ff++;}catch(_0x237d7d){const _0x11e5ec=(_0x237d7d[_0x35216e(0xba)]||'')[_0x35216e(0xb2)](),_0x397d6e=_0x11e5ec['includes'](_0x29669f[_0x35216e(0x1a2)])||_0x11e5ec['includes'](_0x29669f['ZxybI'])||_0x11e5ec['includes'](_0x29669f[_0x35216e(0x18d)]);!_0x397d6e&&logger['warn']({'event':_0x35216e(0xcc),'error':_0x237d7d[_0x35216e(0xba)]},_0x35216e(0x1b7)+_0x237d7d['message']);}}logger[_0x35216e(0x18b)]({'event':_0x29669f[_0x35216e(0xbe)],'dbType':_0x7bd9e8,'executed':_0x3e50ff},_0x35216e(0x18a)+_0x7bd9e8+')');}[a0_0x1b568a(0x128)](_0x1bb1c9,_0x419374){const _0x26a51e=a0_0x1b568a,_0xb899fc={'mmAHf':function(_0x44dd07,_0x43107a){return _0x44dd07===_0x43107a;},'gOmUh':function(_0x1fc6f9,_0xcafed3){return _0x1fc6f9>_0xcafed3;},'pTXbA':function(_0xd41a7f,_0x498249){return _0xd41a7f===_0x498249;}};let _0x5807ee;return _0xb899fc[_0x26a51e(0x113)](_0x419374,'oracle')?_0x5807ee=_0x1bb1c9['split'](/\n\/\s*(?:\n|$)/):_0x5807ee=_0x1bb1c9['split'](/;\s*(?:\n|$)/),_0x5807ee['map'](_0x37e76e=>_0x37e76e['trim']())['filter'](_0x486150=>{const _0x565bf0=_0x26a51e;if(_0xb899fc['mmAHf'](_0x486150['length'],0x0))return![];const _0x24ebf5=_0x486150[_0x565bf0(0x161)]('\x0a')[_0x565bf0(0xc8)](_0x40cf15=>!_0x40cf15['trim']()[_0x565bf0(0x1e6)]('--')&&_0x40cf15[_0x565bf0(0x1ae)]()[_0x565bf0(0x112)]>0x0);return _0xb899fc[_0x565bf0(0x1b3)](_0x24ebf5[_0x565bf0(0x112)],0x0);});}async[a0_0x1b568a(0xcf)](_0x2acfef,_0x8215c0=a0_0x1b568a(0x1af),_0x35aaa8=null){const _0x686394=a0_0x1b568a,_0x1067d8={'QlUxt':'cron','phoUG':_0x686394(0x16d),'EHXEt':_0x686394(0xfd),'WtSUq':_0x686394(0xee),'BGxFO':_0x686394(0xe8)},_0x2bbb36=this[_0x686394(0x1ca)]();if(!_0x2bbb36)return;const _0x4ec77a=this[_0x686394(0x16a)](),_0x4aad3a=[_0x2acfef[_0x686394(0x15f)],_0x2acfef['description']||_0x2acfef[_0x686394(0x15f)],_0x2acfef['type']||_0x1067d8['QlUxt'],_0x2acfef['schedule']||null,_0x2acfef['queue']||_0x1067d8['phoUG'],_0x2acfef['handler'],_0x2acfef[_0x686394(0x13c)]||'',_0x2acfef[_0x686394(0x174)]||0x7530,_0x2acfef['retry']?.['maxAttempts']||0x3,_0x2acfef[_0x686394(0x18f)]?.[_0x686394(0xfa)]||_0x1067d8['EHXEt'],_0x8215c0,_0x35aaa8];try{if(_0x4ec77a==='oracle')await _0x2bbb36[_0x686394(0x145)](_0x686394(0xb3),_0x4aad3a);else _0x4ec77a===_0x1067d8[_0x686394(0x100)]?await _0x2bbb36['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)',_0x4aad3a):await _0x2bbb36['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()',_0x4aad3a);}catch(_0x4378d3){logger[_0x686394(0x12e)]({'event':_0x1067d8[_0x686394(0x10d)],'name':_0x2acfef[_0x686394(0x15f)],'error':_0x4378d3[_0x686394(0xba)]},'Failed\x20to\x20upsert\x20job\x20registry:\x20'+_0x2acfef[_0x686394(0x15f)]+'\x20—\x20'+_0x4378d3[_0x686394(0xba)]);}}async[a0_0x1b568a(0x1a8)](_0x437c27){const _0x5d1dd1=a0_0x1b568a,_0x1d36c2={'lxPLy':'cron','EKexG':_0x5d1dd1(0x116),'FBKUp':_0x5d1dd1(0x16d),'NChWc':'oracle','ehfJs':function(_0x222268,_0x4854a2){return _0x222268===_0x4854a2;},'zWXRP':_0x5d1dd1(0xee),'HxVRl':'job_history_insert_error'},_0x4f885f=this['getDbUtils']();if(!_0x4f885f)return;const _0x36b806=this['getDbType'](),_0x37dd5c=[_0x437c27['id'],_0x437c27['jobName'],_0x437c27[_0x5d1dd1(0x180)]||null,_0x437c27['triggerType']||_0x1d36c2['lxPLy'],_0x437c27['triggeredBy']||_0x1d36c2['EKexG'],_0x437c27['queue']||_0x1d36c2[_0x5d1dd1(0x1e1)],_0x437c27[_0x5d1dd1(0xc9)]||0x1,_0x437c27[_0x5d1dd1(0x147)]||null,process['pid']];try{if(_0x36b806===_0x1d36c2['NChWc'])await _0x4f885f['executeQuery'](_0x5d1dd1(0x124),_0x37dd5c);else _0x1d36c2[_0x5d1dd1(0x103)](_0x36b806,_0x1d36c2['zWXRP'])?await _0x4f885f['executeQuery'](_0x5d1dd1(0x1b4),_0x37dd5c):await _0x4f885f['executeQuery']('INSERT\x20INTO\x20job_history\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(id,\x20job_name,\x20bullmq_job_id,\x20trigger_type,\x20triggered_by,\x20status,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20queue,\x20attempt,\x20config_file,\x20started_at,\x20worker_pid,\x20created_at)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$5,\x20\x27running\x27,\x20$6,\x20$7,\x20$8,\x20NOW(),\x20$9,\x20NOW())',_0x37dd5c);await this[_0x5d1dd1(0x1a5)](_0x437c27['jobName'],'running');}catch(_0x3f6731){logger[_0x5d1dd1(0x12e)]({'event':_0x1d36c2[_0x5d1dd1(0x111)],'jobName':_0x437c27[_0x5d1dd1(0x136)],'error':_0x3f6731['message']},_0x5d1dd1(0xb7)+_0x3f6731['message']);}}async['updateJobHistoryCompleted'](_0xee08e7,_0x42cb98,_0x392e0b){const _0x5f0d8a=a0_0x1b568a,_0x2e2ef2={'lzMeH':'mysql','LStRJ':'job_history_complete_error'},_0xb2095b=this[_0x5f0d8a(0x1ca)]();if(!_0xb2095b)return;const _0x5a4ab7=this[_0x5f0d8a(0x16a)](),_0xf5a0e3=_0x392e0b?String(_0x392e0b)['substring'](0x0,0x1f4):null;try{if(_0x5a4ab7===_0x5f0d8a(0x196))await _0xb2095b['executeQuery'](_0x5f0d8a(0x1d9),[_0x42cb98,_0xf5a0e3,_0xee08e7]);else _0x5a4ab7===_0x2e2ef2['lzMeH']?await _0xb2095b[_0x5f0d8a(0x145)](_0x5f0d8a(0xb6),[_0x42cb98,_0xf5a0e3,_0xee08e7]):await _0xb2095b['executeQuery']('UPDATE\x20job_history\x20SET\x20status\x20=\x20\x27success\x27,\x20completed_at\x20=\x20NOW(),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20duration_ms\x20=\x20$1,\x20progress\x20=\x20100,\x20result_summary\x20=\x20$2\x20WHERE\x20id\x20=\x20$3',[_0x42cb98,_0xf5a0e3,_0xee08e7]);}catch(_0x2424bc){logger[_0x5f0d8a(0x12e)]({'event':_0x2e2ef2['LStRJ'],'historyId':_0xee08e7,'error':_0x2424bc[_0x5f0d8a(0xba)]},_0x5f0d8a(0x127)+_0x2424bc[_0x5f0d8a(0xba)]);}}async['updateJobHistoryFailed'](_0x27368c,_0x51649a,_0x45181d,_0x15bd14,_0x2d972c){const _0xdf1e23=a0_0x1b568a,_0x403166={'dQsVD':function(_0x493cc1,_0x4f2c51){return _0x493cc1(_0x4f2c51);},'GcpCG':function(_0x3266a5,_0x366f1b){return _0x3266a5===_0x366f1b;},'qTZiy':_0xdf1e23(0x196),'mFbjb':function(_0x4b475b,_0x394042){return _0x4b475b||_0x394042;}},_0x1783b2=this[_0xdf1e23(0x1ca)]();if(!_0x1783b2)return;const _0x5d645a=this['getDbType'](),_0x48c7c6=_0x15bd14?_0x403166[_0xdf1e23(0x1c8)](String,_0x15bd14)[_0xdf1e23(0x1d1)](0x0,0x3e8):null,_0x414161=_0x2d972c?_0x403166['dQsVD'](String,_0x2d972c)[_0xdf1e23(0x1d1)](0x0,0xfa0):null;try{if(_0x403166['GcpCG'](_0x5d645a,_0x403166['qTZiy']))await _0x1783b2['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',[_0x51649a,_0x403166['mFbjb'](_0x45181d,0x0),_0x48c7c6,_0x414161,_0x27368c]);else _0x5d645a==='mysql'?await _0x1783b2['executeQuery']('UPDATE\x20job_history\x20SET\x20status\x20=\x20\x27failed\x27,\x20completed_at\x20=\x20NOW(),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20duration_ms\x20=\x20?,\x20progress\x20=\x20?,\x20error_message\x20=\x20?,\x20error_stack\x20=\x20?\x20WHERE\x20id\x20=\x20?',[_0x51649a,_0x403166[_0xdf1e23(0x14e)](_0x45181d,0x0),_0x48c7c6,_0x414161,_0x27368c]):await _0x1783b2[_0xdf1e23(0x145)]('UPDATE\x20job_history\x20SET\x20status\x20=\x20\x27failed\x27,\x20completed_at\x20=\x20NOW(),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20duration_ms\x20=\x20$1,\x20progress\x20=\x20$2,\x20error_message\x20=\x20$3,\x20error_stack\x20=\x20$4\x20WHERE\x20id\x20=\x20$5',[_0x51649a,_0x45181d||0x0,_0x48c7c6,_0x414161,_0x27368c]);}catch(_0x457302){logger[_0xdf1e23(0x12e)]({'event':_0xdf1e23(0x102),'historyId':_0x27368c,'error':_0x457302[_0xdf1e23(0xba)]},_0xdf1e23(0x153)+_0x457302[_0xdf1e23(0xba)]);}}async['updateRegistryStatus'](_0x42176d,_0x20fa6a){const _0x51ca23=a0_0x1b568a,_0x948870={'KOWQk':function(_0x4ab96e,_0x1ba6a5){return _0x4ab96e===_0x1ba6a5;},'actMv':'oracle','MSOgd':function(_0x3598ab,_0x5cf322){return _0x3598ab===_0x5cf322;},'wKixo':'mysql'},_0x3735a5=this['getDbUtils']();if(!_0x3735a5)return;const _0x4e5d10=this['getDbType']();try{if(_0x948870[_0x51ca23(0x135)](_0x4e5d10,_0x948870['actMv']))await _0x3735a5['executeQuery'](_0x51ca23(0x1d0),[_0x20fa6a,_0x42176d]);else _0x948870[_0x51ca23(0xd2)](_0x4e5d10,_0x948870[_0x51ca23(0x144)])?await _0x3735a5['executeQuery'](_0x51ca23(0xef),[_0x20fa6a,_0x42176d]):await _0x3735a5[_0x51ca23(0x145)](_0x51ca23(0x1a7),[_0x20fa6a,_0x42176d]);}catch(_0x106269){}}async[a0_0x1b568a(0x152)](_0x432791,_0x4dfe11,_0x97d624,_0x5dafe9){const _0x319f80=a0_0x1b568a,_0x5b514e={'UanvH':function(_0x531d61,_0x5b37ba){return _0x531d61===_0x5b37ba;},'OPcXk':_0x319f80(0xe6),'riGUP':function(_0x15cebf,_0x20adf9){return _0x15cebf===_0x20adf9;},'WIhXO':function(_0x5a8015,_0x27ea2b){return _0x5a8015===_0x27ea2b;},'ASUaB':_0x319f80(0xee)},_0x3859d4=this['getDbUtils']();if(!_0x3859d4)return;const _0x9cab81=this[_0x319f80(0x16a)](),_0x237766=_0x5b514e['UanvH'](_0x4dfe11,_0x319f80(0x176))?_0x5b514e[_0x319f80(0x130)]:_0x319f80(0x1cb);try{if(_0x5b514e['riGUP'](_0x9cab81,_0x319f80(0x196)))await _0x3859d4['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'+_0x237766+_0x319f80(0x157)+_0x237766+_0x319f80(0xe7),[_0x4dfe11,_0x97d624,_0x5dafe9,_0x432791]);else _0x5b514e['WIhXO'](_0x9cab81,_0x5b514e['ASUaB'])?await _0x3859d4['executeQuery'](_0x319f80(0x137)+_0x237766+'\x20=\x20'+_0x237766+_0x319f80(0x14c),[_0x4dfe11,_0x97d624,_0x5dafe9,_0x432791]):await _0x3859d4['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'+_0x237766+_0x319f80(0x157)+_0x237766+_0x319f80(0x1b6),[_0x4dfe11,_0x97d624,_0x5dafe9,_0x432791]);}catch(_0x21177d){logger['warn']({'event':_0x319f80(0x1a9),'jobName':_0x432791,'error':_0x21177d[_0x319f80(0xba)]},_0x319f80(0xf6)+_0x21177d['message']);}}async['getNextRunFromBullMQ'](_0x184e40){const _0x2ed7a4=a0_0x1b568a,_0x209fc5={'NCVue':function(_0x50335a,_0x2995be){return _0x50335a===_0x2995be;},'QcrMV':_0x2ed7a4(0x16d)},_0x4f3e68=this['jobConfigs'][_0x184e40];if(!_0x4f3e68||_0x4f3e68['type']!=='cron'||_0x209fc5['NCVue'](_0x4f3e68[_0x2ed7a4(0xd4)],![]))return null;const _0x129926=this['queues'][_0x4f3e68['queue']||_0x209fc5['QcrMV']];if(!_0x129926)return null;try{if(typeof _0x129926['getJobSchedulers']==='function'){const _0x721317=await _0x129926['getJobSchedulers'](0x0,0x64),_0x116f5b=_0x721317[_0x2ed7a4(0x10e)](_0x5bc3f4=>_0x5bc3f4['name']===_0x184e40);return _0x116f5b?.[_0x2ed7a4(0x129)]?new Date(_0x116f5b['next']):null;}}catch(_0x38c292){}return null;}async['setAllJobsOffline'](){const _0x515120=a0_0x1b568a,_0x121cad={'VOZpc':function(_0x5712c2,_0x53bf9e){return _0x5712c2===_0x53bf9e;},'FMnni':'mysql'},_0x4301ea=this['getDbUtils']();if(!_0x4301ea)return;const _0x4d0cbe=this['getDbType']();try{if(_0x121cad[_0x515120(0xbd)](_0x4d0cbe,_0x515120(0x196)))await _0x4301ea['executeQuery'](_0x515120(0x120));else _0x4d0cbe===_0x121cad['FMnni']?await _0x4301ea[_0x515120(0x145)](_0x515120(0xdd)):await _0x4301ea[_0x515120(0x145)](_0x515120(0x15e));}catch(_0x4b8752){logger['warn']({'event':_0x515120(0x166),'error':_0x4b8752['message']},'Failed\x20to\x20set\x20jobs\x20offline:\x20'+_0x4b8752[_0x515120(0xba)]);}}['getDbUtils'](){const _0x35ebba=a0_0x1b568a,_0x5d7bb0={'QPsev':_0x35ebba(0x146),'YSUga':function(_0x3ebbbf,_0x2a3c41){return _0x3ebbbf(_0x2a3c41);},'BfrZl':_0x35ebba(0x1e0),'RLMzo':function(_0x196c89,_0x3b988d){return _0x196c89===_0x3b988d;},'pWraA':_0x35ebba(0xee),'ZeMbS':function(_0x55501b,_0x1051ca){return _0x55501b(_0x1051ca);},'auAts':_0x35ebba(0x1c4),'qmunE':'db_mysql_unavailable','STKmT':'MySQL\x20DB\x20module\x20not\x20available'},_0x513a7e=(process[_0x35ebba(0xd6)]['DB_TYPE']||_0x5d7bb0[_0x35ebba(0x17e)])[_0x35ebba(0xb2)]();if(_0x513a7e===_0x35ebba(0x196))try{const _0x55a698=_0x5d7bb0[_0x35ebba(0x182)](require,'../../utils/db-oracle');return{'executeQuery':(_0x337d33,_0x58efbd)=>_0x55a698[_0x35ebba(0x145)](_0x337d33,_0x58efbd),'executeTransaction':_0x1f3b01=>_0x55a698[_0x35ebba(0x191)](_0x1f3b01),'getPool':()=>_0x55a698[_0x35ebba(0x175)]()};}catch(_0x3d8fc7){return logger[_0x35ebba(0x12e)]({'event':_0x5d7bb0['BfrZl']},_0x35ebba(0x13e)),null;}if(_0x5d7bb0[_0x35ebba(0x192)](_0x513a7e,_0x5d7bb0[_0x35ebba(0x11b)]))try{const _0x40b02b=_0x5d7bb0['ZeMbS'](require,_0x5d7bb0['auAts']);return{'executeQuery':(_0x5a76d0,_0x5e1154)=>_0x40b02b[_0x35ebba(0x145)](_0x5a76d0,_0x5e1154),'executeTransaction':_0x1eed0d=>_0x40b02b['executeTransaction'](_0x1eed0d),'getPool':()=>_0x40b02b[_0x35ebba(0x175)]()};}catch(_0x158333){return logger[_0x35ebba(0x12e)]({'event':_0x5d7bb0[_0x35ebba(0xc7)]},_0x5d7bb0[_0x35ebba(0x164)]),null;}try{const _0x3946c3=_0x5d7bb0['YSUga'](require,'../../utils/db');return{'executeQuery':_0x3946c3['executeQuery'],'executeTransaction':_0x3946c3['executeTransaction'],'getPool':_0x3946c3[_0x35ebba(0x175)]};}catch(_0x512992){return logger[_0x35ebba(0x12e)]({'event':_0x35ebba(0x17f)},'PostgreSQL\x20DB\x20module\x20not\x20available'),null;}}[a0_0x1b568a(0xd1)](){const _0x4c67a1=a0_0x1b568a,_0x490cab={'ewyBx':function(_0x19f576,_0x20966c){return _0x19f576(_0x20966c);},'rONTY':'../../utils/redis-client'};try{const _0x314fb3=_0x490cab['ewyBx'](require,_0x490cab['rONTY']);return _0x314fb3[_0x4c67a1(0x107)]?_0x314fb3['getClient']():_0x314fb3;}catch(_0xc4b39f){return null;}}['getKafkaService'](){const _0x1cf8e5=a0_0x1b568a,_0x322793={'ElYdc':function(_0x26a5c7,_0x217e21){return _0x26a5c7===_0x217e21;},'iFJuU':_0x1cf8e5(0x12a)};try{if(_0x322793['ElYdc'](process['env'][_0x1cf8e5(0x186)],'true')){const _0xe0591d=require(_0x322793['iFJuU']);return _0xe0591d[_0x1cf8e5(0x184)]?_0xe0591d['getInstance']():_0xe0591d;}}catch(_0x146362){}return null;}['getCacheManager'](){const _0x273e4d=a0_0x1b568a,_0x5e6651={'iEBCm':function(_0x24557c,_0x2c4c02){return _0x24557c(_0x2c4c02);}};try{return _0x5e6651[_0x273e4d(0x12b)](require,'../../utils/cache-manager');}catch(_0x57c499){return null;}}async['dispatch'](_0x522b88,_0x5c4787={}){const _0x2347a1=a0_0x1b568a,_0x261b04={'TxOVz':_0x2347a1(0x16d),'qBpSJ':'api'},_0x120a01=this[_0x2347a1(0x148)][_0x522b88];if(!_0x120a01)throw new Error('Job\x20tidak\x20ditemukan:\x20'+_0x522b88);const _0x2b5e33=this[_0x2347a1(0x167)][_0x120a01['queue']||_0x261b04[_0x2347a1(0x14d)]],_0x5fa4f3=await _0x2b5e33[_0x2347a1(0x181)](_0x522b88,{..._0x5c4787,'handler':_0x120a01[_0x2347a1(0x198)],'triggeredBy':_0x261b04['qBpSJ']},{'attempts':_0x120a01[_0x2347a1(0x18f)]?.['maxAttempts']||0x3,'backoff':{'type':_0x120a01['retry']?.['backoff']||'exponential','delay':_0x120a01['retry']?.[_0x2347a1(0xbf)]||0x1388},'timeout':_0x120a01[_0x2347a1(0x174)]||0x7530});return logger[_0x2347a1(0x18b)]({'event':_0x2347a1(0x143),'jobId':_0x5fa4f3['id'],'name':_0x522b88,'triggeredBy':_0x2347a1(0xc1)},'Job\x20dispatched:\x20'+_0x522b88+'\x20(id:\x20'+_0x5fa4f3['id']+')'),{'jobId':_0x5fa4f3['id'],'name':_0x522b88};}async[a0_0x1b568a(0x18e)](_0x26c7e8,_0xc4acf7={},_0x2dacb9=0x0){const _0x5cee63=a0_0x1b568a,_0x56466a={'upuBr':_0x5cee63(0xf0),'SBKhv':'exponential'},_0x2b6e7e=this[_0x5cee63(0x148)][_0x26c7e8];if(!_0x2b6e7e)throw new Error(_0x5cee63(0x19c)+_0x26c7e8);const _0x4d1563=this[_0x5cee63(0x167)][_0x2b6e7e[_0x5cee63(0xd3)]||_0x5cee63(0x16d)],_0x3e8498=await _0x4d1563[_0x5cee63(0x181)](_0x26c7e8,{..._0xc4acf7,'handler':_0x2b6e7e['handler'],'triggeredBy':_0x56466a[_0x5cee63(0xfc)]},{'delay':_0x2dacb9,'attempts':_0x2b6e7e[_0x5cee63(0x18f)]?.[_0x5cee63(0xea)]||0x3,'backoff':{'type':_0x2b6e7e[_0x5cee63(0x18f)]?.['backoff']||_0x56466a[_0x5cee63(0xc5)],'delay':_0x2b6e7e['retry']?.[_0x5cee63(0xbf)]||0x1388},'timeout':_0x2b6e7e[_0x5cee63(0x174)]||0x7530});return logger[_0x5cee63(0x18b)]({'event':'job_dispatched_delayed','jobId':_0x3e8498['id'],'name':_0x26c7e8,'delayMs':_0x2dacb9},'Job\x20dispatched\x20(delayed\x20'+_0x2dacb9+'ms):\x20'+_0x26c7e8+'\x20(id:\x20'+_0x3e8498['id']+')'),{'jobId':_0x3e8498['id'],'name':_0x26c7e8};}async[a0_0x1b568a(0x15d)](_0x44ffd1){const _0xac53cc=a0_0x1b568a;for(const _0x2b574d of Object[_0xac53cc(0xbc)](this['queues'])){const _0x88f68f=await _0x2b574d[_0xac53cc(0x13d)](_0x44ffd1);if(_0x88f68f){const _0x2ad8a8=await _0x88f68f['getState']();return{'jobId':_0x88f68f['id'],'name':_0x88f68f[_0xac53cc(0x15f)],'state':_0x2ad8a8,'progress':_0x88f68f[_0xac53cc(0x1b1)],'attemptsMade':_0x88f68f['attemptsMade'],'failedReason':_0x88f68f['failedReason'],'returnvalue':_0x88f68f['returnvalue'],'data':_0x88f68f['data'],'timestamps':{'created':_0x88f68f[_0xac53cc(0x16c)],'started':_0x88f68f['processedOn'],'completed':_0x88f68f[_0xac53cc(0x1de)]}};}}return null;}['listJobs'](){const _0x110c29=a0_0x1b568a;return Object['values'](this['jobConfigs'])[_0x110c29(0x1c3)](_0x587c12=>({'name':_0x587c12['name'],'description':_0x587c12[_0x110c29(0x12c)]||'','type':_0x587c12[_0x110c29(0x1aa)],'schedule':_0x587c12[_0x110c29(0x126)],'handler':_0x587c12['handler'],'enabled':_0x587c12['enabled']!==![],'queue':_0x587c12['queue']||'default','timeout':_0x587c12[_0x110c29(0x174)]||0x7530,'retry':_0x587c12['retry']||{'maxAttempts':0x3,'backoff':'exponential','initialDelay':0x1388},'metadata':_0x587c12['metadata']||{}}));}async[a0_0x1b568a(0x155)](){const _0x308273=a0_0x1b568a,_0x1b4af0=[];for(const [_0x15a7f0,_0x48a5a0]of Object[_0x308273(0x154)](this['queues'])){const _0x3cfd7e=await _0x48a5a0['getJobs']([_0x308273(0x1ac)]);for(const _0x4b564c of _0x3cfd7e){_0x1b4af0[_0x308273(0xb1)]({'jobId':_0x4b564c['id'],'name':_0x4b564c[_0x308273(0x15f)],'queue':_0x15a7f0,'progress':_0x4b564c['progress'],'attemptsMade':_0x4b564c[_0x308273(0x163)],'startedAt':_0x4b564c['processedOn']});}}return _0x1b4af0;}async['getHistory'](_0x361f51={}){const _0x5a8b99=a0_0x1b568a,_0x11d55c={'uCyss':function(_0x58d88f,_0x2848b4){return _0x58d88f-_0x2848b4;},'YTsYX':_0x5a8b99(0xf1)},_0x362771=parseInt(_0x361f51['page'],0xa)||0x1,_0x1141fd=Math[_0x5a8b99(0x10a)](parseInt(_0x361f51['limit'],0xa)||0x14,0x64),_0x21544a=(_0x362771-0x1)*_0x1141fd,_0xafb8f8=_0x11d55c[_0x5a8b99(0x1db)](_0x21544a+_0x1141fd,0x1),_0x23d515=[];for(const [_0x2e1a8b,_0x3f94f1]of Object['entries'](this['queues'])){const _0x597af7=await _0x3f94f1[_0x5a8b99(0x14a)]([_0x11d55c['YTsYX']],_0x21544a,_0xafb8f8),_0x47a468=await _0x3f94f1['getJobs']([_0x5a8b99(0xc0)],_0x21544a,_0xafb8f8);for(const _0x2265a2 of[..._0x597af7,..._0x47a468]){const _0x3d048c=await _0x2265a2[_0x5a8b99(0x110)]();_0x23d515['push']({'jobId':_0x2265a2['id'],'name':_0x2265a2[_0x5a8b99(0x15f)],'state':_0x3d048c,'queue':_0x2e1a8b,'attemptsMade':_0x2265a2['attemptsMade'],'failedReason':_0x2265a2[_0x5a8b99(0x118)],'returnvalue':_0x2265a2[_0x5a8b99(0x1d3)],'timestamps':{'created':_0x2265a2['timestamp'],'started':_0x2265a2[_0x5a8b99(0x1c5)],'completed':_0x2265a2['finishedOn']}});}}return _0x23d515[_0x5a8b99(0xdf)]((_0x253dbb,_0x2dc627)=>(_0x2dc627[_0x5a8b99(0xdb)]['created']||0x0)-(_0x253dbb[_0x5a8b99(0xdb)][_0x5a8b99(0x1d4)]||0x0)),{'jobs':_0x23d515['slice'](0x0,_0x1141fd),'total':_0x23d515[_0x5a8b99(0x112)],'page':_0x362771,'limit':_0x1141fd};}async['cancelJob'](_0x3a3435){const _0x25aa06=a0_0x1b568a,_0x1e03b7={'JcdFn':function(_0x4ea82e,_0x5a24f8){return _0x4ea82e===_0x5a24f8;},'lIEFi':_0x25aa06(0x159),'jyunn':_0x25aa06(0x1bc),'MyBhs':_0x25aa06(0x19e),'SZXHv':function(_0x546552,_0x32b511){return _0x546552===_0x32b511;}};for(const _0x2913c4 of Object['values'](this['queues'])){const _0x132ef8=await _0x2913c4['getJob'](_0x3a3435);if(_0x132ef8){const _0x3d34f1=await _0x132ef8[_0x25aa06(0x110)]();if(_0x1e03b7['JcdFn'](_0x3d34f1,'active'))return await _0x132ef8['moveToFailed'](new Error(_0x1e03b7['lIEFi']),_0x1e03b7['jyunn'],!![]),{'success':!![],'message':_0x25aa06(0x150)+_0x3a3435+'\x20cancelled\x20(was\x20active)'};if(_0x1e03b7[_0x25aa06(0xde)](_0x3d34f1,_0x1e03b7['MyBhs'])||_0x1e03b7[_0x25aa06(0x194)](_0x3d34f1,'delayed'))return await _0x132ef8['remove'](),{'success':!![],'message':'Job\x20'+_0x3a3435+'\x20removed\x20(was\x20'+_0x3d34f1+')'};return{'success':![],'message':'Job\x20'+_0x3a3435+'\x20tidak\x20bisa\x20di-cancel\x20(state:\x20'+_0x3d34f1+')'};}}return{'success':![],'message':_0x25aa06(0x150)+_0x3a3435+_0x25aa06(0xf9)};}async['getHealthStatus'](){const _0x289cf2=a0_0x1b568a,_0x30f199={'foqNk':_0x289cf2(0x1ac),'IcHbE':_0x289cf2(0xf1)},_0x2f99bc={};for(const [_0xde8b1,_0x169a05]of Object[_0x289cf2(0x154)](this['queues'])){try{const _0x3854b3=await _0x169a05[_0x289cf2(0xfe)](_0x30f199['foqNk'],_0x30f199['IcHbE'],_0x289cf2(0x104),_0x289cf2(0xc0),'paused','waiting');_0x2f99bc[_0xde8b1]=_0x3854b3;}catch(_0x40ee10){_0x2f99bc[_0xde8b1]={'error':_0x40ee10['message']};}}const _0x36b84b={};for(const [_0xa1736e,_0x285a6b]of Object['entries'](this[_0x289cf2(0xcd)])){_0x36b84b[_0xa1736e]={'running':_0x285a6b[_0x289cf2(0xca)](),'paused':_0x285a6b['isPaused']()};}return{'initialized':this['initialized'],'registeredJobs':Object[_0x289cf2(0x149)](this[_0x289cf2(0x148)])[_0x289cf2(0x112)],'redisConnections':this['connections'][_0x289cf2(0x112)],'queues':_0x2f99bc,'workers':_0x36b84b};}async['onJobCompleted'](_0x22abaa,_0x3abeed){const _0x20c719=a0_0x1b568a,_0x564e1f={'KLyAl':_0x20c719(0x12f),'jSfSx':_0x20c719(0xb5),'YKsnl':'job_completed','HvnaY':function(_0x4761f2,_0x5b9d44){return _0x4761f2===_0x5b9d44;},'PIcxD':'job-scheduler','JqncJ':'job_kafka_publish_error','tOGTN':_0x20c719(0xec)},_0x4f4187=logger['child']({'jobId':_0x22abaa['id'],'jobName':_0x22abaa['name']});_0x4f4187[_0x20c719(0x18b)]({'event':_0x564e1f[_0x20c719(0x1e7)],'attemptsMade':_0x22abaa['attemptsMade'],'duration':_0x22abaa['finishedOn']?_0x22abaa['finishedOn']-_0x22abaa['processedOn']:null},'Job\x20completed:\x20'+_0x22abaa['name']);const _0x296007=this['activeHistoryIds'][_0x20c719(0x17c)](_0x22abaa['id']);if(_0x296007){if(_0x296007['insertPromise'])await _0x296007[_0x20c719(0x134)];const _0x5574ee=_0x22abaa[_0x20c719(0x1de)]&&_0x22abaa['processedOn']?_0x22abaa[_0x20c719(0x1de)]-_0x22abaa[_0x20c719(0x1c5)]:null,_0x5f519c=_0x564e1f['HvnaY'](typeof _0x3abeed,_0x20c719(0x106))?_0x3abeed:_0x3abeed?JSON[_0x20c719(0xd9)](_0x3abeed)['substring'](0x0,0x1f4):null;await this['updateJobHistoryCompleted'](_0x296007[_0x20c719(0xd8)],_0x5574ee,_0x5f519c);const _0x1dcf09=await this['getNextRunFromBullMQ'](_0x22abaa['name']);await this[_0x20c719(0x152)](_0x22abaa['name'],_0x20c719(0x176),_0x5574ee,_0x1dcf09),this['activeHistoryIds']['delete'](_0x22abaa['id']);}const _0x434718=getComponentEngine();if(_0x434718&&_0x564e1f[_0x20c719(0x185)](typeof _0x434718[_0x20c719(0x108)],'function')){const _0x1db1d7={'jobId':_0x22abaa['id'],'jobName':_0x22abaa['name'],'result':_0x3abeed,'config':this['jobConfigs'][_0x22abaa[_0x20c719(0x15f)]]||{}};_0x434718['executeEventHandlers'](_0x20c719(0x1dc),_0x1db1d7,![])['catch'](_0x4813c9=>{const _0x4f1b85=_0x20c719;_0x4f4187[_0x4f1b85(0x12e)]({'event':_0x564e1f['KLyAl'],'error':_0x4813c9[_0x4f1b85(0xba)]},_0x564e1f['jSfSx']);});}const _0x366aff=this['getKafkaService']();if(_0x366aff)try{await _0x366aff['publishEvent'](_0x20c719(0x18c),'JOB_COMPLETED',null,{'jobId':_0x22abaa['id'],'name':_0x22abaa['name'],'result':_0x3abeed},{'module':_0x564e1f['PIcxD'],'endpoint':_0x22abaa['name']});}catch(_0x4f7f55){_0x4f4187['warn']({'event':_0x564e1f[_0x20c719(0xce)],'error':_0x4f7f55[_0x20c719(0xba)]},_0x564e1f[_0x20c719(0x1e4)]);}}async[a0_0x1b568a(0x1be)](_0x2fc1f8,_0x1479c0){const _0x4f5ed2=a0_0x1b568a,_0x4aa067={'RNQbw':'job_failed','ZlkdQ':function(_0x4adb6f,_0x5b2e4a){return _0x4adb6f<_0x5b2e4a;},'Fndpk':function(_0x354dc9,_0x4b9c43){return _0x354dc9-_0x4b9c43;},'Arjkn':'failed','zExDd':_0x4f5ed2(0xc3)},_0x51c6a6=logger[_0x4f5ed2(0xed)]({'jobId':_0x2fc1f8['id'],'jobName':_0x2fc1f8['name']});_0x51c6a6['error']({'event':_0x4aa067['RNQbw'],'attemptsMade':_0x2fc1f8['attemptsMade'],'failedReason':_0x1479c0?.[_0x4f5ed2(0xba)],'willRetry':_0x4aa067[_0x4f5ed2(0x1d8)](_0x2fc1f8[_0x4f5ed2(0x163)],this['jobConfigs'][_0x2fc1f8[_0x4f5ed2(0x15f)]]?.[_0x4f5ed2(0x18f)]?.['maxAttempts']||0x3)},_0x4f5ed2(0x173)+_0x2fc1f8[_0x4f5ed2(0x15f)]+'\x20—\x20'+_0x1479c0?.['message']);const _0x525f98=this['activeHistoryIds'][_0x4f5ed2(0x17c)](_0x2fc1f8['id']);if(_0x525f98){if(_0x525f98['insertPromise'])await _0x525f98[_0x4f5ed2(0x134)];const _0x3f0c81=_0x2fc1f8['finishedOn']&&_0x2fc1f8['processedOn']?_0x4aa067[_0x4f5ed2(0x14b)](_0x2fc1f8['finishedOn'],_0x2fc1f8['processedOn']):null;await this['updateJobHistoryFailed'](_0x525f98['historyId'],_0x3f0c81,_0x2fc1f8[_0x4f5ed2(0x1b1)],_0x1479c0?.[_0x4f5ed2(0xba)],_0x1479c0?.[_0x4f5ed2(0x193)]);const _0x42230e=await this['getNextRunFromBullMQ'](_0x2fc1f8['name']);await this[_0x4f5ed2(0x152)](_0x2fc1f8['name'],_0x4aa067[_0x4f5ed2(0x160)],_0x3f0c81,_0x42230e),this[_0x4f5ed2(0x15a)][_0x4f5ed2(0x183)](_0x2fc1f8['id']);}const _0x40523d=getComponentEngine();if(_0x40523d&&typeof _0x40523d[_0x4f5ed2(0x108)]==='function'){const _0xafe331={'jobId':_0x2fc1f8['id'],'jobName':_0x2fc1f8[_0x4f5ed2(0x15f)],'error':_0x1479c0?.['message'],'attemptsMade':_0x2fc1f8[_0x4f5ed2(0x163)],'config':this[_0x4f5ed2(0x148)][_0x2fc1f8[_0x4f5ed2(0x15f)]]||{}};_0x40523d[_0x4f5ed2(0x108)]('onAfterJobFailed',_0xafe331,![])['catch'](_0xb978c1=>{const _0x1c6dbd=_0x4f5ed2;_0x51c6a6['warn']({'event':'after_job_failed_hook_error','error':_0xb978c1[_0x1c6dbd(0xba)]},_0x1c6dbd(0x172));});}const _0x28254d=this[_0x4f5ed2(0x16b)]();if(_0x28254d)try{await _0x28254d[_0x4f5ed2(0x1a6)]('restforge.jobs.failed','JOB_FAILED',null,{'jobId':_0x2fc1f8['id'],'name':_0x2fc1f8[_0x4f5ed2(0x15f)],'error':_0x1479c0?.[_0x4f5ed2(0xba)],'attemptsMade':_0x2fc1f8['attemptsMade']},{'module':_0x4aa067[_0x4f5ed2(0x123)],'endpoint':_0x2fc1f8[_0x4f5ed2(0x15f)]});}catch(_0x3c4fb1){_0x51c6a6['warn']({'event':_0x4f5ed2(0x1b2),'error':_0x3c4fb1['message']},'Failed\x20to\x20publish\x20JOB_FAILED\x20to\x20Kafka');}}['onJobProgress'](_0x5ec39d,_0x501a23){const _0xf99634=a0_0x1b568a;logger['debug']({'event':'job_progress','jobId':_0x5ec39d['id'],'jobName':_0x5ec39d['name'],'progress':_0x501a23},_0xf99634(0x1cc)+_0x5ec39d['name']+_0xf99634(0x1a4)+_0x501a23+'%');}}module[a0_0x1b568a(0x17b)]=new JobManager();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x260f63=a0_0x270c;(function(_0x37f963,_0x51ea83){const _0x49f18c=a0_0x270c,_0x24c68b=_0x37f963();while(!![]){try{const _0x5cdcde=parseInt(_0x49f18c(0x100))/0x1+parseInt(_0x49f18c(0x10c))/0x2*(parseInt(_0x49f18c(0x112))/0x3)+-parseInt(_0x49f18c(0xf0))/0x4+parseInt(_0x49f18c(0x11b))/0x5*(-parseInt(_0x49f18c(0x10e))/0x6)+parseInt(_0x49f18c(0xf6))/0x7+-parseInt(_0x49f18c(0x119))/0x8*(-parseInt(_0x49f18c(0xea))/0x9)+parseInt(_0x49f18c(0x135))/0xa*(-parseInt(_0x49f18c(0x12a))/0xb);if(_0x5cdcde===_0x51ea83)break;else _0x24c68b['push'](_0x24c68b['shift']());}catch(_0x4ed0a5){_0x24c68b['push'](_0x24c68b['shift']());}}}(a0_0x49ab,0x67fae));function a0_0x49ab(){const _0x38ce4c=['ANnVBG','CgfYC2u','zxjYB3i','odmXody2BgTuve1N','z2v0sM9ICW','CMv0CNK','tvnpwgK','t3DUyM8','zw5KC1DPDgG','zgvZy3jPChrPB24','zMLUAxnOzwrpBG','zgLZy29UBMvJDgvK','BMfTzq','D2fPDgLUzW','sM9IihrYAwDNzxjLzcb2AweGqvbjoIa','ogj3D0fNtG','rxjYB3iGz2v0DgLUzYbXDwv1zsbZDgf0CW','mZaWtLr3ruHh','z2v0','sM9Iia','ihrPzgfRigrPDgvTDwTHBG','ndi0mdu2rgnQAff6','zw52','zxHWB25LBNrPywW','Cgf5Bg9Hza','l3f1zxvLCW','AM9Ix2HPC3rVCNLFzxjYB3i','BwfW','nJu4mJaXnNrurwvPwa','AM9Ix3rYAwDNzxjLzf92AwfFyxbP','nZyYnZv1BNzWz2m','AM9PBG','AgLNAa','BwvZC2fNzq','y3jLyxrLza','BuvPwuW','z1bpAve','l2HPC3rVCNK','z2v0u3rHDgu','ELbgEK8','Cg9ZDa','uKvesvnFrei','zgvSyxLLza','uKvesvnFueftu1DpuKq','B3nsyvu','mJa5DwD0DMTt','icHPzdOG','qKrYCvq','zxHPC3rZu3LUyW','AM9Ix3n0yxr1C19LCNjVCG','ChjVz3jLC3m','zgvNCMfKzwq','CMy6AM9I','DMfSDwvZ','Bg93','yNvSBg1X','nZCYotmWsKHAAwn5','BgLTAxq','CgfYyw1Z','zgvMyxvSDa','C29YDa','rNPeCgW','yxbP','ChvZAa','iIb0AwrHAYbKAxrLBxvRyw4GzgKGA29UzMLNDxjHC2K','uKvesvnFse9tva','CxvLCNK','zMLSDgvY','z2v0sM9I','txn5q20','AM9Ix3jVDxrLC19YzwrPC19LCNjVCG','ywn0AxzL','y3nWt1G','zgf0yq','Bw92zvrVrMfPBgvK','CMvHzgrPCLn5BMm','Bg9JywXOB3n0','rhjrzKC','sK9cx1jfreLtx1bsruzjwa','y2Dczge','AgfUzgXLCG','DgLTzw91Da','rxjYB3iGBgLZDgLUzYbQB2jZ','v2r3Dfa','sM9IignHBMnLBgXLzcb2AweGqvbj','Bxjkt1i','C3rHDhvZ','Bwf4qxr0zw1WDhm','DxrMoa','Bwv0ywrHDge','t2jzywG','ChjVy2vZC2vKt24','ouLUEMHfvW','BgvUz3rO','zgTkC1q','DgLTzxn0yw1WCW','l2HLywX0Aa','BwLU','mtu3mZy2ngrTAu1AtW','z2v0sM9Iq291BNrZ','lMPZB24','zw5HyMXLza','zMjJsNe','uKvesvnFue9sva','ntGXndi2m1rQrhLnBG','zMfPBgvKuMvHC29U','AM9Ix3rYAwDNzxjFzxjYB3i','sM9IifjVDxrLCYbszwrPCYbLCNjVCJOG','l2XPC3q','zxHWB3j0CW','ihjLBw92zwqGkhDHCYa'];a0_0x49ab=function(){return _0x38ce4c;};return a0_0x49ab();}const express=require('express'),{Queue}=require(a0_0x260f63(0x134)),Redis=require('ioredis'),{logger}=require('../../utils/logger');let readConnection=null,readQueues=null,cachedJobConfigs=null;const QUEUE_NAMES={'high-priority':a0_0x260f63(0x11d),'default':'default','low-priority':a0_0x260f63(0x133)};function getReadQueues(){const _0x387e11=a0_0x260f63,_0x5f3982={'BnrwF':_0x387e11(0xda),'RIlMl':function(_0x45e427,_0x9acd7f,_0x2a3199){return _0x45e427(_0x9acd7f,_0x2a3199);},'Ownbo':'error'};if(readQueues)return readQueues;const _0x145f2f=process['env'][_0x387e11(0xdc)]||_0x387e11(0x131);readConnection=new Redis({'host':process[_0x387e11(0x113)][_0x387e11(0x13e)]||_0x5f3982['BnrwF'],'port':_0x5f3982['RIlMl'](parseInt,process['env'][_0x387e11(0xf5)],0xa)||0x18ec,'password':process['env'][_0x387e11(0x128)]||undefined,'db':_0x5f3982['RIlMl'](parseInt,process['env'][_0x387e11(0x126)],0xa)||0x0,'maxRetriesPerRequest':null}),readConnection['on'](_0x5f3982[_0x387e11(0x104)],_0xbba1c8=>{const _0x279c79=_0x387e11;logger['error']({'event':_0x279c79(0x143),'error':_0xbba1c8['message']},_0x279c79(0xf9)+_0xbba1c8['message']);}),readQueues={};for(const [_0xf4e498,_0x926333]of Object['entries'](QUEUE_NAMES)){readQueues[_0xf4e498]=new Queue(_0x926333,{'connection':readConnection,'prefix':_0x145f2f});}return readQueues;}function createJobRoutes(_0x79830d){const _0x3150b9=a0_0x260f63,_0x545f96={'fbcJq':function(_0x248b9d,_0xab4b1e){return _0x248b9d(_0xab4b1e);},'FzDpl':'utf8','gPOiQ':'default','jgUZb':function(_0x4f7b66){return _0x4f7b66();},'MsyCm':'Error\x20getting\x20job\x20status','BDrqT':'jobs','YRgek':function(_0x1122a3,_0x6aceb4){return _0x1122a3===_0x6aceb4;},'PRDfI':function(_0x1e49d5){return _0x1e49d5();},'cspOX':_0x3150b9(0x114),'osRaU':_0x3150b9(0xf8),'TeBNw':function(_0x41e223){return _0x41e223();},'NVlDK':_0x3150b9(0xe2),'haQap':'api-cancel','mrJOR':'waiting','aKCCv':function(_0xbd34c4,_0x7bac82){return _0xbd34c4===_0x7bac82;},'ObYah':function(_0x88f772,_0x3060ae,_0x1c4cd7){return _0x88f772(_0x3060ae,_0x1c4cd7);},'dkJsT':function(_0x3bf528,_0x823e2a){return _0x3bf528-_0x823e2a;},'MtAQN':function(_0x44155f,_0x142e89){return _0x44155f+_0x142e89;},'cgBda':'failed','lKUCw':'active','zPFzO':'completed','mEiYL':function(_0x20aadd){return _0x20aadd();},'qpfFG':'healthy','DrQfG':_0x3150b9(0x130),'YKWmS':'unhealthy','VfeUY':'/status/:jobId','MSOXi':'/trigger/:jobName','WdwtP':_0x3150b9(0x116),'xzsUL':_0x3150b9(0xee)},_0x26991a=express['Router']();return _0x79830d&&Object['keys'](_0x79830d)[_0x3150b9(0xeb)]>0x0&&(cachedJobConfigs=_0x79830d),_0x26991a[_0x3150b9(0x10f)](_0x3150b9(0xfa),(_0xc124e9,_0x3eb9b7)=>{const _0x1d6264=_0x3150b9;try{if(cachedJobConfigs){const _0x2d4c13=Object[_0x1d6264(0x132)](cachedJobConfigs)[_0x1d6264(0x118)](_0x2632ac=>({'name':_0x2632ac['name'],'description':_0x2632ac['description']||'','type':_0x2632ac['type'],'schedule':_0x2632ac['schedule'],'handler':_0x2632ac[_0x1d6264(0xde)],'enabled':_0x2632ac['enabled']!==![],'queue':_0x2632ac['queue']||'default','timeout':_0x2632ac[_0x1d6264(0xdf)]||0x7530,'retry':_0x2632ac[_0x1d6264(0x102)]||{'maxAttempts':0x3,'backoff':'exponential','initialDelay':0x1388},'metadata':_0x2632ac[_0x1d6264(0xe7)]||{}}));return _0x3eb9b7['json']({'success':!![],'data':_0x2d4c13,'total':_0x2d4c13['length']});}const _0x2a5b8e=_0x545f96[_0x1d6264(0xf4)](require,'fs'),_0x482435=require('path'),_0x29d7e9=_0x482435['join'](process['cwd'](),'payload','jobs');if(!_0x2a5b8e[_0x1d6264(0x12d)](_0x29d7e9))return _0x3eb9b7['json']({'success':!![],'data':[],'total':0x0});const _0x9f4103=_0x2a5b8e[_0x1d6264(0x148)](_0x29d7e9)['filter'](_0x377895=>_0x377895[_0x1d6264(0x105)](_0x1d6264(0xf2))),_0x6dc259=[];for(const _0x100e51 of _0x9f4103){try{const _0x31a6ea=_0x2a5b8e['readFileSync'](_0x482435[_0x1d6264(0x11c)](_0x29d7e9,_0x100e51),_0x545f96[_0x1d6264(0x13a)]),_0x272699=JSON[_0x1d6264(0xfe)](_0x31a6ea);_0x6dc259[_0x1d6264(0x13c)]({'name':_0x272699[_0x1d6264(0x109)],'description':_0x272699[_0x1d6264(0x106)]||'','type':_0x272699['type'],'schedule':_0x272699['schedule'],'handler':_0x272699[_0x1d6264(0xde)],'enabled':_0x272699[_0x1d6264(0xf3)]!==![],'queue':_0x272699['queue']||_0x545f96[_0x1d6264(0x121)],'timeout':_0x272699['timeout']||0x7530,'retry':_0x272699['retry']||{},'metadata':_0x272699['metadata']||{}});}catch(_0x23fa10){}}_0x3eb9b7[_0x1d6264(0xfd)]({'success':!![],'data':_0x6dc259,'total':_0x6dc259['length']});}catch(_0x1d3771){logger['error']({'event':'job_list_error','error':_0x1d3771['message']},_0x1d6264(0xe0)),_0x3eb9b7[_0x1d6264(0xe4)](0x1f4)['json']({'success':![],'error':_0x1d3771[_0x1d6264(0x11e)]});}}),_0x26991a['get'](_0x545f96['VfeUY'],async(_0x4127b8,_0xcb24dc)=>{const _0x3d7b5b=_0x3150b9;try{const {jobId:_0x1ebb2f}=_0x4127b8[_0x3d7b5b(0x137)],_0x4cac9a=_0x545f96['jgUZb'](getReadQueues);for(const _0x5bcbae of Object['values'](_0x4cac9a)){const _0x43b4f8=await _0x5bcbae[_0x3d7b5b(0x141)](_0x1ebb2f);if(_0x43b4f8){const _0x350d90=await _0x43b4f8[_0x3d7b5b(0x123)]();return _0xcb24dc['json']({'success':!![],'data':{'jobId':_0x43b4f8['id'],'name':_0x43b4f8['name'],'state':_0x350d90,'progress':_0x43b4f8[_0x3d7b5b(0x12f)],'attemptsMade':_0x43b4f8['attemptsMade'],'failedReason':_0x43b4f8['failedReason'],'returnvalue':_0x43b4f8['returnvalue'],'data':_0x43b4f8[_0x3d7b5b(0x146)],'timestamps':{'created':_0x43b4f8['timestamp'],'started':_0x43b4f8[_0x3d7b5b(0xe9)],'completed':_0x43b4f8[_0x3d7b5b(0x107)]}}});}}_0xcb24dc[_0x3d7b5b(0xe4)](0x194)[_0x3d7b5b(0xfd)]({'success':![],'error':_0x3d7b5b(0x110)+_0x1ebb2f+'\x20tidak\x20ditemukan'});}catch(_0x25e8be){logger[_0x3d7b5b(0xff)]({'event':_0x3d7b5b(0x12e),'error':_0x25e8be['message']},_0x545f96[_0x3d7b5b(0x142)]),_0xcb24dc['status'](0x1f4)[_0x3d7b5b(0xfd)]({'success':![],'error':_0x25e8be[_0x3d7b5b(0x11e)]});}}),_0x26991a[_0x3150b9(0x125)](_0x545f96[_0x3150b9(0x103)],async(_0xf4ebaa,_0x4cc59f)=>{const _0x4b1e6b=_0x3150b9;try{const {jobName:_0x233bc1}=_0xf4ebaa[_0x4b1e6b(0x137)],_0x3cdb9c=_0xf4ebaa['body']||{};let _0x49e250=cachedJobConfigs?.[_0x233bc1];if(!_0x49e250){const _0x5d3c34=require('fs'),_0x6fcd10=require('path'),_0x9308a=_0x6fcd10[_0x4b1e6b(0x11c)](process['cwd'](),_0x4b1e6b(0x115),_0x545f96[_0x4b1e6b(0x12c)]),_0x2f4562=_0x5d3c34['existsSync'](_0x9308a)?_0x5d3c34[_0x4b1e6b(0x148)](_0x9308a)[_0x4b1e6b(0x140)](_0x5ce8c1=>_0x5ce8c1['endsWith'](_0x4b1e6b(0xf2))):[];for(const _0x342fe3 of _0x2f4562){try{const _0xd703be=_0x5d3c34['readFileSync'](_0x6fcd10[_0x4b1e6b(0x11c)](_0x9308a,_0x342fe3),_0x4b1e6b(0xe6)),_0x3d928a=JSON['parse'](_0xd703be);if(_0x545f96['YRgek'](_0x3d928a[_0x4b1e6b(0x109)],_0x233bc1)){_0x49e250=_0x3d928a;break;}}catch(_0xed66e7){}}}if(!_0x49e250)return _0x4cc59f[_0x4b1e6b(0xe4)](0x194)[_0x4b1e6b(0xfd)]({'success':![],'error':'Job\x20\x22'+_0x233bc1+_0x4b1e6b(0x13d)});const _0x1c05ac=_0x545f96['PRDfI'](getReadQueues),_0x25c889=_0x1c05ac[_0x49e250['queue']||_0x4b1e6b(0x138)],_0x4ea11f=await _0x25c889['add'](_0x233bc1,{..._0x3cdb9c,'handler':_0x49e250[_0x4b1e6b(0xde)],'triggeredBy':_0x4b1e6b(0x13b)},{'attempts':_0x49e250['retry']?.[_0x4b1e6b(0xe5)]||0x3,'backoff':{'type':_0x49e250['retry']?.['backoff']||_0x545f96[_0x4b1e6b(0x145)],'delay':_0x49e250[_0x4b1e6b(0x102)]?.['initialDelay']||0x1388},'timeout':_0x49e250[_0x4b1e6b(0xdf)]||0x7530});logger['info']({'event':_0x4b1e6b(0x11a),'jobId':_0x4ea11f['id'],'name':_0x233bc1},_0x4b1e6b(0x10b)+_0x233bc1+_0x4b1e6b(0x12b)+_0x4ea11f['id']+')'),_0x4cc59f[_0x4b1e6b(0xfd)]({'success':!![],'jobId':_0x4ea11f['id'],'message':_0x4b1e6b(0x110)+_0x233bc1+'\x20berhasil\x20di-trigger'});}catch(_0x281a23){logger['error']({'event':_0x545f96[_0x4b1e6b(0x129)],'error':_0x281a23[_0x4b1e6b(0x11e)]},'Error\x20triggering\x20job'),_0x4cc59f[_0x4b1e6b(0xe4)](0x1f4)[_0x4b1e6b(0xfd)]({'success':![],'error':_0x281a23[_0x4b1e6b(0x11e)]});}}),_0x26991a['post']('/cancel/:jobId',async(_0x6ab01e,_0x36759c)=>{const _0xf6f027=_0x3150b9;try{const {jobId:_0x57d01d}=_0x6ab01e[_0xf6f027(0x137)],_0x4d5051=_0x545f96['TeBNw'](getReadQueues);for(const _0x1180d1 of Object[_0xf6f027(0x132)](_0x4d5051)){const _0x375db2=await _0x1180d1['getJob'](_0x57d01d);if(_0x375db2){const _0x1303fa=await _0x375db2['getState']();if(_0x1303fa===_0xf6f027(0x144))return await _0x375db2[_0xf6f027(0x147)](new Error(_0x545f96['NVlDK']),_0x545f96['haQap'],!![]),_0x36759c[_0xf6f027(0xfd)]({'success':!![],'message':'Job\x20'+_0x57d01d+'\x20cancelled\x20(was\x20active)'});if(_0x1303fa===_0x545f96[_0xf6f027(0xe3)]||_0x545f96['aKCCv'](_0x1303fa,_0xf6f027(0x127)))return await _0x375db2['remove'](),_0x36759c[_0xf6f027(0xfd)]({'success':!![],'message':'Job\x20'+_0x57d01d+_0xf6f027(0xfc)+_0x1303fa+')'});return _0x36759c['json']({'success':![],'message':_0xf6f027(0x110)+_0x57d01d+'\x20tidak\x20bisa\x20di-cancel\x20(state:\x20'+_0x1303fa+')'});}}_0x36759c['status'](0x194)[_0xf6f027(0xfd)]({'success':![],'error':_0xf6f027(0x110)+_0x57d01d+_0xf6f027(0x111)});}catch(_0x490593){logger[_0xf6f027(0xff)]({'event':'job_cancel_error','error':_0x490593['message']},'Error\x20cancelling\x20job'),_0x36759c[_0xf6f027(0xe4)](0x1f4)[_0xf6f027(0xfd)]({'success':![],'error':_0x490593['message']});}}),_0x26991a[_0x3150b9(0x10f)](_0x3150b9(0x122),async(_0xc7e768,_0x2e9dae)=>{const _0x6a9d56=_0x3150b9;try{const _0x5e6f3b=_0x545f96[_0x6a9d56(0xe8)](parseInt,_0xc7e768[_0x6a9d56(0x13f)]['page'],0xa)||0x1,_0x51b1ef=Math[_0x6a9d56(0xef)](parseInt(_0xc7e768[_0x6a9d56(0x13f)][_0x6a9d56(0x136)],0xa)||0x14,0x64),_0x157901=_0x545f96[_0x6a9d56(0xec)](_0x5e6f3b,0x1)*_0x51b1ef,_0x380339=_0x545f96['MtAQN'](_0x157901,_0x51b1ef)-0x1,_0x522d31=getReadQueues(),_0x926043=[];for(const [_0x511e75,_0xdddd37]of Object['entries'](_0x522d31)){const _0x579a1a=await _0xdddd37['getJobs'](['completed'],_0x157901,_0x380339),_0x11bfe0=await _0xdddd37[_0x6a9d56(0x101)]([_0x545f96['cgBda']],_0x157901,_0x380339);for(const _0x56cb6d of[..._0x579a1a,..._0x11bfe0]){const _0x3d514b=await _0x56cb6d['getState']();_0x926043[_0x6a9d56(0x13c)]({'jobId':_0x56cb6d['id'],'name':_0x56cb6d['name'],'state':_0x3d514b,'queue':_0x511e75,'attemptsMade':_0x56cb6d['attemptsMade'],'failedReason':_0x56cb6d[_0x6a9d56(0xf7)],'returnvalue':_0x56cb6d['returnvalue'],'timestamps':{'created':_0x56cb6d['timestamp'],'started':_0x56cb6d['processedOn'],'completed':_0x56cb6d[_0x6a9d56(0x107)]}});}}_0x926043[_0x6a9d56(0x139)]((_0x2a328d,_0x4116fd)=>(_0x4116fd[_0x6a9d56(0xed)][_0x6a9d56(0x11f)]||0x0)-(_0x2a328d['timestamps'][_0x6a9d56(0x11f)]||0x0)),_0x2e9dae[_0x6a9d56(0xfd)]({'success':!![],'data':_0x926043['slice'](0x0,_0x51b1ef),'total':_0x926043[_0x6a9d56(0xeb)],'page':_0x5e6f3b,'limit':_0x51b1ef});}catch(_0x44f95c){logger['error']({'event':_0x6a9d56(0x117),'error':_0x44f95c[_0x6a9d56(0x11e)]},'Error\x20getting\x20job\x20history'),_0x2e9dae[_0x6a9d56(0xe4)](0x1f4)[_0x6a9d56(0xfd)]({'success':![],'error':_0x44f95c['message']});}}),_0x26991a[_0x3150b9(0x10f)](_0x545f96[_0x3150b9(0xe1)],async(_0x297ed4,_0x44717a)=>{const _0x2a5e55=_0x3150b9;try{const _0x1827ea=getReadQueues(),_0x69a8d8={};for(const [_0x4b624c,_0x5cdacb]of Object['entries'](_0x1827ea)){try{const _0x148e2e=await _0x5cdacb['getJobCounts'](_0x545f96['lKUCw'],_0x545f96[_0x2a5e55(0x124)],'delayed',_0x545f96['cgBda'],'paused',_0x2a5e55(0x10a));_0x69a8d8[_0x4b624c]=_0x148e2e;}catch(_0x237a1b){_0x69a8d8[_0x4b624c]={'error':_0x237a1b[_0x2a5e55(0x11e)]};}}_0x44717a['json']({'success':!![],'data':_0x69a8d8});}catch(_0x41685c){logger[_0x2a5e55(0xff)]({'event':'job_queues_error','error':_0x41685c['message']},_0x2a5e55(0x10d)),_0x44717a[_0x2a5e55(0xe4)](0x1f4)[_0x2a5e55(0xfd)]({'success':![],'error':_0x41685c['message']});}}),_0x26991a['get'](_0x545f96['xzsUL'],async(_0x4ba408,_0x30eb5b)=>{const _0x565a86=_0x3150b9;try{const _0x1ca9ca=_0x545f96[_0x565a86(0x120)](getReadQueues),_0x297e20={};let _0x24a1f6=![];for(const [_0x172823,_0x22897c]of Object['entries'](_0x1ca9ca)){try{const _0x195a91=await _0x22897c[_0x565a86(0xf1)](_0x545f96['lKUCw'],_0x565a86(0x10a),_0x545f96[_0x565a86(0xdd)]);_0x297e20[_0x172823]=_0x195a91,_0x24a1f6=!![];}catch(_0x2bc0d1){_0x297e20[_0x172823]={'error':_0x2bc0d1[_0x565a86(0x11e)]};}}let _0x534ca0=0x0;cachedJobConfigs&&(_0x534ca0=Object['keys'](cachedJobConfigs)['length']),_0x30eb5b[_0x565a86(0xfd)]({'success':!![],'data':{'status':_0x24a1f6?_0x545f96['qpfFG']:_0x545f96[_0x565a86(0xdb)],'redis':_0x24a1f6?'connected':_0x565a86(0x108),'registeredJobs':_0x534ca0,'queues':_0x297e20}});}catch(_0x49e232){_0x30eb5b['status'](0x1f7)[_0x565a86(0xfd)]({'success':![],'data':{'status':_0x545f96['YKWmS'],'error':_0x49e232['message']}});}}),_0x26991a;}function a0_0x270c(_0x549b02,_0x22e907){_0x549b02=_0x549b02-0xda;const _0x49abe0=a0_0x49ab();let _0x270c3d=_0x49abe0[_0x549b02];if(a0_0x270c['ZDZyqa']===undefined){var _0x4bf222=function(_0x2bc4cd){const _0x515a9d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2d6924='',_0x39ef38='';for(let _0x272e82=0x0,_0x22bffc,_0x3b7616,_0x23f361=0x0;_0x3b7616=_0x2bc4cd['charAt'](_0x23f361++);~_0x3b7616&&(_0x22bffc=_0x272e82%0x4?_0x22bffc*0x40+_0x3b7616:_0x3b7616,_0x272e82++%0x4)?_0x2d6924+=String['fromCharCode'](0xff&_0x22bffc>>(-0x2*_0x272e82&0x6)):0x0){_0x3b7616=_0x515a9d['indexOf'](_0x3b7616);}for(let _0x5adf83=0x0,_0x21b113=_0x2d6924['length'];_0x5adf83<_0x21b113;_0x5adf83++){_0x39ef38+='%'+('00'+_0x2d6924['charCodeAt'](_0x5adf83)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x39ef38);};a0_0x270c['OEZZxm']=_0x4bf222,a0_0x270c['ZUXNja']={},a0_0x270c['ZDZyqa']=!![];}const _0x4d0220=_0x49abe0[0x0],_0x69008d=_0x549b02+_0x4d0220,_0xed674a=a0_0x270c['ZUXNja'][_0x69008d];return!_0xed674a?(_0x270c3d=a0_0x270c['OEZZxm'](_0x270c3d),a0_0x270c['ZUXNja'][_0x69008d]=_0x270c3d):_0x270c3d=_0xed674a,_0x270c3d;}module[a0_0x260f63(0xfb)]=createJobRoutes;
|
|
1
|
+
const a0_0x366540=a0_0x40f2;function a0_0x3351(){const _0x175bae=['rxjYB3iGz2v0DgLUzYbQB2iGC3rHDhvZ','vLfKy2K','BwLU','DgLTzw91Da','zgvSyxLLza','C2nOzwr1Bgu','rxjYB3iGz2v0DgLUzYbQB2iGAgLZDg9YEq','zw5KC1DPDgG','zNzurhe','ANnVBG','z2v0sM9Iq291BNrZ','BwvZC2fNzq','z2v0u3rHDgu','CNrQtvi','CgfYC2u','Bw10uvi','mZa0nJC4B0j4y3vW','zw50CMLLCW','nJzfA0Tlv2O','ChjVz3jLC3m','rxjYB3iGBgLZDgLUzYbQB2jZ','yuH6r08','sK9cx1jfreLtx1bsruzjwa','y29TCgXLDgvK','wxrPBfi','C29YDa','mte0nde3ogj3BezmAa','z2v0sM9I','sM9Iia','CMv0DxjUDMfSDwu','CxvLDwu','AM9Ix3f1zxvLC19LCNjVCG','m1fWru1ODa','AgfUzgXLCG','zMLUAxnOzwrpBG','DMfSDwvZ','l3n0yxr1CY86AM9Iswq','zMfPBgvK','zw5HyMXLza','CMvHzgrPCLn5BMm','tKD6y1q','r2zuC3C','sM9IihrYAwDNzxjLzcb2AweGqvbjoIa','icHPzdOG','Ce1JBwK','nteYnta0wNvNsgDL','uM91DgvY','wvPez1u','svPVBgu','uKvesvnFue9sva','l2XPC3q','C3rHDhvZ','uhjkANa','Cgf0Aa','Bg93','CMv0CNK','ndC3mZi0mfDcEfHmva','BMfTzq','yxr0zw1WDhnnywrL','yMfJA29MzG','l3rYAwDNzxiVoMPVyK5HBwu','rNDfCKS','sMf4wfO','Aw9YzwrPCW','ntCWndmWD1viug1t','u3HRBM0','DxrMoa','zxHWB3j0CW','z2v0','sM9Iici','DgLTzxn0yw1W','zw52','BgvUz3rO','zgvNCMfKzwq','AgLNAa','zgvMyxvSDa','zgf0yq','AM9PBG','zxHPC3rZu3LUyW','lMPZB24','zxjYB3i','mtm1mJKXmJbYELLHsgS','CMvHzezPBgvtEw5J','ndm1odG4BKvYAK9T','ywn0AxzL','mZbTv3PXqve','CxvLCNK','vwzqufi','rxjYB3iGz2v0DgLUzYbXDwv1zsbZDgf0CW','zgvZy3jPChrPB24','CgfYyw1Z','rwDjEKW','EwTvDhu','ihrPzgfRigjPC2eGzgKTy2fUy2vSicHZDgf0ztOG','BwfW','l2HLywX0Aa','yxbP','A2v5CW','z2v0sM9ICW','DgLTzxn0yw1WCW','y3DK'];a0_0x3351=function(){return _0x175bae;};return a0_0x3351();}(function(_0x14ddb1,_0x1b6423){const _0x319fe0=a0_0x40f2,_0x203e43=_0x14ddb1();while(!![]){try{const _0x1777d4=-parseInt(_0x319fe0(0x137))/0x1+-parseInt(_0x319fe0(0xdc))/0x2*(-parseInt(_0x319fe0(0xe2))/0x3)+-parseInt(_0x319fe0(0x115))/0x4*(parseInt(_0x319fe0(0x117))/0x5)+-parseInt(_0x319fe0(0xd4))/0x6*(parseInt(_0x319fe0(0x102))/0x7)+-parseInt(_0x319fe0(0xef))/0x8+parseInt(_0x319fe0(0xfa))/0x9+parseInt(_0x319fe0(0x113))/0xa;if(_0x1777d4===_0x1b6423)break;else _0x203e43['push'](_0x203e43['shift']());}catch(_0x31ee80){_0x203e43['push'](_0x203e43['shift']());}}}(a0_0x3351,0x82f4e));const express=require('express'),{Queue}=require('bullmq'),Redis=require(a0_0x366540(0x101)),{logger}=require('../../utils/logger');let readConnection=null,readQueues=null,cachedJobConfigs=null;const QUEUE_NAMES={'high-priority':a0_0x366540(0x10c),'default':a0_0x366540(0x10d),'low-priority':a0_0x366540(0xf8)};function a0_0x40f2(_0x16d7e1,_0x2f1d58){_0x16d7e1=_0x16d7e1-0xd4;const _0x3351ee=a0_0x3351();let _0x40f2c8=_0x3351ee[_0x16d7e1];if(a0_0x40f2['cGcBkY']===undefined){var _0x19788b=function(_0x466d72){const _0x195f52='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x52a73f='',_0x9126ea='';for(let _0x15b95b=0x0,_0x30afff,_0x45ed06,_0x5737f4=0x0;_0x45ed06=_0x466d72['charAt'](_0x5737f4++);~_0x45ed06&&(_0x30afff=_0x15b95b%0x4?_0x30afff*0x40+_0x45ed06:_0x45ed06,_0x15b95b++%0x4)?_0x52a73f+=String['fromCharCode'](0xff&_0x30afff>>(-0x2*_0x15b95b&0x6)):0x0){_0x45ed06=_0x195f52['indexOf'](_0x45ed06);}for(let _0x3b8fbd=0x0,_0x5caf91=_0x52a73f['length'];_0x3b8fbd<_0x5caf91;_0x3b8fbd++){_0x9126ea+='%'+('00'+_0x52a73f['charCodeAt'](_0x3b8fbd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x9126ea);};a0_0x40f2['TihlSi']=_0x19788b,a0_0x40f2['PffIdL']={},a0_0x40f2['cGcBkY']=!![];}const _0x5ae9f3=_0x3351ee[0x0],_0x134ea9=_0x16d7e1+_0x5ae9f3,_0x1f20d1=a0_0x40f2['PffIdL'][_0x134ea9];return!_0x1f20d1?(_0x40f2c8=a0_0x40f2['TihlSi'](_0x40f2c8),a0_0x40f2['PffIdL'][_0x134ea9]=_0x40f2c8):_0x40f2c8=_0x1f20d1,_0x40f2c8;}function getReadQueues(){const _0x573a6b=a0_0x366540,_0x827d7b={'NBNdX':function(_0x15c45c,_0x12965b,_0x4115bc){return _0x15c45c(_0x12965b,_0x4115bc);},'rtjMR':_0x573a6b(0x112)};if(readQueues)return readQueues;const _0x30267c=process['env'][_0x573a6b(0xd8)]||'rf:job';readConnection=new Redis({'host':process[_0x573a6b(0x109)]['REDIS_HOST']||'localhost','port':_0x827d7b['NBNdX'](parseInt,process['env'][_0x573a6b(0xf3)],0xa)||0x18ec,'password':process['env']['REDIS_PASSWORD']||undefined,'db':parseInt(process[_0x573a6b(0x109)]['REDIS_DB'],0xa)||0x0,'maxRetriesPerRequest':null}),readConnection['on'](_0x827d7b[_0x573a6b(0x134)],_0x55e32c=>{const _0x23c004=_0x573a6b;logger[_0x23c004(0x112)]({'event':'job_routes_redis_error','error':_0x55e32c[_0x23c004(0x132)]},'Job\x20Routes\x20Redis\x20error:\x20'+_0x55e32c['message']);}),readQueues={};for(const [_0x241573,_0x480eae]of Object[_0x573a6b(0x138)](QUEUE_NAMES)){readQueues[_0x241573]=new Queue(_0x480eae,{'connection':readConnection,'prefix':_0x30267c});}return readQueues;}function createJobRoutes(_0x54fa53){const _0x2dbb64=a0_0x366540,_0x26f0ef={'fvTDq':function(_0x5a9128,_0x4c4b17){return _0x5a9128(_0x4c4b17);},'PrJjp':function(_0x249480,_0x4930be){return _0x249480(_0x4930be);},'KItLj':_0x2dbb64(0xf7),'IZole':'jobs','YZDgU':'default','yBxHO':_0x2dbb64(0xd6),'ksOgM':function(_0x586c31,_0x1baf86){return _0x586c31(_0x1baf86);},'OBmwZ':_0x2dbb64(0x104),'eWagK':function(_0x307d76,_0x4c0eb3){return _0x307d76===_0x4c0eb3;},'uIneW':_0x2dbb64(0x122),'pyPiu':'exponential','CigcZ':'job_triggered_via_api','JaxXZ':'Error\x20triggering\x20job','ykUtu':'api-cancel','UfPPR':'waiting','FwErK':'delayed','mmtQR':function(_0x125549,_0x21cf90,_0x161f8f){return _0x125549(_0x21cf90,_0x161f8f);},'GzFkp':function(_0x36898a,_0x2da92d){return _0x36898a*_0x2da92d;},'eRWlF':function(_0xb0c5ce,_0x497b0e){return _0xb0c5ce-_0x497b0e;},'xWCgs':function(_0x858781,_0x593eb7){return _0x858781+_0x593eb7;},'KZUZj':function(_0x34e8d7){return _0x34e8d7();},'Sxknm':_0x2dbb64(0xe7),'YtilR':'job_history_error','VQdci':_0x2dbb64(0x12d),'LJqsL':_0x2dbb64(0x11a),'NGzcT':_0x2dbb64(0x116),'EgIzL':function(_0x6fd1d3,_0x25fc06){return _0x6fd1d3>_0x25fc06;},'pMcmi':_0x2dbb64(0xe6),'uCJse':_0x2dbb64(0xfe),'aHzGO':'/cancel/:jobId','GfTsw':'/history','nFvJe':_0x2dbb64(0x121)},_0x3913e3=express[_0x2dbb64(0xf0)]();return _0x54fa53&&_0x26f0ef[_0x2dbb64(0x11d)](Object['keys'](_0x54fa53)['length'],0x0)&&(cachedJobConfigs=_0x54fa53),_0x3913e3[_0x2dbb64(0x106)](_0x2dbb64(0xf4),(_0x2bb2a0,_0x7b695d)=>{const _0x1e0091=_0x2dbb64;try{if(cachedJobConfigs){const _0x55916b=Object['values'](cachedJobConfigs)[_0x1e0091(0x120)](_0x2e3e92=>({'name':_0x2e3e92['name'],'description':_0x2e3e92[_0x1e0091(0x11b)]||'','type':_0x2e3e92['type'],'schedule':_0x2e3e92[_0x1e0091(0x12c)],'handler':_0x2e3e92['handler'],'enabled':_0x2e3e92['enabled']!==![],'queue':_0x2e3e92['queue']||'default','timeout':_0x2e3e92['timeout']||0x7530,'retry':_0x2e3e92['retry']||{'maxAttempts':0x3,'backoff':'exponential','initialDelay':0x1388},'metadata':_0x2e3e92['metadata']||{}}));return _0x7b695d['json']({'success':!![],'data':_0x55916b,'total':_0x55916b[_0x1e0091(0x10a)]});}const _0x16eb49=_0x26f0ef[_0x1e0091(0x12f)](require,'fs'),_0xb76bc4=_0x26f0ef[_0x1e0091(0xf6)](require,_0x26f0ef['KItLj']),_0x33ff5a=_0xb76bc4['join'](process[_0x1e0091(0x126)](),'payload',_0x26f0ef['IZole']);if(!_0x16eb49['existsSync'](_0x33ff5a))return _0x7b695d[_0x1e0091(0x130)]({'success':!![],'data':[],'total':0x0});const _0x1e9bbf=_0x16eb49['readdirSync'](_0x33ff5a)['filter'](_0x32467e=>_0x32467e['endsWith'](_0x1e0091(0x111))),_0x444e78=[];for(const _0x438d6f of _0x1e9bbf){try{const _0xef2f5f=_0x16eb49[_0x1e0091(0x114)](_0xb76bc4[_0x1e0091(0x10f)](_0x33ff5a,_0x438d6f),_0x1e0091(0x104)),_0x501767=JSON[_0x1e0091(0x135)](_0xef2f5f);_0x444e78['push']({'name':_0x501767[_0x1e0091(0xfb)],'description':_0x501767['description']||'','type':_0x501767['type'],'schedule':_0x501767['schedule'],'handler':_0x501767[_0x1e0091(0xe3)],'enabled':_0x501767[_0x1e0091(0xe8)]!==![],'queue':_0x501767[_0x1e0091(0xe0)]||_0x26f0ef['YZDgU'],'timeout':_0x501767[_0x1e0091(0x12a)]||0x7530,'retry':_0x501767['retry']||{},'metadata':_0x501767['metadata']||{}});}catch(_0x28363f){}}_0x7b695d[_0x1e0091(0x130)]({'success':!![],'data':_0x444e78,'total':_0x444e78[_0x1e0091(0x10a)]});}catch(_0x1cbada){logger[_0x1e0091(0x112)]({'event':'job_list_error','error':_0x1cbada[_0x1e0091(0x132)]},_0x26f0ef['yBxHO']),_0x7b695d[_0x1e0091(0xf5)](0x1f4)[_0x1e0091(0x130)]({'success':![],'error':_0x1cbada['message']});}}),_0x3913e3[_0x2dbb64(0x106)](_0x26f0ef[_0x2dbb64(0xee)],async(_0x2640b9,_0x3d077f)=>{const _0x481344=_0x2dbb64;try{const {jobId:_0x48c15e}=_0x2640b9['params'],_0x34ab69=getReadQueues();for(const _0x4c4276 of Object[_0x481344(0xe5)](_0x34ab69)){const _0x2692bf=await _0x4c4276[_0x481344(0xdd)](_0x48c15e);if(_0x2692bf){const _0xc38930=await _0x2692bf[_0x481344(0x133)]();return _0x3d077f[_0x481344(0x130)]({'success':!![],'data':{'jobId':_0x2692bf['id'],'name':_0x2692bf[_0x481344(0xfb)],'state':_0xc38930,'progress':_0x2692bf[_0x481344(0xd5)],'attemptsMade':_0x2692bf[_0x481344(0xfc)],'failedReason':_0x2692bf['failedReason'],'returnvalue':_0x2692bf[_0x481344(0xdf)],'data':_0x2692bf[_0x481344(0x10e)],'timestamps':{'created':_0x2692bf['timestamp'],'started':_0x2692bf['processedOn'],'completed':_0x2692bf[_0x481344(0xe4)]}}});}}_0x3d077f['status'](0x194)[_0x481344(0x130)]({'success':![],'error':'Job\x20'+_0x48c15e+'\x20tidak\x20ditemukan'});}catch(_0xbd41c7){logger['error']({'event':'job_status_error','error':_0xbd41c7['message']},_0x481344(0x127)),_0x3d077f[_0x481344(0xf5)](0x1f4)[_0x481344(0x130)]({'success':![],'error':_0xbd41c7[_0x481344(0x132)]});}}),_0x3913e3['post'](_0x26f0ef['uCJse'],async(_0x3a4a33,_0x3cc66c)=>{const _0x4667f1=_0x2dbb64;try{const {jobName:_0x353f1c}=_0x3a4a33[_0x4667f1(0x11c)],_0x2e530c=_0x3a4a33['body']||{};let _0x2b1970=cachedJobConfigs?.[_0x353f1c];if(!_0x2b1970){const _0xeb6986=_0x26f0ef['fvTDq'](require,'fs'),_0x4d47bb=_0x26f0ef['ksOgM'](require,_0x26f0ef['KItLj']),_0x7bc105=_0x4d47bb['join'](process['cwd'](),'payload',_0x26f0ef[_0x4667f1(0xf2)]),_0x1f3120=_0xeb6986[_0x4667f1(0x110)](_0x7bc105)?_0xeb6986[_0x4667f1(0xe9)](_0x7bc105)['filter'](_0x17a5c4=>_0x17a5c4[_0x4667f1(0x12e)]('.json')):[];for(const _0x2873b9 of _0x1f3120){try{const _0x50d8eb=_0xeb6986['readFileSync'](_0x4d47bb[_0x4667f1(0x10f)](_0x7bc105,_0x2873b9),_0x26f0ef['OBmwZ']),_0x272a87=JSON['parse'](_0x50d8eb);if(_0x26f0ef['eWagK'](_0x272a87[_0x4667f1(0xfb)],_0x353f1c)){_0x2b1970=_0x272a87;break;}}catch(_0xd1a1cf){}}}if(!_0x2b1970)return _0x3cc66c['status'](0x194)[_0x4667f1(0x130)]({'success':![],'error':_0x4667f1(0x107)+_0x353f1c+'\x22\x20tidak\x20ditemukan\x20di\x20konfigurasi'});const _0x4cf0e0=getReadQueues(),_0x3def15=_0x4cf0e0[_0x2b1970[_0x4667f1(0xe0)]||_0x26f0ef[_0x4667f1(0xf1)]],_0x25e80d=await _0x3def15['add'](_0x353f1c,{..._0x2e530c,'handler':_0x2b1970['handler'],'triggeredBy':_0x26f0ef['uIneW']},{'attempts':_0x2b1970['retry']?.['maxAttempts']||0x3,'backoff':{'type':_0x2b1970[_0x4667f1(0xf9)]?.[_0x4667f1(0xfd)]||_0x26f0ef['pyPiu'],'delay':_0x2b1970['retry']?.['initialDelay']||0x1388},'timeout':_0x2b1970['timeout']||0x7530});logger['info']({'event':_0x26f0ef['CigcZ'],'jobId':_0x25e80d['id'],'name':_0x353f1c},_0x4667f1(0xec)+_0x353f1c+_0x4667f1(0xed)+_0x25e80d['id']+')'),_0x3cc66c[_0x4667f1(0x130)]({'success':!![],'jobId':_0x25e80d['id'],'message':_0x4667f1(0xde)+_0x353f1c+'\x20berhasil\x20di-trigger'});}catch(_0x10c478){logger['error']({'event':'job_trigger_error','error':_0x10c478[_0x4667f1(0x132)]},_0x26f0ef[_0x4667f1(0x100)]),_0x3cc66c[_0x4667f1(0xf5)](0x1f4)['json']({'success':![],'error':_0x10c478[_0x4667f1(0x132)]});}}),_0x3913e3['post'](_0x26f0ef[_0x2dbb64(0xd7)],async(_0x552d74,_0x4aa15a)=>{const _0x3fb145=_0x2dbb64;try{const {jobId:_0x3bd1b9}=_0x552d74['params'],_0x38fb51=getReadQueues();for(const _0x1f6f95 of Object['values'](_0x38fb51)){const _0x5c6940=await _0x1f6f95[_0x3fb145(0xdd)](_0x3bd1b9);if(_0x5c6940){const _0x2ad28e=await _0x5c6940[_0x3fb145(0x133)]();if(_0x2ad28e==='active')return await _0x5c6940['moveToFailed'](new Error('Job\x20cancelled\x20via\x20API'),_0x26f0ef[_0x3fb145(0x11e)],!![]),_0x4aa15a['json']({'success':!![],'message':'Job\x20'+_0x3bd1b9+'\x20cancelled\x20(was\x20active)'});if(_0x2ad28e===_0x26f0ef[_0x3fb145(0x119)]||_0x2ad28e===_0x26f0ef[_0x3fb145(0xff)])return await _0x5c6940['remove'](),_0x4aa15a[_0x3fb145(0x130)]({'success':!![],'message':_0x3fb145(0xde)+_0x3bd1b9+'\x20removed\x20(was\x20'+_0x2ad28e+')'});return _0x4aa15a[_0x3fb145(0x130)]({'success':![],'message':'Job\x20'+_0x3bd1b9+_0x3fb145(0x11f)+_0x2ad28e+')'});}}_0x4aa15a['status'](0x194)['json']({'success':![],'error':_0x3fb145(0xde)+_0x3bd1b9+'\x20tidak\x20ditemukan'});}catch(_0x35b852){logger[_0x3fb145(0x112)]({'event':'job_cancel_error','error':_0x35b852[_0x3fb145(0x132)]},'Error\x20cancelling\x20job'),_0x4aa15a['status'](0x1f4)[_0x3fb145(0x130)]({'success':![],'error':_0x35b852[_0x3fb145(0x132)]});}}),_0x3913e3[_0x2dbb64(0x106)](_0x26f0ef[_0x2dbb64(0xeb)],async(_0x4c8492,_0x26a6f3)=>{const _0x43713e=_0x2dbb64;try{const _0xc997f0=_0x26f0ef['mmtQR'](parseInt,_0x4c8492[_0x43713e(0x118)]['page'],0xa)||0x1,_0x552b2c=Math[_0x43713e(0x129)](_0x26f0ef[_0x43713e(0x136)](parseInt,_0x4c8492['query']['limit'],0xa)||0x14,0x64),_0x4ba0cf=_0x26f0ef['GzFkp'](_0x26f0ef['eRWlF'](_0xc997f0,0x1),_0x552b2c),_0x1f2a9a=_0x26f0ef['xWCgs'](_0x4ba0cf,_0x552b2c)-0x1,_0x3a2fbf=_0x26f0ef['KZUZj'](getReadQueues),_0x3863f2=[];for(const [_0x29f5b7,_0x4a5d2b]of Object['entries'](_0x3a2fbf)){const _0x796e13=await _0x4a5d2b[_0x43713e(0x124)]([_0x43713e(0xd9)],_0x4ba0cf,_0x1f2a9a),_0x48fa7e=await _0x4a5d2b['getJobs']([_0x26f0ef[_0x43713e(0x103)]],_0x4ba0cf,_0x1f2a9a);for(const _0x5f5e02 of[..._0x796e13,..._0x48fa7e]){const _0x841a21=await _0x5f5e02[_0x43713e(0x133)]();_0x3863f2['push']({'jobId':_0x5f5e02['id'],'name':_0x5f5e02['name'],'state':_0x841a21,'queue':_0x29f5b7,'attemptsMade':_0x5f5e02[_0x43713e(0xfc)],'failedReason':_0x5f5e02['failedReason'],'returnvalue':_0x5f5e02['returnvalue'],'timestamps':{'created':_0x5f5e02[_0x43713e(0x108)],'started':_0x5f5e02['processedOn'],'completed':_0x5f5e02['finishedOn']}});}}_0x3863f2[_0x43713e(0xdb)]((_0x5f355d,_0x458739)=>(_0x458739[_0x43713e(0x125)]['created']||0x0)-(_0x5f355d[_0x43713e(0x125)]['created']||0x0)),_0x26a6f3[_0x43713e(0x130)]({'success':!![],'data':_0x3863f2['slice'](0x0,_0x552b2c),'total':_0x3863f2['length'],'page':_0xc997f0,'limit':_0x552b2c});}catch(_0x190bb3){logger['error']({'event':_0x26f0ef[_0x43713e(0xda)],'error':_0x190bb3[_0x43713e(0x132)]},_0x26f0ef[_0x43713e(0x128)]),_0x26a6f3['status'](0x1f4)[_0x43713e(0x130)]({'success':![],'error':_0x190bb3[_0x43713e(0x132)]});}}),_0x3913e3[_0x2dbb64(0x106)]('/queues',async(_0x2d0e77,_0x148f30)=>{const _0x3d5ecf=_0x2dbb64;try{const _0x1c9e7e=getReadQueues(),_0xca0e3={};for(const [_0x32b75f,_0x19f73a]of Object['entries'](_0x1c9e7e)){try{const _0x584772=await _0x19f73a[_0x3d5ecf(0x131)](_0x3d5ecf(0x116),'completed',_0x3d5ecf(0x12b),_0x26f0ef[_0x3d5ecf(0x103)],'paused','waiting');_0xca0e3[_0x32b75f]=_0x584772;}catch(_0x141cff){_0xca0e3[_0x32b75f]={'error':_0x141cff[_0x3d5ecf(0x132)]};}}_0x148f30[_0x3d5ecf(0x130)]({'success':!![],'data':_0xca0e3});}catch(_0x4c37f0){logger['error']({'event':_0x3d5ecf(0xe1),'error':_0x4c37f0['message']},_0x26f0ef['LJqsL']),_0x148f30['status'](0x1f4)['json']({'success':![],'error':_0x4c37f0[_0x3d5ecf(0x132)]});}}),_0x3913e3[_0x2dbb64(0x106)](_0x26f0ef['nFvJe'],async(_0x52cdd9,_0x11dc68)=>{const _0x6575eb=_0x2dbb64;try{const _0x5d247f=getReadQueues(),_0x243636={};let _0x771430=![];for(const [_0x927e33,_0x55c686]of Object['entries'](_0x5d247f)){try{const _0x561297=await _0x55c686['getJobCounts'](_0x26f0ef[_0x6575eb(0xea)],_0x26f0ef['UfPPR'],_0x6575eb(0xe7));_0x243636[_0x927e33]=_0x561297,_0x771430=!![];}catch(_0x3d4325){_0x243636[_0x927e33]={'error':_0x3d4325['message']};}}let _0x260910=0x0;cachedJobConfigs&&(_0x260910=Object[_0x6575eb(0x123)](cachedJobConfigs)['length']),_0x11dc68[_0x6575eb(0x130)]({'success':!![],'data':{'status':_0x771430?'healthy':_0x6575eb(0x10b),'redis':_0x771430?'connected':'disconnected','registeredJobs':_0x260910,'queues':_0x243636}});}catch(_0x1f8915){_0x11dc68[_0x6575eb(0xf5)](0x1f7)['json']({'success':![],'data':{'status':'unhealthy','error':_0x1f8915['message']}});}}),_0x3913e3;}module[a0_0x366540(0x105)]=createJobRoutes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function a0_0x39fc(_0x476aad,_0x59912c){_0x476aad=_0x476aad-0x17d;const _0x48eeb9=a0_0x48ee();let _0x39fcab=_0x48eeb9[_0x476aad];if(a0_0x39fc['VjcfML']===undefined){var _0x8957ea=function(_0x52e619){const _0x2e2f9d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x9340d4='',_0x2a89eb='';for(let _0x2a9063=0x0,_0x45e95b,_0x1ae4d0,_0x35e4f4=0x0;_0x1ae4d0=_0x52e619['charAt'](_0x35e4f4++);~_0x1ae4d0&&(_0x45e95b=_0x2a9063%0x4?_0x45e95b*0x40+_0x1ae4d0:_0x1ae4d0,_0x2a9063++%0x4)?_0x9340d4+=String['fromCharCode'](0xff&_0x45e95b>>(-0x2*_0x2a9063&0x6)):0x0){_0x1ae4d0=_0x2e2f9d['indexOf'](_0x1ae4d0);}for(let _0x1f542b=0x0,_0x74bb01=_0x9340d4['length'];_0x1f542b<_0x74bb01;_0x1f542b++){_0x2a89eb+='%'+('00'+_0x9340d4['charCodeAt'](_0x1f542b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2a89eb);};a0_0x39fc['zReCGk']=_0x8957ea,a0_0x39fc['qgObzo']={},a0_0x39fc['VjcfML']=!![];}const _0x315865=_0x48eeb9[0x0],_0x302186=_0x476aad+_0x315865,_0x542c7b=a0_0x39fc['qgObzo'][_0x302186];return!_0x542c7b?(_0x39fcab=a0_0x39fc['zReCGk'](_0x39fcab),a0_0x39fc['qgObzo'][_0x302186]=_0x39fcab):_0x39fcab=_0x542c7b,_0x39fcab;}const a0_0x13a87d=a0_0x39fc;(function(_0x1fcbe2,_0x422151){const _0x2399b3=a0_0x39fc,_0x216a5f=_0x1fcbe2();while(!![]){try{const _0x18c926=-parseInt(_0x2399b3(0x183))/0x1+-parseInt(_0x2399b3(0x18e))/0x2*(-parseInt(_0x2399b3(0x1c7))/0x3)+parseInt(_0x2399b3(0x19d))/0x4+parseInt(_0x2399b3(0x1ca))/0x5*(parseInt(_0x2399b3(0x189))/0x6)+-parseInt(_0x2399b3(0x1cb))/0x7*(parseInt(_0x2399b3(0x1c2))/0x8)+parseInt(_0x2399b3(0x19b))/0x9+parseInt(_0x2399b3(0x1b0))/0xa*(-parseInt(_0x2399b3(0x1aa))/0xb);if(_0x18c926===_0x422151)break;else _0x216a5f['push'](_0x216a5f['shift']());}catch(_0x4ee340){_0x216a5f['push'](_0x216a5f['shift']());}}}(a0_0x48ee,0x675fc));const fs=require('fs'),path=require(a0_0x13a87d(0x17f)),VALID_QUEUE_NAMES=['high-priority',a0_0x13a87d(0x1c3),'low-priority'],VALID_BACKOFF_TYPES=[a0_0x13a87d(0x1ac),a0_0x13a87d(0x188)],SLUG_REGEX=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;class JobValidator{['validateConfig'](_0x17c475,_0x4dcb13){const _0x214382=a0_0x13a87d,_0x232ba5={'Fysid':'object','xEajv':function(_0x19088c,_0x4c8b58){return _0x19088c!==_0x4c8b58;},'imZxj':'Field\x20\x22name\x22\x20wajib\x20diisi\x20(string)','GnvYP':_0x214382(0x19c),'fRdKo':'Field\x20\x22type\x22\x20wajib\x20diisi\x20(string)','iUbKR':'cron','NglUO':function(_0x2bf037,_0x181490){return _0x2bf037!==_0x181490;},'bHyJo':_0x214382(0x1b6),'tQKSC':function(_0x4e5c03,_0x8e8efb){return _0x4e5c03!==_0x8e8efb;},'UauGr':function(_0x17ad48,_0x542121){return _0x17ad48!==_0x542121;},'IOchl':_0x214382(0x1b3),'uSHgQ':'Field\x20\x22enabled\x22\x20harus\x20boolean','ZboKE':function(_0x4fe06e,_0x35d0f2){return _0x4fe06e!==_0x35d0f2;},'PsHAu':'number','pSGVC':function(_0x5b6db8,_0x1e8ea7){return _0x5b6db8<=_0x1e8ea7;},'hHPhn':_0x214382(0x1ab),'WBfaf':function(_0xa9db5f,_0x49a0c8){return _0xa9db5f<_0x49a0c8;},'ujPjr':function(_0x3d4946,_0xf23fac){return _0x3d4946>_0xf23fac;},'daLRA':function(_0xcd70c0,_0x4dfe70){return _0xcd70c0===_0x4dfe70;},'ZeQiD':function(_0x5893a4,_0x1362f9){return _0x5893a4===_0x1362f9;},'Cqyda':_0x214382(0x1a5)},_0x4842db=[];if(!_0x17c475||typeof _0x17c475!==_0x232ba5[_0x214382(0x196)])return{'valid':![],'errors':['Config\x20harus\x20berupa\x20object']};if(!_0x17c475['name']||_0x232ba5['xEajv'](typeof _0x17c475[_0x214382(0x1b2)],_0x214382(0x19c)))_0x4842db[_0x214382(0x18d)](_0x232ba5[_0x214382(0x1cf)]);else!SLUG_REGEX['test'](_0x17c475['name'])&&_0x4842db['push'](_0x214382(0x1a8)+_0x17c475[_0x214382(0x1b2)]+'\x22');if(!_0x17c475[_0x214382(0x182)]||typeof _0x17c475['type']!==_0x232ba5['GnvYP'])_0x4842db['push'](_0x232ba5['fRdKo']);else _0x17c475['type']!==_0x232ba5[_0x214382(0x1c5)]&&_0x4842db[_0x214382(0x18d)](_0x214382(0x1bc)+_0x17c475[_0x214382(0x182)]+'\x22');if(!_0x17c475[_0x214382(0x1d3)]||_0x232ba5['xEajv'](typeof _0x17c475[_0x214382(0x1d3)],'string'))_0x4842db['push']('Field\x20\x22schedule\x22\x20wajib\x20diisi\x20(cron\x20expression\x20string)');else{const _0x535a8d=this[_0x214382(0x1ba)](_0x17c475['schedule']);!_0x535a8d['valid']&&_0x4842db['push'](..._0x535a8d[_0x214382(0x1a7)]);}if(!_0x17c475['handler']||_0x232ba5[_0x214382(0x1be)](typeof _0x17c475['handler'],_0x214382(0x19c)))_0x4842db['push'](_0x232ba5['bHyJo']);else{if(_0x4dcb13){const _0x336819=this['validateHandlerExists'](_0x17c475['handler'],_0x4dcb13);!_0x336819['valid']&&_0x4842db[_0x214382(0x18d)](..._0x336819[_0x214382(0x1a7)]);}}_0x232ba5[_0x214382(0x17e)](_0x17c475[_0x214382(0x1c9)],undefined)&&_0x232ba5['UauGr'](typeof _0x17c475[_0x214382(0x1c9)],_0x232ba5[_0x214382(0x1cd)])&&_0x4842db[_0x214382(0x18d)](_0x232ba5[_0x214382(0x1bb)]);_0x17c475['timeout']!==undefined&&((_0x232ba5[_0x214382(0x1a1)](typeof _0x17c475[_0x214382(0x1b4)],_0x232ba5[_0x214382(0x1bf)])||_0x232ba5[_0x214382(0x1a3)](_0x17c475['timeout'],0x0))&&_0x4842db['push'](_0x232ba5[_0x214382(0x1a6)]));if(_0x17c475[_0x214382(0x18b)]!==undefined){const _0x43d7a9=this[_0x214382(0x194)](_0x17c475['queue']);!_0x43d7a9[_0x214382(0x195)]&&_0x4842db['push'](..._0x43d7a9['errors']);}_0x17c475[_0x214382(0x1ad)]!==undefined&&((_0x232ba5['UauGr'](typeof _0x17c475['concurrency'],_0x232ba5['PsHAu'])||_0x232ba5[_0x214382(0x180)](_0x17c475[_0x214382(0x1ad)],0x1)||_0x232ba5[_0x214382(0x1d4)](_0x17c475['concurrency'],0x32))&&_0x4842db['push']('Field\x20\x22concurrency\x22\x20harus\x20number\x20antara\x201-50'));if(_0x17c475[_0x214382(0x1c1)]!==undefined){if(typeof _0x17c475['retry']!==_0x214382(0x1b5)||_0x232ba5[_0x214382(0x1b9)](_0x17c475[_0x214382(0x1c1)],null))_0x4842db['push']('Field\x20\x22retry\x22\x20harus\x20berupa\x20object');else{const _0x5e17a3=this[_0x214382(0x1c6)](_0x17c475[_0x214382(0x1c1)]);!_0x5e17a3['valid']&&_0x4842db['push'](..._0x5e17a3[_0x214382(0x1a7)]);}}return _0x232ba5[_0x214382(0x184)](_0x17c475['metadata'],undefined)&&((typeof _0x17c475[_0x214382(0x19f)]!==_0x232ba5['Fysid']||_0x232ba5['ZeQiD'](_0x17c475[_0x214382(0x19f)],null)||Array[_0x214382(0x198)](_0x17c475['metadata']))&&_0x4842db['push'](_0x232ba5[_0x214382(0x193)])),{'valid':_0x4842db['length']===0x0,'errors':_0x4842db};}['validateCronExpression'](_0x4cbff0){const _0x4a6c55=a0_0x13a87d,_0x785b07={'fczpq':function(_0x40388e,_0x4de17e){return _0x40388e!==_0x4de17e;},'wJFPM':'hour','JoIUj':'day-of-month','dqqNT':_0x4a6c55(0x1d1),'UwMWt':'day-of-week','IeYtv':function(_0x4928b4,_0x8e17d3){return _0x4928b4<_0x8e17d3;},'pKpMq':function(_0x1df9ad,_0x3e9d75){return _0x1df9ad===_0x3e9d75;},'gmjHM':function(_0x1f1915,_0x33ca47){return _0x1f1915!==_0x33ca47;},'KjMle':function(_0x55e8e1,_0x2671e6,_0x33ae63){return _0x55e8e1(_0x2671e6,_0x33ae63);}},_0x3e85e2=[],_0x1b755e=_0x4cbff0[_0x4a6c55(0x186)]()[_0x4a6c55(0x187)](/\s+/);if(_0x785b07[_0x4a6c55(0x1c0)](_0x1b755e[_0x4a6c55(0x1c8)],0x5))return _0x3e85e2['push'](_0x4a6c55(0x1b1)+_0x1b755e[_0x4a6c55(0x1c8)]+'\x20field:\x20\x22'+_0x4cbff0+'\x22'),{'valid':![],'errors':_0x3e85e2};const _0x349e13=['minute',_0x785b07['wJFPM'],_0x785b07[_0x4a6c55(0x1d0)],_0x785b07['dqqNT'],_0x785b07['UwMWt']],_0x1c4303=[{'min':0x0,'max':0x3b},{'min':0x0,'max':0x17},{'min':0x1,'max':0x1f},{'min':0x1,'max':0xc},{'min':0x0,'max':0x7}],_0xe804d=/^(\*|[0-9]+(-[0-9]+)?)([,/](\*|[0-9]+(-[0-9]+)?))*$/;for(let _0x3bef37=0x0;_0x785b07['IeYtv'](_0x3bef37,0x5);_0x3bef37++){const _0x232640=_0x1b755e[_0x3bef37];if(_0x785b07[_0x4a6c55(0x191)](_0x232640,'*'))continue;if(_0x232640['includes']('/')){const [_0x504626,_0x44752f]=_0x232640['split']('/');_0x785b07[_0x4a6c55(0x197)](_0x504626,'*')&&!this['_isValidRange'](_0x504626,_0x1c4303[_0x3bef37])&&_0x3e85e2['push'](_0x4a6c55(0x19a)+_0x349e13[_0x3bef37]+_0x4a6c55(0x190)+_0x504626+_0x4a6c55(0x1d6));const _0x2a4406=_0x785b07[_0x4a6c55(0x1b7)](parseInt,_0x44752f,0xa);(isNaN(_0x2a4406)||_0x785b07['IeYtv'](_0x2a4406,0x1))&&_0x3e85e2['push']('Cron\x20field\x20\x22'+_0x349e13[_0x3bef37]+'\x22:\x20step\x20\x22/'+_0x44752f+_0x4a6c55(0x1bd));continue;}const _0x9176a3=_0x232640[_0x4a6c55(0x187)](',');for(const _0x33c24b of _0x9176a3){!this['_isValidRange'](_0x33c24b,_0x1c4303[_0x3bef37])&&_0x3e85e2[_0x4a6c55(0x18d)](_0x4a6c55(0x19a)+_0x349e13[_0x3bef37]+'\x22:\x20nilai\x20\x22'+_0x33c24b+_0x4a6c55(0x1d8)+_0x1c4303[_0x3bef37][_0x4a6c55(0x1d5)]+'-'+_0x1c4303[_0x3bef37][_0x4a6c55(0x18c)]);}}return{'valid':_0x785b07[_0x4a6c55(0x191)](_0x3e85e2[_0x4a6c55(0x1c8)],0x0),'errors':_0x3e85e2};}['_isValidRange'](_0x3abcd5,_0xbf2c63){const _0x1fc08b=a0_0x13a87d,_0x3909ea={'TnwSA':function(_0x1e5748,_0x5553c6){return _0x1e5748>=_0x5553c6;},'goPGn':function(_0x114668,_0x4c8c3f){return _0x114668<=_0x4c8c3f;},'LzVFX':function(_0x3545a3,_0x269561){return _0x3545a3>=_0x269561;}};if(_0x3abcd5[_0x1fc08b(0x1a0)]('-')){const [_0x2fbeba,_0x1c4740]=_0x3abcd5['split']('-')['map'](Number);return!isNaN(_0x2fbeba)&&!isNaN(_0x1c4740)&&_0x2fbeba>=_0xbf2c63['min']&&_0x2fbeba<=_0xbf2c63[_0x1fc08b(0x18c)]&&_0x3909ea[_0x1fc08b(0x1cc)](_0x1c4740,_0xbf2c63[_0x1fc08b(0x1d5)])&&_0x3909ea[_0x1fc08b(0x192)](_0x1c4740,_0xbf2c63[_0x1fc08b(0x18c)])&&_0x2fbeba<=_0x1c4740;}const _0xdf8956=parseInt(_0x3abcd5,0xa);return!isNaN(_0xdf8956)&&_0x3909ea[_0x1fc08b(0x1c4)](_0xdf8956,_0xbf2c63[_0x1fc08b(0x1d5)])&&_0xdf8956<=_0xbf2c63[_0x1fc08b(0x18c)];}[a0_0x13a87d(0x194)](_0x2df2d5){const _0x5a1092=a0_0x13a87d;if(!VALID_QUEUE_NAMES['includes'](_0x2df2d5))return{'valid':![],'errors':[_0x5a1092(0x1af)+_0x2df2d5+'\x22\x20tidak\x20valid.\x20Pilihan:\x20'+VALID_QUEUE_NAMES[_0x5a1092(0x199)](',\x20')]};return{'valid':!![],'errors':[]};}['validateRetryConfig'](_0x1c71d2){const _0x27c7b5=a0_0x13a87d,_0xcad908={'jIUHQ':function(_0x40357d,_0x3a676e){return _0x40357d!==_0x3a676e;},'ckNSH':_0x27c7b5(0x1ce),'guGSD':function(_0x4b15fb,_0x59ceb9){return _0x4b15fb<_0x59ceb9;},'WTUJq':function(_0xf6ccca,_0x2575a7){return _0xf6ccca>_0x2575a7;},'Bjahl':'Field\x20\x22retry.maxAttempts\x22\x20harus\x20number\x20antara\x201-10','mTxFK':function(_0xf0b21,_0x567668){return _0xf0b21<=_0x567668;},'yGdCE':'Field\x20\x22retry.initialDelay\x22\x20harus\x20number\x20>\x200\x20(dalam\x20ms)','rHHyD':function(_0x49ccc9,_0x1c9eb5){return _0x49ccc9===_0x1c9eb5;}},_0x3e46b7=[];return _0xcad908[_0x27c7b5(0x185)](_0x1c71d2['maxAttempts'],undefined)&&((_0xcad908[_0x27c7b5(0x185)](typeof _0x1c71d2[_0x27c7b5(0x1d7)],_0xcad908['ckNSH'])||_0xcad908['guGSD'](_0x1c71d2[_0x27c7b5(0x1d7)],0x1)||_0xcad908['WTUJq'](_0x1c71d2[_0x27c7b5(0x1d7)],0xa))&&_0x3e46b7[_0x27c7b5(0x18d)](_0xcad908[_0x27c7b5(0x1d2)])),_0x1c71d2['backoff']!==undefined&&(!VALID_BACKOFF_TYPES['includes'](_0x1c71d2[_0x27c7b5(0x1a9)])&&_0x3e46b7['push']('Field\x20\x22retry.backoff\x22\x20harus\x20\x22'+VALID_BACKOFF_TYPES['join'](_0x27c7b5(0x18a))+'\x22')),_0x1c71d2['initialDelay']!==undefined&&((typeof _0x1c71d2[_0x27c7b5(0x19e)]!==_0xcad908['ckNSH']||_0xcad908[_0x27c7b5(0x1a2)](_0x1c71d2[_0x27c7b5(0x19e)],0x0))&&_0x3e46b7[_0x27c7b5(0x18d)](_0xcad908[_0x27c7b5(0x1b8)])),{'valid':_0xcad908['rHHyD'](_0x3e46b7['length'],0x0),'errors':_0x3e46b7};}['validateHandlerExists'](_0x171136,_0x31a9ad){const _0x2c5899=a0_0x13a87d,_0x2da66c={'zFHlz':'src'},_0x1bcf86=path[_0x2c5899(0x199)](_0x31a9ad,_0x2da66c[_0x2c5899(0x181)],_0x2c5899(0x17d),_0x171136+_0x2c5899(0x1ae));if(!fs[_0x2c5899(0x1a4)](_0x1bcf86))return{'valid':![],'errors':[_0x2c5899(0x18f)+_0x171136+'.js\x20(absolute:\x20'+_0x1bcf86+')']};return{'valid':!![],'errors':[]};}}module['exports']=new JobValidator();function a0_0x48ee(){const _0x5645d1=['EevHANy','AKLvsfe','DhjPBq','C3bSAxq','zxHWB25LBNrPywW','nK5Pu0HHDG','iIbHDgf1ici','CxvLDwu','Bwf4','ChvZAa','mtqZntrSru9hr0y','sgfUzgXLCIbMAwXLihrPzgfRigrPDgvTDwTHBJOGC3jJl2PVyNmV','iJOGyMfZzsaI','CeTWtxe','z29qr24','q3f5zge','DMfSAwrHDgvrDwv1zu5HBwu','DMfSAwq','rNLZAwq','z21Qse0','AxnbCNjHEq','AM9PBG','q3jVBIbMAwvSzcaI','nJKWmti5mgntA2zdvW','C3rYAw5N','oti4mdq0CKzRA1fd','Aw5PDgLHBerLBgf5','Bwv0ywrHDge','Aw5JBhvKzxm','wMjVs0u','Bvr4rKS','CfnhvKm','zxHPC3rZu3LUyW','rMLLBgqGiM1LDgfKyxrHiIbOyxj1CYbIzxj1CgeGB2jQzwn0','AeHqAg4','zxjYB3jZ','rMLLBgqGiM5HBwuIigHHCNvZihnSDwCGzM9YBwf0icHSB3DLCMnHC2uSigrHC2GPoIaI','yMfJA29MzG','mtC0ou9AyLLxrG','rMLLBgqGiNrPBwvVDxqIigHHCNvZig51BwjLCIa+idaGkgrHBgfTig1Zkq','zML4zwq','y29Uy3vYCMvUy3K','lMPZ','uxvLDwuGiG','nZK3odbgr2vHEva','q3jVBIbLEhbYzxnZAw9UigHHCNvZiduGzMLLBgqGkg1PBNv0zsbOB3vYigrHEsbTB250Acb3zwvRzgf5ksWGzgL0zw11A2fUia','BMfTzq','yM9VBgvHBG','DgLTzw91Da','B2jQzwn0','rMLLBgqGiMHHBMrSzxiIihDHAMLIigrPAxnPicHWyxrOihjLBgf0AwyGzgfYAsbZCMmVAM9ICY8P','s2PnBgu','EuDKq0u','zgfmuKe','DMfSAwrHDgvdCM9UrxHWCMvZC2LVBG','Dvniz1e','rMLLBgqGiNr5CguIigHHCNvZicjJCM9UiIWGzgL0zw11A2fUoIaI','iIbOyxj1CYbHBMDRysa+ida','tMDSvu8','uhniqxu','zMn6Che','CMv0CNK','mtu0odG1nLPLtNf3uG','zgvMyxvSDa','thPwrLG','AvvIs1i','DMfSAwrHDgvszxrYEunVBMzPzW','mJy3zMPqCgPj','BgvUz3rO','zw5HyMXLza','mZaYmZmWnxLSBK9zza','n0Tvv1fKAq','vg53u0e','su9JAgW','BNvTyMvY','Aw1AEgO','sM9jvwO','Bw9UDgG','qMPHAgW','C2nOzwr1Bgu','DwPqANi','BwLU','iIb0AwrHAYb2ywXPza','Bwf4qxr0zw1WDhm','iIbKAsbSDwfYihjHBMDLia','AM9ICW','Dfflu0m','Cgf0Aa','v0jMywy','EKziBhO','DhLWzq','mZu2nZa2CxvWCNz5'];a0_0x48ee=function(){return _0x5645d1;};return a0_0x48ee();}
|
|
1
|
+
const a0_0x50767b=a0_0xf270;(function(_0x43980b,_0x173935){const _0x19a61a=a0_0xf270,_0x3dae33=_0x43980b();while(!![]){try{const _0x21a53a=-parseInt(_0x19a61a(0x1d3))/0x1+-parseInt(_0x19a61a(0x1bb))/0x2*(-parseInt(_0x19a61a(0x1b9))/0x3)+-parseInt(_0x19a61a(0x1c5))/0x4+parseInt(_0x19a61a(0x1a2))/0x5*(parseInt(_0x19a61a(0x1ac))/0x6)+-parseInt(_0x19a61a(0x1ab))/0x7*(parseInt(_0x19a61a(0x1ba))/0x8)+-parseInt(_0x19a61a(0x1c1))/0x9+-parseInt(_0x19a61a(0x1e4))/0xa*(-parseInt(_0x19a61a(0x1d1))/0xb);if(_0x21a53a===_0x173935)break;else _0x3dae33['push'](_0x3dae33['shift']());}catch(_0x5a03ce){_0x3dae33['push'](_0x3dae33['shift']());}}}(a0_0x382f,0xa42ea));function a0_0x382f(){const _0x118c6f=['y3DpsNO','DMfSAwrHDgvrDwv1zu5HBwu','Bwf4qxr0zw1WDhm','Bg93lxbYAw9YAxr5','C290y2e','mZG1yKDir0Xq','rMLLBgqGiNjLDhj5iIbOyxj1CYbIzxj1CgeGB2jQzwn0','mtm0mdq0nwLytg5hra','rMLLBgqGiMvUywjSzwqIigHHCNvZigjVB2XLyw4','AgfUzgXLCG','y3jVBG','zw5HyMXLza','thHMrwe','vM9qD0u','v0POzKy','wNzUEKS','CMv0CNK','ChvZAa','iJOGC3rLCcaIlW','C3bSAxq','C3rYAw5N','C3jJ','BNvTyMvY','q3jVBIbMAwvSzcaI','nZCZmtCWzNz6rhfy','qMLozxq','Bwv0ywrHDge','iJOGyMfZzsaI','uejfA2i','lMPZ','BwLU','rMLLBgqGiNjLDhj5lMLUAxrPywXezwXHEsiGAgfYDxmGBNvTyMvYid4GmcaOzgfSyw0GBxmP','AxnbCNjHEq','uNfHBwG','rMLLBgqGiNr5CguIigHHCNvZicjJCM9UiIWGzgL0zw11A2fUoIaI','rMLLBgqGiM5HBwuIigHHCNvZihnSDwCGzM9YBwf0icHSB3DLCMnHC2uSigrHC2GPoIaI','zfzHCLO','BMfTzq','mtKYmZqWuhL0qwve','vgDzDhG','zxjYB3jZ','zxHWB25LBNrPywW','rMLLBgqGiNnJAgvKDwXLiIb3ywPPyIbKAwLZAsaOy3jVBIbLEhbYzxnZAw9Uihn0CMLUzYK','DMfSAwrHDgviyw5KBgvYrxHPC3rZ','DMfSAwrHDgvdB25MAwC','C2nOzwr1Bgu','t0TwsLK','mJmYodqWm2rsEKn5CG','mtC0Egf0sLn4','zKr0tgG','DMfSAwq','CujJyxi','B2jQzwn0','Bwf4','x2LZvMfSAwrsyw5Nzq','yM9VBgvHBG','DhLWzq','DMfSAwrHDgvdCM9UrxHWCMvZC2LVBG','DLHyuKW','rMLLBgqGiNjLDhj5lM1HEef0DgvTChrZiIbOyxj1CYbUDw1IzxiGyw50yxjHideTmta','y29Uy3vYCMvUy3K','mZbgBNv6rhu','ofbns1jzsq','mZaWntjOuLLADxG','iIb0AwrHAYb2ywXPzc4GugLSAwHHBJOG','zgf5lw9MlxDLzwS','reTyCw8','y2jdtuK','igzPzwXKoIaI','nZe3mdCYm2jwvw5tuq','Aw5JBhvKzxm','DMfSAwrHDgvszxrYEunVBMzPzW','rMLLBgqGiNr5CguIihDHAMLIigrPAxnPicHZDhjPBMCP','mZmXodq2nhPLAK9Zqq','EvDptgG','Aw5PDgLHBerLBgf5','zNv5EKm','BwfW','BgvUz3rO','iJOGBMLSywKGiG'];a0_0x382f=function(){return _0x118c6f;};return a0_0x382f();}const fs=require('fs'),path=require('path'),VALID_QUEUE_NAMES=['high-priority','default',a0_0x50767b(0x1cf)],VALID_BACKOFF_TYPES=['fixed',a0_0x50767b(0x1a5)],SLUG_REGEX=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;function a0_0xf270(_0x131e68,_0x20afd4){_0x131e68=_0x131e68-0x19f;const _0x382fc0=a0_0x382f();let _0xf270d0=_0x382fc0[_0x131e68];if(a0_0xf270['nBZpMX']===undefined){var _0x31d1da=function(_0x151295){const _0x3174b6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4a73bf='',_0x55f284='';for(let _0x52971e=0x0,_0x294782,_0x23d07f,_0x396359=0x0;_0x23d07f=_0x151295['charAt'](_0x396359++);~_0x23d07f&&(_0x294782=_0x52971e%0x4?_0x294782*0x40+_0x23d07f:_0x23d07f,_0x52971e++%0x4)?_0x4a73bf+=String['fromCharCode'](0xff&_0x294782>>(-0x2*_0x52971e&0x6)):0x0){_0x23d07f=_0x3174b6['indexOf'](_0x23d07f);}for(let _0x100e26=0x0,_0x2a0673=_0x4a73bf['length'];_0x100e26<_0x2a0673;_0x100e26++){_0x55f284+='%'+('00'+_0x4a73bf['charCodeAt'](_0x100e26)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x55f284);};a0_0xf270['ddIDpw']=_0x31d1da,a0_0xf270['rySOQk']={},a0_0xf270['nBZpMX']=!![];}const _0x480fbf=_0x382fc0[0x0],_0x133cac=_0x131e68+_0x480fbf,_0x17a372=a0_0xf270['rySOQk'][_0x133cac];return!_0x17a372?(_0xf270d0=a0_0xf270['ddIDpw'](_0xf270d0),a0_0xf270['rySOQk'][_0x133cac]=_0xf270d0):_0xf270d0=_0x17a372,_0xf270d0;}class JobValidator{[a0_0x50767b(0x1a8)](_0x3bac86,_0x27bcbf){const _0x195940=a0_0x50767b,_0x40098f={'ZvnzK':function(_0x2aaea9,_0x487f27){return _0x2aaea9!==_0x487f27;},'vXXRL':_0x195940(0x1e0),'OZBWy':_0x195940(0x1c4),'LPxDE':_0x195940(0x1d6),'OKVJY':function(_0x2f1387,_0x1332dd){return _0x2f1387!==_0x1332dd;},'KhWlM':function(_0xa1c2e5,_0x34c6d0){return _0xa1c2e5<=_0x34c6d0;},'GYCbu':'Field\x20\x22timeout\x22\x20harus\x20number\x20>\x200\x20(dalam\x20ms)','Rqamh':function(_0x2047e0,_0xa28cd){return _0x2047e0!==_0xa28cd;},'JKOHN':function(_0x3701a0,_0xcf642c){return _0x3701a0<_0xcf642c;},'BiNet':function(_0x1f4e1b,_0x4b95c5){return _0x1f4e1b>_0x4b95c5;},'DKXqo':'Field\x20\x22concurrency\x22\x20harus\x20number\x20antara\x201-50','sotca':function(_0x981e90,_0x20a6db){return _0x981e90!==_0x20a6db;},'cbCMI':_0x195940(0x1b0),'dVarZ':function(_0x4d4eed,_0x5b4ad0){return _0x4d4eed===_0x5b4ad0;},'XdvGB':function(_0x11fe70,_0x31292d){return _0x11fe70!==_0x31292d;},'LxfEa':function(_0x5aa355,_0x4ca7bb){return _0x5aa355===_0x4ca7bb;},'aGbvJ':'Field\x20\x22metadata\x22\x20harus\x20berupa\x20object','fDtLh':function(_0xe55820,_0x16d3ba){return _0xe55820===_0x16d3ba;}},_0x3882c0=[];if(!_0x3bac86||_0x40098f[_0x195940(0x1db)](typeof _0x3bac86,_0x195940(0x1b0)))return{'valid':![],'errors':['Config\x20harus\x20berupa\x20object']};if(!_0x3bac86[_0x195940(0x1a1)]||typeof _0x3bac86[_0x195940(0x1a1)]!==_0x40098f[_0x195940(0x1b6)])_0x3882c0[_0x195940(0x1dd)]('Field\x20\x22name\x22\x20wajib\x20diisi\x20(string)');else!SLUG_REGEX['test'](_0x3bac86['name'])&&_0x3882c0[_0x195940(0x1dd)](_0x195940(0x19f)+_0x3bac86[_0x195940(0x1a1)]+'\x22');if(!_0x3bac86[_0x195940(0x1b4)]||_0x40098f['ZvnzK'](typeof _0x3bac86[_0x195940(0x1b4)],'string'))_0x3882c0['push'](_0x40098f['OZBWy']);else _0x3bac86[_0x195940(0x1b4)]!==_0x40098f['LPxDE']&&_0x3882c0[_0x195940(0x1dd)](_0x195940(0x1ee)+_0x3bac86['type']+'\x22');if(!_0x3bac86['schedule']||typeof _0x3bac86[_0x195940(0x1a9)]!=='string')_0x3882c0['push'](_0x195940(0x1a6));else{const _0x12f36c=this[_0x195940(0x1b5)](_0x3bac86[_0x195940(0x1a9)]);!_0x12f36c[_0x195940(0x1ae)]&&_0x3882c0['push'](..._0x12f36c[_0x195940(0x1a4)]);}if(!_0x3bac86[_0x195940(0x1d5)]||_0x40098f[_0x195940(0x1aa)](typeof _0x3bac86[_0x195940(0x1d5)],_0x40098f[_0x195940(0x1b6)]))_0x3882c0[_0x195940(0x1dd)]('Field\x20\x22handler\x22\x20wajib\x20diisi\x20(path\x20relatif\x20dari\x20src/jobs/)');else{if(_0x27bcbf){const _0x9bed12=this[_0x195940(0x1a7)](_0x3bac86[_0x195940(0x1d5)],_0x27bcbf);!_0x9bed12['valid']&&_0x3882c0[_0x195940(0x1dd)](..._0x9bed12[_0x195940(0x1a4)]);}}_0x3bac86[_0x195940(0x1d7)]!==undefined&&typeof _0x3bac86['enabled']!==_0x195940(0x1b3)&&_0x3882c0['push'](_0x195940(0x1d4));_0x40098f['ZvnzK'](_0x3bac86['timeout'],undefined)&&((typeof _0x3bac86['timeout']!==_0x195940(0x1e2)||_0x40098f['KhWlM'](_0x3bac86['timeout'],0x0))&&_0x3882c0['push'](_0x40098f['GYCbu']));if(_0x40098f[_0x195940(0x1db)](_0x3bac86['queue'],undefined)){const _0x386fc8=this[_0x195940(0x1cd)](_0x3bac86['queue']);!_0x386fc8[_0x195940(0x1ae)]&&_0x3882c0['push'](..._0x386fc8['errors']);}_0x40098f[_0x195940(0x1ed)](_0x3bac86['concurrency'],undefined)&&((typeof _0x3bac86['concurrency']!=='number'||_0x40098f['JKOHN'](_0x3bac86['concurrency'],0x1)||_0x40098f[_0x195940(0x1e5)](_0x3bac86[_0x195940(0x1b8)],0x32))&&_0x3882c0[_0x195940(0x1dd)](_0x40098f[_0x195940(0x1be)]));if(_0x40098f['sotca'](_0x3bac86['retry'],undefined)){if(typeof _0x3bac86[_0x195940(0x1dc)]!==_0x40098f[_0x195940(0x1bf)]||_0x40098f[_0x195940(0x1a0)](_0x3bac86['retry'],null))_0x3882c0[_0x195940(0x1dd)](_0x195940(0x1d2));else{const _0x101b14=this['validateRetryConfig'](_0x3bac86['retry']);!_0x101b14['valid']&&_0x3882c0['push'](..._0x101b14[_0x195940(0x1a4)]);}}return _0x40098f[_0x195940(0x1d0)](_0x3bac86[_0x195940(0x1e6)],undefined)&&((_0x40098f['XdvGB'](typeof _0x3bac86[_0x195940(0x1e6)],_0x40098f[_0x195940(0x1bf)])||_0x40098f[_0x195940(0x1d8)](_0x3bac86['metadata'],null)||Array[_0x195940(0x1ec)](_0x3bac86[_0x195940(0x1e6)]))&&_0x3882c0[_0x195940(0x1dd)](_0x40098f['aGbvJ'])),{'valid':_0x40098f[_0x195940(0x1ad)](_0x3882c0[_0x195940(0x1ca)],0x0),'errors':_0x3882c0};}[a0_0x50767b(0x1b5)](_0x5f5f7){const _0x3e0151=a0_0x50767b,_0xe8a6a2=[],_0x12bc88=_0x5f5f7['trim']()[_0x3e0151(0x1df)](/\s+/);if(_0x12bc88['length']!==0x5)return _0xe8a6a2[_0x3e0151(0x1dd)]('Cron\x20expression\x20harus\x205\x20field\x20(minute\x20hour\x20day\x20month\x20weekday),\x20ditemukan\x20'+_0x12bc88[_0x3e0151(0x1ca)]+_0x3e0151(0x1c0)+_0x5f5f7+'\x22'),{'valid':![],'errors':_0xe8a6a2};const _0x4bd877=['minute','hour','day-of-month','month',_0x3e0151(0x1bd)],_0x475b52=[{'min':0x0,'max':0x3b},{'min':0x0,'max':0x17},{'min':0x1,'max':0x1f},{'min':0x1,'max':0xc},{'min':0x0,'max':0x7}],_0x165e31=/^(\*|[0-9]+(-[0-9]+)?)([,/](\*|[0-9]+(-[0-9]+)?))*$/;for(let _0x31315e=0x0;_0x31315e<0x5;_0x31315e++){const _0x39991c=_0x12bc88[_0x31315e];if(_0x39991c==='*')continue;if(_0x39991c[_0x3e0151(0x1c2)]('/')){const [_0x2ca0dd,_0x55c16f]=_0x39991c['split']('/');_0x2ca0dd!=='*'&&!this[_0x3e0151(0x1b2)](_0x2ca0dd,_0x475b52[_0x31315e])&&_0xe8a6a2['push'](_0x3e0151(0x1e3)+_0x4bd877[_0x31315e]+_0x3e0151(0x1e7)+_0x2ca0dd+'\x22\x20tidak\x20valid');const _0x54290c=parseInt(_0x55c16f,0xa);(isNaN(_0x54290c)||_0x54290c<0x1)&&_0xe8a6a2[_0x3e0151(0x1dd)](_0x3e0151(0x1e3)+_0x4bd877[_0x31315e]+_0x3e0151(0x1de)+_0x55c16f+'\x22\x20harus\x20angka\x20>\x200');continue;}const _0x3d7bdc=_0x39991c[_0x3e0151(0x1df)](',');for(const _0xb9a3b1 of _0x3d7bdc){!this['_isValidRange'](_0xb9a3b1,_0x475b52[_0x31315e])&&_0xe8a6a2['push'](_0x3e0151(0x1e3)+_0x4bd877[_0x31315e]+_0x3e0151(0x1cb)+_0xb9a3b1+'\x22\x20di\x20luar\x20range\x20'+_0x475b52[_0x31315e][_0x3e0151(0x1ea)]+'-'+_0x475b52[_0x31315e][_0x3e0151(0x1b1)]);}}return{'valid':_0xe8a6a2[_0x3e0151(0x1ca)]===0x0,'errors':_0xe8a6a2};}['_isValidRange'](_0x223357,_0x375214){const _0x1121f5=a0_0x50767b,_0x48376e={'cwOJz':function(_0x2d925e,_0x56fa9d){return _0x2d925e(_0x56fa9d);},'WJhfF':function(_0x3fe7dd,_0x2089fb){return _0x3fe7dd>=_0x2089fb;},'PBEkb':function(_0xf871a9,_0x1f0f13){return _0xf871a9<=_0x1f0f13;},'fuyzC':function(_0x498049,_0x5271ed){return _0x498049<=_0x5271ed;},'nvWCL':function(_0x50451a,_0x562f34,_0x5d34b1){return _0x50451a(_0x562f34,_0x5d34b1);}};if(_0x223357[_0x1121f5(0x1c2)]('-')){const [_0x245f03,_0x174283]=_0x223357[_0x1121f5(0x1df)]('-')[_0x1121f5(0x1c9)](Number);return!isNaN(_0x245f03)&&!_0x48376e[_0x1121f5(0x1cc)](isNaN,_0x174283)&&_0x48376e['WJhfF'](_0x245f03,_0x375214[_0x1121f5(0x1ea)])&&_0x48376e[_0x1121f5(0x1e8)](_0x245f03,_0x375214[_0x1121f5(0x1b1)])&&_0x174283>=_0x375214[_0x1121f5(0x1ea)]&&_0x48376e[_0x1121f5(0x1c8)](_0x174283,_0x375214[_0x1121f5(0x1b1)])&&_0x48376e[_0x1121f5(0x1e8)](_0x245f03,_0x174283);}const _0xc75304=_0x48376e['nvWCL'](parseInt,_0x223357,0xa);return!_0x48376e[_0x1121f5(0x1cc)](isNaN,_0xc75304)&&_0x48376e[_0x1121f5(0x1da)](_0xc75304,_0x375214[_0x1121f5(0x1ea)])&&_0xc75304<=_0x375214['max'];}['validateQueueName'](_0x3953ad){const _0x4cd38f=a0_0x50767b;if(!VALID_QUEUE_NAMES[_0x4cd38f(0x1c2)](_0x3953ad))return{'valid':![],'errors':['Queue\x20\x22'+_0x3953ad+_0x4cd38f(0x1bc)+VALID_QUEUE_NAMES['join'](',\x20')]};return{'valid':!![],'errors':[]};}[a0_0x50767b(0x1c3)](_0xf67183){const _0x514533=a0_0x50767b,_0x5bfc13={'fbCzN':function(_0x13408e,_0x4954bc){return _0x13408e!==_0x4954bc;},'VoPwE':function(_0xea4cd8,_0x3e460f){return _0xea4cd8!==_0x3e460f;},'qBcar':_0x514533(0x1b7),'ajHYz':function(_0x40daa3,_0x3465d7){return _0x40daa3<=_0x3465d7;},'eWrjw':_0x514533(0x1eb),'TgYtx':function(_0x5dc17b,_0x20d638){return _0x5dc17b===_0x20d638;}},_0x131d1a=[];return _0x5bfc13['fbCzN'](_0xf67183[_0x514533(0x1ce)],undefined)&&((_0x5bfc13[_0x514533(0x1d9)](typeof _0xf67183[_0x514533(0x1ce)],_0x514533(0x1e2))||_0xf67183[_0x514533(0x1ce)]<0x1||_0xf67183[_0x514533(0x1ce)]>0xa)&&_0x131d1a['push'](_0x5bfc13[_0x514533(0x1af)])),_0xf67183['backoff']!==undefined&&(!VALID_BACKOFF_TYPES['includes'](_0xf67183['backoff'])&&_0x131d1a['push']('Field\x20\x22retry.backoff\x22\x20harus\x20\x22'+VALID_BACKOFF_TYPES['join']('\x22\x20atau\x20\x22')+'\x22')),_0xf67183[_0x514533(0x1c7)]!==undefined&&((typeof _0xf67183[_0x514533(0x1c7)]!=='number'||_0x5bfc13['ajHYz'](_0xf67183[_0x514533(0x1c7)],0x0))&&_0x131d1a[_0x514533(0x1dd)](_0x5bfc13['eWrjw'])),{'valid':_0x5bfc13[_0x514533(0x1a3)](_0x131d1a['length'],0x0),'errors':_0x131d1a};}['validateHandlerExists'](_0x4f737f,_0x527e22){const _0x5852e4=a0_0x50767b,_0x24841d={'yWOLh':_0x5852e4(0x1e1),'VyyqC':'jobs'},_0x3dfe75=path['join'](_0x527e22,_0x24841d[_0x5852e4(0x1c6)],_0x24841d['VyyqC'],_0x4f737f+_0x5852e4(0x1e9));if(!fs['existsSync'](_0x3dfe75))return{'valid':![],'errors':['Handler\x20file\x20tidak\x20ditemukan:\x20src/jobs/'+_0x4f737f+'.js\x20(absolute:\x20'+_0x3dfe75+')']};return{'valid':!![],'errors':[]};}}module['exports']=new JobValidator();
|