@restforgejs/platform 4.1.0 → 4.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/LICENSE.md +5 -1
  2. package/README.md +30 -14
  3. package/bin/sdf-tools.exe +0 -0
  4. package/build-info.json +2 -2
  5. package/cli/consumer-deploy.js +1 -1
  6. package/cli/consumer.js +1 -1
  7. package/generators/cli/endpoint/create.js +42 -3
  8. package/generators/cli/schema/apply.js +525 -0
  9. package/generators/cli/schema/diff.js +321 -0
  10. package/generators/cli/schema/generate-ddl.js +7 -10
  11. package/generators/cli/schema/init.js +95 -172
  12. package/generators/cli/schema/migrate.js +10 -16
  13. package/generators/cli/schema/models.js +8 -12
  14. package/generators/cli/schema/template.js +222 -0
  15. package/generators/cli/schema/validate.js +8 -12
  16. package/generators/cli-entry.js +17 -2
  17. package/generators/lib/dbschema-kit/apply-engine.js +582 -0
  18. package/generators/lib/dbschema-kit/diff-engine.js +703 -0
  19. package/generators/lib/dbschema-kit/diff-reporter.js +272 -0
  20. package/generators/lib/dbschema-kit/emitters/alter-table.js +275 -0
  21. package/generators/lib/payload/endpoint-schema-validator.js +171 -0
  22. package/generators/lib/payload/payload-runner.js +137 -220
  23. package/generators/lib/payload/schema-diff.js +277 -0
  24. package/generators/lib/utils/audit-columns.js +181 -0
  25. package/generators/lib/utils/cli-output.js +17 -0
  26. package/generators/lib/utils/database-introspector.js +16 -13
  27. package/integrity-manifest.json +8 -8
  28. package/package.json +4 -4
  29. package/scripts/check-install.js +45 -45
  30. package/scripts/verify-integrity.js +1 -1
  31. package/server.js +1 -1
  32. package/src/components/handlers/adjust_handler.js +1 -1
  33. package/src/components/handlers/audit_handler.js +1 -1
  34. package/src/components/handlers/delete_handler.js +1 -1
  35. package/src/components/handlers/export_handler.js +1 -1
  36. package/src/components/handlers/import_handler.js +1 -1
  37. package/src/components/handlers/insert_handler.js +1 -1
  38. package/src/components/handlers/update_handler.js +1 -1
  39. package/src/components/handlers/upload_handler.js +1 -1
  40. package/src/components/handlers/workflow_handler.js +1 -1
  41. package/src/components/integrations/webhook.js +1 -1
  42. package/src/consumers/baseConsumer.js +1 -1
  43. package/src/consumers/declarativeMapper.js +1 -1
  44. package/src/consumers/handlers/apiHandler.js +1 -1
  45. package/src/consumers/handlers/consoleHandler.js +1 -1
  46. package/src/consumers/handlers/databaseHandler.js +1 -1
  47. package/src/consumers/handlers/index.js +1 -1
  48. package/src/consumers/handlers/kafkaHandler.js +1 -1
  49. package/src/consumers/index.js +1 -1
  50. package/src/consumers/messageTransformer.js +1 -1
  51. package/src/consumers/validator.js +1 -1
  52. package/src/core/db/dialect/base-dialect.js +1 -1
  53. package/src/core/db/dialect/index.js +1 -1
  54. package/src/core/db/dialect/mysql-dialect.js +1 -1
  55. package/src/core/db/dialect/oracle-dialect.js +1 -1
  56. package/src/core/db/dialect/postgres-dialect.js +1 -1
  57. package/src/core/db/dialect/sqlite-dialect.js +1 -1
  58. package/src/core/db/flatten-helper.js +1 -1
  59. package/src/core/db/query-builder-error.js +1 -1
  60. package/src/core/db/query-builder.js +1 -1
  61. package/src/core/db/relation-helper.js +1 -1
  62. package/src/core/handlers/delete_handler.js +1 -1
  63. package/src/core/handlers/insert_handler.js +1 -1
  64. package/src/core/handlers/update_handler.js +1 -1
  65. package/src/core/models/base-model.js +1 -1
  66. package/src/core/utils/cache-manager.js +1 -1
  67. package/src/core/utils/component-engine.js +1 -1
  68. package/src/core/utils/context-builder.js +1 -1
  69. package/src/core/utils/datetime-formatter.js +1 -1
  70. package/src/core/utils/datetime-parser.js +1 -1
  71. package/src/core/utils/db.js +1 -1
  72. package/src/core/utils/logger.js +1 -1
  73. package/src/core/utils/payload-loader.js +1 -1
  74. package/src/core/utils/security-checks.js +1 -1
  75. package/src/middleware/body-options.js +1 -1
  76. package/src/middleware/cors.js +1 -1
  77. package/src/middleware/idempotency.js +1 -1
  78. package/src/middleware/rate-limiter.js +1 -1
  79. package/src/middleware/request-logger.js +1 -1
  80. package/src/middleware/security-headers.js +1 -1
  81. package/src/models/base-model-mysql.js +1 -1
  82. package/src/models/base-model-oracle.js +1 -1
  83. package/src/models/base-model-sqlite.js +1 -1
  84. package/src/models/base-model.js +1 -1
  85. package/src/pro/caching/redis-client.js +1 -1
  86. package/src/pro/caching/redis-helper.js +1 -1
  87. package/src/pro/consumers/baseConsumer.js +1 -1
  88. package/src/pro/consumers/declarativeMapper.js +1 -1
  89. package/src/pro/consumers/handlers/apiHandler.js +1 -1
  90. package/src/pro/consumers/handlers/consoleHandler.js +1 -1
  91. package/src/pro/consumers/handlers/databaseHandler.js +1 -1
  92. package/src/pro/consumers/handlers/index.js +1 -1
  93. package/src/pro/consumers/handlers/kafkaHandler.js +1 -1
  94. package/src/pro/consumers/index.js +1 -1
  95. package/src/pro/consumers/messageTransformer.js +1 -1
  96. package/src/pro/consumers/validator.js +1 -1
  97. package/src/pro/database/base-model-mysql.js +1 -1
  98. package/src/pro/database/base-model-oracle.js +1 -1
  99. package/src/pro/database/base-model-sqlite.js +1 -1
  100. package/src/pro/database/db-mysql.js +1 -1
  101. package/src/pro/database/db-oracle.js +1 -1
  102. package/src/pro/database/db-sqlite.js +1 -1
  103. package/src/pro/excel/excel-generator.js +1 -1
  104. package/src/pro/excel/excel-parser.js +1 -1
  105. package/src/pro/excel/export-service.js +1 -1
  106. package/src/pro/excel/export_handler.js +1 -1
  107. package/src/pro/excel/import-service.js +1 -1
  108. package/src/pro/excel/import-validator.js +1 -1
  109. package/src/pro/excel/import_handler.js +1 -1
  110. package/src/pro/excel/upsert-builder.js +1 -1
  111. package/src/pro/idgen/idgen-routes.js +1 -1
  112. package/src/pro/integrations/lookup-resolver.js +1 -1
  113. package/src/pro/integrations/upload-handler-v2.js +1 -1
  114. package/src/pro/integrations/upload-handler.js +1 -1
  115. package/src/pro/integrations/webhook.js +1 -1
  116. package/src/pro/locking/lock-routes.js +1 -1
  117. package/src/pro/locking/resource-lock-manager.js +1 -1
  118. package/src/pro/messaging/kafkaConsumerService.js +1 -1
  119. package/src/pro/messaging/kafkaService.js +1 -1
  120. package/src/pro/messaging/messagehubService.js +1 -1
  121. package/src/pro/messaging/rabbitmqService.js +1 -1
  122. package/src/pro/scheduler/job-manager.js +1 -1
  123. package/src/pro/scheduler/job-routes.js +1 -1
  124. package/src/pro/scheduler/job-validator.js +1 -1
  125. package/src/pro/storage/base-storage-provider.js +1 -1
  126. package/src/pro/storage/file-metadata-helper.js +1 -1
  127. package/src/pro/storage/index.js +1 -1
  128. package/src/pro/storage/local-storage-provider.js +1 -1
  129. package/src/pro/storage/s3-storage-provider.js +1 -1
  130. package/src/pro/storage/upload-cleanup-job.js +1 -1
  131. package/src/pro/storage/upload-cleanup-scheduler.js +1 -1
  132. package/src/pro/storage/upload-pending-tracker.js +1 -1
  133. package/src/pro/websocket/broadcast-helper.js +1 -1
  134. package/src/pro/websocket/index.js +1 -1
  135. package/src/pro/websocket/livesync-server.js +1 -1
  136. package/src/pro/websocket/ws-broadcaster.js +1 -1
  137. package/src/services/export-service.js +1 -1
  138. package/src/services/import-service.js +1 -1
  139. package/src/services/kafkaConsumerService.js +1 -1
  140. package/src/services/kafkaService.js +1 -1
  141. package/src/services/messagehubService.js +1 -1
  142. package/src/services/rabbitmqService.js +1 -1
  143. package/src/utils/cache-invalidation-registry.js +1 -1
  144. package/src/utils/cache-manager.js +1 -1
  145. package/src/utils/component-engine.js +1 -1
  146. package/src/utils/config-extractor.js +1 -1
  147. package/src/utils/consumerLogger.js +1 -1
  148. package/src/utils/context-builder.js +1 -1
  149. package/src/utils/dashboard-helpers.js +1 -1
  150. package/src/utils/dateHelper.js +1 -1
  151. package/src/utils/datetime-formatter.js +1 -1
  152. package/src/utils/datetime-parser.js +1 -1
  153. package/src/utils/db-bootstrap.js +1 -1
  154. package/src/utils/db-mysql.js +1 -1
  155. package/src/utils/db-oracle.js +1 -1
  156. package/src/utils/db-sqlite.js +1 -1
  157. package/src/utils/db.js +1 -1
  158. package/src/utils/demo-generator.js +1 -1
  159. package/src/utils/excel-generator.js +1 -1
  160. package/src/utils/excel-parser.js +1 -1
  161. package/src/utils/file-watcher.js +1 -1
  162. package/src/utils/id-generator.js +1 -1
  163. package/src/utils/idempotency-manager.js +1 -1
  164. package/src/utils/import-validator.js +1 -1
  165. package/src/utils/license-client.js +1 -1
  166. package/src/utils/lock-manager.js +1 -1
  167. package/src/utils/logger.js +1 -1
  168. package/src/utils/lookup-resolver.js +1 -1
  169. package/src/utils/payload-loader.js +1 -1
  170. package/src/utils/processor-response.js +1 -1
  171. package/src/utils/rabbitmq.js +1 -1
  172. package/src/utils/redis-client.js +1 -1
  173. package/src/utils/redis-helper.js +1 -1
  174. package/src/utils/request-scope.js +1 -1
  175. package/src/utils/security-checks.js +1 -1
  176. package/src/utils/service-resolver.js +1 -1
  177. package/src/utils/shutdown-coordinator.js +1 -1
  178. package/src/utils/trusted-keys.js +1 -1
  179. package/src/utils/upload-handler.js +1 -1
  180. package/src/utils/upsert-builder.js +1 -1
  181. package/src/utils/workflow-hook-executor.js +1 -1
@@ -1 +1 @@
1
- 'use strict';const a0_0x4ada65=a0_0x25b3;(function(_0x252e5a,_0x882142){const _0x47f9c7=a0_0x25b3,_0x3f9a3f=_0x252e5a();while(!![]){try{const _0x475542=-parseInt(_0x47f9c7(0xb0))/0x1+parseInt(_0x47f9c7(0xde))/0x2+parseInt(_0x47f9c7(0xb3))/0x3+-parseInt(_0x47f9c7(0x132))/0x4+-parseInt(_0x47f9c7(0xc9))/0x5*(parseInt(_0x47f9c7(0x112))/0x6)+-parseInt(_0x47f9c7(0xfa))/0x7*(parseInt(_0x47f9c7(0xe1))/0x8)+parseInt(_0x47f9c7(0x11c))/0x9;if(_0x475542===_0x882142)break;else _0x3f9a3f['push'](_0x3f9a3f['shift']());}catch(_0x495faa){_0x3f9a3f['push'](_0x3f9a3f['shift']());}}}(a0_0x2eb5,0xb1008));const {WebSocketServer}=require('ws'),{URL}=require('url'),REDIS_CHANNEL_PREFIX=a0_0x4ada65(0x122);function a0_0x25b3(_0x390994,_0x115a3f){_0x390994=_0x390994-0xab;const _0x2eb5fa=a0_0x2eb5();let _0x25b3a5=_0x2eb5fa[_0x390994];if(a0_0x25b3['dMcNpI']===undefined){var _0x4dd91b=function(_0x42e958){const _0x5388a6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x22dfb9='',_0x5a2361='';for(let _0x1908ed=0x0,_0x142471,_0xae4d81,_0x5455bb=0x0;_0xae4d81=_0x42e958['charAt'](_0x5455bb++);~_0xae4d81&&(_0x142471=_0x1908ed%0x4?_0x142471*0x40+_0xae4d81:_0xae4d81,_0x1908ed++%0x4)?_0x22dfb9+=String['fromCharCode'](0xff&_0x142471>>(-0x2*_0x1908ed&0x6)):0x0){_0xae4d81=_0x5388a6['indexOf'](_0xae4d81);}for(let _0x439c01=0x0,_0xb2d863=_0x22dfb9['length'];_0x439c01<_0xb2d863;_0x439c01++){_0x5a2361+='%'+('00'+_0x22dfb9['charCodeAt'](_0x439c01)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5a2361);};a0_0x25b3['sggkks']=_0x4dd91b,a0_0x25b3['gxpWvk']={},a0_0x25b3['dMcNpI']=!![];}const _0x42313c=_0x2eb5fa[0x0],_0x53c181=_0x390994+_0x42313c,_0x5f49b3=a0_0x25b3['gxpWvk'][_0x53c181];return!_0x5f49b3?(_0x25b3a5=a0_0x25b3['sggkks'](_0x25b3a5),a0_0x25b3['gxpWvk'][_0x53c181]=_0x25b3a5):_0x25b3a5=_0x5f49b3,_0x25b3a5;}class WebSocketBroadcaster{constructor(){const _0x3033e0=a0_0x4ada65,_0x2284ee={'KzTjD':'8|0|1|4|2|5|3|6|7|9'},_0x2c6226=_0x2284ee[_0x3033e0(0x134)][_0x3033e0(0x116)]('|');let _0x5d3d03=0x0;while(!![]){switch(_0x2c6226[_0x5d3d03++]){case'0':this['_initialized']=![];continue;case'1':this[_0x3033e0(0x111)]=null;continue;case'2':this['_logger']=console;continue;case'3':this['_heartbeatTimer']=null;continue;case'4':this['_options']={};continue;case'5':this[_0x3033e0(0xeb)]=new Map();continue;case'6':this[_0x3033e0(0xf3)]=null;continue;case'7':this['_redisSubscriber']=null;continue;case'8':this['_wss']=null;continue;case'9':this['_workerId']=process['pid'];continue;}break;}}[a0_0x4ada65(0x10f)](_0x4728fe,_0x568eff={}){const _0xf81cfe=a0_0x4ada65,_0x33cec2={'sGqwU':'full','qIVZV':function(_0x303b3c,_0x40e42a){return _0x303b3c(_0x40e42a);},'GyLTN':'../../utils/logger','FzAuV':_0xf81cfe(0xf9),'kkhGj':_0xf81cfe(0xff),'VhELX':_0xf81cfe(0xe3),'Ktavt':_0xf81cfe(0xc7)};if(this[_0xf81cfe(0x105)])return;this[_0xf81cfe(0xc5)]=_0x568eff,this[_0xf81cfe(0x111)]=_0x33cec2['sGqwU'];try{this[_0xf81cfe(0x109)]=_0x33cec2['qIVZV'](require,_0x33cec2[_0xf81cfe(0xbe)])['logger']||console;}catch(_0x3835ed){this[_0xf81cfe(0x109)]=console;}const _0x38c7db=parseInt(process['env']['LIVE_SYNC_HEARTBEAT_INTERVAL'],0xa)||0x1e;this['_wss']=new WebSocketServer({'server':_0x4728fe,'path':_0x33cec2['FzAuV']}),this[_0xf81cfe(0xd9)](_0x4728fe),this['_wss']['on'](_0x33cec2['kkhGj'],(_0xe5f65,_0x4ec0fd)=>this['_handleConnection'](_0xe5f65,_0x4ec0fd)),this[_0xf81cfe(0xc4)]['on'](_0x33cec2[_0xf81cfe(0x115)],_0x356090=>{const _0x3ae48a=_0xf81cfe;this['_logger'][_0x3ae48a(0xe3)]({'event':_0x3ae48a(0xfb),'error':_0x356090['message']},'WebSocket\x20server\x20error:\x20'+_0x356090['message']);}),this[_0xf81cfe(0xed)](_0x38c7db),this[_0xf81cfe(0xd6)](),this['_initialized']=!![],this['_logger'][_0xf81cfe(0xd4)]({'event':_0x33cec2[_0xf81cfe(0x136)],'mode':'full','path':'/ws','heartbeat':_0x38c7db+'s'},'Live\x20Sync\x20server\x20initialized\x20at\x20/ws\x20(heartbeat:\x20'+_0x38c7db+'s)');}[a0_0x4ada65(0xd1)](_0x19ab1b={}){const _0x5aaaf3=a0_0x4ada65,_0x4910ec={'faqMW':function(_0x407c8d,_0x227f6a){return _0x407c8d(_0x227f6a);},'yeEnM':_0x5aaaf3(0xd0),'aiAOg':'livesync_publisher_initialized','zRTrl':'Live\x20Sync\x20publisher\x20initialized\x20(Redis-only,\x20no\x20WebSocket\x20server)'};if(this['_initialized'])return;this['_options']=_0x19ab1b,this[_0x5aaaf3(0x111)]=_0x5aaaf3(0x11d);try{this[_0x5aaaf3(0x109)]=_0x4910ec[_0x5aaaf3(0xc0)](require,_0x4910ec[_0x5aaaf3(0xb7)])[_0x5aaaf3(0xcc)]||console;}catch(_0x58414d){this['_logger']=console;}this[_0x5aaaf3(0xf8)](),this[_0x5aaaf3(0x105)]=!![],this['_logger'][_0x5aaaf3(0xd4)]({'event':_0x4910ec[_0x5aaaf3(0x11a)],'mode':'publisher'},_0x4910ec['zRTrl']);}[a0_0x4ada65(0xd5)](){const _0x2023ec=a0_0x4ada65;return this[_0x2023ec(0x105)];}['broadcast'](_0x5f29d3,_0x3028e6){const _0x53f62d=a0_0x4ada65,_0x9ff7a2={'lQLMI':function(_0x314dad,_0x4ebac4){return _0x314dad===_0x4ebac4;},'TItPG':function(_0x17b226,_0x498eaf){return _0x17b226===_0x498eaf;}};if(!this['_initialized'])return;if(_0x9ff7a2[_0x53f62d(0xae)](this[_0x53f62d(0x111)],_0x53f62d(0x11d))){this['_publishToRedis'](_0x5f29d3,_0x3028e6);return;}const _0x33269c=JSON[_0x53f62d(0xe4)]({'type':_0x53f62d(0xbb),'channel':_0x5f29d3,'action':_0x3028e6['action'],'data':_0x3028e6['data'],'requestId':_0x3028e6['requestId']||null,'timestamp':new Date()['toISOString']()}),[_0x380373]=_0x5f29d3['split'](':');let _0x2d5b2a=0x0;for(const [_0x427492,_0x121e8f]of this[_0x53f62d(0xeb)]){const _0xd16a4e=_0x9ff7a2[_0x53f62d(0xae)](_0x427492,_0x5f29d3),_0x2aa494=_0x9ff7a2['TItPG'](_0x427492,_0x380373+':*');if(_0xd16a4e||_0x2aa494)for(const _0x2a62a8 of _0x121e8f){if(_0x2a62a8[_0x53f62d(0x133)]===0x1)try{_0x2a62a8[_0x53f62d(0x13c)](_0x33269c),_0x2d5b2a++;}catch(_0x452819){}}}_0x2d5b2a>0x0&&this[_0x53f62d(0x109)]['debug']({'event':'livesync_broadcast','channel':_0x5f29d3,'action':_0x3028e6[_0x53f62d(0xad)],'clients':_0x2d5b2a},'Broadcast\x20'+_0x3028e6[_0x53f62d(0xad)]+_0x53f62d(0x104)+_0x5f29d3+'\x20to\x20'+_0x2d5b2a+'\x20client(s)');}[a0_0x4ada65(0x119)](_0x33ffc4,_0x486b5f){const _0x647dc1=a0_0x4ada65;if(!this['_redisPublisher'])return;const _0x16e6d3=JSON[_0x647dc1(0xe4)]({'channel':_0x33ffc4,'message':_0x486b5f,'workerId':this['_workerId']});this[_0x647dc1(0xf3)][_0x647dc1(0xb8)](REDIS_CHANNEL_PREFIX+_0x647dc1(0xdb),_0x16e6d3)['catch'](()=>{});}[a0_0x4ada65(0xd2)](){const _0x334b19=a0_0x4ada65,_0x44e2c7={'toIMN':'Server\x20shutting\x20down'};if(!this[_0x334b19(0x105)])return;this['_heartbeatTimer']&&(clearInterval(this[_0x334b19(0xbc)]),this[_0x334b19(0xbc)]=null);if(this['_wss']){for(const _0x361ece of this[_0x334b19(0xc4)]['clients']){try{_0x361ece['close'](0x3e9,_0x44e2c7['toIMN']);}catch(_0x4cb033){}}this['_wss'][_0x334b19(0xf0)]();}if(this['_redisSubscriber'])try{this[_0x334b19(0xab)]['unsubscribe'](),this[_0x334b19(0xab)][_0x334b19(0xee)]();}catch(_0x4cdecb){}if(this[_0x334b19(0xea)]&&this[_0x334b19(0xf3)])try{this['_redisPublisher']['quit']();}catch(_0x2e0bc8){}this[_0x334b19(0xeb)][_0x334b19(0x10e)](),this['_initialized']=![],this['_logger']['info']({'event':'livesync_shutdown','mode':this[_0x334b19(0x111)]},'Live\x20Sync\x20'+this[_0x334b19(0x111)]+_0x334b19(0x131));}[a0_0x4ada65(0xd9)](_0x3ddf38){const _0x24aa75=a0_0x4ada65,_0x40a36d={'onvXt':_0x24aa75(0xff),'RMdGa':'localhost','jWLRp':_0x24aa75(0x125),'qPkYd':function(_0x24c426,_0x5cc203){return _0x24c426!==_0x5cc203;},'InsMf':'upgrade'},_0x94ab15=_0x3ddf38[_0x24aa75(0xdf)](_0x40a36d[_0x24aa75(0x124)])['slice']();_0x3ddf38[_0x24aa75(0xe5)](_0x24aa75(0xf5)),_0x3ddf38['on']('upgrade',(_0x2d197a,_0x1b37ed,_0x3a6e2f)=>{const _0x289d41=_0x24aa75;if(!_0x2d197a[_0x289d41(0xcd)]||!_0x2d197a[_0x289d41(0xcd)][_0x289d41(0xcb)]('/ws')){for(const _0x3779dd of _0x94ab15){_0x3779dd[_0x289d41(0xdc)](_0x3ddf38,_0x2d197a,_0x1b37ed,_0x3a6e2f);}return;}if(this[_0x289d41(0xc5)]['apiKey']){const _0x30a263=new URL(_0x2d197a['url'],'http://'+(_0x2d197a[_0x289d41(0x137)]['host']||_0x40a36d['RMdGa'])),_0x1bdb48=_0x30a263[_0x289d41(0x12c)]['get'](_0x40a36d['jWLRp'])||_0x2d197a['headers'][_0x40a36d[_0x289d41(0xf2)]];if(!_0x1bdb48||_0x40a36d[_0x289d41(0x129)](_0x1bdb48,this[_0x289d41(0xc5)]['apiKey'])){_0x1b37ed[_0x289d41(0xc2)]('HTTP/1.1\x20401\x20Unauthorized\x0d\x0a\x0d\x0a'),_0x1b37ed[_0x289d41(0x114)]();return;}}this[_0x289d41(0xc4)]['handleUpgrade'](_0x2d197a,_0x1b37ed,_0x3a6e2f,_0x1e5892=>{const _0x37f74a=_0x289d41;this['_wss'][_0x37f74a(0x127)](_0x40a36d['onvXt'],_0x1e5892,_0x2d197a);});});}[a0_0x4ada65(0xd3)](_0x52fd4d,_0x4497ab){const _0x364954=a0_0x4ada65,_0x355fa4={'xhHwU':'error','eIOYW':_0x364954(0xe8),'xtnde':_0x364954(0xef),'FUUtS':'x-forwarded-for','CalCD':_0x364954(0x126),'iteSL':'close'};_0x52fd4d[_0x364954(0x10c)]=!![],_0x52fd4d['subscribedChannels']=new Set();const _0x405ec8=_0x4497ab['headers'][_0x355fa4['FUUtS']]||_0x4497ab[_0x364954(0x11b)]['remoteAddress'];this['_logger']['info']({'event':'livesync_client_connected','ip':_0x405ec8},'Live\x20Sync\x20client\x20connected\x20from\x20'+_0x405ec8),_0x52fd4d['on'](_0x355fa4[_0x364954(0xd8)],()=>{_0x52fd4d['isAlive']=!![];}),_0x52fd4d['on'](_0x364954(0xec),_0x2088f5=>{const _0x2265a0=_0x364954;try{const _0x425dd2=JSON[_0x2265a0(0x101)](_0x2088f5[_0x2265a0(0x12e)]());this['_handleClientMessage'](_0x52fd4d,_0x425dd2);}catch(_0x2b42e7){this['_sendToClient'](_0x52fd4d,{'type':_0x355fa4[_0x2265a0(0x108)],'message':_0x2265a0(0xe7)});}}),_0x52fd4d['on'](_0x355fa4[_0x364954(0x139)],()=>{const _0x5e14bd=_0x364954;this['_removeClientFromAllChannels'](_0x52fd4d),this[_0x5e14bd(0x109)][_0x5e14bd(0x130)]({'event':_0x355fa4[_0x5e14bd(0x12a)],'ip':_0x405ec8},_0x5e14bd(0x120)+_0x405ec8);}),_0x52fd4d['on'](_0x355fa4['xhHwU'],_0x2601b0=>{const _0x335716=_0x364954;this[_0x335716(0x109)]['warn']({'event':_0x355fa4['xtnde'],'error':_0x2601b0['message']},'WebSocket\x20client\x20error:\x20'+_0x2601b0[_0x335716(0xec)]),this['_removeClientFromAllChannels'](_0x52fd4d);});}['_handleClientMessage'](_0x47318f,_0x2d0b11){const _0x34caad=a0_0x4ada65,_0x4f7e14={'IAhAt':_0x34caad(0xce),'HEzqo':'pong'};switch(_0x2d0b11[_0x34caad(0x11e)]){case'subscribe':this[_0x34caad(0x11f)](_0x47318f,_0x2d0b11['channels']);break;case _0x4f7e14[_0x34caad(0xd7)]:this['_handleUnsubscribe'](_0x47318f,_0x2d0b11['channels']);break;case _0x4f7e14[_0x34caad(0x138)]:_0x47318f['isAlive']=!![];break;default:this['_sendToClient'](_0x47318f,{'type':'error','message':'Unknown\x20message\x20type:\x20'+_0x2d0b11['type']});}}['_handleSubscribe'](_0x57a792,_0x5997ab){const _0x2f91cc=a0_0x4ada65,_0x2d2647={'LJfuO':function(_0x347cbb,_0x28272c){return _0x347cbb===_0x28272c;},'ZQrla':_0x2f91cc(0xe3),'FaQTO':'channels\x20must\x20be\x20a\x20non-empty\x20array','iaqeV':_0x2f91cc(0xbd),'AKfnN':function(_0x24f0f4,_0x166ab4){return _0x24f0f4>_0x166ab4;},'gdCqW':'livesync_subscribe'};if(!Array[_0x2f91cc(0x113)](_0x5997ab)||_0x2d2647['LJfuO'](_0x5997ab['length'],0x0)){this[_0x2f91cc(0xb2)](_0x57a792,{'type':_0x2d2647[_0x2f91cc(0xca)],'message':_0x2d2647[_0x2f91cc(0xfd)]});return;}const _0x50bf89=[];for(const _0x2563f3 of _0x5997ab){if(typeof _0x2563f3!==_0x2d2647[_0x2f91cc(0xc6)]||!_0x2563f3[_0x2f91cc(0x110)](':'))continue;!this[_0x2f91cc(0xeb)][_0x2f91cc(0xdd)](_0x2563f3)&&this['_subscriptions'][_0x2f91cc(0x10d)](_0x2563f3,new Set()),this[_0x2f91cc(0xeb)][_0x2f91cc(0xcf)](_0x2563f3)[_0x2f91cc(0xb9)](_0x57a792),_0x57a792[_0x2f91cc(0xfe)]['add'](_0x2563f3),_0x50bf89['push'](_0x2563f3);}_0x2d2647['AKfnN'](_0x50bf89['length'],0x0)&&(this['_sendToClient'](_0x57a792,{'type':_0x2f91cc(0xe2),'channels':_0x50bf89,'timestamp':new Date()[_0x2f91cc(0xbf)]()}),this['_logger']['debug']({'event':_0x2d2647[_0x2f91cc(0xc3)],'channels':_0x50bf89},'Client\x20subscribed\x20to:\x20'+_0x50bf89['join'](',\x20')));}[a0_0x4ada65(0xaf)](_0x316c84,_0x514247){const _0x329dc6=a0_0x4ada65,_0x4b350b={'gVrLK':function(_0x244686,_0x397985){return _0x244686===_0x397985;},'TyxHR':_0x329dc6(0xba)};if(!Array['isArray'](_0x514247))return;const _0x47e6f1=[];for(const _0x368b5f of _0x514247){this['_subscriptions'][_0x329dc6(0xdd)](_0x368b5f)&&(this[_0x329dc6(0xeb)]['get'](_0x368b5f)[_0x329dc6(0xf1)](_0x316c84),_0x4b350b['gVrLK'](this['_subscriptions']['get'](_0x368b5f)[_0x329dc6(0x118)],0x0)&&this['_subscriptions']['delete'](_0x368b5f)),_0x316c84[_0x329dc6(0xfe)][_0x329dc6(0xf1)](_0x368b5f),_0x47e6f1[_0x329dc6(0xe6)](_0x368b5f);}_0x47e6f1[_0x329dc6(0xb6)]>0x0&&this['_sendToClient'](_0x316c84,{'type':_0x4b350b[_0x329dc6(0x117)],'channels':_0x47e6f1,'timestamp':new Date()[_0x329dc6(0xbf)]()});}[a0_0x4ada65(0x10b)](_0x5c19a0){const _0x1654b8=a0_0x4ada65;if(!_0x5c19a0[_0x1654b8(0xfe)])return;for(const _0x48198 of _0x5c19a0[_0x1654b8(0xfe)]){this[_0x1654b8(0xeb)]['has'](_0x48198)&&(this[_0x1654b8(0xeb)]['get'](_0x48198)['delete'](_0x5c19a0),this['_subscriptions'][_0x1654b8(0xcf)](_0x48198)[_0x1654b8(0x118)]===0x0&&this[_0x1654b8(0xeb)]['delete'](_0x48198));}_0x5c19a0[_0x1654b8(0xfe)][_0x1654b8(0x10e)]();}[a0_0x4ada65(0xb2)](_0x1c8cef,_0x104936){const _0x5d27a8=a0_0x4ada65,_0x1e81f1={'wjXil':function(_0x279bce,_0x263090){return _0x279bce===_0x263090;}};if(_0x1e81f1[_0x5d27a8(0x12f)](_0x1c8cef[_0x5d27a8(0x133)],0x1))try{_0x1c8cef[_0x5d27a8(0x13c)](JSON[_0x5d27a8(0xe4)](_0x104936));}catch(_0x613d9b){}}['_startHeartbeat'](_0x121e39){const _0x3778c1=a0_0x4ada65,_0x2e3afb={'QhBNS':function(_0x31b1e6,_0x425231,_0x12371d){return _0x31b1e6(_0x425231,_0x12371d);},'mtejO':function(_0x5a4822,_0x26bdee){return _0x5a4822*_0x26bdee;}};this['_heartbeatTimer']=_0x2e3afb[_0x3778c1(0xda)](setInterval,()=>{const _0x5b39e8=_0x3778c1;if(!this['_wss'])return;for(const _0x19d935 of this['_wss'][_0x5b39e8(0x123)]){if(!_0x19d935['isAlive']){this['_removeClientFromAllChannels'](_0x19d935),_0x19d935[_0x5b39e8(0xc8)]();continue;}_0x19d935[_0x5b39e8(0x10c)]=![],this['_sendToClient'](_0x19d935,{'type':'ping','timestamp':new Date()['toISOString']()});try{_0x19d935[_0x5b39e8(0x103)]();}catch(_0x3df07d){}}},_0x2e3afb['mtejO'](_0x121e39,0x3e8));}['_setupRedisPublisher'](){const _0x45c1bc=a0_0x4ada65,_0xb85228={'VbzGU':function(_0x3a3754,_0x10281f){return _0x3a3754(_0x10281f);},'GYbYf':'../../utils/redis-client','tKOwJ':function(_0x183812,_0x5918b8){return _0x183812(_0x5918b8);},'hBXQY':'127.0.0.1','PLkGJ':function(_0x147069,_0x5759e6,_0x1a8992){return _0x147069(_0x5759e6,_0x1a8992);},'CbMkF':'livesync_redis_unavailable'};this[_0x45c1bc(0xea)]=![];try{try{const _0x26d344=_0xb85228['VbzGU'](require,_0xb85228[_0x45c1bc(0x128)]);this[_0x45c1bc(0xf3)]=_0x26d344['getClient']?_0x26d344[_0x45c1bc(0x12b)]():null;}catch(_0x2aeca4){this['_redisPublisher']=null;}if(!this['_redisPublisher']){const _0x3b91bd=_0xb85228[_0x45c1bc(0xf7)](require,'ioredis'),_0x33adcb={'host':process['env'][_0x45c1bc(0x12d)]||_0xb85228[_0x45c1bc(0x102)],'port':parseInt(process[_0x45c1bc(0xf6)][_0x45c1bc(0xf4)],0xa)||0x18eb,'password':process['env'][_0x45c1bc(0xfc)]||undefined,'db':_0xb85228['PLkGJ'](parseInt,process['env']['REDIS_DB'],0xa)||0x0,'lazyConnect':!![]};this[_0x45c1bc(0xf3)]=new _0x3b91bd(_0x33adcb),this[_0x45c1bc(0xea)]=!![],this['_redisPublisher'][_0x45c1bc(0xe0)]()[_0x45c1bc(0x13a)](()=>{const _0x2b85b2=_0x45c1bc;this['_logger'][_0x2b85b2(0x106)]({'event':'livesync_redis_publisher_failed'},_0x2b85b2(0x121)),this['_redisPublisher']=null;});}}catch(_0x55aac9){this[_0x45c1bc(0x109)][_0x45c1bc(0x106)]({'event':_0xb85228['CbMkF'],'error':_0x55aac9['message']},'Redis\x20not\x20available\x20for\x20Live\x20Sync\x20publisher:\x20'+_0x55aac9['message']);}}[a0_0x4ada65(0xd6)](){const _0x42cccb=a0_0x4ada65,_0x4b123c={'YsWYd':'Failed\x20to\x20connect\x20Redis\x20publisher\x20for\x20Live\x20Sync','JYXfv':_0x42cccb(0x13b),'PqzQi':_0x42cccb(0x135),'qtamE':_0x42cccb(0xec),'EukAL':'livesync_redis_subscriber_failed','lNKDS':'127.0.0.1','MMymD':function(_0x4e1ab2,_0x354ab0,_0xde23a9){return _0x4e1ab2(_0x354ab0,_0xde23a9);},'Tdexd':function(_0x4ace8,_0x554d22){return _0x4ace8(_0x554d22);},'sGjjK':_0x42cccb(0x10a)};this['_ownPublisher']=![];try{const _0x52b653=require(_0x42cccb(0xb1)),_0x4a4dd8={'host':process['env'][_0x42cccb(0x12d)]||_0x4b123c['lNKDS'],'port':_0x4b123c[_0x42cccb(0x13d)](parseInt,process[_0x42cccb(0xf6)]['REDIS_PORT'],0xa)||0x18eb,'password':process[_0x42cccb(0xf6)]['REDIS_PASSWORD']||undefined,'db':parseInt(process[_0x42cccb(0xf6)]['REDIS_DB'],0xa)||0x0,'lazyConnect':!![]};try{const _0x52e983=_0x4b123c['Tdexd'](require,_0x42cccb(0xc1));this[_0x42cccb(0xf3)]=_0x52e983[_0x42cccb(0x12b)]?_0x52e983[_0x42cccb(0x12b)]():null;}catch(_0x4bcceb){this['_redisPublisher']=null;}!this['_redisPublisher']&&(this['_redisPublisher']=new _0x52b653(_0x4a4dd8),this[_0x42cccb(0xea)]=!![],this[_0x42cccb(0xf3)]['connect']()[_0x42cccb(0x13a)](()=>{const _0x1da57f=_0x42cccb;this[_0x1da57f(0x109)]['warn']({'event':_0x1da57f(0xb5)},_0x4b123c['YsWYd']),this[_0x1da57f(0xf3)]=null;})),this[_0x42cccb(0xab)]=new _0x52b653(_0x4a4dd8),this['_redisSubscriber'][_0x42cccb(0xe0)]()['then'](()=>{const _0x5bd6ea=_0x42cccb,_0xe24bba={'HUwDC':function(_0x177ab9,_0x13ea0a){return _0x177ab9===_0x13ea0a;}};this[_0x5bd6ea(0xab)]['subscribe'](REDIS_CHANNEL_PREFIX+_0x5bd6ea(0xdb),_0x4f073b=>{const _0x4b6bf4=_0x5bd6ea;if(_0x4f073b){this[_0x4b6bf4(0x109)]['error']({'event':_0x4b123c['JYXfv'],'error':_0x4f073b['message']},_0x4b6bf4(0xb4)+_0x4f073b['message']);return;}this['_logger'][_0x4b6bf4(0xd4)]({'event':_0x4b6bf4(0x100)},_0x4b123c['PqzQi']);}),this[_0x5bd6ea(0xab)]['on'](_0x4b123c['qtamE'],(_0x39796f,_0x3f4639)=>{const _0x83810f=_0x5bd6ea;try{const _0x468a7c=JSON['parse'](_0x3f4639);if(_0xe24bba['HUwDC'](_0x468a7c[_0x83810f(0xe9)],this['_workerId']))return;this[_0x83810f(0x107)](_0x468a7c['channel'],_0x468a7c[_0x83810f(0xec)]);}catch(_0x4379dc){}});})['catch'](()=>{this['_logger']['warn']({'event':_0x4b123c['EukAL']},'Failed\x20to\x20connect\x20Redis\x20subscriber\x20for\x20Live\x20Sync\x20cluster\x20mode'),this['_redisSubscriber']=null;});}catch(_0x2062b2){this['_logger'][_0x42cccb(0x106)]({'event':_0x4b123c[_0x42cccb(0xac)],'error':_0x2062b2[_0x42cccb(0xec)]},'Redis\x20not\x20available\x20for\x20Live\x20Sync\x20cluster\x20mode:\x20'+_0x2062b2['message']);}}['_broadcastLocal'](_0x4bb487,_0xebad2d){const _0x25c6d8=a0_0x4ada65,_0x2b1112={'jWaZP':'data_change','uiavW':function(_0x414cd4,_0x519e4e){return _0x414cd4===_0x519e4e;}};if(!this['_wss'])return;const _0x594861=JSON[_0x25c6d8(0xe4)]({'type':_0x2b1112['jWaZP'],'channel':_0x4bb487,'action':_0xebad2d['action'],'data':_0xebad2d['data'],'requestId':_0xebad2d['requestId']||null,'timestamp':new Date()[_0x25c6d8(0xbf)]()}),[_0x1c3f91]=_0x4bb487[_0x25c6d8(0x116)](':');for(const [_0x651fc7,_0x37e90b]of this['_subscriptions']){const _0x3485c4=_0x2b1112['uiavW'](_0x651fc7,_0x4bb487),_0x506b81=_0x651fc7===_0x1c3f91+':*';if(_0x3485c4||_0x506b81)for(const _0x4eeab1 of _0x37e90b){if(_0x4eeab1['readyState']===0x1)try{_0x4eeab1[_0x25c6d8(0x13c)](_0x594861);}catch(_0x111a0b){}}}}}module['exports']=WebSocketBroadcaster;function a0_0x2eb5(){const _0x5b8f77=['uKvesvnFue9sva','DxbNCMfKzq','zw52','DeTpD0O','x3nLDhvWuMvKAxnqDwjSAxnOzxi','l3DZ','mZe1shrkExvl','BgL2zxn5BMnFD3nZx2vYCM9Y','uKvesvnFueftu1DpuKq','rMfrve8','C3vIC2nYAwjLzenOyw5UzwXZ','y29UBMvJDgLVBG','BgL2zxn5BMnFCMvKAxnFC3vIC2nYAwjLza','CgfYC2u','AejyuvK','CgLUzW','ig9Uia','x2LUAxrPywXPEMvK','D2fYBG','x2jYB2fKy2fZDeXVy2fS','EgHiD1u','x2XVz2DLCG','BgL2zxn5BMnFCMvKAxnFDw5HDMfPBgfIBgu','x3jLBw92zunSAwvUDezYB21bBgXdAgfUBMvSCW','AxnbBgL2zq','C2v0','y2XLyxi','Aw5PDgLHBgL6zq','Aw5JBhvKzxm','x21Vzgu','nJaZmtHxwNzxt2O','AxnbCNjHEq','zgvZDhjVEq','vMHftfG','C3bSAxq','vhL4sfi','C2L6zq','x3b1yMXPC2HuB1jLzgLZ','ywLbt2C','C29JA2v0','mtm2ode0nZzjA2jgquu','ChvIBgLZAgvY','DhLWzq','x2HHBMrSzvn1yNnJCMLIzq','tgL2zsbtEw5JignSAwvUDcbKAxnJB25Uzwn0zwq6ia','rMfPBgvKihrVignVBM5Ly3qGuMvKAxmGChvIBgLZAgvYigzVCIbmAxzLifn5BMm','CMvZDgzVCMDLoMXPDMvZEw5JoG','y2XPzw50CW','sw5Ztwy','Ec1HCgKTA2v5','Cg9UzW','zw1PDa','r1LIwwy','CvbRwwq','zuLpwvC','z2v0q2XPzw50','C2vHCMnOugfYyw1Z','uKvesvnFse9tva','Dg9tDhjPBMC','D2PyAwW','zgvIDwC','ihnODxqGzg93BG','ndy5odm5mM1frwLxzW','CMvHzhLtDgf0zq','s3PuAKq','tgL2zsbtEw5JifjLzgLZihn1yNnJCMLIzxiGywn0AxzLigzVCIbJBhvZDgvYig1Vzgu','s3rHDNq','AgvHzgvYCW','sev6Cw8','AxrLu0W','y2f0y2G','BgL2zxn5BMnFCMvKAxnFC3vIC2nYAwjLx2vYCM9Y','C2vUza','tu15Buq','x3jLzgLZu3vIC2nYAwjLCG','C0DQAKS','ywn0Aw9U','BffmtuK','x2HHBMrSzvvUC3vIC2nYAwjL','mJq4mJqXre9WvvjO','Aw9YzwrPCW','x3nLBMruB0nSAwvUDa','mZe3odu0mMT6uMHpqG','rMfPBgvKihrVihn1yNnJCMLIzsb0BYbszwrPCYbJAgfUBMvSoIa','BgL2zxn5BMnFCMvKAxnFChvIBgLZAgvYx2zHAwXLza','BgvUz3rO','EwvfBK0','ChvIBgLZAa','ywrK','Dw5ZDwjZy3jPyMvK','zgf0yv9JAgfUz2u','x2HLyxj0yMvHDfrPBwvY','C3rYAw5N','r3Lmve4','Dg9ju09tDhjPBMC','zMfXtvC','lI4VlI4VDxrPBhmVCMvKAxmTy2XPzw50','D3jPDgu','z2rdCvC','x3DZCW','x29WDgLVBNm','AwfXzvy','BgL2zxn5BMnFAw5PDgLHBgL6zwq','DgvYBwLUyxrL','mtiWBKHgBvry','wLfYBge','C3rHCNrZv2L0Aa','Bg9Nz2vY','DxjS','Dw5ZDwjZy3jPyMu','z2v0','lI4VlI4VDxrPBhmVBg9Nz2vY','Aw5PDgLHBgL6zufZuhvIBgLZAgvY','C2H1DgrVD24','x2HHBMrSzunVBM5Ly3rPB24','Aw5MBW','AxnjBML0AwfSAxPLza','x3nLDhvWuMvKAxm','sufOqxq','q2fSq0q','x3nLDhvWvxbNCMfKzuf1DgG','uwHctLm','yNjVywrJyxn0','y2fSBa','AgfZ','mtC3mJeXnMj5AMrzDW','BgLZDgvUzxjZ','y29UBMvJDa','mtKXndaWB1bnshnL','C3vIC2nYAwjLza','zxjYB3i','C3rYAw5NAwz5','CMvTB3zLqwXStgLZDgvUzxjZ','ChvZAa','sw52ywXPzcbku09oig1LC3nHz2u','BgL2zxn5BMnFy2XPzw50x2rPC2nVBM5Ly3rLza','D29YA2vYswq','x293BLb1yMXPC2HLCG','x3n1yNnJCMLWDgLVBNm','BwvZC2fNzq','x3n0yxj0sgvHCNrIzwf0','CxvPDa','BgL2zxn5BMnFy2XPzw50x2vYCM9Y','y2XVC2u','zgvSzxrL','ALDmuNa','x3jLzgLZuhvIBgLZAgvY'];a0_0x2eb5=function(){return _0x5b8f77;};return a0_0x2eb5();}
1
+ 'use strict';const a0_0xa0fec7=a0_0x18f7;(function(_0x2ab713,_0x209629){const _0x45bb1d=a0_0x18f7,_0x48ea3d=_0x2ab713();while(!![]){try{const _0x1db60e=parseInt(_0x45bb1d(0x111))/0x1+parseInt(_0x45bb1d(0x124))/0x2+-parseInt(_0x45bb1d(0x109))/0x3*(parseInt(_0x45bb1d(0xf2))/0x4)+-parseInt(_0x45bb1d(0xcb))/0x5*(-parseInt(_0x45bb1d(0xa8))/0x6)+parseInt(_0x45bb1d(0x10c))/0x7*(-parseInt(_0x45bb1d(0xb9))/0x8)+-parseInt(_0x45bb1d(0xab))/0x9+parseInt(_0x45bb1d(0xf5))/0xa*(-parseInt(_0x45bb1d(0x11c))/0xb);if(_0x1db60e===_0x209629)break;else _0x48ea3d['push'](_0x48ea3d['shift']());}catch(_0x3af714){_0x48ea3d['push'](_0x48ea3d['shift']());}}}(a0_0xf018,0x5a064));function a0_0x18f7(_0x6da574,_0x32af05){_0x6da574=_0x6da574-0x9e;const _0xf0180d=a0_0xf018();let _0x18f7f2=_0xf0180d[_0x6da574];if(a0_0x18f7['WbKWLj']===undefined){var _0x37b612=function(_0x5bb8b6){const _0x364909='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x51757d='',_0x3586b1='';for(let _0x5e70f1=0x0,_0x510ec2,_0x16d75c,_0xc63203=0x0;_0x16d75c=_0x5bb8b6['charAt'](_0xc63203++);~_0x16d75c&&(_0x510ec2=_0x5e70f1%0x4?_0x510ec2*0x40+_0x16d75c:_0x16d75c,_0x5e70f1++%0x4)?_0x51757d+=String['fromCharCode'](0xff&_0x510ec2>>(-0x2*_0x5e70f1&0x6)):0x0){_0x16d75c=_0x364909['indexOf'](_0x16d75c);}for(let _0x21c806=0x0,_0x3c9248=_0x51757d['length'];_0x21c806<_0x3c9248;_0x21c806++){_0x3586b1+='%'+('00'+_0x51757d['charCodeAt'](_0x21c806)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3586b1);};a0_0x18f7['XfItGE']=_0x37b612,a0_0x18f7['TyVdgw']={},a0_0x18f7['WbKWLj']=!![];}const _0x25d670=_0xf0180d[0x0],_0x49746e=_0x6da574+_0x25d670,_0x17a840=a0_0x18f7['TyVdgw'][_0x49746e];return!_0x17a840?(_0x18f7f2=a0_0x18f7['XfItGE'](_0x18f7f2),a0_0x18f7['TyVdgw'][_0x49746e]=_0x18f7f2):_0x18f7f2=_0x17a840,_0x18f7f2;}const {WebSocketServer}=require('ws'),{URL}=require(a0_0xa0fec7(0xf8)),REDIS_CHANNEL_PREFIX=a0_0xa0fec7(0xbe);class WebSocketBroadcaster{constructor(){const _0x1eb436=a0_0xa0fec7;this[_0x1eb436(0xdd)]=null,this[_0x1eb436(0x113)]=![],this[_0x1eb436(0xe3)]=null,this['_options']={},this[_0x1eb436(0x11b)]=console,this['_subscriptions']=new Map(),this['_heartbeatTimer']=null,this['_redisPublisher']=null,this[_0x1eb436(0x112)]=null,this['_workerId']=process['pid'];}['initialize'](_0x352b4a,_0x5b392c={}){const _0x12abcb=a0_0xa0fec7,_0x5d8b72={'RsItp':_0x12abcb(0xec),'nuaKX':'full','BCTHf':'../../utils/logger','KMZRW':function(_0x2ff40e,_0x2eb5f2,_0x45f79d){return _0x2ff40e(_0x2eb5f2,_0x45f79d);},'fNDfE':'/ws','iDqgh':_0x12abcb(0xad),'gtPfZ':_0x12abcb(0xa5)};if(this[_0x12abcb(0x113)])return;this['_options']=_0x5b392c,this[_0x12abcb(0xe3)]=_0x5d8b72[_0x12abcb(0xeb)];try{this['_logger']=require(_0x5d8b72[_0x12abcb(0x126)])['logger']||console;}catch(_0x57c0d3){this[_0x12abcb(0x11b)]=console;}const _0x3b015e=_0x5d8b72['KMZRW'](parseInt,process[_0x12abcb(0xce)][_0x12abcb(0xc4)],0xa)||0x1e;this['_wss']=new WebSocketServer({'server':_0x352b4a,'path':_0x5d8b72[_0x12abcb(0x100)]}),this[_0x12abcb(0xcf)](_0x352b4a),this[_0x12abcb(0xdd)]['on'](_0x5d8b72['iDqgh'],(_0x568c72,_0x45d039)=>this['_handleConnection'](_0x568c72,_0x45d039)),this['_wss']['on'](_0x5d8b72['gtPfZ'],_0x360803=>{const _0x4ca368=_0x12abcb;this[_0x4ca368(0x11b)][_0x4ca368(0xa5)]({'event':_0x5d8b72[_0x4ca368(0xf1)],'error':_0x360803[_0x4ca368(0xa7)]},_0x4ca368(0xb7)+_0x360803['message']);}),this[_0x12abcb(0xc0)](_0x3b015e),this['_setupRedis'](),this[_0x12abcb(0x113)]=!![],this[_0x12abcb(0x11b)][_0x12abcb(0xd9)]({'event':_0x12abcb(0xb0),'mode':_0x5d8b72[_0x12abcb(0xeb)],'path':_0x12abcb(0xe5),'heartbeat':_0x3b015e+'s'},_0x12abcb(0xc6)+_0x3b015e+'s)');}[a0_0xa0fec7(0xfc)](_0x294f9f={}){const _0x43408e=a0_0xa0fec7,_0xd0ce1={'MgDyw':_0x43408e(0x108),'pOeqt':'Live\x20Sync\x20publisher\x20initialized\x20(Redis-only,\x20no\x20WebSocket\x20server)'},_0x2b2d51='5|4|3|2|1|0|6'['split']('|');let _0x1ed95b=0x0;while(!![]){switch(_0x2b2d51[_0x1ed95b++]){case'0':this['_initialized']=!![];continue;case'1':this['_setupRedisPublisher']();continue;case'2':try{this['_logger']=require('../../utils/logger')[_0x43408e(0xe1)]||console;}catch(_0x5b6d6c){this['_logger']=console;}continue;case'3':this['_mode']=_0x43408e(0xdc);continue;case'4':this['_options']=_0x294f9f;continue;case'5':if(this['_initialized'])return;continue;case'6':this[_0x43408e(0x11b)][_0x43408e(0xd9)]({'event':_0xd0ce1['MgDyw'],'mode':'publisher'},_0xd0ce1[_0x43408e(0xde)]);continue;}break;}}['isInitialized'](){return this['_initialized'];}['broadcast'](_0x2bc692,_0x1c5c7d){const _0x5da308=a0_0xa0fec7,_0x2f508c={'dvTQC':function(_0x30feb7,_0x241401){return _0x30feb7===_0x241401;}};if(!this[_0x5da308(0x113)])return;if(_0x2f508c[_0x5da308(0xc8)](this[_0x5da308(0xe3)],'publisher')){this[_0x5da308(0xff)](_0x2bc692,_0x1c5c7d);return;}const _0x204139=JSON[_0x5da308(0xca)]({'type':_0x5da308(0x10e),'channel':_0x2bc692,'action':_0x1c5c7d[_0x5da308(0xc3)],'data':_0x1c5c7d['data'],'requestId':_0x1c5c7d[_0x5da308(0xe4)]||null,'timestamp':new Date()['toISOString']()}),[_0x39ab6b]=_0x2bc692['split'](':');let _0x4546bb=0x0;for(const [_0x503785,_0x527b25]of this['_subscriptions']){const _0x38936b=_0x503785===_0x2bc692,_0x1451d8=_0x503785===_0x39ab6b+':*';if(_0x38936b||_0x1451d8)for(const _0x3ac4c8 of _0x527b25){if(_0x3ac4c8['readyState']===0x1)try{_0x3ac4c8[_0x5da308(0xcd)](_0x204139),_0x4546bb++;}catch(_0x4527d3){}}}_0x4546bb>0x0&&this[_0x5da308(0x11b)][_0x5da308(0xf7)]({'event':'livesync_broadcast','channel':_0x2bc692,'action':_0x1c5c7d[_0x5da308(0xc3)],'clients':_0x4546bb},_0x5da308(0xa9)+_0x1c5c7d[_0x5da308(0xc3)]+'\x20on\x20'+_0x2bc692+'\x20to\x20'+_0x4546bb+'\x20client(s)');}[a0_0xa0fec7(0xff)](_0x4dd1cc,_0x2e23b1){const _0x1ee7ee=a0_0xa0fec7;if(!this[_0x1ee7ee(0xef)])return;const _0x11e9c9=JSON[_0x1ee7ee(0xca)]({'channel':_0x4dd1cc,'message':_0x2e23b1,'workerId':this['_workerId']});this[_0x1ee7ee(0xef)]['publish'](REDIS_CHANNEL_PREFIX+'broadcast',_0x11e9c9)['catch'](()=>{});}[a0_0xa0fec7(0xb3)](){const _0xfddc1b=a0_0xa0fec7,_0x15493f={'fnOOX':function(_0x14c6b0,_0x346559){return _0x14c6b0(_0x346559);},'zfafa':'Server\x20shutting\x20down','djqNu':_0xfddc1b(0xbc)};if(!this[_0xfddc1b(0x113)])return;this[_0xfddc1b(0xa1)]&&(_0x15493f[_0xfddc1b(0xf0)](clearInterval,this['_heartbeatTimer']),this[_0xfddc1b(0xa1)]=null);if(this['_wss']){for(const _0x2ec401 of this['_wss']['clients']){try{_0x2ec401[_0xfddc1b(0x127)](0x3e9,_0x15493f[_0xfddc1b(0x9f)]);}catch(_0x5415c2){}}this['_wss']['close']();}if(this[_0xfddc1b(0x112)])try{this[_0xfddc1b(0x112)][_0xfddc1b(0x103)](),this[_0xfddc1b(0x112)]['quit']();}catch(_0x3ffbc3){}if(this['_ownPublisher']&&this[_0xfddc1b(0xef)])try{this[_0xfddc1b(0xef)]['quit']();}catch(_0x1379d5){}this['_subscriptions']['clear'](),this[_0xfddc1b(0x113)]=![],this['_logger'][_0xfddc1b(0xd9)]({'event':_0x15493f['djqNu'],'mode':this['_mode']},'Live\x20Sync\x20'+this['_mode']+_0xfddc1b(0x12c));}['_setupUpgradeAuth'](_0x32a37a){const _0x137f54=a0_0xa0fec7,_0x1ad249={'RkQUr':_0x137f54(0x116),'exoih':'x-api-key','TBusn':function(_0x11e2d8,_0x290928){return _0x11e2d8!==_0x290928;},'cOogy':_0x137f54(0xed),'rfPvL':'upgrade'},_0x21b64e=_0x32a37a['listeners'](_0x137f54(0x11a))[_0x137f54(0x12b)]();_0x32a37a[_0x137f54(0xcc)](_0x1ad249['rfPvL']),_0x32a37a['on'](_0x137f54(0x11a),(_0x520934,_0x2f9c07,_0x209d57)=>{const _0x26df90=_0x137f54,_0x4654d8={'iRzML':_0x26df90(0xad)};if(!_0x520934[_0x26df90(0xf8)]||!_0x520934[_0x26df90(0xf8)][_0x26df90(0x121)]('/ws')){for(const _0x5965a2 of _0x21b64e){_0x5965a2['call'](_0x32a37a,_0x520934,_0x2f9c07,_0x209d57);}return;}if(this[_0x26df90(0x107)]['apiKey']){const _0x2152a7=new URL(_0x520934[_0x26df90(0xf8)],_0x26df90(0xd0)+(_0x520934[_0x26df90(0xa3)]['host']||_0x1ad249['RkQUr'])),_0x59487b=_0x2152a7[_0x26df90(0xbd)][_0x26df90(0xaf)](_0x1ad249[_0x26df90(0xf4)])||_0x520934[_0x26df90(0xa3)][_0x1ad249[_0x26df90(0xf4)]];if(!_0x59487b||_0x1ad249['TBusn'](_0x59487b,this['_options']['apiKey'])){_0x2f9c07['write'](_0x1ad249[_0x26df90(0x10f)]),_0x2f9c07[_0x26df90(0xee)]();return;}}this['_wss'][_0x26df90(0xf6)](_0x520934,_0x2f9c07,_0x209d57,_0x309af2=>{const _0x1edd4f=_0x26df90;this[_0x1edd4f(0xdd)][_0x1edd4f(0xac)](_0x4654d8[_0x1edd4f(0x119)],_0x309af2,_0x520934);});});}[a0_0xa0fec7(0xa0)](_0x14c640,_0x4532ad){const _0x48072b=a0_0xa0fec7,_0x2c8124={'bNLWx':_0x48072b(0xa5),'XMfsm':_0x48072b(0xda),'kaXuE':'livesync_client_connected','CgzaZ':_0x48072b(0x114),'edBJi':_0x48072b(0xa7),'qbMhf':'close'};_0x14c640[_0x48072b(0xc2)]=!![],_0x14c640[_0x48072b(0xc9)]=new Set();const _0x1f0b9b=_0x4532ad['headers'][_0x2c8124['XMfsm']]||_0x4532ad['socket'][_0x48072b(0x104)];this[_0x48072b(0x11b)]['info']({'event':_0x2c8124[_0x48072b(0xbb)],'ip':_0x1f0b9b},_0x48072b(0xae)+_0x1f0b9b),_0x14c640['on'](_0x2c8124['CgzaZ'],()=>{_0x14c640['isAlive']=!![];}),_0x14c640['on'](_0x2c8124['edBJi'],_0x45a5bd=>{const _0x4c0271=_0x48072b;try{const _0x28a5b6=JSON[_0x4c0271(0xd4)](_0x45a5bd[_0x4c0271(0xb2)]());this[_0x4c0271(0xc1)](_0x14c640,_0x28a5b6);}catch(_0x2d9656){this['_sendToClient'](_0x14c640,{'type':_0x2c8124[_0x4c0271(0x106)],'message':_0x4c0271(0xd6)});}}),_0x14c640['on'](_0x2c8124['qbMhf'],()=>{const _0x5928a7=_0x48072b;this[_0x5928a7(0xb1)](_0x14c640),this[_0x5928a7(0x11b)][_0x5928a7(0xf7)]({'event':'livesync_client_disconnected','ip':_0x1f0b9b},_0x5928a7(0xfd)+_0x1f0b9b);}),_0x14c640['on'](_0x2c8124[_0x48072b(0x106)],_0x508001=>{const _0x33ff7e=_0x48072b;this['_logger'][_0x33ff7e(0xea)]({'event':_0x33ff7e(0xfb),'error':_0x508001[_0x33ff7e(0xa7)]},_0x33ff7e(0xb6)+_0x508001['message']),this[_0x33ff7e(0xb1)](_0x14c640);});}['_handleClientMessage'](_0x1fa3a1,_0x575268){const _0x129d26=a0_0xa0fec7,_0x5d2537={'wKPTT':_0x129d26(0x103),'LGpjy':'pong'};switch(_0x575268[_0x129d26(0xbf)]){case'subscribe':this[_0x129d26(0x9e)](_0x1fa3a1,_0x575268['channels']);break;case _0x5d2537['wKPTT']:this['_handleUnsubscribe'](_0x1fa3a1,_0x575268['channels']);break;case _0x5d2537['LGpjy']:_0x1fa3a1['isAlive']=!![];break;default:this['_sendToClient'](_0x1fa3a1,{'type':_0x129d26(0xa5),'message':_0x129d26(0xc7)+_0x575268['type']});}}[a0_0xa0fec7(0x9e)](_0x39c178,_0x3e90f8){const _0x1df3c2=a0_0xa0fec7,_0xbc80fc={'VqKTL':'string','QlHAc':'subscribed','KWxZh':_0x1df3c2(0x123)};if(!Array[_0x1df3c2(0xdf)](_0x3e90f8)||_0x3e90f8[_0x1df3c2(0xd8)]===0x0){this['_sendToClient'](_0x39c178,{'type':'error','message':'channels\x20must\x20be\x20a\x20non-empty\x20array'});return;}const _0x189682=[];for(const _0x505ccb of _0x3e90f8){if(typeof _0x505ccb!==_0xbc80fc[_0x1df3c2(0xa6)]||!_0x505ccb['includes'](':'))continue;!this['_subscriptions']['has'](_0x505ccb)&&this[_0x1df3c2(0x120)]['set'](_0x505ccb,new Set()),this[_0x1df3c2(0x120)][_0x1df3c2(0xaf)](_0x505ccb)['add'](_0x39c178),_0x39c178[_0x1df3c2(0xc9)][_0x1df3c2(0x118)](_0x505ccb),_0x189682[_0x1df3c2(0xb5)](_0x505ccb);}_0x189682['length']>0x0&&(this['_sendToClient'](_0x39c178,{'type':_0xbc80fc[_0x1df3c2(0xfa)],'channels':_0x189682,'timestamp':new Date()['toISOString']()}),this['_logger'][_0x1df3c2(0xf7)]({'event':_0xbc80fc['KWxZh'],'channels':_0x189682},'Client\x20subscribed\x20to:\x20'+_0x189682['join'](',\x20')));}[a0_0xa0fec7(0x11e)](_0x3b8839,_0x18b158){const _0x579ad3=a0_0xa0fec7,_0x488460={'YDHGc':function(_0x292376,_0x58bd66){return _0x292376===_0x58bd66;},'UZqWV':function(_0x17c7c0,_0x31d2ab){return _0x17c7c0>_0x31d2ab;}};if(!Array[_0x579ad3(0xdf)](_0x18b158))return;const _0x3af39b=[];for(const _0x3eaddd of _0x18b158){this['_subscriptions']['has'](_0x3eaddd)&&(this[_0x579ad3(0x120)][_0x579ad3(0xaf)](_0x3eaddd)['delete'](_0x3b8839),_0x488460[_0x579ad3(0xa4)](this['_subscriptions']['get'](_0x3eaddd)['size'],0x0)&&this['_subscriptions']['delete'](_0x3eaddd)),_0x3b8839[_0x579ad3(0xc9)]['delete'](_0x3eaddd),_0x3af39b[_0x579ad3(0xb5)](_0x3eaddd);}_0x488460['UZqWV'](_0x3af39b[_0x579ad3(0xd8)],0x0)&&this['_sendToClient'](_0x3b8839,{'type':_0x579ad3(0xb4),'channels':_0x3af39b,'timestamp':new Date()[_0x579ad3(0xd7)]()});}[a0_0xa0fec7(0xb1)](_0x58a24c){const _0x5c94b7=a0_0xa0fec7,_0x443062={'Vhvau':function(_0x27a9aa,_0x599129){return _0x27a9aa===_0x599129;}};if(!_0x58a24c['subscribedChannels'])return;for(const _0x25e606 of _0x58a24c['subscribedChannels']){this['_subscriptions']['has'](_0x25e606)&&(this[_0x5c94b7(0x120)][_0x5c94b7(0xaf)](_0x25e606)['delete'](_0x58a24c),_0x443062['Vhvau'](this['_subscriptions'][_0x5c94b7(0xaf)](_0x25e606)['size'],0x0)&&this['_subscriptions'][_0x5c94b7(0xd3)](_0x25e606));}_0x58a24c['subscribedChannels']['clear']();}['_sendToClient'](_0x1d7023,_0x26128f){const _0x44239e=a0_0xa0fec7,_0x1684ed={'IJESc':function(_0x16b600,_0x10ef5b){return _0x16b600===_0x10ef5b;}};if(_0x1684ed[_0x44239e(0xe7)](_0x1d7023[_0x44239e(0x10d)],0x1))try{_0x1d7023['send'](JSON['stringify'](_0x26128f));}catch(_0x1ef1f6){}}['_startHeartbeat'](_0x3b0734){const _0x1261e6=a0_0xa0fec7,_0x4730ba={'TwomM':'ping'};this[_0x1261e6(0xa1)]=setInterval(()=>{const _0x17f1b0=_0x1261e6;if(!this['_wss'])return;for(const _0x18dbfb of this[_0x17f1b0(0xdd)]['clients']){if(!_0x18dbfb[_0x17f1b0(0xc2)]){this['_removeClientFromAllChannels'](_0x18dbfb),_0x18dbfb[_0x17f1b0(0x12a)]();continue;}_0x18dbfb[_0x17f1b0(0xc2)]=![],this['_sendToClient'](_0x18dbfb,{'type':_0x4730ba['TwomM'],'timestamp':new Date()['toISOString']()});try{_0x18dbfb[_0x17f1b0(0xaa)]();}catch(_0x41f524){}}},_0x3b0734*0x3e8);}['_setupRedisPublisher'](){const _0x3debe1=a0_0xa0fec7,_0x309f71={'EjMvS':_0x3debe1(0xe0),'ebZYh':_0x3debe1(0x11f),'HCQgE':function(_0xf61ab9,_0x39906a){return _0xf61ab9(_0x39906a);},'gsklT':_0x3debe1(0xdb),'EHoyG':function(_0x6f46d8,_0x3efd38,_0x42a6bb){return _0x6f46d8(_0x3efd38,_0x42a6bb);},'cbwbD':function(_0x22c678,_0x3be0a9,_0xd467a0){return _0x22c678(_0x3be0a9,_0xd467a0);}};this[_0x3debe1(0xc5)]=![];try{try{const _0x3e76da=require('../../utils/redis-client');this['_redisPublisher']=_0x3e76da['getClient']?_0x3e76da['getClient']():null;}catch(_0x2b14fe){this['_redisPublisher']=null;}if(!this['_redisPublisher']){const _0x49864e=_0x309f71['HCQgE'](require,'ioredis'),_0x3b13c3={'host':process['env'][_0x3debe1(0x102)]||_0x309f71[_0x3debe1(0xa2)],'port':_0x309f71['EHoyG'](parseInt,process['env']['REDIS_PORT'],0xa)||0x18eb,'password':process[_0x3debe1(0xce)][_0x3debe1(0x128)]||undefined,'db':_0x309f71[_0x3debe1(0x117)](parseInt,process['env']['REDIS_DB'],0xa)||0x0,'lazyConnect':!![]};this['_redisPublisher']=new _0x49864e(_0x3b13c3),this['_ownPublisher']=!![],this['_redisPublisher'][_0x3debe1(0xe8)]()['catch'](()=>{const _0x3e7e26=_0x3debe1;this[_0x3e7e26(0x11b)][_0x3e7e26(0xea)]({'event':_0x309f71[_0x3e7e26(0xe2)]},_0x309f71['ebZYh']),this['_redisPublisher']=null;});}}catch(_0x4be412){this['_logger'][_0x3debe1(0xea)]({'event':'livesync_redis_unavailable','error':_0x4be412[_0x3debe1(0xa7)]},_0x3debe1(0xba)+_0x4be412['message']);}}['_setupRedis'](){const _0x4db526=a0_0xa0fec7,_0x10d13b={'RNLNH':_0x4db526(0x101),'mzKEe':'message','XoUXF':'127.0.0.1','XOGlP':'../../utils/redis-client'};this[_0x4db526(0xc5)]=![];try{const _0x336aeb=require(_0x4db526(0xb8)),_0x4dd45f={'host':process['env'][_0x4db526(0x102)]||_0x10d13b['XoUXF'],'port':parseInt(process[_0x4db526(0xce)][_0x4db526(0x10b)],0xa)||0x18eb,'password':process[_0x4db526(0xce)]['REDIS_PASSWORD']||undefined,'db':parseInt(process[_0x4db526(0xce)]['REDIS_DB'],0xa)||0x0,'lazyConnect':!![]};try{const _0x4d525e=require(_0x10d13b[_0x4db526(0x11d)]);this['_redisPublisher']=_0x4d525e['getClient']?_0x4d525e[_0x4db526(0xd5)]():null;}catch(_0x49008a){this[_0x4db526(0xef)]=null;}!this['_redisPublisher']&&(this['_redisPublisher']=new _0x336aeb(_0x4dd45f),this['_ownPublisher']=!![],this['_redisPublisher'][_0x4db526(0xe8)]()[_0x4db526(0x125)](()=>{const _0x1652ea=_0x4db526;this[_0x1652ea(0x11b)]['warn']({'event':'livesync_redis_publisher_failed'},'Failed\x20to\x20connect\x20Redis\x20publisher\x20for\x20Live\x20Sync'),this[_0x1652ea(0xef)]=null;})),this[_0x4db526(0x112)]=new _0x336aeb(_0x4dd45f),this[_0x4db526(0x112)][_0x4db526(0xe8)]()[_0x4db526(0xd2)](()=>{const _0x2b8df6=_0x4db526,_0x577544={'gnJoC':_0x10d13b['RNLNH']};this[_0x2b8df6(0x112)]['subscribe'](REDIS_CHANNEL_PREFIX+_0x2b8df6(0xf3),_0x49f57b=>{const _0x37adff=_0x2b8df6;if(_0x49f57b){this['_logger'][_0x37adff(0xa5)]({'event':_0x577544[_0x37adff(0x10a)],'error':_0x49f57b['message']},'Failed\x20to\x20subscribe\x20to\x20Redis\x20channel:\x20'+_0x49f57b['message']);return;}this['_logger'][_0x37adff(0xd9)]({'event':'livesync_redis_subscribed'},_0x37adff(0x122));}),this[_0x2b8df6(0x112)]['on'](_0x10d13b['mzKEe'],(_0x32eee0,_0x11614d)=>{const _0x33a05d=_0x2b8df6;try{const _0x459b94=JSON[_0x33a05d(0xd4)](_0x11614d);if(_0x459b94[_0x33a05d(0x115)]===this[_0x33a05d(0xfe)])return;this['_broadcastLocal'](_0x459b94[_0x33a05d(0xe9)],_0x459b94['message']);}catch(_0x355a3e){}});})[_0x4db526(0x125)](()=>{const _0x30d832=_0x4db526;this[_0x30d832(0x11b)]['warn']({'event':_0x30d832(0xe6)},_0x30d832(0xd1)),this['_redisSubscriber']=null;});}catch(_0x1666ce){this['_logger'][_0x4db526(0xea)]({'event':'livesync_redis_unavailable','error':_0x1666ce[_0x4db526(0xa7)]},_0x4db526(0x129)+_0x1666ce['message']);}}[a0_0xa0fec7(0xf9)](_0x2ff823,_0x35cb0f){const _0x26e800=a0_0xa0fec7,_0x567e4d={'SZxfh':function(_0x634407,_0x5961b6){return _0x634407===_0x5961b6;}};if(!this[_0x26e800(0xdd)])return;const _0x5baf76=JSON[_0x26e800(0xca)]({'type':'data_change','channel':_0x2ff823,'action':_0x35cb0f[_0x26e800(0xc3)],'data':_0x35cb0f['data'],'requestId':_0x35cb0f[_0x26e800(0xe4)]||null,'timestamp':new Date()[_0x26e800(0xd7)]()}),[_0x2c8fa7]=_0x2ff823['split'](':');for(const [_0xecc78,_0x47ec5f]of this['_subscriptions']){const _0x1ff49f=_0x567e4d[_0x26e800(0x110)](_0xecc78,_0x2ff823),_0x299fc=_0xecc78===_0x2c8fa7+':*';if(_0x1ff49f||_0x299fc)for(const _0x281e7a of _0x47ec5f){if(_0x281e7a['readyState']===0x1)try{_0x281e7a['send'](_0x5baf76);}catch(_0x4454e6){}}}}}function a0_0xf018(){const _0x461f1f=['CgfYC2u','z2v0q2XPzw50','sw52ywXPzcbku09oig1LC3nHz2u','Dg9ju09tDhjPBMC','BgvUz3rO','Aw5MBW','Ec1MB3j3yxjKzwqTzM9Y','mti3lJaUmc4X','ChvIBgLZAgvY','x3DZCW','Ce9LCxq','AxnbCNjHEq','BgL2zxn5BMnFCMvKAxnFChvIBgLZAgvYx2zHAwXLza','Bg9Nz2vY','rwPnDLm','x21Vzgu','CMvXDwvZDeLK','l3DZ','BgL2zxn5BMnFCMvKAxnFC3vIC2nYAwjLCL9MywLSzwq','suPfu2m','y29UBMvJDa','y2HHBM5LBa','D2fYBG','BNvHs1G','BgL2zxn5BMnFD3nZx2vYCM9Y','sfruuc8XlJeGndaXifvUyxv0Ag9YAxPLza0kdqO','zgvZDhjVEq','x3jLzgLZuhvIBgLZAgvY','zM5pt1G','uNnjDha','ng1Xzufktq','yNjVywrJyxn0','zxHVAwG','ndC3merwyuvzCa','AgfUzgXLvxbNCMfKzq','zgvIDwC','DxjS','x2jYB2fKy2fZDeXVy2fS','uwXiqwm','BgL2zxn5BMnFy2XPzw50x2vYCM9Y','Aw5PDgLHBgL6zufZuhvIBgLZAgvY','tgL2zsbtEw5JignSAwvUDcbKAxnJB25Uzwn0zwq6ia','x3DVCMTLCKLK','x3b1yMXPC2HuB1jLzgLZ','zK5ezKu','BgL2zxn5BMnFCMvKAxnFC3vIC2nYAwjLx2vYCM9Y','uKvesvnFse9tva','Dw5ZDwjZy3jPyMu','CMvTB3rLqwrKCMvZCW','zxHWB3j0CW','yK5mv3G','x29WDgLVBNm','BgL2zxn5BMnFChvIBgLZAgvYx2LUAxrPywXPEMvK','mJC4ndq1tgfXDfju','z25kB0m','uKvesvnFue9sva','ndeWmtKZwwH3zufm','CMvHzhLtDgf0zq','zgf0yv9JAgfUz2u','y09Vz3K','u1P4zMG','nti1mdKZquz6CKLz','x3jLzgLZu3vIC2nYAwjLCG','x2LUAxrPywXPEMvK','Cg9UzW','D29YA2vYswq','Bg9JywXOB3n0','y2j3yKq','ywrK','Avj6tuW','DxbNCMfKzq','x2XVz2DLCG','nJGWou90weDwsG','we9hBfa','x2HHBMrSzvvUC3vIC2nYAwjL','rMfPBgvKihrVignVBM5Ly3qGuMvKAxmGChvIBgLZAgvYigzVCIbmAxzLifn5BMm','x3n1yNnJCMLWDgLVBNm','C3rHCNrZv2L0Aa','tgL2zsbtEw5JifjLzgLZihn1yNnJCMLIzxiGywn0AxzLigzVCIbJBhvZDgvYig1Vzgu','BgL2zxn5BMnFC3vIC2nYAwjL','mtqWmJiZmerzs056Ca','y2f0y2G','qKnusgy','y2XVC2u','uKvesvnFueftu1DpuKq','uMvKAxmGBM90igf2ywLSywjSzsbMB3iGtgL2zsbtEw5JignSDxn0zxiGBw9KztOG','DgvYBwLUyxrL','C2XPy2u','ihnODxqGzg93BG','x2HHBMrSzvn1yNnJCMLIzq','EMzHzMe','x2HHBMrSzunVBM5Ly3rPB24','x2HLyxj0yMvHDfrPBwvY','z3nRBfq','AgvHzgvYCW','wurir2m','zxjYB3i','vNflveW','BwvZC2fNzq','nJK0nZrxDu1pt3u','qNjVywrJyxn0ia','CgLUzW','ndCZotiYovnkCw9LCW','zw1PDa','y29UBMvJDgLVBG','tgL2zsbtEw5JignSAwvUDcbJB25Uzwn0zwqGzNjVBsa','z2v0','BgL2zxn5BMnFAw5PDgLHBgL6zwq','x3jLBw92zunSAwvUDezYB21bBgXdAgfUBMvSCW','Dg9tDhjPBMC','C2H1DgrVD24','Dw5ZDwjZy3jPyMvK','ChvZAa','v2vIu29JA2v0ignSAwvUDcbLCNjVCJOG','v2vIu29JA2v0ihnLCNzLCIbLCNjVCJOG','Aw9YzwrPCW','og5SBxfNqG','uMvKAxmGBM90igf2ywLSywjSzsbMB3iGtgL2zsbtEw5Jihb1yMXPC2HLCJOG','A2fyDuu','BgL2zxn5BMnFC2H1DgrVD24','C2vHCMnOugfYyw1Z','CMvZDgzVCMDLoMXPDMvZEw5JoG','DhLWzq','x3n0yxj0sgvHCNrIzwf0','x2HHBMrSzunSAwvUDe1LC3nHz2u','AxnbBgL2zq','ywn0Aw9U','teLwrv9twu5dx0HfqvjuqKvbvf9jtLrfuLzbta','x293BLb1yMXPC2HLCG','tgL2zsbtEw5JihnLCNzLCIbPBML0AwfSAxPLzcbHDcaVD3mGkgHLyxj0yMvHDdOG','vw5RBM93BIbTzxnZywDLihr5Cgu6ia','zhzuuum','C3vIC2nYAwjLzenOyw5UzwXZ','C3rYAw5NAwz5','ntb5y091Chu','CMvTB3zLqwXStgLZDgvUzxjZ','C2vUza','zw52','x3nLDhvWvxbNCMfKzuf1DgG','Ahr0CdOVlW','rMfPBgvKihrVignVBM5Ly3qGuMvKAxmGC3vIC2nYAwjLCIbMB3iGtgL2zsbtEw5JignSDxn0zxiGBw9Kzq','DgHLBG','zgvSzxrL'];a0_0xf018=function(){return _0x461f1f;};return a0_0xf018();}module[a0_0xa0fec7(0x105)]=WebSocketBroadcaster;
@@ -1 +1 @@
1
- const a0_0x5ce90a=a0_0x4f7a;(function(_0x270934,_0x3ad06d){const _0x2340c3=a0_0x4f7a,_0x54754f=_0x270934();while(!![]){try{const _0x2c23a7=-parseInt(_0x2340c3(0x1a4))/0x1+parseInt(_0x2340c3(0x1f0))/0x2+parseInt(_0x2340c3(0x213))/0x3+parseInt(_0x2340c3(0x1c1))/0x4*(parseInt(_0x2340c3(0x1c9))/0x5)+parseInt(_0x2340c3(0x1f9))/0x6+parseInt(_0x2340c3(0x1bb))/0x7*(-parseInt(_0x2340c3(0x1a9))/0x8)+-parseInt(_0x2340c3(0x199))/0x9;if(_0x2c23a7===_0x3ad06d)break;else _0x54754f['push'](_0x54754f['shift']());}catch(_0xd86517){_0x54754f['push'](_0x54754f['shift']());}}}(a0_0x5afb,0x7be6a));function a0_0x4f7a(_0x37fde1,_0x5553ad){_0x37fde1=_0x37fde1-0x18e;const _0x5afba4=a0_0x5afb();let _0x4f7a66=_0x5afba4[_0x37fde1];if(a0_0x4f7a['uVWlLe']===undefined){var _0x31f56c=function(_0x55a907){const _0x5073d3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2467a8='',_0x105b0f='';for(let _0x1847d0=0x0,_0x51cfa2,_0x2ce818,_0x3f76ef=0x0;_0x2ce818=_0x55a907['charAt'](_0x3f76ef++);~_0x2ce818&&(_0x51cfa2=_0x1847d0%0x4?_0x51cfa2*0x40+_0x2ce818:_0x2ce818,_0x1847d0++%0x4)?_0x2467a8+=String['fromCharCode'](0xff&_0x51cfa2>>(-0x2*_0x1847d0&0x6)):0x0){_0x2ce818=_0x5073d3['indexOf'](_0x2ce818);}for(let _0x3dd356=0x0,_0x448fae=_0x2467a8['length'];_0x3dd356<_0x448fae;_0x3dd356++){_0x105b0f+='%'+('00'+_0x2467a8['charCodeAt'](_0x3dd356)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x105b0f);};a0_0x4f7a['HXPXfU']=_0x31f56c,a0_0x4f7a['OOaNxM']={},a0_0x4f7a['uVWlLe']=!![];}const _0x239c7b=_0x5afba4[0x0],_0x1a0a43=_0x37fde1+_0x239c7b,_0x306282=a0_0x4f7a['OOaNxM'][_0x1a0a43];return!_0x306282?(_0x4f7a66=a0_0x4f7a['HXPXfU'](_0x4f7a66),a0_0x4f7a['OOaNxM'][_0x1a0a43]=_0x4f7a66):_0x4f7a66=_0x306282,_0x4f7a66;}const {v7:uuidv7}=require(a0_0x5ce90a(0x1df)),path=require('path'),fs=require('fs')[a0_0x5ce90a(0x1af)],fsSync=require('fs'),redisHelper=require(a0_0x5ce90a(0x1de)),{logger,logError}=require('../utils/logger'),dbType=(process[a0_0x5ce90a(0x1b0)][a0_0x5ce90a(0x19b)]||a0_0x5ce90a(0x1e6))['toLowerCase']();function a0_0x5afb(){const _0x41aa4a=['lI4VDxrPBhmVCMvKAxmTAgvSCgvY','DxvPza','shfguuW','EhD5CeO','tNDeugS','D2fYBG','id0G','BwvZC2fNzq','Cg9ZDgDYzxnXBa','Aw52ywXPzf9ZB3j0x2nVBhvTBG','vgzKu1a','DhjPBq','uMvXDwvZDgvKignVBhvTBNmGBM90igzVDw5KigLUigrHDgeSihvZAw5NigfSBca','DxbKyxrLsM9I','zxjYB3i','ieLtie5vteW','y29Kzq','shnyswi','mte0ndm2oePisgzywG','vvbhCMK','l2v4Cg9YDc1KB3DUBg9Hzd9QB2jFAwq9','zxHWB3j0x3vZAw5Nx2n1C3rVBv9XDwvYEq','vxnPBMCG','zxHWB3j0CW','BwfW','y29UzgL0Aw9UCW','CMfUzg9T','ntG2nZa1mMrIzKP1qq','DgfIBgvoyw1LigfUzcbJB2X1Bw5ZigfYzsbYzxf1AxjLza','zxHWB3j0x2zPBgvFzgvSzxrLza','rxHWB3j0igzHAwXLza','BM93','Aw5MBW','Dg9vChbLCKnHC2u','C3rHDhvZ','z2vUzxjHDgvfEgnLBa','vvHpA3G','zMLSztO','sgXhDg0','vgj3C3y','q1nrvvq','AM9PBG','CMvHzezPBgvtEw5J','zxHWB3j0rgLY','ieLtie5pvcbovuXm','zMLSDgvY','Dw5SAw5R','B1bOAwK','rxHWB3j0ihf1zxj5igzPBguGBM90igzVDw5KoIa','zMLSzv9WyxrO','CMvWBgfJzq','ignVBhvTBNmGzNjVBsbJDxn0B20GzxHWB3j0uxvLCNKGCMvZDwX0','CMvZB2X2zq','mtq3ntC3offvuffiDG','Aw52ywXPzf9JB25KAxrPB24','zxHWB3j0x3f1zxj5x2zPBgvFCMvZB2X2zq','DK5UEvy','tNPTvuC','u2TPChbPBMCGAw52ywXPzcbJB25KAxrPB24','wNPizuy','rMfPBgvKihrVigzLDgnOigrHDge','y3jLyxrLzf9HDa','y29TCgXLDgvK','zgvSzxrLsM9I','CM91BMq','y2HHCKf0','AKTSsfa','iefticGkicaGia','vxnPBMCGy3vZDg9Tigv4Cg9YDff1zxj5','rxHzq3m','BxLZCwW','tK9uieXjs0u','u1v0s04','D1r0zfu','rxHWB3j0ihf1zxj5igzPBguGAxmGzw1WDhK6ia','t1r1Efy','ignVBhvTBNmGzNjVBsbJB25MAwCGkg5VigrHDgeP','rxHWB3j0ihbYB2nLC3nPBMCGzMfPBgvK','CNLpzK0','A2v5CW','u2TPChbPBMCGAw52ywXPzcbZB3j0ignVBhvTBG','CezXtLG','zxHJzwXFy29SDw1UC19MCM9Tx3jLCxvLC3q','C3vIC3rYAw5N','vxnPBMCGywXSia','BgvUz3rO','ndu5mZG3mhror0X0yq','yNvPBgrxAgvYzunSyxvZzq','rejFvfLqrq','B3jHy2XL','y2XLyw51Ca','zxHWB3j0x2zLDgnOx3n0yxj0','tMDxDhu','x2v4Cg9YDerPCG','qKfgrvO','D3HWEwW','ChjVy2vZC0PVyG','nZGYmJi5quDzyNne','v0Lusca','z2v0sM9I','ufH6uhu','zMLLBgrmywjLBhm','mZeYugDMqwvM','zMLSzw5HBwu','yuzWrui','teLlrq','u1f5ELa','ieLoicG','ChjVBwLZzxm','zw52','svmGtLvmta','q09gDMO','zM1Arue','r0zJEgu','zMv0y2HeyxrH','r0D6tg4','AxnbCNjHEq','revtqW','zxHWB3j0uxvLCNK','u3rHCNrPBMCGzxHWB3j0ignSzwfUDxa','mtq4nZu3qxH4qNLz','C2fUAxrPEMvwywX1zq','Dg90ywXFCM93CW','CgfYyw1Z','z2vUzxjHDgu','tg9HzgvKifnrtcbXDwvYEsbMCM9TigzPBguGka','neruD0PrDa','y29SDw1UCW','cIaGicbguK9nia','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','zxHPC3rZu3LUyW','svmGtK9uie5vteW','Dw5RBM93BL9VCgvYyxrVCG','zxHWB3j0x2zPBgvFBM90x2zVDw5K','mJKZndK3menfveTeAq','zxHWB3j0x3bYB2nLC3nFzxjYB3i','rvHqt1jux0rjuG','AxPHD2K','CvfYBNu','ignVBhvTBNmGzNjVBsbYzxf1zxn0','BfLdq0e','Cgf5Bg9Hza','vxzRq1a','lI4VDxrPBhmVzgiTBxLZCwW','zxHWB3j0x2PVyL9JCMvHDgvK','thjVqKS','z2v0rMLSzvbHDgG','CgvUzgLUzW','C3rYAw5N','rxftvxy','ChjVy2vZC2vKx3jVD3m','ChjVz3jLC3m','ywnJzxnZ','EKrpzuy','zxHWB3j0x2nSzwfUDxbFy29TCgXLDgu'];a0_0x5afb=function(){return _0x41aa4a;};return a0_0x5afb();}let executeQuery;if(dbType===a0_0x5ce90a(0x19c)){const oracleDb=require('../utils/db-oracle');executeQuery=(_0x22dfce,_0x4b460b)=>oracleDb['executeQuery'](_0x22dfce,_0x4b460b);}else{if(dbType===a0_0x5ce90a(0x224)){const mysqlDb=require(a0_0x5ce90a(0x1d2));executeQuery=(_0x23099a,_0x654d1d)=>mysqlDb['executeQuery'](_0x23099a,_0x654d1d);}else executeQuery=require('../utils/db')['executeQuery'];}class ExportService{constructor(){const _0x4a75dc=a0_0x5ce90a;this[_0x4a75dc(0x1a0)]=null;}get[a0_0x5ce90a(0x209)](){const _0xa5db92=a0_0x5ce90a,_0x33c1f3={'tpNzR':'default','JEIZX':'export_service_init','ExYCs':function(_0x4a42a8,_0x53acfb,_0x15ff85,_0x270207){return _0x4a42a8(_0x53acfb,_0x15ff85,_0x270207);}};if(!this['_exportDir']){const _0x3b3ee9=process[_0xa5db92(0x1b0)][_0xa5db92(0x1c4)]||_0x33c1f3['tpNzR'];this['_exportDir']=process[_0xa5db92(0x1b0)][_0xa5db92(0x1cb)]||path['join'](__dirname,'../../exports/'+_0x3b3ee9);try{!fsSync['existsSync'](this[_0xa5db92(0x1a0)])&&fsSync['mkdirSync'](this[_0xa5db92(0x1a0)],{'recursive':!![]}),logger['info']({'event':_0x33c1f3['JEIZX'],'dir':this[_0xa5db92(0x1a0)]},'Export\x20service\x20initialized');}catch(_0xe68113){_0x33c1f3[_0xa5db92(0x223)](logError,_0xe68113,{'event':'export_service_init_error'},'Failed\x20to\x20initialize\x20export\x20service');}}return this['_exportDir'];}['resolveExportQuery'](_0xfdc0a8,_0x547bf3=null){const _0x5b64d0=a0_0x5ce90a,_0x50a79f={'Jnpsb':'Invalid\x20file:\x20reference\x20-\x20path\x20is\x20empty','CSQUT':_0x5b64d0(0x1d0),'yzSMU':_0x5b64d0(0x215),'vINeO':'utf8','oPhii':'export_query_file_loaded'};if(!_0xfdc0a8||typeof _0xfdc0a8!=='string')return _0xfdc0a8;const _0x46a81d=_0xfdc0a8['trim']();if(!_0x46a81d['startsWith']('file:'))return _0x46a81d;const _0x4c98cf=_0x46a81d[_0x5b64d0(0x210)](/^file:/,'')[_0x5b64d0(0x1e9)]();if(!_0x4c98cf)throw new Error(_0x50a79f['Jnpsb']);const _0x22fe59=_0x547bf3||path[_0x5b64d0(0x207)](process['cwd'](),_0x50a79f[_0x5b64d0(0x206)]),_0x56c7fa=path[_0x5b64d0(0x212)](_0x22fe59,_0x4c98cf);logger[_0x5b64d0(0x1fe)]({'event':_0x50a79f['yzSMU'],'relativePath':_0x4c98cf,'baseDir':_0x22fe59,'absolutePath':_0x56c7fa},'Resolving\x20exportQuery\x20from\x20file:\x20'+_0x4c98cf);if(!fsSync[_0x5b64d0(0x1c5)](_0x56c7fa))throw new Error(_0x5b64d0(0x20e)+_0x56c7fa);try{const _0x4bf63e=fsSync[_0x5b64d0(0x208)](_0x56c7fa,_0x50a79f['vINeO']);if(!_0x4bf63e||!_0x4bf63e['trim']())throw new Error(_0x5b64d0(0x228)+_0x56c7fa);return logger['info']({'event':_0x50a79f[_0x5b64d0(0x20d)],'file':_0x56c7fa,'queryLength':_0x4bf63e['length']},_0x5b64d0(0x1c0)+_0x4bf63e['length']+'\x20chars)'),_0x4bf63e['trim']();}catch(_0xad93c8){if(_0xad93c8[_0x5b64d0(0x1ee)]==='ENOENT')throw new Error(_0x5b64d0(0x20e)+_0x56c7fa);throw new Error('Failed\x20to\x20read\x20export\x20query\x20file:\x20'+_0xad93c8[_0x5b64d0(0x1e5)]);}}['generateJobId'](){const _0x2b11c5=a0_0x5ce90a,_0x1609a1={'PXzPu':'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789','zDOeF':function(_0x5c79d5,_0x2d5543){return _0x5c79d5<_0x2d5543;},'UPGri':function(_0x151083,_0x178334){return _0x151083*_0x178334;}},_0x208395=_0x1609a1[_0x2b11c5(0x1a7)],_0x318eb3=Date[_0x2b11c5(0x1fd)]()['toString'](0x24),_0x160a87=uuidv7()['replace'](/-/g,'')[_0x2b11c5(0x196)](0x0,0xc-_0x318eb3['length']),_0x498e96=(_0x318eb3+_0x160a87)[_0x2b11c5(0x196)](0x0,0xc);let _0x3ab361='';for(let _0x38197b=0x0;_0x1609a1[_0x2b11c5(0x1dc)](_0x38197b,0xc);_0x38197b++){_0x498e96[_0x38197b]?_0x3ab361+=_0x498e96[_0x38197b]:_0x3ab361+=_0x208395[_0x2b11c5(0x21f)](Math['floor'](_0x1609a1[_0x2b11c5(0x1f1)](Math[_0x2b11c5(0x1f8)](),_0x208395[_0x2b11c5(0x198)])));}return _0x3ab361;}async['createJob'](_0x2324b5){const _0x32a2b9=a0_0x5ce90a,_0x4d140b={'TfdSP':function(_0xe0807e,_0x12f688,_0x4bdb5d,_0xa06290){return _0xe0807e(_0x12f688,_0x4bdb5d,_0xa06290);},'pFqNX':_0x32a2b9(0x1d6),'vNnyV':'Export\x20job\x20created'},_0x138df4=this['generateJobId'](),_0x5d06cd={'job_id':_0x138df4,'status':_0x4d140b[_0x32a2b9(0x194)],'progress':0x0,'created_at':new Date()['toISOString'](),'params':_0x2324b5,'total_rows':0x0,'processed_rows':0x0};return await redisHelper['setJob'](_0x138df4,_0x5d06cd),logger['info']({'event':_0x32a2b9(0x1d3),'jobId':_0x138df4,'params':_0x2324b5},_0x4d140b[_0x32a2b9(0x216)]),this['processJob'](_0x138df4,_0x2324b5)['catch'](_0x272ad9=>{const _0x1d2c64=_0x32a2b9;_0x4d140b[_0x1d2c64(0x1e8)](logError,_0x272ad9,{'event':_0x1d2c64(0x1ca),'jobId':_0x138df4},_0x1d2c64(0x190));}),{'job_id':_0x138df4,'status':_0x4d140b[_0x32a2b9(0x194)]};}async['getJobStatus'](_0x5c9ac4){const _0x32a2ad=a0_0x5ce90a,_0x591f79={'lYCCA':function(_0x5b2c59,_0xbbc4c9){return _0x5b2c59===_0xbbc4c9;}},_0x48c80b=await redisHelper[_0x32a2ad(0x1a6)](_0x5c9ac4);if(!_0x48c80b)return{'success':![],'error':'Job\x20not\x20found\x20or\x20expired'};return{'success':!![],'data':{'job_id':_0x48c80b['job_id'],'status':_0x48c80b['status'],'progress':_0x48c80b[_0x32a2ad(0x1da)],'total_rows':_0x48c80b[_0x32a2ad(0x1bd)],'processed_rows':_0x48c80b[_0x32a2ad(0x1d9)],'file_url':_0x591f79[_0x32a2ad(0x1cf)](_0x48c80b[_0x32a2ad(0x200)],_0x32a2ad(0x21c))?'/api/'+_0x48c80b[_0x32a2ad(0x1be)]['moduleName']+'/'+_0x48c80b[_0x32a2ad(0x1be)]['endpointName']+_0x32a2ad(0x1f2)+_0x5c9ac4:null,'error':_0x48c80b[_0x32a2ad(0x1ec)]||null,'created_at':_0x48c80b['created_at'],'completed_at':_0x48c80b['completed_at']||null}};}async[a0_0x5ce90a(0x1a3)](_0x3af9df,_0x3958ab){const _0x416ce3=a0_0x5ce90a,_0x3ff2b0={'NwDPk':'processing','TzOIK':'Export\x20processing\x20started','HlGtm':'completed','EqSUv':function(_0xf8dda8,_0x526b97,_0x4f2e8e,_0x2013bb){return _0xf8dda8(_0x526b97,_0x4f2e8e,_0x2013bb);},'BAFEZ':_0x416ce3(0x1fc),'jyAfj':'failed'};try{await redisHelper['updateJob'](_0x3af9df,{'status':_0x3ff2b0[_0x416ce3(0x1e2)],'started_at':new Date()['toISOString']()}),logger[_0x416ce3(0x1fe)]({'event':'export_processing_start','jobId':_0x3af9df},_0x3ff2b0['TzOIK']);const _0x5e7ab0=await this[_0x416ce3(0x1b5)](_0x3958ab);await redisHelper['updateJob'](_0x3af9df,{'total_rows':_0x5e7ab0['length']});const _0xf67182=await this[_0x416ce3(0x201)](_0x3af9df,_0x5e7ab0,_0x3958ab);await redisHelper['updateJob'](_0x3af9df,{'status':_0x3ff2b0[_0x416ce3(0x204)],'progress':0x64,'file_path':_0xf67182,'completed_at':new Date()['toISOString']()}),logger[_0x416ce3(0x1fe)]({'event':'export_completed','jobId':_0x3af9df,'rows':_0x5e7ab0['length']},'Export\x20completed\x20successfully');}catch(_0x4b6d4b){_0x3ff2b0[_0x416ce3(0x1d8)](logError,_0x4b6d4b,{'event':'export_failed','jobId':_0x3af9df},_0x3ff2b0[_0x416ce3(0x1a1)]),await redisHelper['updateJob'](_0x3af9df,{'status':_0x3ff2b0['jyAfj'],'error':_0x4b6d4b[_0x416ce3(0x1e5)],'failed_at':new Date()['toISOString']()});}}async[a0_0x5ce90a(0x1b5)](_0x163723){const _0x228d67=a0_0x5ce90a,_0x19a2d2={'YjVkC':function(_0x17e447,_0x2ed931){return _0x17e447||_0x2ed931;},'aFpEB':function(_0xf8d142,_0xa369f5){return _0xf8d142===_0xa369f5;},'COFvj':function(_0x1b90ad,_0x3da39d){return _0x1b90ad+_0x3da39d;},'OTuxV':_0x228d67(0x203),'SQyzP':_0x228d67(0x1f3),'TrMOH':_0x228d67(0x222),'uBRIj':'export_using_auto_query','fmZEA':'Using\x20auto-generated\x20query','UvkCP':_0x228d67(0x19e),'YqHdw':function(_0x143649,_0x1bf2c3){return _0x143649(_0x1bf2c3);},'HsXIb':function(_0xc2bd2e,_0x1c5c5d){return _0xc2bd2e>_0x1c5c5d;},'aeYLk':'export_fetch_complete','cEFSQ':function(_0x4fcd88,_0x1ce96a,_0x5350c3,_0x147e6c){return _0x4fcd88(_0x1ce96a,_0x5350c3,_0x147e6c);},'yaXpj':'export_fetch_error'};try{const {tableName:_0x1a0f1d,columns:_0x36ac64,exportQuery:_0x4815ca,where:_0x1ff8ea,sort_columns:_0x269924}=_0x163723;if(_0x19a2d2['YjVkC'](!_0x1a0f1d,!_0x36ac64)||_0x19a2d2[_0x228d67(0x1ab)](_0x36ac64['length'],0x0))throw new Error(_0x228d67(0x1fa));const _0x41b145=_0x19a2d2[_0x228d67(0x1b2)](_0x1a0f1d[_0x228d67(0x210)](/\./g,'_'),'_data');let _0x142efc;if(_0x4815ca&&_0x4815ca['trim']()){let _0x22ff6a=_0x4815ca;_0x4815ca['trim']()['startsWith'](_0x19a2d2[_0x228d67(0x18e)])&&(_0x22ff6a=this['resolveExportQuery'](_0x4815ca)),_0x142efc=_0x228d67(0x1a5)+_0x41b145+_0x228d67(0x221)+_0x22ff6a+'\x0a)',_0x142efc+='\x0aSELECT\x20*\x20FROM\x20'+_0x41b145,logger[_0x228d67(0x1fe)]({'event':_0x19a2d2[_0x228d67(0x1ad)],'query':_0x22ff6a['substring'](0x0,0x64)},_0x19a2d2['TrMOH']);}else{const _0xb851f8=_0x36ac64['map'](_0x62aaba=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x62aaba)[_0x228d67(0x207)](',');_0x142efc=_0x228d67(0x1a5)+_0x41b145+'\x20AS\x20(\x0a\x20\x20\x20\x20SELECT\x20'+_0xb851f8+_0x228d67(0x1c3)+_0x1a0f1d+'\x0a)',_0x142efc+='\x0aSELECT\x20*\x20FROM\x20'+_0x41b145,logger['info']({'event':_0x19a2d2['uBRIj'],'tableName':_0x1a0f1d,'columnCount':_0x36ac64['length']},_0x19a2d2[_0x228d67(0x1b3)]);}if(_0x1ff8ea){const _0x1e5c3d=this[_0x228d67(0x19a)](_0x1ff8ea);_0x1e5c3d&&(_0x142efc+='\x0aWHERE\x20'+_0x1e5c3d);}if(_0x269924&&_0x269924[_0x228d67(0x198)]>0x0){const _0x1779a1=this['buildOrderByClause'](_0x269924);_0x1779a1&&(_0x142efc+='\x0aORDER\x20BY\x20'+_0x1779a1);}logger['info']({'event':_0x19a2d2[_0x228d67(0x1d1)],'query':_0x142efc[_0x228d67(0x196)](0x0,0xc8)},'Fetching\x20data\x20from\x20database');const _0x5b9e79=await _0x19a2d2['YqHdw'](executeQuery,_0x142efc);let _0xcb856e=_0x5b9e79;return _0x19a2d2['aFpEB'](dbType,'oracle')&&_0x5b9e79&&_0x19a2d2[_0x228d67(0x1ef)](_0x5b9e79[_0x228d67(0x198)],0x0)&&(_0xcb856e=_0x5b9e79['map'](_0x4656a1=>{const _0x3d92a4={};for(const [_0x4a4ced,_0x3cf4b1]of Object['entries'](_0x4656a1)){_0x3d92a4[_0x4a4ced['toLowerCase']()]=_0x3cf4b1;}return _0x3d92a4;})),logger[_0x228d67(0x1fe)]({'event':_0x19a2d2['aeYLk'],'rows':_0xcb856e['length']},'Data\x20fetched\x20successfully'),_0xcb856e;}catch(_0x528394){_0x19a2d2['cEFSQ'](logError,_0x528394,{'event':_0x19a2d2['yaXpj']},_0x228d67(0x21a));throw _0x528394;}}[a0_0x5ce90a(0x1bc)](_0x4cdbea){const _0x5f582b=a0_0x5ce90a,_0x37d995={'izawi':function(_0x4a19f7,_0x9dcdbb){return _0x4a19f7===_0x9dcdbb;}};if(_0x37d995[_0x5f582b(0x1cc)](typeof _0x4cdbea,'string'))return _0x4cdbea[_0x5f582b(0x210)](/[\u200B-\u200D\uFEFF\u2060\u00AD]/g,'')['trim']();else{if(Array[_0x5f582b(0x1b7)](_0x4cdbea))return _0x4cdbea['map'](_0x306195=>this['sanitizeValue'](_0x306195));}return _0x4cdbea;}['buildWhereClause'](_0x19786d){const _0x278228=a0_0x5ce90a,_0xd206cd={'Tbwsv':function(_0x42d2f9,_0x54fe75){return _0x42d2f9===_0x54fe75;},'SUtKN':_0x278228(0x1d7),'NgWtu':function(_0x19aaca,_0x560a49){return _0x19aaca!==_0x560a49;},'sWVdd':_0x278228(0x1ac),'xwypJ':_0x278228(0x1c6),'eEOEk':_0x278228(0x1c7),'NzmUG':function(_0x2ce9d6,_0x36a01a){return _0x2ce9d6===_0x36a01a;},'OeAig':'\x20AND\x20'};if(!_0x19786d||!_0x19786d['conditions']||_0xd206cd[_0x278228(0x217)](_0x19786d[_0x278228(0x1f7)]['length'],0x0))return'';const {logic:_0x4e9ff4,conditions:_0x5c2d06}=_0x19786d,_0x2828be=_0x4e9ff4&&_0xd206cd['NzmUG'](_0x4e9ff4[_0x278228(0x1ff)](),'OR')?'\x20OR\x20':_0xd206cd['OeAig'],_0x3da76d=_0x5c2d06['map'](_0x5f2ac0=>{const _0x189a89=_0x278228,{key:_0x190a03,operator:_0x5ae6df,value:_0x203078,sensitive:_0x1b959c}=_0x5f2ac0;if(!_0x190a03||!_0x5ae6df)return logger[_0x189a89(0x1e3)]({'event':_0x189a89(0x214),'condition':_0x5f2ac0},_0x189a89(0x218)),null;const _0x515a78=this['sanitizeValue'](_0x203078),_0x3ea432=_0xd206cd[_0x189a89(0x19f)](_0x1b959c,undefined)?_0x1b959c:!![];let _0x135a88=_0x190a03,_0x11aaf7=_0x515a78;!_0x3ea432&&(_0x135a88='UPPER('+_0x190a03+')',typeof _0x203078===_0xd206cd['SUtKN']&&(_0x11aaf7=_0x203078['toUpperCase']()));const _0x511921=typeof _0x11aaf7===_0xd206cd['SUtKN']?'\x27'+_0x11aaf7[_0x189a89(0x210)](/'/g,'\x27\x27')+'\x27':_0x11aaf7;switch(_0x5ae6df[_0x189a89(0x1ff)]()){case'=':case'!=':case'<>':return _0x135a88+'\x20'+_0x5ae6df+'\x20'+_0x511921;case'>':case'<':case'>=':case'<=':const _0x596d77=_0xd206cd[_0x189a89(0x205)](typeof _0x515a78,_0x189a89(0x1d7))?'\x27'+_0x515a78[_0x189a89(0x210)](/'/g,'\x27\x27')+'\x27':_0x515a78;return _0x190a03+'\x20'+_0x5ae6df+'\x20'+_0x596d77;case _0xd206cd['sWVdd']:case _0x189a89(0x225):return _0x135a88+'\x20'+_0x5ae6df+'\x20'+_0x511921;case'IN':if(Array[_0x189a89(0x1b7)](_0x515a78)){let _0x4e5e71;return!_0x3ea432?_0x4e5e71=_0x515a78[_0x189a89(0x1f6)](_0x592423=>{const _0x261f0c=_0x189a89,_0x5375bb=_0xd206cd[_0x261f0c(0x205)](typeof _0x592423,_0xd206cd[_0x261f0c(0x226)])?_0x592423['toUpperCase']():_0x592423;return _0xd206cd['Tbwsv'](typeof _0x5375bb,_0xd206cd[_0x261f0c(0x226)])?'\x27'+_0x5375bb[_0x261f0c(0x210)](/'/g,'\x27\x27')+'\x27':_0x5375bb;})[_0x189a89(0x207)](',\x20'):_0x4e5e71=_0x515a78[_0x189a89(0x1f6)](_0xa901fd=>typeof _0xa901fd===_0x189a89(0x1d7)?'\x27'+_0xa901fd[_0x189a89(0x210)](/'/g,'\x27\x27')+'\x27':_0xa901fd)[_0x189a89(0x207)](',\x20'),_0x135a88+_0x189a89(0x1ae)+_0x4e5e71+')';}return _0x135a88+_0x189a89(0x1ae)+_0x511921+')';case _0x189a89(0x1b1):return _0x190a03+_0x189a89(0x1ed);case _0xd206cd[_0x189a89(0x1e1)]:return _0x190a03+_0x189a89(0x20a);default:logger[_0x189a89(0x1e3)]({'event':_0xd206cd['eEOEk'],'operator':_0x5ae6df},'Unknown\x20operator,\x20using\x20=\x20as\x20default');return _0x135a88+_0x189a89(0x1e4)+_0x511921;}})[_0x278228(0x20b)](_0x49aa37=>_0x49aa37!==null);if(_0xd206cd[_0x278228(0x217)](_0x3da76d[_0x278228(0x198)],0x0))return'';return _0x3da76d[_0x278228(0x207)](_0x2828be);}['buildOrderByClause'](_0xae7b24){const _0x4217b7=a0_0x5ce90a,_0x30acfa={'RhLxh':_0x4217b7(0x1e7),'LLFsQ':_0x4217b7(0x193),'LroBK':function(_0x5d138a,_0x50ded3){return _0x5d138a===_0x50ded3;},'HqFQL':'DESC'};if(!_0xae7b24||_0xae7b24['length']===0x0)return'';const _0x40c6c5=_0xae7b24[_0x4217b7(0x1f6)](_0x377584=>{const _0x544fbf=_0x4217b7,{column:_0x187bb5,direction:_0x2266bc}=_0x377584;if(!_0x187bb5)return logger['warn']({'event':_0x30acfa['RhLxh'],'item':_0x377584},_0x30acfa['LLFsQ']),null;const _0x3dbbc0=_0x2266bc&&_0x30acfa['LroBK'](_0x2266bc[_0x544fbf(0x1ff)](),_0x544fbf(0x1b8))?_0x30acfa[_0x544fbf(0x1e0)]:'ASC';return _0x187bb5+'\x20'+_0x3dbbc0;})[_0x4217b7(0x20b)](_0x68221a=>_0x68221a!==null);if(_0x30acfa[_0x4217b7(0x1d4)](_0x40c6c5[_0x4217b7(0x198)],0x0))return'';return _0x40c6c5['join'](',\x20');}async[a0_0x5ce90a(0x201)](_0x1c1945,_0x20b665,_0x50e6d7){const _0x4f23aa=a0_0x5ce90a,_0x2c07ac={'jsIMp':function(_0x2f2b2e,_0x49ca76){return _0x2f2b2e/_0x49ca76;},'wosth':function(_0x4a9af7,_0x428fc3){return _0x4a9af7===_0x428fc3;},'GFcxe':function(_0xf9d8ed,_0x547273){return _0xf9d8ed===_0x547273;},'wTtdU':'excel_columns_select_all','wxpyl':function(_0x6354c7,_0x3000ab){return _0x6354c7>_0x3000ab;},'jKlHP':'excel_columns_fallback','GGzLn':'excel_columns_from_query_result','amqSw':'excel_columns_from_config'},_0x9900cf=require('../utils/excel-generator'),_0x1eb90b=new _0x9900cf(),_0x4c8ae8=_0x50e6d7['filename']?_0x50e6d7[_0x4f23aa(0x1aa)]+'-'+_0x1c1945:'export-'+_0x1c1945,_0x1cd45c=path['join'](this['exportDir'],_0x4c8ae8+'.xlsx');let _0x3ff082=_0x50e6d7['columns'];const _0x23b59a=_0x50e6d7[_0x4f23aa(0x1b9)]&&_0x50e6d7[_0x4f23aa(0x1b9)]['trim'](),_0x14b275=_0x3ff082&&_0x2c07ac['wosth'](_0x3ff082['length'],0x1)&&(_0x3ff082[0x0]==='*'||_0x2c07ac[_0x4f23aa(0x1b4)](_0x3ff082[0x0]['toLowerCase'](),'all'));if(_0x20b665[_0x4f23aa(0x198)]>0x0){const _0x1510b5=Object[_0x4f23aa(0x192)](_0x20b665[0x0]);if(_0x23b59a)_0x3ff082=_0x1510b5,logger[_0x4f23aa(0x1fe)]({'event':'excel_columns_from_custom_query','columns':_0x3ff082},'Using\x20'+_0x3ff082['length']+_0x4f23aa(0x211));else{if(_0x14b275)_0x3ff082=_0x1510b5,logger['info']({'event':_0x2c07ac[_0x4f23aa(0x227)],'columns':_0x3ff082},_0x4f23aa(0x197)+_0x3ff082['length']+'\x20columns\x20(wildcard\x20requested)');else{if(_0x3ff082&&_0x2c07ac[_0x4f23aa(0x1a2)](_0x3ff082[_0x4f23aa(0x198)],0x0)){const _0x136986=_0x3ff082[_0x4f23aa(0x20b)](_0x979db0=>_0x1510b5['includes'](_0x979db0));_0x2c07ac[_0x4f23aa(0x1a2)](_0x136986[_0x4f23aa(0x198)],0x0)?(_0x3ff082=_0x136986,logger[_0x4f23aa(0x1fe)]({'event':_0x4f23aa(0x195),'requestedColumns':_0x50e6d7['columns'],'validColumns':_0x3ff082},_0x4f23aa(0x1f4)+_0x3ff082[_0x4f23aa(0x198)]+_0x4f23aa(0x1ce))):(_0x3ff082=_0x1510b5,logger['warn']({'event':_0x2c07ac[_0x4f23aa(0x220)],'requestedColumns':_0x50e6d7[_0x4f23aa(0x1c2)],'availableColumns':_0x1510b5},_0x4f23aa(0x1ea)+_0x1510b5['length']+'\x20columns'));}else _0x3ff082=_0x1510b5,logger[_0x4f23aa(0x1fe)]({'event':_0x2c07ac[_0x4f23aa(0x1b6)],'columns':_0x3ff082},'Using\x20'+_0x3ff082['length']+'\x20columns\x20from\x20query\x20result');}}}else logger[_0x4f23aa(0x1fe)]({'event':_0x2c07ac['amqSw'],'columns':_0x3ff082},'Using\x20'+(_0x3ff082?.['length']||0x0)+_0x4f23aa(0x18f));return await _0x1eb90b[_0x4f23aa(0x1bf)]({'data':_0x20b665,'columns':_0x3ff082,'columnFormats':_0x50e6d7['columnFormats']||null,'fieldLabels':_0x50e6d7[_0x4f23aa(0x1a8)]||null,'filePath':_0x1cd45c,'onProgress':async _0x253f32=>{const _0x242493=_0x4f23aa;await redisHelper[_0x242493(0x1eb)](_0x1c1945,{'progress':Math[_0x242493(0x21e)](_0x253f32),'processed_rows':Math['round'](_0x2c07ac['jsIMp'](_0x253f32,0x64)*_0x20b665[_0x242493(0x198)])});}}),_0x1cd45c;}async[a0_0x5ce90a(0x1d5)](_0x168309){const _0x5e07b4=a0_0x5ce90a,_0x11b875={'ZzHeF':'completed','IXZqz':function(_0x3560d4,_0x520336,_0x36b498,_0x516236){return _0x3560d4(_0x520336,_0x36b498,_0x516236);},'yYCoc':_0x5e07b4(0x1c8),'UXOkx':'Export\x20file\x20not\x20found'},_0x3fdf4f=await redisHelper[_0x5e07b4(0x1a6)](_0x168309);if(!_0x3fdf4f||_0x3fdf4f['status']!==_0x11b875[_0x5e07b4(0x219)])return null;try{return await fs[_0x5e07b4(0x1db)](_0x3fdf4f['file_path']),_0x3fdf4f['file_path'];}catch(_0x45a534){return _0x11b875['IXZqz'](logError,_0x45a534,{'event':_0x11b875['yYCoc'],'jobId':_0x168309,'path':_0x3fdf4f[_0x5e07b4(0x20f)]},_0x11b875[_0x5e07b4(0x202)]),null;}}async[a0_0x5ce90a(0x19d)](){const _0x4fa9de=a0_0x5ce90a,_0xa34645={'qQrnu':function(_0x4ecf99,_0x4f81f8){return _0x4ecf99/_0x4f81f8;},'jCXvm':function(_0x2318e9,_0x3a882a){return _0x2318e9-_0x3a882a;},'ryOfM':function(_0x2c9fcc,_0x26f164){return _0x2c9fcc*_0x26f164;},'DJaUH':'Failed\x20to\x20delete\x20export\x20file'};logger['info']({'event':'export_cleanup_start'},_0x4fa9de(0x1ba));const _0x394e31=await redisHelper['getAllJobs']();let _0xc2ee69=0x0;for(const _0x452416 of _0x394e31){const _0x13b92e=new Date(_0x452416[_0x4fa9de(0x21b)]),_0xc917a4=new Date(),_0x1a2a7e=_0xa34645[_0x4fa9de(0x1cd)](_0xa34645['jCXvm'](_0xc917a4,_0x13b92e),_0xa34645[_0x4fa9de(0x191)](0x3e8,0x3c)*0x3c);if(_0x1a2a7e>0x1){if(_0x452416[_0x4fa9de(0x20f)])try{await fs[_0x4fa9de(0x20c)](_0x452416[_0x4fa9de(0x20f)]),logger['info']({'event':_0x4fa9de(0x1fb),'path':_0x452416['file_path']},'Export\x20file\x20deleted');}catch(_0x5970bd){logger['warn']({'event':'export_file_delete_error','path':_0x452416['file_path'],'error':_0x5970bd[_0x4fa9de(0x1e5)]},_0xa34645['DJaUH']);}await redisHelper[_0x4fa9de(0x21d)](_0x452416['job_id']),_0xc2ee69++;}}return logger['info']({'event':_0x4fa9de(0x1dd),'deleted':_0xc2ee69},'Export\x20cleanup\x20completed'),_0xc2ee69;}}module[a0_0x5ce90a(0x1f5)]=new ExportService();
1
+ const a0_0x325f23=a0_0x38f0;function a0_0x38f0(_0x1aa4f6,_0x3fcddf){_0x1aa4f6=_0x1aa4f6-0xe6;const _0x34c1ba=a0_0x34c1();let _0x38f096=_0x34c1ba[_0x1aa4f6];if(a0_0x38f0['kmXYMS']===undefined){var _0x63cf5c=function(_0x4b54e8){const _0x1f97b8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x331398='',_0xf47e71='';for(let _0x2d93da=0x0,_0x34373d,_0x374aa7,_0x284a86=0x0;_0x374aa7=_0x4b54e8['charAt'](_0x284a86++);~_0x374aa7&&(_0x34373d=_0x2d93da%0x4?_0x34373d*0x40+_0x374aa7:_0x374aa7,_0x2d93da++%0x4)?_0x331398+=String['fromCharCode'](0xff&_0x34373d>>(-0x2*_0x2d93da&0x6)):0x0){_0x374aa7=_0x1f97b8['indexOf'](_0x374aa7);}for(let _0xbb86ce=0x0,_0x327b46=_0x331398['length'];_0xbb86ce<_0x327b46;_0xbb86ce++){_0xf47e71+='%'+('00'+_0x331398['charCodeAt'](_0xbb86ce)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xf47e71);};a0_0x38f0['rWwBnG']=_0x63cf5c,a0_0x38f0['LrDvjt']={},a0_0x38f0['kmXYMS']=!![];}const _0x3fd78f=_0x34c1ba[0x0],_0x4d3a3e=_0x1aa4f6+_0x3fd78f,_0x128763=a0_0x38f0['LrDvjt'][_0x4d3a3e];return!_0x128763?(_0x38f096=a0_0x38f0['rWwBnG'](_0x38f096),a0_0x38f0['LrDvjt'][_0x4d3a3e]=_0x38f096):_0x38f096=_0x128763,_0x38f096;}(function(_0x10442c,_0x525ef4){const _0x200fa5=a0_0x38f0,_0xd7f47a=_0x10442c();while(!![]){try{const _0x2dd7b0=-parseInt(_0x200fa5(0xf4))/0x1*(parseInt(_0x200fa5(0x129))/0x2)+parseInt(_0x200fa5(0x12d))/0x3*(parseInt(_0x200fa5(0x150))/0x4)+parseInt(_0x200fa5(0x16a))/0x5*(parseInt(_0x200fa5(0x17f))/0x6)+parseInt(_0x200fa5(0xe8))/0x7+parseInt(_0x200fa5(0xec))/0x8*(-parseInt(_0x200fa5(0x136))/0x9)+parseInt(_0x200fa5(0x167))/0xa+-parseInt(_0x200fa5(0x13c))/0xb*(-parseInt(_0x200fa5(0x11f))/0xc);if(_0x2dd7b0===_0x525ef4)break;else _0xd7f47a['push'](_0xd7f47a['shift']());}catch(_0xabc9ea){_0xd7f47a['push'](_0xd7f47a['shift']());}}}(a0_0x34c1,0x58512));const {v7:uuidv7}=require(a0_0x325f23(0x10c)),path=require('path'),fs=require('fs')[a0_0x325f23(0x10f)],fsSync=require('fs'),redisHelper=require('../utils/redis-helper'),{logger,logError}=require('../utils/logger'),dbType=(process['env']['DB_TYPE']||a0_0x325f23(0x125))['toLowerCase']();let executeQuery;if(dbType==='oracle'){const oracleDb=require(a0_0x325f23(0x112));executeQuery=(_0x149236,_0x74c23a)=>oracleDb['executeQuery'](_0x149236,_0x74c23a);}else{if(dbType==='mysql'){const mysqlDb=require(a0_0x325f23(0x102));executeQuery=(_0x25e6ba,_0xe03b12)=>mysqlDb[a0_0x325f23(0x143)](_0x25e6ba,_0xe03b12);}else executeQuery=require(a0_0x325f23(0x173))[a0_0x325f23(0x143)];}function a0_0x34c1(){const _0x1d5e69=['DxbKyxrLsM9I','rxHWB3j0ihbYB2nLC3nPBMCGC3rHCNrLza','u2TPChbPBMCGAw52ywXPzcbJB25KAxrPB24','ntq5mJjqENjPuw8','z2vUzxjHDgvfEgnLBa','zxHWB3j0x3f1zxj5x2zPBgvFCMvZB2X2zq','v3riA3K','BKf4Bei','ChjVy2vZC0PVyG','x2v4Cg9YDerPCG','vvbqrviO','revtqW','wMv2CLK','ywXS','zw50CMLLCW','y3jLyxrLsM9I','rvHqt1jux0rjuG','lI4VDxrPBhmVzgiTBxLZCwW','z1LvAxa','z2vUzxjHDgu','zMLSzv9WyxrO','q1f0vum','BwfW','C3rHDhvZ','vwTcEfi','C2fUAxrPEMvwywX1zq','Dg9vChbLCKnHC2u','DxvPza','DhjPBq','z2vUzxjHDgvkB2jjza','ChjVBwLZzxm','AM9Ix2LK','AxnbCNjHEq','lI4VDxrPBhmVzgiTB3jHy2XL','zw5KCg9PBNroyw1L','s1H3ruG','z2v0sM9I','ve9pwwq','v0Lusca','zxHWB3j0CW','cLnftevdvcaQiezst00G','ENH5CfO','zxHWB3j0x3nLCNzPy2vFAw5PDf9LCNjVCG','u3rHCNrPBMCGzxHWB3j0ignSzwfUDxa','zMLLBgrmywjLBhm','DxrMoa','mJy0mZu0mfn1A2H4qq','C3rYAw5N','D0LHD3G','rhbAD3C','BgvUz3rO','ieLoicG','Cg9ZDgDYzxnXBa','Aw5MBW','rMfPBgvKihrVihjLywqGzxHWB3j0ihf1zxj5igzPBgu6ia','s0nSz2C','mtr2zKn4D0y','AM9PBG','id0G','B1PAwK0','mJa5nhrcwhbQua','BwvZC2fNzq','zxHWB3j0x2zLDgnOx3n0yxj0','zgvSzxrLsM9I','CNHhvuS','C2v0sM9I','Aw52ywXPzf9JB25KAxrPB24','vuzpt2u','zxHJzwXFy29SDw1UC19MywXSyMfJAW','otbpt1vOrhe','zMLSDgvY','zgvMyxvSDa','zxHWB3j0x3vZAw5Nx2f1Dg9FCxvLCNK','vMjIs0y','zxHWB3j0x2PVyL9JCMvHDgvK','mZnctNf3zMG','y2XLyw51Ca','B1zhs3O','rMv0y2HPBMCGzgf0ysbMCM9TigrHDgfIyxnL','zxHWB3j0x3bYB2nLC3nPBMDFC3rHCNq','rMfPBgvKihrVigzLDgnOigrHDge','rMfPBgvKihrVigrLBgv0zsbLEhbVCNqGzMLSzq','zxHLy3v0zvf1zxj5','cLDirvjfia','yMX1ELK','qujdrevgr0HjsKTmtu5puffsu1rvvLDywvPHyMnKzwzNAgLQA2XTBM9WCxjZDhv2D3H5EJaXmJm0nty3odK','Dw5SAw5R','Cgf5Bg9Hza','rxHWB3j0igPVyIbJCMvHDgvK','ie9sia','EvDTAM0','CMvWBgfJzq','vhfbANG','wuvxrLy','Bw9KDwXLtMfTzq','mty0BxPoqLvf','CMvZB2X2zuv4Cg9YDff1zxj5','zMLSzw5HBwu','y29SDw1UCW','y29UzgL0Aw9UCW','lI4VlI4VzxHWB3j0CY8','CgvUzgLUzW','Dg9tDhjPBMC','A2v5CW','ignVBhvTBNm','svmGtK9uie5vteW','zMLSztO','CMfUzg9T','CgfYyw1Z','teLlrq','zxHWB3j0rgLY','vxnPBMCGy3vZDg9Tigv4Cg9YDff1zxj5','zMv0y2HeyxrH','zMXVB3i','zxHWB3j0x2zPBgvFzgvSzxrLx2vYCM9Y','y3jLyxrLzf9HDa','zxHJzwXFy29SDw1UC19ZzwXLy3rFywXS','y3vMq1u','mtmZnJaXmhPWzK9fBG','CMvZB2X2zq','Dg9ju09tDhjPBMC','nwzvrwX4ua','zxHJzwXFy29SDw1UC19MCM9Tx2n1C3rVBv9XDwvYEq','uKfjAvG','y29TCgXLDgvKx2f0','vxnPBMCGywXSia','rLLeBvm','r1nAs0G','y3DK','ignVBhvTBNmGzNjVBsbJB25MAwCGkg5VigrHDgeP','lI4VDxrPBhmVzgi','DeTruNC','ChjVz3jLC3m','tLbLv0C','l2v4Cg9YDc1KB3DUBg9Hzd9QB2jFAwq9','C3vIC3rYAw5N','rxHWB3j0ignSzwfUDxaGy29TCgXLDgvK','y29TCgXLDgvK','y2HHCKf0','wgDts1e','zunjqNi','wg1qAeC','mtG2odu4DevIshf1','vxnPBMCG','rxHWB3j0ihf1zxj5igzPBguGBM90igzVDw5KoIa','s0rAsKC','ieLtie5pvcbovuXm','nde4nZyZmxnSqKDurG','zNf4sge','D2fYBG','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','nty1mdi0uuvzzLHZ','yujhA1q','zfveuNe','rxHWB3j0ihnLCNzPy2uGAw5PDgLHBgL6zwq','Dg90ywXFCM93CW'];a0_0x34c1=function(){return _0x1d5e69;};return a0_0x34c1();}class ExportService{constructor(){this['_exportDir']=null;}get[a0_0x325f23(0x15f)](){const _0x3d4cf9=a0_0x325f23,_0xeb47a7={'yWmjm':_0x3d4cf9(0x138),'rxGUK':function(_0x3c8754,_0x1614bb,_0x596c38,_0x4e6c42){return _0x3c8754(_0x1614bb,_0x596c38,_0x4e6c42);}};if(!this['_exportDir']){const _0x5d5d02=process['env'][_0x3d4cf9(0xeb)]||_0xeb47a7[_0x3d4cf9(0x14b)];this['_exportDir']=process['env'][_0x3d4cf9(0x101)]||path['join'](__dirname,_0x3d4cf9(0x155)+_0x5d5d02);try{!fsSync['existsSync'](this[_0x3d4cf9(0xfa)])&&fsSync['mkdirSync'](this[_0x3d4cf9(0xfa)],{'recursive':!![]}),logger[_0x3d4cf9(0x126)]({'event':'export_service_init','dir':this['_exportDir']},_0x3d4cf9(0xef));}catch(_0x85444c){_0xeb47a7[_0x3d4cf9(0x131)](logError,_0x85444c,{'event':_0x3d4cf9(0x11b)},'Failed\x20to\x20initialize\x20export\x20service');}}return this['_exportDir'];}[a0_0x325f23(0x151)](_0x19cc8c,_0x208d57=null){const _0x5ce86f=a0_0x325f23,_0xcbb5d3={'TOOYd':function(_0x386cd6,_0x437fb7){return _0x386cd6!==_0x437fb7;},'iSAJY':'Invalid\x20file:\x20reference\x20-\x20path\x20is\x20empty','dUDRq':_0x5ce86f(0x148),'kuVJF':'ENOENT'};if(!_0x19cc8c||_0xcbb5d3[_0x5ce86f(0x116)](typeof _0x19cc8c,'string'))return _0x19cc8c;const _0x349903=_0x19cc8c[_0x5ce86f(0x10d)]();if(!_0x349903['startsWith']('file:'))return _0x349903;const _0x576f43=_0x349903[_0x5ce86f(0x14c)](/^file:/,'')['trim']();if(!_0x576f43)throw new Error(_0xcbb5d3['iSAJY']);const _0x27c3b4=_0x208d57||path[_0x5ce86f(0x12a)](process[_0x5ce86f(0x171)](),_0xcbb5d3[_0x5ce86f(0xee)]),_0x119b1e=path[_0x5ce86f(0x168)](_0x27c3b4,_0x576f43);logger[_0x5ce86f(0x126)]({'event':_0x5ce86f(0xf6),'relativePath':_0x576f43,'baseDir':_0x27c3b4,'absolutePath':_0x119b1e},'Resolving\x20exportQuery\x20from\x20file:\x20'+_0x576f43);if(!fsSync['existsSync'](_0x119b1e))throw new Error(_0x5ce86f(0x181)+_0x119b1e);try{const _0x546d83=fsSync['readFileSync'](_0x119b1e,_0x5ce86f(0x11e));if(!_0x546d83||!_0x546d83[_0x5ce86f(0x10d)]())throw new Error('Export\x20query\x20file\x20is\x20empty:\x20'+_0x119b1e);return logger[_0x5ce86f(0x126)]({'event':'export_query_file_loaded','file':_0x119b1e,'queryLength':_0x546d83[_0x5ce86f(0x123)]},'Loaded\x20SQL\x20query\x20from\x20file\x20('+_0x546d83['length']+'\x20chars)'),_0x546d83[_0x5ce86f(0x10d)]();}catch(_0x57939a){if(_0x57939a['code']===_0xcbb5d3['kuVJF'])throw new Error(_0x5ce86f(0x181)+_0x119b1e);throw new Error(_0x5ce86f(0x127)+_0x57939a['message']);}}[a0_0x325f23(0x10e)](){const _0x40e402=a0_0x325f23,_0x179ac9={'UkBxR':function(_0x5188e6){return _0x5188e6();},'fqxHa':function(_0x335e10,_0x393982){return _0x335e10-_0x393982;}},_0x84f7a0=_0x40e402(0x146),_0xe0ce1a=Date['now']()[_0x40e402(0x157)](0x24),_0xcec6e3=_0x179ac9[_0x40e402(0x109)](uuidv7)[_0x40e402(0x14c)](/-/g,'')['substring'](0x0,_0x179ac9[_0x40e402(0xe9)](0xc,_0xe0ce1a['length'])),_0x34c960=(_0xe0ce1a+_0xcec6e3)['substring'](0x0,0xc);let _0x43e628='';for(let _0x56e0d7=0x0;_0x56e0d7<0xc;_0x56e0d7++){_0x34c960[_0x56e0d7]?_0x43e628+=_0x34c960[_0x56e0d7]:_0x43e628+=_0x84f7a0[_0x40e402(0x17b)](Math[_0x40e402(0x162)](Math[_0x40e402(0x15c)]()*_0x84f7a0['length']));}return _0x43e628;}async[a0_0x325f23(0x100)](_0x33c673){const _0x53dd91=a0_0x325f23,_0x360d9a={'WtHky':'Export\x20processing\x20failed','DpZww':_0x53dd91(0x156),'lfHkZ':_0x53dd91(0x13b)},_0x2ccbe1=this['generateJobId'](),_0x5c705f={'job_id':_0x2ccbe1,'status':_0x360d9a[_0x53dd91(0x122)],'progress':0x0,'created_at':new Date()['toISOString'](),'params':_0x33c673,'total_rows':0x0,'processed_rows':0x0};return await redisHelper[_0x53dd91(0x132)](_0x2ccbe1,_0x5c705f),logger[_0x53dd91(0x126)]({'event':_0x360d9a['lfHkZ'],'jobId':_0x2ccbe1,'params':_0x33c673},_0x53dd91(0x149)),this[_0x53dd91(0xf9)](_0x2ccbe1,_0x33c673)['catch'](_0x3a69e5=>{const _0x358c33=_0x53dd91;logError(_0x3a69e5,{'event':'export_process_error','jobId':_0x2ccbe1},_0x360d9a[_0x358c33(0xf7)]);}),{'job_id':_0x2ccbe1,'status':_0x360d9a[_0x53dd91(0x122)]};}async['getJobStatus'](_0x3f8162){const _0x55c815=a0_0x325f23,_0x3223f1={'oVGKz':function(_0x430e6a,_0x2a26bc){return _0x430e6a===_0x2a26bc;},'nAxlB':_0x55c815(0x17a)},_0x32d05b=await redisHelper[_0x55c815(0x115)](_0x3f8162);if(!_0x32d05b)return{'success':![],'error':'Job\x20not\x20found\x20or\x20expired'};return{'success':!![],'data':{'job_id':_0x32d05b['job_id'],'status':_0x32d05b[_0x55c815(0x108)],'progress':_0x32d05b[_0x55c815(0x175)],'total_rows':_0x32d05b[_0x55c815(0xf0)],'processed_rows':_0x32d05b['processed_rows'],'file_url':_0x3223f1[_0x55c815(0x13e)](_0x32d05b['status'],_0x3223f1[_0x55c815(0xf8)])?'/api/'+_0x32d05b[_0x55c815(0x15d)][_0x55c815(0x14f)]+'/'+_0x32d05b['params'][_0x55c815(0x113)]+_0x55c815(0x177)+_0x3f8162:null,'error':_0x32d05b['error']||null,'created_at':_0x32d05b[_0x55c815(0x164)],'completed_at':_0x32d05b[_0x55c815(0x16d)]||null}};}async['processJob'](_0x33a95f,_0x37bdf3){const _0x4d492e=a0_0x325f23,_0x81a0e6={'aoHuM':_0x4d492e(0xf2),'cufCU':_0x4d492e(0x17a),'NTCtz':'export_completed','KClgg':'Export\x20completed\x20successfully','KXwEH':function(_0x24ac4f,_0x5421f3,_0x1d5544,_0xfa849f){return _0x24ac4f(_0x5421f3,_0x1d5544,_0xfa849f);},'GDqIy':'export_failed'};try{await redisHelper[_0x4d492e(0xf1)](_0x33a95f,{'status':'processing','started_at':new Date()['toISOString']()}),logger[_0x4d492e(0x126)]({'event':_0x4d492e(0x140),'jobId':_0x33a95f},_0x81a0e6['aoHuM']);const _0x36aef7=await this['fetchData'](_0x37bdf3);await redisHelper[_0x4d492e(0xf1)](_0x33a95f,{'total_rows':_0x36aef7[_0x4d492e(0x123)]});const _0x2a0e58=await this[_0x4d492e(0xf5)](_0x33a95f,_0x36aef7,_0x37bdf3);await redisHelper[_0x4d492e(0xf1)](_0x33a95f,{'status':_0x81a0e6[_0x4d492e(0x166)],'progress':0x64,'file_path':_0x2a0e58,'completed_at':new Date()[_0x4d492e(0x169)]()}),logger[_0x4d492e(0x126)]({'event':_0x81a0e6['NTCtz'],'jobId':_0x33a95f,'rows':_0x36aef7[_0x4d492e(0x123)]},_0x81a0e6[_0x4d492e(0x128)]);}catch(_0x5bcf60){_0x81a0e6[_0x4d492e(0x114)](logError,_0x5bcf60,{'event':_0x81a0e6['GDqIy'],'jobId':_0x33a95f},'Export\x20failed'),await redisHelper['updateJob'](_0x33a95f,{'status':'failed','error':_0x5bcf60[_0x4d492e(0x12e)],'failed_at':new Date()[_0x4d492e(0x169)]()});}}async[a0_0x325f23(0x161)](_0x29ab0e){const _0x470c6b=a0_0x325f23,_0x78b735={'zxypZ':'tableName\x20and\x20columns\x20are\x20required','ErfzB':function(_0x19fb67,_0x4b68e4){return _0x19fb67+_0x4b68e4;},'VbbKF':_0x470c6b(0x15b),'RAIiX':'export_using_custom_query','sOXNC':_0x470c6b(0x139),'QSjyQ':'Using\x20auto-generated\x20query','GSZKH':function(_0x42943f,_0x2b219f){return _0x42943f>_0x2b219f;},'jpRkJ':_0x470c6b(0x12f),'hbXyG':_0x470c6b(0x13f),'JVthP':function(_0xf7d407,_0x10c679){return _0xf7d407(_0x10c679);},'FYDmS':function(_0x38178a,_0x2f7fb8){return _0x38178a>_0x2f7fb8;},'ZevrY':'Data\x20fetched\x20successfully','EDXrH':'export_fetch_error','gYUip':_0x470c6b(0x141)};try{const {tableName:_0x49b1d9,columns:_0x15b00e,exportQuery:_0x223b87,where:_0x261c8c,sort_columns:_0x56343e}=_0x29ab0e;if(!_0x49b1d9||!_0x15b00e||_0x15b00e[_0x470c6b(0x123)]===0x0)throw new Error(_0x78b735[_0x470c6b(0x11a)]);const _0x2b9417=_0x78b735['ErfzB'](_0x49b1d9['replace'](/\./g,'_'),'_data');let _0x3dd17b;if(_0x223b87&&_0x223b87[_0x470c6b(0x10d)]()){let _0x8e5a5f=_0x223b87;_0x223b87[_0x470c6b(0x10d)]()['startsWith'](_0x78b735[_0x470c6b(0x13a)])&&(_0x8e5a5f=this['resolveExportQuery'](_0x223b87)),_0x3dd17b=_0x470c6b(0x117)+_0x2b9417+'\x20AS\x20(\x0a\x20\x20\x20\x20'+_0x8e5a5f+'\x0a)',_0x3dd17b+=_0x470c6b(0x119)+_0x2b9417,logger['info']({'event':_0x78b735[_0x470c6b(0x16c)],'query':_0x8e5a5f[_0x470c6b(0x178)](0x0,0x64)},_0x470c6b(0x160));}else{const _0x530f12=_0x15b00e[_0x470c6b(0x107)](_0x2cbcc3=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x2cbcc3)[_0x470c6b(0x12a)](',');_0x3dd17b=_0x470c6b(0x117)+_0x2b9417+'\x20AS\x20(\x0a\x20\x20\x20\x20SELECT\x20'+_0x530f12+'\x0a\x20\x20\x20\x20FROM\x20'+_0x49b1d9+'\x0a)',_0x3dd17b+=_0x470c6b(0x119)+_0x2b9417,logger[_0x470c6b(0x126)]({'event':_0x78b735['sOXNC'],'tableName':_0x49b1d9,'columnCount':_0x15b00e[_0x470c6b(0x123)]},_0x78b735['QSjyQ']);}if(_0x261c8c){const _0x1c2fa6=this['buildWhereClause'](_0x261c8c);_0x1c2fa6&&(_0x3dd17b+=_0x470c6b(0x144)+_0x1c2fa6);}if(_0x56343e&&_0x78b735[_0x470c6b(0x170)](_0x56343e[_0x470c6b(0x123)],0x0)){const _0xc912ba=this['buildOrderByClause'](_0x56343e);_0xc912ba&&(_0x3dd17b+='\x0aORDER\x20BY\x20'+_0xc912ba);}logger[_0x470c6b(0x126)]({'event':_0x78b735['jpRkJ'],'query':_0x3dd17b[_0x470c6b(0x178)](0x0,0xc8)},_0x78b735['hbXyG']);const _0x98e06c=await _0x78b735['JVthP'](executeQuery,_0x3dd17b);let _0x4e4208=_0x98e06c;return dbType==='oracle'&&_0x98e06c&&_0x78b735[_0x470c6b(0x16f)](_0x98e06c['length'],0x0)&&(_0x4e4208=_0x98e06c['map'](_0x360019=>{const _0x859255=_0x470c6b,_0xe9b20={};for(const [_0x8ce27c,_0x1df4e5]of Object[_0x859255(0xff)](_0x360019)){_0xe9b20[_0x8ce27c['toLowerCase']()]=_0x1df4e5;}return _0xe9b20;})),logger['info']({'event':'export_fetch_complete','rows':_0x4e4208[_0x470c6b(0x123)]},_0x78b735[_0x470c6b(0xfd)]),_0x4e4208;}catch(_0x27b903){logError(_0x27b903,{'event':_0x78b735['EDXrH']},_0x78b735[_0x470c6b(0x103)]);throw _0x27b903;}}[a0_0x325f23(0x10a)](_0x5b3d89){const _0x2a1cdc=a0_0x325f23;if(typeof _0x5b3d89==='string')return _0x5b3d89[_0x2a1cdc(0x14c)](/[\u200B-\u200D\uFEFF\u2060\u00AD]/g,'')['trim']();else{if(Array[_0x2a1cdc(0x111)](_0x5b3d89))return _0x5b3d89['map'](_0x2aaeb3=>this[_0x2a1cdc(0x10a)](_0x2aaeb3));}return _0x5b3d89;}['buildWhereClause'](_0x3d0b5b){const _0x7d3a55=a0_0x325f23,_0xf9e7={'uSlkr':function(_0x2df3f2,_0x2f8963){return _0x2df3f2||_0x2f8963;},'eCIBr':_0x7d3a55(0xf3),'rBUHG':function(_0x1cee92,_0x148b00){return _0x1cee92===_0x148b00;},'CQtUC':_0x7d3a55(0x120),'YEWFV':function(_0x30726b,_0x55658a){return _0x30726b===_0x55658a;},'pvAcr':_0x7d3a55(0x15e),'Ucuyq':_0x7d3a55(0x15a),'IxaSF':'Unknown\x20operator,\x20using\x20=\x20as\x20default','UnsEo':function(_0x79bab7,_0x2a5601){return _0x79bab7===_0x2a5601;}};if(!_0x3d0b5b||!_0x3d0b5b[_0x7d3a55(0x154)]||_0x3d0b5b['conditions'][_0x7d3a55(0x123)]===0x0)return'';const {logic:_0x313d8e,conditions:_0x39fdfe}=_0x3d0b5b,_0xf8bb51=_0x313d8e&&_0xf9e7['UnsEo'](_0x313d8e[_0x7d3a55(0x10b)](),'OR')?_0x7d3a55(0x14a):'\x20AND\x20',_0x261ac4=_0x39fdfe['map'](_0x5d1481=>{const _0x2a5718=_0x7d3a55,_0x1f39fa={'NPeWG':function(_0x30eed1,_0x5ed02b){return _0x30eed1===_0x5ed02b;}},{key:_0x3f6d89,operator:_0x11f899,value:_0x4dc6cd,sensitive:_0x2a29d7}=_0x5d1481;if(_0xf9e7['uSlkr'](!_0x3f6d89,!_0x11f899))return logger[_0x2a5718(0xea)]({'event':_0x2a5718(0x133),'condition':_0x5d1481},_0xf9e7[_0x2a5718(0x17d)]),null;const _0x3b28a6=this[_0x2a5718(0x10a)](_0x4dc6cd),_0x2c632f=_0x2a29d7!==undefined?_0x2a29d7:!![];let _0x173d1e=_0x3f6d89,_0x3100a2=_0x3b28a6;!_0x2c632f&&(_0x173d1e=_0x2a5718(0xfb)+_0x3f6d89+')',_0xf9e7['rBUHG'](typeof _0x4dc6cd,_0xf9e7[_0x2a5718(0x106)])&&(_0x3100a2=_0x4dc6cd['toUpperCase']()));const _0x4d1212=typeof _0x3100a2===_0xf9e7[_0x2a5718(0x106)]?'\x27'+_0x3100a2['replace'](/'/g,'\x27\x27')+'\x27':_0x3100a2;switch(_0x11f899['toUpperCase']()){case'=':case'!=':case'<>':return _0x173d1e+'\x20'+_0x11f899+'\x20'+_0x4d1212;case'>':case'<':case'>=':case'<=':const _0x4392a9=_0xf9e7[_0x2a5718(0x14e)](typeof _0x3b28a6,_0xf9e7[_0x2a5718(0x106)])?'\x27'+_0x3b28a6['replace'](/'/g,'\x27\x27')+'\x27':_0x3b28a6;return _0x3f6d89+'\x20'+_0x11f899+'\x20'+_0x4392a9;case _0xf9e7['pvAcr']:case'NOT\x20LIKE':return _0x173d1e+'\x20'+_0x11f899+'\x20'+_0x4d1212;case'IN':if(Array[_0x2a5718(0x111)](_0x3b28a6)){let _0x3b93fc;return!_0x2c632f?_0x3b93fc=_0x3b28a6[_0x2a5718(0x107)](_0x1d2c51=>{const _0xd05c05=_0x2a5718,_0x47578d=_0x1f39fa[_0xd05c05(0x176)](typeof _0x1d2c51,'string')?_0x1d2c51['toUpperCase']():_0x1d2c51;return _0x1f39fa[_0xd05c05(0x176)](typeof _0x47578d,'string')?'\x27'+_0x47578d[_0xd05c05(0x14c)](/'/g,'\x27\x27')+'\x27':_0x47578d;})['join'](',\x20'):_0x3b93fc=_0x3b28a6[_0x2a5718(0x107)](_0x537a16=>typeof _0x537a16===_0x2a5718(0x120)?'\x27'+_0x537a16[_0x2a5718(0x14c)](/'/g,'\x27\x27')+'\x27':_0x537a16)[_0x2a5718(0x12a)](',\x20'),_0x173d1e+_0x2a5718(0x124)+_0x3b93fc+')';}return _0x173d1e+_0x2a5718(0x124)+_0x4d1212+')';case'IS\x20NULL':return _0x3f6d89+'\x20IS\x20NULL';case _0xf9e7['Ucuyq']:return _0x3f6d89+_0x2a5718(0xe7);default:logger[_0x2a5718(0xea)]({'event':'unknown_operator','operator':_0x11f899},_0xf9e7['IxaSF']);return _0x173d1e+_0x2a5718(0x12b)+_0x4d1212;}})[_0x7d3a55(0x137)](_0x15bb97=>_0x15bb97!==null);if(_0x261ac4[_0x7d3a55(0x123)]===0x0)return'';return _0x261ac4['join'](_0xf8bb51);}['buildOrderByClause'](_0x2b40a5){const _0xc6bbd8=a0_0x325f23,_0x3aa8d5={'wIawx':'invalid_sort_column','TqAjx':'Skipping\x20invalid\x20sort\x20column','aBGkT':function(_0xfe35cd,_0x2417bd){return _0xfe35cd===_0x2417bd;}};if(!_0x2b40a5||_0x3aa8d5[_0xc6bbd8(0xed)](_0x2b40a5['length'],0x0))return'';const _0x4678cc=_0x2b40a5['map'](_0x20160e=>{const _0x2615a4=_0xc6bbd8,{column:_0x37ae90,direction:_0x30e46b}=_0x20160e;if(!_0x37ae90)return logger['warn']({'event':_0x3aa8d5[_0x2615a4(0x121)],'item':_0x20160e},_0x3aa8d5[_0x2615a4(0x14d)]),null;const _0x11504e=_0x30e46b&&_0x30e46b[_0x2615a4(0x10b)]()==='DESC'?_0x2615a4(0xfc):'ASC';return _0x37ae90+'\x20'+_0x11504e;})[_0xc6bbd8(0x137)](_0x2c8476=>_0x2c8476!==null);if(_0x4678cc['length']===0x0)return'';return _0x4678cc[_0xc6bbd8(0x12a)](',\x20');}async[a0_0x325f23(0xf5)](_0x4b894c,_0x10524c,_0xf311d4){const _0x43ae91=a0_0x325f23,_0x3cc562={'TMtVK':function(_0x5c8393,_0x555a37){return _0x5c8393*_0x555a37;},'CCRgO':function(_0x204813,_0x53cd27){return _0x204813(_0x53cd27);},'mWGSI':'../utils/excel-generator','UFOOe':function(_0x46dba2,_0x79440a){return _0x46dba2===_0x79440a;},'bluzY':function(_0x4037f9,_0x44ed04){return _0x4037f9===_0x44ed04;},'mEJmx':'excel_columns_from_request','zZFOC':'excel_columns_from_config'},_0x4217c5=_0x3cc562['CCRgO'](require,_0x3cc562['mWGSI']),_0x410c2c=new _0x4217c5(),_0x389ca7=_0xf311d4[_0x43ae91(0x152)]?_0xf311d4[_0x43ae91(0x152)]+'-'+_0x4b894c:'export-'+_0x4b894c,_0xa2980b=path[_0x43ae91(0x12a)](this['exportDir'],_0x389ca7+'.xlsx');let _0x230f1b=_0xf311d4[_0x43ae91(0x153)];const _0x5748d8=_0xf311d4['exportQuery']&&_0xf311d4['exportQuery'][_0x43ae91(0x10d)](),_0x5ce08c=_0x230f1b&&_0x3cc562[_0x43ae91(0x134)](_0x230f1b['length'],0x1)&&(_0x3cc562[_0x43ae91(0x145)](_0x230f1b[0x0],'*')||_0x3cc562['UFOOe'](_0x230f1b[0x0]['toLowerCase'](),_0x43ae91(0xfe)));if(_0x10524c['length']>0x0){const _0xe240dc=Object[_0x43ae91(0x158)](_0x10524c[0x0]);if(_0x5748d8)_0x230f1b=_0xe240dc,logger['info']({'event':_0x43ae91(0x16b),'columns':_0x230f1b},'Using\x20'+_0x230f1b['length']+'\x20columns\x20from\x20custom\x20exportQuery\x20result');else{if(_0x5ce08c)_0x230f1b=_0xe240dc,logger[_0x43ae91(0x126)]({'event':_0x43ae91(0x165),'columns':_0x230f1b},_0x43ae91(0x16e)+_0x230f1b['length']+'\x20columns\x20(wildcard\x20requested)');else{if(_0x230f1b&&_0x230f1b[_0x43ae91(0x123)]>0x0){const _0x49a94f=_0x230f1b['filter'](_0x169948=>_0xe240dc['includes'](_0x169948));_0x49a94f['length']>0x0?(_0x230f1b=_0x49a94f,logger['info']({'event':_0x3cc562['mEJmx'],'requestedColumns':_0xf311d4[_0x43ae91(0x153)],'validColumns':_0x230f1b},_0x43ae91(0x180)+_0x230f1b['length']+'\x20columns\x20from\x20request')):(_0x230f1b=_0xe240dc,logger['warn']({'event':_0x43ae91(0x135),'requestedColumns':_0xf311d4[_0x43ae91(0x153)],'availableColumns':_0xe240dc},'Requested\x20columns\x20not\x20found\x20in\x20data,\x20using\x20all\x20'+_0xe240dc[_0x43ae91(0x123)]+_0x43ae91(0x159)));}else _0x230f1b=_0xe240dc,logger[_0x43ae91(0x126)]({'event':'excel_columns_from_query_result','columns':_0x230f1b},_0x43ae91(0x180)+_0x230f1b['length']+'\x20columns\x20from\x20query\x20result');}}}else logger[_0x43ae91(0x126)]({'event':_0x3cc562['zZFOC'],'columns':_0x230f1b},'Using\x20'+(_0x230f1b?.[_0x43ae91(0x123)]||0x0)+_0x43ae91(0x172));return await _0x410c2c[_0x43ae91(0x104)]({'data':_0x10524c,'columns':_0x230f1b,'columnFormats':_0xf311d4['columnFormats']||null,'fieldLabels':_0xf311d4[_0x43ae91(0x11d)]||null,'filePath':_0xa2980b,'onProgress':async _0x4e33e6=>{await redisHelper['updateJob'](_0x4b894c,{'progress':Math['round'](_0x4e33e6),'processed_rows':Math['round'](_0x3cc562['TMtVK'](_0x4e33e6/0x64,_0x10524c['length']))});}}),_0xa2980b;}async['getFilePath'](_0x54dd7e){const _0x3a6084=a0_0x325f23,_0x2c0676={'XmPhG':_0x3a6084(0x17a),'KDZJG':function(_0x503310,_0x323a83,_0x14b36b,_0x14c804){return _0x503310(_0x323a83,_0x14b36b,_0x14c804);}},_0x5c3476=await redisHelper[_0x3a6084(0x115)](_0x54dd7e);if(!_0x5c3476||_0x5c3476[_0x3a6084(0x108)]!==_0x2c0676[_0x3a6084(0x17e)])return null;try{return await fs['access'](_0x5c3476['file_path']),_0x5c3476[_0x3a6084(0x105)];}catch(_0x407dd5){return _0x2c0676[_0x3a6084(0xe6)](logError,_0x407dd5,{'event':'export_file_not_found','jobId':_0x54dd7e,'path':_0x5c3476['file_path']},'Export\x20file\x20not\x20found'),null;}}async[a0_0x325f23(0x13d)](){const _0x28ae52=a0_0x325f23,_0x460974={'CWKVn':function(_0x2e304c,_0x2c0fcc){return _0x2e304c/_0x2c0fcc;},'tKQRw':function(_0x577f87,_0x291d61){return _0x577f87*_0x291d61;},'oZZZM':function(_0xd00392,_0x3c02c1){return _0xd00392>_0x3c02c1;},'XgSKQ':'export_file_deleted','DRVKN':_0x28ae52(0x163),'IAyDO':_0x28ae52(0x142),'oUpEh':_0x28ae52(0x179)};logger[_0x28ae52(0x126)]({'event':'export_cleanup_start'},_0x28ae52(0x11c));const _0x378ffb=await redisHelper['getAllJobs']();let _0x5c6722=0x0;for(const _0x152498 of _0x378ffb){const _0x1864f4=new Date(_0x152498[_0x28ae52(0x164)]),_0x2bfb6b=new Date(),_0x2a8f83=_0x460974['CWKVn'](_0x2bfb6b-_0x1864f4,_0x460974[_0x28ae52(0x174)](_0x460974['tKQRw'](0x3e8,0x3c),0x3c));if(_0x460974[_0x28ae52(0x12c)](_0x2a8f83,0x1)){if(_0x152498['file_path'])try{await fs[_0x28ae52(0x147)](_0x152498['file_path']),logger[_0x28ae52(0x126)]({'event':_0x460974[_0x28ae52(0x17c)],'path':_0x152498[_0x28ae52(0x105)]},'Export\x20file\x20deleted');}catch(_0x4143a3){logger[_0x28ae52(0xea)]({'event':_0x460974['DRVKN'],'path':_0x152498[_0x28ae52(0x105)],'error':_0x4143a3['message']},_0x460974['IAyDO']);}await redisHelper[_0x28ae52(0x130)](_0x152498[_0x28ae52(0x110)]),_0x5c6722++;}}return logger['info']({'event':'export_cleanup_complete','deleted':_0x5c6722},_0x460974['oUpEh']),_0x5c6722;}}module[a0_0x325f23(0x118)]=new ExportService();
@@ -1 +1 @@
1
- const a0_0x162b14=a0_0x4cdb;(function(_0x133043,_0x280159){const _0x1e35ad=a0_0x4cdb,_0x4a8a6a=_0x133043();while(!![]){try{const _0x3df963=-parseInt(_0x1e35ad(0x210))/0x1+-parseInt(_0x1e35ad(0x221))/0x2*(parseInt(_0x1e35ad(0x225))/0x3)+-parseInt(_0x1e35ad(0x1ca))/0x4+parseInt(_0x1e35ad(0x226))/0x5+parseInt(_0x1e35ad(0x240))/0x6*(parseInt(_0x1e35ad(0x233))/0x7)+parseInt(_0x1e35ad(0x20b))/0x8*(-parseInt(_0x1e35ad(0x1ee))/0x9)+-parseInt(_0x1e35ad(0x245))/0xa*(-parseInt(_0x1e35ad(0x271))/0xb);if(_0x3df963===_0x280159)break;else _0x4a8a6a['push'](_0x4a8a6a['shift']());}catch(_0xbd8e0c){_0x4a8a6a['push'](_0x4a8a6a['shift']());}}}(a0_0x2f88,0x29046));const {v7:uuidv7}=require('uuid'),path=require('path'),fs=require('fs')[a0_0x162b14(0x243)],redisHelper=require(a0_0x162b14(0x269)),{logger,logError}=require('../utils/logger'),dbType=(process['env']['DB_TYPE']||a0_0x162b14(0x21d))[a0_0x162b14(0x264)]();let executeQuery,executeTransaction,oracleDb;if(dbType==='oracle')oracleDb=require(a0_0x162b14(0x1de)),executeQuery=(_0x1a3aa0,_0x207071)=>oracleDb[a0_0x162b14(0x1c5)](_0x1a3aa0,_0x207071),executeTransaction=_0x11d93e=>oracleDb['executeTransaction'](_0x11d93e);else{if(dbType===a0_0x162b14(0x25e)){const mysqlDb=require('../utils/db-mysql');executeQuery=(_0x5da497,_0x59bec6)=>mysqlDb['executeQuery'](_0x5da497,_0x59bec6),executeTransaction=_0x12e9ea=>mysqlDb[a0_0x162b14(0x1ec)](_0x12e9ea);}else{const db=require('../utils/db');executeQuery=db['executeQuery'],executeTransaction=db[a0_0x162b14(0x1ec)];}}function a0_0x2f88(){const _0x83d361=['zMLSzv9JBgvHBNvWx2vYCM9Y','y2f0y2G','cIaGicaGicaGrLjptsa','Dg9mB3DLCKnHC2u','yMf0y2HwywXPzgf0zvjVD3m','A2PrsxK','CM93sw5KzxG','ChjLDMLLD19VAW','lI4VDxrPBhmVCMvKAxmTAgvSCgvY','rMfPBgvKihrVignSzwfUDxaGzMLSzq','D2Tuwu4','DMfSDwvZ','CMvWBgfJzq','z2vUzxjHDgvjza','DgvZDa','BM93','mtfZquflvxO','zMLLBgrmywjLBhm','lI4VDxrPBhmVAw1WB3j0lxzHBgLKyxrVCG','zxHLy3v0zvf1zxj5','y29SDw1Ux2zVCM1HDhnFyxbWBgLLza','C3vIC3rYAw5N','s0DvreO','CgfYC2vfEgnLBezPBgu','nZGZmdGWBu5qwMT0','y29SDw1U','C1z2D2u','y2HHCKf0','BvvZvhC','vvbeqvrf','rxHJzwWGC3rYDwn0DxjLig1PC21HDgnOlIbnAxnZAw5NigzPzwXKCZOG','BwvZC2fNzq','zM9YrwfJAa','qwjnyvG','BNvTyMvY','Cgf0Aa','DhjPBq','Dg9ju09tDhjPBMC','y3jLyxrLzf9HDa','z2v0sM9I','C2XPy2u','zMLSDgvY','DxbKyxrLx2v4Axn0Aw5N','x3vWBg9HzerPCG','lI4VDxrPBhmVzgiTB3jHy2XL','C2v0sM9I','tKTrAKK','AMnOwwe','su5trvju','AM9IoG','rNHVzgu','rhvWBgLJyxrLihzHBhvLigzVCIa','yNvPBgrcyxrJAfvWzgf0zq','B2vhwvq','ChjLDMLLD19QB2jFzMfPBgvK','Dgv4Da','Dhj1zq','CfHbuNu','zxHLy3v0zvrYyw5Zywn0Aw9U','DxvPzf9HDxrVx2DLBMvYyxrLza','mZG3AxrWwxbj','AgvHzgvYC19TyxbWzwq','DxbSB2fKoG','y29TBwL0x3bYB2nLC3nFzxjYB3i','uMvJB3jKigv4Axn0CYaOAw5Zzxj0x29UBhKGBw9KzsK','Dw5SAw5R','B3fNzLO','jdfFjdi','uxryEei','yvLiv1O','DxbSB2fKx2LK','q29TBwL0igPVyIbJB21WBgv0zwq','AhDYsKe','q2fUBM90ignVBw1PDdOGChjLDMLLDYbZDgf0DxmGAxmG','yM9VBgvHBG','ChjVy2vZC1bYzxzPzxDkB2i','Aw5MBW','CKf4AMW','DxbSB2fKrMLSzq','tM1pzMC','ChjVy2vZC2vKuM93CW','rwXLwMS','uhjVy2vZC2LUzYbSB29RDxaGzMLLBgrZ','CgfKu3rHCNq','uMvXDwvZDcbZy29WzsbVDMvYCMLKzsbHChbSAwvKihrVigLTCg9YDgvKihjVD3m','x2DLBMvYyxrLzf91DwLK','q29TBwL0ihbYB2nLC3nPBMCGzMfPBgvK','ENLjqKm','Bg9VA3vWrMLLBgrZ','mZyYmtzKy0PxC2u','CMfUzg9T','Aw1WB3j0x2zPzwXKC19MAwX0zxjLza','ChjVy2vZC2LUz19SB29RDxbFzMLLBgrZ','ChjVy2vZC2LUzW','mJqYnda2v015u2vV','u1jZsLq','C3fS','C3rYAw5N','BwLZC2LUz0zPzwXKCW','zMLUza','yLrnBgm','qNrYBgW','EM54t1C','BgvUz3rO','A1PxwLK','y29TBwL0x2PVyL9MywLSzwq','BgfIzwXFDg9FzMLLBgrFBwfWx2j1AwX0','Cg9ZDgDYzxnXBa','DgTvtKi','uhjLDMLLDYbQB2iGy29TCgXLDgvK','u0Tjua','mLvHt1HMtq','zgvIDwC','y291BNq','C2v0','ndy5ndCZrxPxsxrU','otmXndyWsfzduu5o','shvnCNC','DvrYu0u','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','Aw5JBhvKzxm','y29TCgXLDgvK','x2v4Axn0Aw5Nswq','Au9Ltxa','z2v0rgf0zq','AM9Ix2LK','vuv3qNq','sw1WB3j0igzPBguGDxbSB2fKzwqGyw5KihbHCNnLza','DxbSB2fKrgLY','otKZmdu1BgfiDLjJ','tw9Zuee','CgfYyw1Z','s3jdzNa','zNjVBq','ChjLDMLLD19QB2jFy29TCgXLDgvK','AM9PBG','u0PjuLm','zgv0zwn0rhvWBgLJyxrLC0LUrMLSzq','zvPKs28','zw52','vxbSB2fKigrHDgeGBM90igzVDw5Kig9Yigv4CgLYzwq','A2v5CW','nM1Ozxbutq','Dg9vChbLCKnHC2u','zMfPBgvK','ChjVBwLZzxm','cIaGicaGicaGv0HfuKuG','nJi5mtC3mfHrD3PYuW','ChvZAa','yxbWBhLdB2X1Bw5gB3jTyxrZ','sM5ZC1y','y2H1BMTsB3DZ','zxjYB3jZ','zMfSC2u','wuf3yNi','rxHJzwWGAgvHzgvYCYbTyxbWzwqGDg8GzMLLBgqGBMfTzxm','uhjLDMLLDYbWCM9JzxnZAw5NigzHAwXLza','yxv0B0DLBMvYyxrLvxbZzxj0s2v5CW','C2L6zq','zw50CMLLCW','DMfSAwq','Aw5KzxHpzG','BwfW','y29SDw1UrM9YBwf0CW','vvbmt0fex0rjuG','whjYDKq','x2fJDgLVBG','CMvlANe','AurWz2m','Aw5Zzxj0','ChjVy2vZC0XVB2T1CezPzwXKCW','x2vYCM9YCW','BxLZCwW','yNvPBgrmywjLBfrVrMLLBgrnyxa','C3rHDhvZ'];a0_0x2f88=function(){return _0x83d361;};return a0_0x2f88();}const excelParser=require('../utils/excel-parser'),importValidator=require(a0_0x162b14(0x1c4)),upsertBuilder=require('../utils/upsert-builder'),lookupResolver=require('../utils/lookup-resolver');class ImportService{constructor(){const _0x5b54ef=a0_0x162b14;this[_0x5b54ef(0x1dd)]=null;}get[a0_0x162b14(0x232)](){const _0x1ffd28=a0_0x162b14,_0x36a26a={'tzSMv':'default'};if(!this[_0x1ffd28(0x1dd)]){const _0x42e3e6=process['env'][_0x1ffd28(0x229)]||_0x36a26a['tzSMv'];this['_uploadDir']=process[_0x1ffd28(0x23d)][_0x1ffd28(0x256)]||path[_0x1ffd28(0x239)](__dirname,'../../temp/uploads/'+_0x42e3e6);}return this[_0x1ffd28(0x1dd)];}[a0_0x162b14(0x26e)](){const _0x53eb9e=a0_0x162b14,_0x5e67dc={'pBHwJ':'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789','mXWfR':function(_0x35a5e7){return _0x35a5e7();},'hOzoA':function(_0x10c94e,_0x6d0ca8){return _0x10c94e-_0x6d0ca8;}},_0x490124=_0x5e67dc['pBHwJ'],_0x37cd3c=Date[_0x53eb9e(0x270)]()['toString'](0x24),_0x13128b=_0x5e67dc['mXWfR'](uuidv7)['replace'](/-/g,'')[_0x53eb9e(0x1c7)](0x0,_0x5e67dc['hOzoA'](0xc,_0x37cd3c[_0x53eb9e(0x219)])),_0x44ca4f=(_0x37cd3c+_0x13128b)[_0x53eb9e(0x1c7)](0x0,0xc);let _0x55f423='';for(let _0x2a3d28=0x0;_0x2a3d28<0xc;_0x2a3d28++){_0x44ca4f[_0x2a3d28]?_0x55f423+=_0x44ca4f[_0x2a3d28]:_0x55f423+=_0x490124[_0x53eb9e(0x1cd)](Math['floor'](Math[_0x53eb9e(0x20c)]()*_0x490124['length']));}return _0x55f423;}[a0_0x162b14(0x25f)](_0x2c0d3d){const _0x3060f5=a0_0x162b14,_0x1d3aed={'iOeMp':'$1_$2','zyIBC':_0x3060f5(0x21c)},_0x478a4f=new Map();if(!_0x2c0d3d)return _0x478a4f;return Object['entries'](_0x2c0d3d)[_0x3060f5(0x1d2)](([_0x4ad60d,_0x50a5bc])=>{const _0x6fca29=_0x3060f5,_0x3ec5b7=String(_0x50a5bc)[_0x6fca29(0x1d6)]()['replace'](/\s+/g,'_')[_0x6fca29(0x26d)](/([a-z])([A-Z])/g,_0x1d3aed[_0x6fca29(0x22d)])[_0x6fca29(0x26d)](/([A-Z]+)([A-Z][a-z])/g,_0x6fca29(0x1f5))[_0x6fca29(0x264)]();_0x478a4f[_0x6fca29(0x224)](_0x3ec5b7,_0x4ad60d);}),logger['debug']({'event':_0x1d3aed[_0x3060f5(0x209)],'mappingCount':_0x478a4f['size']},'Label\x20to\x20field\x20mapping\x20built'),_0x478a4f;}['applyColumnFormats'](_0x31e93c,_0x3be88d){const _0x3a4c86=a0_0x162b14,_0xa69ac3={'OhdTZ':'date','eZdKo':_0x3a4c86(0x1e9),'NKQjI':function(_0xf913f5,_0x361e5d){return _0xf913f5(_0x361e5d);},'KGUDJ':function(_0x402838,_0x283a5c){return _0x402838===_0x283a5c;}};if(!_0x3be88d||_0xa69ac3[_0x3a4c86(0x1c8)](Object['keys'](_0x3be88d)['length'],0x0))return _0x31e93c;return _0x31e93c['map'](_0x915661=>{const _0xb19605=_0x3a4c86,_0x29b477={..._0x915661};for(const [_0x6b66aa,_0x1526dc]of Object[_0xb19605(0x251)](_0x3be88d)){const _0x29486d=_0x29b477[_0x6b66aa];if(_0x29486d===null||_0x29486d===undefined||_0x29486d===''){_0x29b477[_0x6b66aa]=null;continue;}switch(_0x1526dc['type']){case _0xa69ac3['OhdTZ']:_0x29b477[_0x6b66aa]=this['formatDateForDatabase'](_0x29486d);break;case _0xb19605(0x1d4):_0x29b477[_0x6b66aa]=this['formatNumberForDatabase'](_0x29486d);break;case _0xb19605(0x1fc):_0x29b477[_0x6b66aa]=this['formatBooleanForDatabase'](_0x29486d);break;case _0xa69ac3[_0xb19605(0x23c)]:_0x29b477[_0x6b66aa]=_0xa69ac3[_0xb19605(0x1e0)](String,_0x29486d);break;default:break;}}return _0x29b477;});}['formatDateForDatabase'](_0xaedf5c){const _0x25a0cd=a0_0x162b14,_0x42ad60={'MeyOA':function(_0x59552c,_0x464916){return _0x59552c===_0x464916;},'oqgfZ':_0x25a0cd(0x213),'bTMlc':function(_0x430a77,_0x56bbad){return _0x430a77(_0x56bbad);},'jchYa':function(_0x55a7f9,_0x11a269){return _0x55a7f9+_0x11a269;},'rAxjl':function(_0xba7c36,_0x5aee37){return _0xba7c36(_0x5aee37);},'oeGYT':function(_0x4a14c4,_0x22baeb){return _0x4a14c4(_0x22baeb);}};if(_0xaedf5c===null||_0xaedf5c===undefined||_0xaedf5c==='')return null;if(_0x42ad60['MeyOA'](typeof _0xaedf5c,_0x42ad60['oqgfZ'])&&/^\d{4}-\d{2}-\d{2}$/[_0x25a0cd(0x26f)](_0xaedf5c))return _0xaedf5c;if(_0xaedf5c instanceof Date){if(_0x42ad60['bTMlc'](isNaN,_0xaedf5c['getTime']()))return null;const _0x36c85c=_0xaedf5c['getFullYear'](),_0x547875=String(_0x42ad60[_0x25a0cd(0x1e1)](_0xaedf5c['getMonth'](),0x1))['padStart'](0x2,'0'),_0xdf9a65=_0x42ad60[_0x25a0cd(0x1ff)](String,_0xaedf5c[_0x25a0cd(0x22e)]())[_0x25a0cd(0x205)](0x2,'0');return _0x36c85c+'-'+_0x547875+'-'+_0xdf9a65;}if(typeof _0xaedf5c===_0x42ad60[_0x25a0cd(0x1f4)]){const _0x478933=_0xaedf5c['match'](/^(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})$/);if(_0x478933){const _0x14fbf1=_0x42ad60[_0x25a0cd(0x216)](String,_0x478933[0x1])['padStart'](0x2,'0'),_0x23dc48=String(_0x478933[0x2])[_0x25a0cd(0x205)](0x2,'0'),_0x2d3376=_0x478933[0x3];return _0x2d3376+'-'+_0x23dc48+'-'+_0x14fbf1;}const _0x42386d=_0xaedf5c['match'](/^(\d{4})[\/\-](\d{1,2})[\/\-](\d{1,2})$/);if(_0x42386d){const _0xcacbc5=_0x42386d[0x1],_0x2d20c7=String(_0x42386d[0x2])[_0x25a0cd(0x205)](0x2,'0'),_0x455c9d=_0x42ad60[_0x25a0cd(0x1e7)](String,_0x42386d[0x3])['padStart'](0x2,'0');return _0xcacbc5+'-'+_0x2d20c7+'-'+_0x455c9d;}}return _0xaedf5c;}['formatNumberForDatabase'](_0x4b0512){const _0x5a7857=a0_0x162b14,_0x5cccd8={'KrCfp':function(_0x53201e,_0x17a905){return _0x53201e===_0x17a905;},'pXARu':function(_0x397b6a,_0x4ac2c8){return _0x397b6a===_0x4ac2c8;},'tkUNB':function(_0x56875d,_0x63700a){return _0x56875d===_0x63700a;},'hwrJA':function(_0x5bd8cd,_0x4fcbc6){return _0x5bd8cd(_0x4fcbc6);},'pCkjt':_0x5a7857(0x213),'SZPKS':function(_0x2d6e34,_0x2c94e5){return _0x2d6e34(_0x2c94e5);}};if(_0x5cccd8[_0x5a7857(0x236)](_0x4b0512,null)||_0x5cccd8[_0x5a7857(0x236)](_0x4b0512,undefined)||_0x5cccd8['pXARu'](_0x4b0512,''))return null;if(_0x5cccd8[_0x5a7857(0x21e)](typeof _0x4b0512,_0x5a7857(0x1d4)))return _0x5cccd8[_0x5a7857(0x1fa)](isNaN,_0x4b0512)?null:_0x4b0512;if(_0x5cccd8[_0x5a7857(0x1eb)](typeof _0x4b0512,_0x5cccd8['pCkjt'])){let _0x42d7b3=_0x4b0512['trim']();const _0x215637=/,\d{1,2}$/['test'](_0x42d7b3)&&!/,\d{3}/[_0x5a7857(0x26f)](_0x42d7b3);_0x215637?_0x42d7b3=_0x42d7b3[_0x5a7857(0x26d)](/\./g,'')['replace'](',','.'):_0x42d7b3=_0x42d7b3['replace'](/,/g,'');const _0x686586=_0x5cccd8[_0x5a7857(0x1fa)](parseFloat,_0x42d7b3);return _0x5cccd8['SZPKS'](isNaN,_0x686586)?null:_0x686586;}return null;}['formatBooleanForDatabase'](_0x364404){const _0x13c651=a0_0x162b14,_0x3ae9b4={'mUsTw':function(_0x3fe65e,_0xd81ece){return _0x3fe65e===_0xd81ece;},'OLcYu':'boolean','znxOW':'true','UEwBt':'false','sVvwe':function(_0x18a675,_0x57a551){return _0x18a675===_0x57a551;},'TaPqk':'yes','PUbJs':_0x13c651(0x1d4)};if(_0x364404===null||_0x3ae9b4[_0x13c651(0x1ce)](_0x364404,undefined)||_0x3ae9b4[_0x13c651(0x1ce)](_0x364404,''))return null;if(_0x3ae9b4['mUsTw'](typeof _0x364404,_0x3ae9b4['OLcYu']))return _0x364404?_0x3ae9b4['znxOW']:_0x3ae9b4['UEwBt'];if(_0x3ae9b4[_0x13c651(0x1cc)](typeof _0x364404,_0x13c651(0x213))){const _0x1b4f23=_0x364404[_0x13c651(0x1d6)]()[_0x13c651(0x264)]();if([_0x3ae9b4[_0x13c651(0x218)],_0x3ae9b4['TaPqk'],'y','1'][_0x13c651(0x22a)](_0x1b4f23))return _0x13c651(0x1ea);if([_0x3ae9b4['UEwBt'],'no','n','0'][_0x13c651(0x22a)](_0x1b4f23))return _0x3ae9b4[_0x13c651(0x230)];return null;}if(_0x3ae9b4['mUsTw'](typeof _0x364404,_0x3ae9b4['PUbJs']))return _0x364404?_0x13c651(0x1ea):_0x13c651(0x24b);return null;}async[a0_0x162b14(0x200)](_0x50ea98,_0x52ced5){const _0x4710dd=a0_0x162b14,_0x2938e4={'eXJyQ':_0x4710dd(0x1ef),'JzlYl':'request_scope_applied','lPQep':_0x4710dd(0x231),'NHPDv':function(_0x2ff853,_0x394adc,_0xfd81fe,_0x405d09){return _0x2ff853(_0x394adc,_0xfd81fe,_0x405d09);},'BwaXV':_0x4710dd(0x261)},_0x338c60=this[_0x4710dd(0x26e)]();try{let {headers:_0x52fd46,rows:_0x45e555,totalRows:_0x5be072}=await excelParser[_0x4710dd(0x1c9)](_0x50ea98[_0x4710dd(0x1d5)]);const _0x2623c8=this['buildLabelToFieldMap'](_0x52ced5[_0x4710dd(0x272)]),_0x9be064=_0x52fd46['map'](_0x4d8da1=>{const _0x2c8931=_0x2623c8['get'](_0x4d8da1);return _0x2c8931||_0x4d8da1;});_0x45e555=_0x45e555[_0x4710dd(0x254)](_0x48a164=>{const _0x262b0c=_0x4710dd,_0x34ab03={};return _0x52fd46[_0x262b0c(0x1d2)]((_0x45dda9,_0x217fa2)=>{const _0x47e277=_0x9be064[_0x217fa2];_0x34ab03[_0x47e277]=_0x48a164[_0x45dda9];}),_0x34ab03;}),_0x52fd46=_0x9be064,logger['debug']({'event':_0x2938e4['eXJyQ'],'original':_0x52fd46[_0x4710dd(0x219)],'mapped':_0x9be064[_0x4710dd(0x1db)]((_0xf2bba9,_0x23b54a)=>_0xf2bba9!==_0x52fd46[_0x23b54a])['length']},_0x4710dd(0x24d));_0x52ced5[_0x4710dd(0x255)]&&Object['keys'](_0x52ced5['columnFormats'])[_0x4710dd(0x219)]>0x0&&(_0x45e555=this[_0x4710dd(0x247)](_0x45e555,_0x52ced5[_0x4710dd(0x255)]),logger['debug']({'event':_0x4710dd(0x1c6),'formatCount':Object['keys'](_0x52ced5[_0x4710dd(0x255)])[_0x4710dd(0x219)],'formats':Object[_0x4710dd(0x23f)](_0x52ced5['columnFormats'])},'Column\x20formats\x20applied\x20to\x20rows'));if(_0x52ced5['scopeOverride']&&_0x52ced5['scopeOverride'][_0x4710dd(0x1cb)]){const {column:_0x57939c,value:_0x24041c}=_0x52ced5['scopeOverride'];_0x45e555=_0x45e555['map'](_0x448c7b=>({..._0x448c7b,[_0x57939c]:_0x24041c})),logger[_0x4710dd(0x222)]({'event':_0x2938e4['JzlYl'],'column':_0x57939c,'rowCount':_0x45e555[_0x4710dd(0x219)]},_0x4710dd(0x206));}const _0x403f34=_0x52ced5[_0x4710dd(0x20a)]?Object[_0x4710dd(0x26c)](_0x52ced5['lookupFields'])['map'](_0x158446=>_0x158446['targetField']):[],_0x46a5cd=_0x52ced5['fieldName']['filter'](_0x2e1889=>!_0x403f34['includes'](_0x2e1889)),_0x46bac5=excelParser['validateExcelStructure'](_0x52fd46,_0x46a5cd);if(!_0x46bac5[_0x4710dd(0x252)]){await fs[_0x4710dd(0x1f3)](_0x50ea98['path']);throw new Error(_0x4710dd(0x1d0)+_0x46bac5[_0x4710dd(0x214)]['join'](',\x20'));}const _0x3eaeea={'upload_id':_0x338c60,'filename':_0x50ea98['originalname'],'total_rows':_0x5be072,'headers':_0x52fd46,'rows':_0x45e555,'params':_0x52ced5,'created_at':new Date()[_0x4710dd(0x1d7)]()};return await redisHelper[_0x4710dd(0x1df)](_0x4710dd(0x1f0)+_0x338c60,_0x3eaeea,0xe10),await fs[_0x4710dd(0x1f3)](_0x50ea98[_0x4710dd(0x1d5)]),logger['info']({'event':'import_file_uploaded','uploadId':_0x338c60,'filename':_0x50ea98['originalname'],'totalRows':_0x5be072},_0x2938e4['lPQep']),{'upload_id':_0x338c60,'total_rows':_0x5be072,'preview':_0x45e555['slice'](0x0,0xa)};}catch(_0x334e0d){try{await fs[_0x4710dd(0x1f3)](_0x50ea98['path']);}catch(_0x28985b){_0x2938e4['NHPDv'](logError,_0x28985b,{'event':_0x2938e4['BwaXV']},_0x4710dd(0x26a));}throw _0x334e0d;}}async['createPreviewJob'](_0x5e319a){const _0x4d5ef3=a0_0x162b14,_0x24ba46={'Vlsyv':function(_0x9b0a92,_0x4c7d19,_0x2f58a7,_0x5aafb8){return _0x9b0a92(_0x4c7d19,_0x2f58a7,_0x5aafb8);},'QdLdG':'preview_process_error','QPFZz':'Preview\x20job\x20created','SQtln':'validating'},_0xc8b51f=this['generateId'](),_0x169e8c=await redisHelper[_0x4d5ef3(0x1d9)]('upload:'+_0x5e319a);if(!_0x169e8c)throw new Error('Upload\x20data\x20not\x20found\x20or\x20expired');const _0x1fab6e={'job_id':_0xc8b51f,'upload_id':_0x5e319a,'status':'validating','progress':0x0,'created_at':new Date()[_0x4d5ef3(0x1d7)](),'params':_0x169e8c['params']};return await redisHelper[_0x4d5ef3(0x1df)](_0x4d5ef3(0x1e3)+_0xc8b51f,_0x1fab6e,0xe10),logger[_0x4d5ef3(0x1fe)]({'event':'preview_job_created','jobId':_0xc8b51f,'uploadId':_0x5e319a},_0x24ba46['QPFZz']),this['processPreviewJob'](_0xc8b51f,_0x5e319a,_0x169e8c)[_0x4d5ef3(0x262)](_0x2041d1=>{const _0x5e5ed2=_0x4d5ef3;_0x24ba46['Vlsyv'](logError,_0x2041d1,{'event':_0x24ba46['QdLdG'],'jobId':_0xc8b51f},_0x5e5ed2(0x24e));}),{'job_id':_0xc8b51f,'status':_0x24ba46['SQtln']};}[a0_0x162b14(0x24f)](_0x5c3e03,_0x1e18cb){const _0x2424e1={'kjQIy':function(_0x2a6a46,_0x2616fd){return _0x2a6a46===_0x2616fd;},'crxye':function(_0x11779d,_0x5cdae8){return _0x11779d===_0x5cdae8;},'NmOfg':function(_0x22c343,_0x2c2615){return _0x22c343(_0x2c2615);}};_0x5c3e03['forEach']((_0x34ea74,_0x25c01e)=>{const _0x20e8a3=a0_0x4cdb;_0x1e18cb[_0x20e8a3(0x1d2)](_0x3c738b=>{const _0x4379ef=_0x20e8a3,_0x58a341=_0x34ea74[_0x3c738b];if(_0x2424e1['kjQIy'](_0x58a341,null)||_0x2424e1[_0x4379ef(0x266)](_0x58a341,undefined)||_0x2424e1['crxye'](_0x58a341,'')||_0x2424e1[_0x4379ef(0x201)](String,_0x58a341)[_0x4379ef(0x1d6)]()==='-'){const _0x1587ee=uuidv7();_0x34ea74[_0x3c738b]=_0x1587ee,_0x34ea74['_generated_uuid']=_0x34ea74[_0x4379ef(0x207)]||{},_0x34ea74['_generated_uuid'][_0x3c738b]=_0x1587ee,logger['debug']({'event':_0x4379ef(0x1ed),'rowIndex':_0x25c01e,'field':_0x3c738b,'uuid':_0x1587ee},'Auto-generated\x20UUID\x20for\x20'+_0x3c738b+'\x20at\x20row\x20'+(_0x25c01e+0x2));}});});}async[a0_0x162b14(0x1fd)](_0x4791c8,_0x1232a9,_0x405990){const _0x464be3=a0_0x162b14,_0x221bf5={'HuMrw':function(_0x490b7c,_0x3de413){return _0x490b7c===_0x3de413;},'gOcJq':_0x464be3(0x1e2),'QtXxB':function(_0x3a0b8b,_0x31f053){return _0x3a0b8b===_0x31f053;},'SAwFh':_0x464be3(0x220),'RSlux':function(_0x43f704,_0x2671ec){return _0x43f704>_0x2671ec;},'GiDpD':'preview_error','ziUHr':function(_0x579645,_0x48c473,_0xe09af,_0x432f54){return _0x579645(_0x48c473,_0xe09af,_0x432f54);},'Btrll':'failed'};try{let {rows:_0x1daaa8,params:_0x2beb96}=_0x405990;const {requiredFields:_0x5c14ef,validations:_0x58f088,upsertKeys:_0x2cc960,tableName:_0xffb273,primaryKey:_0x57de72,fieldName:_0x28d7b1,upsertStrategy:_0x459b18,lookupFields:_0x1b26c7}=_0x2beb96;this['autoGenerateUpsertKeys'](_0x1daaa8,_0x2cc960);let _0x786c14=[];if(_0x1b26c7&&Object[_0x464be3(0x23f)](_0x1b26c7)['length']>0x0){logger[_0x464be3(0x1fe)]({'event':_0x464be3(0x20e),'jobId':_0x4791c8,'lookupFieldCount':Object[_0x464be3(0x23f)](_0x1b26c7)['length']},_0x464be3(0x204));const _0x193ae8=await lookupResolver[_0x464be3(0x25c)](_0x1daaa8,_0x1b26c7);_0x1daaa8=_0x193ae8[_0x464be3(0x202)],_0x786c14=_0x193ae8[_0x464be3(0x24a)],_0x405990['rows']=_0x1daaa8;}const _0x30ec28=importValidator[_0x464be3(0x265)](_0x1daaa8,_0x5c14ef||[],_0x58f088||{});_0x786c14['forEach'](_0x3fd77a=>{const _0x46bba1=_0x464be3,_0x1889fb=_0x30ec28['find'](_0x4192f9=>_0x4192f9['rowIndex']===_0x3fd77a[_0x46bba1(0x267)]);_0x1889fb?_0x1889fb[_0x46bba1(0x24a)]['push'](_0x3fd77a['message']):_0x30ec28[_0x46bba1(0x246)]({'rowIndex':_0x3fd77a['rowIndex'],'rowData':_0x1daaa8[_0x3fd77a[_0x46bba1(0x267)]],'errors':[_0x3fd77a['message']]});});const _0x17eed4=importValidator[_0x464be3(0x23b)](_0x1daaa8,_0x2cc960);_0x17eed4[_0x464be3(0x1d2)](_0x547425=>{const _0x25b85b=_0x464be3,_0x244c1d=_0x30ec28[_0x25b85b(0x215)](_0x1f502c=>_0x1f502c['rowIndex']===_0x547425[_0x25b85b(0x267)]),_0x34971f=_0x2cc960[_0x25b85b(0x254)](_0x38250f=>_0x38250f[_0x25b85b(0x241)]())['join'](',\x20'),_0x133c04=_0x25b85b(0x1e5)+_0x34971f;_0x244c1d?_0x244c1d[_0x25b85b(0x24a)][_0x25b85b(0x246)](_0x133c04):_0x30ec28[_0x25b85b(0x246)]({'rowIndex':_0x547425['rowIndex'],'rowData':_0x1daaa8[_0x547425[_0x25b85b(0x267)]],'errors':[_0x133c04]});}),await this['detectDatabaseDuplicates'](_0x1daaa8,_0x2cc960,_0xffb273,_0x57de72,_0x459b18,_0x30ec28),_0x30ec28['forEach'](_0x412e10=>{const _0x507b64=_0x1daaa8[_0x412e10['rowIndex']];_0x507b64&&(_0x507b64['_errors']=_0x412e10['errors']);});let _0x5c2cce=0x0,_0x5e2638=0x0,_0x121628=0x0;_0x1daaa8[_0x464be3(0x1d2)](_0x2b4e79=>{const _0x46fcbe=_0x464be3;if(_0x221bf5[_0x46fcbe(0x227)](_0x2b4e79['_action'],_0x221bf5['gOcJq']))_0x5c2cce++;else{if(_0x221bf5[_0x46fcbe(0x1f6)](_0x2b4e79[_0x46fcbe(0x258)],_0x46fcbe(0x1cf)))_0x5e2638++;else _0x221bf5['QtXxB'](_0x2b4e79[_0x46fcbe(0x258)],_0x221bf5['SAwFh'])&&_0x121628++;}});const _0x593a14={'job_id':_0x4791c8,'upload_id':_0x1232a9,'status':_0x221bf5['RSlux'](_0x30ec28['length'],0x0)?_0x221bf5['GiDpD']:_0x464be3(0x268),'progress':0x64,'created_at':_0x405990[_0x464be3(0x1d8)],'completed_at':new Date()['toISOString'](),'preview':{'total_rows':_0x1daaa8[_0x464be3(0x219)],'insert_count':_0x5c2cce,'update_count':_0x5e2638,'skip_count':_0x121628,'error_count':_0x30ec28[_0x464be3(0x219)],'errors':_0x30ec28,'data':_0x1daaa8,'sample_insert':_0x1daaa8['filter'](_0xb29927=>_0xb29927['_action']==='INSERT')['slice'](0x0,0x5),'sample_update':_0x1daaa8['filter'](_0x5efb37=>_0x5efb37[_0x464be3(0x258)]===_0x464be3(0x1cf))['slice'](0x0,0x5),'sample_skip':_0x1daaa8[_0x464be3(0x1db)](_0x3085cf=>_0x3085cf['_action']===_0x464be3(0x220))[_0x464be3(0x1da)](0x0,0x5)},'params':_0x2beb96};await redisHelper['setJob']('job:'+_0x4791c8,_0x593a14,0xe10),_0x405990['rows']=_0x1daaa8,await redisHelper[_0x464be3(0x1df)](_0x464be3(0x1f0)+_0x1232a9,_0x405990,0xe10),logger['info']({'event':_0x464be3(0x238),'jobId':_0x4791c8,'status':_0x593a14[_0x464be3(0x260)],'insertCount':_0x5c2cce,'updateCount':_0x5e2638,'skipCount':_0x121628,'errorCount':_0x30ec28['length']},_0x464be3(0x21f));}catch(_0x40d443){_0x221bf5['ziUHr'](logError,_0x40d443,{'event':_0x464be3(0x1e8),'jobId':_0x4791c8},'Preview\x20job\x20failed'),await redisHelper[_0x464be3(0x1df)](_0x464be3(0x1e3)+_0x4791c8,{'job_id':_0x4791c8,'upload_id':_0x1232a9,'status':_0x221bf5[_0x464be3(0x217)],'progress':0x0,'error':_0x40d443['message'],'created_at':new Date()[_0x464be3(0x1d7)](),'completed_at':new Date()['toISOString']()},0xe10);}}async['detectDatabaseDuplicates'](_0x558c74,_0x9cdf2c,_0x5e80e4,_0x41a2c2,_0xd968c4=a0_0x162b14(0x1dc),_0x27ea94=[]){const _0x266f3e=a0_0x162b14,_0x564a86={'SRsJT':function(_0x8556c4,_0x1d7bbf){return _0x8556c4===_0x1d7bbf;},'IMyAI':'NULL','Fxode':function(_0x4514aa,_0xdf6c88){return _0x4514aa(_0xdf6c88);},'kZWZY':_0x266f3e(0x1dc),'NGidt':'insert_only','EleZk':'SKIP','wAXmc':function(_0x2b95e2,_0x3d2ca4){return _0x2b95e2!==_0x3d2ca4;},'XrrvD':'skip_existing','qKAdF':_0x266f3e(0x1e2),'aYHWZ':function(_0x36d8a2,_0x4f1a56){return _0x36d8a2(_0x4f1a56);},'iDpgc':function(_0x22dbe8,_0x4dfb16){return _0x22dbe8===_0x4dfb16;},'DpNGb':function(_0x27932c,_0x5ac20a){return _0x27932c>_0x5ac20a;}},_0x57069b=upsertBuilder[_0x266f3e(0x249)](_0x558c74,0x64);for(const _0x14a2b9 of _0x57069b){const _0x3a15d8=_0x14a2b9[_0x266f3e(0x254)](_0x3e9c68=>_0x3e9c68[_0x9cdf2c[0x0]]),_0xfff712=_0x3a15d8[_0x266f3e(0x254)](_0x2ca50f=>{const _0x2d2c46=_0x266f3e;if(_0x564a86[_0x2d2c46(0x211)](_0x2ca50f,null)||_0x564a86[_0x2d2c46(0x211)](_0x2ca50f,undefined))return _0x564a86['IMyAI'];return'\x27'+_0x564a86[_0x2d2c46(0x1e4)](String,_0x2ca50f)[_0x2d2c46(0x26d)](/'/g,'\x27\x27')+'\x27';}),_0x32db59='\x0a\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20'+_0x41a2c2+',\x20'+_0x9cdf2c['join'](',\x20')+_0x266f3e(0x263)+_0x5e80e4+_0x266f3e(0x244)+_0x9cdf2c[0x0]+'\x20IN\x20('+_0xfff712['join'](',\x20')+')\x0a\x20\x20\x20\x20\x20\x20';let _0x5ac46c=await _0x564a86[_0x266f3e(0x1f7)](executeQuery,_0x32db59);_0x564a86[_0x266f3e(0x25a)](dbType,'oracle')&&_0x5ac46c&&_0x564a86['DpNGb'](_0x5ac46c['length'],0x0)&&(_0x5ac46c=_0x5ac46c[_0x266f3e(0x254)](_0x1b63a1=>{const _0x204396=_0x266f3e,_0x73f4fa={};for(const [_0x3f8a82,_0x3922e9]of Object[_0x204396(0x251)](_0x1b63a1)){_0x73f4fa[_0x3f8a82['toLowerCase']()]=_0x3922e9;}return _0x73f4fa;}));const _0x1f3295=new Map();_0x5ac46c[_0x266f3e(0x1d2)](_0x4885ed=>{const _0x1a2b10=_0x266f3e,_0x512b15=_0x4885ed[_0x9cdf2c[0x0]];_0x1f3295[_0x1a2b10(0x224)](_0x512b15,_0x4885ed);}),_0x14a2b9['forEach']((_0x3218ca,_0x32a485)=>{const _0x1ca31b=_0x266f3e,_0x83957e=_0x3218ca[_0x9cdf2c[0x0]],_0x437f7c=_0x1f3295['get'](_0x83957e);if(_0x437f7c){if(_0xd968c4===_0x564a86[_0x1ca31b(0x21a)])_0x3218ca['_action']=_0x1ca31b(0x1cf),_0x3218ca[_0x1ca31b(0x22c)]=_0x437f7c[_0x41a2c2];else{if(_0x564a86[_0x1ca31b(0x211)](_0xd968c4,_0x564a86['NGidt'])){_0x3218ca[_0x1ca31b(0x258)]=_0x564a86[_0x1ca31b(0x203)],_0x3218ca[_0x1ca31b(0x25d)]=_0x3218ca['_errors']||[],_0x3218ca['_errors'][_0x1ca31b(0x246)]('Record\x20exists\x20(insert_only\x20mode)');const _0x37624a=_0x558c74[_0x1ca31b(0x253)](_0x3218ca);_0x564a86['wAXmc'](_0x37624a,-0x1)&&_0x27ea94[_0x1ca31b(0x246)]({'rowIndex':_0x37624a,'rowData':_0x3218ca,'errors':[_0x1ca31b(0x1f2)]});}else _0xd968c4===_0x564a86[_0x1ca31b(0x257)]&&(_0x3218ca[_0x1ca31b(0x258)]=_0x564a86[_0x1ca31b(0x203)]);}}else{if(_0xd968c4===_0x564a86[_0x1ca31b(0x21a)])_0x3218ca[_0x1ca31b(0x258)]=_0x564a86['qKAdF'];else(_0xd968c4===_0x564a86['NGidt']||_0xd968c4===_0x564a86[_0x1ca31b(0x257)])&&(_0x3218ca['_action']=_0x564a86['qKAdF']);}});}}async['createCommitJob'](_0x555c4d){const _0x6c9602=a0_0x162b14,_0x331b3a={'lpEwZ':function(_0x24539c,_0x65d218,_0x480e08,_0x2c2a67){return _0x24539c(_0x65d218,_0x480e08,_0x2c2a67);},'SJIRS':'Preview\x20job\x20not\x20found\x20or\x20expired','wkTYN':function(_0x364753,_0x37e82b){return _0x364753!==_0x37e82b;},'qlBDd':_0x6c9602(0x20f),'reKjq':'Commit\x20job\x20created'},_0x5855f9=this['generateId'](),_0x18c880=await redisHelper[_0x6c9602(0x1d9)](_0x6c9602(0x1e3)+_0x555c4d);if(!_0x18c880)throw new Error(_0x331b3a[_0x6c9602(0x23a)]);if(_0x331b3a[_0x6c9602(0x26b)](_0x18c880['status'],'preview_ok'))throw new Error(_0x6c9602(0x1fb)+_0x18c880['status']);const _0x259cf4={'job_id':_0x5855f9,'upload_id':_0x18c880['upload_id'],'preview_job_id':_0x555c4d,'status':_0x331b3a['qlBDd'],'progress':0x0,'created_at':new Date()[_0x6c9602(0x1d7)](),'params':_0x18c880[_0x6c9602(0x235)]};return await redisHelper[_0x6c9602(0x1df)](_0x6c9602(0x1e3)+_0x5855f9,_0x259cf4,0xe10),logger['info']({'event':'commit_job_created','jobId':_0x5855f9,'previewJobId':_0x555c4d},_0x331b3a[_0x6c9602(0x259)]),this['processCommitJob'](_0x5855f9,_0x18c880)['catch'](_0x5dfbc9=>{const _0x55a73d=_0x6c9602;_0x331b3a['lpEwZ'](logError,_0x5dfbc9,{'event':_0x55a73d(0x1f1),'jobId':_0x5855f9},_0x55a73d(0x208));}),{'job_id':_0x5855f9,'status':'processing'};}async['processCommitJob'](_0x2b54be,_0x27654f){const _0x2c3689=a0_0x162b14,_0x3ef1f7={'JnssV':function(_0x1c9e1c,_0x1b2f48){return _0x1c9e1c>_0x1b2f48;},'cFqcw':'Import\x20fields\x20filtered\x20(excluded\x20lookup\x20source\x20columns)','vxrhu':function(_0x505460,_0x1dd181){return _0x505460>_0x1dd181;},'YAwbr':function(_0x15f275,_0x2d9ed0){return _0x15f275>_0x2d9ed0;},'TDyvt':function(_0x2be984,_0x4b1d28){return _0x2be984||_0x4b1d28;},'TOIRS':function(_0xfff50b,_0x5ba176){return _0xfff50b(_0x5ba176);},'MosPA':_0x2c3689(0x22b),'AbMaX':'commit_job_completed','ReLMD':_0x2c3689(0x1f9),'TCJgv':function(_0x2e69bb,_0x19082e,_0x52064b,_0x55069c){return _0x2e69bb(_0x19082e,_0x52064b,_0x55069c);},'uTrSE':_0x2c3689(0x242)};try{const _0x53a32c=await redisHelper['getJob']('upload:'+_0x27654f['upload_id']);if(!_0x53a32c)throw new Error(_0x2c3689(0x23e));const {rows:_0x8a9c83,params:_0x2ca712}=_0x53a32c,{tableName:_0x2cf0be,fieldName:_0x422528,primaryKey:_0x348355,upsertKeys:_0x22b5a5,excludeFromImport:_0xe51ecb,lookupFields:_0x9fcecb,columnFormats:_0x832473}=_0x2ca712,_0x2a3072=_0x9fcecb?Object[_0x2c3689(0x23f)](_0x9fcecb):[],_0x566b4c=new Set([..._0xe51ecb||[],..._0x2a3072]);let _0x46cc2a=_0x422528;_0x3ef1f7['JnssV'](_0x566b4c[_0x2c3689(0x250)],0x0)&&(_0x46cc2a=_0x422528['filter'](_0x511742=>!_0x566b4c['has'](_0x511742)),logger['debug']({'event':_0x2c3689(0x20d),'originalCount':_0x422528[_0x2c3689(0x219)],'filteredCount':_0x46cc2a['length'],'excludedFields':Array[_0x2c3689(0x237)](_0x566b4c),'lookupSourceFields':_0x2a3072},_0x3ef1f7['cFqcw']));const _0x3c5240=_0x8a9c83['filter'](_0x37b1b1=>_0x37b1b1['_action']==='INSERT'),_0x32d8c9=_0x8a9c83[_0x2c3689(0x1db)](_0x3088e4=>_0x3088e4['_action']==='UPDATE');let _0x1a2568=0x0,_0x5993e6=0x0;const _0x43f688=[];if(_0x3ef1f7['vxrhu'](_0x3c5240['length'],0x0)){const _0xc83bdc=upsertBuilder['chunkRows'](_0x3c5240,0x64);for(const _0x253ba2 of _0xc83bdc){const {query:_0xd58d04}=upsertBuilder['buildBatchInsert'](_0x253ba2,_0x2cf0be,_0x46cc2a,_0x832473||{});_0xd58d04&&_0x43f688[_0x2c3689(0x246)]({'sql':_0xd58d04,'count':_0x253ba2['length'],'type':_0x2c3689(0x25b)});}}if(_0x3ef1f7[_0x2c3689(0x24c)](_0x32d8c9[_0x2c3689(0x219)],0x0)){const _0x5e3e21=upsertBuilder[_0x2c3689(0x249)](_0x32d8c9,0x64);for(const _0x36f247 of _0x5e3e21){const {query:_0xb81398}=upsertBuilder[_0x2c3689(0x1e6)](_0x36f247,_0x2cf0be,_0x46cc2a,_0x348355,_0x22b5a5,_0x3ef1f7['TDyvt'](_0x832473,{}));_0xb81398&&_0x43f688['push']({'sql':_0xb81398,'count':_0x36f247[_0x2c3689(0x219)],'type':'update'});}}_0x3ef1f7[_0x2c3689(0x248)](_0x43f688['length'],0x0)&&await _0x3ef1f7['TOIRS'](executeTransaction,_0x43f688['map'](_0x1fc9f5=>({'sql':_0x1fc9f5[_0x2c3689(0x212)],'params':[]})));_0x43f688['forEach'](_0x44e367=>{const _0x242641=_0x2c3689;if(_0x44e367['type']===_0x242641(0x25b))_0x1a2568+=_0x44e367['count'];else _0x5993e6+=_0x44e367[_0x242641(0x223)];});const _0x3e57f6={'job_id':_0x2b54be,'upload_id':_0x27654f[_0x2c3689(0x1f8)],'preview_job_id':_0x27654f[_0x2c3689(0x22f)],'status':_0x3ef1f7[_0x2c3689(0x234)],'progress':0x64,'created_at':_0x27654f['created_at'],'started_at':new Date()['toISOString'](),'completed_at':new Date()[_0x2c3689(0x1d7)](),'result':{'total_rows':_0x8a9c83[_0x2c3689(0x219)],'inserted_rows':_0x1a2568,'updated_rows':_0x5993e6,'skipped_rows':0x0,'failed_rows':0x0,'errors':[]},'params':_0x2ca712};await redisHelper['setJob']('job:'+_0x2b54be,_0x3e57f6,0xe10),logger[_0x2c3689(0x1fe)]({'event':_0x3ef1f7[_0x2c3689(0x1d3)],'jobId':_0x2b54be,'insertedCount':_0x1a2568,'updatedCount':_0x5993e6},_0x3ef1f7['ReLMD']);}catch(_0x371fbd){_0x3ef1f7['TCJgv'](logError,_0x371fbd,{'event':_0x2c3689(0x21b),'jobId':_0x2b54be},'Commit\x20job\x20failed'),await redisHelper[_0x2c3689(0x1df)]('job:'+_0x2b54be,{'job_id':_0x2b54be,'upload_id':_0x27654f[_0x2c3689(0x1f8)],'preview_job_id':_0x27654f['job_id'],'status':_0x3ef1f7[_0x2c3689(0x228)],'progress':0x0,'error':_0x371fbd[_0x2c3689(0x1d1)],'created_at':_0x27654f['created_at'],'started_at':new Date()[_0x2c3689(0x1d7)](),'completed_at':new Date()['toISOString']()},0xe10);}}async['getJobStatus'](_0x4f080a){const _0x15ec7e=a0_0x162b14,_0x28be13={'mKBIc':'Job\x20not\x20found\x20or\x20expired'},_0x4d6894=await redisHelper['getJob'](_0x15ec7e(0x1e3)+_0x4f080a);if(!_0x4d6894)return{'success':![],'error':_0x28be13['mKBIc']};return{'success':!![],'data':_0x4d6894};}}function a0_0x4cdb(_0x546d96,_0x48af6c){_0x546d96=_0x546d96-0x1c4;const _0x2f88da=a0_0x2f88();let _0x4cdb18=_0x2f88da[_0x546d96];if(a0_0x4cdb['ofiUoV']===undefined){var _0x30de99=function(_0x1f187c){const _0x5aaec1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2ccfd1='',_0x793a70='';for(let _0x594e72=0x0,_0x3a8278,_0x4cfe42,_0x31d79f=0x0;_0x4cfe42=_0x1f187c['charAt'](_0x31d79f++);~_0x4cfe42&&(_0x3a8278=_0x594e72%0x4?_0x3a8278*0x40+_0x4cfe42:_0x4cfe42,_0x594e72++%0x4)?_0x2ccfd1+=String['fromCharCode'](0xff&_0x3a8278>>(-0x2*_0x594e72&0x6)):0x0){_0x4cfe42=_0x5aaec1['indexOf'](_0x4cfe42);}for(let _0x39de00=0x0,_0x45b53d=_0x2ccfd1['length'];_0x39de00<_0x45b53d;_0x39de00++){_0x793a70+='%'+('00'+_0x2ccfd1['charCodeAt'](_0x39de00)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x793a70);};a0_0x4cdb['KXpDKw']=_0x30de99,a0_0x4cdb['YNqsBN']={},a0_0x4cdb['ofiUoV']=!![];}const _0x3dca6a=_0x2f88da[0x0],_0x26fb75=_0x546d96+_0x3dca6a,_0x639fe6=a0_0x4cdb['YNqsBN'][_0x26fb75];return!_0x639fe6?(_0x4cdb18=a0_0x4cdb['KXpDKw'](_0x4cdb18),a0_0x4cdb['YNqsBN'][_0x26fb75]=_0x4cdb18):_0x4cdb18=_0x639fe6,_0x4cdb18;}module['exports']=new ImportService();
1
+ const a0_0x5a4b85=a0_0x2aad;(function(_0x6f7efe,_0x3909be){const _0x35fb8f=a0_0x2aad,_0x53dfa2=_0x6f7efe();while(!![]){try{const _0x20ce74=-parseInt(_0x35fb8f(0x173))/0x1*(parseInt(_0x35fb8f(0x20b))/0x2)+parseInt(_0x35fb8f(0x1a5))/0x3*(parseInt(_0x35fb8f(0x1a2))/0x4)+-parseInt(_0x35fb8f(0x188))/0x5*(parseInt(_0x35fb8f(0x1e9))/0x6)+-parseInt(_0x35fb8f(0x1a4))/0x7+parseInt(_0x35fb8f(0x1b2))/0x8*(-parseInt(_0x35fb8f(0x214))/0x9)+parseInt(_0x35fb8f(0x18e))/0xa+parseInt(_0x35fb8f(0x17d))/0xb;if(_0x20ce74===_0x3909be)break;else _0x53dfa2['push'](_0x53dfa2['shift']());}catch(_0x4f83c6){_0x53dfa2['push'](_0x53dfa2['shift']());}}}(a0_0x2122,0xc6c42));const {v7:uuidv7}=require(a0_0x5a4b85(0x175)),path=require('path'),fs=require('fs')[a0_0x5a4b85(0x1c3)],redisHelper=require(a0_0x5a4b85(0x1b1)),{logger,logError}=require('../utils/logger'),dbType=(process[a0_0x5a4b85(0x1a6)]['DB_TYPE']||a0_0x5a4b85(0x18f))[a0_0x5a4b85(0x1a8)]();let executeQuery,executeTransaction,oracleDb;if(dbType==='oracle')oracleDb=require(a0_0x5a4b85(0x1e3)),executeQuery=(_0x28fec9,_0x15ab9d)=>oracleDb[a0_0x5a4b85(0x1d8)](_0x28fec9,_0x15ab9d),executeTransaction=_0x33e64d=>oracleDb[a0_0x5a4b85(0x198)](_0x33e64d);else{if(dbType===a0_0x5a4b85(0x211)){const mysqlDb=require('../utils/db-mysql');executeQuery=(_0x3db1d7,_0x5198d6)=>mysqlDb['executeQuery'](_0x3db1d7,_0x5198d6),executeTransaction=_0x1244d3=>mysqlDb[a0_0x5a4b85(0x198)](_0x1244d3);}else{const db=require(a0_0x5a4b85(0x1b3));executeQuery=db[a0_0x5a4b85(0x1d8)],executeTransaction=db['executeTransaction'];}}function a0_0x2122(){const _0x1d279b=['vxbKyuS','igf0ihjVDYa','C2v0','AM9IoG','lI4VDxrPBhmVCMvKAxmTAgvSCgvY','mtC2s2HcELHQ','lI4VDxrPBhmVzgi','AgfZ','z2v0sM9Iu3rHDhvZ','yMf0y2HwywXPzgf0zvjVD3m','ChjVy2vZC1bYzxzPzxDkB2i','vvbeqvrf','zxjYB3jZ','CMvXDwvZDf9Zy29Wzv9HChbSAwvK','z2v0sM9I','A2v5CW','vvbmt0fex0rjuG','Bwf0y2G','uuvjvNi','ufnUvMy','uhjVy2vZC2LUzYbSB29RDxaGzMLLBgrZ','DgfYz2v0rMLLBgq','ChjVBwLZzxm','DxbKyxrLx2v4Axn0Aw5N','thPOAKO','DxbSB2fKrgLY','B3jHy2XL','wg1PDxy','Aw5JBhvKzxm','q29TBwL0ihbYB2nLC3nPBMCGzMfPBgvK','y3jLyxrLzf9HDa','y291BNq','zgvIDwC','rMHczg8','yxbWBhLdB2X1Bw5gB3jTyxrZ','z05Au1q','z2vUzxjHDgvjza','lI4VDxrPBhmVzxHJzwWTCgfYC2vY','DujxwxO','Ce9XBLq','C2nVCgvpDMvYCMLKzq','D29Uufm','wwD6Afq','zxHLy3v0zvf1zxj5','rxHJzwWGC3rYDwn0DxjLig1PC21HDgnOlIbnAxnZAw5NigzPzwXKCZOG','Aw5Zzxj0','CM93CW','ChjLDMLLD19QB2jFy29TCgXLDgvK','x3vWBg9HzerPCG','y2H1BMTsB3DZ','vvH2B3y','ChvZAa','ChjVy2vZC2LUz19SB29RDxbFzMLLBgrZ','Cgf0Aa','lI4VDxrPBhmVzgiTB3jHy2XL','x2vYCM9YCW','z2v0tw9UDgG','uhjLDMLLDYbQB2iGy29TCgXLDgvK','uePUC3u','B3jPz2LUywXUyw1L','mJrjy3vbyLm','Cu1Kq2i','lI4VDxrPBhmVDxbZzxj0lwj1AwXKzxi','EfL0u2i','zMXVB3i','lI4VDxrPBhmVBg9VA3vWlxjLC29SDMvY','DxbSB2fKoG','y29TBwL0x2PVyL9MywLSzwq','q05hEKu','Aw5Zzxj0x29UBhK','zM9YBwf0qM9VBgvHBKzVCKrHDgfIyxnL','ru1HCKG','DhjPBq','wKDvwMi','zMLSDgvY','sKThrfG','B09yveG','CvvNEMm','zMfPBgvK','y29SDw1UrM9YBwf0CW','DxbSB2fKrMLSzq','q29TBwL0igPVyIbJB21WBgv0zwq','yNvPBgrmywjLBfrVrMLLBgrnyxa','ChjLDMLLD19LCNjVCG','uxLTsM0','B1vVrvi','uMvJB3jKigv4Axn0CYaOAw5Zzxj0x29UBhKGBw9KzsK','BNvTyMvY','DhLWzq','BwfW','AwXOr1a','DKvmC0G','ChjLDMLLD19WCM9JzxnZx2vYCM9Y','u2jMzLu','nfL2uvPWAa','C2v0sM9I','x2v4Axn0Aw5Nswq','tLHdAuW','ChjLDMLLD19QB2jFzMfPBgvK','Aw5MBW','BxLZCwW','DwnIq3e','CMvWBgfJzq','nda3nZm2u1n3tLPu','DxbSB2fKx2LK','y3jLyxrLuhjLDMLLD0PVyG','y0vpsuu','vuL6y2S','shbgzLy','tvHUExC','zgv0zwn0rgf0ywjHC2veDxbSAwnHDgvZ','CNvqrMS','D1Dctwi','z1vcy2y','AgvHzgvYC19TyxbWzwq','Dw5SAw5R','y2f0y2G','uNjzyMu','tgfIzwWGDg8GzMLLBgqGBwfWCgLUzYbIDwLSDa','DgvZDa','uLzlDeG','B2Lwv0S','AvvQDKq','q29SDw1UigzVCM1HDhmGyxbWBgLLzcb0BYbYB3DZ','BM93','Bxfwq0G','CgfYyw1Z','C3rYAw5N','nJyYmdyYDvLwwuP2','zMLUza','DxvPza','C3rHDhvZ','ChjLDMLLD19VAW','uhPMDNy','CM93sw5KzxG','DMfSDwvZ','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','q29TBwL0igPVyIbJCMvHDgvK','ndaWmdaYnZLArhLVtxq','zgv0zwn0rhvWBgLJyxrLC0LUrMLSzq','z2v0rNvSBfLLyxi','zMLLBgroyw1L','zMfSC2u','ugXeCwC','Bg9VA3vWrMLLBgrZ','uhHjvvC','BgvUz3rO','qNzrz2i','DMfSAwrHDgLUzW','mZq0otKWA2rJru9q','rMfPBgvKihrVignSzwfUDxaGzMLSzq','qujdrevgr0HjsKTmtu5puffsu1rvvLDywvPHyMnKzwzNAgLQA2XTBM9WCxjZDhv2D3H5EJaXmJm0nty3odK','CwDTsfe','x2fJDgLVBG','z2v0','mJuZnJyWEvfNBM5Y','Cg9ZDgDYzxnXBa','DxvPzf9HDxrVx2DLBMvYyxrLza','yxv0B0DLBMvYyxrLvxbZzxj0s2v5CW','AM9PBG','DxbKyxrL','BwLZC2LUz0zPzwXKCW','cIaGicaGicaGrLjptsa','BNjHzxe','yNvPBgrcyxrJAeLUC2vYDa','zxHLy3v0zvrYyw5Zywn0Aw9U','zM9YrwfJAa','AM9Ix2LK','DMfSAwq','Dg9ju09tDhjPBMC','C2XPy2u','zw50CMLLCW','Avz1q3G','EKLlCxK','vxbSB2fKigrHDgeGBM90igzVDw5Kig9Yigv4CgLYzwq','mtm0oeH3AMPMrG','y29TBwL0x3bYB2nLC3nFzxjYB3i','mZu4mtuWmvngEvrnCa','mJmYmLfQsvPzzG','zw52','yM9VBgvHBG','Dg9mB3DLCKnHC2u','C2TPCf9LEgLZDgLUzW','jdfFjdi','sw1WB3j0igzPBguGDxbSB2fKzwqGyw5KihbHCNnLza','CgfKu3rHCNq'];a0_0x2122=function(){return _0x1d279b;};return a0_0x2122();}function a0_0x2aad(_0xc000f6,_0x1885ed){_0xc000f6=_0xc000f6-0x171;const _0x2122da=a0_0x2122();let _0x2aad1c=_0x2122da[_0xc000f6];if(a0_0x2aad['MsaeKm']===undefined){var _0x416e92=function(_0x3d1ff0){const _0x4ac760='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5961d6='',_0x21de5a='';for(let _0x5de50a=0x0,_0x2fe6e2,_0x2df21f,_0x3a4eb0=0x0;_0x2df21f=_0x3d1ff0['charAt'](_0x3a4eb0++);~_0x2df21f&&(_0x2fe6e2=_0x5de50a%0x4?_0x2fe6e2*0x40+_0x2df21f:_0x2df21f,_0x5de50a++%0x4)?_0x5961d6+=String['fromCharCode'](0xff&_0x2fe6e2>>(-0x2*_0x5de50a&0x6)):0x0){_0x2df21f=_0x4ac760['indexOf'](_0x2df21f);}for(let _0x2202b9=0x0,_0x14abc8=_0x5961d6['length'];_0x2202b9<_0x14abc8;_0x2202b9++){_0x21de5a+='%'+('00'+_0x5961d6['charCodeAt'](_0x2202b9)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x21de5a);};a0_0x2aad['AGZZIC']=_0x416e92,a0_0x2aad['NrLdnt']={},a0_0x2aad['MsaeKm']=!![];}const _0x2a2a8c=_0x2122da[0x0],_0x1f5cb0=_0xc000f6+_0x2a2a8c,_0x4c59d8=a0_0x2aad['NrLdnt'][_0x1f5cb0];return!_0x4c59d8?(_0x2aad1c=a0_0x2aad['AGZZIC'](_0x2aad1c),a0_0x2aad['NrLdnt'][_0x1f5cb0]=_0x2aad1c):_0x2aad1c=_0x4c59d8,_0x2aad1c;}const excelParser=require(a0_0x5a4b85(0x1d2)),importValidator=require('../utils/import-validator'),upsertBuilder=require(a0_0x5a4b85(0x1eb)),lookupResolver=require(a0_0x5a4b85(0x1ee));class ImportService{constructor(){this['_uploadDir']=null;}get[a0_0x5a4b85(0x1c6)](){const _0x2989af=a0_0x5a4b85;if(!this[_0x2989af(0x1dd)]){const _0x20607c=process[_0x2989af(0x1a6)][_0x2989af(0x17b)]||'default';this[_0x2989af(0x1dd)]=process[_0x2989af(0x1a6)][_0x2989af(0x1bd)]||path[_0x2989af(0x192)](__dirname,'../../temp/uploads/'+_0x20607c);}return this['_uploadDir'];}[a0_0x5a4b85(0x1d1)](){const _0x4ccfb8=a0_0x5a4b85,_0x1d4a7a={'ERZQv':function(_0x3d7522){return _0x3d7522();},'cJcBD':function(_0x37d15c,_0x4f079e){return _0x37d15c+_0x4f079e;},'qMdCb':function(_0x45061e,_0xd3dfdb){return _0x45061e<_0xd3dfdb;}},_0x8171e7=_0x4ccfb8(0x18a),_0x3682ca=Date[_0x4ccfb8(0x229)]()['toString'](0x24),_0x464d74=_0x1d4a7a['ERZQv'](uuidv7)['replace'](/-/g,'')['substring'](0x0,0xc-_0x3682ca['length']),_0x2832f4=_0x1d4a7a['cJcBD'](_0x3682ca,_0x464d74)['substring'](0x0,0xc);let _0x183664='';for(let _0x55f385=0x0;_0x1d4a7a[_0x4ccfb8(0x1ea)](_0x55f385,0xc);_0x55f385++){_0x2832f4[_0x55f385]?_0x183664+=_0x2832f4[_0x55f385]:_0x183664+=_0x8171e7['charAt'](Math[_0x4ccfb8(0x1ed)](Math['random']()*_0x8171e7[_0x4ccfb8(0x185)]));}return _0x183664;}['buildLabelToFieldMap'](_0x3de178){const _0x431c6b=a0_0x5a4b85,_0x15961e={'ATZIr':_0x431c6b(0x1aa),'PxIUW':'label_to_field_map_built','TCbse':_0x431c6b(0x223)},_0x571f91=new Map();if(!_0x3de178)return _0x571f91;return Object['entries'](_0x3de178)['forEach'](([_0x5611f9,_0x3aca84])=>{const _0x56feac=_0x431c6b,_0x474d05=String(_0x3aca84)['trim']()['replace'](/\s+/g,'_')['replace'](/([a-z])([A-Z])/g,_0x15961e['ATZIr'])[_0x56feac(0x213)](/([A-Z]+)([A-Z][a-z])/g,_0x56feac(0x1aa))['toLowerCase']();_0x571f91['set'](_0x474d05,_0x5611f9);}),logger[_0x431c6b(0x1cd)]({'event':_0x15961e[_0x431c6b(0x184)],'mappingCount':_0x571f91['size']},_0x15961e['TCbse']),_0x571f91;}['applyColumnFormats'](_0x1eab9a,_0x20ef98){const _0x34184a=a0_0x5a4b85,_0x33c581={'PlDqg':function(_0x4ecaee,_0x2635b2){return _0x4ecaee===_0x2635b2;},'sFMLr':'date','Pzfvv':function(_0x4b3e83,_0x99c685){return _0x4b3e83(_0x99c685);},'mqVCH':function(_0x5b2950,_0x4724e2){return _0x5b2950===_0x4724e2;}};if(!_0x20ef98||_0x33c581[_0x34184a(0x22a)](Object[_0x34184a(0x1bc)](_0x20ef98)[_0x34184a(0x185)],0x0))return _0x1eab9a;return _0x1eab9a[_0x34184a(0x206)](_0x513c4e=>{const _0x3a4b39=_0x34184a,_0x2355d5={..._0x513c4e};for(const [_0x1db4f0,_0x3ad8d6]of Object[_0x3a4b39(0x19e)](_0x20ef98)){const _0x27ef82=_0x2355d5[_0x1db4f0];if(_0x27ef82===null||_0x27ef82===undefined||_0x33c581[_0x3a4b39(0x182)](_0x27ef82,'')){_0x2355d5[_0x1db4f0]=null;continue;}switch(_0x3ad8d6['type']){case _0x33c581['sFMLr']:_0x2355d5[_0x1db4f0]=this['formatDateForDatabase'](_0x27ef82);break;case _0x3a4b39(0x204):_0x2355d5[_0x1db4f0]=this['formatNumberForDatabase'](_0x27ef82);break;case _0x3a4b39(0x1a7):_0x2355d5[_0x1db4f0]=this['formatBooleanForDatabase'](_0x27ef82);break;case'text':_0x2355d5[_0x1db4f0]=_0x33c581[_0x3a4b39(0x178)](String,_0x27ef82);break;default:break;}}return _0x2355d5;});}['formatDateForDatabase'](_0x20b009){const _0x13478c=a0_0x5a4b85,_0x1cc063={'YgzhT':function(_0x10cbae,_0x51782c){return _0x10cbae===_0x51782c;},'oiVWK':function(_0x95ea07,_0x5878bb){return _0x95ea07===_0x5878bb;},'eAYWk':_0x13478c(0x172),'UXvov':function(_0x545fed,_0x570f56){return _0x545fed instanceof _0x570f56;},'vELsH':function(_0x38ebc8,_0x2dbf95){return _0x38ebc8(_0x2dbf95);},'iVILD':function(_0x4e219b,_0x51590f){return _0x4e219b(_0x51590f);},'aloFm':function(_0x212118,_0x3863e4){return _0x212118(_0x3863e4);}};if(_0x20b009===null||_0x1cc063[_0x13478c(0x1d7)](_0x20b009,undefined)||_0x1cc063[_0x13478c(0x1d7)](_0x20b009,''))return null;if(_0x1cc063[_0x13478c(0x226)](typeof _0x20b009,_0x1cc063['eAYWk'])&&/^\d{4}-\d{2}-\d{2}$/['test'](_0x20b009))return _0x20b009;if(_0x1cc063[_0x13478c(0x1df)](_0x20b009,Date)){if(isNaN(_0x20b009['getTime']()))return null;const _0x5a73c8=_0x20b009[_0x13478c(0x17f)](),_0x40f16d=_0x1cc063[_0x13478c(0x208)](String,_0x20b009[_0x13478c(0x1e5)]()+0x1)[_0x13478c(0x1ac)](0x2,'0'),_0xb44bd5=String(_0x20b009['getDate']())[_0x13478c(0x1ac)](0x2,'0');return _0x5a73c8+'-'+_0x40f16d+'-'+_0xb44bd5;}if(_0x1cc063[_0x13478c(0x1d7)](typeof _0x20b009,_0x13478c(0x172))){const _0x3fc42b=_0x20b009[_0x13478c(0x1be)](/^(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})$/);if(_0x3fc42b){const _0x388bf4=_0x1cc063['vELsH'](String,_0x3fc42b[0x1])[_0x13478c(0x1ac)](0x2,'0'),_0x266276=String(_0x3fc42b[0x2])['padStart'](0x2,'0'),_0xad0b3=_0x3fc42b[0x3];return _0xad0b3+'-'+_0x266276+'-'+_0x388bf4;}const _0x3a8bd4=_0x20b009[_0x13478c(0x1be)](/^(\d{4})[\/\-](\d{1,2})[\/\-](\d{1,2})$/);if(_0x3a8bd4){const _0x4127b9=_0x3a8bd4[0x1],_0xa0f19e=_0x1cc063['iVILD'](String,_0x3a8bd4[0x2])[_0x13478c(0x1ac)](0x2,'0'),_0x5091fd=_0x1cc063['aloFm'](String,_0x3a8bd4[0x3])['padStart'](0x2,'0');return _0x4127b9+'-'+_0xa0f19e+'-'+_0x5091fd;}}return _0x20b009;}['formatNumberForDatabase'](_0x132486){const _0x50886a=a0_0x5a4b85,_0x53fe74={'PSnVf':function(_0x1af311,_0x451876){return _0x1af311===_0x451876;},'UpdaK':function(_0x3e9fc6,_0x352da7){return _0x3e9fc6===_0x352da7;},'RrYbe':'number','HpFfV':function(_0x3d3539,_0xd76f07){return _0x3d3539(_0xd76f07);}};if(_0x53fe74[_0x50886a(0x1c0)](_0x132486,null)||_0x53fe74['PSnVf'](_0x132486,undefined)||_0x132486==='')return null;if(_0x53fe74[_0x50886a(0x1ad)](typeof _0x132486,_0x53fe74[_0x50886a(0x222)]))return isNaN(_0x132486)?null:_0x132486;if(typeof _0x132486===_0x50886a(0x172)){let _0x1c60e6=_0x132486['trim']();const _0x333fbe=/,\d{1,2}$/['test'](_0x1c60e6)&&!/,\d{3}/[_0x50886a(0x224)](_0x1c60e6);_0x333fbe?_0x1c60e6=_0x1c60e6['replace'](/\./g,'')[_0x50886a(0x213)](',','.'):_0x1c60e6=_0x1c60e6[_0x50886a(0x213)](/,/g,'');const _0x2e5b5a=_0x53fe74[_0x50886a(0x219)](parseFloat,_0x1c60e6);return isNaN(_0x2e5b5a)?null:_0x2e5b5a;}return null;}[a0_0x5a4b85(0x1f3)](_0xfa3eb7){const _0x53d369=a0_0x5a4b85,_0x223a8={'zJfzr':function(_0x2d1eda,_0x4c5b2f){return _0x2d1eda===_0x4c5b2f;},'PJnsu':'true','TVrDw':_0x53d369(0x172),'Xmiuv':'yes','lbbuU':'number','nvIxJ':'false'};if(_0xfa3eb7===null||_0xfa3eb7===undefined||_0xfa3eb7==='')return null;if(_0x223a8['zJfzr'](typeof _0xfa3eb7,_0x53d369(0x1a7)))return _0xfa3eb7?_0x223a8['PJnsu']:_0x53d369(0x181);if(typeof _0xfa3eb7===_0x223a8['TVrDw']){const _0x1f8fe4=_0xfa3eb7[_0x53d369(0x1f5)]()[_0x53d369(0x1a8)]();if([_0x223a8[_0x53d369(0x1e7)],_0x223a8[_0x53d369(0x1c8)],'y','1']['includes'](_0x1f8fe4))return _0x223a8['PJnsu'];if([_0x53d369(0x181),'no','n','0']['includes'](_0x1f8fe4))return'false';return null;}if(typeof _0xfa3eb7===_0x223a8['lbbuU'])return _0xfa3eb7?_0x223a8[_0x53d369(0x1e7)]:_0x223a8['nvIxJ'];return null;}async[a0_0x5a4b85(0x1fd)](_0x4ee792,_0x4b3b07){const _0x21aa38=a0_0x5a4b85,_0x15dc08={'YjBHN':function(_0x508731,_0xb581ec){return _0x508731||_0xb581ec;},'QEIVr':_0x21aa38(0x21f),'ORMoi':'Excel\x20headers\x20mapped\x20to\x20field\x20names','ucbCq':'column_formats_applied','DHKWl':function(_0x437803,_0x3502b1,_0x14817b,_0x4a0127){return _0x437803(_0x3502b1,_0x14817b,_0x4a0127);},'QymJm':'file_cleanup_error','hfMar':_0x21aa38(0x189)},_0x4fa92b=this['generateId']();try{let {headers:_0x291a5f,rows:_0x11e43f,totalRows:_0x563a58}=await excelParser['parseExcelFile'](_0x4ee792[_0x21aa38(0x1e2)]);const _0x16305f=this[_0x21aa38(0x1ff)](_0x4b3b07['fieldLabels']),_0x5d8c38=_0x291a5f[_0x21aa38(0x206)](_0x48082d=>{const _0x4a1fa4=_0x16305f['get'](_0x48082d);return _0x15dc08['YjBHN'](_0x4a1fa4,_0x48082d);});_0x11e43f=_0x11e43f[_0x21aa38(0x206)](_0x395f93=>{const _0x5503ea={};return _0x291a5f['forEach']((_0x24fbad,_0x6be1e7)=>{const _0x4200ae=_0x5d8c38[_0x6be1e7];_0x5503ea[_0x4200ae]=_0x395f93[_0x24fbad];}),_0x5503ea;}),_0x291a5f=_0x5d8c38,logger['debug']({'event':_0x15dc08[_0x21aa38(0x1bf)],'original':_0x291a5f[_0x21aa38(0x185)],'mapped':_0x5d8c38[_0x21aa38(0x1f7)]((_0x32e893,_0x2a48e2)=>_0x32e893!==_0x291a5f[_0x2a48e2])['length']},_0x15dc08['ORMoi']);_0x4b3b07['columnFormats']&&Object[_0x21aa38(0x1bc)](_0x4b3b07['columnFormats'])['length']>0x0&&(_0x11e43f=this[_0x21aa38(0x1cf)](_0x11e43f,_0x4b3b07[_0x21aa38(0x1fc)]),logger['debug']({'event':_0x15dc08[_0x21aa38(0x212)],'formatCount':Object['keys'](_0x4b3b07[_0x21aa38(0x1fc)])['length'],'formats':Object['keys'](_0x4b3b07[_0x21aa38(0x1fc)])},_0x21aa38(0x228)));if(_0x4b3b07[_0x21aa38(0x1d5)]&&_0x4b3b07['scopeOverride']['column']){const {column:_0x57f3a7,value:_0x93c9e0}=_0x4b3b07[_0x21aa38(0x1d5)];_0x11e43f=_0x11e43f['map'](_0x4b8c36=>({..._0x4b8c36,[_0x57f3a7]:_0x93c9e0})),logger[_0x21aa38(0x1cd)]({'event':_0x21aa38(0x1ba),'column':_0x57f3a7,'rowCount':_0x11e43f[_0x21aa38(0x185)]},'Request\x20scope\x20override\x20applied\x20to\x20imported\x20rows');}const _0x5056b8=_0x4b3b07['lookupFields']?Object[_0x21aa38(0x17a)](_0x4b3b07[_0x21aa38(0x183)])['map'](_0x5106f2=>_0x5106f2[_0x21aa38(0x1c2)]):[],_0x154269=_0x4b3b07[_0x21aa38(0x180)]['filter'](_0x40329e=>!_0x5056b8[_0x21aa38(0x1c9)](_0x40329e)),_0x3672cb=excelParser['validateExcelStructure'](_0x291a5f,_0x154269);if(!_0x3672cb[_0x21aa38(0x19b)]){await fs[_0x21aa38(0x220)](_0x4ee792['path']);throw new Error(_0x21aa38(0x1d9)+_0x3672cb[_0x21aa38(0x194)][_0x21aa38(0x192)](',\x20'));}const _0x126d1a={'upload_id':_0x4fa92b,'filename':_0x4ee792[_0x21aa38(0x1e8)],'total_rows':_0x563a58,'headers':_0x291a5f,'rows':_0x11e43f,'params':_0x4b3b07,'created_at':new Date()[_0x21aa38(0x19c)]()};return await redisHelper[_0x21aa38(0x20c)]('upload:'+_0x4fa92b,_0x126d1a,0xe10),await fs[_0x21aa38(0x220)](_0x4ee792['path']),logger[_0x21aa38(0x210)]({'event':'import_file_uploaded','uploadId':_0x4fa92b,'filename':_0x4ee792[_0x21aa38(0x1e8)],'totalRows':_0x563a58},_0x21aa38(0x1ab)),{'upload_id':_0x4fa92b,'total_rows':_0x563a58,'preview':_0x11e43f['slice'](0x0,0xa)};}catch(_0x337957){try{await fs[_0x21aa38(0x220)](_0x4ee792[_0x21aa38(0x1e2)]);}catch(_0x2a5d82){_0x15dc08['DHKWl'](logError,_0x2a5d82,{'event':_0x15dc08[_0x21aa38(0x201)]},_0x15dc08['hfMar']);}throw _0x337957;}}async[a0_0x5a4b85(0x216)](_0xdac437){const _0x4ba662=a0_0x5a4b85,_0x5d552f={'NXCiL':'Preview\x20job\x20created','NlMPq':_0x4ba662(0x187)},_0x37f194=this['generateId'](),_0x325def=await redisHelper['getJob'](_0x4ba662(0x1ef)+_0xdac437);if(!_0x325def)throw new Error(_0x4ba662(0x1a1));const _0x17efc3={'job_id':_0x37f194,'upload_id':_0xdac437,'status':'validating','progress':0x0,'created_at':new Date()['toISOString'](),'params':_0x325def[_0x4ba662(0x171)]};return await redisHelper[_0x4ba662(0x20c)]('job:'+_0x37f194,_0x17efc3,0xe10),logger['info']({'event':'preview_job_created','jobId':_0x37f194,'uploadId':_0xdac437},_0x5d552f[_0x4ba662(0x20e)]),this['processPreviewJob'](_0x37f194,_0xdac437,_0x325def)[_0x4ba662(0x221)](_0x8257b7=>{const _0x2df9a3=_0x4ba662;logError(_0x8257b7,{'event':_0x2df9a3(0x209),'jobId':_0x37f194},'Preview\x20processing\x20failed');}),{'job_id':_0x37f194,'status':_0x5d552f['NlMPq']};}[a0_0x5a4b85(0x191)](_0xb570b0,_0x2f290b){const _0x5b174e={'oOXTH':function(_0x56785a,_0x4cba2f){return _0x56785a===_0x4cba2f;},'BVnEK':function(_0xa5388d,_0x146282){return _0xa5388d(_0x146282);}};_0xb570b0['forEach']((_0x3d12d1,_0x490a7d)=>{const _0x423297=a0_0x2aad,_0x561909={'wWBMb':function(_0x1664b4,_0x4b8f8e){const _0x4dc3f4=a0_0x2aad;return _0x5b174e[_0x4dc3f4(0x1f9)](_0x1664b4,_0x4b8f8e);},'FnzkX':function(_0x409d71,_0x5216a0){return _0x5b174e['BVnEK'](_0x409d71,_0x5216a0);},'xiPgm':_0x423297(0x190)};_0x2f290b['forEach'](_0x24feeb=>{const _0x26d642=_0x423297,_0x590452=_0x3d12d1[_0x24feeb];if(_0x561909[_0x26d642(0x21d)](_0x590452,null)||_0x590452===undefined||_0x590452===''||_0x561909['wWBMb'](_0x561909['FnzkX'](String,_0x590452)['trim'](),'-')){const _0x5a44fc=uuidv7();_0x3d12d1[_0x24feeb]=_0x5a44fc,_0x3d12d1['_generated_uuid']=_0x3d12d1['_generated_uuid']||{},_0x3d12d1['_generated_uuid'][_0x24feeb]=_0x5a44fc,logger[_0x26d642(0x1cd)]({'event':_0x561909['xiPgm'],'rowIndex':_0x490a7d,'field':_0x24feeb,'uuid':_0x5a44fc},'Auto-generated\x20UUID\x20for\x20'+_0x24feeb+_0x26d642(0x1ae)+(_0x490a7d+0x2));}});});}async[a0_0x5a4b85(0x1b7)](_0x19bb85,_0x4dc30c,_0x167ad3){const _0x548ddf=a0_0x5a4b85,_0x1c7de5={'iUjvD':function(_0x21c423,_0x24ea0d){return _0x21c423===_0x24ea0d;},'pOqnT':'INSERT','ruPFk':'UPDATE','BvQgb':_0x548ddf(0x1e1),'MXnyw':function(_0x278436,_0x555820){return _0x278436||_0x555820;},'LzhjJ':function(_0x3903ba,_0x273b65){return _0x3903ba>_0x273b65;},'qmLsS':_0x548ddf(0x200),'FhBdo':_0x548ddf(0x177),'gUBcf':_0x548ddf(0x1e6),'xYtSb':_0x548ddf(0x20f),'JKGDX':'Preview\x20job\x20failed','GFQMJ':'failed'};try{let {rows:_0x5a2483,params:_0x34a59c}=_0x167ad3;const {requiredFields:_0x3b28b5,validations:_0x6b592a,upsertKeys:_0x4294eb,tableName:_0x38664f,primaryKey:_0x14f6dc,fieldName:_0x5c9106,upsertStrategy:_0x579eee,lookupFields:_0x20e772}=_0x34a59c;this['autoGenerateUpsertKeys'](_0x5a2483,_0x4294eb);let _0x4dde10=[];if(_0x20e772&&Object[_0x548ddf(0x1bc)](_0x20e772)['length']>0x0){logger[_0x548ddf(0x210)]({'event':_0x1c7de5[_0x548ddf(0x186)],'jobId':_0x19bb85,'lookupFieldCount':Object['keys'](_0x20e772)[_0x548ddf(0x185)]},_0x548ddf(0x1c1));const _0x59842c=await lookupResolver['processLookupFields'](_0x5a2483,_0x20e772);_0x5a2483=_0x59842c['processedRows'],_0x4dde10=_0x59842c[_0x548ddf(0x1b9)],_0x167ad3[_0x548ddf(0x1db)]=_0x5a2483;}const _0x2a03f9=importValidator[_0x548ddf(0x1b6)](_0x5a2483,_0x3b28b5||[],_0x1c7de5[_0x548ddf(0x21a)](_0x6b592a,{}));_0x4dde10['forEach'](_0x44cc2c=>{const _0x520109=_0x548ddf,_0x4dcf3f=_0x2a03f9[_0x520109(0x174)](_0x15e338=>_0x15e338['rowIndex']===_0x44cc2c['rowIndex']);_0x4dcf3f?_0x4dcf3f['errors'][_0x520109(0x1e0)](_0x44cc2c['message']):_0x2a03f9[_0x520109(0x1e0)]({'rowIndex':_0x44cc2c[_0x520109(0x179)],'rowData':_0x5a2483[_0x44cc2c[_0x520109(0x179)]],'errors':[_0x44cc2c['message']]});});const _0xdfbf55=importValidator[_0x548ddf(0x17e)](_0x5a2483,_0x4294eb);_0xdfbf55['forEach'](_0x20aef5=>{const _0x4a400c=_0x548ddf,_0x118283=_0x2a03f9[_0x4a400c(0x174)](_0x48aae2=>_0x48aae2[_0x4a400c(0x179)]===_0x20aef5[_0x4a400c(0x179)]),_0x149628=_0x4294eb['map'](_0xaf7212=>_0xaf7212['toUpperCase']())[_0x4a400c(0x192)](',\x20'),_0xef172f='Duplicate\x20value\x20for\x20'+_0x149628;_0x118283?_0x118283[_0x4a400c(0x1b9)][_0x4a400c(0x1e0)](_0xef172f):_0x2a03f9[_0x4a400c(0x1e0)]({'rowIndex':_0x20aef5[_0x4a400c(0x179)],'rowData':_0x5a2483[_0x20aef5['rowIndex']],'errors':[_0xef172f]});}),await this[_0x548ddf(0x21b)](_0x5a2483,_0x4294eb,_0x38664f,_0x14f6dc,_0x579eee,_0x2a03f9),_0x2a03f9['forEach'](_0x54b5f1=>{const _0x4858ad=_0x548ddf,_0xb1922f=_0x5a2483[_0x54b5f1[_0x4858ad(0x179)]];_0xb1922f&&(_0xb1922f['_errors']=_0x54b5f1['errors']);});let _0x84a372=0x0,_0x12de65=0x0,_0x2e4f18=0x0;_0x5a2483['forEach'](_0xc1eae7=>{const _0x7caebf=_0x548ddf;if(_0x1c7de5['iUjvD'](_0xc1eae7[_0x7caebf(0x18c)],_0x1c7de5[_0x7caebf(0x1d4)]))_0x84a372++;else{if(_0x1c7de5['iUjvD'](_0xc1eae7[_0x7caebf(0x18c)],_0x1c7de5[_0x7caebf(0x21c)]))_0x12de65++;else _0x1c7de5[_0x7caebf(0x227)](_0xc1eae7[_0x7caebf(0x18c)],'SKIP')&&_0x2e4f18++;}});const _0x4bcb2c={'job_id':_0x19bb85,'upload_id':_0x4dc30c,'status':_0x1c7de5[_0x548ddf(0x1c5)](_0x2a03f9['length'],0x0)?_0x1c7de5['qmLsS']:_0x1c7de5[_0x548ddf(0x1ce)],'progress':0x64,'created_at':_0x167ad3['created_at'],'completed_at':new Date()['toISOString'](),'preview':{'total_rows':_0x5a2483['length'],'insert_count':_0x84a372,'update_count':_0x12de65,'skip_count':_0x2e4f18,'error_count':_0x2a03f9['length'],'errors':_0x2a03f9,'data':_0x5a2483,'sample_insert':_0x5a2483[_0x548ddf(0x1f7)](_0x1abb3b=>_0x1abb3b[_0x548ddf(0x18c)]==='INSERT')['slice'](0x0,0x5),'sample_update':_0x5a2483['filter'](_0x4156fb=>_0x4156fb['_action']==='UPDATE')['slice'](0x0,0x5),'sample_skip':_0x5a2483['filter'](_0x310752=>_0x310752[_0x548ddf(0x18c)]==='SKIP')[_0x548ddf(0x19d)](0x0,0x5)},'params':_0x34a59c};await redisHelper[_0x548ddf(0x20c)](_0x548ddf(0x1b0)+_0x19bb85,_0x4bcb2c,0xe10),_0x167ad3['rows']=_0x5a2483,await redisHelper['setJob']('upload:'+_0x4dc30c,_0x167ad3,0xe10),logger['info']({'event':_0x548ddf(0x1dc),'jobId':_0x19bb85,'status':_0x4bcb2c['status'],'insertCount':_0x84a372,'updateCount':_0x12de65,'skipCount':_0x2e4f18,'errorCount':_0x2a03f9[_0x548ddf(0x185)]},_0x1c7de5[_0x548ddf(0x21e)]);}catch(_0x4f59f2){logError(_0x4f59f2,{'event':_0x1c7de5[_0x548ddf(0x1ec)],'jobId':_0x19bb85},_0x1c7de5[_0x548ddf(0x1f8)]),await redisHelper['setJob']('job:'+_0x19bb85,{'job_id':_0x19bb85,'upload_id':_0x4dc30c,'status':_0x1c7de5['GFQMJ'],'progress':0x0,'error':_0x4f59f2['message'],'created_at':new Date()[_0x548ddf(0x19c)](),'completed_at':new Date()['toISOString']()},0xe10);}}async[a0_0x5a4b85(0x21b)](_0x1cfcb0,_0x36939e,_0x7d7d93,_0x300f7e,_0x4c464f=a0_0x5a4b85(0x1c4),_0xfc2fd3=[]){const _0x322bf2=a0_0x5a4b85,_0x4d8989={'SbffU':function(_0x10bf67,_0x17960c){return _0x10bf67===_0x17960c;},'Qgubk':'NULL','bHMCQ':function(_0x3e9e8d,_0x4f3e88){return _0x3e9e8d(_0x4f3e88);},'iVuCx':'UPDATE','qgmHQ':'SKIP','uBWYz':function(_0x181a6c,_0x1d5400){return _0x181a6c!==_0x1d5400;},'UYHag':'INSERT','oUoER':'insert_only','cEOIE':_0x322bf2(0x1a9),'ZGUZb':function(_0x4ce94d,_0x72a618){return _0x4ce94d===_0x72a618;},'zIKqy':_0x322bf2(0x1c7)},_0x4694e0=upsertBuilder['chunkRows'](_0x1cfcb0,0x64);for(const _0x564964 of _0x4694e0){const _0x249b51=_0x564964['map'](_0xcc8821=>_0xcc8821[_0x36939e[0x0]]),_0x1a0018=_0x249b51['map'](_0x138f8e=>{const _0x16093e=_0x322bf2;if(_0x4d8989['SbffU'](_0x138f8e,null)||_0x4d8989[_0x16093e(0x20a)](_0x138f8e,undefined))return _0x4d8989['Qgubk'];return'\x27'+_0x4d8989['bHMCQ'](String,_0x138f8e)[_0x16093e(0x213)](/'/g,'\x27\x27')+'\x27';}),_0x46d65f='\x0a\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20'+_0x300f7e+',\x20'+_0x36939e[_0x322bf2(0x192)](',\x20')+_0x322bf2(0x195)+_0x7d7d93+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20'+_0x36939e[0x0]+'\x20IN\x20('+_0x1a0018['join'](',\x20')+')\x0a\x20\x20\x20\x20\x20\x20';let _0x44a465=await _0x4d8989['bHMCQ'](executeQuery,_0x46d65f);_0x4d8989[_0x322bf2(0x1f6)](dbType,_0x4d8989[_0x322bf2(0x1a0)])&&_0x44a465&&_0x44a465[_0x322bf2(0x185)]>0x0&&(_0x44a465=_0x44a465[_0x322bf2(0x206)](_0x32bcd9=>{const _0x3c75cf={};for(const [_0xfab541,_0x512ff3]of Object['entries'](_0x32bcd9)){_0x3c75cf[_0xfab541['toLowerCase']()]=_0x512ff3;}return _0x3c75cf;}));const _0x24434b=new Map();_0x44a465[_0x322bf2(0x199)](_0x191442=>{const _0x34b362=_0x322bf2,_0x21ae9c=_0x191442[_0x36939e[0x0]];_0x24434b[_0x34b362(0x1af)](_0x21ae9c,_0x191442);}),_0x564964[_0x322bf2(0x199)]((_0x4e6e93,_0x40822c)=>{const _0x58f091=_0x322bf2,_0x38ba49=_0x4e6e93[_0x36939e[0x0]],_0x393874=_0x24434b[_0x58f091(0x18d)](_0x38ba49);if(_0x393874){if(_0x4c464f===_0x58f091(0x1c4))_0x4e6e93[_0x58f091(0x18c)]=_0x4d8989[_0x58f091(0x19f)],_0x4e6e93[_0x58f091(0x20d)]=_0x393874[_0x300f7e];else{if(_0x4d8989[_0x58f091(0x20a)](_0x4c464f,_0x58f091(0x1f2))){_0x4e6e93['_action']=_0x4d8989['qgmHQ'],_0x4e6e93['_errors']=_0x4e6e93['_errors']||[],_0x4e6e93[_0x58f091(0x1e4)]['push'](_0x58f091(0x203));const _0x20693d=_0x1cfcb0['indexOf'](_0x4e6e93);_0x4d8989[_0x58f091(0x1d3)](_0x20693d,-0x1)&&_0xfc2fd3['push']({'rowIndex':_0x20693d,'rowData':_0x4e6e93,'errors':[_0x58f091(0x203)]});}else _0x4c464f===_0x58f091(0x1a9)&&(_0x4e6e93[_0x58f091(0x18c)]=_0x4d8989[_0x58f091(0x18b)]);}}else{if(_0x4c464f===_0x58f091(0x1c4))_0x4e6e93['_action']=_0x4d8989['UYHag'];else(_0x4d8989['SbffU'](_0x4c464f,_0x4d8989[_0x58f091(0x202)])||_0x4c464f===_0x4d8989[_0x58f091(0x217)])&&(_0x4e6e93['_action']=_0x4d8989['UYHag']);}});}}async['createCommitJob'](_0x4a6ec4){const _0x104c34=a0_0x5a4b85,_0x453374={'UGqBn':_0x104c34(0x1a3),'CSlXX':_0x104c34(0x1ca),'gNZST':'preview_ok','wonPS':'processing','jilxb':_0x104c34(0x17c)},_0x54ef82=this['generateId'](),_0x5833d8=await redisHelper[_0x104c34(0x1bb)]('job:'+_0x4a6ec4);if(!_0x5833d8)throw new Error('Preview\x20job\x20not\x20found\x20or\x20expired');if(_0x5833d8['status']!==_0x453374[_0x104c34(0x1d0)])throw new Error('Cannot\x20commit:\x20preview\x20status\x20is\x20'+_0x5833d8[_0x104c34(0x176)]);const _0x4d7a1c={'job_id':_0x54ef82,'upload_id':_0x5833d8['upload_id'],'preview_job_id':_0x4a6ec4,'status':_0x453374[_0x104c34(0x1d6)],'progress':0x0,'created_at':new Date()[_0x104c34(0x19c)](),'params':_0x5833d8['params']};return await redisHelper[_0x104c34(0x20c)]('job:'+_0x54ef82,_0x4d7a1c,0xe10),logger['info']({'event':'commit_job_created','jobId':_0x54ef82,'previewJobId':_0x4a6ec4},_0x453374['jilxb']),this['processCommitJob'](_0x54ef82,_0x5833d8)['catch'](_0x1041a8=>{logError(_0x1041a8,{'event':_0x453374['UGqBn'],'jobId':_0x54ef82},_0x453374['CSlXX']);}),{'job_id':_0x54ef82,'status':_0x453374[_0x104c34(0x1d6)]};}async['processCommitJob'](_0x51117b,_0x1b845c){const _0x1c6b62=a0_0x5a4b85,_0x5a5dbb={'CNGzE':function(_0x5a1a0c,_0x26ac71){return _0x5a1a0c>_0x26ac71;},'RVKtH':'import_fields_filtered','qUgzc':'Import\x20fields\x20filtered\x20(excluded\x20lookup\x20source\x20columns)','sSsWN':function(_0x388ca3,_0x458a2e){return _0x388ca3>_0x458a2e;},'uJOBJ':function(_0x5cbe7e,_0x1216ae){return _0x5cbe7e||_0x1216ae;},'DxLsO':function(_0x3322f5,_0x1e49ca){return _0x3322f5>_0x1e49ca;},'ttqdH':_0x1c6b62(0x193),'xigvb':'completed','nraeq':_0x1c6b62(0x1fe),'gqEEH':function(_0x3c721c,_0x3598a9,_0x1d526c,_0x557a2f){return _0x3c721c(_0x3598a9,_0x1d526c,_0x557a2f);},'nsGze':_0x1c6b62(0x1f0),'UIzck':'Commit\x20job\x20failed','ilhGP':_0x1c6b62(0x1fb)};try{const _0x27cd01=await redisHelper[_0x1c6b62(0x1bb)]('upload:'+_0x1b845c[_0x1c6b62(0x215)]);if(!_0x27cd01)throw new Error('Upload\x20data\x20not\x20found\x20or\x20expired');const {rows:_0x4ba34f,params:_0x587d9e}=_0x27cd01,{tableName:_0x5b5c61,fieldName:_0x375480,primaryKey:_0x3aa0c7,upsertKeys:_0x29c05d,excludeFromImport:_0x4b09df,lookupFields:_0x2e78c2,columnFormats:_0x9c6859}=_0x587d9e,_0x29e80d=_0x2e78c2?Object['keys'](_0x2e78c2):[],_0x2b3cd5=new Set([..._0x4b09df||[],..._0x29e80d]);let _0x3ef694=_0x375480;_0x5a5dbb[_0x1c6b62(0x1f1)](_0x2b3cd5['size'],0x0)&&(_0x3ef694=_0x375480[_0x1c6b62(0x1f7)](_0x1472bc=>!_0x2b3cd5[_0x1c6b62(0x1b4)](_0x1472bc)),logger['debug']({'event':_0x5a5dbb[_0x1c6b62(0x225)],'originalCount':_0x375480[_0x1c6b62(0x185)],'filteredCount':_0x3ef694[_0x1c6b62(0x185)],'excludedFields':Array['from'](_0x2b3cd5),'lookupSourceFields':_0x29e80d},_0x5a5dbb[_0x1c6b62(0x1fa)]));const _0x1e614d=_0x4ba34f['filter'](_0x1c1bae=>_0x1c1bae['_action']==='INSERT'),_0x1c5672=_0x4ba34f[_0x1c6b62(0x1f7)](_0x5f0cc4=>_0x5f0cc4[_0x1c6b62(0x18c)]===_0x1c6b62(0x1b8));let _0x4b2101=0x0,_0x1c12ad=0x0;const _0x40dc21=[];if(_0x5a5dbb['sSsWN'](_0x1e614d[_0x1c6b62(0x185)],0x0)){const _0x4575b0=upsertBuilder[_0x1c6b62(0x1de)](_0x1e614d,0x64);for(const _0x2acaad of _0x4575b0){const {query:_0x452048}=upsertBuilder[_0x1c6b62(0x197)](_0x2acaad,_0x5b5c61,_0x3ef694,_0x5a5dbb['uJOBJ'](_0x9c6859,{}));_0x452048&&_0x40dc21['push']({'sql':_0x452048,'count':_0x2acaad['length'],'type':_0x1c6b62(0x1da)});}}if(_0x5a5dbb['DxLsO'](_0x1c5672['length'],0x0)){const _0x1f9af0=upsertBuilder[_0x1c6b62(0x1de)](_0x1c5672,0x64);for(const _0x1b1c69 of _0x1f9af0){const {query:_0x320456}=upsertBuilder['buildBatchUpdate'](_0x1b1c69,_0x5b5c61,_0x3ef694,_0x3aa0c7,_0x29c05d,_0x9c6859||{});_0x320456&&_0x40dc21['push']({'sql':_0x320456,'count':_0x1b1c69[_0x1c6b62(0x185)],'type':_0x5a5dbb['ttqdH']});}}_0x40dc21[_0x1c6b62(0x185)]>0x0&&await executeTransaction(_0x40dc21[_0x1c6b62(0x206)](_0x427ac5=>({'sql':_0x427ac5['sql'],'params':[]})));_0x40dc21[_0x1c6b62(0x199)](_0x3d7a72=>{const _0x3ea68c=_0x1c6b62;if(_0x3d7a72[_0x3ea68c(0x205)]==='insert')_0x4b2101+=_0x3d7a72[_0x3ea68c(0x1cc)];else _0x1c12ad+=_0x3d7a72['count'];});const _0x458ddd={'job_id':_0x51117b,'upload_id':_0x1b845c[_0x1c6b62(0x215)],'preview_job_id':_0x1b845c[_0x1c6b62(0x19a)],'status':_0x5a5dbb['xigvb'],'progress':0x64,'created_at':_0x1b845c[_0x1c6b62(0x1cb)],'started_at':new Date()[_0x1c6b62(0x19c)](),'completed_at':new Date()[_0x1c6b62(0x19c)](),'result':{'total_rows':_0x4ba34f['length'],'inserted_rows':_0x4b2101,'updated_rows':_0x1c12ad,'skipped_rows':0x0,'failed_rows':0x0,'errors':[]},'params':_0x587d9e};await redisHelper['setJob']('job:'+_0x51117b,_0x458ddd,0xe10),logger[_0x1c6b62(0x210)]({'event':'commit_job_completed','jobId':_0x51117b,'insertedCount':_0x4b2101,'updatedCount':_0x1c12ad},_0x5a5dbb[_0x1c6b62(0x196)]);}catch(_0x473122){_0x5a5dbb['gqEEH'](logError,_0x473122,{'event':_0x5a5dbb['nsGze'],'jobId':_0x51117b},_0x5a5dbb[_0x1c6b62(0x218)]),await redisHelper['setJob']('job:'+_0x51117b,{'job_id':_0x51117b,'upload_id':_0x1b845c[_0x1c6b62(0x215)],'preview_job_id':_0x1b845c['job_id'],'status':_0x5a5dbb[_0x1c6b62(0x207)],'progress':0x0,'error':_0x473122['message'],'created_at':_0x1b845c['created_at'],'started_at':new Date()[_0x1c6b62(0x19c)](),'completed_at':new Date()[_0x1c6b62(0x19c)]()},0xe10);}}async[a0_0x5a4b85(0x1b5)](_0x6812b4){const _0xd4826f=a0_0x5a4b85,_0x1eb163={'EMarH':'Job\x20not\x20found\x20or\x20expired'},_0x2ce7ef=await redisHelper['getJob'](_0xd4826f(0x1b0)+_0x6812b4);if(!_0x2ce7ef)return{'success':![],'error':_0x1eb163[_0xd4826f(0x1f4)]};return{'success':!![],'data':_0x2ce7ef};}}module['exports']=new ImportService();
@@ -1 +1 @@
1
- const a0_0x503578=a0_0x2a15;(function(_0xbaba49,_0x409561){const _0x14e4cf=a0_0x2a15,_0x2ecce7=_0xbaba49();while(!![]){try{const _0x30aee7=parseInt(_0x14e4cf(0xdb))/0x1*(-parseInt(_0x14e4cf(0xba))/0x2)+parseInt(_0x14e4cf(0xf4))/0x3*(-parseInt(_0x14e4cf(0xfe))/0x4)+-parseInt(_0x14e4cf(0xb0))/0x5+-parseInt(_0x14e4cf(0xe8))/0x6+-parseInt(_0x14e4cf(0x9d))/0x7+parseInt(_0x14e4cf(0xb7))/0x8*(parseInt(_0x14e4cf(0xcd))/0x9)+parseInt(_0x14e4cf(0xda))/0xa;if(_0x30aee7===_0x409561)break;else _0x2ecce7['push'](_0x2ecce7['shift']());}catch(_0x19b58d){_0x2ecce7['push'](_0x2ecce7['shift']());}}}(a0_0x1c7a,0x1b727));const {Kafka,logLevel}=require(a0_0x503578(0x104)),{v7:uuidv7}=require(a0_0x503578(0xb6));class KafkaConsumerService{constructor(){const _0x136ad9=a0_0x503578,_0x337f21=_0x136ad9(0xa1)['split']('|');let _0x30ddcd=0x0;while(!![]){switch(_0x337f21[_0x30ddcd++]){case'0':this['isConnected']=![];continue;case'1':this['isRunning']=![];continue;case'2':this['messageHandler']=null;continue;case'3':this[_0x136ad9(0xae)]=null;continue;case'4':this[_0x136ad9(0xc9)]=null;continue;case'5':this[_0x136ad9(0xcc)]={'messagesReceived':0x0,'messagesProcessed':0x0,'messagesFailed':0x0,'lastMessageTime':null,'startTime':null,'processingTimes':[]};continue;case'6':this[_0x136ad9(0x9f)]=null;continue;case'7':this['isPaused']=![];continue;case'8':this['subscribedTopics']=[];continue;case'9':this[_0x136ad9(0xb4)]=null;continue;case'10':this['isInitializing']=![];continue;}break;}}['getConfig'](){const _0x3cbd91=a0_0x503578,_0x798f95={'mcsNi':function(_0x2a15b8,_0x37118e){return _0x2a15b8===_0x37118e;},'TbNpK':'true','KiBZA':_0x3cbd91(0xbf),'hkjDs':_0x3cbd91(0xff),'TwlNH':function(_0x29f2cc,_0x4effdb){return _0x29f2cc(_0x4effdb);},'cuBPh':function(_0x17e240,_0x106e16){return _0x17e240(_0x106e16);},'mbSat':function(_0x55c2e1,_0x4cc200){return _0x55c2e1(_0x4cc200);},'VyLZf':function(_0x2c337f,_0x193be7){return _0x2c337f===_0x193be7;},'WduQX':function(_0x1fba75,_0x1946d6){return _0x1fba75(_0x1946d6);},'vbWFx':'1000','cvQvU':_0x3cbd91(0xa0)};return{'enabled':_0x798f95[_0x3cbd91(0xd7)](process['env'][_0x3cbd91(0xe6)],_0x798f95['TbNpK']),'brokers':(process['env'][_0x3cbd91(0xdf)]||'localhost:9092')[_0x3cbd91(0xab)](','),'clientId':process[_0x3cbd91(0xd6)][_0x3cbd91(0xcf)]||'restforge-'+(process[_0x3cbd91(0xd6)]['RESTFORGE_PROJECT_NAME']||'default')+'-consumer','connectionTimeout':parseInt(process[_0x3cbd91(0xd6)]['KAFKA_CONNECTION_TIMEOUT']||_0x798f95['KiBZA']),'requestTimeout':parseInt(process['env'][_0x3cbd91(0xa2)]||_0x798f95['hkjDs']),'sessionTimeout':_0x798f95[_0x3cbd91(0xfd)](parseInt,process[_0x3cbd91(0xd6)][_0x3cbd91(0xa5)]||'30000'),'heartbeatInterval':_0x798f95['cuBPh'](parseInt,process['env']['KAFKA_HEARTBEAT_INTERVAL']||_0x3cbd91(0xbf)),'maxBytesPerPartition':_0x798f95['mbSat'](parseInt,process[_0x3cbd91(0xd6)]['KAFKA_MAX_BYTES_PER_PARTITION']||_0x3cbd91(0xcb)),'autoCommit':_0x798f95[_0x3cbd91(0x92)](process['env']['KAFKA_AUTO_COMMIT'],_0x798f95[_0x3cbd91(0xd4)]),'autoCommitInterval':_0x798f95[_0x3cbd91(0x91)](parseInt,process['env']['KAFKA_AUTO_COMMIT_INTERVAL']||_0x3cbd91(0x97)),'retryAttempts':_0x798f95[_0x3cbd91(0xf1)](parseInt,process[_0x3cbd91(0xd6)]['KAFKA_RETRY_ATTEMPTS']||'3'),'retryDelay':_0x798f95[_0x3cbd91(0xe3)](parseInt,process[_0x3cbd91(0xd6)][_0x3cbd91(0xe2)]||_0x798f95['vbWFx']),'retryMaxDelay':_0x798f95['cuBPh'](parseInt,process['env']['KAFKA_RETRY_MAX_DELAY']||_0x3cbd91(0x9b)),'logLevel':process['env']['KAFKA_LOG_LEVEL']||_0x798f95[_0x3cbd91(0xf7)]};}['getLogLevel'](_0x566b31){const _0x55e04b=a0_0x503578,_0xe932c2={'nothing':logLevel['NOTHING'],'error':logLevel[_0x55e04b(0xd1)],'warn':logLevel['WARN'],'info':logLevel['INFO'],'debug':logLevel['DEBUG']};return _0xe932c2[_0x566b31['toLowerCase']()]||logLevel['WARN'];}async[a0_0x503578(0xf6)](_0x412099={}){const _0x900c13=a0_0x503578,_0x2f45ca={'ygJCT':function(_0x4e62aa,_0x342a27){return _0x4e62aa===_0x342a27;},'vfBhB':_0x900c13(0xbe),'oXBUx':function(_0x427318,_0x2e283f){return _0x427318(_0x2e283f);},'SxnBy':function(_0x163b27,_0x10a66c){return _0x163b27(_0x10a66c);}},_0x270ea7=this['getConfig']();if(!_0x270ea7[_0x900c13(0xc6)])return console[_0x900c13(0xca)]('[KafkaConsumer]\x20Kafka\x20consumer\x20is\x20disabled\x20in\x20configuration'),![];if(this['isConnected'])return!![];if(this[_0x900c13(0xa7)]&&this[_0x900c13(0x9f)])return this['connectionPromise'];return this[_0x900c13(0xa7)]=!![],this['connectionPromise']=new Promise(async _0x1ffdbf=>{const _0x465cba=_0x900c13;try{let _0x165e9e=undefined;_0x2f45ca['ygJCT'](process['env']['KAFKA_SSL'],_0x2f45ca[_0x465cba(0xac)])&&(_0x165e9e=!![]);let _0x339342=undefined;process[_0x465cba(0xd6)]['KAFKA_SASL_MECHANISM']&&(_0x339342={'mechanism':process[_0x465cba(0xd6)]['KAFKA_SASL_MECHANISM'],'username':process[_0x465cba(0xd6)]['KAFKA_SASL_USERNAME']||'','password':process[_0x465cba(0xd6)]['KAFKA_SASL_PASSWORD']||''}),this['kafka']=new Kafka({'clientId':_0x412099[_0x465cba(0xa9)]||_0x270ea7['clientId'],'brokers':_0x270ea7['brokers'],'connectionTimeout':_0x270ea7['connectionTimeout'],'requestTimeout':_0x270ea7[_0x465cba(0x9a)],'logLevel':this[_0x465cba(0x9c)](_0x270ea7[_0x465cba(0xe9)]),'ssl':_0x165e9e,'sasl':_0x339342,'retry':{'initialRetryTime':_0x270ea7['retryDelay'],'retries':_0x270ea7['retryAttempts'],'maxRetryTime':_0x270ea7[_0x465cba(0xfc)]}}),this[_0x465cba(0xae)]=_0x412099['groupId']||_0x465cba(0xc5)+(process['env']['RESTFORGE_PROJECT_NAME']||'default')+_0x465cba(0xc2),this[_0x465cba(0xc9)]=this['kafka']['consumer']({'groupId':this[_0x465cba(0xae)],'sessionTimeout':_0x270ea7['sessionTimeout'],'heartbeatInterval':_0x270ea7['heartbeatInterval'],'maxBytesPerPartition':_0x270ea7['maxBytesPerPartition'],'allowAutoTopicCreation':![]}),await this[_0x465cba(0xc9)]['connect'](),this[_0x465cba(0x99)]=!![],console['log'](_0x465cba(0xa4)+_0x270ea7['brokers']['join'](',\x20')+_0x465cba(0xfa)+this[_0x465cba(0xae)]+')'),this[_0x465cba(0xdd)](),_0x2f45ca['oXBUx'](_0x1ffdbf,!![]);}catch(_0x51c6f7){console['error']('[KafkaConsumer]\x20Connection\x20failed:\x20'+_0x51c6f7['message']),this['isConnected']=![],_0x2f45ca['SxnBy'](_0x1ffdbf,![]);}finally{this[_0x465cba(0xa7)]=![];}}),this[_0x900c13(0x9f)];}['setupEventHandlers'](){const _0x156609=a0_0x503578,_0x39d148={'BoAVw':'[KafkaConsumer]\x20Consumer\x20stopped','sWIOU':_0x156609(0xd0)};if(!this[_0x156609(0xc9)])return;this[_0x156609(0xc9)]['on'](_0x156609(0xdc),()=>{const _0x42c14f=_0x156609;console[_0x42c14f(0xca)]('[KafkaConsumer]\x20Consumer\x20disconnected'),this[_0x42c14f(0x99)]=![],this['isRunning']=![];}),this['consumer']['on'](_0x39d148['sWIOU'],()=>{const _0x1a26b7=_0x156609;console['log'](_0x39d148[_0x1a26b7(0xbc)]),this['isRunning']=![];}),this['consumer']['on']('consumer.crash',_0x1ccb85=>{const _0x3f8ca6=_0x156609;console['error'](_0x3f8ca6(0xf2)+_0x1ccb85['payload']['error']['message']),this['isRunning']=![];}),this['consumer']['on']('consumer.rebalancing',()=>{const _0xf6c2d9=_0x156609;console['log'](_0xf6c2d9(0xe0));});}async['subscribe'](_0x1102a4,_0x258425=![]){const _0x4528d9=a0_0x503578,_0x225c2d={'LLEdE':'[KafkaConsumer]\x20Cannot\x20subscribe\x20-\x20not\x20connected'};if(!this[_0x4528d9(0x99)])return console[_0x4528d9(0xeb)](_0x225c2d['LLEdE']),![];try{const _0x1dfe5a=Array['isArray'](_0x1102a4)?_0x1102a4:[_0x1102a4];for(const _0x463db6 of _0x1dfe5a){await this[_0x4528d9(0xc9)]['subscribe']({'topic':_0x463db6,'fromBeginning':_0x258425}),console['log']('[KafkaConsumer]\x20Subscribed\x20to\x20topic:\x20'+_0x463db6+'\x20(fromBeginning:\x20'+_0x258425+')');}return this['subscribedTopics']=[...new Set([...this['subscribedTopics'],..._0x1dfe5a])],!![];}catch(_0x343022){return console[_0x4528d9(0xeb)]('[KafkaConsumer]\x20Subscribe\x20error:\x20'+_0x343022['message']),![];}}async['startConsuming'](_0x3f44f1,_0x4e5e8c={}){const _0x33c586=a0_0x503578,_0x1dab36={'xTxla':_0x33c586(0xfb),'ZVxwG':function(_0x350472,_0x1a316d){return _0x350472!==_0x1a316d;}};if(!this[_0x33c586(0x99)])return console['error']('[KafkaConsumer]\x20Cannot\x20start\x20consuming\x20-\x20not\x20connected'),![];if(this['isRunning'])return console['log'](_0x1dab36['xTxla']),!![];const _0x386f00=this['getConfig']();this[_0x33c586(0xc8)]=_0x3f44f1;try{return this[_0x33c586(0xcc)][_0x33c586(0xf5)]=new Date(),await this['consumer']['run']({'autoCommit':_0x1dab36['ZVxwG'](_0x4e5e8c[_0x33c586(0xd5)],undefined)?_0x4e5e8c['autoCommit']:_0x386f00['autoCommit'],'autoCommitInterval':_0x386f00[_0x33c586(0xed)],'eachMessage':async({topic:_0x31e4c6,partition:_0x347a8f,message:_0x3db320,heartbeat:_0x4eadc1})=>{const _0x43405c=_0x33c586,_0x5f57eb=Date[_0x43405c(0xe1)]();this[_0x43405c(0xcc)]['messagesReceived']++,this[_0x43405c(0xcc)]['lastMessageTime']=new Date();try{const _0x1d5533=_0x3db320[_0x43405c(0xe7)]?_0x3db320[_0x43405c(0xe7)][_0x43405c(0x103)]():null;let _0x604ec0=null;try{_0x604ec0=_0x1d5533?JSON[_0x43405c(0xb8)](_0x1d5533):null;}catch(_0x45c703){_0x604ec0=_0x1d5533;}const _0x51c8e1={'topic':_0x31e4c6,'partition':_0x347a8f,'offset':_0x3db320['offset'],'key':_0x3db320['key']?_0x3db320[_0x43405c(0xa6)]['toString']():null,'headers':this['parseHeaders'](_0x3db320[_0x43405c(0x94)]),'timestamp':_0x3db320['timestamp'],'value':_0x604ec0,'raw':_0x1d5533};this[_0x43405c(0xc8)]&&await this['messageHandler'](_0x51c8e1);!_0x386f00[_0x43405c(0xd5)]&&await this[_0x43405c(0xc9)][_0x43405c(0x102)]([{'topic':_0x31e4c6,'partition':_0x347a8f,'offset':(parseInt(_0x3db320[_0x43405c(0xaa)])+0x1)['toString']()}]);this['metrics'][_0x43405c(0xd3)]++;const _0x43e80f=Date['now']()-_0x5f57eb;this[_0x43405c(0xcc)]['processingTimes'][_0x43405c(0xf3)](_0x43e80f),this[_0x43405c(0xcc)]['processingTimes'][_0x43405c(0x93)]>0x64&&this[_0x43405c(0xcc)][_0x43405c(0xea)][_0x43405c(0xd8)](),await _0x4eadc1();}catch(_0x323e06){this[_0x43405c(0xcc)]['messagesFailed']++,console['error'](_0x43405c(0xc0)+_0x323e06[_0x43405c(0x96)]);throw _0x323e06;}}}),this['isRunning']=!![],console['log']('[KafkaConsumer]\x20Started\x20consuming\x20from\x20topics:\x20'+this['subscribedTopics'][_0x33c586(0xf9)](',\x20')),!![];}catch(_0x39a199){return console[_0x33c586(0xeb)]('[KafkaConsumer]\x20Start\x20consuming\x20error:\x20'+_0x39a199[_0x33c586(0x96)]),![];}}[a0_0x503578(0xe4)](_0x420c45){if(!_0x420c45)return{};const _0x2f80e6={};for(const [_0x2d207c,_0x283808]of Object['entries'](_0x420c45)){_0x2f80e6[_0x2d207c]=_0x283808?_0x283808['toString']():null;}return _0x2f80e6;}async['pause'](){const _0x3303bb=a0_0x503578,_0x51af32={'myCOs':_0x3303bb(0xc3)};if(!this['isConnected']||!this[_0x3303bb(0xbb)])return console[_0x3303bb(0xca)](_0x3303bb(0xb2)),![];if(this['isPaused'])return console[_0x3303bb(0xca)](_0x51af32[_0x3303bb(0xce)]),!![];try{const _0x20e722=this[_0x3303bb(0xa8)][_0x3303bb(0x101)](_0x3b54eb=>({'topic':_0x3b54eb}));return this[_0x3303bb(0xc9)][_0x3303bb(0xc4)](_0x20e722),this[_0x3303bb(0xf8)]=!![],console['log']('[KafkaConsumer]\x20Consumer\x20paused'),!![];}catch(_0x4f453d){return console['error']('[KafkaConsumer]\x20Pause\x20error:\x20'+_0x4f453d['message']),![];}}async[a0_0x503578(0xa3)](){const _0x245f7c=a0_0x503578,_0x564ef1={'aVjpb':_0x245f7c(0xb3)};if(!this[_0x245f7c(0x99)]||!this[_0x245f7c(0xbb)])return console['log'](_0x564ef1['aVjpb']),![];if(!this[_0x245f7c(0xf8)])return console[_0x245f7c(0xca)]('[KafkaConsumer]\x20Consumer\x20not\x20paused'),!![];try{const _0x39c03a=this[_0x245f7c(0xa8)]['map'](_0x181269=>({'topic':_0x181269}));return this['consumer'][_0x245f7c(0xa3)](_0x39c03a),this[_0x245f7c(0xf8)]=![],console['log'](_0x245f7c(0xd2)),!![];}catch(_0x575ca1){return console[_0x245f7c(0xeb)]('[KafkaConsumer]\x20Resume\x20error:\x20'+_0x575ca1['message']),![];}}async[a0_0x503578(0xad)](){const _0x446358=a0_0x503578,_0x1262ff={'wJnit':'[KafkaConsumer]\x20Consumer\x20not\x20connected'};if(!this[_0x446358(0x99)])return console['log'](_0x1262ff['wJnit']),!![];try{return this[_0x446358(0xc9)]&&(await this[_0x446358(0xc9)][_0x446358(0xad)](),await this['consumer'][_0x446358(0x9e)]()),this[_0x446358(0x99)]=![],this['isRunning']=![],this[_0x446358(0xf8)]=![],console[_0x446358(0xca)]('[KafkaConsumer]\x20Consumer\x20stopped\x20and\x20disconnected'),!![];}catch(_0x4b3930){return console[_0x446358(0xeb)]('[KafkaConsumer]\x20Stop\x20error:\x20'+_0x4b3930['message']),![];}}async[a0_0x503578(0xaf)](_0x3abccf,_0x5c80cb,_0x223334){const _0x1b817a=a0_0x503578,_0x1df659={'imfEh':_0x1b817a(0xde)};if(!this['isConnected'])return console[_0x1b817a(0xeb)](_0x1df659[_0x1b817a(0xb5)]),![];try{return this['consumer'][_0x1b817a(0xd9)]({'topic':_0x3abccf,'partition':_0x5c80cb,'offset':_0x223334['toString']()}),console['log']('[KafkaConsumer]\x20Seeked\x20to\x20offset\x20'+_0x223334+_0x1b817a(0xc7)+_0x3abccf+':'+_0x5c80cb),!![];}catch(_0x2c66bc){return console['error']('[KafkaConsumer]\x20Seek\x20error:\x20'+_0x2c66bc[_0x1b817a(0x96)]),![];}}['getStatus'](){const _0x19f39a=a0_0x503578,_0x13dda4=this[_0x19f39a(0xc1)]();return{'enabled':_0x13dda4['enabled'],'connected':this['isConnected'],'running':this[_0x19f39a(0xbb)],'paused':this['isPaused'],'brokers':_0x13dda4['brokers'],'clientId':_0x13dda4['clientId'],'groupId':this['groupId'],'subscribedTopics':this[_0x19f39a(0xa8)]};}['getMetrics'](){const _0x1d62cb=a0_0x503578,_0x5d56b5={'rtRwI':function(_0x160fa7,_0x2bcdd0){return _0x160fa7/_0x2bcdd0;},'WRadX':function(_0x1f66c7,_0x3b6dab){return _0x1f66c7+_0x3b6dab;},'TnmYm':function(_0x15cee8,_0x17b038){return _0x15cee8/_0x17b038;},'HTMBA':function(_0x18c989,_0x430dbb){return _0x18c989-_0x430dbb;}},_0x4fd444=this[_0x1d62cb(0xcc)][_0x1d62cb(0xea)]['length']>0x0?_0x5d56b5[_0x1d62cb(0xee)](this['metrics']['processingTimes']['reduce']((_0xc9f5ca,_0x934797)=>_0xc9f5ca+_0x934797,0x0),this['metrics']['processingTimes'][_0x1d62cb(0x93)]):0x0,_0x2c55ff=this['metrics'][_0x1d62cb(0xea)][_0x1d62cb(0x93)]>0x0?Math['min'](...this['metrics'][_0x1d62cb(0xea)]):0x0,_0x1ed9ec=this[_0x1d62cb(0xcc)][_0x1d62cb(0xea)][_0x1d62cb(0x93)]>0x0?Math[_0x1d62cb(0xb1)](...this['metrics'][_0x1d62cb(0xea)]):0x0;return{'messagesReceived':this['metrics']['messagesReceived'],'messagesProcessed':this['metrics'][_0x1d62cb(0xd3)],'messagesFailed':this['metrics'][_0x1d62cb(0xef)],'successRate':this['metrics'][_0x1d62cb(0xb9)]>0x0?(_0x5d56b5[_0x1d62cb(0xee)](this['metrics'][_0x1d62cb(0xd3)],this['metrics'][_0x1d62cb(0xb9)])*0x64)['toFixed'](0x2)+'%':'0%','lastMessageTime':this['metrics'][_0x1d62cb(0xec)],'startTime':this['metrics']['startTime'],'uptime':this[_0x1d62cb(0xcc)]['startTime']?_0x5d56b5['WRadX'](Math['floor'](_0x5d56b5[_0x1d62cb(0x95)](_0x5d56b5['HTMBA'](Date['now'](),this['metrics'][_0x1d62cb(0xf5)][_0x1d62cb(0x98)]()),0x3e8)),'s'):'0s','processingTime':{'avg':Math['round'](_0x4fd444)+'ms','min':_0x2c55ff+'ms','max':_0x1ed9ec+'ms'}};}[a0_0x503578(0xe5)](){const _0x3653e8=a0_0x503578,_0xeb870b={'NHapN':_0x3653e8(0xbd)};this[_0x3653e8(0xcc)]={'messagesReceived':0x0,'messagesProcessed':0x0,'messagesFailed':0x0,'lastMessageTime':null,'startTime':this[_0x3653e8(0xbb)]?new Date():null,'processingTimes':[]},console[_0x3653e8(0xca)](_0xeb870b['NHapN']);}async['close'](){const _0x462c0e=a0_0x503578;await this[_0x462c0e(0xad)]();}}function a0_0x1c7a(){const _0x338839=['icHNCM91CeLKoIa','w0THzMTHq29UC3vTzxjDienVBNn1BwvYigfSCMvHzhKGCNvUBMLUzW','CMv0CNLnyxHezwXHEq','vhDStKG','mtqYndrpvwnTruC','mJuWmda','y2XVC2u','BwfW','y29TBwL0t2zMC2v0CW','Dg9tDhjPBMC','A2fMA2fQCW','v2r1uvG','vNLmwMy','BgvUz3rO','AgvHzgvYCW','vg5Tww0','BwvZC2fNzq','ntaWma','z2v0vgLTzq','AxndB25Uzwn0zwq','CMvXDwvZDfrPBwvVDxq','mZaWmda','z2v0tg9Ntgv2zwW','odiYnJy4qwLrAuTm','zgLZy29UBMvJDa','y29UBMvJDgLVBLbYB21PC2u','D2fYBG','oxW0Fdb8mtb8mxW3Fdz8ohWZFdj8nq','s0fgs0fFuKvrvuvtvf9usu1ft1vu','CMvZDw1L','w0THzMTHq29UC3vTzxjDienVBNn1BwvYignVBM5Ly3rLzcb0BYbICM9RzxjZoIa','s0fgs0fFu0vtu0LptL9usu1ft1vu','A2v5','AxnjBML0AwfSAxPPBMC','C3vIC2nYAwjLzfrVCgLJCW','y2XPzw50swq','B2zMC2v0','C3bSAxq','DMzcAei','C3rVCa','z3jVDxbjza','C2vLA1rVt2zMC2v0','odaYntKWChrfyKDO','Bwf4','w0THzMTHq29UC3vTzxjDienHBM5VDcbWyxvZzsaTignVBNn1BwvYig5VDcbYDw5UAw5N','w0THzMTHq29UC3vTzxjDienHBM5VDcbYzxn1BwuGlsbJB25ZDw1LCIbUB3qGCNvUBMLUzW','A2fMA2e','Aw1MrwG','DxvPza','mJGXodCYre1gz3Ln','CgfYC2u','BwvZC2fNzxnszwnLAxzLza','ne5Oq0TXua','AxnsDw5UAw5N','qM9bvNC','w0THzMTHq29UC3vTzxjDie1LDhjPy3mGCMvZzxq','Dhj1zq','mZaWma','w0THzMTHq29UC3vTzxjDie1LC3nHz2uGChjVy2vZC2LUzYbLCNjVCJOG','z2v0q29UzMLN','lwnVBNn1BwvYlwDYB3vW','w0THzMTHq29UC3vTzxjDienVBNn1BwvYigfSCMvHzhKGCgf1C2vK','Cgf1C2u','CMvZDgzVCMDLlq','zw5HyMXLza','ig9Uia','BwvZC2fNzuHHBMrSzxi','y29UC3vTzxi','Bg9N','mta0odu3nG','Bwv0CMLJCW','mtHhyvHiAgG','BxLdt3m','s0fgs0fFq0Xjru5ux0Le','y29UC3vTzxiUC3rVCa','rvjst1i','w0THzMTHq29UC3vTzxjDienVBNn1BwvYihjLC3vTzwq','BwvZC2fNzxnqCM9JzxnZzwq','vgjoCeS','yxv0B0nVBw1PDa','zw52','BwnZtMK','C2HPzNq','C2vLAW','nZe0mZu2mgryD0nzBW','mJq0odrjzujxDLO','y29UC3vTzxiUzgLZy29UBMvJDa','C2v0DxbfDMvUDeHHBMrSzxjZ','w0THzMTHq29UC3vTzxjDienHBM5VDcbZzwvRic0GBM90ignVBM5Ly3rLza','s0fgs0fFqLjps0vsuW','w0THzMTHq29UC3vTzxjDienVBNn1BwvYihjLyMfSyw5JAw5NlI4U','BM93','s0fgs0fFuKvuuLLFrevmqvK','y3vcugG','CgfYC2vizwfKzxjZ','CMvZzxrnzxrYAwnZ','s0fgs0fFru5bqKXfra','DMfSDwu','odeXnZuYCejPyun5','Bg9Ntgv2zwW','ChjVy2vZC2LUz1rPBwvZ','zxjYB3i','BgfZDe1LC3nHz2vuAw1L','yxv0B0nVBw1PDeLUDgvYDMfS','CNrsD0K','BwvZC2fNzxngywLSzwq','zxHWB3j0CW','Bwjtyxq','w0THzMTHq29UC3vTzxjDienVBNn1BwvYignYyxnOzwq6ia','ChvZAa','mtC3s29lwgPu','C3rHCNruAw1L','Aw5PDgLHBgL6zq','y3zrDLu','AxnqyxvZzwq','AM9PBG'];a0_0x1c7a=function(){return _0x338839;};return a0_0x1c7a();}let instance=null;function a0_0x2a15(_0x5e058d,_0x1561e2){_0x5e058d=_0x5e058d-0x91;const _0x1c7a3c=a0_0x1c7a();let _0x2a158e=_0x1c7a3c[_0x5e058d];if(a0_0x2a15['IUbJAU']===undefined){var _0x1a73e3=function(_0x45d29c){const _0x296766='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x311c55='',_0x1e7bdd='';for(let _0x3792f2=0x0,_0x52378f,_0x416817,_0x5b9fe0=0x0;_0x416817=_0x45d29c['charAt'](_0x5b9fe0++);~_0x416817&&(_0x52378f=_0x3792f2%0x4?_0x52378f*0x40+_0x416817:_0x416817,_0x3792f2++%0x4)?_0x311c55+=String['fromCharCode'](0xff&_0x52378f>>(-0x2*_0x3792f2&0x6)):0x0){_0x416817=_0x296766['indexOf'](_0x416817);}for(let _0x360f27=0x0,_0x21566f=_0x311c55['length'];_0x360f27<_0x21566f;_0x360f27++){_0x1e7bdd+='%'+('00'+_0x311c55['charCodeAt'](_0x360f27)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1e7bdd);};a0_0x2a15['wjYEZC']=_0x1a73e3,a0_0x2a15['ccGUkW']={},a0_0x2a15['IUbJAU']=!![];}const _0x15a3a8=_0x1c7a3c[0x0],_0x31997c=_0x5e058d+_0x15a3a8,_0x3533e8=a0_0x2a15['ccGUkW'][_0x31997c];return!_0x3533e8?(_0x2a158e=a0_0x2a15['wjYEZC'](_0x2a158e),a0_0x2a15['ccGUkW'][_0x31997c]=_0x2a158e):_0x2a158e=_0x3533e8,_0x2a158e;}function getInstance(){return!instance&&(instance=new KafkaConsumerService()),instance;}function resetInstance(){const _0x290608=a0_0x503578;instance&&(instance[_0x290608(0x100)](),instance=null);}function createInstance(){return new KafkaConsumerService();}module[a0_0x503578(0xf0)]={'getInstance':getInstance,'resetInstance':resetInstance,'createInstance':createInstance,'KafkaConsumerService':KafkaConsumerService};
1
+ const a0_0x56875a=a0_0x178f;(function(_0x328c48,_0x2ff676){const _0x56d512=a0_0x178f,_0x563016=_0x328c48();while(!![]){try{const _0x1777b2=parseInt(_0x56d512(0x133))/0x1*(parseInt(_0x56d512(0x134))/0x2)+-parseInt(_0x56d512(0x15b))/0x3+parseInt(_0x56d512(0x122))/0x4*(-parseInt(_0x56d512(0x165))/0x5)+parseInt(_0x56d512(0x17b))/0x6+parseInt(_0x56d512(0x17c))/0x7+-parseInt(_0x56d512(0x16c))/0x8*(-parseInt(_0x56d512(0x14b))/0x9)+parseInt(_0x56d512(0x120))/0xa*(-parseInt(_0x56d512(0x137))/0xb);if(_0x1777b2===_0x2ff676)break;else _0x563016['push'](_0x563016['shift']());}catch(_0x435465){_0x563016['push'](_0x563016['shift']());}}}(a0_0x4d55,0x24ab4));function a0_0x178f(_0x38fe90,_0x575c2d){_0x38fe90=_0x38fe90-0x10e;const _0x4d551d=a0_0x4d55();let _0x178f03=_0x4d551d[_0x38fe90];if(a0_0x178f['cPXRvm']===undefined){var _0x75d460=function(_0x269eb2){const _0x29d849='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1fdabd='',_0x4bc782='';for(let _0x16fe85=0x0,_0x31af52,_0x11b041,_0x2ab598=0x0;_0x11b041=_0x269eb2['charAt'](_0x2ab598++);~_0x11b041&&(_0x31af52=_0x16fe85%0x4?_0x31af52*0x40+_0x11b041:_0x11b041,_0x16fe85++%0x4)?_0x1fdabd+=String['fromCharCode'](0xff&_0x31af52>>(-0x2*_0x16fe85&0x6)):0x0){_0x11b041=_0x29d849['indexOf'](_0x11b041);}for(let _0x787cf0=0x0,_0xe4344b=_0x1fdabd['length'];_0x787cf0<_0xe4344b;_0x787cf0++){_0x4bc782+='%'+('00'+_0x1fdabd['charCodeAt'](_0x787cf0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4bc782);};a0_0x178f['PbbXTB']=_0x75d460,a0_0x178f['YEsGtc']={},a0_0x178f['cPXRvm']=!![];}const _0x429f53=_0x4d551d[0x0],_0x3faf18=_0x38fe90+_0x429f53,_0x3ce37e=a0_0x178f['YEsGtc'][_0x3faf18];return!_0x3ce37e?(_0x178f03=a0_0x178f['PbbXTB'](_0x178f03),a0_0x178f['YEsGtc'][_0x3faf18]=_0x178f03):_0x178f03=_0x3ce37e,_0x178f03;}const {Kafka,logLevel}=require(a0_0x56875a(0x13b)),{v7:uuidv7}=require(a0_0x56875a(0x119));class KafkaConsumerService{constructor(){const _0xd99b9b=a0_0x56875a,_0x9a1ce2={'UWHhk':_0xd99b9b(0x124)},_0x5ef935=_0x9a1ce2['UWHhk']['split']('|');let _0x1934d1=0x0;while(!![]){switch(_0x5ef935[_0x1934d1++]){case'0':this['connectionPromise']=null;continue;case'1':this[_0xd99b9b(0x12a)]={'messagesReceived':0x0,'messagesProcessed':0x0,'messagesFailed':0x0,'lastMessageTime':null,'startTime':null,'processingTimes':[]};continue;case'2':this[_0xd99b9b(0x18a)]=[];continue;case'3':this['messageHandler']=null;continue;case'4':this['isPaused']=![];continue;case'5':this['kafka']=null;continue;case'6':this[_0xd99b9b(0x180)]=![];continue;case'7':this[_0xd99b9b(0x16d)]=null;continue;case'8':this[_0xd99b9b(0x11c)]=![];continue;case'9':this['isConnected']=![];continue;case'10':this['groupId']=null;continue;}break;}}['getConfig'](){const _0x1aadb9=a0_0x56875a,_0x46e379={'rerCR':function(_0x4b7645,_0x40ded4){return _0x4b7645===_0x40ded4;},'rGAzz':_0x1aadb9(0x151),'FsXSo':_0x1aadb9(0x128),'deWFr':'25000','uWAiU':function(_0x59148c,_0x4934d1){return _0x59148c(_0x4934d1);},'ktPUu':_0x1aadb9(0x169),'dLOdW':'warn'};return{'enabled':_0x46e379['rerCR'](process['env']['KAFKA_ENABLED'],'true'),'brokers':(process[_0x1aadb9(0x123)][_0x1aadb9(0x174)]||_0x1aadb9(0x136))['split'](','),'clientId':process[_0x1aadb9(0x123)][_0x1aadb9(0x16b)]||'restforge-'+(process['env'][_0x1aadb9(0x11b)]||_0x46e379['rGAzz'])+_0x1aadb9(0x145),'connectionTimeout':parseInt(process['env']['KAFKA_CONNECTION_TIMEOUT']||_0x46e379[_0x1aadb9(0x15e)]),'requestTimeout':parseInt(process[_0x1aadb9(0x123)][_0x1aadb9(0x125)]||_0x46e379['deWFr']),'sessionTimeout':parseInt(process[_0x1aadb9(0x123)]['KAFKA_SESSION_TIMEOUT']||'30000'),'heartbeatInterval':_0x46e379[_0x1aadb9(0x158)](parseInt,process['env']['KAFKA_HEARTBEAT_INTERVAL']||'3000'),'maxBytesPerPartition':parseInt(process['env'][_0x1aadb9(0x162)]||_0x46e379['ktPUu']),'autoCommit':_0x46e379[_0x1aadb9(0x15f)](process['env'][_0x1aadb9(0x170)],_0x1aadb9(0x164)),'autoCommitInterval':parseInt(process['env'][_0x1aadb9(0x168)]||_0x1aadb9(0x114)),'retryAttempts':parseInt(process['env'][_0x1aadb9(0x185)]||'3'),'retryDelay':_0x46e379[_0x1aadb9(0x158)](parseInt,process['env']['KAFKA_RETRY_DELAY']||_0x1aadb9(0x183)),'retryMaxDelay':parseInt(process[_0x1aadb9(0x123)][_0x1aadb9(0x178)]||_0x1aadb9(0x11f)),'logLevel':process[_0x1aadb9(0x123)]['KAFKA_LOG_LEVEL']||_0x46e379['dLOdW']};}[a0_0x56875a(0x135)](_0x5b8490){const _0x1fd1af=a0_0x56875a,_0xa4f88c={'nothing':logLevel[_0x1fd1af(0x189)],'error':logLevel[_0x1fd1af(0x12f)],'warn':logLevel[_0x1fd1af(0x184)],'info':logLevel[_0x1fd1af(0x115)],'debug':logLevel['DEBUG']};return _0xa4f88c[_0x5b8490[_0x1fd1af(0x131)]()]||logLevel['WARN'];}async[a0_0x56875a(0x17d)](_0x603aa9={}){const _0x5dbad7=a0_0x56875a,_0x1e98c3={'budKt':function(_0x5cb6b0,_0xa4b17d){return _0x5cb6b0===_0xa4b17d;},'qbAMv':'true','gCyox':function(_0xb14932,_0x118cc2){return _0xb14932(_0x118cc2);}},_0x24428f=this[_0x5dbad7(0x112)]();if(!_0x24428f[_0x5dbad7(0x15c)])return console[_0x5dbad7(0x12b)](_0x5dbad7(0x110)),![];if(this[_0x5dbad7(0x126)])return!![];if(this[_0x5dbad7(0x180)]&&this['connectionPromise'])return this[_0x5dbad7(0x12e)];return this[_0x5dbad7(0x180)]=!![],this[_0x5dbad7(0x12e)]=new Promise(async _0x5edc82=>{const _0x5406a7=_0x5dbad7;try{let _0x51626b=undefined;_0x1e98c3[_0x5406a7(0x157)](process[_0x5406a7(0x123)][_0x5406a7(0x16a)],_0x1e98c3[_0x5406a7(0x177)])&&(_0x51626b=!![]);let _0x49d028=undefined;process['env']['KAFKA_SASL_MECHANISM']&&(_0x49d028={'mechanism':process['env']['KAFKA_SASL_MECHANISM'],'username':process[_0x5406a7(0x123)][_0x5406a7(0x171)]||'','password':process[_0x5406a7(0x123)][_0x5406a7(0x139)]||''}),this['kafka']=new Kafka({'clientId':_0x603aa9[_0x5406a7(0x146)]||_0x24428f['clientId'],'brokers':_0x24428f['brokers'],'connectionTimeout':_0x24428f[_0x5406a7(0x140)],'requestTimeout':_0x24428f['requestTimeout'],'logLevel':this[_0x5406a7(0x135)](_0x24428f[_0x5406a7(0x163)]),'ssl':_0x51626b,'sasl':_0x49d028,'retry':{'initialRetryTime':_0x24428f['retryDelay'],'retries':_0x24428f[_0x5406a7(0x142)],'maxRetryTime':_0x24428f['retryMaxDelay']}}),this['groupId']=_0x603aa9[_0x5406a7(0x14a)]||_0x5406a7(0x129)+(process['env'][_0x5406a7(0x11b)]||'default')+'-consumer-group',this[_0x5406a7(0x16d)]=this['kafka']['consumer']({'groupId':this['groupId'],'sessionTimeout':_0x24428f['sessionTimeout'],'heartbeatInterval':_0x24428f[_0x5406a7(0x17a)],'maxBytesPerPartition':_0x24428f[_0x5406a7(0x12d)],'allowAutoTopicCreation':![]}),await this['consumer']['connect'](),this['isConnected']=!![],console['log']('[KafkaConsumer]\x20Consumer\x20connected\x20to\x20brokers:\x20'+_0x24428f['brokers']['join'](',\x20')+_0x5406a7(0x16e)+this['groupId']+')'),this[_0x5406a7(0x14c)](),_0x1e98c3['gCyox'](_0x5edc82,!![]);}catch(_0x1951ea){console[_0x5406a7(0x127)]('[KafkaConsumer]\x20Connection\x20failed:\x20'+_0x1951ea[_0x5406a7(0x15a)]),this['isConnected']=![],_0x1e98c3['gCyox'](_0x5edc82,![]);}finally{this['isInitializing']=![];}}),this[_0x5dbad7(0x12e)];}['setupEventHandlers'](){const _0x4d7962=a0_0x56875a,_0x217fdd={'CsavF':_0x4d7962(0x118),'NPjBV':_0x4d7962(0x160),'jlvIH':'consumer.rebalancing'};if(!this['consumer'])return;this[_0x4d7962(0x16d)]['on'](_0x4d7962(0x10e),()=>{const _0xb06b9d=_0x4d7962;console['log'](_0x217fdd[_0xb06b9d(0x172)]),this[_0xb06b9d(0x126)]=![],this[_0xb06b9d(0x11c)]=![];}),this['consumer']['on'](_0x4d7962(0x179),()=>{console['log'](_0x217fdd['NPjBV']),this['isRunning']=![];}),this['consumer']['on']('consumer.crash',_0x54c9a1=>{const _0x3149bc=_0x4d7962;console[_0x3149bc(0x127)](_0x3149bc(0x17e)+_0x54c9a1[_0x3149bc(0x13a)][_0x3149bc(0x127)]['message']),this['isRunning']=![];}),this['consumer']['on'](_0x217fdd['jlvIH'],()=>{const _0xf59dd4=_0x4d7962;console[_0xf59dd4(0x12b)]('[KafkaConsumer]\x20Consumer\x20rebalancing...');});}async[a0_0x56875a(0x188)](_0x97e622,_0x59a8b6=![]){const _0x288460=a0_0x56875a;if(!this['isConnected'])return console['error'](_0x288460(0x150)),![];try{const _0x1588f0=Array[_0x288460(0x159)](_0x97e622)?_0x97e622:[_0x97e622];for(const _0x24c963 of _0x1588f0){await this[_0x288460(0x16d)]['subscribe']({'topic':_0x24c963,'fromBeginning':_0x59a8b6}),console['log'](_0x288460(0x13c)+_0x24c963+'\x20(fromBeginning:\x20'+_0x59a8b6+')');}return this[_0x288460(0x18a)]=[...new Set([...this['subscribedTopics'],..._0x1588f0])],!![];}catch(_0x4d8428){return console[_0x288460(0x127)]('[KafkaConsumer]\x20Subscribe\x20error:\x20'+_0x4d8428['message']),![];}}async[a0_0x56875a(0x17f)](_0x4ffbcd,_0x80c4de={}){const _0x1e4bef=a0_0x56875a,_0x28f755={'NJgQj':function(_0x1b5fa3,_0x182f2b){return _0x1b5fa3+_0x182f2b;},'KknZB':_0x1e4bef(0x13d)};if(!this[_0x1e4bef(0x126)])return console[_0x1e4bef(0x127)]('[KafkaConsumer]\x20Cannot\x20start\x20consuming\x20-\x20not\x20connected'),![];if(this['isRunning'])return console['log'](_0x28f755['KknZB']),!![];const _0x3f4059=this[_0x1e4bef(0x112)]();this['messageHandler']=_0x4ffbcd;try{return this[_0x1e4bef(0x12a)][_0x1e4bef(0x166)]=new Date(),await this['consumer']['run']({'autoCommit':_0x80c4de[_0x1e4bef(0x12c)]!==undefined?_0x80c4de[_0x1e4bef(0x12c)]:_0x3f4059['autoCommit'],'autoCommitInterval':_0x3f4059['autoCommitInterval'],'eachMessage':async({topic:_0x2a93d0,partition:_0x315421,message:_0x262e2a,heartbeat:_0x47c9d7})=>{const _0x47ef52=_0x1e4bef,_0x586ba9=Date[_0x47ef52(0x13f)]();this['metrics'][_0x47ef52(0x130)]++,this[_0x47ef52(0x12a)][_0x47ef52(0x147)]=new Date();try{const _0x30b6f4=_0x262e2a['value']?_0x262e2a['value']['toString']():null;let _0xf7d8e8=null;try{_0xf7d8e8=_0x30b6f4?JSON['parse'](_0x30b6f4):null;}catch(_0x52fdd9){_0xf7d8e8=_0x30b6f4;}const _0x304633={'topic':_0x2a93d0,'partition':_0x315421,'offset':_0x262e2a['offset'],'key':_0x262e2a[_0x47ef52(0x138)]?_0x262e2a[_0x47ef52(0x138)][_0x47ef52(0x175)]():null,'headers':this['parseHeaders'](_0x262e2a[_0x47ef52(0x121)]),'timestamp':_0x262e2a[_0x47ef52(0x153)],'value':_0xf7d8e8,'raw':_0x30b6f4};this['messageHandler']&&await this['messageHandler'](_0x304633);!_0x3f4059[_0x47ef52(0x12c)]&&await this['consumer']['commitOffsets']([{'topic':_0x2a93d0,'partition':_0x315421,'offset':_0x28f755[_0x47ef52(0x111)](parseInt(_0x262e2a['offset']),0x1)['toString']()}]);this[_0x47ef52(0x12a)][_0x47ef52(0x173)]++;const _0x492459=Date['now']()-_0x586ba9;this['metrics']['processingTimes']['push'](_0x492459),this['metrics'][_0x47ef52(0x176)][_0x47ef52(0x13e)]>0x64&&this[_0x47ef52(0x12a)][_0x47ef52(0x176)][_0x47ef52(0x14e)](),await _0x47c9d7();}catch(_0x16c3b0){this[_0x47ef52(0x12a)][_0x47ef52(0x141)]++,console['error']('[KafkaConsumer]\x20Message\x20processing\x20error:\x20'+_0x16c3b0[_0x47ef52(0x15a)]);throw _0x16c3b0;}}}),this['isRunning']=!![],console['log']('[KafkaConsumer]\x20Started\x20consuming\x20from\x20topics:\x20'+this[_0x1e4bef(0x18a)]['join'](',\x20')),!![];}catch(_0x15338b){return console['error'](_0x1e4bef(0x14f)+_0x15338b[_0x1e4bef(0x15a)]),![];}}['parseHeaders'](_0x523f12){const _0x802104=a0_0x56875a;if(!_0x523f12)return{};const _0x41c84d={};for(const [_0x3aa2e5,_0xec925]of Object[_0x802104(0x144)](_0x523f12)){_0x41c84d[_0x3aa2e5]=_0xec925?_0xec925['toString']():null;}return _0x41c84d;}async[a0_0x56875a(0x155)](){const _0x33b334=a0_0x56875a,_0x5be5b6={'HOAfB':_0x33b334(0x152),'kcIKq':'[KafkaConsumer]\x20Consumer\x20paused'};if(!this[_0x33b334(0x126)]||!this[_0x33b334(0x11c)])return console['log'](_0x5be5b6[_0x33b334(0x15d)]),![];if(this[_0x33b334(0x132)])return console['log'](_0x33b334(0x11e)),!![];try{const _0x59473e=this[_0x33b334(0x18a)][_0x33b334(0x14d)](_0x69230a=>({'topic':_0x69230a}));return this[_0x33b334(0x16d)][_0x33b334(0x155)](_0x59473e),this['isPaused']=!![],console[_0x33b334(0x12b)](_0x5be5b6[_0x33b334(0x161)]),!![];}catch(_0x54e29e){return console['error']('[KafkaConsumer]\x20Pause\x20error:\x20'+_0x54e29e[_0x33b334(0x15a)]),![];}}async['resume'](){const _0x2bb4f6=a0_0x56875a,_0x5cd6ec={'czAHR':_0x2bb4f6(0x143)};if(!this[_0x2bb4f6(0x126)]||!this[_0x2bb4f6(0x11c)])return console['log'](_0x5cd6ec['czAHR']),![];if(!this[_0x2bb4f6(0x132)])return console[_0x2bb4f6(0x12b)](_0x2bb4f6(0x11a)),!![];try{const _0x112eb8=this['subscribedTopics']['map'](_0x5622a2=>({'topic':_0x5622a2}));return this['consumer']['resume'](_0x112eb8),this[_0x2bb4f6(0x132)]=![],console['log']('[KafkaConsumer]\x20Consumer\x20resumed'),!![];}catch(_0x3d3a70){return console['error']('[KafkaConsumer]\x20Resume\x20error:\x20'+_0x3d3a70['message']),![];}}async['stop'](){const _0x2407ca=a0_0x56875a;if(!this[_0x2407ca(0x126)])return console['log']('[KafkaConsumer]\x20Consumer\x20not\x20connected'),!![];try{return this['consumer']&&(await this['consumer']['stop'](),await this[_0x2407ca(0x16d)][_0x2407ca(0x156)]()),this[_0x2407ca(0x126)]=![],this['isRunning']=![],this['isPaused']=![],console[_0x2407ca(0x12b)]('[KafkaConsumer]\x20Consumer\x20stopped\x20and\x20disconnected'),!![];}catch(_0x1d4167){return console[_0x2407ca(0x127)]('[KafkaConsumer]\x20Stop\x20error:\x20'+_0x1d4167[_0x2407ca(0x15a)]),![];}}async[a0_0x56875a(0x117)](_0x50b3be,_0x318bfd,_0x58db01){const _0x2aa838=a0_0x56875a,_0x53133={'eOhxI':_0x2aa838(0x186)};if(!this['isConnected'])return console['error'](_0x53133['eOhxI']),![];try{return this[_0x2aa838(0x16d)]['seek']({'topic':_0x50b3be,'partition':_0x318bfd,'offset':_0x58db01[_0x2aa838(0x175)]()}),console[_0x2aa838(0x12b)](_0x2aa838(0x10f)+_0x58db01+_0x2aa838(0x16f)+_0x50b3be+':'+_0x318bfd),!![];}catch(_0x3cb868){return console['error'](_0x2aa838(0x154)+_0x3cb868[_0x2aa838(0x15a)]),![];}}[a0_0x56875a(0x148)](){const _0x5ae807=a0_0x56875a,_0x4991df=this['getConfig']();return{'enabled':_0x4991df['enabled'],'connected':this[_0x5ae807(0x126)],'running':this['isRunning'],'paused':this[_0x5ae807(0x132)],'brokers':_0x4991df['brokers'],'clientId':_0x4991df[_0x5ae807(0x146)],'groupId':this[_0x5ae807(0x14a)],'subscribedTopics':this['subscribedTopics']};}[a0_0x56875a(0x149)](){const _0x1c0934=a0_0x56875a,_0x9531b0={'EYxtu':function(_0x27e3e7,_0x1e35d0){return _0x27e3e7>_0x1e35d0;},'cLRXm':function(_0x1193b6,_0x1621ab){return _0x1193b6+_0x1621ab;},'vwZih':function(_0x2c1721,_0x5d0170){return _0x2c1721*_0x5d0170;},'VKRcP':function(_0x2cd3dc,_0x37a8bb){return _0x2cd3dc/_0x37a8bb;},'tKhKS':function(_0x97ff61,_0x17b0ef){return _0x97ff61/_0x17b0ef;},'OOPsE':function(_0x1fbab3,_0x5e982b){return _0x1fbab3-_0x5e982b;},'BRzxX':function(_0x3890e1,_0xa61307){return _0x3890e1+_0xa61307;}},_0x10ce41=this['metrics']['processingTimes'][_0x1c0934(0x13e)]>0x0?this['metrics']['processingTimes'][_0x1c0934(0x116)]((_0x47a281,_0x29b8ac)=>_0x47a281+_0x29b8ac,0x0)/this['metrics']['processingTimes'][_0x1c0934(0x13e)]:0x0,_0x1876c6=_0x9531b0['EYxtu'](this['metrics'][_0x1c0934(0x176)][_0x1c0934(0x13e)],0x0)?Math['min'](...this[_0x1c0934(0x12a)]['processingTimes']):0x0,_0x57fdb8=this[_0x1c0934(0x12a)][_0x1c0934(0x176)]['length']>0x0?Math[_0x1c0934(0x113)](...this['metrics']['processingTimes']):0x0;return{'messagesReceived':this['metrics'][_0x1c0934(0x130)],'messagesProcessed':this['metrics']['messagesProcessed'],'messagesFailed':this[_0x1c0934(0x12a)][_0x1c0934(0x141)],'successRate':this[_0x1c0934(0x12a)]['messagesReceived']>0x0?_0x9531b0[_0x1c0934(0x181)](_0x9531b0[_0x1c0934(0x167)](_0x9531b0['VKRcP'](this['metrics']['messagesProcessed'],this[_0x1c0934(0x12a)][_0x1c0934(0x130)]),0x64)['toFixed'](0x2),'%'):'0%','lastMessageTime':this['metrics'][_0x1c0934(0x147)],'startTime':this['metrics']['startTime'],'uptime':this[_0x1c0934(0x12a)][_0x1c0934(0x166)]?Math[_0x1c0934(0x187)](_0x9531b0['tKhKS'](_0x9531b0['OOPsE'](Date[_0x1c0934(0x13f)](),this[_0x1c0934(0x12a)][_0x1c0934(0x166)][_0x1c0934(0x11d)]()),0x3e8))+'s':'0s','processingTime':{'avg':Math['round'](_0x10ce41)+'ms','min':_0x9531b0['BRzxX'](_0x1876c6,'ms'),'max':_0x9531b0['cLRXm'](_0x57fdb8,'ms')}};}['resetMetrics'](){const _0xaf4a71=a0_0x56875a;this['metrics']={'messagesReceived':0x0,'messagesProcessed':0x0,'messagesFailed':0x0,'lastMessageTime':null,'startTime':this[_0xaf4a71(0x11c)]?new Date():null,'processingTimes':[]},console['log']('[KafkaConsumer]\x20Metrics\x20reset');}async['close'](){await this['stop']();}}let instance=null;function getInstance(){return!instance&&(instance=new KafkaConsumerService()),instance;}function a0_0x4d55(){const _0x396430=['Dhj1zq','mtq0mZbWzufKz2y','C3rHCNruAw1L','DNDAAwG','s0fgs0fFqvvut19dt01nsvrFsu5urvjwquW','mta0odu3nG','s0fgs0fFu1nm','s0fgs0fFq0Xjru5ux0Le','mZjNDfPjB0u','y29UC3vTzxi','icHNCM91CeLKoIa','ig9Uia','s0fgs0fFqvvut19dt01nsvq','s0fgs0fFu0fttf9vu0vstKfnrq','q3nHDKy','BwvZC2fNzxnqCM9JzxnZzwq','s0fgs0fFqLjps0vsuW','Dg9tDhjPBMC','ChjVy2vZC2LUz1rPBwvZ','Cwjbtxy','s0fgs0fFuKvuuLLFtufyx0rftefz','y29UC3vTzxiUC3rVCa','AgvHCNrIzwf0sw50zxj2ywW','mtyXnJC3ogr5tKXusW','ntm2mde4uLzHsuHr','Aw5PDgLHBgL6zq','w0THzMTHq29UC3vTzxjDienVBNn1BwvYignYyxnOzwq6ia','C3rHCNrdB25ZDw1PBMC','AxnjBML0AwfSAxPPBMC','y0Xswg0','y2XVC2u','mtaWma','v0fstG','s0fgs0fFuKvuuLLFqvruru1qvfm','w0THzMTHq29UC3vTzxjDienHBM5VDcbZzwvRic0GBM90ignVBM5Ly3rLza','zMXVB3i','C3vIC2nYAwjL','tK9useLorW','C3vIC2nYAwjLzfrVCgLJCW','y29UC3vTzxiUzgLZy29UBMvJDa','w0THzMTHq29UC3vTzxjDifnLzwTLzcb0BYbVzMzZzxqG','w0THzMTHq29UC3vTzxjDieTHzMTHignVBNn1BwvYigLZigrPC2fIBgvKigLUignVBMzPz3vYyxrPB24','tKPNuwO','z2v0q29UzMLN','Bwf4','ntaWma','su5gtW','CMvKDwnL','C2vLA1rVt2zMC2v0','w0THzMTHq29UC3vTzxjDienVBNn1BwvYigrPC2nVBM5Ly3rLza','DxvPza','w0THzMTHq29UC3vTzxjDienVBNn1BwvYig5VDcbWyxvZzwq','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','AxnsDw5UAw5N','z2v0vgLTzq','w0THzMTHq29UC3vTzxjDienVBNn1BwvYigfSCMvHzhKGCgf1C2vK','mZaWmda','mJGZmdeXmgTPvK13uW','AgvHzgvYCW','mZi0wLPeCuLc','zw52','nxW3FdL8nNW4Fdr8mhWYFdeWFdn8mq','s0fgs0fFuKvrvuvtvf9usu1ft1vu','AxndB25Uzwn0zwq','zxjYB3i','mZaWma','CMvZDgzVCMDLlq','Bwv0CMLJCW','Bg9N','yxv0B0nVBw1PDa','Bwf4qNL0zxnqzxjqyxj0AxrPB24','y29UBMvJDgLVBLbYB21PC2u','rvjst1i','BwvZC2fNzxnszwnLAxzLza','Dg9mB3DLCKnHC2u','AxnqyxvZzwq','muT0zfHbzG','ndG2mda0ugPxA0j2','z2v0tg9Ntgv2zwW','Bg9JywXOB3n0oJKWoti','mtf6u3DsDhq','A2v5','s0fgs0fFu0fttf9qqvntv09sra','Cgf5Bg9Hza','A2fMA2fQCW','w0THzMTHq29UC3vTzxjDifn1yNnJCMLIzwqGDg8GDg9WAwm6ia','w0THzMTHq29UC3vTzxjDienVBNn1BwvYigfSCMvHzhKGCNvUBMLUzW','BgvUz3rO','BM93','y29UBMvJDgLVBLrPBwvVDxq','BwvZC2fNzxngywLSzwq','CMv0CNLbDhrLBxb0CW','w0THzMTHq29UC3vTzxjDienHBM5VDcbYzxn1BwuGlsbJB25ZDw1LCIbUB3qGCNvUBMLUzW','zw50CMLLCW','lwnVBNn1BwvY','y2XPzw50swq','BgfZDe1LC3nHz2vuAw1L','z2v0u3rHDhvZ','z2v0twv0CMLJCW','z3jVDxbjza','nJm0mdqXyLnZyMPc','C2v0DxbfDMvUDeHHBMrSzxjZ','BwfW','C2HPzNq','w0THzMTHq29UC3vTzxjDifn0yxj0ignVBNn1BwLUzYbLCNjVCJOG','w0THzMTHq29UC3vTzxjDienHBM5VDcbZDwjZy3jPyMuGlsbUB3qGy29UBMvJDgvK','zgvMyxvSDa','w0THzMTHq29UC3vTzxjDienHBM5VDcbWyxvZzsaTignVBNn1BwvYig5VDcbYDw5UAw5N','DgLTzxn0yw1W','w0THzMTHq29UC3vTzxjDifnLzwSGzxjYB3i6ia','Cgf1C2u','zgLZy29UBMvJDa','yNvKs3q','DvDbAvu','AxnbCNjHEq','BwvZC2fNzq','nJeXntG2uuHdwgPi','zw5HyMXLza','se9bzKi','rNnyu28','CMvYq1i','w0THzMTHq29UC3vTzxjDienVBNn1BwvYihn0B3bWzwq','A2njs3e','s0fgs0fFtufyx0jzvevtx1bfuL9qqvjusvrjt04','Bg9Ntgv2zwW'];a0_0x4d55=function(){return _0x396430;};return a0_0x4d55();}function resetInstance(){const _0x54e807=a0_0x56875a;instance&&(instance[_0x54e807(0x182)](),instance=null);}function createInstance(){return new KafkaConsumerService();}module['exports']={'getInstance':getInstance,'resetInstance':resetInstance,'createInstance':createInstance,'KafkaConsumerService':KafkaConsumerService};