@restforgejs/platform 4.2.8 → 4.3.2

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 (325) 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/payload/payload-runner.js +1 -1
  25. package/generators/lib/templates/dashboard-catalog.js +1 -437
  26. package/generators/lib/templates/db-connection-env.js +1 -212
  27. package/generators/lib/templates/dbschema-catalog.js +1 -489
  28. package/generators/lib/templates/field-validation-catalog.js +1 -531
  29. package/generators/lib/templates/mysql-template.js +1 -3863
  30. package/generators/lib/templates/oracle-template.js +1 -3915
  31. package/generators/lib/templates/postgres-template.js +1 -5838
  32. package/generators/lib/templates/query-declarative-catalog.js +1 -199
  33. package/generators/lib/templates/sqlite-template.js +1 -3440
  34. package/generators/lib/utils/env-manager.js +6 -0
  35. package/generators/lib/utils/path-validator.js +71 -0
  36. package/generators/lib/validators/payload-validator.js +1 -2
  37. package/integrity-manifest.json +28 -10
  38. package/package.json +11 -3
  39. package/scripts/verify-integrity.js +1 -1
  40. package/server.js +1 -1
  41. package/src/components/handlers/adjust_handler.js +1 -1
  42. package/src/components/handlers/audit_handler.js +1 -1
  43. package/src/components/handlers/delete_handler.js +1 -1
  44. package/src/components/handlers/export_handler.js +1 -1
  45. package/src/components/handlers/import_handler.js +1 -1
  46. package/src/components/handlers/insert_handler.js +1 -1
  47. package/src/components/handlers/update_handler.js +1 -1
  48. package/src/components/handlers/upload_handler.js +1 -1
  49. package/src/components/handlers/workflow_handler.js +1 -1
  50. package/src/components/integrations/webhook.js +1 -1
  51. package/src/consumers/baseConsumer.js +1 -1
  52. package/src/consumers/declarativeMapper.js +1 -1
  53. package/src/consumers/handlers/apiHandler.js +1 -1
  54. package/src/consumers/handlers/consoleHandler.js +1 -1
  55. package/src/consumers/handlers/databaseHandler.js +1 -1
  56. package/src/consumers/handlers/index.js +1 -1
  57. package/src/consumers/handlers/kafkaHandler.js +1 -1
  58. package/src/consumers/index.js +1 -1
  59. package/src/consumers/messageTransformer.js +1 -1
  60. package/src/consumers/validator.js +1 -1
  61. package/src/core/db/dialect/base-dialect.js +1 -1
  62. package/src/core/db/dialect/index.js +1 -1
  63. package/src/core/db/dialect/mysql-dialect.js +1 -1
  64. package/src/core/db/dialect/oracle-dialect.js +1 -1
  65. package/src/core/db/dialect/postgres-dialect.js +1 -1
  66. package/src/core/db/dialect/sqlite-dialect.js +1 -1
  67. package/src/core/db/flatten-helper.js +1 -1
  68. package/src/core/db/query-builder-error.js +1 -1
  69. package/src/core/db/query-builder.js +1 -1
  70. package/src/core/db/relation-helper.js +1 -1
  71. package/src/core/handlers/delete_handler.js +1 -1
  72. package/src/core/handlers/insert_handler.js +1 -1
  73. package/src/core/handlers/update_handler.js +1 -1
  74. package/src/core/models/base-model.js +1 -1
  75. package/src/core/utils/cache-manager.js +1 -1
  76. package/src/core/utils/component-engine.js +1 -1
  77. package/src/core/utils/context-builder.js +1 -1
  78. package/src/core/utils/datetime-formatter.js +1 -1
  79. package/src/core/utils/datetime-parser.js +1 -1
  80. package/src/core/utils/db.js +1 -1
  81. package/src/core/utils/logger.js +1 -1
  82. package/src/core/utils/payload-loader.js +1 -1
  83. package/src/core/utils/security-checks.js +1 -1
  84. package/src/middleware/body-options.js +1 -1
  85. package/src/middleware/cors.js +1 -1
  86. package/src/middleware/idempotency.js +1 -1
  87. package/src/middleware/rate-limiter.js +1 -1
  88. package/src/middleware/request-logger.js +1 -1
  89. package/src/middleware/security-headers.js +1 -1
  90. package/src/models/base-model-mysql.js +1 -1
  91. package/src/models/base-model-oracle.js +1 -1
  92. package/src/models/base-model-sqlite.js +1 -1
  93. package/src/models/base-model.js +1 -1
  94. package/src/pro/caching/redis-client.js +1 -1
  95. package/src/pro/caching/redis-helper.js +1 -1
  96. package/src/pro/consumers/baseConsumer.js +1 -1
  97. package/src/pro/consumers/declarativeMapper.js +1 -1
  98. package/src/pro/consumers/handlers/apiHandler.js +1 -1
  99. package/src/pro/consumers/handlers/consoleHandler.js +1 -1
  100. package/src/pro/consumers/handlers/databaseHandler.js +1 -1
  101. package/src/pro/consumers/handlers/index.js +1 -1
  102. package/src/pro/consumers/handlers/kafkaHandler.js +1 -1
  103. package/src/pro/consumers/index.js +1 -1
  104. package/src/pro/consumers/messageTransformer.js +1 -1
  105. package/src/pro/consumers/validator.js +1 -1
  106. package/src/pro/database/base-model-mysql.js +1 -1
  107. package/src/pro/database/base-model-oracle.js +1 -1
  108. package/src/pro/database/base-model-sqlite.js +1 -1
  109. package/src/pro/database/db-mysql.js +1 -1
  110. package/src/pro/database/db-oracle.js +1 -1
  111. package/src/pro/database/db-sqlite.js +1 -1
  112. package/src/pro/excel/excel-generator.js +1 -1
  113. package/src/pro/excel/excel-parser.js +1 -1
  114. package/src/pro/excel/export-service.js +1 -1
  115. package/src/pro/excel/export_handler.js +1 -1
  116. package/src/pro/excel/import-service.js +1 -1
  117. package/src/pro/excel/import-validator.js +1 -1
  118. package/src/pro/excel/import_handler.js +1 -1
  119. package/src/pro/excel/upsert-builder.js +1 -1
  120. package/src/pro/idgen/idgen-routes.js +1 -1
  121. package/src/pro/integrations/lookup-resolver.js +1 -1
  122. package/src/pro/integrations/upload-handler-v2.js +1 -1
  123. package/src/pro/integrations/upload-handler.js +1 -1
  124. package/src/pro/integrations/webhook.js +1 -1
  125. package/src/pro/locking/lock-routes.js +1 -1
  126. package/src/pro/locking/resource-lock-manager.js +1 -1
  127. package/src/pro/messaging/kafkaConsumerService.js +1 -1
  128. package/src/pro/messaging/kafkaService.js +1 -1
  129. package/src/pro/messaging/messagehubService.js +1 -1
  130. package/src/pro/messaging/rabbitmqService.js +1 -1
  131. package/src/pro/scheduler/job-manager.js +1 -1
  132. package/src/pro/scheduler/job-routes.js +1 -1
  133. package/src/pro/scheduler/job-validator.js +1 -1
  134. package/src/pro/storage/base-storage-provider.js +1 -1
  135. package/src/pro/storage/file-metadata-helper.js +1 -1
  136. package/src/pro/storage/index.js +1 -1
  137. package/src/pro/storage/local-storage-provider.js +1 -1
  138. package/src/pro/storage/s3-storage-provider.js +1 -1
  139. package/src/pro/storage/upload-cleanup-job.js +1 -1
  140. package/src/pro/storage/upload-cleanup-scheduler.js +1 -1
  141. package/src/pro/storage/upload-pending-tracker.js +1 -1
  142. package/src/pro/websocket/broadcast-helper.js +1 -1
  143. package/src/pro/websocket/index.js +1 -1
  144. package/src/pro/websocket/livesync-server.js +1 -1
  145. package/src/pro/websocket/ws-broadcaster.js +1 -1
  146. package/src/services/export-service.js +1 -1
  147. package/src/services/import-service.js +1 -1
  148. package/src/services/kafkaConsumerService.js +1 -1
  149. package/src/services/kafkaService.js +1 -1
  150. package/src/services/messagehubService.js +1 -1
  151. package/src/services/rabbitmqService.js +1 -1
  152. package/src/utils/cache-invalidation-registry.js +1 -1
  153. package/src/utils/cache-manager.js +1 -1
  154. package/src/utils/component-engine.js +1 -1
  155. package/src/utils/config-extractor.js +1 -1
  156. package/src/utils/consumerLogger.js +1 -1
  157. package/src/utils/context-builder.js +1 -1
  158. package/src/utils/dashboard-helpers.js +1 -1
  159. package/src/utils/dateHelper.js +1 -1
  160. package/src/utils/datetime-formatter.js +1 -1
  161. package/src/utils/datetime-parser.js +1 -1
  162. package/src/utils/db-bootstrap.js +1 -1
  163. package/src/utils/db-mysql.js +1 -1
  164. package/src/utils/db-oracle.js +1 -1
  165. package/src/utils/db-sqlite.js +1 -1
  166. package/src/utils/db.js +1 -1
  167. package/src/utils/demo-generator.js +1 -1
  168. package/src/utils/excel-generator.js +1 -1
  169. package/src/utils/excel-parser.js +1 -1
  170. package/src/utils/file-watcher.js +1 -1
  171. package/src/utils/id-generator.js +1 -1
  172. package/src/utils/idempotency-manager.js +1 -1
  173. package/src/utils/import-validator.js +1 -1
  174. package/src/utils/license-client.js +1 -1
  175. package/src/utils/lock-manager.js +1 -1
  176. package/src/utils/logger.js +1 -1
  177. package/src/utils/lookup-resolver.js +1 -1
  178. package/src/utils/payload-loader.js +1 -1
  179. package/src/utils/processor-response.js +1 -1
  180. package/src/utils/rabbitmq.js +1 -1
  181. package/src/utils/redis-client.js +1 -1
  182. package/src/utils/redis-helper.js +1 -1
  183. package/src/utils/request-scope.js +1 -1
  184. package/src/utils/security-checks.js +1 -1
  185. package/src/utils/service-resolver.js +1 -1
  186. package/src/utils/shutdown-coordinator.js +1 -1
  187. package/src/utils/trusted-keys.js +1 -1
  188. package/src/utils/upload-handler.js +1 -1
  189. package/src/utils/upsert-builder.js +1 -1
  190. package/src/utils/workflow-hook-executor.js +1 -1
  191. package/generators/metadata/global.json +0 -58
  192. package/generators/metadata/test-mysql-workbench.json +0 -118
  193. package/generators/metadata/test-mysql.json +0 -56
  194. package/generators/metadata/test-oracle-workbench.json +0 -118
  195. package/generators/metadata/test-oracle.json +0 -56
  196. package/generators/metadata/test-pg-workbench.json +0 -118
  197. package/generators/metadata/test-pg.json +0 -56
  198. package/generators/scripts/obfuscate-source.js +0 -356
  199. package/generators/scripts/validate-catalog.js +0 -430
  200. package/generators/scripts/validate-dbschema-catalog.js +0 -708
  201. package/generators/tests/baseline/mysql/mini_inventory_item/src/models/mini-inventory/item.js +0 -944
  202. package/generators/tests/baseline/mysql/mini_inventory_item/src/modules/mini-inventory/item.js +0 -740
  203. package/generators/tests/baseline/mysql/mini_inventory_item/src/modules/mini-inventory.js +0 -336
  204. package/generators/tests/baseline/oracle/mini_inventory_item/src/models/mini-inventory/item.js +0 -1002
  205. package/generators/tests/baseline/oracle/mini_inventory_item/src/modules/mini-inventory/item.js +0 -740
  206. package/generators/tests/baseline/oracle/mini_inventory_item/src/modules/mini-inventory.js +0 -336
  207. package/generators/tests/baseline/postgres/mini_inventory_item/src/models/mini-inventory/item.js +0 -1333
  208. package/generators/tests/baseline/postgres/mini_inventory_item/src/modules/mini-inventory/item.js +0 -1173
  209. package/generators/tests/baseline/postgres/mini_inventory_item/src/modules/mini-inventory.js +0 -496
  210. package/generators/tests/fixtures/payloads/custom-sensitive.json +0 -27
  211. package/generators/tests/fixtures/payloads/dynamic-search-optout.json +0 -23
  212. package/generators/tests/fixtures/payloads/login-with-password.json +0 -22
  213. package/generators/tests/fixtures/payloads/order-process.json +0 -52
  214. package/generators/tests/fixtures/payloads/with-inline-sql.json +0 -26
  215. package/generators/tests/integration-tahap4b/README.md +0 -145
  216. package/generators/tests/integration-tahap4b/run-concurrent.js +0 -77
  217. package/generators/tests/integration-tahap4b/seed.sql +0 -53
  218. package/generators/tests/integration-tahap4b/verify.sql +0 -110
  219. package/generators/tests/unit/cli/create-dashboard.test.js +0 -505
  220. package/generators/tests/unit/cli/create-processor.test.js +0 -319
  221. package/generators/tests/unit/cli/dispatch-dashboard.test.js +0 -149
  222. package/generators/tests/unit/lib/dashboard-generator.test.js +0 -895
  223. package/generators/tests/unit/lib/dashboard-validator.test.js +0 -354
  224. package/generators/tests/unit/lib/dbschema-kit/apply-executor.test.js +0 -437
  225. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-introspect.test.js +0 -393
  226. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-generate-ddl.test.js +0 -104
  227. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-init.test.js +0 -119
  228. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-list.test.js +0 -48
  229. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-migrate.test.js +0 -175
  230. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-validate.test.js +0 -102
  231. package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-models.test.js +0 -43
  232. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/all-schemas-listing.js +0 -84
  233. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/connection-error.js +0 -13
  234. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/empty.js +0 -12
  235. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/multi-schema.js +0 -124
  236. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/single-schema-inventory.js +0 -64
  237. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/two-tables.js +0 -66
  238. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/connection-error.js +0 -9
  239. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/partial.js +0 -29
  240. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/rollback.js +0 -26
  241. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/success.js +0 -43
  242. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/multi-schema/audit/events.js +0 -18
  243. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/multi-schema/inventory/products.js +0 -9
  244. package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/multi-schema/users.js +0 -8
  245. package/generators/tests/unit/lib/dbschema-kit/connection.test.js +0 -112
  246. package/generators/tests/unit/lib/dbschema-kit/ddl-generator.test.js +0 -205
  247. package/generators/tests/unit/lib/dbschema-kit/define-model.test.js +0 -56
  248. package/generators/tests/unit/lib/dbschema-kit/dialect/index.test.js +0 -46
  249. package/generators/tests/unit/lib/dbschema-kit/dialect/mysql.test.js +0 -126
  250. package/generators/tests/unit/lib/dbschema-kit/dialect/oracle.test.js +0 -126
  251. package/generators/tests/unit/lib/dbschema-kit/dialect/postgres.test.js +0 -131
  252. package/generators/tests/unit/lib/dbschema-kit/dialect/sqlite.test.js +0 -126
  253. package/generators/tests/unit/lib/dbschema-kit/driver-loader.test.js +0 -93
  254. package/generators/tests/unit/lib/dbschema-kit/emitters/create-index.test.js +0 -173
  255. package/generators/tests/unit/lib/dbschema-kit/emitters/create-table.test.js +0 -376
  256. package/generators/tests/unit/lib/dbschema-kit/emitters/drop-table.test.js +0 -78
  257. package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/invalid-dialect.env +0 -6
  258. package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/missing-dialect.env +0 -5
  259. package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/missing-host.env +0 -5
  260. package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/oracle-valid.env +0 -6
  261. package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/postgres-valid.env +0 -7
  262. package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/sqlite-valid.env +0 -2
  263. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/category.js +0 -11
  264. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/item_product.js +0 -11
  265. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/stock_inbound.js +0 -24
  266. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/stock_inbound_item.js +0 -28
  267. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/supplier.js +0 -9
  268. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/warehouse.js +0 -9
  269. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-invalid/orphan.js +0 -17
  270. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/category.js +0 -11
  271. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/item_product.js +0 -11
  272. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/supplier.js +0 -9
  273. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/warehouse.js +0 -9
  274. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/transactions/stock_inbound.js +0 -24
  275. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/transactions/stock_inbound_item.js +0 -28
  276. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/multi-schema/audit/events.js +0 -18
  277. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/multi-schema/inventory/products.js +0 -9
  278. package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/multi-schema/public/users.js +0 -9
  279. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-subfolder/extra/category.js +0 -8
  280. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-subfolder/master/category.js +0 -8
  281. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-tablename/bar.js +0 -8
  282. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-tablename/foo.js +0 -8
  283. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/empty-folder/README.md +0 -1
  284. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/invalid-export/plain.js +0 -3
  285. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/invalid-schema/bad.js +0 -6
  286. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/legacy-pattern/legacy.js +0 -12
  287. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-distinct/audit/products.js +0 -9
  288. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-distinct/inventory/products.js +0 -9
  289. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-duplicate/a/products.js +0 -8
  290. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-duplicate/b/products.js +0 -8
  291. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/nested-deep/a/b/c/deep_table.js +0 -8
  292. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/.hidden/ignored.js +0 -7
  293. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/master/category.js +0 -8
  294. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/master/supplier.js +0 -8
  295. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/transactions/stock_inbound.js +0 -8
  296. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/transactions/stock_inbound_item.js +0 -8
  297. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/valid-multiple/category.js +0 -8
  298. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/valid-multiple/item_product.js +0 -9
  299. package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/valid-single/category.js +0 -8
  300. package/generators/tests/unit/lib/dbschema-kit/integration.test.js +0 -217
  301. package/generators/tests/unit/lib/dbschema-kit/introspect-mapper.test.js +0 -403
  302. package/generators/tests/unit/lib/dbschema-kit/ir-builder.test.js +0 -390
  303. package/generators/tests/unit/lib/dbschema-kit/loader.test.js +0 -128
  304. package/generators/tests/unit/lib/dbschema-kit/naming.test.js +0 -170
  305. package/generators/tests/unit/lib/dbschema-kit/parser/shorthand-parser.test.js +0 -237
  306. package/generators/tests/unit/lib/dbschema-kit/schema-printer.test.js +0 -251
  307. package/generators/tests/unit/lib/dbschema-kit/statement-modifier.test.js +0 -105
  308. package/generators/tests/unit/lib/dbschema-kit/statement-splitter.test.js +0 -165
  309. package/generators/tests/unit/lib/dbschema-kit/topological-sort.test.js +0 -135
  310. package/generators/tests/unit/lib/dbschema-kit/validator/check-compatibility-validator.test.js +0 -373
  311. package/generators/tests/unit/lib/dbschema-kit/validator/circular-relation-validator.test.js +0 -454
  312. package/generators/tests/unit/lib/dbschema-kit/validator/cross-model-validator.test.js +0 -512
  313. package/generators/tests/unit/lib/dbschema-kit/validator/enhanced-validate-integration.test.js +0 -390
  314. package/generators/tests/unit/lib/dbschema-kit/validator/naming-convention-validator.test.js +0 -306
  315. package/generators/tests/unit/lib/dbschema-kit/validator/schema-validator.test.js +0 -443
  316. package/generators/tests/unit/lib/dbschema-kit/validator/type-compatibility-validator.test.js +0 -440
  317. package/generators/tests/unit/lib/dbschema-kit/validator/validator-reporter.test.js +0 -172
  318. package/generators/tests/unit/lib/metadata-manager-dashboard.test.js +0 -256
  319. package/generators/tests/unit/lib/payload-validator-fieldpolicy.test.js +0 -240
  320. package/generators/tests/unit/lib/processor-validation-generator.test.js +0 -300
  321. package/generators/tests/unit/lib/sensitive-field-masker.test.js +0 -170
  322. package/generators/tests/unit/lib/sql-table-extractor.test.js +0 -119
  323. package/scripts/generate-integrity-manifest.js +0 -124
  324. package/scripts/snapshot-cli-contracts.js +0 -194
  325. package/scripts/verify-publish.js +0 -56
