@restforgejs/platform 4.2.8 → 4.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/SECURITY.md +83 -4
  2. package/bin/sdf-tools.exe +0 -0
  3. package/build-info.json +2 -2
  4. package/cli/consumer-deploy.js +1 -1
  5. package/cli/consumer.js +1 -1
  6. package/generators/cli/dashboard/create.js +4 -1
  7. package/generators/cli/endpoint/create.js +1 -1
  8. package/generators/cli/key/generate.js +2 -1
  9. package/generators/cli/key/revoke.js +2 -1
  10. package/generators/cli/payload/diff.js +3 -2
  11. package/generators/cli/payload/generate.js +3 -2
  12. package/generators/cli/payload/sync.js +3 -2
  13. package/generators/cli/payload/validate.js +3 -2
  14. package/generators/cli/processor/create.js +14 -3
  15. package/generators/cli/project/delete.js +2 -1
  16. package/generators/cli/query/validate.js +3 -2
  17. package/generators/cli/schema/apply.js +3 -2
  18. package/generators/cli/schema/describe.js +3 -2
  19. package/generators/cli/schema/diff.js +3 -2
  20. package/generators/cli/schema/introspect.js +3 -2
  21. package/generators/cli/schema/list.js +3 -2
  22. package/generators/cli/schema/migrate.js +3 -2
  23. package/generators/lib/migration/audit-table-runner.js +213 -215
  24. package/generators/lib/templates/dashboard-catalog.js +1 -437
  25. package/generators/lib/templates/db-connection-env.js +1 -212
  26. package/generators/lib/templates/dbschema-catalog.js +1 -489
  27. package/generators/lib/templates/field-validation-catalog.js +1 -531
  28. package/generators/lib/templates/mysql-template.js +1 -3863
  29. package/generators/lib/templates/oracle-template.js +1 -3915
  30. package/generators/lib/templates/postgres-template.js +1 -5838
  31. package/generators/lib/templates/query-declarative-catalog.js +1 -199
  32. package/generators/lib/templates/sqlite-template.js +1 -3440
  33. package/generators/lib/utils/env-manager.js +6 -0
  34. package/generators/lib/utils/path-validator.js +71 -0
  35. package/generators/lib/validators/payload-validator.js +1 -2
  36. package/integrity-manifest.json +28 -10
  37. package/package.json +11 -3
  38. package/scripts/verify-integrity.js +1 -1
  39. package/server.js +1 -1
  40. package/src/components/handlers/adjust_handler.js +1 -1
  41. package/src/components/handlers/audit_handler.js +1 -1
  42. package/src/components/handlers/delete_handler.js +1 -1
  43. package/src/components/handlers/export_handler.js +1 -1
  44. package/src/components/handlers/import_handler.js +1 -1
  45. package/src/components/handlers/insert_handler.js +1 -1
  46. package/src/components/handlers/update_handler.js +1 -1
  47. package/src/components/handlers/upload_handler.js +1 -1
  48. package/src/components/handlers/workflow_handler.js +1 -1
  49. package/src/components/integrations/webhook.js +1 -1
  50. package/src/consumers/baseConsumer.js +1 -1
  51. package/src/consumers/declarativeMapper.js +1 -1
  52. package/src/consumers/handlers/apiHandler.js +1 -1
  53. package/src/consumers/handlers/consoleHandler.js +1 -1
  54. package/src/consumers/handlers/databaseHandler.js +1 -1
  55. package/src/consumers/handlers/index.js +1 -1
  56. package/src/consumers/handlers/kafkaHandler.js +1 -1
  57. package/src/consumers/index.js +1 -1
  58. package/src/consumers/messageTransformer.js +1 -1
  59. package/src/consumers/validator.js +1 -1
  60. package/src/core/db/dialect/base-dialect.js +1 -1
  61. package/src/core/db/dialect/index.js +1 -1
  62. package/src/core/db/dialect/mysql-dialect.js +1 -1
  63. package/src/core/db/dialect/oracle-dialect.js +1 -1
  64. package/src/core/db/dialect/postgres-dialect.js +1 -1
  65. package/src/core/db/dialect/sqlite-dialect.js +1 -1
  66. package/src/core/db/flatten-helper.js +1 -1
  67. package/src/core/db/query-builder-error.js +1 -1
  68. package/src/core/db/query-builder.js +1 -1
  69. package/src/core/db/relation-helper.js +1 -1
  70. package/src/core/handlers/delete_handler.js +1 -1
  71. package/src/core/handlers/insert_handler.js +1 -1
  72. package/src/core/handlers/update_handler.js +1 -1
  73. package/src/core/models/base-model.js +1 -1
  74. package/src/core/utils/cache-manager.js +1 -1
  75. package/src/core/utils/component-engine.js +1 -1
  76. package/src/core/utils/context-builder.js +1 -1
  77. package/src/core/utils/datetime-formatter.js +1 -1
  78. package/src/core/utils/datetime-parser.js +1 -1
  79. package/src/core/utils/db.js +1 -1
  80. package/src/core/utils/logger.js +1 -1
  81. package/src/core/utils/payload-loader.js +1 -1
  82. package/src/core/utils/security-checks.js +1 -1
  83. package/src/middleware/body-options.js +1 -1
  84. package/src/middleware/cors.js +1 -1
  85. package/src/middleware/idempotency.js +1 -1
  86. package/src/middleware/rate-limiter.js +1 -1
  87. package/src/middleware/request-logger.js +1 -1
  88. package/src/middleware/security-headers.js +1 -1
  89. package/src/models/base-model-mysql.js +1 -1
  90. package/src/models/base-model-oracle.js +1 -1
  91. package/src/models/base-model-sqlite.js +1 -1
  92. package/src/models/base-model.js +1 -1
  93. package/src/pro/caching/redis-client.js +1 -1
  94. package/src/pro/caching/redis-helper.js +1 -1
  95. package/src/pro/consumers/baseConsumer.js +1 -1
  96. package/src/pro/consumers/declarativeMapper.js +1 -1
  97. package/src/pro/consumers/handlers/apiHandler.js +1 -1
  98. package/src/pro/consumers/handlers/consoleHandler.js +1 -1
  99. package/src/pro/consumers/handlers/databaseHandler.js +1 -1
  100. package/src/pro/consumers/handlers/index.js +1 -1
  101. package/src/pro/consumers/handlers/kafkaHandler.js +1 -1
  102. package/src/pro/consumers/index.js +1 -1
  103. package/src/pro/consumers/messageTransformer.js +1 -1
  104. package/src/pro/consumers/validator.js +1 -1
  105. package/src/pro/database/base-model-mysql.js +1 -1
  106. package/src/pro/database/base-model-oracle.js +1 -1
  107. package/src/pro/database/base-model-sqlite.js +1 -1
  108. package/src/pro/database/db-mysql.js +1 -1
  109. package/src/pro/database/db-oracle.js +1 -1
  110. package/src/pro/database/db-sqlite.js +1 -1
  111. package/src/pro/excel/excel-generator.js +1 -1
  112. package/src/pro/excel/excel-parser.js +1 -1
  113. package/src/pro/excel/export-service.js +1 -1
  114. package/src/pro/excel/export_handler.js +1 -1
  115. package/src/pro/excel/import-service.js +1 -1
  116. package/src/pro/excel/import-validator.js +1 -1
  117. package/src/pro/excel/import_handler.js +1 -1
  118. package/src/pro/excel/upsert-builder.js +1 -1
  119. package/src/pro/idgen/idgen-routes.js +1 -1
  120. package/src/pro/integrations/lookup-resolver.js +1 -1
  121. package/src/pro/integrations/upload-handler-v2.js +1 -1
  122. package/src/pro/integrations/upload-handler.js +1 -1
  123. package/src/pro/integrations/webhook.js +1 -1
  124. package/src/pro/locking/lock-routes.js +1 -1
  125. package/src/pro/locking/resource-lock-manager.js +1 -1
  126. package/src/pro/messaging/kafkaConsumerService.js +1 -1
  127. package/src/pro/messaging/kafkaService.js +1 -1
  128. package/src/pro/messaging/messagehubService.js +1 -1
  129. package/src/pro/messaging/rabbitmqService.js +1 -1
  130. package/src/pro/scheduler/job-manager.js +1 -1
  131. package/src/pro/scheduler/job-routes.js +1 -1
  132. package/src/pro/scheduler/job-validator.js +1 -1
  133. package/src/pro/storage/base-storage-provider.js +1 -1
  134. package/src/pro/storage/file-metadata-helper.js +1 -1
  135. package/src/pro/storage/index.js +1 -1
  136. package/src/pro/storage/local-storage-provider.js +1 -1
  137. package/src/pro/storage/s3-storage-provider.js +1 -1
  138. package/src/pro/storage/upload-cleanup-job.js +1 -1
  139. package/src/pro/storage/upload-cleanup-scheduler.js +1 -1
  140. package/src/pro/storage/upload-pending-tracker.js +1 -1
  141. package/src/pro/websocket/broadcast-helper.js +1 -1
  142. package/src/pro/websocket/index.js +1 -1
  143. package/src/pro/websocket/livesync-server.js +1 -1
  144. package/src/pro/websocket/ws-broadcaster.js +1 -1
  145. package/src/services/export-service.js +1 -1
  146. package/src/services/import-service.js +1 -1
  147. package/src/services/kafkaConsumerService.js +1 -1
  148. package/src/services/kafkaService.js +1 -1
  149. package/src/services/messagehubService.js +1 -1
  150. package/src/services/rabbitmqService.js +1 -1
  151. package/src/utils/cache-invalidation-registry.js +1 -1
  152. package/src/utils/cache-manager.js +1 -1
  153. package/src/utils/component-engine.js +1 -1
  154. package/src/utils/config-extractor.js +1 -1
  155. package/src/utils/consumerLogger.js +1 -1
  156. package/src/utils/context-builder.js +1 -1
  157. package/src/utils/dashboard-helpers.js +1 -1
  158. package/src/utils/dateHelper.js +1 -1
  159. package/src/utils/datetime-formatter.js +1 -1
  160. package/src/utils/datetime-parser.js +1 -1
  161. package/src/utils/db-bootstrap.js +1 -1
  162. package/src/utils/db-mysql.js +1 -1
  163. package/src/utils/db-oracle.js +1 -1
  164. package/src/utils/db-sqlite.js +1 -1
  165. package/src/utils/db.js +1 -1
  166. package/src/utils/demo-generator.js +1 -1
  167. package/src/utils/excel-generator.js +1 -1
  168. package/src/utils/excel-parser.js +1 -1
  169. package/src/utils/file-watcher.js +1 -1
  170. package/src/utils/id-generator.js +1 -1
  171. package/src/utils/idempotency-manager.js +1 -1
  172. package/src/utils/import-validator.js +1 -1
  173. package/src/utils/license-client.js +1 -1
  174. package/src/utils/lock-manager.js +1 -1
  175. package/src/utils/logger.js +1 -1
  176. package/src/utils/lookup-resolver.js +1 -1
  177. package/src/utils/payload-loader.js +1 -1
  178. package/src/utils/processor-response.js +1 -1
  179. package/src/utils/rabbitmq.js +1 -1
  180. package/src/utils/redis-client.js +1 -1
  181. package/src/utils/redis-helper.js +1 -1
  182. package/src/utils/request-scope.js +1 -1
  183. package/src/utils/security-checks.js +1 -1
  184. package/src/utils/service-resolver.js +1 -1
  185. package/src/utils/shutdown-coordinator.js +1 -1
  186. package/src/utils/trusted-keys.js +1 -1
  187. package/src/utils/upload-handler.js +1 -1
  188. package/src/utils/upsert-builder.js +1 -1
  189. package/src/utils/workflow-hook-executor.js +1 -1
  190. package/generators/metadata/global.json +0 -58
  191. package/generators/metadata/test-mysql-workbench.json +0 -118
  192. package/generators/metadata/test-mysql.json +0 -56
  193. package/generators/metadata/test-oracle-workbench.json +0 -118
  194. package/generators/metadata/test-oracle.json +0 -56
  195. package/generators/metadata/test-pg-workbench.json +0 -118
  196. package/generators/metadata/test-pg.json +0 -56
  197. package/generators/scripts/obfuscate-source.js +0 -356
  198. package/generators/scripts/validate-catalog.js +0 -430
  199. package/generators/scripts/validate-dbschema-catalog.js +0 -708
  200. package/generators/tests/baseline/mysql/mini_inventory_item/src/models/mini-inventory/item.js +0 -944
  201. package/generators/tests/baseline/mysql/mini_inventory_item/src/modules/mini-inventory/item.js +0 -740
  202. package/generators/tests/baseline/mysql/mini_inventory_item/src/modules/mini-inventory.js +0 -336
  203. package/generators/tests/baseline/oracle/mini_inventory_item/src/models/mini-inventory/item.js +0 -1002
  204. package/generators/tests/baseline/oracle/mini_inventory_item/src/modules/mini-inventory/item.js +0 -740
  205. package/generators/tests/baseline/oracle/mini_inventory_item/src/modules/mini-inventory.js +0 -336
  206. package/generators/tests/baseline/postgres/mini_inventory_item/src/models/mini-inventory/item.js +0 -1333
  207. package/generators/tests/baseline/postgres/mini_inventory_item/src/modules/mini-inventory/item.js +0 -1173
  208. package/generators/tests/baseline/postgres/mini_inventory_item/src/modules/mini-inventory.js +0 -496
  209. package/generators/tests/fixtures/payloads/custom-sensitive.json +0 -27
  210. package/generators/tests/fixtures/payloads/dynamic-search-optout.json +0 -23
  211. package/generators/tests/fixtures/payloads/login-with-password.json +0 -22
  212. package/generators/tests/fixtures/payloads/order-process.json +0 -52
  213. package/generators/tests/fixtures/payloads/with-inline-sql.json +0 -26
  214. package/generators/tests/integration-tahap4b/README.md +0 -145
  215. package/generators/tests/integration-tahap4b/run-concurrent.js +0 -77
  216. package/generators/tests/integration-tahap4b/seed.sql +0 -53
  217. package/generators/tests/integration-tahap4b/verify.sql +0 -110
  218. package/generators/tests/unit/cli/create-dashboard.test.js +0 -505
  219. package/generators/tests/unit/cli/create-processor.test.js +0 -319
  220. package/generators/tests/unit/cli/dispatch-dashboard.test.js +0 -149
  221. package/generators/tests/unit/lib/dashboard-generator.test.js +0 -895
  222. package/generators/tests/unit/lib/dashboard-validator.test.js +0 -354
  223. package/generators/tests/unit/lib/dbschema-kit/apply-executor.test.js +0 -437
  224. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-introspect.test.js +0 -393
  225. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-generate-ddl.test.js +0 -104
  226. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-init.test.js +0 -119
  227. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-list.test.js +0 -48
  228. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-migrate.test.js +0 -175
  229. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-validate.test.js +0 -102
  230. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-models.test.js +0 -43
  231. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/all-schemas-listing.js +0 -84
  232. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/connection-error.js +0 -13
  233. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/empty.js +0 -12
  234. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/multi-schema.js +0 -124
  235. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/single-schema-inventory.js +0 -64
  236. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/two-tables.js +0 -66
  237. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/connection-error.js +0 -9
  238. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/partial.js +0 -29
  239. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/rollback.js +0 -26
  240. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/success.js +0 -43
  241. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/multi-schema/audit/events.js +0 -18
  242. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/multi-schema/inventory/products.js +0 -9
  243. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/multi-schema/users.js +0 -8
  244. package/generators/tests/unit/lib/dbschema-kit/connection.test.js +0 -112
  245. package/generators/tests/unit/lib/dbschema-kit/ddl-generator.test.js +0 -205
  246. package/generators/tests/unit/lib/dbschema-kit/define-model.test.js +0 -56
  247. package/generators/tests/unit/lib/dbschema-kit/dialect/index.test.js +0 -46
  248. package/generators/tests/unit/lib/dbschema-kit/dialect/mysql.test.js +0 -126
  249. package/generators/tests/unit/lib/dbschema-kit/dialect/oracle.test.js +0 -126
  250. package/generators/tests/unit/lib/dbschema-kit/dialect/postgres.test.js +0 -131
  251. package/generators/tests/unit/lib/dbschema-kit/dialect/sqlite.test.js +0 -126
  252. package/generators/tests/unit/lib/dbschema-kit/driver-loader.test.js +0 -93
  253. package/generators/tests/unit/lib/dbschema-kit/emitters/create-index.test.js +0 -173
  254. package/generators/tests/unit/lib/dbschema-kit/emitters/create-table.test.js +0 -376
  255. package/generators/tests/unit/lib/dbschema-kit/emitters/drop-table.test.js +0 -78
  256. package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/invalid-dialect.env +0 -6
  257. package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/missing-dialect.env +0 -5
  258. package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/missing-host.env +0 -5
  259. package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/oracle-valid.env +0 -6
  260. package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/postgres-valid.env +0 -7
  261. package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/sqlite-valid.env +0 -2
  262. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/category.js +0 -11
  263. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/item_product.js +0 -11
  264. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/stock_inbound.js +0 -24
  265. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/stock_inbound_item.js +0 -28
  266. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/supplier.js +0 -9
  267. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/warehouse.js +0 -9
  268. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-invalid/orphan.js +0 -17
  269. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/category.js +0 -11
  270. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/item_product.js +0 -11
  271. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/supplier.js +0 -9
  272. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/warehouse.js +0 -9
  273. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/transactions/stock_inbound.js +0 -24
  274. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/transactions/stock_inbound_item.js +0 -28
  275. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/multi-schema/audit/events.js +0 -18
  276. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/multi-schema/inventory/products.js +0 -9
  277. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/multi-schema/public/users.js +0 -9
  278. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-subfolder/extra/category.js +0 -8
  279. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-subfolder/master/category.js +0 -8
  280. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-tablename/bar.js +0 -8
  281. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-tablename/foo.js +0 -8
  282. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/empty-folder/README.md +0 -1
  283. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/invalid-export/plain.js +0 -3
  284. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/invalid-schema/bad.js +0 -6
  285. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/legacy-pattern/legacy.js +0 -12
  286. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-distinct/audit/products.js +0 -9
  287. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-distinct/inventory/products.js +0 -9
  288. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-duplicate/a/products.js +0 -8
  289. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-duplicate/b/products.js +0 -8
  290. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/nested-deep/a/b/c/deep_table.js +0 -8
  291. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/.hidden/ignored.js +0 -7
  292. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/master/category.js +0 -8
  293. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/master/supplier.js +0 -8
  294. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/transactions/stock_inbound.js +0 -8
  295. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/transactions/stock_inbound_item.js +0 -8
  296. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/valid-multiple/category.js +0 -8
  297. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/valid-multiple/item_product.js +0 -9
  298. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/valid-single/category.js +0 -8
  299. package/generators/tests/unit/lib/dbschema-kit/integration.test.js +0 -217
  300. package/generators/tests/unit/lib/dbschema-kit/introspect-mapper.test.js +0 -403
  301. package/generators/tests/unit/lib/dbschema-kit/ir-builder.test.js +0 -390
  302. package/generators/tests/unit/lib/dbschema-kit/loader.test.js +0 -128
  303. package/generators/tests/unit/lib/dbschema-kit/naming.test.js +0 -170
  304. package/generators/tests/unit/lib/dbschema-kit/parser/shorthand-parser.test.js +0 -237
  305. package/generators/tests/unit/lib/dbschema-kit/schema-printer.test.js +0 -251
  306. package/generators/tests/unit/lib/dbschema-kit/statement-modifier.test.js +0 -105
  307. package/generators/tests/unit/lib/dbschema-kit/statement-splitter.test.js +0 -165
  308. package/generators/tests/unit/lib/dbschema-kit/topological-sort.test.js +0 -135
  309. package/generators/tests/unit/lib/dbschema-kit/validator/check-compatibility-validator.test.js +0 -373
  310. package/generators/tests/unit/lib/dbschema-kit/validator/circular-relation-validator.test.js +0 -454
  311. package/generators/tests/unit/lib/dbschema-kit/validator/cross-model-validator.test.js +0 -512
  312. package/generators/tests/unit/lib/dbschema-kit/validator/enhanced-validate-integration.test.js +0 -390
  313. package/generators/tests/unit/lib/dbschema-kit/validator/naming-convention-validator.test.js +0 -306
  314. package/generators/tests/unit/lib/dbschema-kit/validator/schema-validator.test.js +0 -443
  315. package/generators/tests/unit/lib/dbschema-kit/validator/type-compatibility-validator.test.js +0 -440
  316. package/generators/tests/unit/lib/dbschema-kit/validator/validator-reporter.test.js +0 -172
  317. package/generators/tests/unit/lib/metadata-manager-dashboard.test.js +0 -256
  318. package/generators/tests/unit/lib/payload-validator-fieldpolicy.test.js +0 -240
  319. package/generators/tests/unit/lib/processor-validation-generator.test.js +0 -300
  320. package/generators/tests/unit/lib/sensitive-field-masker.test.js +0 -170
  321. package/generators/tests/unit/lib/sql-table-extractor.test.js +0 -119
  322. package/scripts/generate-integrity-manifest.js +0 -124
  323. package/scripts/snapshot-cli-contracts.js +0 -194
  324. package/scripts/verify-publish.js +0 -56
@@ -1 +1 @@
1
- 'use strict';const a0_0x2b1fe8=a0_0x8388;(function(_0x5b8645,_0x33ed23){const _0x391e34=a0_0x8388,_0x31c8d=_0x5b8645();while(!![]){try{const _0x53fc3d=-parseInt(_0x391e34(0x16f))/0x1*(-parseInt(_0x391e34(0x169))/0x2)+parseInt(_0x391e34(0x160))/0x3+parseInt(_0x391e34(0x15e))/0x4+parseInt(_0x391e34(0x15f))/0x5*(parseInt(_0x391e34(0x163))/0x6)+-parseInt(_0x391e34(0x176))/0x7*(-parseInt(_0x391e34(0x177))/0x8)+-parseInt(_0x391e34(0x15c))/0x9*(-parseInt(_0x391e34(0x171))/0xa)+-parseInt(_0x391e34(0x154))/0xb;if(_0x53fc3d===_0x33ed23)break;else _0x31c8d['push'](_0x31c8d['shift']());}catch(_0x52af40){_0x31c8d['push'](_0x31c8d['shift']());}}}(a0_0x3967,0x22500));function a0_0x8388(_0x48af8e,_0x26f63e){_0x48af8e=_0x48af8e-0x152;const _0x39676b=a0_0x3967();let _0x8388fe=_0x39676b[_0x48af8e];if(a0_0x8388['HQuepW']===undefined){var _0x36dff8=function(_0x67504b){const _0x1cdbcb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x19acbc='',_0xbcbb69='';for(let _0x579800=0x0,_0xc7bf7,_0x10d8d6,_0x2b534a=0x0;_0x10d8d6=_0x67504b['charAt'](_0x2b534a++);~_0x10d8d6&&(_0xc7bf7=_0x579800%0x4?_0xc7bf7*0x40+_0x10d8d6:_0x10d8d6,_0x579800++%0x4)?_0x19acbc+=String['fromCharCode'](0xff&_0xc7bf7>>(-0x2*_0x579800&0x6)):0x0){_0x10d8d6=_0x1cdbcb['indexOf'](_0x10d8d6);}for(let _0x47489c=0x0,_0x26aedb=_0x19acbc['length'];_0x47489c<_0x26aedb;_0x47489c++){_0xbcbb69+='%'+('00'+_0x19acbc['charCodeAt'](_0x47489c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xbcbb69);};a0_0x8388['zZYssL']=_0x36dff8,a0_0x8388['rTolBj']={},a0_0x8388['HQuepW']=!![];}const _0x5199fd=_0x39676b[0x0],_0xb70b72=_0x48af8e+_0x5199fd,_0x5bbc6d=a0_0x8388['rTolBj'][_0xb70b72];return!_0x5bbc6d?(_0x8388fe=a0_0x8388['zZYssL'](_0x8388fe),a0_0x8388['rTolBj'][_0xb70b72]=_0x8388fe):_0x8388fe=_0x5bbc6d,_0x8388fe;}const http=require(a0_0x2b1fe8(0x156)),WebSocketBroadcaster=require(a0_0x2b1fe8(0x168)),port=parseInt(process[a0_0x2b1fe8(0x155)][a0_0x2b1fe8(0x167)],0xa),apiKey=process[a0_0x2b1fe8(0x155)][a0_0x2b1fe8(0x165)];!port&&(console[a0_0x2b1fe8(0x172)]('[Live\x20Sync]\x20LIVE_SYNC_PORT\x20is\x20required'),process[a0_0x2b1fe8(0x16b)](0x1));!apiKey&&(console[a0_0x2b1fe8(0x172)]('[Live\x20Sync]\x20KEY\x20(API\x20Key)\x20is\x20required\x20for\x20Live\x20Sync'),process['exit'](0x1));const server=http[a0_0x2b1fe8(0x162)]((_0x3ce748,_0x299681)=>{const _0xf550e3=a0_0x2b1fe8,_0x44f30f={'DfnAd':'/health','awSsP':_0xf550e3(0x15d),'UZDmy':'healthy','FjPaT':'livesync','FORPI':_0xf550e3(0x15a),'Tmalv':'This\x20is\x20the\x20Live\x20Sync\x20WebSocket\x20server'};if(_0x3ce748[_0xf550e3(0x16e)]===_0x44f30f[_0xf550e3(0x158)]&&_0x3ce748[_0xf550e3(0x179)]===_0x44f30f[_0xf550e3(0x17a)]){const _0x230a64=getBroadcaster(),_0x2d03cf=_0x230a64['_wss']?_0x230a64[_0xf550e3(0x159)]['clients'][_0xf550e3(0x164)]:0x0,_0x18d3b5=_0x230a64['_subscriptions']?_0x230a64[_0xf550e3(0x157)]['size']:0x0;_0x299681['writeHead'](0xc8,{'Content-Type':'application/json'}),_0x299681['end'](JSON['stringify']({'status':_0x44f30f['UZDmy'],'service':_0x44f30f['FjPaT'],'port':port,'clients':_0x2d03cf,'channels':_0x18d3b5,'uptime':process['uptime'](),'timestamp':new Date()[_0xf550e3(0x152)]()}));return;}_0x299681[_0xf550e3(0x170)](0x194,{'Content-Type':'application/json'}),_0x299681['end'](JSON[_0xf550e3(0x15b)]({'error':_0x44f30f['FORPI'],'message':_0x44f30f['Tmalv']}));});let broadcaster=null;function getBroadcaster(){return!broadcaster&&(broadcaster=new WebSocketBroadcaster()),broadcaster;}const bc=getBroadcaster();bc['initialize'](server,{'projectName':process[a0_0x2b1fe8(0x155)]['RESTFORGE_PROJECT_NAME']||'unknown','apiKey':apiKey}),server['listen'](port,()=>{const _0x5c40ff=a0_0x2b1fe8,_0x51e3a4={'woWIP':_0x5c40ff(0x178)};console[_0x5c40ff(0x173)](_0x5c40ff(0x166)+port),console[_0x5c40ff(0x173)](_0x5c40ff(0x16a)+port+_0x5c40ff(0x16d)),console[_0x5c40ff(0x173)]('[Live\x20Sync]\x20WebSocket:\x20ws://localhost:'+port+'/ws'),process[_0x5c40ff(0x16c)]&&process['send']({'type':_0x51e3a4['woWIP'],'port':port});});function a0_0x3967(){const _0x5bfb92=['w0XPDMuGu3LUy10GsgvHBhrOignOzwnRoIbODhrWoI8VBg9JywXOB3n0oG','zxHPDa','C2vUza','l2HLywX0Aa','DxjS','nJqZCu9AEgHM','D3jPDgvizwfK','mJbls2zerfe','zxjYB3i','Bg9N','uMHly3O','wNzVte4','nJu4CeTxzg5n','mtK4mtzuqMDHvg4','BgL2zxn5BMmTCMvHzhK','Bwv0Ag9K','yxDtC1a','u0Lhvevstq','Dg9ju09tDhjPBMC','C2H1DgrVD24','otK2odm4n0LQEuDlrq','zw52','Ahr0Ca','x3n1yNnJCMLWDgLVBNm','rgzUqwq','x3DZCW','tM90iezVDw5K','C3rYAw5NAwz5','mteWndy0mMDtCgL0sW','r0vu','nta3mZu2wNnJCMPA','nvPuz1PjtG','mZK0ote0vwHpzvru','w0XPDMuGu3LUy10G','y3jLyxrLu2vYDMvY','nZCXody0shbts3LJ','C2L6zq','s0vz','w0XPDMuGu3LUy10Gv2vIu29JA2v0ihnLCNzLCIbSAxn0zw5PBMCGB24GCg9YDca','teLwrv9twu5dx1bpuLq','lI93CY1ICM9HzgnHC3rLCG','nty0B01dzMvz'];a0_0x3967=function(){return _0x5bfb92;};return a0_0x3967();}function shutdown(_0xf8e6de){const _0xc7cbb8=a0_0x2b1fe8,_0x402c00={'RhKcz':'[Live\x20Sync]\x20Server\x20closed','ZvoLN':'[Live\x20Sync]\x20Forced\x20shutdown\x20after\x20timeout'};console[_0xc7cbb8(0x173)](_0xc7cbb8(0x161)+_0xf8e6de+'\x20received,\x20shutting\x20down...'),bc[_0xc7cbb8(0x153)](),server['close'](()=>{const _0x928349=_0xc7cbb8;console[_0x928349(0x173)](_0x402c00[_0x928349(0x174)]),process[_0x928349(0x16b)](0x0);}),setTimeout(()=>{const _0x403eff=_0xc7cbb8;console['error'](_0x402c00[_0x403eff(0x175)]),process[_0x403eff(0x16b)](0x1);},0x1388);}process['on']('SIGINT',()=>shutdown('SIGINT')),process['on'](a0_0x2b1fe8(0x17b),()=>shutdown('SIGTERM')),process['on']('uncaughtException',_0x1ba831=>{console['error']('[Live\x20Sync]\x20Uncaught\x20Exception:',_0x1ba831['message']),shutdown('uncaughtException');}),process['on']('unhandledRejection',_0x9302f1=>{const _0x57830a=a0_0x2b1fe8;console[_0x57830a(0x172)]('[Live\x20Sync]\x20Unhandled\x20Rejection:',_0x9302f1);});
1
+ 'use strict';const a0_0x5ae3b1=a0_0xe451;(function(_0x5151d4,_0x4555a2){const _0x4d9ffa=a0_0xe451,_0x1be75e=_0x5151d4();while(!![]){try{const _0x196b40=parseInt(_0x4d9ffa(0xe5))/0x1+-parseInt(_0x4d9ffa(0xfe))/0x2+-parseInt(_0x4d9ffa(0xe7))/0x3*(parseInt(_0x4d9ffa(0xf0))/0x4)+parseInt(_0x4d9ffa(0xec))/0x5+parseInt(_0x4d9ffa(0x100))/0x6+-parseInt(_0x4d9ffa(0xf3))/0x7+parseInt(_0x4d9ffa(0xdd))/0x8;if(_0x196b40===_0x4555a2)break;else _0x1be75e['push'](_0x1be75e['shift']());}catch(_0x49cad3){_0x1be75e['push'](_0x1be75e['shift']());}}}(a0_0xb7c2,0x859d0));function a0_0xb7c2(){const _0x246bb2=['x3n1yNnJCMLWDgLVBNm','y2XVC2u','zxHPDa','zxjYB3i','Dw5JyxvNAhrfEgnLChrPB24','ndeYmdy2tenuA1fb','Dg9ju09tDhjPBMC','nZvmrunPwMW','Agvnuw8','Bg9N','y2XPzw50CW','rM1UuwK','mZC3oda4nu5YB2zQCW','x3DZCW','w0XPDMuGu3LUy10GteLwrv9twu5dx1bpuLqGAxmGCMvXDwLYzwq','zw5K','mtqWndyWs1Heq1vr','u0Lhsu5u','Bwv0Ag9K','ntGZmdq0n25Qr0XzEq','AgvHBhrOEq','BgLZDgvU','D3jPDgvizwfK','w0XPDMuGu3LUy10GrM9Yy2vKihnODxrKB3DUigfMDgvYihrPBwvVDxq','u0Lhvevstq','l3DZ','C3rYAw5NAwz5','w0XPDMuGu3LUy10Gv2vIu29JA2v0ihnLCNzLCIbSAxn0zw5PBMCGB24GCg9YDca','txPUww4','w0XPDMuGu3LUy10Gv2vIu29JA2v0oIb3CZOVl2XVy2fSAg9ZDdO','mtq2mJy0mNjNzxDPyW','Aw5PDgLHBgL6zq','mtK4mta5ogTOA0PbAW','w0XPDMuGu3LUy10GsgvHBhrOignOzwnRoIbODhrWoI8VBg9JywXOB3n0oG','zKLrqwO','DxjS','DeDiAKq','teLwrv9twu5dx1bpuLq','mte5mZiYndH0qLrPzfG','ihjLy2vPDMvKlcbZAhv0DgLUzYbKB3DUlI4U','BgL2zxn5BMmTCMvHzhK'];a0_0xb7c2=function(){return _0x246bb2;};return a0_0xb7c2();}function a0_0xe451(_0x31155b,_0x2c9c02){_0x31155b=_0x31155b-0xd8;const _0xb7c228=a0_0xb7c2();let _0xe451f1=_0xb7c228[_0x31155b];if(a0_0xe451['GhdhPO']===undefined){var _0x393729=function(_0x4057da){const _0x50fe33='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x48b7c4='',_0x511163='';for(let _0x49c9b0=0x0,_0x29ba79,_0x499d27,_0xc21950=0x0;_0x499d27=_0x4057da['charAt'](_0xc21950++);~_0x499d27&&(_0x29ba79=_0x49c9b0%0x4?_0x29ba79*0x40+_0x499d27:_0x499d27,_0x49c9b0++%0x4)?_0x48b7c4+=String['fromCharCode'](0xff&_0x29ba79>>(-0x2*_0x49c9b0&0x6)):0x0){_0x499d27=_0x50fe33['indexOf'](_0x499d27);}for(let _0x5e5d4a=0x0,_0x1da0bb=_0x48b7c4['length'];_0x5e5d4a<_0x1da0bb;_0x5e5d4a++){_0x511163+='%'+('00'+_0x48b7c4['charCodeAt'](_0x5e5d4a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x511163);};a0_0xe451['NxQDQE']=_0x393729,a0_0xe451['PueBvZ']={},a0_0xe451['GhdhPO']=!![];}const _0x3aea7e=_0xb7c228[0x0],_0xf306b1=_0x31155b+_0x3aea7e,_0x28bca8=a0_0xe451['PueBvZ'][_0xf306b1];return!_0x28bca8?(_0xe451f1=a0_0xe451['NxQDQE'](_0xe451f1),a0_0xe451['PueBvZ'][_0xf306b1]=_0xe451f1):_0xe451f1=_0x28bca8,_0xe451f1;}const http=require('http'),WebSocketBroadcaster=require('./ws-broadcaster'),port=parseInt(process['env'][a0_0x5ae3b1(0xdc)],0xa),apiKey=process['env']['KEY'];!port&&(console['error'](a0_0x5ae3b1(0xee)),process['exit'](0x1));!apiKey&&(console[a0_0x5ae3b1(0xe3)]('[Live\x20Sync]\x20KEY\x20(API\x20Key)\x20is\x20required\x20for\x20Live\x20Sync'),process[a0_0x5ae3b1(0xe2)](0x1));const server=http['createServer']((_0x357c8a,_0x1148d5)=>{const _0x4ebbec=a0_0x5ae3b1,_0xe1513b={'GGykO':function(_0x10f770,_0x45afa0){return _0x10f770===_0x45afa0;},'fvXoF':'GET','fIQAj':function(_0x4f1086){return _0x4f1086();},'Odobw':'livesync','MznYn':'This\x20is\x20the\x20Live\x20Sync\x20WebSocket\x20server'};if(_0x357c8a[_0x4ebbec(0xda)]==='/health'&&_0xe1513b['GGykO'](_0x357c8a[_0x4ebbec(0xf2)],_0xe1513b['fvXoF'])){const _0x947893=_0xe1513b[_0x4ebbec(0xd9)](getBroadcaster),_0x2591c4=_0x947893['_wss']?_0x947893[_0x4ebbec(0xed)][_0x4ebbec(0xea)]['size']:0x0,_0x4323bf=_0x947893[_0x4ebbec(0xe0)]?_0x947893['_subscriptions']['size']:0x0;_0x1148d5[_0x4ebbec(0xf6)](0xc8,{'Content-Type':'application/json'}),_0x1148d5[_0x4ebbec(0xef)](JSON['stringify']({'status':_0x4ebbec(0xf4),'service':_0xe1513b['Odobw'],'port':port,'clients':_0x2591c4,'channels':_0x4323bf,'uptime':process['uptime'](),'timestamp':new Date()[_0x4ebbec(0xe6)]()}));return;}_0x1148d5[_0x4ebbec(0xf6)](0x194,{'Content-Type':'application/json'}),_0x1148d5['end'](JSON[_0x4ebbec(0xfa)]({'error':'Not\x20Found','message':_0xe1513b[_0x4ebbec(0xfc)]}));});let broadcaster=null;function getBroadcaster(){return!broadcaster&&(broadcaster=new WebSocketBroadcaster()),broadcaster;}const bc=getBroadcaster();bc[a0_0x5ae3b1(0xff)](server,{'projectName':process['env']['RESTFORGE_PROJECT_NAME']||'unknown','apiKey':apiKey}),server[a0_0x5ae3b1(0xf5)](port,()=>{const _0xc14cf0=a0_0x5ae3b1;console['log'](_0xc14cf0(0xfb)+port),console['log'](_0xc14cf0(0xd8)+port+'/health'),console[_0xc14cf0(0xe9)](_0xc14cf0(0xfd)+port+_0xc14cf0(0xf9)),process['send']&&process['send']({'type':_0xc14cf0(0xdf),'port':port});});function shutdown(_0x16910f){const _0x37dba1=a0_0x5ae3b1,_0x254773={'tGHjD':function(_0x4272b2,_0x47362a,_0x287b8d){return _0x4272b2(_0x47362a,_0x287b8d);}};console[_0x37dba1(0xe9)]('[Live\x20Sync]\x20'+_0x16910f+_0x37dba1(0xde)),bc['shutdown'](),server[_0x37dba1(0xe1)](()=>{const _0x5d75c6=_0x37dba1;console[_0x5d75c6(0xe9)]('[Live\x20Sync]\x20Server\x20closed'),process[_0x5d75c6(0xe2)](0x0);}),_0x254773[_0x37dba1(0xdb)](setTimeout,()=>{const _0xd30402=_0x37dba1;console['error'](_0xd30402(0xf7)),process['exit'](0x1);},0x1388);}process['on'](a0_0x5ae3b1(0xf1),()=>shutdown('SIGINT')),process['on'](a0_0x5ae3b1(0xf8),()=>shutdown(a0_0x5ae3b1(0xf8))),process['on'](a0_0x5ae3b1(0xe4),_0x20d2a8=>{const _0x5360ba=a0_0x5ae3b1,_0x376d6d={'FmnQi':function(_0x25a97c,_0x2d6949){return _0x25a97c(_0x2d6949);}};console[_0x5360ba(0xe3)]('[Live\x20Sync]\x20Uncaught\x20Exception:',_0x20d2a8['message']),_0x376d6d[_0x5360ba(0xeb)](shutdown,_0x5360ba(0xe4));}),process['on']('unhandledRejection',_0x2513af=>{const _0x37790f=a0_0x5ae3b1,_0x538973={'heMQo':'[Live\x20Sync]\x20Unhandled\x20Rejection:'};console[_0x37790f(0xe3)](_0x538973[_0x37790f(0xe8)],_0x2513af);});
@@ -1 +1 @@
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
+ 'use strict';function a0_0x17b6(){const _0x220a56=['C3bSAxq','C2zTA3y','q2XPzw50ihn1yNnJCMLIzwqGDg86ia','BwvZC2fNzq','y2fSBa','rMfPBgvKihrVignVBM5Ly3qGuMvKAxmGC3vIC2nYAwjLCIbMB3iGtgL2zsbtEw5JignSDxn0zxiGBw9Kzq','z2v0q2XPzw50','DgHLBG','zKf4AhC','y2f0y2G','Ahr0CdOVlW','DMnWyuS','BvjWzLa','y29UBMvJDgLVBG','z2v0','mtm5mdG1ne5pv2vZEq','Dw5ZDwjZy3jPyMvK','tgL2zsbtEw5JifjLzgLZihn1yNnJCMLIzxiGywn0AxzLigzVCIbJBhvZDgvYig1Vzgu','yNjVywrJyxn0','B1nACuu','AxnjBML0AwfSAxPLza','rgfLAfq','tgL2zsbtEw5JignSAwvUDcbJB25Uzwn0zwqGzNjVBsa','x3nLDhvWuMvKAxm','CMvZDgzVCMDLoMXPDMvZEw5JoG','CMvHzhLtDgf0zq','mtm3mJK1wNv2uMjU','C29JA2v0','x2LUAxrPywXPEMvK','y2XLyxi','vuvNvNG','AgfZ','Ee1QqwC','BgL2zxn5BMnFAw5PDgLHBgL6zwq','BgL2zxn5BMnFC3vIC2nYAwjL','l3DZ','Dg9ju09tDhjPBMC','x2XVz2DLCG','C3rHCNrZv2L0Aa','mtaZntC2oufvvvjNsq','AgX5wMm','AxnbBgL2zq','mJi1mJu2rwH6BefI','x2HHBMrSzvvUC3vIC2nYAwjL','ntmWmtaZmMjZDNrtrG','x2HLyxj0yMvHDfrPBwvY','y29UBMvJDa','BgL2zxn5BMnFC2H1DgrVD24','tgL2zsbtEw5Jia','zw52','CMvTB3rLqwrKCMvZCW','BgvUz3rO','lI4VlI4VDxrPBhmVCMvKAxmTy2XPzw50','BgL2zxn5BMnFy2XPzw50x2rPC2nVBM5Ly3rLza','x2HHBMrSzvn1yNnJCMLIzq','zxjYB3i','x2jYB2fKy2fZDeXVy2fS','zgf0yv9JAgfUz2u','uKvesvnFue9sva','qLbwtw4','mNW1Fdn8mhW2Fdf8na','AgvHzgvYCW','uKvesvnFse9tva','C3vIC2nYAwjLza','x3DZCW','ihrVia','Aw5PDgLHBgL6zq','C2vHCMnOugfYyw1Z','Ec1HCgKTA2v5','u3fhwMG','ChvIBgLZAgvY','x3nLBMruB0nSAwvUDa','y2XPzw50CW','BgL2zxn5BMnFCMvKAxnFDw5HDMfPBgfIBgu','zNvSBa','x21Vzgu','D0jwzgC','C3vIC2nYAwjL','rMfPBgvKihrVihn1yNnJCMLIzsb0BYbszwrPCYbJAgfUBMvSoIa','zgvSzxrL','C2L6zq','C2vUza','Bg9Nz2vY','DxbNCMfKzq','Dw5ZDwjZy3jPyMu','x3jLBw92zunSAwvUDezYB21bBgXdAgfUBMvSCW','Aw5PDgLHBgL6zufZuhvIBgLZAgvY','AffIq00','x293BLb1yMXPC2HLCG','x3jLzgLZuhvIBgLZAgvY','x3n1yNnJCMLWDgLVBNm','BgL2zxn5BMnFD3nZx2vYCM9Y','mti3lJaUmc4X','BgL2zxn5BMnFCMvKAxnFC3vIC2nYAwjLx2vYCM9Y','Bg9JywXOB3n0','x3n0yxj0sgvHCNrIzwf0','D2fYBG','x3jLzgLZu3vIC2nYAwjLCG','ntK0ugnksLnJ','CMvTB3zLqwXStgLZDgvUzxjZ','Aw5MBW','yxbPs2v5','y2zjsNG','x3nLDhvWuMvKAxnqDwjSAxnOzxi','zgf0yq','nJy4otKWmfzxEMrHrW','vw5RBM93BIbTzxnZywDLihr5Cgu6ia','DxjS','C3vIC2nYAwjLzenOyw5UzwXZ','CgLUzW','tgL2zsbtEw5JignSAwvUDcbKAxnJB25Uzwn0zwq6ia','C2XPy2u','ywn0Aw9U','BgL2zxn5BMnFy2XPzw50x2nVBM5Ly3rLza','x29WDgLVBNm','Ag9ZDa','C3rYAw5NAwz5','D29YA2vYswq','BgLZDgvUzxjZ','rfj1Chu','x3nLDhvWvxbNCMfKzuf1DgG','rMfPBgvKihrVignVBM5Ly3qGuMvKAxmGChvIBgLZAgvYigzVCIbmAxzLifn5BMm','uKvesvnFueftu1DpuKq','zgvIDwC','v2vIu29JA2v0ignSAwvUDcbLCNjVCJOG','uMvKAxmGBM90igf2ywLSywjSzsbMB3iGtgL2zsbtEw5JignSDxn0zxiGBw9KztOG','y2HHBM5LBhmGBxvZDcbIzsbHig5VBI1LBxb0EsbHCNjHEq','mMvSzKHRBq','Aw9YzwrPCW','zLPmBum','DhLWzq','quTPENm','uMvKAxmGBM90igf2ywLSywjSzsbMB3iGtgL2zsbtEw5Jihb1yMXPC2HLCJOG','ugr0se4','otiZmtaZm05tz1rhEG','C2v0','lI4VlI4VDxrPBhmVBg9Nz2vY'];a0_0x17b6=function(){return _0x220a56;};return a0_0x17b6();}const a0_0x30b72c=a0_0x3193;(function(_0x6d1000,_0x1d5493){const _0x1094ff=a0_0x3193,_0x361a36=_0x6d1000();while(!![]){try{const _0x4824e8=parseInt(_0x1094ff(0x171))/0x1*(parseInt(_0x1094ff(0x1c9))/0x2)+-parseInt(_0x1094ff(0x164))/0x3+parseInt(_0x1094ff(0x176))/0x4+parseInt(_0x1094ff(0x1b3))/0x5+parseInt(_0x1094ff(0x159))/0x6+-parseInt(_0x1094ff(0x1d0))/0x7+-parseInt(_0x1094ff(0x174))/0x8*(parseInt(_0x1094ff(0x1ac))/0x9);if(_0x4824e8===_0x1d5493)break;else _0x361a36['push'](_0x361a36['shift']());}catch(_0xbaaaa7){_0x361a36['push'](_0x361a36['shift']());}}}(a0_0x17b6,0xacd82));function a0_0x3193(_0x4351a5,_0x131d45){_0x4351a5=_0x4351a5-0x151;const _0x17b6c3=a0_0x17b6();let _0x319308=_0x17b6c3[_0x4351a5];if(a0_0x3193['vfZtev']===undefined){var _0xcd9476=function(_0x1796d0){const _0x3b2553='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x27dc59='',_0x5d8cd0='';for(let _0x4b1ffb=0x0,_0x52fdb5,_0x376381,_0x52219b=0x0;_0x376381=_0x1796d0['charAt'](_0x52219b++);~_0x376381&&(_0x52fdb5=_0x4b1ffb%0x4?_0x52fdb5*0x40+_0x376381:_0x376381,_0x4b1ffb++%0x4)?_0x27dc59+=String['fromCharCode'](0xff&_0x52fdb5>>(-0x2*_0x4b1ffb&0x6)):0x0){_0x376381=_0x3b2553['indexOf'](_0x376381);}for(let _0x7efad=0x0,_0x282d5d=_0x27dc59['length'];_0x7efad<_0x282d5d;_0x7efad++){_0x5d8cd0+='%'+('00'+_0x27dc59['charCodeAt'](_0x7efad)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5d8cd0);};a0_0x3193['afgYjv']=_0xcd9476,a0_0x3193['jwKBRw']={},a0_0x3193['vfZtev']=!![];}const _0x399139=_0x17b6c3[0x0],_0x67ace1=_0x4351a5+_0x399139,_0x15db8c=a0_0x3193['jwKBRw'][_0x67ace1];return!_0x15db8c?(_0x319308=a0_0x3193['afgYjv'](_0x319308),a0_0x3193['jwKBRw'][_0x67ace1]=_0x319308):_0x319308=_0x15db8c,_0x319308;}const {WebSocketServer}=require('ws'),{URL}=require('url'),REDIS_CHANNEL_PREFIX=a0_0x30b72c(0x162);class WebSocketBroadcaster{constructor(){const _0x32f7a1=a0_0x30b72c,_0x2febc8='8|3|1|2|6|5|7|0|4|9'['split']('|');let _0x1a0e2a=0x0;while(!![]){switch(_0x2febc8[_0x1a0e2a++]){case'0':this[_0x32f7a1(0x1a3)]=null;continue;case'1':this['_mode']=null;continue;case'2':this[_0x32f7a1(0x1bc)]={};continue;case'3':this['_initialized']=![];continue;case'4':this[_0x32f7a1(0x1ab)]=null;continue;case'5':this['_subscriptions']=new Map();continue;case'6':this[_0x32f7a1(0x16f)]=console;continue;case'7':this[_0x32f7a1(0x177)]=null;continue;case'8':this['_wss']=null;continue;case'9':this['_workerId']=process['pid'];continue;}break;}}[a0_0x30b72c(0x18c)](_0x4d2377,_0x5ecf7d={}){const _0x49f641=a0_0x30b72c,_0x1e51fd={'gLrFj':_0x49f641(0x194),'HiZvJ':_0x49f641(0x1d2),'Irxmj':function(_0x4b5652,_0x1ac8d9,_0x49a95b){return _0x4b5652(_0x1ac8d9,_0x49a95b);},'mJAtl':_0x49f641(0x181)};if(this['_initialized'])return;this[_0x49f641(0x1bc)]=_0x5ecf7d,this[_0x49f641(0x195)]=_0x1e51fd['gLrFj'];try{this[_0x49f641(0x16f)]=require(_0x1e51fd['HiZvJ'])['logger']||console;}catch(_0x2c21fe){this['_logger']=console;}const _0x37b1af=_0x1e51fd['Irxmj'](parseInt,process['env']['LIVE_SYNC_HEARTBEAT_INTERVAL'],0xa)||0x1e;this['_wss']=new WebSocketServer({'server':_0x4d2377,'path':_0x49f641(0x16d)}),this[_0x49f641(0x1c2)](_0x4d2377),this[_0x49f641(0x18a)]['on']('connection',(_0x4a427b,_0x590586)=>this['_handleConnection'](_0x4a427b,_0x590586)),this['_wss']['on'](_0x1e51fd['mJAtl'],_0x3583e6=>{const _0x188ff8=_0x49f641;this['_logger']['error']({'event':_0x188ff8(0x1a5),'error':_0x3583e6['message']},'WebSocket\x20server\x20error:\x20'+_0x3583e6[_0x188ff8(0x1d6)]);}),this['_startHeartbeat'](_0x37b1af),this['_setupRedis'](),this[_0x49f641(0x166)]=!![],this['_logger'][_0x49f641(0x1ae)]({'event':_0x49f641(0x16b),'mode':_0x49f641(0x194),'path':_0x49f641(0x16d),'heartbeat':_0x37b1af+'s'},'Live\x20Sync\x20server\x20initialized\x20at\x20/ws\x20(heartbeat:\x20'+_0x37b1af+'s)');}[a0_0x30b72c(0x1a0)](_0x55cf1f={}){const _0x4420e2=a0_0x30b72c,_0x24ae65={'mPuzR':_0x4420e2(0x1d2),'QjNeY':'livesync_publisher_initialized','fAxhw':'publisher'},_0x3733d5=_0x4420e2(0x186)[_0x4420e2(0x1d3)]('|');let _0x148c85=0x0;while(!![]){switch(_0x3733d5[_0x148c85++]){case'0':try{this['_logger']=require(_0x24ae65['mPuzR'])[_0x4420e2(0x19c)]||console;}catch(_0x11d3ee){this[_0x4420e2(0x16f)]=console;}continue;case'1':this['_initialized']=!![];continue;case'2':if(this['_initialized'])return;continue;case'3':this[_0x4420e2(0x195)]=_0x4420e2(0x190);continue;case'4':this['_logger'][_0x4420e2(0x1ae)]({'event':_0x24ae65['QjNeY'],'mode':_0x24ae65[_0x4420e2(0x152)]},'Live\x20Sync\x20publisher\x20initialized\x20(Redis-only,\x20no\x20WebSocket\x20server)');continue;case'5':this['_options']=_0x55cf1f;continue;case'6':this[_0x4420e2(0x1b1)]();continue;}break;}}[a0_0x30b72c(0x15e)](){return this['_initialized'];}['broadcast'](_0x1332d6,_0x40d816){const _0x705d24=a0_0x30b72c,_0x3ebec7={'zjyCE':'publisher','hlyZc':'data_change','oSZqE':function(_0x4499e8,_0x26da33){return _0x4499e8===_0x26da33;},'hQbCM':function(_0x1ed33c,_0x2dc00a){return _0x1ed33c||_0x2dc00a;},'RcMDs':'livesync_broadcast'};if(!this['_initialized'])return;if(this[_0x705d24(0x195)]===_0x3ebec7['zjyCE']){this['_publishToRedis'](_0x1332d6,_0x40d816);return;}const _0x1ba113=JSON[_0x705d24(0x1be)]({'type':_0x3ebec7[_0x705d24(0x172)],'channel':_0x1332d6,'action':_0x40d816['action'],'data':_0x40d816['data'],'requestId':_0x40d816['requestId']||null,'timestamp':new Date()[_0x705d24(0x16e)]()}),[_0x48744a]=_0x1332d6[_0x705d24(0x1d3)](':');let _0x4be486=0x0;for(const [_0x51c6bc,_0x5693ee]of this['_subscriptions']){const _0x237fbd=_0x51c6bc===_0x1332d6,_0x806d4c=_0x3ebec7[_0x705d24(0x15d)](_0x51c6bc,_0x48744a+':*');if(_0x3ebec7[_0x705d24(0x1a1)](_0x237fbd,_0x806d4c))for(const _0x559f98 of _0x5693ee){if(_0x559f98[_0x705d24(0x163)]===0x1)try{_0x559f98[_0x705d24(0x19b)](_0x1ba113),_0x4be486++;}catch(_0xf5e6a8){}}}_0x4be486>0x0&&this[_0x705d24(0x16f)][_0x705d24(0x1c5)]({'event':_0x3ebec7['RcMDs'],'channel':_0x1332d6,'action':_0x40d816[_0x705d24(0x1ba)],'clients':_0x4be486},'Broadcast\x20'+_0x40d816[_0x705d24(0x1ba)]+'\x20on\x20'+_0x1332d6+_0x705d24(0x18b)+_0x4be486+'\x20client(s)');}['_publishToRedis'](_0x1e07d5,_0x1406da){const _0x2253f9=a0_0x30b72c;if(!this['_redisPublisher'])return;const _0xf79234=JSON['stringify']({'channel':_0x1e07d5,'message':_0x1406da,'workerId':this['_workerId']});this[_0x2253f9(0x1a3)]['publish'](REDIS_CHANNEL_PREFIX+_0x2253f9(0x15c),_0xf79234)['catch'](()=>{});}['shutdown'](){const _0x334239=a0_0x30b72c,_0x108bcd={'fZLmC':function(_0x3a3938,_0x507d84){return _0x3a3938(_0x507d84);}};if(!this['_initialized'])return;this[_0x334239(0x177)]&&(_0x108bcd[_0x334239(0x1cb)](clearInterval,this[_0x334239(0x177)]),this[_0x334239(0x177)]=null);if(this['_wss']){for(const _0x3a4604 of this['_wss'][_0x334239(0x192)]){try{_0x3a4604['close'](0x3e9,'Server\x20shutting\x20down');}catch(_0x5c4e5b){}}this['_wss']['close']();}if(this['_redisSubscriber'])try{this[_0x334239(0x1ab)][_0x334239(0x19e)](),this[_0x334239(0x1ab)]['quit']();}catch(_0x13d197){}if(this['_ownPublisher']&&this['_redisPublisher'])try{this[_0x334239(0x1a3)]['quit']();}catch(_0xa99ea9){}this['_subscriptions'][_0x334239(0x167)](),this[_0x334239(0x166)]=![],this['_logger']['info']({'event':_0x334239(0x179),'mode':this['_mode']},_0x334239(0x17a)+this[_0x334239(0x195)]+'\x20shut\x20down');}['_setupUpgradeAuth'](_0x52f588){const _0x1fe6b6=a0_0x30b72c,_0x4297bf={'SqGZh':_0x1fe6b6(0x157),'ObCRV':'/ws','mRpfP':_0x1fe6b6(0x18e)},_0x2e7bc7=_0x52f588[_0x1fe6b6(0x1c0)](_0x1fe6b6(0x19d))[_0x1fe6b6(0x1b9)]();_0x52f588[_0x1fe6b6(0x1ad)](_0x1fe6b6(0x19d)),_0x52f588['on'](_0x1fe6b6(0x19d),(_0x4eb919,_0x3b4fe0,_0x58ebe3)=>{const _0x1ddb7d=_0x1fe6b6,_0x3e1bad={'uPPaG':_0x4297bf[_0x1ddb7d(0x18f)]};if(!_0x4eb919[_0x1ddb7d(0x1b5)]||!_0x4eb919[_0x1ddb7d(0x1b5)][_0x1ddb7d(0x170)](_0x4297bf['ObCRV'])){for(const _0x4da010 of _0x2e7bc7){_0x4da010[_0x1ddb7d(0x1d7)](_0x52f588,_0x4eb919,_0x3b4fe0,_0x58ebe3);}return;}if(this[_0x1ddb7d(0x1bc)][_0x1ddb7d(0x1af)]){const _0x564d8f=new URL(_0x4eb919[_0x1ddb7d(0x1b5)],_0x1ddb7d(0x154)+(_0x4eb919['headers'][_0x1ddb7d(0x1bd)]||_0x1ddb7d(0x1a8))),_0x1aeed9=_0x564d8f[_0x1ddb7d(0x18d)][_0x1ddb7d(0x158)](_0x4297bf[_0x1ddb7d(0x156)])||_0x4eb919['headers']['x-api-key'];if(!_0x1aeed9||_0x1aeed9!==this[_0x1ddb7d(0x1bc)]['apiKey']){_0x3b4fe0['write']('HTTP/1.1\x20401\x20Unauthorized\x0d\x0a\x0d\x0a'),_0x3b4fe0['destroy']();return;}}this[_0x1ddb7d(0x18a)]['handleUpgrade'](_0x4eb919,_0x3b4fe0,_0x58ebe3,_0x28ef84=>{this['_wss']['emit'](_0x3e1bad['uPPaG'],_0x28ef84,_0x4eb919);});});}['_handleConnection'](_0xd46eaa,_0x3f9d53){const _0x4df493=a0_0x30b72c,_0x2db860={'wBVdg':'livesync_client_error','BPVMn':_0x4df493(0x1bb),'VsfKC':'pong','aSIwe':'close','DaehT':_0x4df493(0x181)};_0xd46eaa[_0x4df493(0x173)]=!![],_0xd46eaa['subscribedChannels']=new Set();const _0x3029b3=_0x3f9d53[_0x4df493(0x187)]['x-forwarded-for']||_0x3f9d53[_0x4df493(0x165)][_0x4df493(0x17c)];this['_logger']['info']({'event':_0x2db860[_0x4df493(0x185)],'ip':_0x3029b3},_0x4df493(0x160)+_0x3029b3),_0xd46eaa['on'](_0x2db860['VsfKC'],()=>{_0xd46eaa['isAlive']=!![];}),_0xd46eaa['on']('message',_0x504c62=>{const _0x503dfa=_0x4df493;try{const _0xe1ace8=JSON['parse'](_0x504c62['toString']());this['_handleClientMessage'](_0xd46eaa,_0xe1ace8);}catch(_0x716bbd){this[_0x503dfa(0x191)](_0xd46eaa,{'type':_0x503dfa(0x181),'message':'Invalid\x20JSON\x20message'});}}),_0xd46eaa['on'](_0x2db860['aSIwe'],()=>{const _0x2ba78a=_0x4df493;this['_removeClientFromAllChannels'](_0xd46eaa),this[_0x2ba78a(0x16f)]['debug']({'event':_0x2ba78a(0x17f),'ip':_0x3029b3},_0x2ba78a(0x1b8)+_0x3029b3);}),_0xd46eaa['on'](_0x2db860[_0x4df493(0x15f)],_0x5c4d18=>{const _0x19cba0=_0x4df493;this['_logger'][_0x19cba0(0x1aa)]({'event':_0x2db860[_0x19cba0(0x196)],'error':_0x5c4d18['message']},_0x19cba0(0x1c6)+_0x5c4d18['message']),this['_removeClientFromAllChannels'](_0xd46eaa);});}['_handleClientMessage'](_0x5b620d,_0x48a11b){const _0xd91cad=a0_0x30b72c,_0x3cc831={'PdtHN':'subscribe','vcpaK':'unsubscribe'};switch(_0x48a11b[_0xd91cad(0x1cc)]){case _0x3cc831[_0xd91cad(0x1cf)]:this[_0xd91cad(0x180)](_0x5b620d,_0x48a11b['channels']);break;case _0x3cc831[_0xd91cad(0x155)]:this[_0xd91cad(0x175)](_0x5b620d,_0x48a11b['channels']);break;case'pong':_0x5b620d['isAlive']=!![];break;default:this['_sendToClient'](_0x5b620d,{'type':_0xd91cad(0x181),'message':_0xd91cad(0x1b4)+_0x48a11b[_0xd91cad(0x1cc)]});}}['_handleSubscribe'](_0x2c0519,_0x28e847){const _0x14042a=a0_0x30b72c,_0x512aa9={'xMjAg':'error','tIvog':function(_0x5b6f82,_0x3a2ed0){return _0x5b6f82!==_0x3a2ed0;},'qWIRS':'string','aFYJB':function(_0x2f7966,_0xbc7b36){return _0x2f7966>_0xbc7b36;},'SbJNH':_0x14042a(0x189)};if(!Array['isArray'](_0x28e847)||_0x28e847['length']===0x0){this[_0x14042a(0x191)](_0x2c0519,{'type':_0x512aa9[_0x14042a(0x16a)],'message':_0x14042a(0x1c8)});return;}const _0x484bd3=[];for(const _0x657a18 of _0x28e847){if(_0x512aa9['tIvog'](typeof _0x657a18,_0x512aa9['qWIRS'])||!_0x657a18['includes'](':'))continue;!this[_0x14042a(0x1a4)][_0x14042a(0x169)](_0x657a18)&&this[_0x14042a(0x1a4)][_0x14042a(0x1d1)](_0x657a18,new Set()),this['_subscriptions'][_0x14042a(0x158)](_0x657a18)['add'](_0x2c0519),_0x2c0519['subscribedChannels']['add'](_0x657a18),_0x484bd3['push'](_0x657a18);}_0x512aa9['aFYJB'](_0x484bd3[_0x14042a(0x17d)],0x0)&&(this[_0x14042a(0x191)](_0x2c0519,{'type':_0x512aa9['SbJNH'],'channels':_0x484bd3,'timestamp':new Date()['toISOString']()}),this[_0x14042a(0x16f)][_0x14042a(0x1c5)]({'event':_0x14042a(0x16c),'channels':_0x484bd3},_0x14042a(0x1d5)+_0x484bd3['join'](',\x20')));}[a0_0x30b72c(0x175)](_0x535fd7,_0x2f5a56){const _0x17f23d=a0_0x30b72c,_0x19b1a5={'DRupu':function(_0x1087f1,_0x15078b){return _0x1087f1>_0x15078b;}};if(!Array['isArray'](_0x2f5a56))return;const _0x228fba=[];for(const _0x3758c1 of _0x2f5a56){this['_subscriptions']['has'](_0x3758c1)&&(this[_0x17f23d(0x1a4)][_0x17f23d(0x158)](_0x3758c1)[_0x17f23d(0x199)](_0x535fd7),this['_subscriptions'][_0x17f23d(0x158)](_0x3758c1)['size']===0x0&&this[_0x17f23d(0x1a4)][_0x17f23d(0x199)](_0x3758c1)),_0x535fd7['subscribedChannels'][_0x17f23d(0x199)](_0x3758c1),_0x228fba['push'](_0x3758c1);}_0x19b1a5[_0x17f23d(0x1c1)](_0x228fba[_0x17f23d(0x17d)],0x0)&&this[_0x17f23d(0x191)](_0x535fd7,{'type':_0x17f23d(0x15a),'channels':_0x228fba,'timestamp':new Date()[_0x17f23d(0x16e)]()});}[a0_0x30b72c(0x19f)](_0x3e4c2b){const _0x463d91=a0_0x30b72c;if(!_0x3e4c2b['subscribedChannels'])return;for(const _0xcf0426 of _0x3e4c2b[_0x463d91(0x1b6)]){this[_0x463d91(0x1a4)]['has'](_0xcf0426)&&(this[_0x463d91(0x1a4)][_0x463d91(0x158)](_0xcf0426)['delete'](_0x3e4c2b),this[_0x463d91(0x1a4)]['get'](_0xcf0426)[_0x463d91(0x19a)]===0x0&&this['_subscriptions'][_0x463d91(0x199)](_0xcf0426));}_0x3e4c2b['subscribedChannels'][_0x463d91(0x167)]();}[a0_0x30b72c(0x191)](_0x65758d,_0x38f099){const _0x41e975=a0_0x30b72c;if(_0x65758d[_0x41e975(0x163)]===0x1)try{_0x65758d[_0x41e975(0x19b)](JSON['stringify'](_0x38f099));}catch(_0x261d30){}}[a0_0x30b72c(0x1a9)](_0x50e80e){const _0xec62ee=a0_0x30b72c,_0x5e8845={'WghOU':_0xec62ee(0x1b7),'WVXXF':function(_0x3a98e8,_0x2d880d,_0xa8ea65){return _0x3a98e8(_0x2d880d,_0xa8ea65);}};this[_0xec62ee(0x177)]=_0x5e8845['WVXXF'](setInterval,()=>{const _0x5b33bd=_0xec62ee;if(!this[_0x5b33bd(0x18a)])return;for(const _0xb97f2a of this[_0x5b33bd(0x18a)][_0x5b33bd(0x192)]){if(!_0xb97f2a['isAlive']){this[_0x5b33bd(0x19f)](_0xb97f2a),_0xb97f2a['terminate']();continue;}_0xb97f2a[_0x5b33bd(0x173)]=![],this['_sendToClient'](_0xb97f2a,{'type':_0x5e8845['WghOU'],'timestamp':new Date()['toISOString']()});try{_0xb97f2a[_0x5b33bd(0x1b7)]();}catch(_0x19ff73){}}},_0x50e80e*0x3e8);}['_setupRedisPublisher'](){const _0x51716c=a0_0x30b72c,_0x2c1577={'fVVlb':function(_0x1c1464,_0x2b530c){return _0x1c1464(_0x2b530c);},'AKizs':function(_0x301070,_0x196994){return _0x301070(_0x196994);},'ROXWJ':_0x51716c(0x1ca),'dlcYm':function(_0x172348,_0x3733ec,_0x23e312){return _0x172348(_0x3733ec,_0x23e312);}};this[_0x51716c(0x1a2)]=![];try{try{const _0x57a097=_0x2c1577['fVVlb'](require,_0x51716c(0x17e));this[_0x51716c(0x1a3)]=_0x57a097['getClient']?_0x57a097[_0x51716c(0x1d9)]():null;}catch(_0x27ada2){this[_0x51716c(0x1a3)]=null;}if(!this['_redisPublisher']){const _0x3a8526=_0x2c1577[_0x51716c(0x1cd)](require,_0x2c1577['ROXWJ']),_0x236564={'host':process['env'][_0x51716c(0x188)]||'127.0.0.1','port':_0x2c1577['dlcYm'](parseInt,process['env'][_0x51716c(0x184)],0xa)||0x18eb,'password':process['env'][_0x51716c(0x1c4)]||undefined,'db':parseInt(process[_0x51716c(0x17b)]['REDIS_DB'],0xa)||0x0,'lazyConnect':!![]};this['_redisPublisher']=new _0x3a8526(_0x236564),this[_0x51716c(0x1a2)]=!![],this[_0x51716c(0x1a3)]['connect']()[_0x51716c(0x153)](()=>{const _0x37c9cf=_0x51716c;this[_0x37c9cf(0x16f)]['warn']({'event':'livesync_redis_publisher_failed'},_0x37c9cf(0x1c3)),this['_redisPublisher']=null;});}}catch(_0x2598eb){this['_logger']['warn']({'event':_0x51716c(0x193),'error':_0x2598eb['message']},_0x51716c(0x1ce)+_0x2598eb[_0x51716c(0x1d6)]);}}[a0_0x30b72c(0x161)](){const _0x27a5ae=a0_0x30b72c,_0x76c4bd={'dANQG':'livesync_redis_publisher_failed','KQTtk':'Failed\x20to\x20connect\x20Redis\x20publisher\x20for\x20Live\x20Sync','cfIJx':_0x27a5ae(0x15b),'xyaRP':_0x27a5ae(0x1d6),'ZvXNJ':_0x27a5ae(0x1d8),'Mucvd':function(_0x3ab7d7,_0xfbff){return _0x3ab7d7(_0xfbff);},'UEgVx':function(_0x404798,_0x337212,_0x3a6648){return _0x404798(_0x337212,_0x3a6648);},'XVjkV':'../../utils/redis-client','rRdUg':'livesync_redis_unavailable'};this[_0x27a5ae(0x1a2)]=![];try{const _0x42878d=_0x76c4bd['Mucvd'](require,_0x27a5ae(0x1ca)),_0x4a1b9a={'host':process['env'][_0x27a5ae(0x188)]||_0x27a5ae(0x1a6),'port':_0x76c4bd[_0x27a5ae(0x168)](parseInt,process[_0x27a5ae(0x17b)]['REDIS_PORT'],0xa)||0x18eb,'password':process[_0x27a5ae(0x17b)]['REDIS_PASSWORD']||undefined,'db':_0x76c4bd[_0x27a5ae(0x168)](parseInt,process['env']['REDIS_DB'],0xa)||0x0,'lazyConnect':!![]};try{const _0x1864c6=require(_0x76c4bd['XVjkV']);this[_0x27a5ae(0x1a3)]=_0x1864c6['getClient']?_0x1864c6[_0x27a5ae(0x1d9)]():null;}catch(_0x5b6d00){this[_0x27a5ae(0x1a3)]=null;}!this[_0x27a5ae(0x1a3)]&&(this[_0x27a5ae(0x1a3)]=new _0x42878d(_0x4a1b9a),this[_0x27a5ae(0x1a2)]=!![],this[_0x27a5ae(0x1a3)]['connect']()['catch'](()=>{const _0xf0872e=_0x27a5ae;this['_logger'][_0xf0872e(0x1aa)]({'event':_0x76c4bd['dANQG']},_0x76c4bd['KQTtk']),this['_redisPublisher']=null;})),this[_0x27a5ae(0x1ab)]=new _0x42878d(_0x4a1b9a),this['_redisSubscriber'][_0x27a5ae(0x178)]()[_0x27a5ae(0x151)](()=>{const _0x26e9e3=_0x27a5ae;this[_0x26e9e3(0x1ab)][_0x26e9e3(0x197)](REDIS_CHANNEL_PREFIX+_0x26e9e3(0x15c),_0x4fb14a=>{const _0x2d0b11=_0x26e9e3;if(_0x4fb14a){this['_logger']['error']({'event':_0x2d0b11(0x1a7),'error':_0x4fb14a['message']},_0x2d0b11(0x198)+_0x4fb14a[_0x2d0b11(0x1d6)]);return;}this[_0x2d0b11(0x16f)][_0x2d0b11(0x1ae)]({'event':'livesync_redis_subscribed'},_0x76c4bd[_0x2d0b11(0x1b0)]);}),this[_0x26e9e3(0x1ab)]['on'](_0x76c4bd['xyaRP'],(_0x2c67cf,_0x2e3f0a)=>{const _0x18e74d=_0x26e9e3;try{const _0x1f1ea2=JSON['parse'](_0x2e3f0a);if(_0x1f1ea2[_0x18e74d(0x1bf)]===this['_workerId'])return;this['_broadcastLocal'](_0x1f1ea2['channel'],_0x1f1ea2[_0x18e74d(0x1d6)]);}catch(_0x1784e8){}});})['catch'](()=>{const _0x1b0027=_0x27a5ae;this[_0x1b0027(0x16f)][_0x1b0027(0x1aa)]({'event':'livesync_redis_subscriber_failed'},_0x76c4bd['ZvXNJ']),this['_redisSubscriber']=null;});}catch(_0x2b7b80){this[_0x27a5ae(0x16f)]['warn']({'event':_0x76c4bd['rRdUg'],'error':_0x2b7b80['message']},_0x27a5ae(0x1c7)+_0x2b7b80[_0x27a5ae(0x1d6)]);}}[a0_0x30b72c(0x182)](_0x50ed82,_0x68def9){const _0x112da9=a0_0x30b72c,_0x450921={'TIqEH':_0x112da9(0x183),'sfmkv':function(_0x139e25,_0x735eaf){return _0x139e25===_0x735eaf;}};if(!this[_0x112da9(0x18a)])return;const _0x1516e0=JSON['stringify']({'type':_0x450921['TIqEH'],'channel':_0x50ed82,'action':_0x68def9[_0x112da9(0x1ba)],'data':_0x68def9[_0x112da9(0x1b2)],'requestId':_0x68def9['requestId']||null,'timestamp':new Date()[_0x112da9(0x16e)]()}),[_0x3470a5]=_0x50ed82[_0x112da9(0x1d3)](':');for(const [_0x49e639,_0x3e6967]of this[_0x112da9(0x1a4)]){const _0x59df8c=_0x49e639===_0x50ed82,_0x581261=_0x49e639===_0x3470a5+':*';if(_0x59df8c||_0x581261)for(const _0x59b667 of _0x3e6967){if(_0x450921[_0x112da9(0x1d4)](_0x59b667[_0x112da9(0x163)],0x1))try{_0x59b667[_0x112da9(0x19b)](_0x1516e0);}catch(_0x3c4cb0){}}}}}module['exports']=WebSocketBroadcaster;
@@ -1 +1 @@
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
+ const a0_0x317f0e=a0_0x13cd;(function(_0x294cf7,_0x54dde9){const _0x14a7f6=a0_0x13cd,_0x26ef99=_0x294cf7();while(!![]){try{const _0x271e96=-parseInt(_0x14a7f6(0x158))/0x1*(-parseInt(_0x14a7f6(0x19a))/0x2)+parseInt(_0x14a7f6(0x189))/0x3+parseInt(_0x14a7f6(0x157))/0x4+parseInt(_0x14a7f6(0x16e))/0x5+parseInt(_0x14a7f6(0x151))/0x6*(-parseInt(_0x14a7f6(0x113))/0x7)+-parseInt(_0x14a7f6(0x146))/0x8+parseInt(_0x14a7f6(0x10c))/0x9*(-parseInt(_0x14a7f6(0x138))/0xa);if(_0x271e96===_0x54dde9)break;else _0x26ef99['push'](_0x26ef99['shift']());}catch(_0x287e91){_0x26ef99['push'](_0x26ef99['shift']());}}}(a0_0x13ef,0x92a7d));const {v7:uuidv7}=require('uuid'),path=require(a0_0x317f0e(0x186)),fs=require('fs')[a0_0x317f0e(0x178)],fsSync=require('fs'),redisHelper=require(a0_0x317f0e(0x15c)),{logger,logError}=require(a0_0x317f0e(0x124)),dbType=(process[a0_0x317f0e(0x174)]['DB_TYPE']||a0_0x317f0e(0x179))[a0_0x317f0e(0x109)]();let executeQuery;if(dbType==='oracle'){const oracleDb=require('../utils/db-oracle');executeQuery=(_0x5d5f56,_0x31f0a6)=>oracleDb[a0_0x317f0e(0x17c)](_0x5d5f56,_0x31f0a6);}else{if(dbType==='mysql'){const mysqlDb=require('../utils/db-mysql');executeQuery=(_0xdfb9b2,_0xe702c8)=>mysqlDb[a0_0x317f0e(0x17c)](_0xdfb9b2,_0xe702c8);}else executeQuery=require('../utils/db')[a0_0x317f0e(0x17c)];}class ExportService{constructor(){this['_exportDir']=null;}get[a0_0x317f0e(0x1a0)](){const _0x1f9f3c=a0_0x317f0e,_0x3529d7={'wLZVW':_0x1f9f3c(0x171),'TBKWu':'Export\x20service\x20initialized','afcUj':_0x1f9f3c(0x18e)};if(!this['_exportDir']){const _0x30cdfd=process[_0x1f9f3c(0x174)][_0x1f9f3c(0x143)]||_0x1f9f3c(0x147);this['_exportDir']=process['env'][_0x1f9f3c(0x154)]||path['join'](__dirname,'../../exports/'+_0x30cdfd);try{!fsSync[_0x1f9f3c(0x13f)](this[_0x1f9f3c(0x12a)])&&fsSync[_0x1f9f3c(0x165)](this['_exportDir'],{'recursive':!![]}),logger['info']({'event':_0x3529d7['wLZVW'],'dir':this['_exportDir']},_0x3529d7[_0x1f9f3c(0x141)]);}catch(_0x2aa603){logError(_0x2aa603,{'event':_0x3529d7[_0x1f9f3c(0x182)]},'Failed\x20to\x20initialize\x20export\x20service');}}return this[_0x1f9f3c(0x12a)];}[a0_0x317f0e(0x128)](_0x59dd97,_0x40c1cc=null){const _0x585e72=a0_0x317f0e,_0x10265d={'OxkOi':function(_0x1e2065,_0x3844bc){return _0x1e2065!==_0x3844bc;},'RaKPT':_0x585e72(0x164),'TuBFJ':'Invalid\x20file:\x20reference\x20-\x20path\x20is\x20empty','egNxA':'utf8','glosH':_0x585e72(0x114)};if(!_0x59dd97||_0x10265d[_0x585e72(0x18c)](typeof _0x59dd97,_0x10265d['RaKPT']))return _0x59dd97;const _0x3e2403=_0x59dd97['trim']();if(!_0x3e2403[_0x585e72(0x111)](_0x585e72(0x17a)))return _0x3e2403;const _0x99a3c7=_0x3e2403[_0x585e72(0x11e)](/^file:/,'')['trim']();if(!_0x99a3c7)throw new Error(_0x10265d[_0x585e72(0x13a)]);const _0x30b122=_0x40c1cc||path[_0x585e72(0x133)](process['cwd'](),'payload'),_0x4ee7f5=path[_0x585e72(0x18f)](_0x30b122,_0x99a3c7);logger[_0x585e72(0x10e)]({'event':_0x585e72(0x117),'relativePath':_0x99a3c7,'baseDir':_0x30b122,'absolutePath':_0x4ee7f5},_0x585e72(0x15b)+_0x99a3c7);if(!fsSync[_0x585e72(0x13f)](_0x4ee7f5))throw new Error(_0x585e72(0x118)+_0x4ee7f5);try{const _0x29abeb=fsSync['readFileSync'](_0x4ee7f5,_0x10265d['egNxA']);if(!_0x29abeb||!_0x29abeb[_0x585e72(0x183)]())throw new Error('Export\x20query\x20file\x20is\x20empty:\x20'+_0x4ee7f5);return logger[_0x585e72(0x10e)]({'event':_0x10265d[_0x585e72(0x142)],'file':_0x4ee7f5,'queryLength':_0x29abeb[_0x585e72(0x153)]},_0x585e72(0x127)+_0x29abeb[_0x585e72(0x153)]+'\x20chars)'),_0x29abeb['trim']();}catch(_0x417764){if(_0x417764['code']===_0x585e72(0x187))throw new Error(_0x585e72(0x118)+_0x4ee7f5);throw new Error(_0x585e72(0x16a)+_0x417764['message']);}}['generateJobId'](){const _0x24025a=a0_0x317f0e,_0x1d68fc={'JErev':function(_0x13eb9c,_0x4ba8b8){return _0x13eb9c-_0x4ba8b8;},'xIIFB':function(_0x4367b9,_0x59dc43){return _0x4367b9<_0x59dc43;}},_0x2d5e7d=_0x24025a(0x14a),_0x162e36=Date[_0x24025a(0x173)]()[_0x24025a(0x15d)](0x24),_0xaa2849=uuidv7()[_0x24025a(0x11e)](/-/g,'')[_0x24025a(0x19b)](0x0,_0x1d68fc['JErev'](0xc,_0x162e36['length'])),_0xae79c6=(_0x162e36+_0xaa2849)['substring'](0x0,0xc);let _0x3bde6f='';for(let _0x1b7d59=0x0;_0x1d68fc[_0x24025a(0x14d)](_0x1b7d59,0xc);_0x1b7d59++){_0xae79c6[_0x1b7d59]?_0x3bde6f+=_0xae79c6[_0x1b7d59]:_0x3bde6f+=_0x2d5e7d[_0x24025a(0x161)](Math[_0x24025a(0x1a6)](Math['random']()*_0x2d5e7d['length']));}return _0x3bde6f;}async[a0_0x317f0e(0x16d)](_0x2efe20){const _0x41b460=a0_0x317f0e,_0x3aef40={'YUMaC':_0x41b460(0x1a4),'SxXgr':'Export\x20processing\x20failed','ARXHD':'pending','ePIYm':'Export\x20job\x20created'},_0x48d4c1=this['generateJobId'](),_0x43a4f4={'job_id':_0x48d4c1,'status':_0x3aef40[_0x41b460(0x12b)],'progress':0x0,'created_at':new Date()['toISOString'](),'params':_0x2efe20,'total_rows':0x0,'processed_rows':0x0};return await redisHelper['setJob'](_0x48d4c1,_0x43a4f4),logger[_0x41b460(0x10e)]({'event':_0x41b460(0x191),'jobId':_0x48d4c1,'params':_0x2efe20},_0x3aef40[_0x41b460(0x1a5)]),this[_0x41b460(0x16c)](_0x48d4c1,_0x2efe20)[_0x41b460(0x12e)](_0x3bfd90=>{const _0x402d83=_0x41b460;logError(_0x3bfd90,{'event':_0x3aef40[_0x402d83(0x13b)],'jobId':_0x48d4c1},_0x3aef40['SxXgr']);}),{'job_id':_0x48d4c1,'status':_0x3aef40[_0x41b460(0x12b)]};}async[a0_0x317f0e(0x112)](_0x5e709a){const _0x16a089=a0_0x317f0e,_0xa1de96={'lrUjr':function(_0x401252,_0xaef3a9){return _0x401252===_0xaef3a9;}},_0x55c9c7=await redisHelper[_0x16a089(0x12c)](_0x5e709a);if(!_0x55c9c7)return{'success':![],'error':_0x16a089(0x13c)};return{'success':!![],'data':{'job_id':_0x55c9c7['job_id'],'status':_0x55c9c7['status'],'progress':_0x55c9c7[_0x16a089(0x196)],'total_rows':_0x55c9c7['total_rows'],'processed_rows':_0x55c9c7[_0x16a089(0x19e)],'file_url':_0xa1de96[_0x16a089(0x16b)](_0x55c9c7['status'],_0x16a089(0x10f))?_0x16a089(0x18a)+_0x55c9c7['params']['moduleName']+'/'+_0x55c9c7['params'][_0x16a089(0x123)]+_0x16a089(0x17f)+_0x5e709a:null,'error':_0x55c9c7['error']||null,'created_at':_0x55c9c7['created_at'],'completed_at':_0x55c9c7['completed_at']||null}};}async['processJob'](_0x4a2153,_0x52e873){const _0x548ef5=a0_0x317f0e,_0x51e88c={'beGsT':'Export\x20processing\x20started','ZiBsE':_0x548ef5(0x185),'RRoFp':function(_0x289162,_0x18d921,_0x5da6e6,_0x5b24fe){return _0x289162(_0x18d921,_0x5da6e6,_0x5b24fe);}};try{await redisHelper['updateJob'](_0x4a2153,{'status':_0x548ef5(0x184),'started_at':new Date()[_0x548ef5(0x168)]()}),logger[_0x548ef5(0x10e)]({'event':_0x548ef5(0x11a),'jobId':_0x4a2153},_0x51e88c[_0x548ef5(0x131)]);const _0x35d4bc=await this['fetchData'](_0x52e873);await redisHelper[_0x548ef5(0x167)](_0x4a2153,{'total_rows':_0x35d4bc[_0x548ef5(0x153)]});const _0x2e1211=await this[_0x548ef5(0x140)](_0x4a2153,_0x35d4bc,_0x52e873);await redisHelper[_0x548ef5(0x167)](_0x4a2153,{'status':'completed','progress':0x64,'file_path':_0x2e1211,'completed_at':new Date()[_0x548ef5(0x168)]()}),logger[_0x548ef5(0x10e)]({'event':_0x548ef5(0x188),'jobId':_0x4a2153,'rows':_0x35d4bc['length']},_0x51e88c['ZiBsE']);}catch(_0x36c8b1){_0x51e88c['RRoFp'](logError,_0x36c8b1,{'event':_0x548ef5(0x169),'jobId':_0x4a2153},_0x548ef5(0x18d)),await redisHelper[_0x548ef5(0x167)](_0x4a2153,{'status':'failed','error':_0x36c8b1['message'],'failed_at':new Date()[_0x548ef5(0x168)]()});}}async[a0_0x317f0e(0x197)](_0x55ca8d){const _0xcef3d1=a0_0x317f0e,_0x571c97={'SEoiY':function(_0x496187,_0x3e4ba6){return _0x496187||_0x3e4ba6;},'lgwTT':'tableName\x20and\x20columns\x20are\x20required','lsvlC':function(_0x26a218,_0x22cdcb){return _0x26a218+_0x22cdcb;},'cKvHH':_0xcef3d1(0x163),'KbuUL':'Using\x20custom\x20exportQuery','CdOVV':_0xcef3d1(0x126),'bMpRa':function(_0xffd3bd,_0x17fae8){return _0xffd3bd>_0x17fae8;},'OxoNp':'Fetching\x20data\x20from\x20database','ypdCg':function(_0x165bee,_0x388d4e){return _0x165bee===_0x388d4e;},'sPCXQ':'oracle','xVzCl':'export_fetch_complete','vkUrH':function(_0x31e567,_0x534c76,_0x26a0c0,_0x394816){return _0x31e567(_0x534c76,_0x26a0c0,_0x394816);},'XZckJ':_0xcef3d1(0x132)};try{const {tableName:_0x4ae2c3,columns:_0x4cb27d,exportQuery:_0xd9e928,where:_0x594d3a,sort_columns:_0x510a11}=_0x55ca8d;if(_0x571c97[_0xcef3d1(0x134)](!_0x4ae2c3,!_0x4cb27d)||_0x4cb27d['length']===0x0)throw new Error(_0x571c97['lgwTT']);const _0x3efe52=_0x571c97['lsvlC'](_0x4ae2c3[_0xcef3d1(0x11e)](/\./g,'_'),_0x571c97[_0xcef3d1(0x11f)]);let _0x4eeebc;if(_0xd9e928&&_0xd9e928['trim']()){let _0xcd5758=_0xd9e928;_0xd9e928['trim']()['startsWith'](_0xcef3d1(0x17a))&&(_0xcd5758=this['resolveExportQuery'](_0xd9e928)),_0x4eeebc='WITH\x20'+_0x3efe52+'\x20AS\x20(\x0a\x20\x20\x20\x20'+_0xcd5758+'\x0a)',_0x4eeebc+=_0xcef3d1(0x148)+_0x3efe52,logger['info']({'event':'export_using_custom_query','query':_0xcd5758[_0xcef3d1(0x19b)](0x0,0x64)},_0x571c97[_0xcef3d1(0x130)]);}else{const _0x49b7e9=_0x4cb27d['map'](_0x399911=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x399911)['join'](',');_0x4eeebc=_0xcef3d1(0x105)+_0x3efe52+'\x20AS\x20(\x0a\x20\x20\x20\x20SELECT\x20'+_0x49b7e9+'\x0a\x20\x20\x20\x20FROM\x20'+_0x4ae2c3+'\x0a)',_0x4eeebc+=_0xcef3d1(0x148)+_0x3efe52,logger[_0xcef3d1(0x10e)]({'event':_0x571c97['CdOVV'],'tableName':_0x4ae2c3,'columnCount':_0x4cb27d[_0xcef3d1(0x153)]},_0xcef3d1(0x162));}if(_0x594d3a){const _0x37d146=this[_0xcef3d1(0x175)](_0x594d3a);_0x37d146&&(_0x4eeebc+='\x0aWHERE\x20'+_0x37d146);}if(_0x510a11&&_0x571c97[_0xcef3d1(0x119)](_0x510a11[_0xcef3d1(0x153)],0x0)){const _0x45a826=this[_0xcef3d1(0x180)](_0x510a11);_0x45a826&&(_0x4eeebc+=_0xcef3d1(0x14f)+_0x45a826);}logger['info']({'event':'export_fetch_start','query':_0x4eeebc[_0xcef3d1(0x19b)](0x0,0xc8)},_0x571c97[_0xcef3d1(0x156)]);const _0x1e37ce=await executeQuery(_0x4eeebc);let _0x274eb3=_0x1e37ce;return _0x571c97[_0xcef3d1(0x176)](dbType,_0x571c97['sPCXQ'])&&_0x1e37ce&&_0x1e37ce[_0xcef3d1(0x153)]>0x0&&(_0x274eb3=_0x1e37ce['map'](_0x27a831=>{const _0x567ec7=_0xcef3d1,_0xad2c2b={};for(const [_0x3b8fcf,_0x341cb4]of Object[_0x567ec7(0x129)](_0x27a831)){_0xad2c2b[_0x3b8fcf[_0x567ec7(0x109)]()]=_0x341cb4;}return _0xad2c2b;})),logger['info']({'event':_0x571c97[_0xcef3d1(0x195)],'rows':_0x274eb3[_0xcef3d1(0x153)]},_0xcef3d1(0x11d)),_0x274eb3;}catch(_0x5e7ee4){_0x571c97['vkUrH'](logError,_0x5e7ee4,{'event':_0xcef3d1(0x193)},_0x571c97['XZckJ']);throw _0x5e7ee4;}}['sanitizeValue'](_0x157774){const _0x2cea3a=a0_0x317f0e,_0x1c1dfc={'YbFjn':'string'};if(typeof _0x157774===_0x1c1dfc[_0x2cea3a(0x18b)])return _0x157774['replace'](/[\u200B-\u200D\uFEFF\u2060\u00AD]/g,'')['trim']();else{if(Array[_0x2cea3a(0x139)](_0x157774))return _0x157774['map'](_0x14b2bd=>this['sanitizeValue'](_0x14b2bd));}return _0x157774;}['buildWhereClause'](_0x351dc0){const _0x27ee1a=a0_0x317f0e,_0x37e831={'WmCZR':function(_0x2dff25,_0x317429){return _0x2dff25||_0x317429;},'ywOwm':'invalid_condition','cbJWM':_0x27ee1a(0x199),'cFRkq':'string','CapOf':'LIKE','HFXUA':_0x27ee1a(0x1a2),'tXetu':function(_0xfe3684,_0x1e7482){return _0xfe3684===_0x1e7482;}};if(!_0x351dc0||!_0x351dc0['conditions']||_0x351dc0[_0x27ee1a(0x12f)][_0x27ee1a(0x153)]===0x0)return'';const {logic:_0x4b9045,conditions:_0x382bfb}=_0x351dc0,_0x57df6e=_0x4b9045&&_0x4b9045[_0x27ee1a(0x150)]()==='OR'?'\x20OR\x20':_0x27ee1a(0x115),_0x1c7d44=_0x382bfb[_0x27ee1a(0x177)](_0x57874b=>{const _0xbc8ceb=_0x27ee1a,_0x146885={'FTnoY':function(_0x4810c4,_0x5b19af){return _0x4810c4===_0x5b19af;}},{key:_0x30960e,operator:_0x18f4af,value:_0x265bc0,sensitive:_0x774531}=_0x57874b;if(_0x37e831['WmCZR'](!_0x30960e,!_0x18f4af))return logger[_0xbc8ceb(0x190)]({'event':_0x37e831[_0xbc8ceb(0x172)],'condition':_0x57874b},_0x37e831['cbJWM']),null;const _0x14c834=this['sanitizeValue'](_0x265bc0),_0x1798a7=_0x774531!==undefined?_0x774531:!![];let _0x2346b4=_0x30960e,_0xa927f1=_0x14c834;!_0x1798a7&&(_0x2346b4='UPPER('+_0x30960e+')',typeof _0x265bc0===_0x37e831['cFRkq']&&(_0xa927f1=_0x265bc0[_0xbc8ceb(0x150)]()));const _0x192236=typeof _0xa927f1===_0x37e831[_0xbc8ceb(0x1a1)]?'\x27'+_0xa927f1[_0xbc8ceb(0x11e)](/'/g,'\x27\x27')+'\x27':_0xa927f1;switch(_0x18f4af['toUpperCase']()){case'=':case'!=':case'<>':return _0x2346b4+'\x20'+_0x18f4af+'\x20'+_0x192236;case'>':case'<':case'>=':case'<=':const _0x42599a=typeof _0x14c834==='string'?'\x27'+_0x14c834['replace'](/'/g,'\x27\x27')+'\x27':_0x14c834;return _0x30960e+'\x20'+_0x18f4af+'\x20'+_0x42599a;case _0x37e831['CapOf']:case'NOT\x20LIKE':return _0x2346b4+'\x20'+_0x18f4af+'\x20'+_0x192236;case'IN':if(Array['isArray'](_0x14c834)){let _0x3f0795;return!_0x1798a7?_0x3f0795=_0x14c834['map'](_0x323406=>{const _0xe46be8=_0xbc8ceb,_0x29319c=_0x146885[_0xe46be8(0x136)](typeof _0x323406,'string')?_0x323406[_0xe46be8(0x150)]():_0x323406;return typeof _0x29319c==='string'?'\x27'+_0x29319c[_0xe46be8(0x11e)](/'/g,'\x27\x27')+'\x27':_0x29319c;})['join'](',\x20'):_0x3f0795=_0x14c834['map'](_0xd04dcf=>typeof _0xd04dcf==='string'?'\x27'+_0xd04dcf['replace'](/'/g,'\x27\x27')+'\x27':_0xd04dcf)[_0xbc8ceb(0x133)](',\x20'),_0x2346b4+'\x20IN\x20('+_0x3f0795+')';}return _0x2346b4+_0xbc8ceb(0x192)+_0x192236+')';case'IS\x20NULL':return _0x30960e+'\x20IS\x20NULL';case _0xbc8ceb(0x10b):return _0x30960e+'\x20IS\x20NOT\x20NULL';default:logger['warn']({'event':'unknown_operator','operator':_0x18f4af},_0x37e831[_0xbc8ceb(0x145)]);return _0x2346b4+'\x20=\x20'+_0x192236;}})[_0x27ee1a(0x125)](_0x16241e=>_0x16241e!==null);if(_0x37e831['tXetu'](_0x1c7d44['length'],0x0))return'';return _0x1c7d44['join'](_0x57df6e);}['buildOrderByClause'](_0x5814e4){const _0x3d5008=a0_0x317f0e,_0x10a395={'AZbZY':_0x3d5008(0x13e),'TyRge':'Skipping\x20invalid\x20sort\x20column','lbNMj':function(_0x6b8257,_0x42c29e){return _0x6b8257===_0x42c29e;},'QoifR':'DESC','wgROi':_0x3d5008(0x152)};if(!_0x5814e4||_0x5814e4['length']===0x0)return'';const _0x25a012=_0x5814e4[_0x3d5008(0x177)](_0x5d8360=>{const _0x288c8a=_0x3d5008,{column:_0x13f092,direction:_0x45528b}=_0x5d8360;if(!_0x13f092)return logger['warn']({'event':_0x10a395['AZbZY'],'item':_0x5d8360},_0x10a395[_0x288c8a(0x12d)]),null;const _0x562331=_0x45528b&&_0x10a395['lbNMj'](_0x45528b['toUpperCase'](),_0x10a395['QoifR'])?_0x10a395[_0x288c8a(0x10d)]:_0x10a395[_0x288c8a(0x13d)];return _0x13f092+'\x20'+_0x562331;})[_0x3d5008(0x125)](_0x5b20a2=>_0x5b20a2!==null);if(_0x25a012[_0x3d5008(0x153)]===0x0)return'';return _0x25a012[_0x3d5008(0x133)](',\x20');}async[a0_0x317f0e(0x140)](_0xa32ee3,_0x2ea4d4,_0x4f7abf){const _0x382227=a0_0x317f0e,_0x5aa912={'MLqEz':function(_0x31a09b,_0xe54277){return _0x31a09b/_0xe54277;},'cbrdQ':function(_0x18804c,_0x3061bf){return _0x18804c(_0x3061bf);},'IdoYr':_0x382227(0x17d),'IuGpt':_0x382227(0x15f),'lLgkM':function(_0x27b904,_0x56dc0a){return _0x27b904>_0x56dc0a;},'yUZlw':'excel_columns_from_request','Dcpuw':'excel_columns_fallback','ROTWi':_0x382227(0x107),'LFhPK':_0x382227(0x122)},_0x3a800b=_0x5aa912[_0x382227(0x11b)](require,_0x5aa912[_0x382227(0x144)]),_0x5899d2=new _0x3a800b(),_0x7d8388=_0x4f7abf['filename']?_0x4f7abf['filename']+'-'+_0xa32ee3:_0x382227(0x149)+_0xa32ee3,_0x248746=path['join'](this['exportDir'],_0x7d8388+'.xlsx');let _0x1fdaec=_0x4f7abf['columns'];const _0x4c5ce3=_0x4f7abf['exportQuery']&&_0x4f7abf[_0x382227(0x106)]['trim'](),_0x4ddb39=_0x1fdaec&&_0x1fdaec['length']===0x1&&(_0x1fdaec[0x0]==='*'||_0x1fdaec[0x0][_0x382227(0x109)]()==='all');if(_0x2ea4d4[_0x382227(0x153)]>0x0){const _0x347f5b=Object[_0x382227(0x135)](_0x2ea4d4[0x0]);if(_0x4c5ce3)_0x1fdaec=_0x347f5b,logger['info']({'event':_0x5aa912[_0x382227(0x19d)],'columns':_0x1fdaec},_0x382227(0x198)+_0x1fdaec[_0x382227(0x153)]+'\x20columns\x20from\x20custom\x20exportQuery\x20result');else{if(_0x4ddb39)_0x1fdaec=_0x347f5b,logger[_0x382227(0x10e)]({'event':'excel_columns_select_all','columns':_0x1fdaec},_0x382227(0x116)+_0x1fdaec['length']+'\x20columns\x20(wildcard\x20requested)');else{if(_0x1fdaec&&_0x5aa912['lLgkM'](_0x1fdaec[_0x382227(0x153)],0x0)){const _0x4b32a2=_0x1fdaec['filter'](_0x115f20=>_0x347f5b[_0x382227(0x15a)](_0x115f20));_0x5aa912['lLgkM'](_0x4b32a2['length'],0x0)?(_0x1fdaec=_0x4b32a2,logger[_0x382227(0x10e)]({'event':_0x5aa912[_0x382227(0x137)],'requestedColumns':_0x4f7abf['columns'],'validColumns':_0x1fdaec},_0x382227(0x198)+_0x1fdaec[_0x382227(0x153)]+_0x382227(0x155))):(_0x1fdaec=_0x347f5b,logger['warn']({'event':_0x5aa912['Dcpuw'],'requestedColumns':_0x4f7abf['columns'],'availableColumns':_0x347f5b},'Requested\x20columns\x20not\x20found\x20in\x20data,\x20using\x20all\x20'+_0x347f5b['length']+_0x382227(0x15e)));}else _0x1fdaec=_0x347f5b,logger['info']({'event':_0x5aa912[_0x382227(0x166)],'columns':_0x1fdaec},'Using\x20'+_0x1fdaec['length']+'\x20columns\x20from\x20query\x20result');}}}else logger[_0x382227(0x10e)]({'event':_0x5aa912[_0x382227(0x17b)],'columns':_0x1fdaec},_0x382227(0x198)+(_0x1fdaec?.['length']||0x0)+_0x382227(0x1a3));return await _0x5899d2[_0x382227(0x181)]({'data':_0x2ea4d4,'columns':_0x1fdaec,'columnFormats':_0x4f7abf[_0x382227(0x14b)]||null,'fieldLabels':_0x4f7abf['fieldLabels']||null,'filePath':_0x248746,'onProgress':async _0x34a4a5=>{const _0x47963e=_0x382227;await redisHelper[_0x47963e(0x167)](_0xa32ee3,{'progress':Math['round'](_0x34a4a5),'processed_rows':Math[_0x47963e(0x194)](_0x5aa912['MLqEz'](_0x34a4a5,0x64)*_0x2ea4d4['length'])});}}),_0x248746;}async['getFilePath'](_0x27065f){const _0x5a8729=a0_0x317f0e,_0x37c7b6={'Gpfxs':function(_0x19e8f5,_0x4e0096){return _0x19e8f5!==_0x4e0096;},'hyaMr':_0x5a8729(0x10f),'zrMAm':'export_file_not_found','BIpQE':'Export\x20file\x20not\x20found'},_0x350764=await redisHelper['getJob'](_0x27065f);if(!_0x350764||_0x37c7b6[_0x5a8729(0x121)](_0x350764[_0x5a8729(0x14c)],_0x37c7b6[_0x5a8729(0x120)]))return null;try{return await fs['access'](_0x350764['file_path']),_0x350764[_0x5a8729(0x11c)];}catch(_0x11fcae){return logError(_0x11fcae,{'event':_0x37c7b6['zrMAm'],'jobId':_0x27065f,'path':_0x350764['file_path']},_0x37c7b6['BIpQE']),null;}}async[a0_0x317f0e(0x1a7)](){const _0x4d7dfa=a0_0x317f0e,_0x5ee818={'wYVMU':function(_0x5c7c3a,_0x2f9a20){return _0x5c7c3a/_0x2f9a20;},'aEYuh':function(_0x463caf,_0x2d247b){return _0x463caf*_0x2d247b;},'WQNEf':function(_0x3faebd,_0x351a85){return _0x3faebd>_0x351a85;},'BCJWf':'Export\x20file\x20deleted','MPTtp':'export_file_delete_error','zLUtR':_0x4d7dfa(0x16f)};logger['info']({'event':_0x4d7dfa(0x10a)},'Starting\x20export\x20cleanup');const _0x3f35e9=await redisHelper['getAllJobs']();let _0x49a2c0=0x0;for(const _0x142a32 of _0x3f35e9){const _0x20321=new Date(_0x142a32['created_at']),_0x1b3ce4=new Date(),_0x14747c=_0x5ee818[_0x4d7dfa(0x14e)](_0x1b3ce4-_0x20321,_0x5ee818['aEYuh'](0x3e8*0x3c,0x3c));if(_0x5ee818[_0x4d7dfa(0x159)](_0x14747c,0x1)){if(_0x142a32[_0x4d7dfa(0x11c)])try{await fs[_0x4d7dfa(0x110)](_0x142a32['file_path']),logger['info']({'event':'export_file_deleted','path':_0x142a32[_0x4d7dfa(0x11c)]},_0x5ee818[_0x4d7dfa(0x19c)]);}catch(_0x1859ff){logger[_0x4d7dfa(0x190)]({'event':_0x5ee818[_0x4d7dfa(0x108)],'path':_0x142a32['file_path'],'error':_0x1859ff[_0x4d7dfa(0x17e)]},_0x5ee818['zLUtR']);}await redisHelper[_0x4d7dfa(0x170)](_0x142a32['job_id']),_0x49a2c0++;}}return logger['info']({'event':_0x4d7dfa(0x19f),'deleted':_0x49a2c0},'Export\x20cleanup\x20completed'),_0x49a2c0;}}function a0_0x13cd(_0x1879e1,_0x366913){_0x1879e1=_0x1879e1-0x105;const _0x13ef36=a0_0x13ef();let _0x13cd95=_0x13ef36[_0x1879e1];if(a0_0x13cd['KQvLMM']===undefined){var _0x2d46d7=function(_0x5da762){const _0x1a74f5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x575753='',_0x59b90c='';for(let _0x5dac3d=0x0,_0x44fcae,_0xa84ae6,_0x5d007a=0x0;_0xa84ae6=_0x5da762['charAt'](_0x5d007a++);~_0xa84ae6&&(_0x44fcae=_0x5dac3d%0x4?_0x44fcae*0x40+_0xa84ae6:_0xa84ae6,_0x5dac3d++%0x4)?_0x575753+=String['fromCharCode'](0xff&_0x44fcae>>(-0x2*_0x5dac3d&0x6)):0x0){_0xa84ae6=_0x1a74f5['indexOf'](_0xa84ae6);}for(let _0x2ba4ed=0x0,_0x51c3e1=_0x575753['length'];_0x2ba4ed<_0x51c3e1;_0x2ba4ed++){_0x59b90c+='%'+('00'+_0x575753['charCodeAt'](_0x2ba4ed)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x59b90c);};a0_0x13cd['vDiHzx']=_0x2d46d7,a0_0x13cd['IWUIuz']={},a0_0x13cd['KQvLMM']=!![];}const _0x3a2d1e=_0x13ef36[0x0],_0xb209c=_0x1879e1+_0x3a2d1e,_0x1523ba=a0_0x13cd['IWUIuz'][_0xb209c];return!_0x1523ba?(_0x13cd95=a0_0x13cd['vDiHzx'](_0x13cd95),a0_0x13cd['IWUIuz'][_0xb209c]=_0x13cd95):_0x13cd95=_0x1523ba,_0x13cd95;}function a0_0x13ef(){const _0x5a3dab=['rLrUB1K','EvvABhC','mteWsMfus1bQ','AxnbCNjHEq','vhvcrKO','wvvnyum','sM9Iig5VDcbMB3vUzcbVCIbLEhbPCMvK','D2Dst2K','Aw52ywXPzf9ZB3j0x2nVBhvTBG','zxHPC3rZu3LUyW','z2vUzxjHDgvfEgnLBa','vejlv3u','z2XVC0G','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','swrVwxi','sezyvue','mtG4nZy1nLPXAuHLAq','zgvMyxvSDa','cLnftevdvcaQiezst00G','zxHWB3j0lq','qujdrevgr0HjsKTmtu5puffsu1rvvLDywvPHyMnKzwzNAgLQA2XTBM9WCxjZDhv2D3H5EJaXmJm0nty3odK','y29SDw1UrM9YBwf0CW','C3rHDhvZ','EeLjrKi','D1Lwtvu','cK9srevsiejzia','Dg9vChbLCKnHC2u','mJC2ndiZnKvgA0PnCq','qvnd','BgvUz3rO','rvHqt1jux0rjuG','ignVBhvTBNmGzNjVBsbYzxf1zxn0','t3HVtNa','mZqXotqYnhPcveDODG','mtG4odmXCLj3B2PR','v1forwy','Aw5JBhvKzxm','uMvZB2X2Aw5Nigv4Cg9YDff1zxj5igzYB20GzMLSztOG','lI4VDxrPBhmVCMvKAxmTAgvSCgvY','Dg9tDhjPBMC','ignVBhvTBNm','zxHJzwXFy29SDw1UC19MCM9Tx2n1C3rVBv9XDwvYEq','zxHWB3j0CW','y2HHCKf0','vxnPBMCGyxv0BY1Nzw5LCMf0zwqGCxvLCNK','x2rHDge','C3rYAw5N','BwTKAxjtEw5J','uK9uv2K','DxbKyxrLsM9I','Dg9ju09tDhjPBMC','zxHWB3j0x2zHAwXLza','rMfPBgvKihrVihjLywqGzxHWB3j0ihf1zxj5igzPBgu6ia','BhjvANi','ChjVy2vZC0PVyG','y3jLyxrLsM9I','mtq3mtK5nxn0ANzuwG','rMfPBgvKihrVigrLBgv0zsbLEhbVCNqGzMLSzq','zgvSzxrLsM9I','zxHWB3j0x3nLCNzPy2vFAw5PDa','ExDpD20','BM93','zw52','yNvPBgrxAgvYzunSyxvZzq','ExbKq2C','BwfW','ChjVBwLZzxm','Cg9ZDgDYzxnXBa','zMLSztO','tezOueS','zxHLy3v0zvf1zxj5','lI4VDxrPBhmVzxHJzwWTz2vUzxjHDg9Y','BwvZC2fNzq','l2v4Cg9YDc1KB3DUBg9Hzd9QB2jFAwq9','yNvPBgrpCMrLCKj5q2XHDxnL','z2vUzxjHDgu','ywzJvwO','DhjPBq','ChjVy2vZC2LUzW','rxHWB3j0ignVBxbSzxrLzcbZDwnJzxnZzNvSBhK','Cgf0Aa','ru5pru5u','zxHWB3j0x2nVBxbSzxrLza','mZm5ntG4nKrfvfn4EG','l2fWAs8','wwjgAM4','t3HRt2K','rxHWB3j0igzHAwXLza','zxHWB3j0x3nLCNzPy2vFAw5PDf9LCNjVCG','CMvZB2X2zq','D2fYBG','zxHWB3j0x2PVyL9JCMvHDgvK','ieLoicG','zxHWB3j0x2zLDgnOx2vYCM9Y','CM91BMq','Efz6q2W','ChjVz3jLC3m','zMv0y2HeyxrH','vxnPBMCG','u2TPChbPBMCGAw52ywXPzcbJB25KAxrPB24','ogHmDK9LzG','C3vIC3rYAw5N','qKnkv2y','sxvhChq','ChjVy2vZC2vKx3jVD3m','zxHWB3j0x2nSzwfUDxbFy29TCgXLDgu','zxHWB3j0rgLY','y0zsA3e','vw5RBM93BIbVCgvYyxrVCIWGDxnPBMCGpsbHCYbKzwzHDwX0','ignVBhvTBNmGzNjVBsbJB25MAwCGkg5VigrHDgeP','zxHWB3j0x3bYB2nLC3nFzxjYB3i','zvbjww0','zMXVB3i','y2XLyw51Ca','v0Lusca','zxHWB3j0uxvLCNK','zxHJzwXFy29SDw1UC19MCM9Tx3f1zxj5x3jLC3vSDa','tvbuDha','Dg9mB3DLCKnHC2u','zxHWB3j0x2nSzwfUDxbFC3rHCNq','svmGtK9uie5vteW','mtqYmJK2m05Xv2fWza','uw9PzLi','Aw5MBW','y29TCgXLDgvK','Dw5SAw5R','C3rHCNrZv2L0Aa','z2v0sM9Iu3rHDhvZ','n0XhC0jcCq','zxHWB3j0x3f1zxj5x2zPBgvFBg9HzgvK','ieforca','vxnPBMCGywXSia','zxHWB3j0x3f1zxj5x2zPBgvFCMvZB2X2zq','rxHWB3j0ihf1zxj5igzPBguGBM90igzVDw5KoIa','yK1WuMe','zxHWB3j0x3bYB2nLC3nPBMDFC3rHCNq','y2jYzfe','zMLSzv9WyxrO','rgf0ysbMzxrJAgvKihn1y2nLC3nMDwXSEq','CMvWBgfJzq','y0T2seG','AhLHtxi','r3bMEhm','zxHJzwXFy29SDw1UC19MCM9Tx2nVBMzPzW','zw5KCg9PBNroyw1L','lI4VDxrPBhmVBg9Nz2vY','zMLSDgvY','zxHWB3j0x3vZAw5Nx2f1Dg9FCxvLCNK','tg9HzgvKifnrtcbXDwvYEsbMCM9TigzPBguGka','CMvZB2X2zuv4Cg9YDff1zxj5','zw50CMLLCW','x2v4Cg9YDerPCG','qvjyseq','z2v0sM9I','vhLsz2u','y2f0y2G','y29UzgL0Aw9UCW','s2j1vuW','yMvhC1q','rMfPBgvKihrVigzLDgnOigrHDge','AM9PBG','u0vVAvK','A2v5CW'];a0_0x13ef=function(){return _0x5a3dab;};return a0_0x13ef();}module[a0_0x317f0e(0x160)]=new ExportService();
@@ -1 +1 @@
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
+ const a0_0xe52136=a0_0x7f27;(function(_0x1bd982,_0x210724){const _0x5dc193=a0_0x7f27,_0x4693f5=_0x1bd982();while(!![]){try{const _0x6e8c85=-parseInt(_0x5dc193(0x211))/0x1*(-parseInt(_0x5dc193(0x1fe))/0x2)+-parseInt(_0x5dc193(0x1ef))/0x3+parseInt(_0x5dc193(0x20f))/0x4*(-parseInt(_0x5dc193(0x1dd))/0x5)+-parseInt(_0x5dc193(0x237))/0x6*(-parseInt(_0x5dc193(0x1ce))/0x7)+-parseInt(_0x5dc193(0x1ff))/0x8*(-parseInt(_0x5dc193(0x22d))/0x9)+parseInt(_0x5dc193(0x22f))/0xa+-parseInt(_0x5dc193(0x21b))/0xb*(parseInt(_0x5dc193(0x1d9))/0xc);if(_0x6e8c85===_0x210724)break;else _0x4693f5['push'](_0x4693f5['shift']());}catch(_0xca8c8){_0x4693f5['push'](_0x4693f5['shift']());}}}(a0_0x5c68,0xb31ea));const {v7:uuidv7}=require('uuid'),path=require('path'),fs=require('fs')[a0_0xe52136(0x1dc)],redisHelper=require('../utils/redis-helper'),{logger,logError}=require(a0_0xe52136(0x24b)),dbType=(process['env'][a0_0xe52136(0x20a)]||'postgresql')[a0_0xe52136(0x265)]();function a0_0x7f27(_0x117ba1,_0x48c979){_0x117ba1=_0x117ba1-0x1c3;const _0x5c6886=a0_0x5c68();let _0x7f2767=_0x5c6886[_0x117ba1];if(a0_0x7f27['ifAhQL']===undefined){var _0x32deb5=function(_0x1fad55){const _0x5d5c57='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x55cb6b='',_0xa84a0e='';for(let _0x582ee4=0x0,_0x45d181,_0x56d60f,_0x4f4b14=0x0;_0x56d60f=_0x1fad55['charAt'](_0x4f4b14++);~_0x56d60f&&(_0x45d181=_0x582ee4%0x4?_0x45d181*0x40+_0x56d60f:_0x56d60f,_0x582ee4++%0x4)?_0x55cb6b+=String['fromCharCode'](0xff&_0x45d181>>(-0x2*_0x582ee4&0x6)):0x0){_0x56d60f=_0x5d5c57['indexOf'](_0x56d60f);}for(let _0x32cc06=0x0,_0x40da07=_0x55cb6b['length'];_0x32cc06<_0x40da07;_0x32cc06++){_0xa84a0e+='%'+('00'+_0x55cb6b['charCodeAt'](_0x32cc06)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xa84a0e);};a0_0x7f27['nUGPjD']=_0x32deb5,a0_0x7f27['ckrhMX']={},a0_0x7f27['ifAhQL']=!![];}const _0x3da4af=_0x5c6886[0x0],_0x5c145c=_0x117ba1+_0x3da4af,_0x1b16bd=a0_0x7f27['ckrhMX'][_0x5c145c];return!_0x1b16bd?(_0x7f2767=a0_0x7f27['nUGPjD'](_0x7f2767),a0_0x7f27['ckrhMX'][_0x5c145c]=_0x7f2767):_0x7f2767=_0x1b16bd,_0x7f2767;}let executeQuery,executeTransaction,oracleDb;if(dbType===a0_0xe52136(0x231))oracleDb=require('../utils/db-oracle'),executeQuery=(_0x284bb0,_0x2b9ce9)=>oracleDb['executeQuery'](_0x284bb0,_0x2b9ce9),executeTransaction=_0x7f45e2=>oracleDb[a0_0xe52136(0x269)](_0x7f45e2);else{if(dbType===a0_0xe52136(0x259)){const mysqlDb=require(a0_0xe52136(0x229));executeQuery=(_0x269b57,_0x20a257)=>mysqlDb['executeQuery'](_0x269b57,_0x20a257),executeTransaction=_0x2fca49=>mysqlDb['executeTransaction'](_0x2fca49);}else{const db=require('../utils/db');executeQuery=db[a0_0xe52136(0x1e3)],executeTransaction=db[a0_0xe52136(0x269)];}}const excelParser=require('../utils/excel-parser'),importValidator=require('../utils/import-validator'),upsertBuilder=require('../utils/upsert-builder'),lookupResolver=require(a0_0xe52136(0x228));function a0_0x5c68(){const _0x405e91=['Dhfft2y','igf0ihjVDYa','z2v0rNvSBfLLyxi','Aw5Zzxj0x29UBhK','twDVwLK','Dg9ju09tDhjPBMC','zKfjqMq','qxj2Bgq','x2v4Axn0Aw5Nswq','zMLSDgvY','CMvWBgfJzq','Dhj1zq','y29SDw1UrM9YBwf0CW','sw1WB3j0igzPBguGDxbSB2fKzwqGyw5KihbHCNnLza','zMLUza','ndK2m2Lfq1DMwG','rgrJDKO','cIaGicaGicaGv0HfuKuG','Aw5MBW','B1PNyKi','zwXHsNi','BgfIzwXFDg9FzMLLBgrFBwfWx2j1AwX0','su5trvju','C2XPy2u','sLnqBvm','AM9Ix2LK','mtq0vNLzqvvL','zxjYB3jZ','qvbHCgK','ChjVBwLZzxm','mZy1s2ntAxLk','Dg9vChbLCKnHC2u','AgvHzgvYC19TyxbWzwq','ChjVy2vZC2LUz19SB29RDxbFzMLLBgrZ','B0X5qNa','zxHWB3j0CW','zxHLy3v0zvf1zxj5','zgvIDwC','BwLZC2LUz0zPzwXKCW','DMfSAwrHDgvfEgnLBfn0CNvJDhvYzq','u0Tjua','z2vUzxjHDgvjza','CgfKu3rHCNq','BgvUz3rO','DxbSB2fKoG','tgfIzwWGDg8GzMLLBgqGBwfWCgLUzYbIDwLSDa','y29SDw1U','C2v0sM9I','ndGXnZm3uwnLBfzZ','vMLxyvG','zM9YrwfJAa','rfPqqNC','yxbWBhLdB2X1Bw5gB3jTyxrZ','C3rHDhvZ','sMTWweW','y29TBwL0x2PVyL9JB21WBgv0zwq','AM9PBG','A1HhrfG','y291BNq','DxbKyxrLx2v4Axn0Aw5N','y2H1BMTsB3DZ','ieLoicG','CNHcC0C','mNDpAM1RDG','mtiXnZzisuLorKi','tLvmta','y29TBwL0x3bYB2nLC3nFzxjYB3i','DK5YwwS','twvyB0G','wxnOuNm','ChjVy2vZC0nVBw1PDePVyG','zwTvAu4','Aw5Zzxj0','zM9YBwf0rgf0zuzVCKrHDgfIyxnL','x2fJDgLVBG','rejFvfLqrq','qMfXqLy','q29SDw1UigzVCM1HDhmGyxbWBgLLzcb0BYbYB3DZ','q29TBwL0ihbYB2nLC3nPBMCGzMfPBgvK','ChjLDMLLD19WCM9JzxnZx2vYCM9Y','ndC5ntzzq0f6C0C','y2f0y2G','ntiZntK4A2jfq1Hl','BNvTyMvY','A3PeA0e','BNPJAwe','AgfZ','DhjPBq','yNvPBgrcyxrJAfvWzgf0zq','Cgf0Aa','zMfPBgvK','lI4VlI4VDgvTCc91CgXVywrZlW','ndC4odC0zwzUB2Dq','rhLkBwC','CevtD1i','y29SDw1Ux2zVCM1HDhnFyxbWBgLLza','ChjLDMLLD19LCNjVCG','sg5vBeG','yNvPBgrmywjLBfrVrMLLBgrnyxa','yxv0B0DLBMvYyxrLvxbZzxj0s2v5CW','zMXVB3i','CM93sw5KzxG','DhLWzq','u0Dju0u','zw52','lI4VDxrPBhmVBg9VA3vWlxjLC29SDMvY','lI4VDxrPBhmVzgiTBxLZCwW','Ahrbwve','C2TPCf9LEgLZDgLUzW','ChvZAa','mtq4nuTzwwPNAG','C3rYAw5N','mtm5mdiXotbMz2PLEM8','zw50CMLLCW','B3jHy2XL','Dw5SAw5R','yM9VBgvHBG','DLrbr3O','z2v0sM9I','wu5VrfC','mta3ngvTCMzVCq','zgf0zq','AM9IoG','ChjVy2vZC1bYzxzPzxDkB2i','ChjVy2vZC2LUzW','BM93','vvbeqvrf','x2DLBMvYyxrLzf91DwLK','cIaGicaGicaGu0vmrunuia','rhHwquu','y2HHCKf0','C2v0','AKDmwwu','uxD2B3u','DgvZDa','CM93CW','Aw5JBhvKzxm','uMvJB3jKigv4Axn0CYaOAw5Zzxj0x29UBhKGBw9KzsK','DxbSB2fKx2LK','tLPRqMq','lI4VDxrPBhmVBg9Nz2vY','q29TBwL0igPVyIbJB21WBgv0zwq','BwfW','y29TCgXLDgvK','uhjLDMLLDYbQB2iGzMfPBgvK','BuDvvNe','C3vIC3rYAw5N','zM9YBwf0qM9VBgvHBKzVCKrHDgfIyxnL','tKLHwgS','DMfSAwrHDgLUzW','ChjLDMLLD19VAW','q2fUBM90ignVBw1PDdOGChjLDMLLDYbZDgf0DxmGAxmG','sLfAq2C','z0PcyKW','BxLZCwW','Dg9tDhjPBMC','zM9YBwf0tNvTyMvYrM9Yrgf0ywjHC2u','uhjLDMLLDYbQB2iGy3jLyxrLza','uvHfrwK','zgv0zwn0rhvWBgLJyxrLC0LUrMLSzq','kqOGicaGica','s2T2Ehy','vMnArw4','uhjLDMLLDYbQB2iGy29TCgXLDgvK','AuDNEKi','shHSDem','Dg9mB3DLCKnHC2u','wLL2zwi','uhjLDMLLDYbWCM9JzxnZAw5NigzHAwXLza','zgv0zwn0rgf0ywjHC2veDxbSAwnHDgvZ','zxHLy3v0zvrYyw5Zywn0Aw9U','ve5qsMW','BwvZC2fNzq','uK1nwKm','zMLLBgrmywjLBhm','zMfSC2u','zMLSzv9JBgvHBNvWx2vYCM9Y','Bwf0y2G','x2vYCM9YCW','A2v5CW'];a0_0x5c68=function(){return _0x405e91;};return a0_0x5c68();}class ImportService{constructor(){this['_uploadDir']=null;}get['uploadDir'](){const _0x1b8275=a0_0xe52136,_0x161e1b={'htAYQ':'default'};if(!this['_uploadDir']){const _0x451b61=process[_0x1b8275(0x227)]['RESTFORGE_PROJECT_NAME']||_0x161e1b[_0x1b8275(0x22a)];this['_uploadDir']=process[_0x1b8275(0x227)]['UPLOAD_DIR']||path[_0x1b8275(0x1f7)](__dirname,_0x1b8275(0x21a)+_0x451b61);}return this['_uploadDir'];}[a0_0xe52136(0x1e8)](){const _0xe2918a=a0_0xe52136,_0x3b9e17={'NZkBd':'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789','qQcvr':function(_0x27e35e){return _0x27e35e();},'SeitB':function(_0x58d048,_0x3bbe83){return _0x58d048+_0x3bbe83;},'wUMBM':function(_0x59aedc,_0x50f655){return _0x59aedc<_0x50f655;}},_0x110d0a=_0x3b9e17[_0xe2918a(0x24a)],_0x334321=Date[_0xe2918a(0x23c)]()[_0xe2918a(0x25a)](0x24),_0x6da2ee=_0x3b9e17['qQcvr'](uuidv7)['replace'](/-/g,'')[_0xe2918a(0x251)](0x0,0xc-_0x334321['length']),_0x48c313=_0x3b9e17['SeitB'](_0x334321,_0x6da2ee)[_0xe2918a(0x251)](0x0,0xc);let _0x25dde1='';for(let _0x674dc2=0x0;_0x3b9e17['wUMBM'](_0x674dc2,0xc);_0x674dc2++){_0x48c313[_0x674dc2]?_0x25dde1+=_0x48c313[_0x674dc2]:_0x25dde1+=_0x110d0a[_0xe2918a(0x241)](Math[_0xe2918a(0x223)](Math['random']()*_0x110d0a[_0xe2918a(0x1ea)]));}return _0x25dde1;}[a0_0xe52136(0x221)](_0x3ffd44){const _0x30affb=a0_0xe52136,_0x408832={'YshRs':function(_0x37551c,_0x3a9410){return _0x37551c(_0x3a9410);},'PpiDD':_0x30affb(0x1ec)},_0x3537ee=new Map();if(!_0x3ffd44)return _0x3537ee;return Object[_0x30affb(0x230)](_0x3ffd44)[_0x30affb(0x1f1)](([_0x529395,_0x1764af])=>{const _0x25dd6a=_0x30affb,_0x56abbd=_0x408832[_0x25dd6a(0x204)](String,_0x1764af)[_0x25dd6a(0x216)]()[_0x25dd6a(0x1c9)](/\s+/g,'_')['replace'](/([a-z])([A-Z])/g,'$1_$2')['replace'](/([A-Z]+)([A-Z][a-z])/g,'$1_$2')[_0x25dd6a(0x265)]();_0x3537ee[_0x25dd6a(0x242)](_0x56abbd,_0x529395);}),logger[_0x30affb(0x1e4)]({'event':_0x30affb(0x1d4),'mappingCount':_0x3537ee['size']},_0x408832['PpiDD']),_0x3537ee;}['applyColumnFormats'](_0x15992e,_0x347cf5){const _0x2bd6dc=a0_0xe52136,_0x341872={'RMMZC':function(_0x31c65d,_0x542e76){return _0x31c65d===_0x542e76;},'kXGDX':_0x2bd6dc(0x233)};if(!_0x347cf5||Object['keys'](_0x347cf5)['length']===0x0)return _0x15992e;return _0x15992e['map'](_0x573db0=>{const _0x2fecc6=_0x2bd6dc,_0x53caf9={..._0x573db0};for(const [_0x57bca7,_0x4c842b]of Object[_0x2fecc6(0x230)](_0x347cf5)){const _0x3823fa=_0x53caf9[_0x57bca7];if(_0x3823fa===null||_0x3823fa===undefined||_0x341872[_0x2fecc6(0x26c)](_0x3823fa,'')){_0x53caf9[_0x57bca7]=null;continue;}switch(_0x4c842b[_0x2fecc6(0x225)]){case _0x2fecc6(0x238):_0x53caf9[_0x57bca7]=this['formatDateForDatabase'](_0x3823fa);break;case _0x2fecc6(0x212):_0x53caf9[_0x57bca7]=this[_0x2fecc6(0x25b)](_0x3823fa);break;case _0x341872[_0x2fecc6(0x1f8)]:_0x53caf9[_0x57bca7]=this[_0x2fecc6(0x252)](_0x3823fa);break;case'text':_0x53caf9[_0x57bca7]=String(_0x3823fa);break;default:break;}}return _0x53caf9;});}[a0_0xe52136(0x208)](_0x5ac0a0){const _0x4ecbed=a0_0xe52136,_0x44d065={'gEKqO':function(_0x45a141,_0x208d86){return _0x45a141===_0x208d86;},'fAIBd':function(_0x4a615b,_0x4896ff){return _0x4a615b===_0x4896ff;},'MgoZY':'string','bzZSk':function(_0x2d584b,_0x298b55){return _0x2d584b instanceof _0x298b55;},'Arvld':function(_0x394cbb,_0x5a2a9f){return _0x394cbb(_0x5a2a9f);},'vNrYk':function(_0x26fe97,_0x3966ab){return _0x26fe97(_0x3966ab);},'CzWjz':function(_0x136cdc,_0x192578){return _0x136cdc(_0x192578);}};if(_0x44d065['gEKqO'](_0x5ac0a0,null)||_0x44d065[_0x4ecbed(0x1c5)](_0x5ac0a0,undefined)||_0x5ac0a0==='')return null;if(typeof _0x5ac0a0===_0x44d065[_0x4ecbed(0x1c3)]&&/^\d{4}-\d{2}-\d{2}$/['test'](_0x5ac0a0))return _0x5ac0a0;if(_0x44d065['bzZSk'](_0x5ac0a0,Date)){if(isNaN(_0x5ac0a0['getTime']()))return null;const _0x1170c9=_0x5ac0a0[_0x4ecbed(0x275)](),_0x1dc03f=_0x44d065['Arvld'](String,_0x5ac0a0['getMonth']()+0x1)[_0x4ecbed(0x1e9)](0x2,'0'),_0x1e9155=String(_0x5ac0a0['getDate']())['padStart'](0x2,'0');return _0x1170c9+'-'+_0x1dc03f+'-'+_0x1e9155;}if(typeof _0x5ac0a0===_0x44d065[_0x4ecbed(0x1c3)]){const _0x7df6c0=_0x5ac0a0[_0x4ecbed(0x270)](/^(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})$/);if(_0x7df6c0){const _0x1286cd=_0x44d065[_0x4ecbed(0x202)](String,_0x7df6c0[0x1])['padStart'](0x2,'0'),_0x5e7148=_0x44d065[_0x4ecbed(0x1c6)](String,_0x7df6c0[0x2])['padStart'](0x2,'0'),_0x516c76=_0x7df6c0[0x3];return _0x516c76+'-'+_0x5e7148+'-'+_0x1286cd;}const _0x4f1716=_0x5ac0a0['match'](/^(\d{4})[\/\-](\d{1,2})[\/\-](\d{1,2})$/);if(_0x4f1716){const _0xfc37f2=_0x4f1716[0x1],_0x172f78=String(_0x4f1716[0x2])[_0x4ecbed(0x1e9)](0x2,'0'),_0x1fdc2b=_0x44d065['CzWjz'](String,_0x4f1716[0x3])[_0x4ecbed(0x1e9)](0x2,'0');return _0xfc37f2+'-'+_0x172f78+'-'+_0x1fdc2b;}}return _0x5ac0a0;}[a0_0xe52136(0x25b)](_0x394251){const _0x174010=a0_0xe52136,_0x1ffd70={'joRpJ':function(_0x259491,_0x539914){return _0x259491===_0x539914;},'aJSJJ':function(_0x4647eb,_0x5e2689){return _0x4647eb===_0x5e2689;},'upJDQ':function(_0x423098,_0x498ec8){return _0x423098===_0x498ec8;},'jMErr':function(_0x542ace,_0x1aa424){return _0x542ace(_0x1aa424);}};if(_0x1ffd70['joRpJ'](_0x394251,null)||_0x394251===undefined||_0x394251==='')return null;if(_0x1ffd70['aJSJJ'](typeof _0x394251,_0x174010(0x212)))return isNaN(_0x394251)?null:_0x394251;if(_0x1ffd70['upJDQ'](typeof _0x394251,_0x174010(0x22e))){let _0x492b0f=_0x394251[_0x174010(0x216)]();const _0x49f578=/,\d{1,2}$/[_0x174010(0x245)](_0x492b0f)&&!/,\d{3}/[_0x174010(0x245)](_0x492b0f);_0x49f578?_0x492b0f=_0x492b0f['replace'](/\./g,'')[_0x174010(0x1c9)](',','.'):_0x492b0f=_0x492b0f['replace'](/,/g,'');const _0x5a683b=_0x1ffd70['jMErr'](parseFloat,_0x492b0f);return isNaN(_0x5a683b)?null:_0x5a683b;}return null;}[a0_0xe52136(0x252)](_0x5e9f6f){const _0xf84294=a0_0xe52136,_0x438a59={'JkpXL':function(_0x5e4dc5,_0x4e1d88){return _0x5e4dc5===_0x4e1d88;},'RbvYD':'true','rxBsG':'false','ekUiN':function(_0x5958ed,_0x4293ba){return _0x5958ed===_0x4293ba;},'Kkvxv':'yes','fdefX':function(_0x22c707,_0x5f1adf){return _0x22c707===_0x5f1adf;}};if(_0x5e9f6f===null||_0x438a59[_0xf84294(0x1f5)](_0x5e9f6f,undefined)||_0x438a59[_0xf84294(0x1f5)](_0x5e9f6f,''))return null;if(typeof _0x5e9f6f===_0xf84294(0x233))return _0x5e9f6f?_0x438a59['RbvYD']:_0x438a59[_0xf84294(0x1fd)];if(_0x438a59[_0xf84294(0x206)](typeof _0x5e9f6f,'string')){const _0x34e80b=_0x5e9f6f['trim']()[_0xf84294(0x265)]();if([_0x438a59['RbvYD'],_0x438a59[_0xf84294(0x260)],'y','1'][_0xf84294(0x247)](_0x34e80b))return _0x438a59['RbvYD'];if([_0x438a59['rxBsG'],'no','n','0'][_0xf84294(0x247)](_0x34e80b))return _0x438a59['rxBsG'];return null;}if(_0x438a59['fdefX'](typeof _0x5e9f6f,'number'))return _0x5e9f6f?_0xf84294(0x1ca):_0xf84294(0x26e);return null;}async['uploadFile'](_0x365c27,_0x350e9f){const _0x251e51=a0_0xe52136,_0xde4986={'JSPmS':function(_0x16d06b,_0x18f928){return _0x16d06b||_0x18f928;},'tqEOf':_0x251e51(0x21e),'KtobM':_0x251e51(0x20c),'DZPBw':'request_scope_applied','FIvXG':'import_file_uploaded','JLagK':_0x251e51(0x1cc),'HxltC':_0x251e51(0x26f),'NIaXk':'Failed\x20to\x20cleanup\x20file'},_0x1300ab=this[_0x251e51(0x1e8)]();try{let {headers:_0x46c2f8,rows:_0x4f782b,totalRows:_0x563c3c}=await excelParser['parseExcelFile'](_0x365c27[_0x251e51(0x218)]);const _0x48fcf4=this[_0x251e51(0x221)](_0x350e9f[_0x251e51(0x26d)]),_0x26cd09=_0x46c2f8['map'](_0x5da347=>{const _0xdad645=_0x251e51,_0x441605=_0x48fcf4['get'](_0x5da347);return _0xde4986[_0xdad645(0x1d7)](_0x441605,_0x5da347);});_0x4f782b=_0x4f782b['map'](_0x3a89df=>{const _0x16b8b6={};return _0x46c2f8['forEach']((_0x38dbe0,_0x52aaa5)=>{const _0x3aead7=_0x26cd09[_0x52aaa5];_0x16b8b6[_0x3aead7]=_0x3a89df[_0x38dbe0];}),_0x16b8b6;}),_0x46c2f8=_0x26cd09,logger[_0x251e51(0x1e4)]({'event':_0x251e51(0x1df),'original':_0x46c2f8[_0x251e51(0x1ea)],'mapped':_0x26cd09['filter']((_0x27a40b,_0x3a3fc8)=>_0x27a40b!==_0x46c2f8[_0x3a3fc8])[_0x251e51(0x1ea)]},'Excel\x20headers\x20mapped\x20to\x20field\x20names');_0x350e9f['columnFormats']&&Object['keys'](_0x350e9f[_0x251e51(0x1cb)])['length']>0x0&&(_0x4f782b=this[_0x251e51(0x1f3)](_0x4f782b,_0x350e9f['columnFormats']),logger[_0x251e51(0x1e4)]({'event':_0xde4986[_0x251e51(0x273)],'formatCount':Object[_0x251e51(0x272)](_0x350e9f['columnFormats'])[_0x251e51(0x1ea)],'formats':Object['keys'](_0x350e9f['columnFormats'])},_0xde4986['KtobM']));if(_0x350e9f['scopeOverride']&&_0x350e9f['scopeOverride'][_0x251e51(0x1ed)]){const {column:_0x18a3e8,value:_0x22acd4}=_0x350e9f['scopeOverride'];_0x4f782b=_0x4f782b['map'](_0x3ae93c=>({..._0x3ae93c,[_0x18a3e8]:_0x22acd4})),logger['debug']({'event':_0xde4986[_0x251e51(0x1f2)],'column':_0x18a3e8,'rowCount':_0x4f782b[_0x251e51(0x1ea)]},'Request\x20scope\x20override\x20applied\x20to\x20imported\x20rows');}const _0x5277dc=_0x350e9f['lookupFields']?Object['values'](_0x350e9f['lookupFields'])['map'](_0x38340a=>_0x38340a['targetField']):[],_0x3e4829=_0x350e9f['fieldName'][_0x251e51(0x1c8)](_0x672abd=>!_0x5277dc['includes'](_0x672abd)),_0x292879=excelParser[_0x251e51(0x1e6)](_0x46c2f8,_0x3e4829);if(!_0x292879['valid']){await fs[_0x251e51(0x232)](_0x365c27[_0x251e51(0x218)]);throw new Error('Excel\x20structure\x20mismatch.\x20Missing\x20fields:\x20'+_0x292879[_0x251e51(0x1e5)]['join'](',\x20'));}const _0x55196e={'upload_id':_0x1300ab,'filename':_0x365c27['originalname'],'total_rows':_0x563c3c,'headers':_0x46c2f8,'rows':_0x4f782b,'params':_0x350e9f,'created_at':new Date()[_0x251e51(0x1c4)]()};return await redisHelper[_0x251e51(0x1ee)](_0x251e51(0x1eb)+_0x1300ab,_0x55196e,0xe10),await fs['unlink'](_0x365c27['path']),logger[_0x251e51(0x1d1)]({'event':_0xde4986['FIvXG'],'uploadId':_0x1300ab,'filename':_0x365c27['originalname'],'totalRows':_0x563c3c},_0xde4986['JLagK']),{'upload_id':_0x1300ab,'total_rows':_0x563c3c,'preview':_0x4f782b[_0x251e51(0x1d6)](0x0,0xa)};}catch(_0x5b6850){try{await fs['unlink'](_0x365c27['path']);}catch(_0x1e39bf){logError(_0x1e39bf,{'event':_0xde4986[_0x251e51(0x264)]},_0xde4986[_0x251e51(0x253)]);}throw _0x5b6850;}}async['createPreviewJob'](_0x358359){const _0x1d74d8=a0_0xe52136,_0x42a34c={'nzcia':function(_0x1020ae,_0x4464af,_0x1536a7,_0x154ebc){return _0x1020ae(_0x4464af,_0x1536a7,_0x154ebc);},'Ctmkl':_0x1d74d8(0x20e),'EbMJH':'Upload\x20data\x20not\x20found\x20or\x20expired','weJSQ':'preview_job_created'},_0xf7a6ac=this['generateId'](),_0x42e4fe=await redisHelper[_0x1d74d8(0x235)]('upload:'+_0x358359);if(!_0x42e4fe)throw new Error(_0x42a34c['EbMJH']);const _0x16b92e={'job_id':_0xf7a6ac,'upload_id':_0x358359,'status':_0x1d74d8(0x254),'progress':0x0,'created_at':new Date()[_0x1d74d8(0x1c4)](),'params':_0x42e4fe['params']};return await redisHelper['setJob'](_0x1d74d8(0x239)+_0xf7a6ac,_0x16b92e,0xe10),logger['info']({'event':_0x42a34c['weJSQ'],'jobId':_0xf7a6ac,'uploadId':_0x358359},_0x1d74d8(0x25c)),this[_0x1d74d8(0x23a)](_0xf7a6ac,_0x358359,_0x42e4fe)[_0x1d74d8(0x210)](_0x550454=>{const _0x3afd0c=_0x1d74d8;_0x42a34c[_0x3afd0c(0x214)](logError,_0x550454,{'event':_0x42a34c['Ctmkl'],'jobId':_0xf7a6ac},_0x3afd0c(0x267));}),{'job_id':_0xf7a6ac,'status':'validating'};}[a0_0xe52136(0x222)](_0x5b89d7,_0x48ed3f){const _0x286bd1={'YNoDW':function(_0x29f3e6,_0xc4bf2){return _0x29f3e6===_0xc4bf2;},'APapi':function(_0x32096c){return _0x32096c();},'rvJEc':'uuid_auto_generated'};_0x5b89d7['forEach']((_0x256393,_0x5c9fe2)=>{const _0x1f22c2=a0_0x7f27;_0x48ed3f[_0x1f22c2(0x1f1)](_0x2ee605=>{const _0x471c9b=_0x1f22c2,_0x595251=_0x256393[_0x2ee605];if(_0x595251===null||_0x286bd1[_0x471c9b(0x236)](_0x595251,undefined)||_0x286bd1[_0x471c9b(0x236)](_0x595251,'')||_0x286bd1['YNoDW'](String(_0x595251)[_0x471c9b(0x216)](),'-')){const _0x1ca72b=_0x286bd1[_0x471c9b(0x1db)](uuidv7);_0x256393[_0x2ee605]=_0x1ca72b,_0x256393['_generated_uuid']=_0x256393[_0x471c9b(0x23e)]||{},_0x256393['_generated_uuid'][_0x2ee605]=_0x1ca72b,logger[_0x471c9b(0x1e4)]({'event':_0x286bd1['rvJEc'],'rowIndex':_0x5c9fe2,'field':_0x2ee605,'uuid':_0x1ca72b},'Auto-generated\x20UUID\x20for\x20'+_0x2ee605+_0x471c9b(0x274)+(_0x5c9fe2+0x2));}});});}async['processPreviewJob'](_0x3d4909,_0x199ca7,_0x28194){const _0x55c1f6=a0_0xe52136,_0x500451={'DdcvJ':function(_0x1d3efb,_0x5b433e){return _0x1d3efb===_0x5b433e;},'OLafy':function(_0x2a65a4,_0x554ec7){return _0x2a65a4===_0x554ec7;},'vBGeZ':'UPDATE','gJBbL':function(_0x25e208,_0x2bc773){return _0x25e208===_0x2bc773;},'elaJr':'SKIP','ViWaX':function(_0x17bc2b,_0x1e0251){return _0x17bc2b>_0x1e0251;},'pESwR':'Processing\x20lookup\x20fields','DPDsM':function(_0x431d4f,_0x5bc895){return _0x431d4f>_0x5bc895;},'DxVAE':_0x55c1f6(0x21f),'mGUVq':_0x55c1f6(0x255),'emgYa':_0x55c1f6(0x262),'JQZCg':function(_0x1c8efd,_0x42594c,_0x4f6ed2,_0x1b3fb6){return _0x1c8efd(_0x42594c,_0x4f6ed2,_0x1b3fb6);},'DyJmg':_0x55c1f6(0x24f)};try{let {rows:_0x35675e,params:_0x41a33f}=_0x28194;const {requiredFields:_0x5b5b9f,validations:_0x2ba49b,upsertKeys:_0x24eaef,tableName:_0xb71655,primaryKey:_0x1f1c9d,fieldName:_0x3656fd,upsertStrategy:_0xfa40b4,lookupFields:_0x433ee3}=_0x41a33f;this[_0x55c1f6(0x222)](_0x35675e,_0x24eaef);let _0x2b8736=[];if(_0x433ee3&&_0x500451[_0x55c1f6(0x1f0)](Object[_0x55c1f6(0x272)](_0x433ee3)[_0x55c1f6(0x1ea)],0x0)){logger[_0x55c1f6(0x1d1)]({'event':_0x55c1f6(0x1e0),'jobId':_0x3d4909,'lookupFieldCount':Object[_0x55c1f6(0x272)](_0x433ee3)[_0x55c1f6(0x1ea)]},_0x500451[_0x55c1f6(0x21d)]);const _0x5c101a=await lookupResolver['processLookupFields'](_0x35675e,_0x433ee3);_0x35675e=_0x5c101a['processedRows'],_0x2b8736=_0x5c101a[_0x55c1f6(0x1da)],_0x28194[_0x55c1f6(0x246)]=_0x35675e;}const _0x2fb677=importValidator['batchValidateRows'](_0x35675e,_0x5b5b9f||[],_0x2ba49b||{});_0x2b8736[_0x55c1f6(0x1f1)](_0x51bf48=>{const _0x598d29=_0x55c1f6,_0x199c17=_0x2fb677[_0x598d29(0x1cd)](_0xbedc77=>_0xbedc77['rowIndex']===_0x51bf48['rowIndex']);_0x199c17?_0x199c17[_0x598d29(0x1da)][_0x598d29(0x22c)](_0x51bf48['message']):_0x2fb677[_0x598d29(0x22c)]({'rowIndex':_0x51bf48[_0x598d29(0x224)],'rowData':_0x35675e[_0x51bf48['rowIndex']],'errors':[_0x51bf48[_0x598d29(0x26b)]]});});const _0x586fbb=importValidator[_0x55c1f6(0x25e)](_0x35675e,_0x24eaef);_0x586fbb['forEach'](_0x22b8a3=>{const _0x3b6c8e=_0x55c1f6,_0x7bf00c=_0x2fb677['find'](_0x5afa69=>_0x5afa69['rowIndex']===_0x22b8a3[_0x3b6c8e(0x224)]),_0x1c7524=_0x24eaef[_0x3b6c8e(0x24d)](_0x1a5f95=>_0x1a5f95[_0x3b6c8e(0x1de)]())[_0x3b6c8e(0x1f7)](',\x20'),_0x28891b='Duplicate\x20value\x20for\x20'+_0x1c7524;_0x7bf00c?_0x7bf00c['errors'][_0x3b6c8e(0x22c)](_0x28891b):_0x2fb677[_0x3b6c8e(0x22c)]({'rowIndex':_0x22b8a3[_0x3b6c8e(0x224)],'rowData':_0x35675e[_0x22b8a3['rowIndex']],'errors':[_0x28891b]});}),await this[_0x55c1f6(0x268)](_0x35675e,_0x24eaef,_0xb71655,_0x1f1c9d,_0xfa40b4,_0x2fb677),_0x2fb677['forEach'](_0x3057a9=>{const _0x23b90d=_0x55c1f6,_0x45f32e=_0x35675e[_0x3057a9[_0x23b90d(0x224)]];_0x45f32e&&(_0x45f32e[_0x23b90d(0x271)]=_0x3057a9['errors']);});let _0x261fef=0x0,_0x166e08=0x0,_0x47699e=0x0;_0x35675e[_0x55c1f6(0x1f1)](_0x4e715e=>{const _0x961445=_0x55c1f6;if(_0x500451[_0x961445(0x1cf)](_0x4e715e['_action'],'INSERT'))_0x261fef++;else{if(_0x500451['OLafy'](_0x4e715e[_0x961445(0x209)],_0x500451['vBGeZ']))_0x166e08++;else _0x500451[_0x961445(0x258)](_0x4e715e[_0x961445(0x209)],_0x500451[_0x961445(0x1d3)])&&_0x47699e++;}});const _0x1b8e93={'job_id':_0x3d4909,'upload_id':_0x199ca7,'status':_0x500451['DPDsM'](_0x2fb677['length'],0x0)?_0x500451[_0x55c1f6(0x240)]:_0x500451[_0x55c1f6(0x250)],'progress':0x64,'created_at':_0x28194['created_at'],'completed_at':new Date()[_0x55c1f6(0x1c4)](),'preview':{'total_rows':_0x35675e['length'],'insert_count':_0x261fef,'update_count':_0x166e08,'skip_count':_0x47699e,'error_count':_0x2fb677[_0x55c1f6(0x1ea)],'errors':_0x2fb677,'data':_0x35675e,'sample_insert':_0x35675e['filter'](_0x443010=>_0x443010[_0x55c1f6(0x209)]===_0x55c1f6(0x1d5))['slice'](0x0,0x5),'sample_update':_0x35675e[_0x55c1f6(0x1c8)](_0x3cc180=>_0x3cc180[_0x55c1f6(0x209)]===_0x55c1f6(0x23d))['slice'](0x0,0x5),'sample_skip':_0x35675e['filter'](_0x3b98a9=>_0x3b98a9[_0x55c1f6(0x209)]===_0x55c1f6(0x1e7))['slice'](0x0,0x5)},'params':_0x41a33f};await redisHelper[_0x55c1f6(0x1ee)]('job:'+_0x3d4909,_0x1b8e93,0xe10),_0x28194['rows']=_0x35675e,await redisHelper['setJob'](_0x55c1f6(0x1eb)+_0x199ca7,_0x28194,0xe10),logger['info']({'event':'preview_job_completed','jobId':_0x3d4909,'status':_0x1b8e93[_0x55c1f6(0x1f4)],'insertCount':_0x261fef,'updateCount':_0x166e08,'skipCount':_0x47699e,'errorCount':_0x2fb677['length']},_0x500451['emgYa']);}catch(_0x1f1ecb){_0x500451[_0x55c1f6(0x257)](logError,_0x1f1ecb,{'event':'preview_job_failed','jobId':_0x3d4909},_0x500451[_0x55c1f6(0x21c)]),await redisHelper[_0x55c1f6(0x1ee)](_0x55c1f6(0x239)+_0x3d4909,{'job_id':_0x3d4909,'upload_id':_0x199ca7,'status':_0x55c1f6(0x219),'progress':0x0,'error':_0x1f1ecb[_0x55c1f6(0x26b)],'created_at':new Date()['toISOString'](),'completed_at':new Date()[_0x55c1f6(0x1c4)]()},0xe10);}}async['detectDatabaseDuplicates'](_0x4f1513,_0x23c6c8,_0x3d5ffa,_0x162875,_0x4f68da=a0_0xe52136(0x1fa),_0x445201=[]){const _0x4e6343=a0_0xe52136,_0x486df0={'BaqBV':_0x4e6343(0x200),'qZOGv':function(_0x270715,_0x259bf4){return _0x270715===_0x259bf4;},'rFsIB':_0x4e6343(0x1fa),'oZgbB':_0x4e6343(0x276),'oLyBp':function(_0x2289e2,_0xf74c38){return _0x2289e2===_0xf74c38;},'VcZEn':_0x4e6343(0x22b),'aWcnc':'SKIP','KOsTY':function(_0x1d9431,_0x51c7a1){return _0x1d9431===_0x51c7a1;},'TNPJl':function(_0x1e1a72,_0x6f7d3c){return _0x1e1a72(_0x6f7d3c);},'klBUd':function(_0x31f1f0,_0x37b5e5){return _0x31f1f0>_0x37b5e5;}},_0x39e3d4=upsertBuilder[_0x4e6343(0x1fb)](_0x4f1513,0x64);for(const _0x303a1f of _0x39e3d4){const _0x515414=_0x303a1f['map'](_0x1c1628=>_0x1c1628[_0x23c6c8[0x0]]),_0x33f7d5=_0x515414['map'](_0x122302=>{const _0x11e66c=_0x4e6343;if(_0x122302===null||_0x122302===undefined)return _0x486df0[_0x11e66c(0x20b)];return'\x27'+String(_0x122302)['replace'](/'/g,'\x27\x27')+'\x27';}),_0x260350=_0x4e6343(0x23f)+_0x162875+',\x20'+_0x23c6c8['join'](',\x20')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20'+_0x3d5ffa+_0x4e6343(0x1d0)+_0x23c6c8[0x0]+_0x4e6343(0x1fc)+_0x33f7d5[_0x4e6343(0x1f7)](',\x20')+_0x4e6343(0x25f);let _0x312cde=await _0x486df0[_0x4e6343(0x26a)](executeQuery,_0x260350);dbType===_0x4e6343(0x231)&&_0x312cde&&_0x486df0['klBUd'](_0x312cde['length'],0x0)&&(_0x312cde=_0x312cde[_0x4e6343(0x24d)](_0x4b2d9c=>{const _0x28bc37=_0x4e6343,_0x459adb={};for(const [_0x19b455,_0x4d45f9]of Object[_0x28bc37(0x230)](_0x4b2d9c)){_0x459adb[_0x19b455['toLowerCase']()]=_0x4d45f9;}return _0x459adb;}));const _0x4b9e7a=new Map();_0x312cde['forEach'](_0x59d6f6=>{const _0x1675c9=_0x4e6343,_0x1d44fc=_0x59d6f6[_0x23c6c8[0x0]];_0x4b9e7a[_0x1675c9(0x242)](_0x1d44fc,_0x59d6f6);}),_0x303a1f[_0x4e6343(0x1f1)]((_0x5a1c71,_0x3440fa)=>{const _0x21b9b2=_0x4e6343,_0x4eecac=_0x5a1c71[_0x23c6c8[0x0]],_0x10b703=_0x4b9e7a['get'](_0x4eecac);if(_0x10b703){if(_0x486df0['qZOGv'](_0x4f68da,_0x486df0['rFsIB']))_0x5a1c71['_action']=_0x21b9b2(0x23d),_0x5a1c71[_0x21b9b2(0x1c7)]=_0x10b703[_0x162875];else{if(_0x486df0['qZOGv'](_0x4f68da,_0x486df0[_0x21b9b2(0x1d2)])){_0x5a1c71['_action']='SKIP',_0x5a1c71['_errors']=_0x5a1c71[_0x21b9b2(0x271)]||[],_0x5a1c71[_0x21b9b2(0x271)]['push'](_0x21b9b2(0x248));const _0x52da18=_0x4f1513['indexOf'](_0x5a1c71);_0x52da18!==-0x1&&_0x445201[_0x21b9b2(0x22c)]({'rowIndex':_0x52da18,'rowData':_0x5a1c71,'errors':[_0x21b9b2(0x248)]});}else _0x486df0['oLyBp'](_0x4f68da,_0x486df0['VcZEn'])&&(_0x5a1c71['_action']=_0x486df0['aWcnc']);}}else{if(_0x486df0[_0x21b9b2(0x1e1)](_0x4f68da,'update_existing'))_0x5a1c71[_0x21b9b2(0x209)]='INSERT';else(_0x486df0['KOsTY'](_0x4f68da,_0x21b9b2(0x276))||_0x486df0[_0x21b9b2(0x1e1)](_0x4f68da,_0x486df0[_0x21b9b2(0x261)]))&&(_0x5a1c71[_0x21b9b2(0x209)]='INSERT');}});}}async['createCommitJob'](_0x5601d2){const _0x215332=a0_0xe52136,_0x32e113={'ZYveb':_0x215332(0x201),'MeXoH':'Preview\x20job\x20not\x20found\x20or\x20expired','QXEEi':function(_0x56107b,_0x399470){return _0x56107b!==_0x399470;},'vTAGz':_0x215332(0x255),'mFDvw':'commit_job_created','SGISE':_0x215332(0x23b)},_0x525f1f=this[_0x215332(0x1e8)](),_0x51f51a=await redisHelper[_0x215332(0x235)](_0x215332(0x239)+_0x5601d2);if(!_0x51f51a)throw new Error(_0x32e113[_0x215332(0x203)]);if(_0x32e113[_0x215332(0x25d)](_0x51f51a['status'],_0x32e113[_0x215332(0x234)]))throw new Error(_0x215332(0x256)+_0x51f51a['status']);const _0x2774a8={'job_id':_0x525f1f,'upload_id':_0x51f51a[_0x215332(0x249)],'preview_job_id':_0x5601d2,'status':'processing','progress':0x0,'created_at':new Date()[_0x215332(0x1c4)](),'params':_0x51f51a['params']};return await redisHelper['setJob']('job:'+_0x525f1f,_0x2774a8,0xe10),logger[_0x215332(0x1d1)]({'event':_0x32e113['mFDvw'],'jobId':_0x525f1f,'previewJobId':_0x5601d2},'Commit\x20job\x20created'),this[_0x215332(0x205)](_0x525f1f,_0x51f51a)[_0x215332(0x210)](_0x5dde99=>{const _0x25f006=_0x215332;logError(_0x5dde99,{'event':_0x32e113[_0x25f006(0x266)],'jobId':_0x525f1f},_0x25f006(0x20d));}),{'job_id':_0x525f1f,'status':_0x32e113[_0x215332(0x226)]};}async[a0_0xe52136(0x205)](_0x2284c5,_0x319622){const _0x5edf94=a0_0xe52136,_0x39623a={'kzDkA':'insert','ZSpYX':'import_fields_filtered','jGLYe':'Import\x20fields\x20filtered\x20(excluded\x20lookup\x20source\x20columns)','NukjG':function(_0x68649,_0x8be731){return _0x68649>_0x8be731;},'yhPEz':function(_0x4f6e1f,_0x36063f){return _0x4f6e1f>_0x36063f;},'HnUlH':_0x5edf94(0x24e),'WJvNg':_0x5edf94(0x1f6),'iGgzB':'Commit\x20job\x20failed'};try{const _0x2daf7b=await redisHelper[_0x5edf94(0x235)](_0x5edf94(0x1eb)+_0x319622['upload_id']);if(!_0x2daf7b)throw new Error('Upload\x20data\x20not\x20found\x20or\x20expired');const {rows:_0x46ae34,params:_0x4110dd}=_0x2daf7b,{tableName:_0x4ea42d,fieldName:_0x2b00b2,primaryKey:_0x33b016,upsertKeys:_0x28b2bd,excludeFromImport:_0x76ee90,lookupFields:_0x230f5a,columnFormats:_0x42844e}=_0x4110dd,_0x476825=_0x230f5a?Object['keys'](_0x230f5a):[],_0x3057cd=new Set([..._0x76ee90||[],..._0x476825]);let _0x12a35f=_0x2b00b2;_0x3057cd['size']>0x0&&(_0x12a35f=_0x2b00b2[_0x5edf94(0x1c8)](_0x2c033d=>!_0x3057cd[_0x5edf94(0x215)](_0x2c033d)),logger['debug']({'event':_0x39623a['ZSpYX'],'originalCount':_0x2b00b2[_0x5edf94(0x1ea)],'filteredCount':_0x12a35f[_0x5edf94(0x1ea)],'excludedFields':Array['from'](_0x3057cd),'lookupSourceFields':_0x476825},_0x39623a[_0x5edf94(0x243)]));const _0x3db231=_0x46ae34[_0x5edf94(0x1c8)](_0x204db3=>_0x204db3[_0x5edf94(0x209)]===_0x5edf94(0x1d5)),_0xc83ce3=_0x46ae34[_0x5edf94(0x1c8)](_0x10b586=>_0x10b586['_action']==='UPDATE');let _0x3d02b8=0x0,_0x17472f=0x0;const _0x1af906=[];if(_0x3db231[_0x5edf94(0x1ea)]>0x0){const _0x488557=upsertBuilder['chunkRows'](_0x3db231,0x64);for(const _0x179678 of _0x488557){const {query:_0x1cac79}=upsertBuilder['buildBatchInsert'](_0x179678,_0x4ea42d,_0x12a35f,_0x42844e||{});_0x1cac79&&_0x1af906['push']({'sql':_0x1cac79,'count':_0x179678['length'],'type':_0x5edf94(0x207)});}}if(_0x39623a['NukjG'](_0xc83ce3[_0x5edf94(0x1ea)],0x0)){const _0x5d50b7=upsertBuilder[_0x5edf94(0x1fb)](_0xc83ce3,0x64);for(const _0x3f5644 of _0x5d50b7){const {query:_0x3c781f}=upsertBuilder[_0x5edf94(0x217)](_0x3f5644,_0x4ea42d,_0x12a35f,_0x33b016,_0x28b2bd,_0x42844e||{});_0x3c781f&&_0x1af906[_0x5edf94(0x22c)]({'sql':_0x3c781f,'count':_0x3f5644['length'],'type':'update'});}}_0x39623a['yhPEz'](_0x1af906[_0x5edf94(0x1ea)],0x0)&&await executeTransaction(_0x1af906[_0x5edf94(0x24d)](_0x2494dd=>({'sql':_0x2494dd['sql'],'params':[]})));_0x1af906[_0x5edf94(0x1f1)](_0x135bd9=>{const _0x873a63=_0x5edf94;if(_0x135bd9[_0x873a63(0x225)]===_0x39623a[_0x873a63(0x213)])_0x3d02b8+=_0x135bd9[_0x873a63(0x1f9)];else _0x17472f+=_0x135bd9['count'];});const _0x24ef63={'job_id':_0x2284c5,'upload_id':_0x319622[_0x5edf94(0x249)],'preview_job_id':_0x319622[_0x5edf94(0x1d8)],'status':_0x39623a[_0x5edf94(0x220)],'progress':0x64,'created_at':_0x319622['created_at'],'started_at':new Date()[_0x5edf94(0x1c4)](),'completed_at':new Date()['toISOString'](),'result':{'total_rows':_0x46ae34['length'],'inserted_rows':_0x3d02b8,'updated_rows':_0x17472f,'skipped_rows':0x0,'failed_rows':0x0,'errors':[]},'params':_0x4110dd};await redisHelper[_0x5edf94(0x1ee)](_0x5edf94(0x239)+_0x2284c5,_0x24ef63,0xe10),logger['info']({'event':_0x39623a['WJvNg'],'jobId':_0x2284c5,'insertedCount':_0x3d02b8,'updatedCount':_0x17472f},_0x5edf94(0x24c));}catch(_0x18c314){logError(_0x18c314,{'event':'commit_job_failed','jobId':_0x2284c5},_0x39623a[_0x5edf94(0x263)]),await redisHelper[_0x5edf94(0x1ee)](_0x5edf94(0x239)+_0x2284c5,{'job_id':_0x2284c5,'upload_id':_0x319622['upload_id'],'preview_job_id':_0x319622[_0x5edf94(0x1d8)],'status':_0x5edf94(0x219),'progress':0x0,'error':_0x18c314['message'],'created_at':_0x319622['created_at'],'started_at':new Date()[_0x5edf94(0x1c4)](),'completed_at':new Date()['toISOString']()},0xe10);}}async['getJobStatus'](_0x39ec52){const _0x29c880=a0_0xe52136,_0x4edce1={'Qwvou':'Job\x20not\x20found\x20or\x20expired'},_0x26c4c7=await redisHelper[_0x29c880(0x235)]('job:'+_0x39ec52);if(!_0x26c4c7)return{'success':![],'error':_0x4edce1[_0x29c880(0x244)]};return{'success':!![],'data':_0x26c4c7};}}module[a0_0xe52136(0x1e2)]=new ImportService();