@@ -1 +1 @@
1
- 'use strict';const a0_0x136f91=a0_0x470b;(function(_0x21e728,_0x9dbb12){const _0x4e426c=a0_0x470b,_0x2bb164=_0x21e728();while(!![]){try{const _0x391423=-parseInt(_0x4e426c(0x19e))/0x1*(-parseInt(_0x4e426c(0x184))/0x2)+-parseInt(_0x4e426c(0x195))/0x3*(parseInt(_0x4e426c(0x190))/0x4)+-parseInt(_0x4e426c(0x191))/0x5+parseInt(_0x4e426c(0x192))/0x6*(-parseInt(_0x4e426c(0x199))/0x7)+parseInt(_0x4e426c(0x19b))/0x8*(-parseInt(_0x4e426c(0x19a))/0x9)+-parseInt(_0x4e426c(0x18b))/0xa+parseInt(_0x4e426c(0x185))/0xb;if(_0x391423===_0x9dbb12)break;else _0x2bb164['push'](_0x2bb164['shift']());}catch(_0x545d4d){_0x2bb164['push'](_0x2bb164['shift']());}}}(a0_0x35ec,0x96b52));function a0_0x35ec(){const _0x18b268=['z2v0q2XPzw50','mta3otaZnJbQDuv0qKm','lI4VlI4VDxrPBhmVCMvKAxmTy2XPzw50','qvDAtKW','s2Tes00','rMfPBgvKihrVigfKzcbWzw5KAw5NihvWBg9HzcbRzxLZihrVifjLzgLZ','mJeYA1n1rNbc','mZGYnJe2mhfOzfbMra','mtHnq0nxt0K','BgvUz3rO','ChvZAa','mJeXnZruqxvmy0y','EMfKza','CMvZDgzVCMDLoNvWBg9HzdPWzw5KAw5N','zxjYB3i','mJy3nZm2n2jgwK5Avq','ourxswPjyW','mJK1ndu1mNDhAxHxCG','EMnHCMq','AxnbCNjHEq','nJK1mKn2yuDbEq','ENjLBq','DxbSB2fKx3bLBMrPBMDFz2v0x29YCgHHBNnFzxjYB3i','r1rbyvy','mZHgvKjfwfO','ndy0mJm0ntrdzvrwCe4','BM93','rMfPBgvKihrVihjLBw92zsbVCNbOyw4GA2v5CYbMCM9TifjLzgLZ','BwvZC2fNzq','rMfPBgvKihrVignVBMzPCM0GDxbSB2fKigTLExmGAw4GuMvKAxm'];a0_0x35ec=function(){return _0x18b268;};return a0_0x35ec();}const {logger}=require('../../utils/logger'),REDIS_KEY=a0_0x136f91(0x197);function _getRedisClient(){const _0x13d155=a0_0x136f91;try{const _0x2eeb54=require(_0x13d155(0x18c));return _0x2eeb54['getClient']?_0x2eeb54[_0x13d155(0x18a)]():_0x2eeb54;}catch(_0xc02d8f){return null;}}async function addPending(_0x417423){const _0x525e92=a0_0x136f91,_0x4625ec={'AWZNL':function(_0x167ea4,_0x5cb269){return _0x167ea4===_0x5cb269;},'ZRGnB':_0x525e92(0x18f)},_0x2ea4a0=_getRedisClient();if(!_0x2ea4a0)return;const _0x3a03ac=Array[_0x525e92(0x19d)](_0x417423)?_0x417423:[_0x417423];if(_0x4625ec[_0x525e92(0x18d)](_0x3a03ac['length'],0x0))return;try{const _0x4d6a9c=Date[_0x525e92(0x186)](),_0x1e008a=[];for(const _0x8e43c4 of _0x3a03ac){_0x1e008a[_0x525e92(0x194)](_0x4d6a9c,_0x8e43c4);}await _0x2ea4a0[_0x525e92(0x196)](REDIS_KEY,..._0x1e008a);}catch(_0x70138f){logger[_0x525e92(0x198)]({'event':'upload_pending_add_error','keys':_0x3a03ac,'error':_0x70138f[_0x525e92(0x188)]},_0x4625ec['ZRGnB']);}}async function confirmKeys(_0x2d206c){const _0x31e572=a0_0x136f91,_0x3d22bc={'GTAaV':_0x31e572(0x189)},_0x496b10=_getRedisClient();if(!_0x496b10)return;const _0x2a2e33=Array[_0x31e572(0x19d)](_0x2d206c)?_0x2d206c:[_0x2d206c];if(_0x2a2e33['length']===0x0)return;try{await _0x496b10[_0x31e572(0x181)](REDIS_KEY,..._0x2a2e33);}catch(_0x27ebe7){logger[_0x31e572(0x198)]({'event':'upload_pending_confirm_error','keys':_0x2a2e33,'error':_0x27ebe7[_0x31e572(0x188)]},_0x3d22bc[_0x31e572(0x183)]);}}async function getOrphanKeys(_0x421f19){const _0x569b61=a0_0x136f91,_0x304b5d={'KkDKM':'-inf','vhWVb':_0x569b61(0x182)},_0x205009=_getRedisClient();if(!_0x205009)return[];try{const _0x4c6397=Date['now']()-_0x421f19;return await _0x205009['zrangebyscore'](REDIS_KEY,_0x304b5d[_0x569b61(0x18e)],_0x4c6397);}catch(_0x5393e8){return logger['error']({'event':_0x304b5d['vhWVb'],'error':_0x5393e8['message']},'Failed\x20to\x20get\x20orphan\x20keys\x20from\x20Redis'),[];}}async function removeOrphanKeys(_0x55bf23){const _0x291827=a0_0x136f91,_0x856b64={'soaXS':function(_0x59c49a,_0x1eab74){return _0x59c49a===_0x1eab74;}};if(!_0x55bf23||_0x856b64['soaXS'](_0x55bf23[_0x291827(0x193)],0x0))return;const _0x273bfc=_getRedisClient();if(!_0x273bfc)return;try{await _0x273bfc['zrem'](REDIS_KEY,..._0x55bf23);}catch(_0x5b3188){logger['error']({'event':'upload_pending_remove_orphans_error','count':_0x55bf23['length'],'error':_0x5b3188[_0x291827(0x188)]},_0x291827(0x187));}}async function getPendingCount(){const _0x272049=a0_0x136f91,_0x103e7d={'TiIyW':function(_0x37b26c){return _0x37b26c();}},_0x435636=_0x103e7d['TiIyW'](_getRedisClient);if(!_0x435636)return 0x0;try{return await _0x435636[_0x272049(0x19c)](REDIS_KEY);}catch(_0x299db5){return 0x0;}}function a0_0x470b(_0x1ac12b,_0x136aa3){_0x1ac12b=_0x1ac12b-0x181;const _0x35ec26=a0_0x35ec();let _0x470be0=_0x35ec26[_0x1ac12b];if(a0_0x470b['CxPIcg']===undefined){var _0x5bc30f=function(_0x2799aa){const _0x5ce885='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x49e729='',_0x148b9e='';for(let _0x51d867=0x0,_0x2ed6a1,_0x5200f3,_0x3638b3=0x0;_0x5200f3=_0x2799aa['charAt'](_0x3638b3++);~_0x5200f3&&(_0x2ed6a1=_0x51d867%0x4?_0x2ed6a1*0x40+_0x5200f3:_0x5200f3,_0x51d867++%0x4)?_0x49e729+=String['fromCharCode'](0xff&_0x2ed6a1>>(-0x2*_0x51d867&0x6)):0x0){_0x5200f3=_0x5ce885['indexOf'](_0x5200f3);}for(let _0x33ff6f=0x0,_0x4d0e13=_0x49e729['length'];_0x33ff6f<_0x4d0e13;_0x33ff6f++){_0x148b9e+='%'+('00'+_0x49e729['charCodeAt'](_0x33ff6f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x148b9e);};a0_0x470b['bGqZAd']=_0x5bc30f,a0_0x470b['TNsPte']={},a0_0x470b['CxPIcg']=!![];}const _0x50c543=_0x35ec26[0x0],_0x2d8c21=_0x1ac12b+_0x50c543,_0x5a8389=a0_0x470b['TNsPte'][_0x2d8c21];return!_0x5a8389?(_0x470be0=a0_0x470b['bGqZAd'](_0x470be0),a0_0x470b['TNsPte'][_0x2d8c21]=_0x470be0):_0x470be0=_0x5a8389,_0x470be0;}module['exports']={'addPending':addPending,'confirmKeys':confirmKeys,'getOrphanKeys':getOrphanKeys,'removeOrphanKeys':removeOrphanKeys,'getPendingCount':getPendingCount,'REDIS_KEY':REDIS_KEY};
1
+ 'use strict';const a0_0x3d016e=a0_0xa560;(function(_0x5884a5,_0x1987c8){const _0x1c5cc4=a0_0xa560,_0x35563f=_0x5884a5();while(!![]){try{const _0x3e5b48=parseInt(_0x1c5cc4(0x71))/0x1+parseInt(_0x1c5cc4(0x83))/0x2*(parseInt(_0x1c5cc4(0x7c))/0x3)+parseInt(_0x1c5cc4(0x7f))/0x4*(parseInt(_0x1c5cc4(0x75))/0x5)+-parseInt(_0x1c5cc4(0x80))/0x6*(parseInt(_0x1c5cc4(0x7e))/0x7)+-parseInt(_0x1c5cc4(0x86))/0x8*(-parseInt(_0x1c5cc4(0x89))/0x9)+parseInt(_0x1c5cc4(0x72))/0xa*(parseInt(_0x1c5cc4(0x84))/0xb)+parseInt(_0x1c5cc4(0x6e))/0xc*(-parseInt(_0x1c5cc4(0x6d))/0xd);if(_0x3e5b48===_0x1987c8)break;else _0x35563f['push'](_0x35563f['shift']());}catch(_0x99ad19){_0x35563f['push'](_0x35563f['shift']());}}}(a0_0x5553,0x9a2a2));function a0_0x5553(){const _0x6e459f=['B0T0B2W','uNHisvq','AxnbCNjHEq','ENjLBq','mtHmB3fmqwK','DxbSB2fKx3bLBMrPBMDFywrKx2vYCM9Y','mtr2uMzbvwW','nJHXy2Tps0S','otq1otq4ruHMCfnm','u051Efq','DxbSB2fKx3bLBMrPBMDFz2v0x29YCgHHBNnFzxjYB3i','mJa1mdCWEMLqrfnK','mta4ndq5yxDfr3Hp','zxjYB3i','mtaYmZjus2HfCwO','zxHWB3j0CW','suHUt1y','ndqXou9oDxvWEq','BwvZC2fNzq','rMfPBgvKihrVigDLDcbVCNbOyw4GA2v5CYbMCM9TifjLzgLZ','rMfPBgvKihrVigfKzcbWzw5KAw5NihvWBg9HzcbRzxLZihrVifjLzgLZ','mtnjELnuz2u','mJKZnZu1ndrXsMT2qwO','z2v0q2XPzw50','rMfPBgvKihrVignVBMzPCM0GDxbSB2fKigTLExmGAw4GuMvKAxm','otu2otG1s09Zwgro','mJeWAMTQt1D0','ChvZAa','BgvUz3rO','mJKWndq1tM5uy2H2','u3Ltsfu','CMvZDgzVCMDLoNvWBg9HzdPWzw5KAw5N'];a0_0x5553=function(){return _0x6e459f;};return a0_0x5553();}const {logger}=require('../../utils/logger'),REDIS_KEY=a0_0x3d016e(0x77);function a0_0xa560(_0x5a53c8,_0x49c5d6){_0x5a53c8=_0x5a53c8-0x6b;const _0x5553f1=a0_0x5553();let _0xa5607e=_0x5553f1[_0x5a53c8];if(a0_0xa560['auAapD']===undefined){var _0x4d8b83=function(_0x3d714a){const _0x5eb5f9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2cbcd4='',_0x26f5f3='';for(let _0x519efb=0x0,_0x24494f,_0x56886b,_0x198845=0x0;_0x56886b=_0x3d714a['charAt'](_0x198845++);~_0x56886b&&(_0x24494f=_0x519efb%0x4?_0x24494f*0x40+_0x56886b:_0x56886b,_0x519efb++%0x4)?_0x2cbcd4+=String['fromCharCode'](0xff&_0x24494f>>(-0x2*_0x519efb&0x6)):0x0){_0x56886b=_0x5eb5f9['indexOf'](_0x56886b);}for(let _0x55299d=0x0,_0x2946e7=_0x2cbcd4['length'];_0x55299d<_0x2946e7;_0x55299d++){_0x26f5f3+='%'+('00'+_0x2cbcd4['charCodeAt'](_0x55299d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x26f5f3);};a0_0xa560['SRFTUA']=_0x4d8b83,a0_0xa560['lWntRx']={},a0_0xa560['auAapD']=!![];}const _0x11e0b2=_0x5553f1[0x0],_0x2facc8=_0x5a53c8+_0x11e0b2,_0x15b3b0=a0_0xa560['lWntRx'][_0x2facc8];return!_0x15b3b0?(_0xa5607e=a0_0xa560['SRFTUA'](_0xa5607e),a0_0xa560['lWntRx'][_0x2facc8]=_0xa5607e):_0xa5607e=_0x15b3b0,_0xa5607e;}function _getRedisClient(){const _0x4bb51e=a0_0x3d016e,_0x1c0b2d={'yLvtR':function(_0x3a6752,_0x2d1f29){return _0x3a6752(_0x2d1f29);},'shwHb':'../../utils/redis-client'};try{const _0x71f95e=_0x1c0b2d['yLvtR'](require,_0x1c0b2d['shwHb']);return _0x71f95e[_0x4bb51e(0x6f)]?_0x71f95e[_0x4bb51e(0x6f)]():_0x71f95e;}catch(_0x1a86bf){return null;}}async function addPending(_0x4034b1){const _0x2e9500=a0_0x3d016e,_0x4d6ef7={'uVJIz':function(_0x52c1b8,_0x48c0dc){return _0x52c1b8===_0x48c0dc;},'MfBUY':_0x2e9500(0x6c)},_0xccae5c=_getRedisClient();if(!_0xccae5c)return;const _0x2ea704=Array['isArray'](_0x4034b1)?_0x4034b1:[_0x4034b1];if(_0x4d6ef7['uVJIz'](_0x2ea704[_0x2e9500(0x74)],0x0))return;try{const _0xc84da7=Date['now'](),_0x2e581b=[];for(const _0x4bb9a3 of _0x2ea704){_0x2e581b[_0x2e9500(0x73)](_0xc84da7,_0x4bb9a3);}await _0xccae5c['zadd'](REDIS_KEY,..._0x2e581b);}catch(_0x4a280a){logger[_0x2e9500(0x85)]({'event':_0x2e9500(0x7d),'keys':_0x2ea704,'error':_0x4a280a[_0x2e9500(0x8a)]},_0x4d6ef7['MfBUY']);}}async function confirmKeys(_0x5832d1){const _0x25afd8=a0_0x3d016e,_0x55a62d={'RxHIT':function(_0x458562){return _0x458562();},'VVBzE':function(_0x4ae638,_0x1d77f5){return _0x4ae638===_0x1d77f5;},'SNuxT':_0x25afd8(0x70)},_0x293a16=_0x55a62d[_0x25afd8(0x79)](_getRedisClient);if(!_0x293a16)return;const _0x2a13dc=Array[_0x25afd8(0x7a)](_0x5832d1)?_0x5832d1:[_0x5832d1];if(_0x55a62d['VVBzE'](_0x2a13dc['length'],0x0))return;try{await _0x293a16['zrem'](REDIS_KEY,..._0x2a13dc);}catch(_0x2f3313){logger['error']({'event':'upload_pending_confirm_error','keys':_0x2a13dc,'error':_0x2f3313[_0x25afd8(0x8a)]},_0x55a62d[_0x25afd8(0x81)]);}}async function getOrphanKeys(_0x4f1d92){const _0x4fd953=a0_0x3d016e,_0xa492d7={'KQniM':function(_0x29e621){return _0x29e621();},'oKtol':function(_0x3e92db,_0xc73739){return _0x3e92db-_0xc73739;},'gFCLN':_0x4fd953(0x82),'IHnOV':_0x4fd953(0x6b)},_0x25fa9a=_0xa492d7['KQniM'](_getRedisClient);if(!_0x25fa9a)return[];try{const _0x11b8e3=_0xa492d7[_0x4fd953(0x78)](Date['now'](),_0x4f1d92);return await _0x25fa9a['zrangebyscore'](REDIS_KEY,'-inf',_0x11b8e3);}catch(_0x181b1e){return logger[_0x4fd953(0x85)]({'event':_0xa492d7['gFCLN'],'error':_0x181b1e['message']},_0xa492d7[_0x4fd953(0x88)]),[];}}async function removeOrphanKeys(_0x5da4ac){const _0x29b28f=a0_0x3d016e,_0x4d4b02={'TFbZb':function(_0x337aaf,_0x41581a){return _0x337aaf===_0x41581a;},'SySHU':'Failed\x20to\x20remove\x20orphan\x20keys\x20from\x20Redis'};if(!_0x5da4ac||_0x4d4b02['TFbZb'](_0x5da4ac[_0x29b28f(0x74)],0x0))return;const _0x39b8a6=_getRedisClient();if(!_0x39b8a6)return;try{await _0x39b8a6[_0x29b28f(0x7b)](REDIS_KEY,..._0x5da4ac);}catch(_0x59b350){logger[_0x29b28f(0x85)]({'event':'upload_pending_remove_orphans_error','count':_0x5da4ac[_0x29b28f(0x74)],'error':_0x59b350[_0x29b28f(0x8a)]},_0x4d4b02[_0x29b28f(0x76)]);}}async function getPendingCount(){const _0x2791ca=_getRedisClient();if(!_0x2791ca)return 0x0;try{return await _0x2791ca['zcard'](REDIS_KEY);}catch(_0x644bd8){return 0x0;}}module[a0_0x3d016e(0x87)]={'addPending':addPending,'confirmKeys':confirmKeys,'getOrphanKeys':getOrphanKeys,'removeOrphanKeys':removeOrphanKeys,'getPendingCount':getPendingCount,'REDIS_KEY':REDIS_KEY};
@@ -1 +1 @@
1
- 'use strict';const a0_0x1b4ad7=a0_0x414d;(function(_0x16a3c9,_0x1d3976){const _0x31b8a6=a0_0x414d,_0x4ab7b2=_0x16a3c9();while(!![]){try{const _0x48a091=-parseInt(_0x31b8a6(0x1cb))/0x1*(-parseInt(_0x31b8a6(0x1bd))/0x2)+-parseInt(_0x31b8a6(0x1be))/0x3*(-parseInt(_0x31b8a6(0x1b7))/0x4)+parseInt(_0x31b8a6(0x1c2))/0x5*(parseInt(_0x31b8a6(0x1bf))/0x6)+parseInt(_0x31b8a6(0x1ba))/0x7*(-parseInt(_0x31b8a6(0x1b6))/0x8)+parseInt(_0x31b8a6(0x1c0))/0x9*(parseInt(_0x31b8a6(0x1bb))/0xa)+-parseInt(_0x31b8a6(0x1c5))/0xb*(-parseInt(_0x31b8a6(0x1c1))/0xc)+-parseInt(_0x31b8a6(0x1c7))/0xd;if(_0x48a091===_0x1d3976)break;else _0x4ab7b2['push'](_0x4ab7b2['shift']());}catch(_0x47d398){_0x4ab7b2['push'](_0x4ab7b2['shift']());}}}(a0_0x3484,0x7b755));function a0_0x414d(_0x3a2377,_0x569c44){_0x3a2377=_0x3a2377-0x1b5;const _0x3484d3=a0_0x3484();let _0x414db6=_0x3484d3[_0x3a2377];if(a0_0x414d['PyRRTC']===undefined){var _0x4c263e=function(_0x39bbdc){const _0x4a9032='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1686bf='',_0x13b9e5='';for(let _0x52ebfe=0x0,_0x5c3557,_0x4aa397,_0x583457=0x0;_0x4aa397=_0x39bbdc['charAt'](_0x583457++);~_0x4aa397&&(_0x5c3557=_0x52ebfe%0x4?_0x5c3557*0x40+_0x4aa397:_0x4aa397,_0x52ebfe++%0x4)?_0x1686bf+=String['fromCharCode'](0xff&_0x5c3557>>(-0x2*_0x52ebfe&0x6)):0x0){_0x4aa397=_0x4a9032['indexOf'](_0x4aa397);}for(let _0x5bd29f=0x0,_0x457a95=_0x1686bf['length'];_0x5bd29f<_0x457a95;_0x5bd29f++){_0x13b9e5+='%'+('00'+_0x1686bf['charCodeAt'](_0x5bd29f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x13b9e5);};a0_0x414d['XPtFXi']=_0x4c263e,a0_0x414d['bbSxkL']={},a0_0x414d['PyRRTC']=!![];}const _0x1271c7=_0x3484d3[0x0],_0x465930=_0x3a2377+_0x1271c7,_0x24edcf=a0_0x414d['bbSxkL'][_0x465930];return!_0x24edcf?(_0x414db6=a0_0x414d['XPtFXi'](_0x414db6),a0_0x414d['bbSxkL'][_0x465930]=_0x414db6):_0x414db6=_0x24edcf,_0x414db6;}function a0_0x3484(){const _0x2c8860=['nezIrgjiCW','m3bwt1fNyq','mtiWoda3nMT3wLD5CW','owLTC2jhzq','mZzyDu1Hs0i','nxfJCwngzq','BwvZC2fNzq','y3jLyxrL','mJK2otCYnxLur2L2zq','yNjVywrJyxn0','mJC5ndiYmZLRwK9uteO','tgL2zsbtEw5JigjYB2fKy2fZDcbMywLSzwq6ia','Bw9KzwXnzxrHzgf0yq','D2fYBG','ndGZmZi0ANHxt0js','DxbKyxrL','mtqYndbWAefNyw4','mJC4otm4ofblBM54tG','AwniCKK','Bw9KDwXLtMfTzq','mZiWnK95s2vbAW','nZK1mdyYmfn4wwroDG','lI4VlI4VDxrPBhmVBg9Nz2vY'];a0_0x3484=function(){return _0x2c8860;};return a0_0x3484();}const ACTION_MAP={'insert':a0_0x1b4ad7(0x1c4),'update':'update','delete':'delete','adjust':a0_0x1b4ad7(0x1b5)};function resolveChannel(_0x571fc5){const _0x53adc2=a0_0x1b4ad7;if(_0x571fc5['modelMetadata']&&_0x571fc5['modelMetadata']['moduleName']&&_0x571fc5['modelMetadata']['endpointName'])return _0x571fc5[_0x53adc2(0x1c9)][_0x53adc2(0x1b9)]+':'+_0x571fc5[_0x53adc2(0x1c9)]['endpointName'];return _0x571fc5['cacheModule']+':'+_0x571fc5['cacheEndpoint'];}function broadcastDataChange(_0x120f53,_0x333836,_0x56880a,_0x591ae1,_0x5da4fc){const _0x3638d5=a0_0x1b4ad7,_0x5e3266={'icHrI':function(_0x2f46fd,_0x542c6e){return _0x2f46fd(_0x542c6e);},'rmUzh':_0x3638d5(0x1bc)};try{const _0x56c591=_0x5e3266['icHrI'](resolveChannel,_0x333836),_0x495529=ACTION_MAP[_0x56880a]||_0x56880a,_0x4215fc=_0x5da4fc&&_0x5da4fc['additionalContext']?_0x5da4fc['additionalContext']['requestId']||null:null;_0x120f53[_0x3638d5(0x1c6)](_0x56c591,{'action':_0x495529,'data':_0x591ae1,'requestId':_0x4215fc});}catch(_0x1f31ea){try{const {logger:_0x5f5786}=_0x5e3266[_0x3638d5(0x1b8)](require,_0x5e3266['rmUzh']);_0x5f5786[_0x3638d5(0x1ca)]({'event':'livesync_broadcast_error','error':_0x1f31ea[_0x3638d5(0x1c3)],'operation':_0x56880a},_0x3638d5(0x1c8)+_0x1f31ea['message']);}catch(_0x3cd91e){}}}module['exports']={'broadcastDataChange':broadcastDataChange};
1
+ 'use strict';const a0_0x202126=a0_0x26ad;function a0_0x26ad(_0x3bbe52,_0x1ecfd7){_0x3bbe52=_0x3bbe52-0x116;const _0x191693=a0_0x1916();let _0x26ade1=_0x191693[_0x3bbe52];if(a0_0x26ad['EiTzki']===undefined){var _0x4b922b=function(_0x57ab79){const _0x5117a3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4fe96a='',_0x5a4109='';for(let _0x4aafd5=0x0,_0x16eb72,_0x374e61,_0x9a8b90=0x0;_0x374e61=_0x57ab79['charAt'](_0x9a8b90++);~_0x374e61&&(_0x16eb72=_0x4aafd5%0x4?_0x16eb72*0x40+_0x374e61:_0x374e61,_0x4aafd5++%0x4)?_0x4fe96a+=String['fromCharCode'](0xff&_0x16eb72>>(-0x2*_0x4aafd5&0x6)):0x0){_0x374e61=_0x5117a3['indexOf'](_0x374e61);}for(let _0x454752=0x0,_0x376c7b=_0x4fe96a['length'];_0x454752<_0x376c7b;_0x454752++){_0x5a4109+='%'+('00'+_0x4fe96a['charCodeAt'](_0x454752)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5a4109);};a0_0x26ad['fqWFhj']=_0x4b922b,a0_0x26ad['kaTcjd']={},a0_0x26ad['EiTzki']=!![];}const _0x514f7a=_0x191693[0x0],_0x49910f=_0x3bbe52+_0x514f7a,_0x13c3e6=a0_0x26ad['kaTcjd'][_0x49910f];return!_0x13c3e6?(_0x26ade1=a0_0x26ad['fqWFhj'](_0x26ade1),a0_0x26ad['kaTcjd'][_0x49910f]=_0x26ade1):_0x26ade1=_0x13c3e6,_0x26ade1;}(function(_0x102806,_0x549a6d){const _0x18eb88=a0_0x26ad,_0x17c9fe=_0x102806();while(!![]){try{const _0x20c927=-parseInt(_0x18eb88(0x121))/0x1+-parseInt(_0x18eb88(0x11d))/0x2+-parseInt(_0x18eb88(0x123))/0x3*(-parseInt(_0x18eb88(0x11a))/0x4)+parseInt(_0x18eb88(0x125))/0x5+parseInt(_0x18eb88(0x127))/0x6+-parseInt(_0x18eb88(0x116))/0x7*(parseInt(_0x18eb88(0x122))/0x8)+parseInt(_0x18eb88(0x124))/0x9*(parseInt(_0x18eb88(0x126))/0xa);if(_0x20c927===_0x549a6d)break;else _0x17c9fe['push'](_0x17c9fe['shift']());}catch(_0x443ec5){_0x17c9fe['push'](_0x17c9fe['shift']());}}}(a0_0x1916,0x53eeb));const ACTION_MAP={'insert':'create','update':'update','delete':'delete','adjust':a0_0x202126(0x11e)};function resolveChannel(_0x288590){const _0x41f862=a0_0x202126;if(_0x288590['modelMetadata']&&_0x288590['modelMetadata'][_0x41f862(0x12b)]&&_0x288590['modelMetadata'][_0x41f862(0x11f)])return _0x288590[_0x41f862(0x120)][_0x41f862(0x12b)]+':'+_0x288590[_0x41f862(0x120)]['endpointName'];return _0x288590[_0x41f862(0x117)]+':'+_0x288590['cacheEndpoint'];}function broadcastDataChange(_0x4feab5,_0x37f822,_0x2c7462,_0x48db87,_0x1dff1f){const _0x48f4be=a0_0x202126,_0x4b4a3d={'OLORn':function(_0x6ff711,_0x3371fa){return _0x6ff711(_0x3371fa);},'OWlGS':function(_0x58a51e,_0x2c287f){return _0x58a51e(_0x2c287f);}};try{const _0x35e364=_0x4b4a3d['OLORn'](resolveChannel,_0x37f822),_0x1d3fb9=ACTION_MAP[_0x2c7462]||_0x2c7462,_0x5f3cbe=_0x1dff1f&&_0x1dff1f['additionalContext']?_0x1dff1f['additionalContext'][_0x48f4be(0x11b)]||null:null;_0x4feab5[_0x48f4be(0x129)](_0x35e364,{'action':_0x1d3fb9,'data':_0x48db87,'requestId':_0x5f3cbe});}catch(_0x2925d1){try{const {logger:_0x3ee362}=_0x4b4a3d[_0x48f4be(0x128)](require,'../../utils/logger');_0x3ee362['warn']({'event':_0x48f4be(0x11c),'error':_0x2925d1[_0x48f4be(0x119)],'operation':_0x2c7462},_0x48f4be(0x118)+_0x2925d1['message']);}catch(_0x5cb99d){}}}module[a0_0x202126(0x12a)]={'broadcastDataChange':broadcastDataChange};function a0_0x1916(){const _0x14d45d=['zxHWB3j0CW','Bw9KDwXLtMfTzq','mtmZEfnsBK9n','y2fJAgvnB2r1Bgu','tgL2zsbtEw5JigjYB2fKy2fZDcbMywLSzwq6ia','BwvZC2fNzq','nZz3yKzAAMy','CMvXDwvZDeLK','BgL2zxn5BMnFyNjVywrJyxn0x2vYCM9Y','mZyWndi0t2PPtenR','DxbKyxrL','zw5KCg9PBNroyw1L','Bw9KzwXnzxrHzgf0yq','nJqZodGXDMTdC0Lb','mJC1nZKYse1WsgD3','mtaWmJa5zLvyBw5b','mJaXode4n0rosKLcza','mJmXnJu5mhnWsLr6EG','mZb1qMP0sM4','mZeZmdKYAKz4DNrk','t1DSr1m','yNjVywrJyxn0'];a0_0x1916=function(){return _0x14d45d;};return a0_0x1916();}
@@ -1 +1 @@
1
- 'use strict';(function(_0x149dbd,_0x367217){const _0x10aeb5=a0_0x4cb8,_0x2213bb=_0x149dbd();while(!![]){try{const _0x18a38c=-parseInt(_0x10aeb5(0x7d))/0x1+parseInt(_0x10aeb5(0x7c))/0x2+-parseInt(_0x10aeb5(0x75))/0x3+-parseInt(_0x10aeb5(0x7e))/0x4*(-parseInt(_0x10aeb5(0x79))/0x5)+parseInt(_0x10aeb5(0x7b))/0x6*(parseInt(_0x10aeb5(0x78))/0x7)+parseInt(_0x10aeb5(0x76))/0x8+-parseInt(_0x10aeb5(0x77))/0x9;if(_0x18a38c===_0x367217)break;else _0x2213bb['push'](_0x2213bb['shift']());}catch(_0x2307be){_0x2213bb['push'](_0x2213bb['shift']());}}}(a0_0x85ae,0xb5276));function a0_0x4cb8(_0x52db64,_0x11b6f8){_0x52db64=_0x52db64-0x75;const _0x85ae25=a0_0x85ae();let _0x4cb8c8=_0x85ae25[_0x52db64];if(a0_0x4cb8['EjVQQv']===undefined){var _0x4008a3=function(_0x1decb3){const _0x4eb51b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xc3f89a='',_0x4d8144='';for(let _0x3745d8=0x0,_0x10942d,_0x13c628,_0x48fb61=0x0;_0x13c628=_0x1decb3['charAt'](_0x48fb61++);~_0x13c628&&(_0x10942d=_0x3745d8%0x4?_0x10942d*0x40+_0x13c628:_0x13c628,_0x3745d8++%0x4)?_0xc3f89a+=String['fromCharCode'](0xff&_0x10942d>>(-0x2*_0x3745d8&0x6)):0x0){_0x13c628=_0x4eb51b['indexOf'](_0x13c628);}for(let _0x25c4b7=0x0,_0x139e0c=_0xc3f89a['length'];_0x25c4b7<_0x139e0c;_0x25c4b7++){_0x4d8144+='%'+('00'+_0xc3f89a['charCodeAt'](_0x25c4b7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4d8144);};a0_0x4cb8['mtIxeu']=_0x4008a3,a0_0x4cb8['chXuDz']={},a0_0x4cb8['EjVQQv']=!![];}const _0x2b09c3=_0x85ae25[0x0],_0x3a3799=_0x52db64+_0x2b09c3,_0x148653=a0_0x4cb8['chXuDz'][_0x3a3799];return!_0x148653?(_0x4cb8c8=a0_0x4cb8['mtIxeu'](_0x4cb8c8),a0_0x4cb8['chXuDz'][_0x3a3799]=_0x4cb8c8):_0x4cb8c8=_0x148653,_0x4cb8c8;}function a0_0x85ae(){const _0x306522=['mJKWodG2DvnAvwj5','nJu4ote5tfv1DfzI','nJiYnti0r0fOr3vZ','mJqYnJiZnurqruD6rG','otG1ntq2nhPpENrUtq','mtGYnJa5ntv5vg9ewue','mJi3mJa2qNz3vuv5','ndvPCvLczfK','sxbOtNq','mJCWqwPktvnM'];a0_0x85ae=function(){return _0x306522;};return a0_0x85ae();}let instance=null;function getBroadcaster(){const _0x454cbd=a0_0x4cb8,_0x1e5ac8={'IphNt':function(_0x2016db,_0x4a29d0){return _0x2016db(_0x4a29d0);},'qKZjO':'./ws-broadcaster'};if(!instance){const _0x20aa54=_0x1e5ac8[_0x454cbd(0x7a)](require,_0x1e5ac8['qKZjO']);instance=new _0x20aa54();}return instance;}module['exports']={'getBroadcaster':getBroadcaster};
1
+ 'use strict';const a0_0x326750=a0_0x2329;(function(_0x1e347d,_0x1ea0d3){const _0x5a3125=a0_0x2329,_0xb3d9ef=_0x1e347d();while(!![]){try{const _0x4d002d=parseInt(_0x5a3125(0xa5))/0x1+-parseInt(_0x5a3125(0xa8))/0x2*(parseInt(_0x5a3125(0xab))/0x3)+-parseInt(_0x5a3125(0xa4))/0x4+parseInt(_0x5a3125(0xa2))/0x5+parseInt(_0x5a3125(0xa3))/0x6*(-parseInt(_0x5a3125(0xa7))/0x7)+parseInt(_0x5a3125(0xa6))/0x8+parseInt(_0x5a3125(0xa9))/0x9;if(_0x4d002d===_0x1ea0d3)break;else _0xb3d9ef['push'](_0xb3d9ef['shift']());}catch(_0x31da74){_0xb3d9ef['push'](_0xb3d9ef['shift']());}}}(a0_0x1178,0x4566b));let instance=null;function getBroadcaster(){if(!instance){const _0x2b4959=require('./ws-broadcaster');instance=new _0x2b4959();}return instance;}function a0_0x1178(){const _0xf56256=['mte4mdK4v3rutuTJ','zxHWB3j0CW','mtvvDg5nvLi','nJy4mty1wwHwCuzf','mtH6A05nsgu','nteZodrzzwnSBvq','ndu3otG5wuTUEKjI','mZaWode4nfHry2vUDq','otuZntyXtvvNu0Pq','mta5otK0t1LZzgj0'];a0_0x1178=function(){return _0xf56256;};return a0_0x1178();}function a0_0x2329(_0x5dc32c,_0x1a13bd){_0x5dc32c=_0x5dc32c-0xa2;const _0x117891=a0_0x1178();let _0x2329fa=_0x117891[_0x5dc32c];if(a0_0x2329['qUTdFa']===undefined){var _0x17a5a9=function(_0x492dc7){const _0x1d358b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x11cd29='',_0x372b15='';for(let _0xcb2471=0x0,_0x1179b4,_0x36b85b,_0x316708=0x0;_0x36b85b=_0x492dc7['charAt'](_0x316708++);~_0x36b85b&&(_0x1179b4=_0xcb2471%0x4?_0x1179b4*0x40+_0x36b85b:_0x36b85b,_0xcb2471++%0x4)?_0x11cd29+=String['fromCharCode'](0xff&_0x1179b4>>(-0x2*_0xcb2471&0x6)):0x0){_0x36b85b=_0x1d358b['indexOf'](_0x36b85b);}for(let _0x242612=0x0,_0x3b1983=_0x11cd29['length'];_0x242612<_0x3b1983;_0x242612++){_0x372b15+='%'+('00'+_0x11cd29['charCodeAt'](_0x242612)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x372b15);};a0_0x2329['pfdxYS']=_0x17a5a9,a0_0x2329['gjeius']={},a0_0x2329['qUTdFa']=!![];}const _0x5d129c=_0x117891[0x0],_0x158acc=_0x5dc32c+_0x5d129c,_0x2890d9=a0_0x2329['gjeius'][_0x158acc];return!_0x2890d9?(_0x2329fa=a0_0x2329['pfdxYS'](_0x2329fa),a0_0x2329['gjeius'][_0x158acc]=_0x2329fa):_0x2329fa=_0x2890d9,_0x2329fa;}module[a0_0x326750(0xaa)]={'getBroadcaster':getBroadcaster};
@@ -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_0xc2ab2d=a0_0x4daa;(function(_0x529d69,_0x230bf3){const _0x4fd0a2=a0_0x4daa,_0x321614=_0x529d69();while(!![]){try{const _0x5244ed=parseInt(_0x4fd0a2(0x217))/0x1+parseInt(_0x4fd0a2(0x20f))/0x2+-parseInt(_0x4fd0a2(0x203))/0x3*(parseInt(_0x4fd0a2(0x212))/0x4)+-parseInt(_0x4fd0a2(0x219))/0x5+-parseInt(_0x4fd0a2(0x216))/0x6*(-parseInt(_0x4fd0a2(0x1f4))/0x7)+parseInt(_0x4fd0a2(0x1f6))/0x8+parseInt(_0x4fd0a2(0x204))/0x9*(-parseInt(_0x4fd0a2(0x20b))/0xa);if(_0x5244ed===_0x230bf3)break;else _0x321614['push'](_0x321614['shift']());}catch(_0x23f92c){_0x321614['push'](_0x321614['shift']());}}}(a0_0x5d51,0x1c83e));const http=require(a0_0xc2ab2d(0x1fe)),WebSocketBroadcaster=require(a0_0xc2ab2d(0x1f9)),port=parseInt(process[a0_0xc2ab2d(0x1ff)][a0_0xc2ab2d(0x20e)],0xa),apiKey=process['env']['KEY'];!port&&(console[a0_0xc2ab2d(0x211)](a0_0xc2ab2d(0x1f2)),process['exit'](0x1));!apiKey&&(console['error']('[Live\x20Sync]\x20KEY\x20(API\x20Key)\x20is\x20required\x20for\x20Live\x20Sync'),process['exit'](0x1));const server=http['createServer']((_0x3527a9,_0x115e1a)=>{const _0x131340=a0_0xc2ab2d,_0x485767={'VPOYM':function(_0x54c83a,_0x2472db){return _0x54c83a===_0x2472db;},'eNERN':function(_0x1ae39a,_0x5cb7ec){return _0x1ae39a===_0x5cb7ec;},'YTrZX':'application/json','XlRDr':'healthy','ynqJK':'livesync'};if(_0x485767['VPOYM'](_0x3527a9['url'],'/health')&&_0x485767['eNERN'](_0x3527a9[_0x131340(0x1fc)],_0x131340(0x208))){const _0x170909=getBroadcaster(),_0x25a713=_0x170909[_0x131340(0x21b)]?_0x170909[_0x131340(0x21b)][_0x131340(0x210)]['size']:0x0,_0x36bc1f=_0x170909['_subscriptions']?_0x170909[_0x131340(0x215)][_0x131340(0x205)]:0x0;_0x115e1a[_0x131340(0x209)](0xc8,{'Content-Type':_0x485767['YTrZX']}),_0x115e1a[_0x131340(0x207)](JSON['stringify']({'status':_0x485767['XlRDr'],'service':_0x485767['ynqJK'],'port':port,'clients':_0x25a713,'channels':_0x36bc1f,'uptime':process['uptime'](),'timestamp':new Date()[_0x131340(0x201)]()}));return;}_0x115e1a[_0x131340(0x209)](0x194,{'Content-Type':_0x131340(0x20d)}),_0x115e1a[_0x131340(0x207)](JSON[_0x131340(0x214)]({'error':_0x131340(0x1f8),'message':'This\x20is\x20the\x20Live\x20Sync\x20WebSocket\x20server'}));});let broadcaster=null;function a0_0x4daa(_0x2d4543,_0x42c7f1){_0x2d4543=_0x2d4543-0x1f1;const _0x5d5104=a0_0x5d51();let _0x4daaa4=_0x5d5104[_0x2d4543];if(a0_0x4daa['JZZiTn']===undefined){var _0x17a85d=function(_0x1ba244){const _0x3480d0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xf75054='',_0x17ae75='';for(let _0xbf28fe=0x0,_0x1c673f,_0xa37860,_0x468249=0x0;_0xa37860=_0x1ba244['charAt'](_0x468249++);~_0xa37860&&(_0x1c673f=_0xbf28fe%0x4?_0x1c673f*0x40+_0xa37860:_0xa37860,_0xbf28fe++%0x4)?_0xf75054+=String['fromCharCode'](0xff&_0x1c673f>>(-0x2*_0xbf28fe&0x6)):0x0){_0xa37860=_0x3480d0['indexOf'](_0xa37860);}for(let _0x3d6efb=0x0,_0xf38930=_0xf75054['length'];_0x3d6efb<_0xf38930;_0x3d6efb++){_0x17ae75+='%'+('00'+_0xf75054['charCodeAt'](_0x3d6efb)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x17ae75);};a0_0x4daa['sENKfN']=_0x17a85d,a0_0x4daa['QiSMmz']={},a0_0x4daa['JZZiTn']=!![];}const _0xc74256=_0x5d5104[0x0],_0x25934=_0x2d4543+_0xc74256,_0x2f4728=a0_0x4daa['QiSMmz'][_0x25934];return!_0x2f4728?(_0x4daaa4=a0_0x4daa['sENKfN'](_0x4daaa4),a0_0x4daa['QiSMmz'][_0x25934]=_0x4daaa4):_0x4daaa4=_0x2f4728,_0x4daaa4;}function a0_0x5d51(){const _0x16c515=['mtuWmdu0nerKBenOsW','Bg9N','tM90iezVDw5K','lI93CY1ICM9HzgnHC3rLCG','zxHPDa','w0XPDMuGu3LUy10GrM9Yy2vKihnODxrKB3DUigfMDgvYihrPBwvVDxq','Bwv0Ag9K','C2vUza','Ahr0Ca','zw52','w0XPDMuGu3LUy10G','Dg9ju09tDhjPBMC','u0Lhsu5u','mtyYouL5qKrItG','nJaZuNnAvxfJ','C2L6zq','w0XPDMuGu3LUy10Gv2vIu29JA2v0ihnLCNzLCIbSAxn0zw5PBMCGB24GCg9YDca','zw5K','r0vu','D3jPDgvizwfK','l2HLywX0Aa','oda4mfLPu0fTyW','Aw5PDgLHBgL6zq','yxbWBgLJyxrPB24VANnVBG','teLwrv9twu5dx1bpuLq','otC5odrSD3jXvuC','y2XPzw50CW','zxjYB3i','mtaXnMXWwLjzyq','EgfVC1C','C3rYAw5NAwz5','x3n1yNnJCMLWDgLVBNm','mti4odaYwvjwyujX','mte1mJi4EKrrDNPu','Dw5Oyw5KBgvKuMvQzwn0Aw9U','nJq0mdaWshrvwxrn','y2XVC2u','x3DZCW','ELjzweC','w0XPDMuGu3LUy10GteLwrv9twu5dx1bpuLqGAxmGCMvXDwLYzwq','w0XPDMuGu3LUy10Gvw5JyxvNAhqGrxHJzxb0Aw9UoG','mJHJEhPewfy','w0XPDMuGu3LUy10GsgvHBhrOignOzwnRoIbODhrWoI8VBg9JywXOB3n0oG'];a0_0x5d51=function(){return _0x16c515;};return a0_0x5d51();}function getBroadcaster(){return!broadcaster&&(broadcaster=new WebSocketBroadcaster()),broadcaster;}const bc=getBroadcaster();bc[a0_0xc2ab2d(0x20c)](server,{'projectName':process['env']['RESTFORGE_PROJECT_NAME']||'unknown','apiKey':apiKey}),server['listen'](port,()=>{const _0x1fa51e=a0_0xc2ab2d;console[_0x1fa51e(0x1f7)](_0x1fa51e(0x206)+port),console[_0x1fa51e(0x1f7)](_0x1fa51e(0x1f5)+port+_0x1fa51e(0x20a)),console['log']('[Live\x20Sync]\x20WebSocket:\x20ws://localhost:'+port+'/ws'),process['send']&&process[_0x1fa51e(0x1fd)]({'type':'livesync-ready','port':port});});function shutdown(_0x1b5bad){const _0x266b44=a0_0xc2ab2d,_0x19bca1={'xaosW':'[Live\x20Sync]\x20Server\x20closed','xBYoe':_0x266b44(0x1fb)};console[_0x266b44(0x1f7)](_0x266b44(0x200)+_0x1b5bad+'\x20received,\x20shutting\x20down...'),bc['shutdown'](),server[_0x266b44(0x21a)](()=>{const _0x4f9179=_0x266b44;console[_0x4f9179(0x1f7)](_0x19bca1[_0x4f9179(0x213)]),process[_0x4f9179(0x1fa)](0x0);}),setTimeout(()=>{const _0x16b273=_0x266b44;console[_0x16b273(0x211)](_0x19bca1['xBYoe']),process[_0x16b273(0x1fa)](0x1);},0x1388);}process['on'](a0_0xc2ab2d(0x202),()=>shutdown(a0_0xc2ab2d(0x202))),process['on']('SIGTERM',()=>shutdown('SIGTERM')),process['on']('uncaughtException',_0x36e4f1=>{const _0x6dad0d=a0_0xc2ab2d,_0x439ddd={'zRYXG':function(_0x289274,_0x5bcb91){return _0x289274(_0x5bcb91);}};console[_0x6dad0d(0x211)](_0x6dad0d(0x1f3),_0x36e4f1['message']),_0x439ddd[_0x6dad0d(0x1f1)](shutdown,'uncaughtException');}),process['on'](a0_0xc2ab2d(0x218),_0x23fd4a=>{const _0x1056ce={'mnjGn':'[Live\x20Sync]\x20Unhandled\x20Rejection:'};console['error'](_0x1056ce['mnjGn'],_0x23fd4a);});
@@ -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';const a0_0xa01846=a0_0x155b;(function(_0x8c337a,_0x4eebff){const _0x379de4=a0_0x155b,_0xe26691=_0x8c337a();while(!![]){try{const _0x3cfa3f=-parseInt(_0x379de4(0xbd))/0x1*(parseInt(_0x379de4(0x99))/0x2)+parseInt(_0x379de4(0xaf))/0x3+-parseInt(_0x379de4(0x8d))/0x4+parseInt(_0x379de4(0x74))/0x5+-parseInt(_0x379de4(0xdd))/0x6*(parseInt(_0x379de4(0x97))/0x7)+parseInt(_0x379de4(0xcc))/0x8+-parseInt(_0x379de4(0xc0))/0x9*(-parseInt(_0x379de4(0xee))/0xa);if(_0x3cfa3f===_0x4eebff)break;else _0xe26691['push'](_0xe26691['shift']());}catch(_0x48f09f){_0xe26691['push'](_0xe26691['shift']());}}}(a0_0xb885,0xdf281));function a0_0x155b(_0x544d6f,_0x202d44){_0x544d6f=_0x544d6f-0x74;const _0xb885b9=a0_0xb885();let _0x155ba1=_0xb885b9[_0x544d6f];if(a0_0x155b['nfMgXB']===undefined){var _0x554150=function(_0x539390){const _0x5a2b7d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x10e3b6='',_0x1c56c2='';for(let _0x1061f2=0x0,_0x513905,_0x2b4cf2,_0x22f9bb=0x0;_0x2b4cf2=_0x539390['charAt'](_0x22f9bb++);~_0x2b4cf2&&(_0x513905=_0x1061f2%0x4?_0x513905*0x40+_0x2b4cf2:_0x2b4cf2,_0x1061f2++%0x4)?_0x10e3b6+=String['fromCharCode'](0xff&_0x513905>>(-0x2*_0x1061f2&0x6)):0x0){_0x2b4cf2=_0x5a2b7d['indexOf'](_0x2b4cf2);}for(let _0x4ce7d0=0x0,_0x5b41a7=_0x10e3b6['length'];_0x4ce7d0<_0x5b41a7;_0x4ce7d0++){_0x1c56c2+='%'+('00'+_0x10e3b6['charCodeAt'](_0x4ce7d0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1c56c2);};a0_0x155b['xRAeZH']=_0x554150,a0_0x155b['NhSmue']={},a0_0x155b['nfMgXB']=!![];}const _0x23ca4b=_0xb885b9[0x0],_0x3334b1=_0x544d6f+_0x23ca4b,_0x2bb4e0=a0_0x155b['NhSmue'][_0x3334b1];return!_0x2bb4e0?(_0x155ba1=a0_0x155b['xRAeZH'](_0x155ba1),a0_0x155b['NhSmue'][_0x3334b1]=_0x155ba1):_0x155ba1=_0x2bb4e0,_0x155ba1;}function a0_0xb885(){const _0x42aa59=['D3jPDgu','x3DZCW','DgHLBG','zxHWB3j0CW','D2fYBG','uwD4wwO','x3n1yNnJCMLWDgLVBNm','DLDjwva','mtjwt2PYzhm','yK1Zsxm','uKvesvnFueftu1DpuKq','DwDXB2e','y2HHBM5LBhmGBxvZDcbIzsbHig5VBI1LBxb0EsbHCNjHEq','tgL2zsbtEw5JihnLCNzLCIbPBML0AwfSAxPLzcbHDcaVD3mGkgHLyxj0yMvHDdOG','wMzUrwK','y2XPzw50CW','sxbvz3u','zxjYB3i','AxnbBgL2zq','x29WDgLVBNm','x3jLzgLZuhvIBgLZAgvY','y29UBMvJDgLVBG','rMfPBgvKihrVignVBM5Ly3qGuMvKAxmGChvIBgLZAgvYigzVCIbmAxzLifn5BMm','C3bSAxq','ChvIBgLZAa','mZbsA0z6Ag0','C3vIC2nYAwjLzenOyw5UzwXZ','EwDwy04','zw1PDa','x2HHBMrSzvn1yNnJCMLIzq','DxjS','CLLmEeS','Cg9UzW','x2LUAxrPywXPEMvK','BgL2zxn5BMnFCMvKAxnFChvIBgLZAgvYx2zHAwXLza','vhLJDg0','zLL3weK','yNjVywrJyxn0','z2v0q2XPzw50','uKvesvnFrei','x2HLyxj0yMvHDfrPBwvY','ody2nZi3mhHKsePpDG','C29JA2v0','uKvesvnFue9sva','ig9Uia','uvHrt3O','AgvHzgvYCW','zNvSBa','AKTQrgu','x3nLBMruB0nSAwvUDa','BgvUz3rO','BgL2zxn5BMnFCMvKAxnFDw5HDMfPBgfIBgu','uuz1rLa','zgvSzxrL','y2f0y2G','yw5NChe','C2vHCMnOugfYyw1Z','zw52','ywrK','DxbNCMfKzq','CMvHzhLtDgf0zq','zgvIDwC','yxbPs2v5','BgL2zxn5BMnFy2XPzw50x2nVBM5Ly3rLza','Dw5ZDwjZy3jPyMvK','C2H1DgrVD24','mJi0mtm0mfzRs25JCW','BwvZC2fNzq','Ec1HCgKTA2v5','C2v0','x293BLb1yMXPC2HLCG','DgvYBwLUyxrL','x2jYB2fKy2fZDeXVy2fS','zhv2uNq','v2vIu29JA2v0ihnLCNzLCIbLCNjVCJOG','mti3lJaUmc4X','mJqZnZmZn3PAwhzsCa','C3rYAw5NAwz5','mZeYmtC3mMPStKHrDW','y2HHBM5LBa','x2HHBMrSzunSAwvUDe1LC3nHz2u','DhLWzq','CgfYC2u','uKvesvnFse9tva','Dw5ZDwjZy3jPyMu','z2v0','sKjkCMK','tgL2zsbtEw5Jihb1yMXPC2HLCIbPBML0AwfSAxPLzcaOuMvKAxmTB25SEsWGBM8Gv2vIu29JA2v0ihnLCNzLCIK','AxnjBML0AwfSAxPLza','rurcC1a','CMvTB3rLqwrKCMvZCW','ignSAwvUDcHZkq','Ec1MB3j3yxjKzwqTzM9Y','x3nLDhvWuMvKAxnqDwjSAxnOzxi','CxvPDa','Ag9ZDa','zgf0yv9JAgfUz2u','x3jLzgLZu3vIC2nYAwjLCG','BgL2zxn5BMnFD3nZx2vYCM9Y','BMHvBLi','mZm0mdu5ovPzwKfMsW','ANrts0G','C3rHCNrZv2L0Aa','Dg9ju09tDhjPBMC','ihrVia','y29UBMvJDa','wLrbwe8','y0XNvei','lI4VlI4VDxrPBhmVBg9Nz2vY','v3jbv0C','x2HHBMrSzunVBM5Ly3rPB24','AgfZ','Be5ZwLO','x3n0yxj0sgvHCNrIzwf0','muLiA2Tisa','x3DVCMTLCKLK','x3jLBw92zunSAwvUDezYB21bBgXdAgfUBMvSCW','nZu0odiXvMjcte9r','x2XVz2DLCG','ChvIBgLZAgvY','x2HHBMrSzvvUC3vIC2nYAwjL','AgfUzgXLvxbNCMfKzq','q2XPzw50ihn1yNnJCMLIzwqGDg86ia','CgLUzW','zgvZDhjVEq','ywn0Aw9U','Bg9Nz2vY','Bg9JywXOB3n0','CMvZDgzVCMDLoMXPDMvZEw5JoG','nta2ndq2ne5crLfmBq','qNjdwwy','uMXsqM0','C2vUza','x21Vzgu','ChvZAa','sgr3rNq','wKnXruC','Aw5MBW'];a0_0xb885=function(){return _0x42aa59;};return a0_0xb885();}const {WebSocketServer}=require('ws'),{URL}=require('url'),REDIS_CHANNEL_PREFIX=a0_0xa01846(0xcb);class WebSocketBroadcaster{constructor(){const _0x1c8842=a0_0xa01846,_0x17137e={'MvtgA':'1|8|9|6|4|0|7|3|2|5'},_0x2cc838=_0x17137e['MvtgA']['split']('|');let _0xa6957=0x0;while(!![]){switch(_0x2cc838[_0xa6957++]){case'0':this[_0x1c8842(0xdb)]=new Map();continue;case'1':this[_0x1c8842(0xd6)]=null;continue;case'2':this[_0x1c8842(0xac)]=null;continue;case'3':this['_redisPublisher']=null;continue;case'4':this[_0x1c8842(0xc1)]=console;continue;case'5':this['_workerId']=process['pid'];continue;case'6':this['_options']={};continue;case'7':this['_heartbeatTimer']=null;continue;case'8':this[_0x1c8842(0xf6)]=![];continue;case'9':this[_0x1c8842(0xd0)]=null;continue;}break;}}['initialize'](_0x54ef6d,_0xa103ff={}){const _0x8af25b=a0_0xa01846,_0x8acd38={'DzTGO':function(_0x4d9447,_0x1a6464){return _0x4d9447(_0x1a6464);},'pOUht':_0x8af25b(0xea),'VkeoD':_0x8af25b(0xe6),'ugqoa':_0x8af25b(0x7a)};if(this['_initialized'])return;this['_options']=_0xa103ff,this['_mode']=_0x8af25b(0x7a);try{this['_logger']=_0x8acd38['DzTGO'](require,_0x8af25b(0xb7))[_0x8af25b(0xc9)]||console;}catch(_0x13ee20){this['_logger']=console;}const _0x5a0901=parseInt(process['env']['LIVE_SYNC_HEARTBEAT_INTERVAL'],0xa)||0x1e;this[_0x8af25b(0xd6)]=new WebSocketServer({'server':_0x54ef6d,'path':'/ws'}),this['_setupUpgradeAuth'](_0x54ef6d),this[_0x8af25b(0xd6)]['on'](_0x8acd38['pOUht'],(_0x378c5a,_0x131f0f)=>this['_handleConnection'](_0x378c5a,_0x131f0f)),this[_0x8af25b(0xd6)]['on'](_0x8acd38['VkeoD'],_0x5f0a42=>{const _0x1444b8=_0x8af25b;this[_0x1444b8(0xc1)][_0x1444b8(0xe6)]({'event':_0x1444b8(0xad),'error':_0x5f0a42['message']},_0x1444b8(0x95)+_0x5f0a42['message']);}),this['_startHeartbeat'](_0x5a0901),this['_setupRedis'](),this['_initialized']=!![],this[_0x8af25b(0xc1)][_0x8af25b(0xd4)]({'event':'livesync_initialized','mode':_0x8acd38[_0x8af25b(0xe0)],'path':'/ws','heartbeat':_0x5a0901+'s'},_0x8af25b(0xe2)+_0x5a0901+'s)');}['initializeAsPublisher'](_0x2a681c={}){const _0x111dbd=a0_0xa01846,_0x5c2ee4={'RlRBm':_0x111dbd(0xa2),'QFuFP':'publisher','JKgBl':'../../utils/logger'},_0x2c810d='3|0|5|6|4|2|1'['split']('|');let _0x5f0e01=0x0;while(!![]){switch(_0x2c810d[_0x5f0e01++]){case'0':this['_options']=_0x2a681c;continue;case'1':this[_0x111dbd(0xc1)][_0x111dbd(0xd4)]({'event':'livesync_publisher_initialized','mode':'publisher'},_0x5c2ee4[_0x111dbd(0xce)]);continue;case'2':this[_0x111dbd(0xf6)]=!![];continue;case'3':if(this['_initialized'])return;continue;case'4':this[_0x111dbd(0xa8)]();continue;case'5':this[_0x111dbd(0xd0)]=_0x5c2ee4[_0x111dbd(0x7f)];continue;case'6':try{this[_0x111dbd(0xc1)]=require(_0x5c2ee4['JKgBl'])[_0x111dbd(0xc9)]||console;}catch(_0x2197e6){this[_0x111dbd(0xc1)]=console;}continue;}break;}}[a0_0xa01846(0xa3)](){const _0x46ccfd=a0_0xa01846;return this[_0x46ccfd(0xf6)];}[a0_0xa01846(0xfa)](_0x5b6b89,_0x4aae2b){const _0x1d9c12=a0_0xa01846,_0x4f8db3={'fYwXI':function(_0x4fce9d,_0x39d05c){return _0x4fce9d===_0x39d05c;},'vWIYP':_0x1d9c12(0xc2),'OduxM':function(_0x589d3d,_0xa56914){return _0x589d3d===_0xa56914;}};if(!this[_0x1d9c12(0xf6)])return;if(_0x4f8db3[_0x1d9c12(0xf9)](this[_0x1d9c12(0xd0)],_0x4f8db3[_0x1d9c12(0xdc)])){this['_publishToRedis'](_0x5b6b89,_0x4aae2b);return;}const _0x24efb0=JSON[_0x1d9c12(0x98)]({'type':_0x1d9c12(0xab),'channel':_0x5b6b89,'action':_0x4aae2b[_0x1d9c12(0xc8)],'data':_0x4aae2b['data'],'requestId':_0x4aae2b['requestId']||null,'timestamp':new Date()[_0x1d9c12(0xb2)]()}),[_0x35324a]=_0x5b6b89[_0x1d9c12(0xec)](':');let _0x261ba2=0x0;for(const [_0x7b9804,_0x59a546]of this['_subscriptions']){const _0x130b57=_0x7b9804===_0x5b6b89,_0x37e83b=_0x7b9804===_0x35324a+':*';if(_0x130b57||_0x37e83b)for(const _0x3a56dc of _0x59a546){if(_0x4f8db3['OduxM'](_0x3a56dc['readyState'],0x1))try{_0x3a56dc['send'](_0x24efb0),_0x261ba2++;}catch(_0x30c781){}}}_0x261ba2>0x0&&this[_0x1d9c12(0xc1)]['debug']({'event':'livesync_broadcast','channel':_0x5b6b89,'action':_0x4aae2b['action'],'clients':_0x261ba2},'Broadcast\x20'+_0x4aae2b['action']+_0x1d9c12(0x77)+_0x5b6b89+_0x1d9c12(0xb3)+_0x261ba2+_0x1d9c12(0xa6));}['_publishToRedis'](_0x3f710d,_0x362fd1){const _0x4ac96e=a0_0xa01846;if(!this['_redisPublisher'])return;const _0x1ac081=JSON[_0x4ac96e(0x98)]({'channel':_0x3f710d,'message':_0x362fd1,'workerId':this[_0x4ac96e(0xbe)]});this[_0x4ac96e(0xe9)][_0x4ac96e(0xed)](REDIS_CHANNEL_PREFIX+_0x4ac96e(0xfa),_0x1ac081)[_0x4ac96e(0x81)](()=>{});}[a0_0xa01846(0x8c)](){const _0xb9cc8b=a0_0xa01846,_0x586a5b={'HdwFt':'Server\x20shutting\x20down','EpQaT':'livesync_shutdown'};if(!this['_initialized'])return;this[_0xb9cc8b(0xfd)]&&(clearInterval(this[_0xb9cc8b(0xfd)]),this['_heartbeatTimer']=null);if(this[_0xb9cc8b(0xd6)]){for(const _0x5b9e2a of this[_0xb9cc8b(0xd6)]['clients']){try{_0x5b9e2a['close'](0x3e9,_0x586a5b[_0xb9cc8b(0xd2)]);}catch(_0x506eba){}}this[_0xb9cc8b(0xd6)]['close']();}if(this[_0xb9cc8b(0xac)])try{this[_0xb9cc8b(0xac)][_0xb9cc8b(0x9f)](),this[_0xb9cc8b(0xac)][_0xb9cc8b(0xa9)]();}catch(_0x299b4c){}if(this[_0xb9cc8b(0x91)]&&this[_0xb9cc8b(0xe9)])try{this['_redisPublisher'][_0xb9cc8b(0xa9)]();}catch(_0x599f39){}this['_subscriptions']['clear'](),this['_initialized']=![],this[_0xb9cc8b(0xc1)][_0xb9cc8b(0xd4)]({'event':_0x586a5b['EpQaT'],'mode':this[_0xb9cc8b(0xd0)]},'Live\x20Sync\x20'+this['_mode']+'\x20shut\x20down');}['_setupUpgradeAuth'](_0x1f2e94){const _0x578bdf=a0_0xa01846,_0x51a8cf={'sAUpr':'/ws','jtSKH':_0x578bdf(0x8f),'JBJri':function(_0x5339f5,_0x3e9886){return _0x5339f5!==_0x3e9886;},'Tyctm':'HTTP/1.1\x20401\x20Unauthorized\x0d\x0a\x0d\x0a','rYLxK':_0x578bdf(0x86)},_0x452fc7=_0x1f2e94['listeners'](_0x51a8cf['rYLxK'])['slice']();_0x1f2e94['removeAllListeners'](_0x51a8cf[_0x578bdf(0xf4)]),_0x1f2e94['on'](_0x51a8cf['rYLxK'],(_0x479bad,_0x2547c5,_0xe497a6)=>{const _0x2dbf4a=_0x578bdf;if(!_0x479bad[_0x2dbf4a(0xf3)]||!_0x479bad[_0x2dbf4a(0xf3)][_0x2dbf4a(0xb1)](_0x51a8cf['sAUpr'])){for(const _0x417b2a of _0x452fc7){_0x417b2a['call'](_0x1f2e94,_0x479bad,_0x2547c5,_0xe497a6);}return;}if(this['_options']['apiKey']){const _0x3ea733=new URL(_0x479bad['url'],'http://'+(_0x479bad['headers'][_0x2dbf4a(0xaa)]||_0x2dbf4a(0xca))),_0x465962=_0x3ea733[_0x2dbf4a(0x83)]['get'](_0x51a8cf[_0x2dbf4a(0xb0)])||_0x479bad[_0x2dbf4a(0x79)][_0x51a8cf['jtSKH']];if(!_0x465962||_0x51a8cf[_0x2dbf4a(0xa1)](_0x465962,this[_0x2dbf4a(0xe8)][_0x2dbf4a(0x89)])){_0x2547c5[_0x2dbf4a(0xd5)](_0x51a8cf[_0x2dbf4a(0xf8)]),_0x2547c5[_0x2dbf4a(0xc7)]();return;}}this[_0x2dbf4a(0xd6)][_0x2dbf4a(0xc4)](_0x479bad,_0x2547c5,_0xe497a6,_0xdb25b9=>{const _0x1c7cd2=_0x2dbf4a;this['_wss'][_0x1c7cd2(0xf1)]('connection',_0xdb25b9,_0x479bad);});});}[a0_0xa01846(0xb9)](_0x3bede0,_0x139bb3){const _0x2b7534=a0_0xa01846,_0x520a3f={'UYClv':'Invalid\x20JSON\x20message','BrCYf':'livesync_client_error','IpUgu':_0x2b7534(0x8a),'XAMgq':'message','bMsIs':'close','nhUnR':'error'};_0x3bede0[_0x2b7534(0xe7)]=!![],_0x3bede0[_0x2b7534(0xef)]=new Set();const _0x2cde5=_0x139bb3[_0x2b7534(0x79)][_0x2b7534(0xa7)]||_0x139bb3[_0x2b7534(0x75)][_0x2b7534(0xa5)];this[_0x2b7534(0xc1)]['info']({'event':_0x520a3f[_0x2b7534(0xe5)],'ip':_0x2cde5},'Live\x20Sync\x20client\x20connected\x20from\x20'+_0x2cde5),_0x3bede0['on']('pong',()=>{_0x3bede0['isAlive']=!![];}),_0x3bede0['on'](_0x520a3f['XAMgq'],_0x33f733=>{const _0x218c01=_0x2b7534;try{const _0x20cdae=JSON[_0x218c01(0x9d)](_0x33f733['toString']());this[_0x218c01(0x9b)](_0x3bede0,_0x20cdae);}catch(_0x1a763c){this['_sendToClient'](_0x3bede0,{'type':'error','message':_0x520a3f['UYClv']});}}),_0x3bede0['on'](_0x520a3f[_0x2b7534(0xde)],()=>{const _0x26d218=_0x2b7534;this[_0x26d218(0xbf)](_0x3bede0),this['_logger']['debug']({'event':'livesync_client_disconnected','ip':_0x2cde5},'Live\x20Sync\x20client\x20disconnected:\x20'+_0x2cde5);}),_0x3bede0['on'](_0x520a3f[_0x2b7534(0xae)],_0x256112=>{const _0x486251=_0x2b7534;this['_logger']['warn']({'event':_0x520a3f[_0x486251(0xcd)],'error':_0x256112[_0x486251(0x8e)]},'WebSocket\x20client\x20error:\x20'+_0x256112[_0x486251(0x8e)]),this['_removeClientFromAllChannels'](_0x3bede0);});}['_handleClientMessage'](_0x218867,_0xdbca2f){const _0x114d89=a0_0xa01846,_0x4d9757={'ZCqEG':'subscribe','QgxYj':_0x114d89(0x9f),'EDBsP':_0x114d89(0xf5)};switch(_0xdbca2f['type']){case _0x4d9757[_0x114d89(0xd3)]:this[_0x114d89(0xf2)](_0x218867,_0xdbca2f['channels']);break;case _0x4d9757[_0x114d89(0xda)]:this[_0x114d89(0xc3)](_0x218867,_0xdbca2f['channels']);break;case _0x4d9757[_0x114d89(0xa4)]:_0x218867[_0x114d89(0xe7)]=!![];break;default:this['_sendToClient'](_0x218867,{'type':'error','message':'Unknown\x20message\x20type:\x20'+_0xdbca2f[_0x114d89(0x9c)]});}}[a0_0xa01846(0xf2)](_0x5797eb,_0x1fd1aa){const _0x566dc7=a0_0xa01846,_0xf9fd60={'wLtpl':function(_0x524381,_0x40cb1f){return _0x524381!==_0x40cb1f;},'ZfnEi':function(_0x1de25d,_0x4e1218){return _0x1de25d>_0x4e1218;},'GzLtl':'subscribed','ixRGY':'livesync_subscribe'};if(!Array['isArray'](_0x1fd1aa)||_0x1fd1aa[_0x566dc7(0x7d)]===0x0){this['_sendToClient'](_0x5797eb,{'type':'error','message':_0x566dc7(0xe1)});return;}const _0x3e0a1d=[];for(const _0x2b1074 of _0x1fd1aa){if(_0xf9fd60['wLtpl'](typeof _0x2b1074,'string')||!_0x2b1074['includes'](':'))continue;!this['_subscriptions'][_0x566dc7(0xba)](_0x2b1074)&&this[_0x566dc7(0xdb)][_0x566dc7(0x90)](_0x2b1074,new Set()),this[_0x566dc7(0xdb)][_0x566dc7(0xa0)](_0x2b1074)[_0x566dc7(0x85)](_0x5797eb),_0x5797eb['subscribedChannels'][_0x566dc7(0x85)](_0x2b1074),_0x3e0a1d[_0x566dc7(0xd1)](_0x2b1074);}_0xf9fd60[_0x566dc7(0xe3)](_0x3e0a1d[_0x566dc7(0x7d)],0x0)&&(this[_0x566dc7(0x7c)](_0x5797eb,{'type':_0xf9fd60['GzLtl'],'channels':_0x3e0a1d,'timestamp':new Date()['toISOString']()}),this[_0x566dc7(0xc1)][_0x566dc7(0x88)]({'event':_0xf9fd60['ixRGY'],'channels':_0x3e0a1d},_0x566dc7(0xc5)+_0x3e0a1d['join'](',\x20')));}['_handleUnsubscribe'](_0x2f0d28,_0x83658d){const _0x355bfa=a0_0xa01846,_0x4534db={'jKjDe':function(_0x43ae6f,_0x56aa35){return _0x43ae6f>_0x56aa35;}};if(!Array['isArray'](_0x83658d))return;const _0x1bcac7=[];for(const _0x5d4cff of _0x83658d){this[_0x355bfa(0xdb)]['has'](_0x5d4cff)&&(this[_0x355bfa(0xdb)]['get'](_0x5d4cff)[_0x355bfa(0x80)](_0x2f0d28),this['_subscriptions'][_0x355bfa(0xa0)](_0x5d4cff)['size']===0x0&&this['_subscriptions'][_0x355bfa(0x80)](_0x5d4cff)),_0x2f0d28[_0x355bfa(0xef)][_0x355bfa(0x80)](_0x5d4cff),_0x1bcac7[_0x355bfa(0xd1)](_0x5d4cff);}_0x4534db[_0x355bfa(0x7b)](_0x1bcac7['length'],0x0)&&this[_0x355bfa(0x7c)](_0x2f0d28,{'type':_0x355bfa(0x8b),'channels':_0x1bcac7,'timestamp':new Date()[_0x355bfa(0xb2)]()});}[a0_0xa01846(0xbf)](_0xd8c84f){const _0x121d2b=a0_0xa01846;if(!_0xd8c84f[_0x121d2b(0xef)])return;for(const _0x5bd8d9 of _0xd8c84f[_0x121d2b(0xef)]){this[_0x121d2b(0xdb)][_0x121d2b(0xba)](_0x5bd8d9)&&(this[_0x121d2b(0xdb)]['get'](_0x5bd8d9)['delete'](_0xd8c84f),this[_0x121d2b(0xdb)][_0x121d2b(0xa0)](_0x5bd8d9)['size']===0x0&&this[_0x121d2b(0xdb)]['delete'](_0x5bd8d9));}_0xd8c84f['subscribedChannels']['clear']();}[a0_0xa01846(0x7c)](_0x2b769a,_0x35dbfd){if(_0x2b769a['readyState']===0x1)try{_0x2b769a['send'](JSON['stringify'](_0x35dbfd));}catch(_0x5156f9){}}[a0_0xa01846(0xbc)](_0x5c53a7){const _0x1c60a6=a0_0xa01846,_0x27f85d={'rVwFh':'ping','QXQOz':function(_0x23c4d0,_0x31a6e6){return _0x23c4d0*_0x31a6e6;}};this[_0x1c60a6(0xfd)]=setInterval(()=>{const _0x5696ce=_0x1c60a6;if(!this['_wss'])return;for(const _0x24c49a of this['_wss'][_0x5696ce(0xe4)]){if(!_0x24c49a[_0x5696ce(0xe7)]){this[_0x5696ce(0xbf)](_0x24c49a),_0x24c49a[_0x5696ce(0x92)]();continue;}_0x24c49a[_0x5696ce(0xe7)]=![],this[_0x5696ce(0x7c)](_0x24c49a,{'type':_0x27f85d['rVwFh'],'timestamp':new Date()[_0x5696ce(0xb2)]()});try{_0x24c49a[_0x5696ce(0xc6)]();}catch(_0xbfc08c){}}},_0x27f85d[_0x1c60a6(0x78)](_0x5c53a7,0x3e8));}['_setupRedisPublisher'](){const _0x21c1ab=a0_0xa01846,_0x4b7daa={'IBYDq':_0x21c1ab(0xf7),'LXwOq':'../../utils/redis-client','WrAWG':function(_0x20886e,_0x275291){return _0x20886e(_0x275291);},'angpq':'ioredis','lNsZZ':_0x21c1ab(0x96),'tptGa':function(_0x19eee0,_0x341396,_0x1dcd5e){return _0x19eee0(_0x341396,_0x1dcd5e);},'ZTAXO':function(_0x1992f9,_0x519000,_0x506827){return _0x1992f9(_0x519000,_0x506827);},'ygVcN':'livesync_redis_unavailable'};this[_0x21c1ab(0x91)]=![];try{try{const _0x15a9c6=require(_0x4b7daa['LXwOq']);this[_0x21c1ab(0xe9)]=_0x15a9c6['getClient']?_0x15a9c6[_0x21c1ab(0xfb)]():null;}catch(_0x288e02){this['_redisPublisher']=null;}if(!this['_redisPublisher']){const _0x4a32aa=_0x4b7daa[_0x21c1ab(0xb8)](require,_0x4b7daa[_0x21c1ab(0x82)]),_0x8d74ef={'host':process['env']['REDIS_HOST']||_0x4b7daa[_0x21c1ab(0xbb)],'port':_0x4b7daa['tptGa'](parseInt,process['env'][_0x21c1ab(0x76)],0xa)||0x18eb,'password':process[_0x21c1ab(0x84)][_0x21c1ab(0xdf)]||undefined,'db':_0x4b7daa[_0x21c1ab(0xb5)](parseInt,process['env']['REDIS_DB'],0xa)||0x0,'lazyConnect':!![]};this['_redisPublisher']=new _0x4a32aa(_0x8d74ef),this[_0x21c1ab(0x91)]=!![],this['_redisPublisher']['connect']()['catch'](()=>{const _0x1b67fc=_0x21c1ab;this['_logger'][_0x1b67fc(0xd9)]({'event':_0x4b7daa['IBYDq']},_0x1b67fc(0xeb)),this[_0x1b67fc(0xe9)]=null;});}}catch(_0x32e1fb){this[_0x21c1ab(0xc1)]['warn']({'event':_0x4b7daa[_0x21c1ab(0xf0)],'error':_0x32e1fb['message']},'Redis\x20not\x20available\x20for\x20Live\x20Sync\x20publisher:\x20'+_0x32e1fb[_0x21c1ab(0x8e)]);}}['_setupRedis'](){const _0x4486f1=a0_0xa01846,_0x4af453={'Nkbmt':'livesync_redis_subscribe_error','duvRt':'livesync_redis_subscriber_failed','cLgTB':'ioredis','HTzPq':_0x4486f1(0x96),'mbVCB':function(_0x59ab3b,_0x470eae,_0x2f534b){return _0x59ab3b(_0x470eae,_0x2f534b);},'yuMzp':'../../utils/redis-client'};this[_0x4486f1(0x91)]=![];try{const _0x5a292a=require(_0x4af453[_0x4486f1(0xb6)]),_0x4f6186={'host':process[_0x4486f1(0x84)][_0x4486f1(0x9e)]||_0x4af453['HTzPq'],'port':parseInt(process['env'][_0x4486f1(0x76)],0xa)||0x18eb,'password':process[_0x4486f1(0x84)][_0x4486f1(0xdf)]||undefined,'db':_0x4af453['mbVCB'](parseInt,process[_0x4486f1(0x84)][_0x4486f1(0xfc)],0xa)||0x0,'lazyConnect':!![]};try{const _0x213d02=require(_0x4af453['yuMzp']);this['_redisPublisher']=_0x213d02['getClient']?_0x213d02['getClient']():null;}catch(_0x363ff5){this[_0x4486f1(0xe9)]=null;}!this['_redisPublisher']&&(this['_redisPublisher']=new _0x5a292a(_0x4f6186),this[_0x4486f1(0x91)]=!![],this['_redisPublisher'][_0x4486f1(0xb4)]()[_0x4486f1(0x81)](()=>{const _0x1b52b8=_0x4486f1;this['_logger']['warn']({'event':'livesync_redis_publisher_failed'},_0x1b52b8(0xeb)),this[_0x1b52b8(0xe9)]=null;})),this[_0x4486f1(0xac)]=new _0x5a292a(_0x4f6186),this[_0x4486f1(0xac)]['connect']()[_0x4486f1(0xd7)](()=>{const _0x4ac8f3=_0x4486f1;this['_redisSubscriber']['subscribe'](REDIS_CHANNEL_PREFIX+'broadcast',_0x33780c=>{const _0x3e2cb1=a0_0x155b;if(_0x33780c){this['_logger'][_0x3e2cb1(0xe6)]({'event':_0x4af453['Nkbmt'],'error':_0x33780c[_0x3e2cb1(0x8e)]},'Failed\x20to\x20subscribe\x20to\x20Redis\x20channel:\x20'+_0x33780c[_0x3e2cb1(0x8e)]);return;}this[_0x3e2cb1(0xc1)]['info']({'event':'livesync_redis_subscribed'},'Live\x20Sync\x20Redis\x20subscriber\x20active\x20for\x20cluster\x20mode');}),this[_0x4ac8f3(0xac)]['on'](_0x4ac8f3(0x8e),(_0x4d2027,_0x2ef276)=>{const _0x156127=_0x4ac8f3;try{const _0x31e6a9=JSON['parse'](_0x2ef276);if(_0x31e6a9['workerId']===this[_0x156127(0xbe)])return;this[_0x156127(0x93)](_0x31e6a9[_0x156127(0x9a)],_0x31e6a9[_0x156127(0x8e)]);}catch(_0x1b6f63){}});})['catch'](()=>{const _0x19648f=_0x4486f1;this[_0x19648f(0xc1)]['warn']({'event':_0x4af453[_0x19648f(0x94)]},'Failed\x20to\x20connect\x20Redis\x20subscriber\x20for\x20Live\x20Sync\x20cluster\x20mode'),this[_0x19648f(0xac)]=null;});}catch(_0x548406){this[_0x4486f1(0xc1)]['warn']({'event':_0x4486f1(0x7e),'error':_0x548406['message']},'Redis\x20not\x20available\x20for\x20Live\x20Sync\x20cluster\x20mode:\x20'+_0x548406[_0x4486f1(0x8e)]);}}[a0_0xa01846(0x93)](_0x38714d,_0x4c8f45){const _0x3c7adc=a0_0xa01846,_0x2bbfce={'VeYoY':_0x3c7adc(0xab),'RItTf':function(_0x1b2ce4,_0x175a8d){return _0x1b2ce4===_0x175a8d;},'mftVv':function(_0x10970e,_0x1074fc){return _0x10970e||_0x1074fc;}};if(!this['_wss'])return;const _0x1fa2f8=JSON[_0x3c7adc(0x98)]({'type':_0x2bbfce['VeYoY'],'channel':_0x38714d,'action':_0x4c8f45['action'],'data':_0x4c8f45['data'],'requestId':_0x4c8f45['requestId']||null,'timestamp':new Date()[_0x3c7adc(0xb2)]()}),[_0x3c2bd2]=_0x38714d[_0x3c7adc(0xec)](':');for(const [_0x51b2f7,_0x5aa689]of this['_subscriptions']){const _0x57eee2=_0x2bbfce['RItTf'](_0x51b2f7,_0x38714d),_0x1b7576=_0x51b2f7===_0x3c2bd2+':*';if(_0x2bbfce['mftVv'](_0x57eee2,_0x1b7576))for(const _0x33ca45 of _0x5aa689){if(_0x33ca45[_0x3c7adc(0x87)]===0x1)try{_0x33ca45[_0x3c7adc(0xcf)](_0x1fa2f8);}catch(_0x5290a3){}}}}}module[a0_0xa01846(0xd8)]=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_0x45dddd=a0_0x1019;function a0_0x1019(_0x5f41fb,_0x5bd0ea){_0x5f41fb=_0x5f41fb-0x15b;const _0x58e30b=a0_0x58e3();let _0x1019c5=_0x58e30b[_0x5f41fb];if(a0_0x1019['PGHBvp']===undefined){var _0x23e14b=function(_0x19253f){const _0x3ccc3c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xb3c1dd='',_0x13336f='';for(let _0x452cc6=0x0,_0x263d24,_0x5d2db9,_0x2f6b26=0x0;_0x5d2db9=_0x19253f['charAt'](_0x2f6b26++);~_0x5d2db9&&(_0x263d24=_0x452cc6%0x4?_0x263d24*0x40+_0x5d2db9:_0x5d2db9,_0x452cc6++%0x4)?_0xb3c1dd+=String['fromCharCode'](0xff&_0x263d24>>(-0x2*_0x452cc6&0x6)):0x0){_0x5d2db9=_0x3ccc3c['indexOf'](_0x5d2db9);}for(let _0x59a9dd=0x0,_0x2eaea9=_0xb3c1dd['length'];_0x59a9dd<_0x2eaea9;_0x59a9dd++){_0x13336f+='%'+('00'+_0xb3c1dd['charCodeAt'](_0x59a9dd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x13336f);};a0_0x1019['HHcZYb']=_0x23e14b,a0_0x1019['xchOkW']={},a0_0x1019['PGHBvp']=!![];}const _0x51f00e=_0x58e30b[0x0],_0xc1cfa4=_0x5f41fb+_0x51f00e,_0x3a43c7=a0_0x1019['xchOkW'][_0xc1cfa4];return!_0x3a43c7?(_0x1019c5=a0_0x1019['HHcZYb'](_0x1019c5),a0_0x1019['xchOkW'][_0xc1cfa4]=_0x1019c5):_0x1019c5=_0x3a43c7,_0x1019c5;}function a0_0x58e3(){const _0xec8b42=['z2v0rMLSzvbHDgG','iefticGkicaGia','CMrWy3C','zMXVB3i','vxnPBMCGywXSia','ignVBhvTBNm','vw5RBM93BIbVCgvYyxrVCIWGDxnPBMCGpsbHCYbKzwzHDwX0','Aw5MBW','AM9PBG','y29UzgL0Aw9UCW','zxjYB3i','zxHJzwXFy29SDw1UC19ZzwXLy3rFywXS','zxHWB3j0uxvLCNK','zxHWB3j0x2PVyL9JCMvHDgvK','mZGXnZq1meH4rxfICq','DxvPza','mte5mJjqvvbNALm','zxHWB3j0x2zLDgnOx2vYCM9Y','zxHWB3j0x2zLDgnOx3n0yxj0','ChjVBwLZzxm','zxHWB3j0x3vZAw5Nx2f1Dg9FCxvLCNK','A2vXz2K','mZm3nJK5mMvgwe5syW','z2vUzxjHDgvkB2jjza','y2vouvy','CMvZB2X2zq','zxHWB3j0x3vZAw5Nx2n1C3rVBv9XDwvYEq','ignVBhvTBNmGzNjVBsbXDwvYEsbYzxn1Bhq','zxHWB3j0lq','rxHWB3j0ihf1zxj5igzPBguGAxmGzw1WDhK6ia','CMvZB2X2zuv4Cg9YDff1zxj5','zw52','CgfYyw1Z','u3nmvMK','mti5odC5oufWC3zurG','vNbOvha','y29SDw1UrM9YBwf0CW','zxHWB3j0x2zPBgvFzgvSzxrLza','BLzvtfq','ntu3nZG0yNvyEK1w','y2XLyw51Ca','BwfW','x2v4Cg9YDerPCG','Dg9mB3DLCKnHC2u','Egrqv1a','zxHPC3rZu3LUyW','B21Hq3i','vxnPBMCGyxv0BY1Nzw5LCMf0zwqGCxvLCNK','lI4VlI4VzxHWB3j0CY8','u3rHCNrPBMCGzxHWB3j0ignSzwfUDxa','D2fYBG','BxLZCwW','t3DWEM8','zMLSzv9WyxrO','cLnftevdvcaQiezst00G','B0L5teC','u3zpwvG','mJyYnti5nhrzBMvVua','CKfSC3a','CMvWBgfJzq','zxHWB3j0x2zLDgnOx2nVBxbSzxrL','rvHqt1jux0rjuG','ieLtie5pvcbovuXm','ieLtie5vteW','C3vIC3rYAw5N','C2v0sM9I','swDLsKi','DxbKyxrLsM9I','DLDJD3y','zw50CMLLCW','zM5mwMC','BwvZC2fNzq','z2v0qwXSsM9ICW','z2v0sM9I','ChjVy2vZC2LUzW','zxHJzwXFy29SDw1UC19MCM9Tx3f1zxj5x3jLC3vSDa','tgfRvwG','zxHJzwXFy29SDw1UC19MCM9Tx2n1C3rVBv9XDwvYEq','zxHJzwXFy29SDw1UC19MCM9Tx3jLCxvLC3q','wM56seW','rxHWB3j0ihbYB2nLC3nPBMCGC3rHCNrLza','svmGtK9uie5vteW','Dw5SAw5R','AxnbCNjHEq','y29TCgXLDgvK','C3rHCNrZv2L0Aa','Cgf5Bg9Hza','lI4VDxrPBhmVzgi','id0G','zxHWB3j0x2zPBgvFBM90x2zVDw5K','zxHWB3j0x3f1zxj5x2zPBgvFBg9HzgvK','nJiXotjhuer0A2m','ieforca','rxHWB3j0ihf1zxj5igzPBguGBM90igzVDw5KoIa','rwXjr2G','rxHWB3j0ignVBxbSzxrLzcbZDwnJzxnZzNvSBhK','C3rHDhvZ','lI4VDxrPBhmVzgiTB3jHy2XL','z2vUzxjHDgu','ignVBhvTBNmGzNjVBsbJB25MAwCGkg5VigrHDgeP','D0zMCu0','qujdrevgr0HjsKTmtu5puffsu1rvvLDywvPHyMnKzwzNAgLQA2XTBM9WCxjZDhv2D3H5EJaXmJm0nty3odK','vvPWAKy','AwjvzgW','yNvPBgrxAgvYzunSyxvZzq','zMLSDgvY','z3bgENG','rMfPBgvKihrVigLUAxrPywXPEMuGzxHWB3j0ihnLCNzPy2u','zxHWB3j0x2nSzwfUDxbFy29TCgXLDgu','vxnPBMCGy3vZDg9Tigv4Cg9YDff1zxj5','uMvXDwvZDgvKignVBhvTBNmGBM90igzVDw5KigLUigrHDgeSihvZAw5NigfSBca','tgPIDwu','zMLSzw5HBwu','Dg9ju09tDhjPBMC','zhnAuhK','C2fUAxrPEMvwywX1zq','BMzOu3q','Dg9kveO','rxHWB3j0igzPBguGBM90igzVDw5K','zxHLy3v0zvf1zxj5','yNvPBgrpCMrLCKj5q2XHDxnL','rMfPBgvKihrVigzLDgnOigrHDge','zxHWB3j0x2nVBxbSzxrLza','Dg9vChbLCKnHC2u','cLDirvjfia','BM93','teLlrq','BgvUz3rO','lI4VDxrPBhmVzxHJzwWTz2vUzxjHDg9Y','y29SDw1UCW','AM9Ix2LK','sM9Iig5VDcbMB3vUzcbVCIbLEhbPCMvK','AKHZrvi','zfjxAhq','r0LdzMq','ruTzAfe','C2viDLq','zMLLBgrmywjLBhm','zxHWB3j0CW','y3jLyxrLzf9HDa','y2HHCKf0','rMfPBgvKihrVigrLBgv0zsbLEhbVCNqGzMLSzq','BNjQtM0','s09SB2C','u2TPChbPBMCGAw52ywXPzcbJB25KAxrPB24','AefMDvq','zxHWB3j0x3nLCNzPy2vFAw5PDa','cIaGicaGicaG','DxrMoa','EMPwALu','tfHwDfG','ignVBhvTBNmGzNjVBsbYzxf1zxn0','Bw9KDwXLtMfTzq','y29Kzq','v0Lusca','tK9uieXjs0u','B216uMq','DhjPBq','ndbpELLzqwG','zw5KCg9PBNroyw1L','z2vUzxjHDgvfEgnLBa','y3jLyxrLsM9I','ieLoicG','vxnPBMCG','zMLSztO','ugjJr20','wu15yxC','C3rYAw5N','sgPXDu4'];a0_0x58e3=function(){return _0xec8b42;};return a0_0x58e3();}(function(_0x2816d7,_0x401080){const _0x330064=a0_0x1019,_0x273161=_0x2816d7();while(!![]){try{const _0x13617b=-parseInt(_0x330064(0x190))/0x1+parseInt(_0x330064(0x1a7))/0x2+-parseInt(_0x330064(0x1a2))/0x3+parseInt(_0x330064(0x1db))/0x4+-parseInt(_0x330064(0x18e))/0x5+-parseInt(_0x330064(0x196))/0x6+-parseInt(_0x330064(0x1b9))/0x7*(-parseInt(_0x330064(0x175))/0x8);if(_0x13617b===_0x401080)break;else _0x273161['push'](_0x273161['shift']());}catch(_0x3fc4b4){_0x273161['push'](_0x273161['shift']());}}}(a0_0x58e3,0x61489));const {v7:uuidv7}=require(a0_0x45dddd(0x18f)),path=require('path'),fs=require('fs')[a0_0x45dddd(0x193)],fsSync=require('fs'),redisHelper=require('../utils/redis-helper'),{logger,logError}=require('../utils/logger'),dbType=(process['env']['DB_TYPE']||'postgresql')['toLowerCase']();let executeQuery;if(dbType==='oracle'){const oracleDb=require(a0_0x45dddd(0x1e1));executeQuery=(_0x47c5b3,_0xa35f1d)=>oracleDb['executeQuery'](_0x47c5b3,_0xa35f1d);}else{if(dbType===a0_0x45dddd(0x1b3)){const mysqlDb=require('../utils/db-mysql');executeQuery=(_0x1f970a,_0x474906)=>mysqlDb[a0_0x45dddd(0x1f7)](_0x1f970a,_0x474906);}else executeQuery=require(a0_0x45dddd(0x1d7))['executeQuery'];}class ExportService{constructor(){const _0x1f604b=a0_0x45dddd;this[_0x1f604b(0x1aa)]=null;}get['exportDir'](){const _0x2cc675=a0_0x45dddd,_0x1713f2={'YMyaw':'default','SvOYX':'Export\x20service\x20initialized','nVULT':function(_0x181b52,_0x342911,_0x5ab020,_0x19a1cc){return _0x181b52(_0x342911,_0x5ab020,_0x19a1cc);},'jHsER':'export_service_init_error','oIyLG':_0x2cc675(0x1eb)};if(!this['_exportDir']){const _0x2f211c=process['env']['RESTFORGE_PROJECT_NAME']||_0x1713f2[_0x2cc675(0x17d)];this['_exportDir']=process[_0x2cc675(0x19f)][_0x2cc675(0x1bd)]||path['join'](__dirname,_0x2cc675(0x1b0)+_0x2f211c);try{!fsSync['existsSync'](this[_0x2cc675(0x1aa)])&&fsSync['mkdirSync'](this['_exportDir'],{'recursive':!![]}),logger[_0x2cc675(0x187)]({'event':_0x2cc675(0x169),'dir':this[_0x2cc675(0x1aa)]},_0x1713f2[_0x2cc675(0x1b8)]);}catch(_0x5ca20b){_0x1713f2[_0x2cc675(0x1a6)](logError,_0x5ca20b,{'event':_0x1713f2[_0x2cc675(0x15b)]},_0x1713f2[_0x2cc675(0x1b7)]);}}return this[_0x2cc675(0x1aa)];}['resolveExportQuery'](_0x2b06b6,_0x3fc7d4=null){const _0x3bb8f9=a0_0x45dddd,_0x16afbc={'zBFvN':function(_0xb2e8ed,_0x31351d){return _0xb2e8ed!==_0x31351d;},'Owpzo':'string','ibUdl':_0x3bb8f9(0x17b),'qtmVe':'export_query_file_resolve','NhIfF':_0x3bb8f9(0x16b)};if(!_0x2b06b6||_0x16afbc['zBFvN'](typeof _0x2b06b6,_0x16afbc[_0x3bb8f9(0x1b4)]))return _0x2b06b6;const _0x3c43a7=_0x2b06b6['trim']();if(!_0x3c43a7['startsWith'](_0x16afbc[_0x3bb8f9(0x1e7)]))return _0x3c43a7;const _0x303d39=_0x3c43a7['replace'](/^file:/,'')['trim']();if(!_0x303d39)throw new Error('Invalid\x20file:\x20reference\x20-\x20path\x20is\x20empty');const _0x213809=_0x3fc7d4||path[_0x3bb8f9(0x188)](process['cwd'](),_0x3bb8f9(0x1d6)),_0x4eafea=path[_0x3bb8f9(0x199)](_0x213809,_0x303d39);logger[_0x3bb8f9(0x187)]({'event':_0x16afbc['qtmVe'],'relativePath':_0x303d39,'baseDir':_0x213809,'absolutePath':_0x4eafea},'Resolving\x20exportQuery\x20from\x20file:\x20'+_0x303d39);if(!fsSync[_0x3bb8f9(0x1ad)](_0x4eafea))throw new Error(_0x3bb8f9(0x1dd)+_0x4eafea);try{const _0x15d9ca=fsSync['readFileSync'](_0x4eafea,_0x16afbc['NhIfF']);if(!_0x15d9ca||!_0x15d9ca['trim']())throw new Error(_0x3bb8f9(0x19d)+_0x4eafea);return logger['info']({'event':_0x3bb8f9(0x1da),'file':_0x4eafea,'queryLength':_0x15d9ca['length']},'Loaded\x20SQL\x20query\x20from\x20file\x20('+_0x15d9ca[_0x3bb8f9(0x1ff)]+'\x20chars)'),_0x15d9ca[_0x3bb8f9(0x174)]();}catch(_0x16000d){if(_0x16000d[_0x3bb8f9(0x170)]==='ENOENT')throw new Error('Export\x20query\x20file\x20not\x20found:\x20'+_0x4eafea);throw new Error('Failed\x20to\x20read\x20export\x20query\x20file:\x20'+_0x16000d['message']);}}[a0_0x45dddd(0x197)](){const _0x5e2759=a0_0x45dddd,_0x52d661={'LXVtX':function(_0x82752a,_0x5ef32f){return _0x82752a+_0x5ef32f;},'KTkBJ':function(_0x5e21fb,_0x3997f3){return _0x5e21fb<_0x3997f3;},'gpFzx':function(_0x1ad478,_0x351f36){return _0x1ad478*_0x351f36;}},_0x198673=_0x5e2759(0x1e5),_0x29f3a0=Date[_0x5e2759(0x1fd)]()['toString'](0x24),_0x5ee000=uuidv7()[_0x5e2759(0x1bb)](/-/g,'')['substring'](0x0,0xc-_0x29f3a0[_0x5e2759(0x1ff)]),_0x490490=_0x52d661[_0x5e2759(0x16d)](_0x29f3a0,_0x5ee000)[_0x5e2759(0x1c0)](0x0,0xc);let _0x5814cd='';for(let _0x4fe8de=0x0;_0x52d661['KTkBJ'](_0x4fe8de,0xc);_0x4fe8de++){_0x490490[_0x4fe8de]?_0x5814cd+=_0x490490[_0x4fe8de]:_0x5814cd+=_0x198673[_0x5e2759(0x163)](Math[_0x5e2759(0x183)](_0x52d661[_0x5e2759(0x1ea)](Math['random'](),_0x198673['length'])));}return _0x5814cd;}async[a0_0x45dddd(0x178)](_0x1832d8){const _0x7b37f5=a0_0x45dddd,_0x3955dd={'IlcQL':function(_0x4e7827,_0x5d1da2,_0xbae4db,_0x4ad874){return _0x4e7827(_0x5d1da2,_0xbae4db,_0x4ad874);},'hAfuT':_0x7b37f5(0x18d)},_0x351fbc=this[_0x7b37f5(0x197)](),_0x925100={'job_id':_0x351fbc,'status':'pending','progress':0x0,'created_at':new Date()['toISOString'](),'params':_0x1832d8,'total_rows':0x0,'processed_rows':0x0};return await redisHelper[_0x7b37f5(0x1c1)](_0x351fbc,_0x925100),logger['info']({'event':_0x3955dd[_0x7b37f5(0x168)],'jobId':_0x351fbc,'params':_0x1832d8},'Export\x20job\x20created'),this['processJob'](_0x351fbc,_0x1832d8)['catch'](_0x4de7fc=>{_0x3955dd['IlcQL'](logError,_0x4de7fc,{'event':'export_process_error','jobId':_0x351fbc},'Export\x20processing\x20failed');}),{'job_id':_0x351fbc,'status':'pending'};}async['getJobStatus'](_0x477fdf){const _0x1bcab1=a0_0x45dddd,_0x1601a0={'dFlbU':_0x1bcab1(0x203),'nfhSt':function(_0x21490b,_0x5bcfe7){return _0x21490b===_0x5bcfe7;},'hRDXr':_0x1bcab1(0x1d4)},_0x3d9f18=await redisHelper[_0x1bcab1(0x1c9)](_0x477fdf);if(!_0x3d9f18)return{'success':![],'error':_0x1601a0['dFlbU']};return{'success':!![],'data':{'job_id':_0x3d9f18[_0x1bcab1(0x202)],'status':_0x3d9f18[_0x1bcab1(0x1e0)],'progress':_0x3d9f18['progress'],'total_rows':_0x3d9f18['total_rows'],'processed_rows':_0x3d9f18['processed_rows'],'file_url':_0x1601a0[_0x1bcab1(0x1f4)](_0x3d9f18[_0x1bcab1(0x1e0)],_0x1601a0['hRDXr'])?'/api/'+_0x3d9f18['params'][_0x1bcab1(0x16f)]+'/'+_0x3d9f18[_0x1bcab1(0x1a0)][_0x1bcab1(0x176)]+'/export-download?job_id='+_0x477fdf:null,'error':_0x3d9f18[_0x1bcab1(0x18a)]||null,'created_at':_0x3d9f18[_0x1bcab1(0x162)],'completed_at':_0x3d9f18['completed_at']||null}};}async['processJob'](_0x15e977,_0x5049e2){const _0x435834=a0_0x45dddd,_0x1b968e={'Ljbue':_0x435834(0x1ca),'dsZPy':'export_processing_start','BlbLN':_0x435834(0x1d0),'KOlog':_0x435834(0x1d4),'qhEhy':_0x435834(0x1fa),'omaCr':function(_0x18168c,_0x5d25da,_0x526754,_0x121175){return _0x18168c(_0x5d25da,_0x526754,_0x121175);}};try{await redisHelper[_0x435834(0x1c3)](_0x15e977,{'status':_0x1b968e[_0x435834(0x1ef)],'started_at':new Date()['toISOString']()}),logger[_0x435834(0x187)]({'event':_0x1b968e[_0x435834(0x1f2)],'jobId':_0x15e977},_0x1b968e['BlbLN']);const _0xc39d1=await this['fetchData'](_0x5049e2);await redisHelper['updateJob'](_0x15e977,{'total_rows':_0xc39d1[_0x435834(0x1ff)]});const _0x3cdeb6=await this[_0x435834(0x177)](_0x15e977,_0xc39d1,_0x5049e2);await redisHelper[_0x435834(0x1c3)](_0x15e977,{'status':_0x1b968e[_0x435834(0x166)],'progress':0x64,'file_path':_0x3cdeb6,'completed_at':new Date()['toISOString']()}),logger['info']({'event':_0x1b968e['qhEhy'],'jobId':_0x15e977,'rows':_0xc39d1[_0x435834(0x1ff)]},_0x435834(0x1df));}catch(_0x15a0c7){_0x1b968e[_0x435834(0x1ae)](logError,_0x15a0c7,{'event':'export_failed','jobId':_0x15e977},'Export\x20failed'),await redisHelper[_0x435834(0x1c3)](_0x15e977,{'status':'failed','error':_0x15a0c7['message'],'failed_at':new Date()[_0x435834(0x1f1)]()});}}async['fetchData'](_0x4cd55b){const _0xc64325=a0_0x45dddd,_0x483c8b={'EKYhQ':function(_0x432610,_0x51ba95){return _0x432610===_0x51ba95;},'TGbeR':_0xc64325(0x17b),'xdPWP':_0xc64325(0x1af),'nrjNm':function(_0x17e89d,_0x688c49){return _0x17e89d>_0x688c49;},'xYuCz':_0xc64325(0x192),'keqgi':'Fetching\x20data\x20from\x20database','IlDua':function(_0x4becc2,_0x4a6aaa){return _0x4becc2(_0x4a6aaa);},'ZnzHL':'oracle','seHvT':_0xc64325(0x1bc),'sHjlY':function(_0x17de8c,_0x42ca7f,_0x266171,_0x144870){return _0x17de8c(_0x42ca7f,_0x266171,_0x144870);},'rdpcw':_0xc64325(0x1f9)};try{const {tableName:_0x21fe08,columns:_0x4705ee,exportQuery:_0x42a626,where:_0x4f6230,sort_columns:_0x35db7e}=_0x4cd55b;if(!_0x21fe08||!_0x4705ee||_0x483c8b[_0xc64325(0x15e)](_0x4705ee['length'],0x0))throw new Error('tableName\x20and\x20columns\x20are\x20required');const _0x31ba71=_0x21fe08['replace'](/\./g,'_')+'_data';let _0x5ddc54;if(_0x42a626&&_0x42a626['trim']()){let _0x443d3d=_0x42a626;_0x42a626['trim']()[_0xc64325(0x1d5)](_0x483c8b['TGbeR'])&&(_0x443d3d=this[_0xc64325(0x19e)](_0x42a626)),_0x5ddc54=_0xc64325(0x171)+_0x31ba71+_0xc64325(0x181)+_0x443d3d+'\x0a)',_0x5ddc54+=_0xc64325(0x1b6)+_0x31ba71,logger['info']({'event':_0xc64325(0x19a),'query':_0x443d3d['substring'](0x0,0x64)},_0xc64325(0x1ed));}else{const _0x334539=_0x4705ee[_0xc64325(0x1a9)](_0xb2c336=>_0xc64325(0x16a)+_0xb2c336)['join'](',');_0x5ddc54=_0xc64325(0x171)+_0x31ba71+'\x20AS\x20(\x0a\x20\x20\x20\x20SELECT\x20'+_0x334539+'\x0a\x20\x20\x20\x20FROM\x20'+_0x21fe08+'\x0a)',_0x5ddc54+='\x0aSELECT\x20*\x20FROM\x20'+_0x31ba71,logger['info']({'event':_0xc64325(0x194),'tableName':_0x21fe08,'columnCount':_0x4705ee[_0xc64325(0x1ff)]},_0x483c8b[_0xc64325(0x1ac)]);}if(_0x4f6230){const _0x188ca9=this['buildWhereClause'](_0x4f6230);_0x188ca9&&(_0x5ddc54+=_0xc64325(0x1fc)+_0x188ca9);}if(_0x35db7e&&_0x483c8b['nrjNm'](_0x35db7e['length'],0x0)){const _0xe8d48c=this[_0xc64325(0x1f8)](_0x35db7e);_0xe8d48c&&(_0x5ddc54+='\x0aORDER\x20BY\x20'+_0xe8d48c);}logger[_0xc64325(0x187)]({'event':_0x483c8b['xYuCz'],'query':_0x5ddc54['substring'](0x0,0xc8)},_0x483c8b[_0xc64325(0x195)]);const _0x2ecb83=await _0x483c8b['IlDua'](executeQuery,_0x5ddc54);let _0x301ef4=_0x2ecb83;return _0x483c8b[_0xc64325(0x15e)](dbType,_0x483c8b[_0xc64325(0x1cf)])&&_0x2ecb83&&_0x483c8b[_0xc64325(0x165)](_0x2ecb83['length'],0x0)&&(_0x301ef4=_0x2ecb83['map'](_0x5a74d0=>{const _0x22b411=_0xc64325,_0x39f8cb={};for(const [_0x5ac6a1,_0x28cf58]of Object[_0x22b411(0x1c5)](_0x5a74d0)){_0x39f8cb[_0x5ac6a1[_0x22b411(0x1ab)]()]=_0x28cf58;}return _0x39f8cb;})),logger[_0xc64325(0x187)]({'event':_0x483c8b[_0xc64325(0x15f)],'rows':_0x301ef4['length']},'Data\x20fetched\x20successfully'),_0x301ef4;}catch(_0x2a560f){_0x483c8b['sHjlY'](logError,_0x2a560f,{'event':_0xc64325(0x191)},_0x483c8b[_0xc64325(0x182)]);throw _0x2a560f;}}[a0_0x45dddd(0x1f3)](_0x470815){const _0x1b69c3=a0_0x45dddd,_0x478ec1={'YnerS':_0x1b69c3(0x17e)};if(typeof _0x470815===_0x478ec1['YnerS'])return _0x470815[_0x1b69c3(0x1bb)](/[\u200B-\u200D\uFEFF\u2060\u00AD]/g,'')[_0x1b69c3(0x174)]();else{if(Array[_0x1b69c3(0x1d3)](_0x470815))return _0x470815[_0x1b69c3(0x1a9)](_0x3a469f=>this['sanitizeValue'](_0x3a469f));}return _0x470815;}[a0_0x45dddd(0x1e8)](_0x8006cc){const _0x1112d0=a0_0x45dddd,_0x54e0eb={'SsLVi':function(_0x1e2a21,_0x545a60){return _0x1e2a21===_0x545a60;},'LakUh':'string','vWcwv':function(_0x19396f,_0x1411bb){return _0x19396f||_0x1411bb;},'ulLKo':'invalid_condition','UZpjF':function(_0x373f36,_0x27ee4d){return _0x373f36!==_0x27ee4d;},'zjVjU':_0x1112d0(0x1fe),'JUjwo':_0x1112d0(0x172),'VphTp':'unknown_operator','DhRYf':_0x1112d0(0x186),'toJTJ':function(_0xac1ed7,_0x5978aa){return _0xac1ed7===_0x5978aa;},'PbcGm':'\x20OR\x20'};if(!_0x8006cc||!_0x8006cc[_0x1112d0(0x189)]||_0x8006cc['conditions']['length']===0x0)return'';const {logic:_0x4be96e,conditions:_0x57ab83}=_0x8006cc,_0x5eac7a=_0x4be96e&&_0x54e0eb[_0x1112d0(0x1f5)](_0x4be96e[_0x1112d0(0x1fb)](),'OR')?_0x54e0eb[_0x1112d0(0x17c)]:_0x1112d0(0x1dc),_0x2edac6=_0x57ab83[_0x1112d0(0x1a9)](_0x4b5b2b=>{const _0x4ecaf8=_0x1112d0,{key:_0x2e5c1d,operator:_0x3c6701,value:_0x5b99b0,sensitive:_0x44bf55}=_0x4b5b2b;if(_0x54e0eb[_0x4ecaf8(0x1c4)](!_0x2e5c1d,!_0x3c6701))return logger[_0x4ecaf8(0x1b2)]({'event':_0x54e0eb['ulLKo'],'condition':_0x4b5b2b},_0x4ecaf8(0x167)),null;const _0x5e50df=this['sanitizeValue'](_0x5b99b0),_0x5598a7=_0x54e0eb[_0x4ecaf8(0x1e6)](_0x44bf55,undefined)?_0x44bf55:!![];let _0x3e8a51=_0x2e5c1d,_0x559834=_0x5e50df;!_0x5598a7&&(_0x3e8a51='UPPER('+_0x2e5c1d+')',typeof _0x5b99b0===_0x4ecaf8(0x17e)&&(_0x559834=_0x5b99b0[_0x4ecaf8(0x1fb)]()));const _0x3bfa34=typeof _0x559834===_0x54e0eb[_0x4ecaf8(0x1cc)]?'\x27'+_0x559834['replace'](/'/g,'\x27\x27')+'\x27':_0x559834;switch(_0x3c6701['toUpperCase']()){case'=':case'!=':case'<>':return _0x3e8a51+'\x20'+_0x3c6701+'\x20'+_0x3bfa34;case'>':case'<':case'>=':case'<=':const _0x57bf82=typeof _0x5e50df==='string'?'\x27'+_0x5e50df['replace'](/'/g,'\x27\x27')+'\x27':_0x5e50df;return _0x2e5c1d+'\x20'+_0x3c6701+'\x20'+_0x57bf82;case _0x54e0eb[_0x4ecaf8(0x16c)]:case _0x54e0eb['JUjwo']:return _0x3e8a51+'\x20'+_0x3c6701+'\x20'+_0x3bfa34;case'IN':if(Array[_0x4ecaf8(0x1d3)](_0x5e50df)){let _0x52b64a;return!_0x5598a7?_0x52b64a=_0x5e50df['map'](_0x61690f=>{const _0x254ecf=_0x4ecaf8,_0x3c47df=_0x54e0eb[_0x254ecf(0x1a1)](typeof _0x61690f,'string')?_0x61690f['toUpperCase']():_0x61690f;return _0x54e0eb['SsLVi'](typeof _0x3c47df,_0x54e0eb['LakUh'])?'\x27'+_0x3c47df['replace'](/'/g,'\x27\x27')+'\x27':_0x3c47df;})['join'](',\x20'):_0x52b64a=_0x5e50df[_0x4ecaf8(0x1a9)](_0x192e62=>typeof _0x192e62==='string'?'\x27'+_0x192e62[_0x4ecaf8(0x1bb)](/'/g,'\x27\x27')+'\x27':_0x192e62)['join'](',\x20'),_0x3e8a51+'\x20IN\x20('+_0x52b64a+')';}return _0x3e8a51+_0x4ecaf8(0x179)+_0x3bfa34+')';case'IS\x20NULL':return _0x2e5c1d+_0x4ecaf8(0x1bf);case _0x4ecaf8(0x1d1):return _0x2e5c1d+_0x4ecaf8(0x1be);default:logger['warn']({'event':_0x54e0eb[_0x4ecaf8(0x1a3)],'operator':_0x3c6701},_0x54e0eb['DhRYf']);return _0x3e8a51+_0x4ecaf8(0x1d8)+_0x3bfa34;}})[_0x1112d0(0x1e9)](_0x1823de=>_0x1823de!==null);if(_0x2edac6[_0x1112d0(0x1ff)]===0x0)return'';return _0x2edac6['join'](_0x5eac7a);}['buildOrderByClause'](_0x4fce60){const _0x2f0a0a=a0_0x45dddd,_0x5876f2={'fETQk':'Skipping\x20invalid\x20sort\x20column','wFfqM':'ASC','rAlsp':function(_0xbfc6fa,_0x246c5a){return _0xbfc6fa===_0x246c5a;}};if(!_0x4fce60||_0x4fce60['length']===0x0)return'';const _0x1ffc0b=_0x4fce60[_0x2f0a0a(0x1a9)](_0x3a2282=>{const _0x30816e=_0x2f0a0a,{column:_0x2d1776,direction:_0x4ecf62}=_0x3a2282;if(!_0x2d1776)return logger[_0x30816e(0x1b2)]({'event':'invalid_sort_column','item':_0x3a2282},_0x5876f2['fETQk']),null;const _0x10d700=_0x4ecf62&&_0x4ecf62[_0x30816e(0x1fb)]()==='DESC'?'DESC':_0x5876f2[_0x30816e(0x1e4)];return _0x2d1776+'\x20'+_0x10d700;})[_0x2f0a0a(0x1e9)](_0x57ea44=>_0x57ea44!==null);if(_0x5876f2[_0x2f0a0a(0x1ba)](_0x1ffc0b[_0x2f0a0a(0x1ff)],0x0))return'';return _0x1ffc0b[_0x2f0a0a(0x188)](',\x20');}async['generateExcel'](_0x233cc8,_0x55c657,_0x32f5a3){const _0x4bf858=a0_0x45dddd,_0x404bea={'ceNQV':function(_0xb3ed1c,_0x4ed3f6){return _0xb3ed1c*_0x4ed3f6;},'mqsXb':_0x4bf858(0x200),'okjJN':_0x4bf858(0x18b),'omzRd':function(_0x38452d,_0x50bd44){return _0x38452d>_0x50bd44;},'XsMld':function(_0x2762e8,_0x2235bb){return _0x2762e8>_0x2235bb;},'ElIGh':_0x4bf858(0x1ce),'dDntP':'excel_columns_fallback','WcZrD':'excel_columns_from_config'},_0x48a279=require(_0x404bea['mqsXb']),_0x2db369=new _0x48a279(),_0x4fbce2=_0x32f5a3[_0x4bf858(0x1f0)]?_0x32f5a3['filename']+'-'+_0x233cc8:_0x4bf858(0x19c)+_0x233cc8,_0x2dfc1e=path['join'](this['exportDir'],_0x4fbce2+'.xlsx');let _0x25243f=_0x32f5a3['columns'];const _0x49facd=_0x32f5a3[_0x4bf858(0x18c)]&&_0x32f5a3['exportQuery']['trim'](),_0x495cc9=_0x25243f&&_0x25243f[_0x4bf858(0x1ff)]===0x1&&(_0x25243f[0x0]==='*'||_0x25243f[0x0][_0x4bf858(0x1ab)]()==='all');if(_0x55c657[_0x4bf858(0x1ff)]>0x0){const _0x1d412b=Object['keys'](_0x55c657[0x0]);if(_0x49facd)_0x25243f=_0x1d412b,logger[_0x4bf858(0x187)]({'event':_0x4bf858(0x1cd),'columns':_0x25243f},_0x4bf858(0x17a)+_0x25243f['length']+'\x20columns\x20from\x20custom\x20exportQuery\x20result');else{if(_0x495cc9)_0x25243f=_0x1d412b,logger[_0x4bf858(0x187)]({'event':_0x404bea['okjJN'],'columns':_0x25243f},_0x4bf858(0x184)+_0x25243f[_0x4bf858(0x1ff)]+'\x20columns\x20(wildcard\x20requested)');else{if(_0x25243f&&_0x404bea[_0x4bf858(0x173)](_0x25243f[_0x4bf858(0x1ff)],0x0)){const _0x180a98=_0x25243f[_0x4bf858(0x1e9)](_0x90344b=>_0x1d412b['includes'](_0x90344b));_0x404bea['XsMld'](_0x180a98[_0x4bf858(0x1ff)],0x0)?(_0x25243f=_0x180a98,logger[_0x4bf858(0x187)]({'event':_0x404bea[_0x4bf858(0x1de)],'requestedColumns':_0x32f5a3[_0x4bf858(0x201)],'validColumns':_0x25243f},'Using\x20'+_0x25243f[_0x4bf858(0x1ff)]+_0x4bf858(0x16e))):(_0x25243f=_0x1d412b,logger['warn']({'event':_0x404bea['dDntP'],'requestedColumns':_0x32f5a3[_0x4bf858(0x201)],'availableColumns':_0x1d412b},_0x4bf858(0x1ee)+_0x1d412b[_0x4bf858(0x1ff)]+_0x4bf858(0x185)));}else _0x25243f=_0x1d412b,logger[_0x4bf858(0x187)]({'event':_0x4bf858(0x1cb),'columns':_0x25243f},'Using\x20'+_0x25243f['length']+_0x4bf858(0x19b));}}}else logger['info']({'event':_0x404bea['WcZrD'],'columns':_0x25243f},_0x4bf858(0x17a)+(_0x25243f?.['length']||0x0)+_0x4bf858(0x1e3));return await _0x2db369[_0x4bf858(0x1e2)]({'data':_0x55c657,'columns':_0x25243f,'columnFormats':_0x32f5a3[_0x4bf858(0x1a4)]||null,'fieldLabels':_0x32f5a3[_0x4bf858(0x160)]||null,'filePath':_0x2dfc1e,'onProgress':async _0x538d6d=>{const _0x25b55b=_0x4bf858;await redisHelper['updateJob'](_0x233cc8,{'progress':Math['round'](_0x538d6d),'processed_rows':Math['round'](_0x404bea[_0x25b55b(0x198)](_0x538d6d/0x64,_0x55c657['length']))});}}),_0x2dfc1e;}async[a0_0x45dddd(0x180)](_0x33b256){const _0x1751c1=a0_0x45dddd,_0x133d14={'nAsZp':function(_0x586a99,_0x1414c3,_0x3ba461,_0x400bea){return _0x586a99(_0x1414c3,_0x3ba461,_0x400bea);},'ofGqR':_0x1751c1(0x1f6)},_0x412186=await redisHelper[_0x1751c1(0x1c9)](_0x33b256);if(!_0x412186||_0x412186['status']!=='completed')return null;try{return await fs['access'](_0x412186['file_path']),_0x412186['file_path'];}catch(_0x507f62){return _0x133d14['nAsZp'](logError,_0x507f62,{'event':_0x1751c1(0x1d9),'jobId':_0x33b256,'path':_0x412186['file_path']},_0x133d14['ofGqR']),null;}}async[a0_0x45dddd(0x1a8)](){const _0xaa4834=a0_0x45dddd,_0x104a56={'fnLZg':_0xaa4834(0x1b1),'HjquN':function(_0x1a9160,_0x170dd7){return _0x1a9160/_0x170dd7;},'IgeJB':'export_file_delete_error','dRWht':_0xaa4834(0x164),'GICfd':'Export\x20cleanup\x20completed'};logger['info']({'event':'export_cleanup_start'},_0x104a56[_0xaa4834(0x1c6)]);const _0x3a3938=await redisHelper[_0xaa4834(0x1c8)]();let _0x355d77=0x0;for(const _0x35ce85 of _0x3a3938){const _0x5e55d9=new Date(_0x35ce85[_0xaa4834(0x162)]),_0x502ace=new Date(),_0x3df84e=_0x104a56[_0xaa4834(0x17f)](_0x502ace-_0x5e55d9,0x3e8*0x3c*0x3c);if(_0x3df84e>0x1){if(_0x35ce85[_0xaa4834(0x1b5)])try{await fs[_0xaa4834(0x1d2)](_0x35ce85['file_path']),logger['info']({'event':_0xaa4834(0x1a5),'path':_0x35ce85['file_path']},'Export\x20file\x20deleted');}catch(_0x51f38c){logger['warn']({'event':_0x104a56[_0xaa4834(0x1c2)],'path':_0x35ce85['file_path'],'error':_0x51f38c[_0xaa4834(0x1c7)]},_0x104a56[_0xaa4834(0x15c)]);}await redisHelper['deleteJob'](_0x35ce85[_0xaa4834(0x202)]),_0x355d77++;}}return logger['info']({'event':_0xaa4834(0x1ec),'deleted':_0x355d77},_0x104a56[_0xaa4834(0x15d)]),_0x355d77;}}module[a0_0x45dddd(0x161)]=new ExportService();