@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_0x26f5ee=a0_0x2172;function a0_0x2c44(){const _0x3cae0f=['x2TLEvbYzwzPEa','CNn2swr4s2v5','zgvMyxvSDfnLCMLHBfbHDhrLCM4','ALbrC0m','Dg9Rzw4','u0vuie5yigzHAwXLzcbIDxqGy2fJAguGr0vuihjLDhvYBMvKigvTChr5iokaLcbMywXSAw5NigjHy2SGDg8GB3DUihjLC3vSDa','AwrNzw5FCMvZzxj2zv9VDMvYzMXVD19JB21Wzw5ZyxrPB25FzxjYB3i','surhru5Fsu5wquXjrf9ut0TftG','BgnMEvK','CgLU','B0z4q20','x2vUC3vYzuLUAxrPywXPEMvK','x3vWzgf0zu1LDge','AwrNzw4','BNvTrgLNAxrZ','AwrNzw5FCMvZzxj2zv9PzgvTx2XVC2vY','BM5sAgq','z2vUzxjHDgvKqxq','BfDJBeS','rMfPBgvKihrVignHBMnLBcbYzxnLCNzHDgLVBIbMB3iGAwrLBxbVDgvUy3KGBg9Zzxi','surhru5Fsurftv9uveW','suqGr2vUzxjHDg9YigLZigrPC2fIBgvKicHZzxqGsurhru5Fru5bqKXfrd10CNvLkq','sw52ywXPzcbYzxnLCNzHDgLVBIb0DgW6ig11C3qGyMuGAw50zwDLCIa','zefMCMm','uuHMy0q','lcbNB3qG','sfLlwfu','C3rVCMvK','CMrXsxa','wvv0ENa','x2j1AwXKuMv1C2vlzxK','zgvMyxvSDenVzgvqyxr0zxjU','ndCZnJKYnw1fv3zAwq','CuDmEfm','ks4Gsw5JCMvHC2uGBNvTrgLNAxrZlG','Dgv4Da','surhru5Fsu5wquXjrf9ovu1crvi','AKD3vhC','AhvZvem','Bwf4uMv0CNK','surhru5Fsu5wquXjrf9qqvrurvjo','AwrNzw5Fy29UC3vTzwq','x2nVDw50zxjuveXnyxa','surhru5Fsu5wquXjrf9nt0rf','x2fSBg93uMvZzxq','suqGr2vUzxjHDg9Yig51BwjLCIbPzgvTihjHy2uGBg9ZDcWGCMv0DxjUAw5NihDPBM5LCIbLBNzLBg9Wzq','tuzfB1e','DhrS','suqGr2vUzxjHDg9YigLZigrPC2fIBgvK','AwrNzw5FBNvTyMvYx2DLBMvYyxrLza','z0HYvxO','tfv5DuC','EgrHy3i','A2v5uhjLzML4','x2DLDfjLC2vYDMf0Aw9Uq29UDgv4Da','BNvTyMvY','C0H4Ewm','Dfbtuu8','v2Lft3K','CMvZzxj2zv9JB25MAxjT','zw5HyMXLza','x2j1AwXKuMvZzxj2yxrPB25jBMrLEeTLEq','nJiXnZq0mfD0Awzfqq','sw52ywXPzcbUDw1Izxi6ig11C3qGyMuGBM9UlwvTChr5ihn0CMLUzW','AwrNzw5FBwv0yv91CgrHDgvFzxjYB3i','Bw9Kzq','CKX2zKC','mtuZmZaXnMDfs3fvtG','qMDyCMW','C2vXoG','CMvZzxj2zu51BwjLCG','AKzHzxe','zgf0zvbYzwzPEa','uMvZzxj2yxrPB24GBM90igzVDw5Kig9YigfSCMvHzhKGy29UC3vTzwq6ia','ExL5Ew1Tzgq','swPbA3G','mJaYndroy0LUtvK','z2v0q2XPzw50','zKTZChq','qKP4uvi','C2nHCMq','CMvSzwfZzq','ven2r2W','AwrNzw5FAwrLBv9OAxq','x2j1AwXKsxnZDwvKs2v5','x3zHBgLKyxrLuMvZB3vYy2u','y291BNrLCG','AwrLBvruta','x2rLzMf1BhrqAw5eAwDPDhm','rMfPBgvKihrVihbLCNnPC3qGzM9YBwf0DgvKihzHBhvLihrVihjLC2vYDMf0Aw9UigHHC2G','x3zHBgLKyxrLswrLBxbVDgvUy3LlzxK','mdeYmZq1nJC4oufcq0rfrG','suqGr2vUzxjHDg9YignVBMzPzYbPBML0AwfSAxPLzcaTigvUywjSzwq6ia','x2j1AwXKqwn0AxzLs2v5','zM9YBwf0s2v5','surhru5FuKvtrvjwrv9eruzbvuXux1ruta','x3jLC2vYDMvnyxHuveW','rK9ztMW','swrLBxbVDgvUy3KGCMv0CMLLDMuGzxjYB3i','owLkqvD1sq','tgLpzwW','x3zHBgLKyxrLtwf4uMv0CNK','AwrNzw5FCMfUzg9Tx3vUzg9FzxjYB3i','D1HUyMW','sw52ywXPzcbYzxvZzurLBgv0ztOGBxvZDcbIzsbIB29SzwfUicHNB3q6ia','x3bHzdi','Eun3y3u','surhru5Fsu5wquXjrf9ovu1FreLhsvrt','Ahbzv3C','x3zHBgLKyxrLtNvTyMvYugfYyw1Z','sK1rr2u','x3zHBgLKyxrLuMvZzxj2yxrPB25uB2TLBG','zxzHBa','sw52ywXPzcbWyxr0zxjUoIbTDxn0ignVBNrHAw4GyxqGBgvHC3qGB25LihbSywnLAg9SzgvYignOyxjHy3rLCIaOos9ol0eVys9ml1GVEc9il2GP','x2j1AwXKswrLBuTLEq','x2DLDenVDw50zxjuveW','AxnjBNrLz2vY','qw1sB3O','sw52ywXPzcbKAwDPDhm6ig11C3qGyMuGAw50zwDLCIa','Dg9ju09tDhjPBMC','mtaZndG2nhPPzKrzEq','yM9VBgvHBG','rvjnvM4','AwrNzw5FCMfUzg9Tx2LKzw1FBg9Zzxi','lcbLEhbLy3rLzca','C1zvr1i','cMLMihjLzgLZlMnHBgWOj0vysvnuuYCSieTfwvnBmv0Pid09idaGDgHLBGOGihjLzgLZlMnHBgWOj1Psru0NlcblrvLtwZjDlcbbuKDwwZfDkqOGihjLDhvYBIb7idaGFqPLBMqkBg9JywWGAca9ihjLzgLZlMnHBgWOj0Hnr0vujYWGs0vzu1SXxsWGj2v4CgLYzxnbDcCSicDJB3vUDgvYjYWGj3zHBhvLjYWGj2zVCM1HDeTLEsCSicDPC1jLDxnLzcCSicDJCMvHDgvKqxqNkqPSB2nHBcbWCMv2rxHWAxjLC0f0id0GAfSXxqPSB2nHBcbUzxDuDgXnCYa9ihrVBNvTyMvYkefsr1zBmL0PcMXVy2fSig5LD0v4Ce1Zid0GDg9UDw1IzxiOqvjhvLSZxsKkCMvKAxmUy2fSBcGNuevyueLsrsCSieTfwvnBmv0Sig5LD1r0Be1ZkqPYzwrPCY5JywXSkcDiu0vujYWGs0vzu1SXxsWGj2v4CgLYzxnbDcCSiefsr1zBnf0PcNjLzgLZlMnHBgWOj1PbreqNlcblrvLtwZjDlcbUzxDfEhbnCYWGqvjhvLSXxsKkCMvKAxmUy2fSBcGNrvHqsvjfjYWGs0vzu1SYxsWGBwf0Ac5MBg9VCIHUzxDuDgXnCYaVideWmdaPicSGnJaPcNjLDhvYBIb7ideSihbYzxzfEhbPCMvZqxqSigHBmL0SigHBm10SigHBnf0SigHBnv0SigHBnL0GFqO','vw5RBM93BIbMB3jTyxq6ia','wwnwC20','rhrNrfi','Cgf0DgvYBG','Eu1jy2G','surhru5Fsu5wquXjrf9quKvgsvG','x3n0B3jLswrLBunHy2HLtLG','surhru5Fsu5wquXjrf9esuDjvfm','DgvZDa','ExL5Ew1T','x3vUzg9syw5KB21szxnLCNzHDgLVBG','ChzyANO','x2vUywjSzwq','z2v0rgf0zq','wK9WwMW','t2nfuM0','x2j1AwXKuMvZzxj2yxrPB25lzxK','C2vWyxjHDg9Y','yNLQyvm','se9QvxO','uhzrANK','u2H1D0S','ywjJzgvMz2HPAMTSBw5VChfYC3r1DND4ExO','tNvTyMvYigrVzxmGBM90ig1HDgnOigv4CgvJDgvKigzVCM1HDcaOz290oIa','mtm3owzxquLrAW','C3rYAw5N','ChjLzML4','rMfPBgvKihrVignVBxbLBNnHDguGCMvZzxj2yxrPB24Gywz0zxiGy291BNrLCIbVDMvYzMXVDW','y291BNrLCKLUDa','mtqZnZbWyLn6rha','mKfKA2zRza','ANnVtLq','q0TyDgK','uLj0wgC','ChvZAa','qNLytxm','zM9YBwf0s2v5igLZihjLCxvPCMvKigLUigXVDY1SzxzLBcbYzwXLyxnL','CMfUzg9Tsw50','C3rYAw5NAwz5','ignOyxjZicHNB3qGBgvUz3rOoIa','mtiWmJndvhfAB2C','x3jLDhjPzxzLswrLBunHy2HL','twv0ysb1CgrHDguGzxjYB3i','x2rLzMf1BhrtzxjPywXqyxr0zxjU','suqGr2vUzxjHDg9Yig51BwjLCIbYzxnLCNzLzdOG','surhru5Fsu5wquXjrf9gt1jnqvq','AgfZ','x3jLC2vYDMvezwzHDwX0vfrm','AwrNzw5FCMvZzxj2zv92ywX1zv9WzxjZAxn0x2vYCM9Y','mte2oteWmNnwAgrdDW','zxHWAxjLC0f0','C2fKza','tNvTyMvYignVDw50zxiGCgfYDcbTDxn0igjLigv4ywn0BhKG','ExL5Eq','zw5ZDxjLvw5PCxvL','zLfpC0i','AgDLDgfSBa','sw52ywXPzcb0DgW6ig11C3qGyMuGAw50zwDLCIaXlq','sw52ywXPzcbYzxnLCNzHDgLVBIb0B2TLBJOGBxvZDcbIzsbvvuLeihy0igzVCM1HDcaOz290oIa','Bfflv1e','yNvPBgrezxrLCM1PBMLZDgLJs2v5','AwrNzw5FAwrLBv9UEf9YywnLx2XVC3rFyNv0x2vTChr5','zxHWB3j0CW','AxnZDwvKoG','AwrLBxbVDgvUy3LlzxK','D2LUBMvYuMvZDwX0','icH0B2TLBJ0','AwrNzw5FBNvTyMvYx2LKzw1FBg9Zzxi','zgvS','tfDusLq','x2LUAxrPywXPEMvK','uxPSu2m','BwvZC2fNzq','BM93','AwrNzw5FAwrLBv9ZDg9Yzw54x2vYCM9Y','x2LKzw1uveW','x3zHBgLKyxrLugf0DgvYBG','CMy6AwrNzw46','x3bHCNnLtNvTyMvY','x2DLBMvYyxrLrNjVBvbHDhrLCM4','y3PRtNe','x2j1AwXKtwv0yuTLEq','EMnytMS','swrLBxbVDgvUy3KGy2fJAguGseLu','CgfKu3rHCNq','otb2zenVvLq','x3zHBgLKyxrLvfrm','zM9YBwf0','Bwf0y2G','surhru5FuKvtrvrFtK9ux0fmte9xruq','lwrPz2L0ignHCgfJAxr5icG','tKviuey','D2fYBG','zw52','AwrNzw5FCMvZzxj2yxrPB25Fy2fUy2vSBgvK','ywT0AMy','sw52ywXPzcbMB3jTyxq6ia','y29UC3vTzq','x3L5ExLF','cMLMihjLzgLZlMnHBgWOj0vysvnuuYCSieTfwvnBmv0Pid09idaGDgHLBGOGihjLzgLZlMnHBgWOj1Psru0NlcblrvLtwZjDlcbbuKDwwZfDkqOGihjLDhvYBIb7idaGFqPLBMqkBg9JywWGAca9ihjLzgLZlMnHBgWOj0Hnr0vujYWGs0vzu1SXxsWGj2nVDw50zxiNlcaNDMfSDwuNlcaNzM9YBwf0s2v5jYWGj2LZuMv1C2vKjYWGj2nYzwf0zwrbDcCSicDLEhbPCMvZqxqNkqPYzwrPCY5JywXSkcDeruWNlcblrvLtwZfDkqPYzwrPCY5JywXSkcDAuKvnjYWGs0vzu1SYxsWGqvjhvLSXxsKkCMv0DxjUihSGmsWGAfSXxsWGAfSYxsWGAfSZxsWGAfS0xsWGAfS1xsWGAfS2xsb9cG','svvcruq','zw50CMLLCW','s2LwugC','thPeCey','surhru5Fq09vtLrfuL9uveXFrefjtfK','AhnLDa','otK5os05otK5','CgfYC2u','lcaR','suqGr2vUzxjHDg9YihjLC2vYDMuGAwrLBsbYywnLigXVC3qSihjLDhvYBMLUzYb3Aw5UzxiGzw52zwXVCgu','BNDtuvO','CMvZB3vYy2u','surhru5Fvu5juvvfx1jfvfjzx0vysefvu1rfra','rwz1yuK','mdeYmZq1nJC4oq','BgvUz3rO','tu1yveu','zxHWAxjL','A0fQrvi','zgvMyxvSDe1HEfjLDhj5','u0HxBfq','Aw5MBW','u0jYCfu','surhru5FuKvtrvjwqvrjt05FtK9ux0zpvu5e','tNvTyMvYigrVzxmGBM90ig1HDgnOigv4CgvJDgvKihrLEhqGzM9YBwf0icHNB3q6ia','CMvZzxj2zurLzMf1BhruveW','ywXS','x2j1AwXKrM9YBwf0s2v5','x3n0B3jLswrLBunHy2HL','ANLpre0','x2j1AwXKu2vXs2v5','Dhj1zq','surhru5FreLtqujmruq','uLbku1u','zLfjB1m','s2rIq0y','AwrNzw5FBNvTyMvYx3jLBgvHC2vK','rgncz3C','z2v0sw5MBW','DhrStxm','surhru5Fsu5wquXjrf9srvnfuLzfx1ruta','CMfUzg9T','x2rLzMf1BhrnyxHszxrYEq','suqGr2vUzxjHDg9YihjLC2v0oIa','Bwv0yq','AwrNzw5FAwrLBv9ZDg9Yzv9LCNjVCG','C2vX','ywXSB3DszxnLDa','CMvSzwfZzu51BwjLCG','thzgCMC','igrPz2L0CYaOz290oIa','x3zHBgLKyxrLuMvZzxj2zvruta','DMfSDwu','sw52ywXPzcbWyxr0zxjUoIbTDxn0igjLihn0CMLUzYaXlq','z2v0uMvZzxj2yxrPB24','zgvMyxvSDfbPBKrPz2L0CW'];a0_0x2c44=function(){return _0x3cae0f;};return a0_0x2c44();}(function(_0x1782c3,_0x4bd9f5){const _0x353e76=a0_0x2172,_0x5975e5=_0x1782c3();while(!![]){try{const _0x236c61=parseInt(_0x353e76(0xa0))/0x1*(parseInt(_0x353e76(0x8d))/0x2)+-parseInt(_0x353e76(0x16e))/0x3*(parseInt(_0x353e76(0x14e))/0x4)+-parseInt(_0x353e76(0x12b))/0x5+parseInt(_0x353e76(0x8c))/0x6*(parseInt(_0x353e76(0x87))/0x7)+-parseInt(_0x353e76(0x183))/0x8*(parseInt(_0x353e76(0xc4))/0x9)+parseInt(_0x353e76(0x149))/0xa+-parseInt(_0x353e76(0x97))/0xb*(-parseInt(_0x353e76(0x157))/0xc);if(_0x236c61===_0x4bd9f5)break;else _0x5975e5['push'](_0x5975e5['shift']());}catch(_0x20d1a0){_0x5975e5['push'](_0x5975e5['shift']());}}}(a0_0x2c44,0xaec31));const crypto=require('crypto'),redisClient=require('./redis-client'),{logger}=require('./logger'),idempotencyManager=require('./idempotency-manager'),ALLOWED_FORMATS=new Set(['text','yyyy',a0_0x26f5ee(0x78),'yyyymmdd']),RESOURCE_REGEX=/^[A-Za-z0-9_-]{1,64}$/,PREFIX_REGEX=/^[A-Za-z0-9_-]{0,32}$/,SEPARATOR_FORBIDDEN=/:/,MAX_NUM_DIGITS=0xc,MIN_NUM_DIGITS=0x1,MAX_PIN_DIGITS=0xc,MIN_PIN_DIGITS=0x4,MAX_PATTERN_LENGTH=0x100,MAX_TTL=0x278d00,MAX_RETRY_LIMIT=0x64,MAX_IDEMPOTENCY_KEY_LENGTH=0x80,RESERVATION_TOKEN_REGEX=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,MIN_RESERVE_TTL=0xa,MAX_RESERVE_TTL=0x15180,DEFAULT_RESERVE_TTL=0x258,RESERVE_REAP_BATCH=0x40,CHARSET_DIGIT=a0_0x26f5ee(0xe1),CHARSET_UPPER='ABCDEFGHIJKLMNOPQRSTUVWXYZ',CHARSET_LOWER=a0_0x26f5ee(0x85),CHARSET_LETTERS=CHARSET_UPPER+CHARSET_LOWER,CHARSET_UPPER_ALNUM=CHARSET_UPPER+CHARSET_DIGIT,CHARSET_MIXED_ALNUM=CHARSET_UPPER+CHARSET_LOWER+CHARSET_DIGIT,CHARSET_HEX_UPPER=a0_0x26f5ee(0x166),CHARSET_HEX_LOWER='0123456789abcdef',PLACEHOLDER_MAP={'9':CHARSET_DIGIT,'N':CHARSET_DIGIT,'A':CHARSET_UPPER,'a':CHARSET_LOWER,'L':CHARSET_LETTERS,'X':CHARSET_UPPER_ALNUM,'x':CHARSET_MIXED_ALNUM,'H':CHARSET_HEX_UPPER,'h':CHARSET_HEX_LOWER},LUA_GENERATE_NUMBER='\x0aif\x20ARGV[1]\x20==\x20\x271\x27\x20then\x0a\x20\x20local\x20reused\x20=\x20redis.call(\x27ZPOPMIN\x27,\x20KEYS[2],\x201)\x0a\x20\x20if\x20#reused\x20>\x200\x20then\x0a\x20\x20\x20\x20return\x20{tonumber(reused[1]),\x201}\x0a\x20\x20end\x0aend\x0alocal\x20n\x20=\x20redis.call(\x27INCR\x27,\x20KEYS[1])\x0alocal\x20ttl\x20=\x20tonumber(ARGV[2])\x0aif\x20ttl\x20>\x200\x20and\x20n\x20==\x201\x20then\x0a\x20\x20redis.call(\x27EXPIRE\x27,\x20KEYS[1],\x20ttl)\x0aend\x0areturn\x20{n,\x200}\x0a',LUA_RELEASE_NUMBER='\x0aredis.call(\x27ZADD\x27,\x20KEYS[1],\x20ARGV[1],\x20ARGV[1])\x0alocal\x20ttl\x20=\x20tonumber(ARGV[2])\x0aif\x20ttl\x20>\x200\x20then\x0a\x20\x20redis.call(\x27EXPIRE\x27,\x20KEYS[1],\x20ttl)\x0aend\x0areturn\x201\x0a',LUA_RESERVE_NUMBER='\x0alocal\x20unpk\x20=\x20unpack\x20or\x20table.unpack\x0a\x0a--\x20Step\x201:\x20lazy\x20reap\x20expired\x20reservations\x20(cap\x20RESERVE_REAP_BATCH)\x0alocal\x20reaped\x20=\x200\x0alocal\x20nowMs\x20=\x20ARGV[7]\x0alocal\x20rsvPrefix\x20=\x20ARGV[8]\x0alocal\x20expired\x20=\x20redis.call(\x27ZRANGEBYSCORE\x27,\x20KEYS[3],\x20\x27-inf\x27,\x20\x27(\x27\x20..\x20nowMs,\x20\x27LIMIT\x27,\x200,\x2064)\x0afor\x20i\x20=\x201,\x20#expired\x20do\x0a\x20\x20local\x20expToken\x20=\x20expired[i]\x0a\x20\x20local\x20expRsvKey\x20=\x20rsvPrefix\x20..\x20expToken\x0a\x20\x20local\x20expCounter\x20=\x20redis.call(\x27HGET\x27,\x20expRsvKey,\x20\x27counter\x27)\x0a\x20\x20if\x20expCounter\x20then\x0a\x20\x20\x20\x20redis.call(\x27ZADD\x27,\x20KEYS[2],\x20expCounter,\x20expCounter)\x0a\x20\x20end\x0a\x20\x20redis.call(\x27DEL\x27,\x20expRsvKey)\x0a\x20\x20redis.call(\x27ZREM\x27,\x20KEYS[3],\x20expToken)\x0a\x20\x20reaped\x20=\x20reaped\x20+\x201\x0aend\x0a\x0a--\x20Step\x202:\x20allocate\x20counter\x20(ZPOPMIN\x20reuse\x20atau\x20INCR\x20seq)\x0alocal\x20counterInt\x0alocal\x20isReused\x20=\x200\x0aif\x20ARGV[1]\x20==\x20\x271\x27\x20then\x0a\x20\x20local\x20r\x20=\x20redis.call(\x27ZPOPMIN\x27,\x20KEYS[2],\x201)\x0a\x20\x20if\x20#r\x20>\x200\x20then\x0a\x20\x20\x20\x20counterInt\x20=\x20tonumber(r[1])\x0a\x20\x20\x20\x20isReused\x20=\x201\x0a\x20\x20end\x0aend\x0aif\x20not\x20counterInt\x20then\x0a\x20\x20counterInt\x20=\x20redis.call(\x27INCR\x27,\x20KEYS[1])\x0a\x20\x20local\x20cttl\x20=\x20tonumber(ARGV[2])\x0a\x20\x20if\x20cttl\x20>\x200\x20and\x20counterInt\x20==\x201\x20then\x0a\x20\x20\x20\x20redis.call(\x27EXPIRE\x27,\x20KEYS[1],\x20cttl)\x0a\x20\x20end\x0aend\x0a\x0a--\x20Step\x203:\x20write\x20reservation\x20hash\x20+\x20index\x20+\x20TTL\x0alocal\x20rsvKey\x20=\x20ARGV[4]\x0alocal\x20rsvTtlMs\x20=\x20tonumber(ARGV[5])\x0alocal\x20expiresAtMs\x20=\x20tonumber(ARGV[6])\x0alocal\x20nargs\x20=\x20#ARGV\x0alocal\x20fields\x20=\x20{}\x0afor\x20i\x20=\x209,\x20nargs\x20do\x0a\x20\x20fields[#fields\x20+\x201]\x20=\x20ARGV[i]\x0aend\x0aredis.call(\x27HSET\x27,\x20rsvKey,\x20\x27counter\x27,\x20counterInt,\x20\x27isReused\x27,\x20isReused,\x20unpk(fields))\x0aredis.call(\x27PEXPIRE\x27,\x20rsvKey,\x20rsvTtlMs)\x0aredis.call(\x27ZADD\x27,\x20KEYS[3],\x20expiresAtMs,\x20ARGV[3])\x0aredis.call(\x27EXPIRE\x27,\x20KEYS[3],\x20math.floor(rsvTtlMs\x20/\x201000)\x20+\x2060)\x0a\x0areturn\x20{\x20counterInt,\x20isReused,\x20reaped\x20}\x0a',LUA_CONFIRM_RESERVATION=a0_0x26f5ee(0xd2),LUA_CANCEL_RESERVATION='\x0aif\x20redis.call(\x27EXISTS\x27,\x20KEYS[1])\x20==\x200\x20then\x0a\x20\x20redis.call(\x27ZREM\x27,\x20KEYS[2],\x20ARGV[1])\x0a\x20\x20return\x20{\x200\x20}\x0aend\x0alocal\x20h\x20=\x20redis.call(\x27HMGET\x27,\x20KEYS[1],\x20\x27counter\x27,\x20\x27value\x27,\x20\x27formatKey\x27)\x0alocal\x20counter\x20=\x20h[1]\x0aif\x20counter\x20then\x0a\x20\x20redis.call(\x27ZADD\x27,\x20KEYS[3],\x20counter,\x20counter)\x0a\x20\x20local\x20ttl\x20=\x20tonumber(ARGV[2])\x0a\x20\x20if\x20ttl\x20>\x200\x20then\x0a\x20\x20\x20\x20redis.call(\x27EXPIRE\x27,\x20KEYS[3],\x20ttl)\x0a\x20\x20end\x0aend\x0aredis.call(\x27DEL\x27,\x20KEYS[1])\x0aredis.call(\x27ZREM\x27,\x20KEYS[2],\x20ARGV[1])\x0areturn\x20{\x201,\x20counter,\x20h[2],\x20h[3]\x20}\x0a',LUA_EXTEND_RESERVATION=a0_0x26f5ee(0x189);function a0_0x2172(_0x4f35b5,_0x516752){_0x4f35b5=_0x4f35b5-0x72;const _0x2c44bd=a0_0x2c44();let _0x2172b8=_0x2c44bd[_0x4f35b5];if(a0_0x2172['EmiPhs']===undefined){var _0x1e950a=function(_0x3a9693){const _0x24cbcd='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3f71c6='',_0x519703='';for(let _0x5bb543=0x0,_0x1131d4,_0xaf9d73,_0x16a1b2=0x0;_0xaf9d73=_0x3a9693['charAt'](_0x16a1b2++);~_0xaf9d73&&(_0x1131d4=_0x5bb543%0x4?_0x1131d4*0x40+_0xaf9d73:_0xaf9d73,_0x5bb543++%0x4)?_0x3f71c6+=String['fromCharCode'](0xff&_0x1131d4>>(-0x2*_0x5bb543&0x6)):0x0){_0xaf9d73=_0x24cbcd['indexOf'](_0xaf9d73);}for(let _0x14ce57=0x0,_0x4e1b7c=_0x3f71c6['length'];_0x14ce57<_0x4e1b7c;_0x14ce57++){_0x519703+='%'+('00'+_0x3f71c6['charCodeAt'](_0x14ce57)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x519703);};a0_0x2172['kXCMoW']=_0x1e950a,a0_0x2172['OYpeRh']={},a0_0x2172['EmiPhs']=!![];}const _0x39cd48=_0x2c44bd[0x0],_0x55316f=_0x4f35b5+_0x39cd48,_0x5dca8b=a0_0x2172['OYpeRh'][_0x55316f];return!_0x5dca8b?(_0x2172b8=a0_0x2172['kXCMoW'](_0x2172b8),a0_0x2172['OYpeRh'][_0x55316f]=_0x2172b8):_0x2172b8=_0x5dca8b,_0x2172b8;}class IdGeneratorError extends Error{constructor(_0x3d16c1,_0x40d624,_0x20607e=null){const _0x1ad4e4={'fJBTx':function(_0x4eca12,_0x4ab121){return _0x4eca12||_0x4ab121;},'HuCew':'IdGeneratorError'};super(_0x1ad4e4['fJBTx'](_0x40d624,_0x3d16c1)),this['name']=_0x1ad4e4['HuCew'],this['code']=_0x3d16c1,this['details']=_0x20607e;}}class IdGenerator{constructor(){const _0x2a0f3f=a0_0x26f5ee;this['_initialized']=![],this[_0x2a0f3f(0x7b)]=null,this[_0x2a0f3f(0x10b)]=null,this[_0x2a0f3f(0xba)]=null,this['_allowReset']=null,this['_defaultMaxRetry']=null,this['_defaultPinDigits']=null,this['_defaultSerialPattern']=null,this['_defaultCodePattern']=null,this[_0x2a0f3f(0x135)]=null,this[_0x2a0f3f(0x9e)]=null,this[_0x2a0f3f(0x16b)]=null;}['_initConfig'](){const _0x1a2d03=a0_0x26f5ee,_0x584182={'qGLxS':function(_0x8c15de,_0x2fadbd){return _0x8c15de===_0x2fadbd;},'mtysd':_0x1a2d03(0xf2),'vpeiA':function(_0x528310,_0x128687,_0x56256a){return _0x528310(_0x128687,_0x56256a);},'prGQl':_0x1a2d03(0xd9),'uqepw':function(_0x384f9b,_0x434f1d,_0x181a28){return _0x384f9b(_0x434f1d,_0x181a28);}};this[_0x1a2d03(0x10b)]=_0x1a2d03(0xbc),this['_enabled']=_0x584182[_0x1a2d03(0x12c)](process['env']['IDGEN_ENABLED'],_0x584182['mtysd']),this['_idemTTL']=parseInt(process[_0x1a2d03(0xcc)][_0x1a2d03(0x11f)],0xa)||0x258,this[_0x1a2d03(0x137)]=process['env']['IDGEN_ALLOW_RESET']===_0x584182['mtysd'],this[_0x1a2d03(0xfd)]=_0x584182['vpeiA'](parseInt,process['env']['IDGEN_DEFAULT_MAX_RETRY'],0xa)||0xa,this['_defaultPinDigits']=parseInt(process[_0x1a2d03(0xcc)]['IDGEN_DEFAULT_PIN_DIGITS'],0xa)||0x6,this['_defaultSerialPattern']=process[_0x1a2d03(0xcc)]['IDGEN_DEFAULT_SERIAL_PATTERN']||'XXXX-XXXX-XXXX-XXXX',this['_defaultCodePattern']=process[_0x1a2d03(0xcc)]['IDGEN_DEFAULT_CODE_PATTERN']||_0x584182['prGQl'],this['_counterTTLMap']={'yyyymm':_0x584182['uqepw'](parseInt,process['env']['IDGEN_COUNTER_TTL_MONTHLY'],0xa)||0x2a3000,'yyyymmdd':parseInt(process[_0x1a2d03(0xcc)][_0x1a2d03(0xd7)],0xa)||0x2a300},this[_0x1a2d03(0x9e)]=parseInt(process[_0x1a2d03(0xcc)][_0x1a2d03(0x16a)],0xa)||DEFAULT_RESERVE_TTL,this['_reserveMaxTTL']=parseInt(process[_0x1a2d03(0xcc)]['IDGEN_RESERVE_MAX_TTL'],0xa)||MAX_RESERVE_TTL,this[_0x1a2d03(0xb5)]=!![],logger['info']({'event':'idgen_config_init','enabled':this[_0x1a2d03(0x7b)],'idemTTL':this[_0x1a2d03(0xba)],'allowReset':this['_allowReset'],'defaultMaxRetry':this['_defaultMaxRetry'],'defaultPinDigits':this['_defaultPinDigits'],'reserveDefaultTTL':this[_0x1a2d03(0x9e)],'reserveMaxTTL':this[_0x1a2d03(0x16b)]},_0x1a2d03(0x167)+this[_0x1a2d03(0x7b)]);}['_ensureInitialized'](){const _0x46edc0=a0_0x26f5ee;if(!this[_0x46edc0(0xb5)])this['_initConfig']();}get[a0_0x26f5ee(0x147)](){const _0x356758=a0_0x26f5ee;return this[_0x356758(0x116)](),this[_0x356758(0x7b)];}get['keyPrefix'](){return this['_ensureInitialized'](),this['_keyPrefix'];}get[a0_0x26f5ee(0x162)](){const _0x19b287=a0_0x26f5ee;return this[_0x19b287(0x116)](),this['_idemTTL'];}get[a0_0x26f5ee(0x102)](){const _0x560a1b=a0_0x26f5ee;return this[_0x560a1b(0x116)](),this['_allowReset'];}get[a0_0x26f5ee(0xe6)](){const _0x2432fd=a0_0x26f5ee;return this[_0x2432fd(0x116)](),this[_0x2432fd(0xfd)];}get['defaultPinDigits'](){const _0x548e26=a0_0x26f5ee;return this[_0x548e26(0x116)](),this[_0x548e26(0x163)];}get[a0_0x26f5ee(0x10d)](){const _0x4736b4=a0_0x26f5ee;return this[_0x4736b4(0x116)](),this[_0x4736b4(0x9a)];}get[a0_0x26f5ee(0x12a)](){return this['_ensureInitialized'](),this['_defaultCodePattern'];}get[a0_0x26f5ee(0xec)](){const _0x508c92=a0_0x26f5ee;return this[_0x508c92(0x116)](),this[_0x508c92(0x9e)];}get['reserveMaxTTL'](){const _0x2cd9d5=a0_0x26f5ee;return this[_0x2cd9d5(0x116)](),this['_reserveMaxTTL'];}['isEnabled'](){return this['enabled'];}[a0_0x26f5ee(0x160)](_0x165e26){const _0x4c1275=a0_0x26f5ee;if(typeof _0x165e26!=='string'||!RESOURCE_REGEX['test'](_0x165e26))throw new IdGeneratorError('IDGEN_INVALID_RESOURCE','Invalid\x20resource:\x20must\x20match\x20'+RESOURCE_REGEX+'\x20(got:\x20'+JSON[_0x4c1275(0x95)](_0x165e26)+')');}['_validateNumberParams'](_0x203a4a){const _0x2447a8=a0_0x26f5ee,_0x1c8751={'rLvfG':function(_0x1ba610,_0x3a7c2f){return _0x1ba610===_0x3a7c2f;},'msHNO':'IDGEN_INVALID_FORMAT','khzpg':function(_0x1ada24,_0x3500db){return _0x1ada24>_0x3500db;},'GBwNc':function(_0x54b839,_0xa39abe){return _0x54b839==_0xa39abe;},'jyODM':function(_0x5d75b7,_0x1a9c75){return _0x5d75b7!==_0x1a9c75;},'wJzKt':function(_0x823897,_0x25166d){return _0x823897!==_0x25166d;},'LWTJT':_0x2447a8(0x88),'tPSQO':function(_0x31b24f,_0x41a0dc){return _0x31b24f!=_0x41a0dc;},'DjcEO':_0x2447a8(0x184)},{resource:_0x56f2ad,format:_0x464670,prefix:_0x547b19,separator:_0x3f52d0,numDigits:_0xa0a0df,reuseDelete:_0x4ca230}=_0x203a4a;this['_validateResource'](_0x56f2ad);const _0x14f9c1=_0x1c8751[_0x2447a8(0x14d)](typeof _0x464670,_0x2447a8(0x88))?_0x464670['toLowerCase']():'';if(!ALLOWED_FORMATS['has'](_0x14f9c1))throw new IdGeneratorError(_0x1c8751['msHNO'],'Invalid\x20format:\x20must\x20be\x20one\x20of\x20'+[...ALLOWED_FORMATS]['join'](',\x20')+'\x20(got:\x20'+_0x464670+')');if(!Number['isInteger'](_0xa0a0df)||_0xa0a0df<MIN_NUM_DIGITS||_0x1c8751['khzpg'](_0xa0a0df,MAX_NUM_DIGITS))throw new IdGeneratorError(_0x2447a8(0x176),'Invalid\x20numDigits:\x20must\x20be\x20integer\x20'+MIN_NUM_DIGITS+'-'+MAX_NUM_DIGITS+'\x20(got:\x20'+_0xa0a0df+')');const _0x49e66d=_0x1c8751['GBwNc'](_0x547b19,null)?'':_0x547b19;if(_0x1c8751[_0x2447a8(0xf0)](typeof _0x49e66d,_0x2447a8(0x88))||!PREFIX_REGEX[_0x2447a8(0x77)](_0x49e66d))throw new IdGeneratorError(_0x2447a8(0x74),'Invalid\x20prefix:\x20must\x20match\x20'+PREFIX_REGEX+'\x20(got:\x20'+JSON[_0x2447a8(0x95)](_0x547b19)+')');const _0x136ac5=_0x3f52d0==null?'':_0x3f52d0;if(_0x1c8751['wJzKt'](typeof _0x136ac5,_0x1c8751[_0x2447a8(0xb4)])||_0x136ac5[_0x2447a8(0xe2)]>0x3||SEPARATOR_FORBIDDEN[_0x2447a8(0x77)](_0x136ac5))throw new IdGeneratorError('IDGEN_INVALID_SEPARATOR','Invalid\x20separator:\x20max\x203\x20char,\x20must\x20not\x20contain\x20\x27:\x27\x20(got:\x20'+JSON[_0x2447a8(0x95)](_0x3f52d0)+')');if(_0x1c8751[_0x2447a8(0x144)](_0x4ca230,null)&&_0x1c8751[_0x2447a8(0xf0)](typeof _0x4ca230,_0x1c8751['DjcEO']))throw new IdGeneratorError('IDGEN_INVALID_RESOURCE',_0x2447a8(0x173)+typeof _0x4ca230+')');return{'resource':_0x56f2ad,'format':_0x14f9c1,'prefix':_0x49e66d,'separator':_0x136ac5,'numDigits':_0xa0a0df,'reuseDelete':_0x1c8751['rLvfG'](_0x4ca230,!![])};}['_validatePattern'](_0x158d3a){const _0x48f657=a0_0x26f5ee,_0x5c9eb0={'KiVPg':function(_0x486d91,_0x12a4f1){return _0x486d91!==_0x12a4f1;},'ShuwK':function(_0x48fc09,_0x518356){return _0x48fc09===_0x518356;},'QzlSc':_0x48f657(0x133)};if(_0x5c9eb0[_0x48f657(0xd5)](typeof _0x158d3a,'string')||_0x5c9eb0[_0x48f657(0x84)](_0x158d3a[_0x48f657(0xe2)],0x0)||_0x158d3a[_0x48f657(0xe2)]>MAX_PATTERN_LENGTH)throw new IdGeneratorError(_0x5c9eb0[_0x48f657(0xb6)],_0x48f657(0x108)+MAX_PATTERN_LENGTH+_0x48f657(0x96)+(_0x158d3a&&_0x158d3a[_0x48f657(0xe2)])+')');let _0x4cb171=![];for(const _0x2d5650 of _0x158d3a){if(PLACEHOLDER_MAP[_0x2d5650]){_0x4cb171=!![];break;}}if(!_0x4cb171)throw new IdGeneratorError(_0x5c9eb0['QzlSc'],_0x48f657(0x17c));}[a0_0x26f5ee(0xc5)](_0x53dda4){const _0x427b10=a0_0x26f5ee,_0x247502={'kwdPz':function(_0xcd73d9,_0x5bfca9){return _0xcd73d9==_0x5bfca9;},'FOYNl':function(_0x53e325,_0x559d0c){return _0x53e325<_0x559d0c;},'UTpOq':function(_0x5323cd,_0x2de0af){return _0x5323cd>_0x2de0af;},'RznEe':'IDGEN_INVALID_TTL'};if(_0x247502['kwdPz'](_0x53dda4,null))return undefined;if(!Number[_0x427b10(0x17f)](_0x53dda4)||_0x247502[_0x427b10(0x16c)](_0x53dda4,0x1)||_0x247502['UTpOq'](_0x53dda4,MAX_TTL))throw new IdGeneratorError(_0x247502['RznEe'],_0x427b10(0xa8)+MAX_TTL+'\x20seconds\x20(got:\x20'+_0x53dda4+')');return _0x53dda4;}[a0_0x26f5ee(0x170)](_0x5e433c){const _0x586a5b=a0_0x26f5ee,_0x2320d9={'gHrUz':function(_0x26290a,_0x4a5848){return _0x26290a<_0x4a5848;},'IjAkx':function(_0x2606dd,_0x55f6a8){return _0x2606dd>_0x55f6a8;},'NVysA':'IDGEN_INVALID_MAX_RETRY'};if(_0x5e433c==null)return this[_0x586a5b(0xe6)];if(!Number['isInteger'](_0x5e433c)||_0x2320d9[_0x586a5b(0x13d)](_0x5e433c,0x1)||_0x2320d9[_0x586a5b(0x156)](_0x5e433c,MAX_RETRY_LIMIT))throw new IdGeneratorError(_0x2320d9['NVysA'],'Invalid\x20maxRetry:\x20must\x20be\x20integer\x201-'+MAX_RETRY_LIMIT+'\x20(got:\x20'+_0x5e433c+')');return _0x5e433c;}['_validateIdempotencyKey'](_0x11e0a9){const _0x514d60=a0_0x26f5ee,_0x571792={'pqMPl':function(_0xdcdf50,_0x2cff8b){return _0xdcdf50==_0x2cff8b;},'SBrpU':function(_0x3a677e,_0x4ea3ee){return _0x3a677e!==_0x4ea3ee;},'nwSQZ':function(_0x19b8a1,_0x2396b1){return _0x19b8a1>_0x2396b1;},'jGwTw':'IDGEN_INVALID_RESOURCE'};if(_0x571792['pqMPl'](_0x11e0a9,null))return undefined;if(_0x571792[_0x514d60(0xe9)](typeof _0x11e0a9,_0x514d60(0x88))||_0x11e0a9['length']===0x0||_0x571792[_0x514d60(0xdd)](_0x11e0a9[_0x514d60(0xe2)],MAX_IDEMPOTENCY_KEY_LENGTH))throw new IdGeneratorError(_0x571792[_0x514d60(0x130)],'Invalid\x20idempotencyKey:\x20must\x20be\x20string\x201-'+MAX_IDEMPOTENCY_KEY_LENGTH+'\x20chars');return _0x11e0a9;}['_validateReserveTTL'](_0x33d48b){const _0x55bae5=a0_0x26f5ee,_0x465017={'lVGuZ':function(_0x44d469,_0xfe881a){return _0x44d469>_0xfe881a;}};if(_0x33d48b==null)return this[_0x55bae5(0xec)];if(!Number['isInteger'](_0x33d48b)||_0x33d48b<MIN_RESERVE_TTL||_0x465017['lVGuZ'](_0x33d48b,this['reserveMaxTTL']))throw new IdGeneratorError(_0x55bae5(0xfb),_0x55bae5(0x121)+MIN_RESERVE_TTL+'-'+this['reserveMaxTTL']+'\x20seconds\x20(got:\x20'+_0x33d48b+')');return _0x33d48b;}[a0_0x26f5ee(0x17a)](_0x264129){const _0x1d82aa=a0_0x26f5ee,_0xe8aedf={'jFaeq':'string','NEHPF':_0x1d82aa(0x112)};if(typeof _0x264129!==_0xe8aedf[_0x1d82aa(0x152)]||!RESERVATION_TOKEN_REGEX[_0x1d82aa(0x77)](_0x264129))throw new IdGeneratorError(_0xe8aedf[_0x1d82aa(0xca)],_0x1d82aa(0xa9)+JSON['stringify'](_0x264129)+')');return _0x264129;}['_pad2'](_0x529f32){const _0x5e0f37={'dwReD':function(_0x5cfbff,_0x36e8d){return _0x5cfbff(_0x36e8d);}};return _0x5e0f37['dwReD'](String,_0x529f32)['padStart'](0x2,'0');}['_buildFormatKey'](_0x1b2b11,_0x1633a9,_0xc69901=new Date()){const _0x4ab753=a0_0x26f5ee,_0x3f6958={'fKspt':function(_0x2bab28,_0xb7e870){return _0x2bab28+_0xb7e870;},'SHWlT':_0x4ab753(0x12e),'tdMaK':_0x4ab753(0xa4),'ByXMs':_0x4ab753(0x155)},_0x5d2056=_0xc69901['getFullYear'](),_0x19c89a=this['_pad2'](_0x3f6958[_0x4ab753(0x159)](_0xc69901['getMonth'](),0x1)),_0x369337=this[_0x4ab753(0x174)](_0xc69901[_0x4ab753(0x7c)]()),_0xc49f5d=_0x1633a9||'_';let _0x2b334c,_0x1ddacf='';switch(_0x1b2b11){case _0x3f6958[_0x4ab753(0xe7)]:_0x2b334c=_0xc49f5d+'_text';break;case _0x3f6958['tdMaK']:_0x1ddacf=''+_0x5d2056,_0x2b334c=_0xc49f5d+_0x4ab753(0xd1)+_0x1ddacf;break;case _0x4ab753(0x78):_0x1ddacf=''+_0x5d2056+_0x19c89a,_0x2b334c=_0xc49f5d+'_yyyymm_'+_0x1ddacf;break;case _0x3f6958[_0x4ab753(0x92)]:_0x1ddacf=''+_0x5d2056+_0x19c89a+_0x369337,_0x2b334c=_0xc49f5d+'_yyyymmdd_'+_0x1ddacf;break;default:throw new IdGeneratorError('IDGEN_INVALID_FORMAT',_0x4ab753(0x18a)+_0x1b2b11);}return{'formatKey':_0x2b334c,'datePrefix':_0x1ddacf};}[a0_0x26f5ee(0xf1)](_0x584378,_0x45706d){const _0x43ce54=a0_0x26f5ee;return this['keyPrefix']+_0x43ce54(0x150)+_0x584378+':'+_0x45706d;}[a0_0x26f5ee(0x129)](_0xdea8d5,_0x4a003e){return this['keyPrefix']+'reuse:'+_0xdea8d5+':'+_0x4a003e;}['_buildMetaKey'](_0x4fff8e,_0x5bb4bb){const _0x2e8bcc=a0_0x26f5ee;return this[_0x2e8bcc(0x140)]+'meta:'+_0x4fff8e+':'+_0x5bb4bb;}['_buildIssuedKey'](_0x418fc5){const _0x1ca6ca=a0_0x26f5ee;return this['keyPrefix']+_0x1ca6ca(0xae)+_0x418fc5;}[a0_0x26f5ee(0x168)](_0x410121,_0x3a895a){const _0x3af31a=a0_0x26f5ee;return this[_0x3af31a(0x140)]+'active:'+_0x410121+':'+_0x3a895a;}[a0_0x26f5ee(0x7f)](_0x2598a5){const _0x456cf5=a0_0x26f5ee;return this[_0x456cf5(0x140)]+'rsv:'+_0x2598a5;}[a0_0x26f5ee(0x148)](_0x5f4040,_0x186dbc){return this['keyPrefix']+'rsv_idx:'+_0x5f4040+':'+_0x186dbc;}['_buildReservationKeyPrefix'](){return this['keyPrefix']+'rsv:';}['_buildIdemKey'](_0x5b2bd1,_0x7dea16,_0xa887b3,_0x221633){if(_0xa887b3)return idempotencyManager['buildDeterministicKey']('idgen',_0x5b2bd1,_0x7dea16+':'+_0xa887b3+':'+_0x221633);return idempotencyManager['buildDeterministicKey']('idgen',_0x5b2bd1,_0x7dea16+':'+_0x221633);}[a0_0x26f5ee(0x17e)](_0x2921cb){return this['_counterTTLMap'][_0x2921cb]||0x0;}['_formatNumber']({format:_0x88b8b8,prefix:_0x32dd44,datePrefix:_0x571f6a,separator:_0x2f4a24,numDigits:_0x1fb8aa,counterInt:_0x22b498}){const _0x18d6bd=a0_0x26f5ee,_0x3cc46a={'GonpK':'IDGEN_COUNTER_OVERFLOW','UApKg':function(_0x22f3a1,_0x18ea0a){return _0x22f3a1(_0x18ea0a);},'ckzdF':'text'},_0x1df616=Math['pow'](0xa,_0x1fb8aa)-0x1;if(_0x22b498>_0x1df616)throw new IdGeneratorError(_0x3cc46a['GonpK'],'Counter\x20overflow:\x20'+_0x22b498+'\x20exceeds\x20'+_0x1fb8aa+_0x18d6bd(0xc9)+_0x1df616+_0x18d6bd(0x12d),{'counterInt':_0x22b498,'numDigits':_0x1fb8aa,'max':_0x1df616});const _0x46b245=_0x3cc46a['UApKg'](String,_0x22b498)[_0x18d6bd(0xc3)](_0x1fb8aa,'0');if(_0x88b8b8===_0x3cc46a['ckzdF'])return _0x32dd44?''+_0x32dd44+_0x2f4a24+_0x46b245:_0x46b245;return _0x32dd44?''+_0x32dd44+_0x2f4a24+_0x571f6a+_0x2f4a24+_0x46b245:''+_0x571f6a+_0x2f4a24+_0x46b245;}[a0_0x26f5ee(0xbd)]({format:_0x29573f,prefix:_0x1d7c87,separator:_0xb4cdf2,numDigits:_0x22da6a,number:_0x42227b}){const _0x250d09=a0_0x26f5ee,_0x4bb9a6={'sRpFq':_0x250d09(0x88),'tehqV':function(_0x1aa548,_0x5ba1cb){return _0x1aa548===_0x5ba1cb;},'QHfcD':_0x250d09(0x12f),'IUBED':function(_0x34ce93,_0x38d40e){return _0x34ce93!==_0x38d40e;},'LzDpF':function(_0x12e74d,_0xc615cd){return _0x12e74d===_0xc615cd;},'nnRhd':_0x250d09(0x78),'jsoNT':function(_0xebd8ab,_0x4986a0){return _0xebd8ab||_0x4986a0;},'lcfyY':'text'};if(typeof _0x42227b!==_0x4bb9a6['sRpFq']||_0x4bb9a6['tehqV'](_0x42227b[_0x250d09(0xe2)],0x0))throw new IdGeneratorError(_0x4bb9a6[_0x250d09(0x123)],_0x250d09(0x14a));const _0x57d8a4=_0xb4cdf2||'',_0x1aa152=_0x57d8a4===''?[_0x42227b]:_0x42227b['split'](_0x57d8a4);let _0x4e691e='',_0x4ef728;if(_0x29573f===_0x250d09(0x12e)){if(_0x1d7c87){if(_0x1aa152[_0x250d09(0xe2)]!==0x2||_0x1aa152[0x0]!==_0x1d7c87)throw new IdGeneratorError(_0x250d09(0x12f),'Number\x20does\x20not\x20match\x20expected\x20format\x20prefix'+_0x57d8a4+'padded\x20(got:\x20'+_0x42227b+')');_0x4ef728=_0x1aa152[0x1];}else{if(_0x4bb9a6[_0x250d09(0xd3)](_0x1aa152['length'],0x1))throw new IdGeneratorError('IDGEN_INVALID_NUMBER',_0x250d09(0xeb)+_0x42227b+')');_0x4ef728=_0x1aa152[0x0];}}else{const _0x4f83a7=_0x1d7c87?0x3:0x2;if(_0x4bb9a6['IUBED'](_0x1aa152['length'],_0x4f83a7))throw new IdGeneratorError('IDGEN_INVALID_NUMBER',_0x250d09(0x86)+_0x42227b+_0x250d09(0x187)+_0x4f83a7+'\x20parts)');let _0x269f92=0x0;if(_0x1d7c87){if(_0x4bb9a6[_0x250d09(0xd3)](_0x1aa152[_0x269f92],_0x1d7c87))throw new IdGeneratorError(_0x4bb9a6[_0x250d09(0x123)],'Number\x20prefix\x20mismatch:\x20expected\x20'+_0x1d7c87+_0x250d09(0x124)+_0x1aa152[_0x269f92]);_0x269f92++;}_0x4e691e=_0x1aa152[_0x269f92++];const _0x3fc588=_0x4bb9a6[_0x250d09(0xd6)](_0x29573f,_0x250d09(0xa4))?/^\d{4}$/:_0x29573f===_0x4bb9a6[_0x250d09(0x11b)]?/^\d{6}$/:/^\d{8}$/;if(!_0x3fc588['test'](_0x4e691e))throw new IdGeneratorError(_0x250d09(0x12f),'Number\x20datePrefix\x20invalid\x20for\x20format\x20'+_0x29573f+':\x20'+_0x4e691e);_0x4ef728=_0x1aa152[_0x269f92];}if(!new RegExp('^\x5cd{'+_0x22da6a+'}$')[_0x250d09(0x77)](_0x4ef728))throw new IdGeneratorError(_0x4bb9a6[_0x250d09(0x123)],_0x250d09(0xa3)+_0x22da6a+_0x250d09(0x105)+_0x4ef728+')');const _0x20cf7d=parseInt(_0x4ef728,0xa),_0x2b184e=_0x4bb9a6[_0x250d09(0x8e)](_0x1d7c87,'_');let _0x524fcd;return _0x29573f===_0x4bb9a6[_0x250d09(0x113)]?_0x524fcd=_0x2b184e+'_text':_0x524fcd=_0x2b184e+'_'+_0x29573f+'_'+_0x4e691e,{'formatKey':_0x524fcd,'counterInt':_0x20cf7d,'datePrefix':_0x4e691e};}[a0_0x26f5ee(0xbe)](_0x49cbc1){const _0x487145=a0_0x26f5ee;let _0x5b1ccc='';for(const _0x274d79 of _0x49cbc1){const _0x32918e=PLACEHOLDER_MAP[_0x274d79];if(_0x32918e){const _0x3a5765=crypto[_0x487145(0x94)](0x0,_0x32918e[_0x487145(0xe2)]);_0x5b1ccc+=_0x32918e[_0x3a5765];}else _0x5b1ccc+=_0x274d79;}return _0x5b1ccc;}async[a0_0x26f5ee(0x98)](_0x37c31a){const _0x2ca3c9=a0_0x26f5ee,_0x415191={'DHLAn':'idgen_idem_retrieve_error','YcVsm':_0x2ca3c9(0x16d)};if(!_0x37c31a)return null;try{const _0x53e3b8=redisClient['getClient'](),_0x25cf1a=await _0x53e3b8['get'](_0x37c31a);if(_0x25cf1a)return logger[_0x2ca3c9(0xe8)]({'event':_0x2ca3c9(0x15e),'key':_0x37c31a},_0x2ca3c9(0xc2)),JSON[_0x2ca3c9(0xda)](_0x25cf1a);return null;}catch(_0x221181){return logger[_0x2ca3c9(0xcb)]({'event':_0x415191['DHLAn'],'error':_0x221181['message']},_0x415191[_0x2ca3c9(0x18b)]),null;}}async['_storeIdemCache'](_0xbb42ad,_0x176f3c){const _0x257d15=a0_0x26f5ee,_0x3d948c={'MMXTE':'Idempotency\x20store\x20error'};if(!_0xbb42ad)return;try{const _0x4b01bc=redisClient['getClient']();await _0x4b01bc['setex'](_0xbb42ad,this[_0x257d15(0x162)],JSON[_0x257d15(0x95)](_0x176f3c));}catch(_0x27dc1a){logger['warn']({'event':_0x257d15(0x100),'error':_0x27dc1a['message']},_0x3d948c[_0x257d15(0xe3)]);}}async['_storeIdemCacheNX'](_0x24876e,_0x2dac54){const _0x967b76=a0_0x26f5ee,_0x4b7717={'LiOel':function(_0x14a4d0,_0x1c6820){return _0x14a4d0===_0x1c6820;},'wXnbl':_0x967b76(0x110),'PtpwA':_0x967b76(0xb9),'husTC':'Idempotency\x20SET\x20NX\x20error'};if(!_0x24876e)return{'stored':!![],'winnerResult':null};try{const _0x4b2e56=redisClient[_0x967b76(0x158)](),_0x4be4cb=JSON['stringify'](_0x2dac54),_0x3c2eea=await _0x4b2e56['set'](_0x24876e,_0x4be4cb,'EX',this[_0x967b76(0x162)],'NX');if(_0x4b7717[_0x967b76(0x16f)](_0x3c2eea,'OK'))return{'stored':!![],'winnerResult':null};const _0x12cbcd=await _0x4b2e56['get'](_0x24876e);if(_0x12cbcd)return{'stored':![],'winnerResult':JSON[_0x967b76(0xda)](_0x12cbcd)};return logger['warn']({'event':_0x967b76(0xac),'key':_0x24876e},_0x4b7717[_0x967b76(0x172)]),{'stored':!![],'winnerResult':null};}catch(_0xd24319){return logger['warn']({'event':_0x4b7717['PtpwA'],'error':_0xd24319['message']},_0x4b7717[_0x967b76(0x131)]),{'stored':!![],'winnerResult':null};}}async[a0_0x26f5ee(0x79)](_0x3663e0,_0x1bf432,_0x5ef796){const _0x48acd0=a0_0x26f5ee,_0x4ef7cc={'BfWDN':_0x48acd0(0x171),'uheGR':'Random\x20reservation\x20undo\x20error\x20(orphan\x20slot\x20may\x20remain)'};try{const _0x7a00d9=redisClient[_0x48acd0(0x158)]();if(_0x5ef796){const _0x36b213=this[_0x48acd0(0x168)](_0x3663e0,_0x1bf432);await _0x7a00d9['del'](_0x36b213);}else{const _0x37c64c=this['_buildIssuedKey'](_0x3663e0);await _0x7a00d9['srem'](_0x37c64c,_0x1bf432);}}catch(_0x477c15){logger['warn']({'event':_0x4ef7cc['BfWDN'],'error':_0x477c15['message']},_0x4ef7cc['uheGR']);}}async[a0_0x26f5ee(0x117)](_0x1a392a,_0x50e26b,_0x26d3f5,_0x5b8b82=0x0){const _0xe1d382=a0_0x26f5ee,_0x379253={'fQOsB':function(_0x15584d,_0x1f4948){return _0x15584d(_0x1f4948);},'DLcZy':_0xe1d382(0x14b)};try{const _0x348e7a=redisClient[_0xe1d382(0x158)](),_0x199ba8=this[_0xe1d382(0xc0)](_0x1a392a,_0x50e26b),_0x1ccf15=[];for(const [_0x5c844d,_0x520277]of Object[_0xe1d382(0xd4)](_0x26d3f5)){_0x1ccf15['push'](_0x5c844d,_0x379253[_0xe1d382(0xa6)](String,_0x520277));}if(_0x1ccf15[_0xe1d382(0xe2)]>0x0){await _0x348e7a['hset'](_0x199ba8,..._0x1ccf15);if(_0x5b8b82>0x0)await _0x348e7a[_0xe1d382(0xe4)](_0x199ba8,_0x5b8b82);}}catch(_0x10a127){logger[_0xe1d382(0xcb)]({'event':_0x379253['DLcZy'],'error':_0x10a127['message']},_0xe1d382(0x99));}}async[a0_0x26f5ee(0x142)](_0x59feb3){const _0x31c83d=a0_0x26f5ee,_0x9edba6={'kAjER':_0x31c83d(0xf3),'RGBsb':'ID\x20Generator\x20is\x20disabled\x20(set\x20IDGEN_ENABLED=true)','mggoR':function(_0x193bbd,_0x36f626){return _0x193bbd(_0x36f626);},'jPQsC':'Failed\x20to\x20release\x20counter\x20for\x20idempotency\x20loser','dAfrc':_0x31c83d(0xb2)};if(!this[_0x31c83d(0x147)])throw new IdGeneratorError(_0x9edba6[_0x31c83d(0xe5)],_0x9edba6['RGBsb']);const _0x3bca63=this['_validateNumberParams'](_0x59feb3),_0x2520ea=this['_validateIdempotencyKey'](_0x59feb3[_0x31c83d(0xaf)]),{resource:_0x2f063c,format:_0x29b4ed,prefix:_0x1b9f1a,separator:_0x369ba5,numDigits:_0x53e4a0,reuseDelete:_0xb9a5cc}=_0x3bca63,{formatKey:_0x3b1f1f,datePrefix:_0x535079}=this['_buildFormatKey'](_0x29b4ed,_0x1b9f1a),_0x3225f1=this[_0x31c83d(0xf1)](_0x2f063c,_0x3b1f1f),_0x2a98e5=this[_0x31c83d(0x129)](_0x2f063c,_0x3b1f1f),_0x54aecc=this['_getCounterTTL'](_0x29b4ed);let _0x230cd5=null;if(_0x2520ea){_0x230cd5=this['_buildIdemKey']('number',_0x2f063c,_0x3b1f1f,_0x2520ea);const _0x1878c5=await this['_retrieveIdemCache'](_0x230cd5);if(_0x1878c5)return _0x1878c5;}const _0x72d53b=redisClient['getClient'](),_0x19bc41=await _0x72d53b['eval'](LUA_GENERATE_NUMBER,0x2,_0x3225f1,_0x2a98e5,_0xb9a5cc?'1':'0',_0x9edba6['mggoR'](String,_0x54aecc)),_0x3d0669=_0x19bc41[0x0],_0x40e2f3=_0x19bc41[0x1]===0x1,_0x20f4d3=this['_formatNumber']({'format':_0x29b4ed,'prefix':_0x1b9f1a,'datePrefix':_0x535079,'separator':_0x369ba5,'numDigits':_0x53e4a0,'counterInt':_0x3d0669}),_0x5b14af={'value':_0x20f4d3,'counter':_0x3d0669,'resource':_0x2f063c,'formatKey':_0x3b1f1f,'isReused':_0x40e2f3,'generatedAt':new Date()[_0x31c83d(0x182)]()},_0x4b4977=await this['_storeIdemCacheNX'](_0x230cd5,_0x5b14af);if(!_0x4b4977['stored']){try{await _0x72d53b[_0x31c83d(0x17b)](LUA_RELEASE_NUMBER,0x1,_0x2a98e5,_0x9edba6['mggoR'](String,_0x3d0669),String(_0x54aecc));}catch(_0x297722){logger['warn']({'event':'idgen_idem_loser_release_error','error':_0x297722[_0x31c83d(0xb7)],'resource':_0x2f063c,'formatKey':_0x3b1f1f,'counterInt':_0x3d0669},_0x9edba6[_0x31c83d(0x10e)]);}return logger[_0x31c83d(0xe8)]({'event':_0x9edba6[_0x31c83d(0x122)],'resource':_0x2f063c,'formatKey':_0x3b1f1f,'counter':_0x3d0669},_0x31c83d(0x138)),_0x4b4977['winnerResult'];}return this['_updateMeta'](_0x2f063c,_0x3b1f1f,{'lastValue':_0x20f4d3,'lastCounter':_0x3d0669,'lastIsReused':_0x40e2f3,'lastGeneratedAt':_0x5b14af[_0x31c83d(0x11c)]},_0x54aecc),logger[_0x31c83d(0xe8)]({'event':_0x31c83d(0x13c),'resource':_0x2f063c,'formatKey':_0x3b1f1f,'counter':_0x3d0669,'isReused':_0x40e2f3},'ID\x20Generator\x20number:\x20'+_0x20f4d3),_0x5b14af;}async[a0_0x26f5ee(0x103)](_0x27c468){const _0x85b3a7=a0_0x26f5ee,_0x460f77={'qIDcn':'IDGEN_DISABLED','JMQGe':function(_0xa6a4fa,_0x9ff279){return _0xa6a4fa!==_0x9ff279;},'xzRVe':_0x85b3a7(0x88),'lQKWQ':function(_0x20cf1b,_0x4a7ee8){return _0x20cf1b===_0x4a7ee8;},'kGLer':_0x85b3a7(0x93),'SmRUP':function(_0x529c79,_0x4c6e90){return _0x529c79<_0x4c6e90;},'tccVO':_0x85b3a7(0x12f),'oizRA':_0x85b3a7(0x15c)};if(!this['enabled'])throw new IdGeneratorError(_0x460f77['qIDcn'],_0x85b3a7(0x13b));let _0x783e15,_0x4d225d,_0x40af4a,_0x1dffa8;const _0x463e1d=this[_0x85b3a7(0x165)](_0x27c468['idempotencyKey']);if(_0x27c468['counterInt']!==undefined&&_0x460f77[_0x85b3a7(0x179)](_0x27c468[_0x85b3a7(0x8b)],null)){this['_validateResource'](_0x27c468[_0x85b3a7(0xde)]),_0x783e15=_0x27c468[_0x85b3a7(0xde)];if(typeof _0x27c468['formatKey']!==_0x460f77['xzRVe']||_0x460f77[_0x85b3a7(0xaa)](_0x27c468['formatKey']['length'],0x0))throw new IdGeneratorError(_0x85b3a7(0x12f),_0x460f77['kGLer']);_0x4d225d=_0x27c468[_0x85b3a7(0x169)];if(!Number[_0x85b3a7(0x17f)](_0x27c468['counterInt'])||_0x460f77['SmRUP'](_0x27c468[_0x85b3a7(0x8b)],0x1))throw new IdGeneratorError(_0x460f77['tccVO'],'counterInt\x20must\x20be\x20positive\x20integer\x20(got:\x20'+_0x27c468['counterInt']+')');_0x40af4a=_0x27c468['counterInt'];const _0x15eeb5=_0x4d225d[_0x85b3a7(0xc7)](/_(text|yyyy|yyyymm|yyyymmdd)(?:_|$)/);_0x1dffa8=_0x15eeb5?_0x15eeb5[0x1]:'text';}else{const _0xed4f4c=this['_validateNumberParams'](_0x27c468),_0x350359=this['_parseNumber']({'format':_0xed4f4c[_0x85b3a7(0xc6)],'prefix':_0xed4f4c['prefix'],'separator':_0xed4f4c[_0x85b3a7(0x80)],'numDigits':_0xed4f4c[_0x85b3a7(0x119)],'number':_0x27c468[_0x85b3a7(0x142)]});_0x783e15=_0xed4f4c['resource'],_0x4d225d=_0x350359[_0x85b3a7(0x169)],_0x40af4a=_0x350359[_0x85b3a7(0x8b)],_0x1dffa8=_0xed4f4c['format'];}const _0x9ba6c0=this[_0x85b3a7(0x129)](_0x783e15,_0x4d225d),_0x5d1ec0=this[_0x85b3a7(0x17e)](_0x1dffa8);let _0x305812=null;if(_0x463e1d){_0x305812=this[_0x85b3a7(0x17d)](_0x460f77['oizRA'],_0x783e15,_0x4d225d,_0x463e1d);const _0x25e97a=await this['_retrieveIdemCache'](_0x305812);if(_0x25e97a)return _0x25e97a;}const _0x582541=redisClient['getClient']();await _0x582541['eval'](LUA_RELEASE_NUMBER,0x1,_0x9ba6c0,String(_0x40af4a),String(_0x5d1ec0));const _0x2e8a16={'released':!![],'resource':_0x783e15,'formatKey':_0x4d225d,'counter':_0x40af4a,'releasedAt':new Date()['toISOString']()};return await this[_0x85b3a7(0xef)](_0x305812,_0x2e8a16),this['_updateMeta'](_0x783e15,_0x4d225d,{'lastReleasedCounter':_0x40af4a,'lastReleasedAt':_0x2e8a16['releasedAt']},_0x5d1ec0),logger[_0x85b3a7(0xe8)]({'event':_0x85b3a7(0xf7),'resource':_0x783e15,'formatKey':_0x4d225d,'counter':_0x40af4a},'ID\x20Generator\x20number\x20released:\x20'+_0x40af4a),_0x2e8a16;}async[a0_0x26f5ee(0x151)](_0x1171d3){const _0x41223f=a0_0x26f5ee,_0x1f1fd8={'QRLtl':_0x41223f(0xf3),'Gizoe':'reserve','JBTLk':function(_0x3ab8c0,_0x337193){return _0x3ab8c0+_0x337193;},'rdqIp':_0x41223f(0xde),'Nbxix':_0x41223f(0x169),'fQIoS':_0x41223f(0xc6),'byjaS':'prefix','vghvv':_0x41223f(0x153),'DcBgw':function(_0x593c79,_0x400b43){return _0x593c79||_0x400b43;},'ZOpZl':'expiresAt','YtlnF':_0x41223f(0xfa),'PvQjy':function(_0x34eb80,_0x43afee){return _0x34eb80(_0x43afee);},'WiEOy':'idemKey','vurOr':function(_0x1eacbf,_0xb2dcdf){return _0x1eacbf(_0xb2dcdf);},'zcXNk':function(_0x3ad7c3,_0x1bd73a){return _0x3ad7c3(_0x1bd73a);},'GfCVn':_0x41223f(0x111),'YpnIF':_0x41223f(0x8a),'ZsMqP':'value','YUtzp':_0x41223f(0x9f),'TCvGl':_0x41223f(0x164),'nzAOk':_0x41223f(0x11e),'cgHWg':'idgen_number_reserved'};if(!this[_0x41223f(0x147)])throw new IdGeneratorError(_0x1f1fd8['QRLtl'],_0x41223f(0x120));const _0x7d1282=this[_0x41223f(0x178)](_0x1171d3),_0x411da6=this[_0x41223f(0x106)](_0x1171d3[_0x41223f(0x13a)]),_0x4af4f4=this[_0x41223f(0x165)](_0x1171d3['idempotencyKey']),{resource:_0xcbef4,format:_0x1a2e91,prefix:_0x441656,separator:_0x1db35a,numDigits:_0x5a4193,reuseDelete:_0x58d2ad}=_0x7d1282,{formatKey:_0x15b555,datePrefix:_0x2da3a6}=this[_0x41223f(0xee)](_0x1a2e91,_0x441656),_0x55ec66=this[_0x41223f(0xf1)](_0xcbef4,_0x15b555),_0x3994a0=this[_0x41223f(0x129)](_0xcbef4,_0x15b555),_0x166f1c=this['_buildReservationIndexKey'](_0xcbef4,_0x15b555),_0x594374=this['_getCounterTTL'](_0x1a2e91);let _0xa1328f=null;if(_0x4af4f4){_0xa1328f=this[_0x41223f(0x17d)](_0x1f1fd8['Gizoe'],_0xcbef4,_0x15b555,_0x4af4f4);const _0x278655=await this['_retrieveIdemCache'](_0xa1328f);if(_0x278655)return _0x278655;}const _0x50db7c=crypto['randomUUID'](),_0xdeaa48=this['_buildReservationKey'](_0x50db7c),_0x4a70b1=this['_buildReservationKeyPrefix'](),_0x398db3=Date[_0x41223f(0xb8)](),_0x3c22e6=_0x1f1fd8['JBTLk'](_0x398db3,_0x411da6*0x3e8),_0x22baa7=_0x411da6*0x3e8,_0xca69c4=new Date(_0x398db3)['toISOString'](),_0x4ccfe9=new Date(_0x3c22e6)['toISOString'](),_0x1d5cc8=[_0x1f1fd8[_0x41223f(0x127)],_0xcbef4,_0x1f1fd8['Nbxix'],_0x15b555,_0x1f1fd8[_0x41223f(0xf5)],_0x1a2e91,_0x1f1fd8[_0x41223f(0x81)],_0x441656,_0x41223f(0x80),_0x1db35a,'numDigits',String(_0x5a4193),_0x1f1fd8['vghvv'],_0x1f1fd8[_0x41223f(0xf8)](_0x2da3a6,''),'createdAt',_0xca69c4,_0x1f1fd8[_0x41223f(0x7d)],_0x4ccfe9,_0x1f1fd8['YtlnF'],_0x1f1fd8[_0x41223f(0x83)](String,_0x22baa7)];_0x4af4f4&&_0x1d5cc8[_0x41223f(0x91)](_0x1f1fd8[_0x41223f(0x145)],_0x4af4f4);const _0x415767=redisClient['getClient'](),_0x41342d=await _0x415767['eval'](LUA_RESERVE_NUMBER,0x3,_0x55ec66,_0x3994a0,_0x166f1c,_0x58d2ad?'1':'0',String(_0x594374),_0x50db7c,_0xdeaa48,_0x1f1fd8['vurOr'](String,_0x22baa7),String(_0x3c22e6),_0x1f1fd8['vurOr'](String,_0x398db3),_0x4a70b1,..._0x1d5cc8),_0xd8bfac=_0x41342d[0x0],_0x3f96a3=_0x41342d[0x1]===0x1,_0x5c6310=_0x41342d[0x2]||0x0;let _0x4cefab;try{_0x4cefab=this['_formatNumber']({'format':_0x1a2e91,'prefix':_0x441656,'datePrefix':_0x2da3a6,'separator':_0x1db35a,'numDigits':_0x5a4193,'counterInt':_0xd8bfac});}catch(_0x31d53e){try{await _0x415767[_0x41223f(0x17b)](LUA_CANCEL_RESERVATION,0x3,_0xdeaa48,_0x166f1c,_0x3994a0,_0x50db7c,_0x1f1fd8[_0x41223f(0xc1)](String,_0x594374));}catch(_0x25b896){logger['warn']({'event':_0x1f1fd8['GfCVn'],'error':_0x25b896[_0x41223f(0xb7)],'resource':_0xcbef4,'formatKey':_0x15b555,'counterInt':_0xd8bfac,'token':_0x50db7c},_0x1f1fd8['YpnIF']);}throw _0x31d53e;}try{await _0x415767[_0x41223f(0xd8)](_0xdeaa48,_0x1f1fd8['ZsMqP'],_0x4cefab);}catch(_0x2ee06a){logger[_0x41223f(0xcb)]({'event':_0x1f1fd8[_0x41223f(0x128)],'error':_0x2ee06a[_0x41223f(0xb7)],'resource':_0xcbef4,'formatKey':_0x15b555,'counterInt':_0xd8bfac,'token':_0x50db7c},_0x1f1fd8[_0x41223f(0x15d)]);}const _0x31d2ac={'token':_0x50db7c,'value':_0x4cefab,'counter':_0xd8bfac,'resource':_0xcbef4,'formatKey':_0x15b555,'isReused':_0x3f96a3,'createdAt':_0xca69c4,'expiresAt':_0x4ccfe9,'reapedCount':_0x5c6310},_0xca3233=await this[_0x41223f(0x75)](_0xa1328f,_0x31d2ac);if(!_0xca3233['stored']){try{await _0x415767['eval'](LUA_CANCEL_RESERVATION,0x3,_0xdeaa48,_0x166f1c,_0x3994a0,_0x50db7c,String(_0x594374));}catch(_0x745448){logger['warn']({'event':'idgen_reserve_idem_loser_cancel_error','error':_0x745448['message'],'resource':_0xcbef4,'formatKey':_0x15b555,'counterInt':_0xd8bfac,'token':_0x50db7c},_0x1f1fd8['nzAOk']);}return logger[_0x41223f(0xe8)]({'event':_0x41223f(0x11a),'resource':_0xcbef4,'formatKey':_0x15b555,'counter':_0xd8bfac,'token':_0x50db7c},_0x41223f(0xdc)),_0xca3233[_0x41223f(0xb0)];}return this['_updateMeta'](_0xcbef4,_0x15b555,{'lastReservedCounter':_0xd8bfac,'lastReservedAt':_0xca69c4,'lastReapedCount':_0x5c6310},_0x594374),logger['info']({'event':_0x1f1fd8['cgHWg'],'resource':_0xcbef4,'formatKey':_0x15b555,'counter':_0xd8bfac,'isReused':_0x3f96a3,'token':_0x50db7c,'ttl':_0x411da6,'reapedCount':_0x5c6310},_0x41223f(0x9b)+_0x4cefab+'\x20(token='+_0x50db7c+')'),_0x31d2ac;}async['confirmReservation'](_0xf922b1){const _0x308d90=a0_0x26f5ee,_0x3c9cdf={'BgXrl':_0x308d90(0xf3),'hoape':'ID\x20Generator\x20is\x20disabled','fSMWW':'idgen','wXLlw':_0x308d90(0x146),'gtWjo':'IDGEN_RESERVATION_NOT_FOUND'};if(!this['enabled'])throw new IdGeneratorError(_0x3c9cdf[_0x308d90(0x14f)],_0x3c9cdf['hoape']);const _0x45045e=this['_validateReservationToken'](_0xf922b1&&_0xf922b1['token']),_0x9ce03e=this[_0x308d90(0x165)](_0xf922b1&&_0xf922b1[_0x308d90(0xaf)]);let _0x39d817=null;if(_0x9ce03e){_0x39d817=idempotencyManager[_0x308d90(0xab)](_0x3c9cdf['fSMWW'],_0x3c9cdf['wXLlw'],_0x45045e+':'+_0x9ce03e);const _0x2f1460=await this['_retrieveIdemCache'](_0x39d817);if(_0x2f1460)return _0x2f1460;}const _0x3917d9=await this[_0x308d90(0x141)](_0x45045e),_0x2ee60a=redisClient[_0x308d90(0x158)](),_0x516eb1=await _0x2ee60a[_0x308d90(0x17b)](LUA_CONFIRM_RESERVATION,0x2,_0x3917d9['rsvKey'],_0x3917d9['rsvIdxKey'],_0x45045e);if(!_0x516eb1||_0x516eb1[0x0]!==0x1)throw new IdGeneratorError(_0x3c9cdf['gtWjo'],_0x308d90(0x154)+_0x45045e,{'token':_0x45045e});const _0xff45a6=parseInt(_0x516eb1[0x1],0xa),_0x2f9087=_0x516eb1[0x2],_0x274d66=_0x516eb1[0x3],_0x41fbad=new Date()['toISOString'](),_0x519b83={'confirmed':!![],'token':_0x45045e,'value':_0x2f9087,'counter':_0xff45a6,'resource':_0x3917d9[_0x308d90(0xde)],'formatKey':_0x274d66,'confirmedAt':_0x41fbad};await this[_0x308d90(0xef)](_0x39d817,_0x519b83);const _0x4e0b05=_0x274d66[_0x308d90(0xc7)](/_(text|yyyy|yyyymm|yyyymmdd)(?:_|$)/),_0x5a9094=_0x4e0b05?_0x4e0b05[0x1]:'text',_0x211524=this[_0x308d90(0x17e)](_0x5a9094);return this[_0x308d90(0x117)](_0x3917d9[_0x308d90(0xde)],_0x274d66,{'lastConfirmedCounter':_0xff45a6,'lastConfirmedAt':_0x41fbad},_0x211524),logger[_0x308d90(0xe8)]({'event':'idgen_reservation_confirmed','resource':_0x3917d9[_0x308d90(0xde)],'formatKey':_0x274d66,'counter':_0xff45a6,'token':_0x45045e},'ID\x20Generator\x20reservation\x20confirmed:\x20'+_0x2f9087+'\x20(token='+_0x45045e+')'),_0x519b83;}async['cancelReservation'](_0x2beebf){const _0x4a0150=a0_0x26f5ee,_0x1a1f66={'Ykmrn':'reserve_cancel','laqqa':function(_0x155124,_0x9d8965){return _0x155124!==_0x9d8965;},'BJxQR':_0x4a0150(0xea),'hpYWw':function(_0x21f115,_0x2902a3,_0x2beb24){return _0x21f115(_0x2902a3,_0x2beb24);}};if(!this['enabled'])throw new IdGeneratorError(_0x4a0150(0xf3),'ID\x20Generator\x20is\x20disabled');const _0x48528d=this[_0x4a0150(0x17a)](_0x2beebf&&_0x2beebf[_0x4a0150(0x10f)]),_0x45e123=this['_validateIdempotencyKey'](_0x2beebf&&_0x2beebf[_0x4a0150(0xaf)]);let _0x1c272d=null;if(_0x45e123){_0x1c272d=idempotencyManager['buildDeterministicKey'](_0x4a0150(0x118),_0x1a1f66['Ykmrn'],_0x48528d+':'+_0x45e123);const _0x382c7c=await this['_retrieveIdemCache'](_0x1c272d);if(_0x382c7c)return _0x382c7c;}const _0x5d4e79=await this['_getReservationContext'](_0x48528d),_0x22d989=this['_buildReuseKey'](_0x5d4e79[_0x4a0150(0xde)],_0x5d4e79['formatKey']),_0xbe9c4b=_0x5d4e79[_0x4a0150(0x169)]['match'](/_(text|yyyy|yyyymm|yyyymmdd)(?:_|$)/),_0x2fc316=_0xbe9c4b?_0xbe9c4b[0x1]:'text',_0x292cea=this['_getCounterTTL'](_0x2fc316),_0x1d6052=redisClient['getClient'](),_0x37cc0b=await _0x1d6052['eval'](LUA_CANCEL_RESERVATION,0x3,_0x5d4e79['rsvKey'],_0x5d4e79[_0x4a0150(0x10c)],_0x22d989,_0x48528d,String(_0x292cea));if(!_0x37cc0b||_0x1a1f66['laqqa'](_0x37cc0b[0x0],0x1))throw new IdGeneratorError(_0x1a1f66[_0x4a0150(0x15a)],'Reservation\x20not\x20found\x20or\x20already\x20consumed:\x20'+_0x48528d,{'token':_0x48528d});const _0x2b2216=_0x1a1f66[_0x4a0150(0x177)](parseInt,_0x37cc0b[0x1],0xa),_0x4159fa=_0x37cc0b[0x2],_0x472ccd=_0x37cc0b[0x3],_0x5c94bc=new Date()['toISOString'](),_0x4f1e08={'cancelled':!![],'token':_0x48528d,'value':_0x4159fa,'counter':_0x2b2216,'resource':_0x5d4e79[_0x4a0150(0xde)],'formatKey':_0x472ccd,'releasedToReuse':!![],'cancelledAt':_0x5c94bc};return await this['_storeIdemCache'](_0x1c272d,_0x4f1e08),this[_0x4a0150(0x117)](_0x5d4e79[_0x4a0150(0xde)],_0x472ccd,{'lastCancelledCounter':_0x2b2216,'lastCancelledAt':_0x5c94bc},_0x292cea),logger['info']({'event':_0x4a0150(0xcd),'resource':_0x5d4e79[_0x4a0150(0xde)],'formatKey':_0x472ccd,'counter':_0x2b2216,'token':_0x48528d},'ID\x20Generator\x20reservation\x20cancelled:\x20'+_0x4159fa+_0x4a0150(0xb1)+_0x48528d+')'),_0x4f1e08;}async['extendReservation'](_0x268c85){const _0x439863=a0_0x26f5ee,_0x10cfa1={'lWclK':'IDGEN_DISABLED','yCwcu':_0x439863(0x13b),'pvXjz':_0x439863(0x118),'lFYfW':function(_0x469663,_0x299738){return _0x469663*_0x299738;},'uDWsc':function(_0x267293,_0x27bf8f){return _0x267293(_0x27bf8f);},'EfuaI':'text'};if(!this['enabled'])throw new IdGeneratorError(_0x10cfa1[_0x439863(0x11d)],_0x10cfa1[_0x439863(0x175)]);const _0x5a4444=this['_validateReservationToken'](_0x268c85&&_0x268c85['token']),_0x133815=this[_0x439863(0x106)](_0x268c85&&_0x268c85['ttl']),_0x308ddf=this['_validateIdempotencyKey'](_0x268c85&&_0x268c85[_0x439863(0xaf)]);let _0x173e3d=null;if(_0x308ddf){_0x173e3d=idempotencyManager[_0x439863(0xab)](_0x10cfa1[_0x439863(0x7a)],'reserve_extend',_0x5a4444+':'+_0x308ddf);const _0x271e6e=await this[_0x439863(0x98)](_0x173e3d);if(_0x271e6e)return _0x271e6e;}const _0x9da52e=await this['_getReservationContext'](_0x5a4444),_0x28a791=Date['now'](),_0x5d975e=_0x28a791+_0x133815*0x3e8,_0xa1c20b=_0x10cfa1['lFYfW'](_0x133815,0x3e8),_0x4a709a=new Date(_0x5d975e)[_0x439863(0x182)](),_0x56dd13=redisClient[_0x439863(0x158)](),_0x2fba00=await _0x56dd13['eval'](LUA_EXTEND_RESERVATION,0x2,_0x9da52e['rsvKey'],_0x9da52e[_0x439863(0x10c)],_0x5a4444,String(_0xa1c20b),_0x10cfa1['uDWsc'](String,_0x5d975e),_0x4a709a);if(!_0x2fba00||_0x2fba00[0x0]!==0x1)throw new IdGeneratorError(_0x439863(0xea),_0x439863(0x154)+_0x5a4444,{'token':_0x5a4444});const _0x12ca06=_0x2fba00[0x1],_0x2bb4a1=parseInt(_0x2fba00[0x2],0xa),_0x40488c=_0x2fba00[0x3],_0x4e58f4=_0x2fba00[0x4],_0x772fa0=new Date(_0x28a791)['toISOString'](),_0x10dae6={'extended':!![],'token':_0x5a4444,'previousExpiresAt':_0x12ca06,'expiresAt':_0x4a709a,'ttlMs':_0xa1c20b,'resource':_0x9da52e[_0x439863(0xde)],'formatKey':_0x4e58f4,'counter':_0x2bb4a1,'value':_0x40488c,'extendedAt':_0x772fa0};await this['_storeIdemCache'](_0x173e3d,_0x10dae6);const _0x13d265=_0x4e58f4['match'](/_(text|yyyy|yyyymm|yyyymmdd)(?:_|$)/),_0x4dffb4=_0x13d265?_0x13d265[0x1]:_0x10cfa1[_0x439863(0xe0)],_0x28b207=this[_0x439863(0x17e)](_0x4dffb4);return this['_updateMeta'](_0x9da52e['resource'],_0x4e58f4,{'lastExtendedCounter':_0x2bb4a1,'lastExtendedAt':_0x772fa0},_0x28b207),logger[_0x439863(0xe8)]({'event':'idgen_reservation_extended','resource':_0x9da52e[_0x439863(0xde)],'formatKey':_0x4e58f4,'counter':_0x2bb4a1,'token':_0x5a4444,'ttl':_0x133815},'ID\x20Generator\x20reservation\x20extended:\x20'+_0x40488c+'\x20(token='+_0x5a4444+_0x439863(0xdb)+_0x133815+'s)'),_0x10dae6;}async[a0_0x26f5ee(0x109)](_0x451aa3){const _0x13b5e0=a0_0x26f5ee,_0x25dbc7={'aktjf':'IDGEN_DISABLED','xKlle':'ID\x20Generator\x20is\x20disabled','LvFrg':'IDGEN_RESERVATION_NOT_FOUND','Pcurq':function(_0x12e498,_0x1d0f29,_0x304a93){return _0x12e498(_0x1d0f29,_0x304a93);},'LUyuG':function(_0x197813,_0x158fb1){return _0x197813===_0x158fb1;},'rEeRk':function(_0x29386d,_0x2db0df){return _0x29386d>=_0x2db0df;}};if(!this['enabled'])throw new IdGeneratorError(_0x25dbc7[_0x13b5e0(0xce)],_0x25dbc7['xKlle']);const _0x598739=this['_validateReservationToken'](_0x451aa3&&_0x451aa3[_0x13b5e0(0x10f)]),_0x3addc8=this['_buildReservationKey'](_0x598739),_0x24e0aa=redisClient[_0x13b5e0(0x158)](),_0x5757ae=_0x24e0aa['pipeline']();_0x5757ae['hgetall'](_0x3addc8),_0x5757ae['pttl'](_0x3addc8);const _0x28b6a5=await _0x5757ae['exec'](),_0x5ba367=_0x28b6a5&&_0x28b6a5[0x0]&&_0x28b6a5[0x0][0x1],_0x43e94b=_0x28b6a5&&_0x28b6a5[0x1]&&_0x28b6a5[0x1][0x1];if(!_0x5ba367||Object['keys'](_0x5ba367)[_0x13b5e0(0xe2)]===0x0)throw new IdGeneratorError(_0x25dbc7[_0x13b5e0(0x104)],_0x13b5e0(0x154)+_0x598739,{'token':_0x598739});return{'token':_0x598739,'resource':_0x5ba367[_0x13b5e0(0xde)]||null,'formatKey':_0x5ba367[_0x13b5e0(0x169)]||null,'format':_0x5ba367['format']||null,'prefix':_0x5ba367[_0x13b5e0(0x89)]||'','separator':_0x5ba367['separator']||'','numDigits':_0x5ba367[_0x13b5e0(0x119)]?parseInt(_0x5ba367[_0x13b5e0(0x119)],0xa):null,'datePrefix':_0x5ba367['datePrefix']||'','counter':_0x5ba367['counter']?_0x25dbc7['Pcurq'](parseInt,_0x5ba367[_0x13b5e0(0x161)],0xa):null,'value':_0x5ba367[_0x13b5e0(0x107)]||null,'isReused':_0x25dbc7['LUyuG'](_0x5ba367['isReused'],'1')||_0x5ba367['isReused']===0x1,'createdAt':_0x5ba367['createdAt']||null,'expiresAt':_0x5ba367['expiresAt']||null,'ttlRemainingMs':_0x25dbc7[_0x13b5e0(0x13e)](typeof _0x43e94b,'number')&&_0x25dbc7['rEeRk'](_0x43e94b,0x0)?_0x43e94b:null};}async['_getReservationContext'](_0x3d9866){const _0x2e4ed1=a0_0x26f5ee,_0x3a35b6={'keXMk':_0x2e4ed1(0xde),'RPJSU':'formatKey','HYKXU':function(_0x39eaf8,_0x3c08f2){return _0x39eaf8||_0x3c08f2;}},_0x4e924a=this['_buildReservationKey'](_0x3d9866),_0x55c61a=redisClient['getClient'](),_0x3c6034=await _0x55c61a['hmget'](_0x4e924a,_0x3a35b6['keXMk'],_0x3a35b6[_0x2e4ed1(0xf4)]),_0x55b444=_0x3c6034&&_0x3c6034[0x0],_0x290e01=_0x3c6034&&_0x3c6034[0x1];if(_0x3a35b6[_0x2e4ed1(0x125)](!_0x55b444,!_0x290e01))throw new IdGeneratorError(_0x2e4ed1(0xea),_0x2e4ed1(0x154)+_0x3d9866,{'token':_0x3d9866});return{'resource':_0x55b444,'formatKey':_0x290e01,'rsvKey':_0x4e924a,'rsvIdxKey':this[_0x2e4ed1(0x148)](_0x55b444,_0x290e01)};}async['random'](_0x49ea02){const _0x22af09=a0_0x26f5ee,_0x4c6001={'yMIch':_0x22af09(0x13b),'xdacr':function(_0x5e5fa2,_0x21f9fe){return _0x5e5fa2===_0x21f9fe;},'ERMVn':_0x22af09(0xfc),'NEBEB':_0x22af09(0x186),'WTWhb':'idgen_random_generated'};if(!this['enabled'])throw new IdGeneratorError('IDGEN_DISABLED',_0x4c6001[_0x22af09(0x73)]);this[_0x22af09(0x160)](_0x49ea02['resource']),this[_0x22af09(0xbb)](_0x49ea02[_0x22af09(0x72)]);const _0x11302b=this['_validateTTL'](_0x49ea02[_0x22af09(0x13a)]),_0x5b23c7=this[_0x22af09(0x170)](_0x49ea02['maxRetry']),_0xe16f55=this['_validateIdempotencyKey'](_0x49ea02['idempotencyKey']),_0x4b283d=_0x4c6001[_0x22af09(0x13f)](_0x49ea02['ensureUnique'],!![]),{resource:_0x110487,pattern:_0x53b0a2}=_0x49ea02;let _0x4efcea=null;if(_0xe16f55){_0x4efcea=this[_0x22af09(0x17d)](_0x4c6001[_0x22af09(0x185)],_0x110487,null,_0xe16f55);const _0x553471=await this[_0x22af09(0x98)](_0x4efcea);if(_0x553471)return _0x553471;}const _0x557d89=redisClient['getClient']();let _0x73beab=null,_0xc7fce3=0x0;if(!_0x4b283d)_0x73beab=this['_generateFromPattern'](_0x53b0a2),_0xc7fce3=0x1;else{for(let _0x38bea3=0x0;_0x38bea3<_0x5b23c7;_0x38bea3++){_0xc7fce3++;const _0x57a986=this[_0x22af09(0xbe)](_0x53b0a2);if(_0x11302b){const _0x385973=this[_0x22af09(0x168)](_0x110487,_0x57a986),_0x669925=await _0x557d89['set'](_0x385973,'1','EX',_0x11302b,'NX');if(_0x669925==='OK'){_0x73beab=_0x57a986;break;}}else{const _0x12cb4e=this['_buildIssuedKey'](_0x110487),_0x929d2f=await _0x557d89[_0x22af09(0xa2)](_0x12cb4e,_0x57a986);if(_0x929d2f===0x1){_0x73beab=_0x57a986;break;}}}if(_0x73beab===null)throw new IdGeneratorError(_0x22af09(0xdf),'Could\x20not\x20generate\x20unique\x20value\x20after\x20'+_0x5b23c7+'\x20attempts.\x20Increase\x20pattern\x20length\x20or\x20maxRetry.',{'resource':_0x110487,'pattern':_0x53b0a2,'maxRetry':_0x5b23c7});}const _0x53acd6={'value':_0x73beab,'resource':_0x110487,'pattern':_0x53b0a2,'attemptCount':_0xc7fce3,'generatedAt':new Date()['toISOString']()};_0x11302b&&_0x4b283d&&(_0x53acd6[_0x22af09(0xa1)]=new Date(Date['now']()+_0x11302b*0x3e8)[_0x22af09(0x182)]());const _0x7d0dc7=await this['_storeIdemCacheNX'](_0x4efcea,_0x53acd6);if(!_0x7d0dc7[_0x22af09(0x126)])return _0x4b283d&&await this['_undoRandomReservation'](_0x110487,_0x73beab,_0x11302b),logger[_0x22af09(0xe8)]({'event':_0x4c6001['NEBEB'],'resource':_0x110487,'pattern':_0x53b0a2,'value':_0x73beab},'ID\x20Generator\x20random\x20idem\x20race\x20lost,\x20returning\x20winner\x20envelope'),_0x7d0dc7['winnerResult'];return logger[_0x22af09(0xe8)]({'event':_0x4c6001['WTWhb'],'resource':_0x110487,'pattern':_0x53b0a2,'attemptCount':_0xc7fce3,'ensureUnique':_0x4b283d,'ttl':_0x11302b||0x0},'ID\x20Generator\x20random:\x20'+_0x73beab),_0x53acd6;}async[a0_0x26f5ee(0x114)](_0x3242cf){const _0x4a8757=a0_0x26f5ee,_0x487171={'wGaLy':function(_0x17af86,_0x211896){return _0x17af86==_0x211896;},'sVUGR':_0x4a8757(0x76),'MFEoQ':function(_0x17b0b1,_0x3d6fed){return _0x17b0b1===_0x3d6fed;}},_0x2e1678=_0x487171['wGaLy'](_0x3242cf['digits'],null)?this[_0x4a8757(0x10a)]:_0x3242cf['digits'];if(!Number[_0x4a8757(0x17f)](_0x2e1678)||_0x2e1678<MIN_PIN_DIGITS||_0x2e1678>MAX_PIN_DIGITS)throw new IdGeneratorError(_0x487171[_0x4a8757(0x188)],_0x4a8757(0x181)+MIN_PIN_DIGITS+'-'+MAX_PIN_DIGITS+'\x20(got:\x20'+_0x2e1678+')');const _0x32d6ca='9'['repeat'](_0x2e1678);return this['random']({'resource':_0x3242cf[_0x4a8757(0xde)],'pattern':_0x32d6ca,'ensureUnique':_0x487171[_0x4a8757(0x139)](_0x3242cf[_0x4a8757(0xa5)],!![]),'ttl':_0x3242cf[_0x4a8757(0x13a)],'maxRetry':_0x3242cf[_0x4a8757(0x132)],'idempotencyKey':_0x3242cf[_0x4a8757(0xaf)]});}async['serial'](_0x6dc1df){const _0x332ab3=a0_0x26f5ee,_0xcef8d4={'CKXti':function(_0x3120f0,_0x1422ae){return _0x3120f0!==_0x1422ae;}},_0x55d618=_0x6dc1df[_0x332ab3(0x72)]||this[_0x332ab3(0x10d)];return this[_0x332ab3(0xfc)]({'resource':_0x6dc1df['resource'],'pattern':_0x55d618,'ensureUnique':_0xcef8d4[_0x332ab3(0x8f)](_0x6dc1df[_0x332ab3(0xa5)],![]),'ttl':_0x6dc1df[_0x332ab3(0x13a)],'maxRetry':_0x6dc1df['maxRetry'],'idempotencyKey':_0x6dc1df['idempotencyKey']});}async['code'](_0x5e2cee){const _0x2714d1=a0_0x26f5ee,_0x1a352c={'AngVO':function(_0x2eaa20,_0x22134e){return _0x2eaa20!==_0x22134e;}},_0x2a42fa=_0x5e2cee['pattern']||this[_0x2714d1(0x12a)];return this[_0x2714d1(0xfc)]({'resource':_0x5e2cee['resource'],'pattern':_0x2a42fa,'ensureUnique':_0x1a352c['AngVO'](_0x5e2cee['ensureUnique'],![]),'ttl':_0x5e2cee['ttl'],'maxRetry':_0x5e2cee['maxRetry'],'idempotencyKey':_0x5e2cee[_0x2714d1(0xaf)]});}async[a0_0x26f5ee(0xd0)](_0x195675){const _0x3e4631=a0_0x26f5ee,_0x1f9e8d={'DtgDR':'IDGEN_DISABLED','OcERm':function(_0x3e51e6,_0x8bd2cd){return _0x3e51e6!==_0x8bd2cd;},'oFxCm':function(_0x842f52,_0x4e0089){return _0x842f52===_0x4e0089;},'KWRWh':_0x3e4631(0x12f),'gFEgb':function(_0x2559f1,_0x4ecf6b){return _0x2559f1+_0x4ecf6b;},'nCtPb':_0x3e4631(0x134)};if(!this['enabled'])throw new IdGeneratorError(_0x1f9e8d[_0x3e4631(0x18c)],_0x3e4631(0x13b));this['_validateResource'](_0x195675['resource']);if(_0x1f9e8d[_0x3e4631(0x7e)](typeof _0x195675[_0x3e4631(0x107)],'string')||_0x1f9e8d[_0x3e4631(0x115)](_0x195675[_0x3e4631(0x107)]['length'],0x0))throw new IdGeneratorError(_0x1f9e8d['KWRWh'],'value\x20is\x20required');const {resource:_0x33fc35,value:_0x200108}=_0x195675,_0x4e14b4=redisClient['getClient'](),_0x98f2f2=this[_0x3e4631(0x168)](_0x33fc35,_0x200108),_0x44fa9a=this[_0x3e4631(0x15f)](_0x33fc35),[_0x1b1a8b,_0x4cf044]=await Promise[_0x3e4631(0xed)]([_0x4e14b4['del'](_0x98f2f2),_0x4e14b4['srem'](_0x44fa9a,_0x200108)]),_0x485d32=_0x1f9e8d['gFEgb'](_0x1b1a8b,_0x4cf044)>0x0;return logger[_0x3e4631(0xe8)]({'event':_0x1f9e8d['nCtPb'],'resource':_0x33fc35,'value':_0x200108,'consumed':_0x485d32},'ID\x20Generator\x20consumed:\x20'+_0x200108),{'consumed':_0x485d32,'resource':_0x33fc35,'value':_0x200108,'consumedAt':new Date()[_0x3e4631(0x182)]()};}async['peek'](_0x1a0599){const _0x3897db=a0_0x26f5ee,_0x31a233={'eWAnw':'IDGEN_DISABLED','MWKCO':'text','HDidi':'IDGEN_INVALID_FORMAT','AmRoz':function(_0x151db3,_0x286f5e){return _0x151db3===_0x286f5e;}};if(!this[_0x3897db(0x147)])throw new IdGeneratorError(_0x31a233['eWAnw'],_0x3897db(0x13b));this[_0x3897db(0x160)](_0x1a0599['resource']);const _0xef77ee=_0x1a0599[_0x3897db(0x14c)]||_0x3897db(0x142),_0x354d34=redisClient[_0x3897db(0x158)]();if(_0xef77ee==='number'){const _0x3c6488=(_0x1a0599['format']||_0x31a233['MWKCO'])['toLowerCase']();if(!ALLOWED_FORMATS[_0x3897db(0x9d)](_0x3c6488))throw new IdGeneratorError(_0x31a233['HDidi'],_0x3897db(0xcf)+_0x1a0599[_0x3897db(0xc6)]);const {formatKey:_0x12b100}=this[_0x3897db(0xee)](_0x3c6488,_0x1a0599[_0x3897db(0x89)]||''),_0x2e2e35=this[_0x3897db(0xf1)](_0x1a0599[_0x3897db(0xde)],_0x12b100),_0x32b7dd=this['_buildReuseKey'](_0x1a0599[_0x3897db(0xde)],_0x12b100),[_0x3a2654,_0x4261a7]=await Promise['all']([_0x354d34['get'](_0x2e2e35),_0x354d34['zcard'](_0x32b7dd)]);return{'resource':_0x1a0599['resource'],'mode':_0x3897db(0x142),'formatKey':_0x12b100,'currentCounter':parseInt(_0x3a2654,0xa)||0x0,'reusePoolSize':_0x4261a7||0x0};}if(_0x31a233[_0x3897db(0x180)](_0xef77ee,_0x3897db(0xfc))){const _0x232cc8=this['_buildIssuedKey'](_0x1a0599['resource']),_0x1ddc94=await _0x354d34[_0x3897db(0x15b)](_0x232cc8);return{'resource':_0x1a0599['resource'],'mode':'random','issuedCount':_0x1ddc94||0x0};}throw new IdGeneratorError(_0x3897db(0x136),'Unknown\x20mode:\x20'+_0xef77ee);}async[a0_0x26f5ee(0xf9)](_0x35f197){const _0x149cc6=a0_0x26f5ee,_0x606d91=await this['peek'](_0x35f197);if(_0x606d91['mode']===_0x149cc6(0x142)){const _0x5df994=redisClient[_0x149cc6(0x158)](),_0x2dba06=this[_0x149cc6(0xc0)](_0x35f197[_0x149cc6(0xde)],_0x606d91['formatKey']),_0x453a73=this[_0x149cc6(0x129)](_0x35f197[_0x149cc6(0xde)],_0x606d91[_0x149cc6(0x169)]),[_0x272179,_0x4f9a14]=await Promise['all']([_0x5df994[_0x149cc6(0xa7)](_0x2dba06),_0x5df994['zrange'](_0x453a73,0x0,-0x1)]);return{..._0x606d91,'reusePoolValues':_0x4f9a14['map'](_0x31c272=>parseInt(_0x31c272,0xa)),'meta':_0x272179&&Object['keys'](_0x272179)[_0x149cc6(0xe2)]>0x0?_0x272179:null};}return _0x606d91;}async['reset'](_0x454ea3){const _0x376acd=a0_0x26f5ee,_0x132960={'Arlik':'IDGEN_DISABLED','HOjUz':_0x376acd(0x13b),'czkNq':'number','sHxyc':function(_0x26fb90,_0x87590a){return _0x26fb90===_0x87590a;},'RRtXg':_0x376acd(0x9c),'levsN':function(_0x114b21,_0x128a26){return _0x114b21===_0x128a26;},'KdbCF':_0x376acd(0xfc)};if(!this[_0x376acd(0x147)])throw new IdGeneratorError(_0x132960['Arlik'],_0x132960[_0x376acd(0x82)]);if(!this[_0x376acd(0x102)])throw new IdGeneratorError(_0x376acd(0xc8),'Reset\x20operation\x20not\x20allowed\x20(set\x20IDGEN_ALLOW_RESET=true\x20to\x20enable)');this[_0x376acd(0x160)](_0x454ea3['resource']);const _0x276482=_0x454ea3[_0x376acd(0x14c)]||_0x132960[_0x376acd(0xbf)],_0x10e995=redisClient[_0x376acd(0x158)]();if(_0x132960[_0x376acd(0x143)](_0x276482,'number')){const _0x42f7f6=(_0x454ea3[_0x376acd(0xc6)]||_0x376acd(0x12e))['toLowerCase']();if(!ALLOWED_FORMATS[_0x376acd(0x9d)](_0x42f7f6))throw new IdGeneratorError(_0x132960[_0x376acd(0x90)],_0x376acd(0xcf)+_0x454ea3[_0x376acd(0xc6)]);const {formatKey:_0x82784b}=this['_buildFormatKey'](_0x42f7f6,_0x454ea3[_0x376acd(0x89)]||''),_0x370647=this[_0x376acd(0xf1)](_0x454ea3['resource'],_0x82784b),_0x2633a9=this[_0x376acd(0x129)](_0x454ea3[_0x376acd(0xde)],_0x82784b),_0x82ef7d=this['_buildMetaKey'](_0x454ea3[_0x376acd(0xde)],_0x82784b);return await _0x10e995[_0x376acd(0xb3)](_0x370647,_0x2633a9,_0x82ef7d),logger[_0x376acd(0xcb)]({'event':'idgen_reset','resource':_0x454ea3['resource'],'mode':_0x132960['czkNq'],'formatKey':_0x82784b},_0x376acd(0xfe)+_0x454ea3[_0x376acd(0xde)]+':'+_0x82784b),{'reset':!![],'resource':_0x454ea3['resource'],'mode':_0x132960[_0x376acd(0xbf)],'formatKey':_0x82784b,'deletedKeys':[_0x376acd(0x101),'reuse',_0x376acd(0xff)]};}if(_0x132960['levsN'](_0x276482,_0x132960[_0x376acd(0xf6)])){const _0x3967bc=this['_buildIssuedKey'](_0x454ea3['resource']);return await _0x10e995['del'](_0x3967bc),logger['warn']({'event':'idgen_reset','resource':_0x454ea3['resource'],'mode':'random'},'ID\x20Generator\x20reset:\x20random:'+_0x454ea3[_0x376acd(0xde)]),{'reset':!![],'resource':_0x454ea3[_0x376acd(0xde)],'mode':_0x132960['KdbCF'],'deletedKeys':['issued']};}throw new IdGeneratorError('IDGEN_INVALID_MODE','Unknown\x20mode:\x20'+_0x276482);}}const instance=new IdGenerator();instance['IdGeneratorError']=IdGeneratorError,module['exports']=instance,module[a0_0x26f5ee(0xad)]['IdGeneratorError']=IdGeneratorError;
1
+ 'use strict';const a0_0x4699fa=a0_0x48ec;(function(_0xbf0e14,_0x513675){const _0x4890f6=a0_0x48ec,_0x4b508d=_0xbf0e14();while(!![]){try{const _0x587a6f=parseInt(_0x4890f6(0x1e5))/0x1+-parseInt(_0x4890f6(0x260))/0x2*(-parseInt(_0x4890f6(0x18a))/0x3)+-parseInt(_0x4890f6(0x279))/0x4+-parseInt(_0x4890f6(0x197))/0x5*(-parseInt(_0x4890f6(0x1fd))/0x6)+-parseInt(_0x4890f6(0x250))/0x7*(parseInt(_0x4890f6(0x1c5))/0x8)+-parseInt(_0x4890f6(0x241))/0x9+parseInt(_0x4890f6(0x18b))/0xa*(-parseInt(_0x4890f6(0x274))/0xb);if(_0x587a6f===_0x513675)break;else _0x4b508d['push'](_0x4b508d['shift']());}catch(_0x1b35c1){_0x4b508d['push'](_0x4b508d['shift']());}}}(a0_0x25a6,0x8a069));function a0_0x48ec(_0x70a707,_0x4cb381){_0x70a707=_0x70a707-0x157;const _0x25a600=a0_0x25a6();let _0x48ec2b=_0x25a600[_0x70a707];if(a0_0x48ec['puKHIQ']===undefined){var _0x507c91=function(_0x51e40d){const _0x48a397='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x22d450='',_0x131fc0='';for(let _0x1a8da0=0x0,_0x47233f,_0x50056a,_0x5bc4c2=0x0;_0x50056a=_0x51e40d['charAt'](_0x5bc4c2++);~_0x50056a&&(_0x47233f=_0x1a8da0%0x4?_0x47233f*0x40+_0x50056a:_0x50056a,_0x1a8da0++%0x4)?_0x22d450+=String['fromCharCode'](0xff&_0x47233f>>(-0x2*_0x1a8da0&0x6)):0x0){_0x50056a=_0x48a397['indexOf'](_0x50056a);}for(let _0x35750d=0x0,_0x5e0297=_0x22d450['length'];_0x35750d<_0x5e0297;_0x35750d++){_0x131fc0+='%'+('00'+_0x22d450['charCodeAt'](_0x35750d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x131fc0);};a0_0x48ec['zEPTOD']=_0x507c91,a0_0x48ec['PilLaM']={},a0_0x48ec['puKHIQ']=!![];}const _0x1eccfe=_0x25a600[0x0],_0x897f0e=_0x70a707+_0x1eccfe,_0xc2b215=a0_0x48ec['PilLaM'][_0x897f0e];return!_0xc2b215?(_0x48ec2b=a0_0x48ec['zEPTOD'](_0x48ec2b),a0_0x48ec['PilLaM'][_0x897f0e]=_0x48ec2b):_0x48ec2b=_0xc2b215,_0x48ec2b;}const crypto=require('crypto'),redisClient=require('./redis-client'),{logger}=require('./logger'),idempotencyManager=require('./idempotency-manager'),ALLOWED_FORMATS=new Set(['text','yyyy','yyyymm',a0_0x4699fa(0x1d0)]),RESOURCE_REGEX=/^[A-Za-z0-9_-]{1,64}$/,PREFIX_REGEX=/^[A-Za-z0-9_-]{0,32}$/,SEPARATOR_FORBIDDEN=/:/,MAX_NUM_DIGITS=0xc,MIN_NUM_DIGITS=0x1,MAX_PIN_DIGITS=0xc,MIN_PIN_DIGITS=0x4,MAX_PATTERN_LENGTH=0x100,MAX_TTL=0x278d00,MAX_RETRY_LIMIT=0x64,MAX_IDEMPOTENCY_KEY_LENGTH=0x80,RESERVATION_TOKEN_REGEX=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,MIN_RESERVE_TTL=0xa,MAX_RESERVE_TTL=0x15180,DEFAULT_RESERVE_TTL=0x258,RESERVE_REAP_BATCH=0x40,CHARSET_DIGIT='0123456789',CHARSET_UPPER=a0_0x4699fa(0x218),CHARSET_LOWER='abcdefghijklmnopqrstuvwxyz',CHARSET_LETTERS=CHARSET_UPPER+CHARSET_LOWER,CHARSET_UPPER_ALNUM=CHARSET_UPPER+CHARSET_DIGIT,CHARSET_MIXED_ALNUM=CHARSET_UPPER+CHARSET_LOWER+CHARSET_DIGIT,CHARSET_HEX_UPPER='0123456789ABCDEF',CHARSET_HEX_LOWER='0123456789abcdef',PLACEHOLDER_MAP={'9':CHARSET_DIGIT,'N':CHARSET_DIGIT,'A':CHARSET_UPPER,'a':CHARSET_LOWER,'L':CHARSET_LETTERS,'X':CHARSET_UPPER_ALNUM,'x':CHARSET_MIXED_ALNUM,'H':CHARSET_HEX_UPPER,'h':CHARSET_HEX_LOWER},LUA_GENERATE_NUMBER='\x0aif\x20ARGV[1]\x20==\x20\x271\x27\x20then\x0a\x20\x20local\x20reused\x20=\x20redis.call(\x27ZPOPMIN\x27,\x20KEYS[2],\x201)\x0a\x20\x20if\x20#reused\x20>\x200\x20then\x0a\x20\x20\x20\x20return\x20{tonumber(reused[1]),\x201}\x0a\x20\x20end\x0aend\x0alocal\x20n\x20=\x20redis.call(\x27INCR\x27,\x20KEYS[1])\x0alocal\x20ttl\x20=\x20tonumber(ARGV[2])\x0aif\x20ttl\x20>\x200\x20and\x20n\x20==\x201\x20then\x0a\x20\x20redis.call(\x27EXPIRE\x27,\x20KEYS[1],\x20ttl)\x0aend\x0areturn\x20{n,\x200}\x0a',LUA_RELEASE_NUMBER='\x0aredis.call(\x27ZADD\x27,\x20KEYS[1],\x20ARGV[1],\x20ARGV[1])\x0alocal\x20ttl\x20=\x20tonumber(ARGV[2])\x0aif\x20ttl\x20>\x200\x20then\x0a\x20\x20redis.call(\x27EXPIRE\x27,\x20KEYS[1],\x20ttl)\x0aend\x0areturn\x201\x0a',LUA_RESERVE_NUMBER=a0_0x4699fa(0x1a3),LUA_CONFIRM_RESERVATION='\x0aif\x20redis.call(\x27EXISTS\x27,\x20KEYS[1])\x20==\x200\x20then\x0a\x20\x20redis.call(\x27ZREM\x27,\x20KEYS[2],\x20ARGV[1])\x0a\x20\x20return\x20{\x200\x20}\x0aend\x0alocal\x20h\x20=\x20redis.call(\x27HMGET\x27,\x20KEYS[1],\x20\x27counter\x27,\x20\x27value\x27,\x20\x27formatKey\x27,\x20\x27isReused\x27,\x20\x27createdAt\x27,\x20\x27expiresAt\x27)\x0aredis.call(\x27DEL\x27,\x20KEYS[1])\x0aredis.call(\x27ZREM\x27,\x20KEYS[2],\x20ARGV[1])\x0areturn\x20{\x201,\x20h[1],\x20h[2],\x20h[3],\x20h[4],\x20h[5],\x20h[6]\x20}\x0a',LUA_CANCEL_RESERVATION=a0_0x4699fa(0x1de),LUA_EXTEND_RESERVATION='\x0aif\x20redis.call(\x27EXISTS\x27,\x20KEYS[1])\x20==\x200\x20then\x0a\x20\x20redis.call(\x27ZREM\x27,\x20KEYS[2],\x20ARGV[1])\x0a\x20\x20return\x20{\x200\x20}\x0aend\x0alocal\x20h\x20=\x20redis.call(\x27HMGET\x27,\x20KEYS[1],\x20\x27expiresAt\x27,\x20\x27counter\x27,\x20\x27value\x27,\x20\x27formatKey\x27,\x20\x27isReused\x27,\x20\x27createdAt\x27)\x0alocal\x20prevExpiresAt\x20=\x20h[1]\x0alocal\x20newTtlMs\x20=\x20tonumber(ARGV[2])\x0alocal\x20newExpMs\x20=\x20tonumber(ARGV[3])\x0aredis.call(\x27PEXPIRE\x27,\x20KEYS[1],\x20newTtlMs)\x0aredis.call(\x27HSET\x27,\x20KEYS[1],\x20\x27expiresAt\x27,\x20ARGV[4])\x0aredis.call(\x27ZADD\x27,\x20KEYS[2],\x20newExpMs,\x20ARGV[1])\x0aredis.call(\x27EXPIRE\x27,\x20KEYS[2],\x20math.floor(newTtlMs\x20/\x201000)\x20+\x2060)\x0areturn\x20{\x201,\x20prevExpiresAt,\x20h[2],\x20h[3],\x20h[4],\x20h[5],\x20h[6]\x20}\x0a';class IdGeneratorError extends Error{constructor(_0x56d958,_0x55aa9b,_0x16581a=null){const _0xbdd0b2=a0_0x4699fa,_0x6cd12={'NVWtS':function(_0x544567,_0x1bd3d8){return _0x544567||_0x1bd3d8;}};super(_0x6cd12[_0xbdd0b2(0x240)](_0x55aa9b,_0x56d958)),this[_0xbdd0b2(0x187)]='IdGeneratorError',this[_0xbdd0b2(0x1f7)]=_0x56d958,this['details']=_0x16581a;}}class IdGenerator{constructor(){const _0x4828d8=a0_0x4699fa,_0x3f1232={'mGrMK':'4|10|8|1|5|0|2|6|3|11|7|9'},_0x87364d=_0x3f1232['mGrMK']['split']('|');let _0x33d098=0x0;while(!![]){switch(_0x87364d[_0x33d098++]){case'0':this['_defaultMaxRetry']=null;continue;case'1':this['_idemTTL']=null;continue;case'2':this['_defaultPinDigits']=null;continue;case'3':this['_defaultCodePattern']=null;continue;case'4':this[_0x4828d8(0x253)]=![];continue;case'5':this['_allowReset']=null;continue;case'6':this[_0x4828d8(0x1b2)]=null;continue;case'7':this['_reserveDefaultTTL']=null;continue;case'8':this['_keyPrefix']=null;continue;case'9':this['_reserveMaxTTL']=null;continue;case'10':this['_enabled']=null;continue;case'11':this['_counterTTLMap']=null;continue;}break;}}['_initConfig'](){const _0x49890f=a0_0x4699fa,_0x5d3040={'rlwjA':_0x49890f(0x25a),'rhLHL':'true','ZpQKM':function(_0x5ef272,_0x28b456,_0x474963){return _0x5ef272(_0x28b456,_0x474963);},'GtcWu':'9999-9999','QGzmg':'idgen_config_init'};this['_keyPrefix']=_0x5d3040[_0x49890f(0x200)],this[_0x49890f(0x1ae)]=process['env']['IDGEN_ENABLED']===_0x5d3040[_0x49890f(0x254)],this[_0x49890f(0x1ba)]=parseInt(process['env']['IDGEN_IDEM_TTL'],0xa)||0x258,this['_allowReset']=process['env']['IDGEN_ALLOW_RESET']===_0x5d3040['rhLHL'],this['_defaultMaxRetry']=parseInt(process['env'][_0x49890f(0x16b)],0xa)||0xa,this[_0x49890f(0x19c)]=_0x5d3040[_0x49890f(0x21d)](parseInt,process['env']['IDGEN_DEFAULT_PIN_DIGITS'],0xa)||0x6,this['_defaultSerialPattern']=process[_0x49890f(0x22c)]['IDGEN_DEFAULT_SERIAL_PATTERN']||'XXXX-XXXX-XXXX-XXXX',this['_defaultCodePattern']=process['env']['IDGEN_DEFAULT_CODE_PATTERN']||_0x5d3040[_0x49890f(0x23e)],this[_0x49890f(0x15a)]={'yyyymm':parseInt(process[_0x49890f(0x22c)]['IDGEN_COUNTER_TTL_MONTHLY'],0xa)||0x2a3000,'yyyymmdd':_0x5d3040[_0x49890f(0x21d)](parseInt,process['env']['IDGEN_COUNTER_TTL_DAILY'],0xa)||0x2a300},this['_reserveDefaultTTL']=parseInt(process[_0x49890f(0x22c)][_0x49890f(0x1ef)],0xa)||DEFAULT_RESERVE_TTL,this[_0x49890f(0x1a9)]=_0x5d3040['ZpQKM'](parseInt,process[_0x49890f(0x22c)][_0x49890f(0x1bf)],0xa)||MAX_RESERVE_TTL,this['_initialized']=!![],logger['info']({'event':_0x5d3040[_0x49890f(0x15e)],'enabled':this['_enabled'],'idemTTL':this['_idemTTL'],'allowReset':this['_allowReset'],'defaultMaxRetry':this['_defaultMaxRetry'],'defaultPinDigits':this['_defaultPinDigits'],'reserveDefaultTTL':this['_reserveDefaultTTL'],'reserveMaxTTL':this['_reserveMaxTTL']},_0x49890f(0x165)+this[_0x49890f(0x1ae)]);}[a0_0x4699fa(0x228)](){const _0x25a4b9=a0_0x4699fa;if(!this[_0x25a4b9(0x253)])this['_initConfig']();}get['enabled'](){return this['_ensureInitialized'](),this['_enabled'];}get['keyPrefix'](){const _0x39a346=a0_0x4699fa;return this[_0x39a346(0x228)](),this[_0x39a346(0x19f)];}get['idemTTL'](){const _0x169927=a0_0x4699fa;return this['_ensureInitialized'](),this[_0x169927(0x1ba)];}get['allowReset'](){const _0x456c3d=a0_0x4699fa;return this['_ensureInitialized'](),this[_0x456c3d(0x1c7)];}get['defaultMaxRetry'](){return this['_ensureInitialized'](),this['_defaultMaxRetry'];}get[a0_0x4699fa(0x21b)](){const _0x3a27ae=a0_0x4699fa;return this[_0x3a27ae(0x228)](),this[_0x3a27ae(0x19c)];}get[a0_0x4699fa(0x257)](){const _0x34ed66=a0_0x4699fa;return this['_ensureInitialized'](),this[_0x34ed66(0x1b2)];}get[a0_0x4699fa(0x267)](){return this['_ensureInitialized'](),this['_defaultCodePattern'];}get['reserveDefaultTTL'](){const _0x2562c6=a0_0x4699fa;return this[_0x2562c6(0x228)](),this[_0x2562c6(0x1d4)];}get[a0_0x4699fa(0x230)](){const _0x195147=a0_0x4699fa;return this['_ensureInitialized'](),this[_0x195147(0x1a9)];}['isEnabled'](){const _0x37b6f1=a0_0x4699fa;return this[_0x37b6f1(0x264)];}['_validateResource'](_0x3b8f8e){const _0x56250c=a0_0x4699fa;if(typeof _0x3b8f8e!==_0x56250c(0x1e4)||!RESOURCE_REGEX[_0x56250c(0x16d)](_0x3b8f8e))throw new IdGeneratorError(_0x56250c(0x192),_0x56250c(0x23a)+RESOURCE_REGEX+'\x20(got:\x20'+JSON['stringify'](_0x3b8f8e)+')');}[a0_0x4699fa(0x25b)](_0x9056a3){const _0x3547a4=a0_0x4699fa,_0x3162a3={'mFANe':_0x3547a4(0x1e4),'jiMHl':function(_0x2a25b4,_0x29f545){return _0x2a25b4<_0x29f545;},'yPwol':'IDGEN_INVALID_NUM_DIGITS','kUfvr':function(_0x567123,_0x11643b){return _0x567123==_0x11643b;},'hcJbJ':function(_0x3f733a,_0x48f3ec){return _0x3f733a!==_0x48f3ec;},'Vvaiu':'IDGEN_INVALID_PREFIX','GxnRb':function(_0x46c4bc,_0x2743ea){return _0x46c4bc!==_0x2743ea;},'xaFqk':_0x3547a4(0x192),'exRNx':function(_0x1b21f2,_0x83b15e){return _0x1b21f2===_0x83b15e;}},{resource:_0x2cbdf2,format:_0xc8be3b,prefix:_0x11de6f,separator:_0x37c07d,numDigits:_0x2ab674,reuseDelete:_0x4ad915}=_0x9056a3;this[_0x3547a4(0x1b5)](_0x2cbdf2);const _0x5c76bb=typeof _0xc8be3b===_0x3162a3['mFANe']?_0xc8be3b['toLowerCase']():'';if(!ALLOWED_FORMATS['has'](_0x5c76bb))throw new IdGeneratorError('IDGEN_INVALID_FORMAT',_0x3547a4(0x194)+[...ALLOWED_FORMATS][_0x3547a4(0x21c)](',\x20')+'\x20(got:\x20'+_0xc8be3b+')');if(!Number['isInteger'](_0x2ab674)||_0x3162a3['jiMHl'](_0x2ab674,MIN_NUM_DIGITS)||_0x2ab674>MAX_NUM_DIGITS)throw new IdGeneratorError(_0x3162a3['yPwol'],_0x3547a4(0x239)+MIN_NUM_DIGITS+'-'+MAX_NUM_DIGITS+'\x20(got:\x20'+_0x2ab674+')');const _0x46879a=_0x3162a3[_0x3547a4(0x161)](_0x11de6f,null)?'':_0x11de6f;if(_0x3162a3['hcJbJ'](typeof _0x46879a,_0x3162a3['mFANe'])||!PREFIX_REGEX['test'](_0x46879a))throw new IdGeneratorError(_0x3162a3[_0x3547a4(0x171)],_0x3547a4(0x237)+PREFIX_REGEX+_0x3547a4(0x27a)+JSON[_0x3547a4(0x238)](_0x11de6f)+')');const _0x4a6d30=_0x37c07d==null?'':_0x37c07d;if(_0x3162a3['GxnRb'](typeof _0x4a6d30,_0x3547a4(0x1e4))||_0x4a6d30[_0x3547a4(0x1ab)]>0x3||SEPARATOR_FORBIDDEN[_0x3547a4(0x16d)](_0x4a6d30))throw new IdGeneratorError('IDGEN_INVALID_SEPARATOR',_0x3547a4(0x1dc)+JSON['stringify'](_0x37c07d)+')');if(_0x4ad915!=null&&typeof _0x4ad915!==_0x3547a4(0x24d))throw new IdGeneratorError(_0x3162a3['xaFqk'],'Invalid\x20reuseDelete:\x20must\x20be\x20boolean\x20(got:\x20'+typeof _0x4ad915+')');return{'resource':_0x2cbdf2,'format':_0x5c76bb,'prefix':_0x46879a,'separator':_0x4a6d30,'numDigits':_0x2ab674,'reuseDelete':_0x3162a3[_0x3547a4(0x15b)](_0x4ad915,!![])};}[a0_0x4699fa(0x26e)](_0x3197fb){const _0x1757dd=a0_0x4699fa,_0x1c7f99={'rCmHA':function(_0x4c76d9,_0x7024a0){return _0x4c76d9!==_0x7024a0;},'Ptmuf':'string','LXVnS':'IDGEN_INVALID_PATTERN'};if(_0x1c7f99['rCmHA'](typeof _0x3197fb,_0x1c7f99['Ptmuf'])||_0x3197fb['length']===0x0||_0x3197fb[_0x1757dd(0x1ab)]>MAX_PATTERN_LENGTH)throw new IdGeneratorError(_0x1c7f99['LXVnS'],_0x1757dd(0x1f5)+MAX_PATTERN_LENGTH+_0x1757dd(0x246)+(_0x3197fb&&_0x3197fb[_0x1757dd(0x1ab)])+')');let _0x19231a=![];for(const _0x4722ad of _0x3197fb){if(PLACEHOLDER_MAP[_0x4722ad]){_0x19231a=!![];break;}}if(!_0x19231a)throw new IdGeneratorError(_0x1c7f99['LXVnS'],_0x1757dd(0x19e));}[a0_0x4699fa(0x1d2)](_0x5c77a5){const _0x16f00a=a0_0x4699fa,_0x131182={'AcKdi':function(_0x465000,_0x133b4e){return _0x465000==_0x133b4e;},'IzVfb':_0x16f00a(0x229)};if(_0x131182[_0x16f00a(0x271)](_0x5c77a5,null))return undefined;if(!Number['isInteger'](_0x5c77a5)||_0x5c77a5<0x1||_0x5c77a5>MAX_TTL)throw new IdGeneratorError(_0x131182['IzVfb'],_0x16f00a(0x1df)+MAX_TTL+_0x16f00a(0x1ed)+_0x5c77a5+')');return _0x5c77a5;}[a0_0x4699fa(0x22e)](_0x3b17a9){const _0x2ac408=a0_0x4699fa,_0x2a8fba={'SaOkO':function(_0x2740d4,_0x5146e0){return _0x2740d4<_0x5146e0;}};if(_0x3b17a9==null)return this[_0x2ac408(0x25d)];if(!Number[_0x2ac408(0x244)](_0x3b17a9)||_0x2a8fba[_0x2ac408(0x17b)](_0x3b17a9,0x1)||_0x3b17a9>MAX_RETRY_LIMIT)throw new IdGeneratorError(_0x2ac408(0x242),_0x2ac408(0x1ca)+MAX_RETRY_LIMIT+'\x20(got:\x20'+_0x3b17a9+')');return _0x3b17a9;}['_validateIdempotencyKey'](_0x385aad){const _0x2db34f=a0_0x4699fa,_0x9e5a15={'SkqdO':function(_0x359332,_0x581211){return _0x359332==_0x581211;},'hUtvR':function(_0x38edbc,_0x3373ec){return _0x38edbc!==_0x3373ec;},'GHzLF':'string','JXFlz':function(_0x17d1d7,_0x347064){return _0x17d1d7>_0x347064;},'DKgTm':'IDGEN_INVALID_RESOURCE'};if(_0x9e5a15[_0x2db34f(0x1ad)](_0x385aad,null))return undefined;if(_0x9e5a15['hUtvR'](typeof _0x385aad,_0x9e5a15[_0x2db34f(0x1cf)])||_0x385aad['length']===0x0||_0x9e5a15[_0x2db34f(0x1a5)](_0x385aad[_0x2db34f(0x1ab)],MAX_IDEMPOTENCY_KEY_LENGTH))throw new IdGeneratorError(_0x9e5a15['DKgTm'],_0x2db34f(0x159)+MAX_IDEMPOTENCY_KEY_LENGTH+_0x2db34f(0x18d));return _0x385aad;}[a0_0x4699fa(0x191)](_0xcaef92){const _0x428563=a0_0x4699fa,_0x30157b={'FvTAq':function(_0x4b7d89,_0x90cac5){return _0x4b7d89<_0x90cac5;},'oMLdJ':function(_0x1ccd4b,_0x33e58b){return _0x1ccd4b>_0x33e58b;}};if(_0xcaef92==null)return this['reserveDefaultTTL'];if(!Number[_0x428563(0x244)](_0xcaef92)||_0x30157b[_0x428563(0x1e7)](_0xcaef92,MIN_RESERVE_TTL)||_0x30157b['oMLdJ'](_0xcaef92,this['reserveMaxTTL']))throw new IdGeneratorError('IDGEN_INVALID_RESERVE_TTL','Invalid\x20reservation\x20ttl:\x20must\x20be\x20integer\x20'+MIN_RESERVE_TTL+'-'+this[_0x428563(0x230)]+'\x20seconds\x20(got:\x20'+_0xcaef92+')');return _0xcaef92;}['_validateReservationToken'](_0x4df318){const _0x42ce99=a0_0x4699fa,_0x3b8ce3={'dONyP':'IDGEN_INVALID_TOKEN'};if(typeof _0x4df318!=='string'||!RESERVATION_TOKEN_REGEX['test'](_0x4df318))throw new IdGeneratorError(_0x3b8ce3['dONyP'],_0x42ce99(0x202)+JSON[_0x42ce99(0x238)](_0x4df318)+')');return _0x4df318;}['_pad2'](_0x54cf8b){return String(_0x54cf8b)['padStart'](0x2,'0');}['_buildFormatKey'](_0x2f8a76,_0x4367d7,_0x52bbbd=new Date()){const _0x1e5320=a0_0x4699fa,_0x19ab95={'qftgV':function(_0x32282f,_0x4a249b){return _0x32282f+_0x4a249b;},'LjuoS':function(_0xaa6297,_0x490f0b){return _0xaa6297||_0x490f0b;},'fwkoU':_0x1e5320(0x219),'dbjPV':_0x1e5320(0x1d0),'CQNrm':'IDGEN_INVALID_FORMAT'},_0x4ddc3a=_0x52bbbd['getFullYear'](),_0x5ab96f=this[_0x1e5320(0x245)](_0x19ab95['qftgV'](_0x52bbbd[_0x1e5320(0x24c)](),0x1)),_0x9a899b=this[_0x1e5320(0x245)](_0x52bbbd[_0x1e5320(0x259)]()),_0x155321=_0x19ab95['LjuoS'](_0x4367d7,'_');let _0x13bdd6,_0x5db65c='';switch(_0x2f8a76){case'text':_0x13bdd6=_0x155321+'_text';break;case'yyyy':_0x5db65c=''+_0x4ddc3a,_0x13bdd6=_0x155321+_0x1e5320(0x16c)+_0x5db65c;break;case _0x19ab95[_0x1e5320(0x180)]:_0x5db65c=''+_0x4ddc3a+_0x5ab96f,_0x13bdd6=_0x155321+'_yyyymm_'+_0x5db65c;break;case _0x19ab95[_0x1e5320(0x22b)]:_0x5db65c=''+_0x4ddc3a+_0x5ab96f+_0x9a899b,_0x13bdd6=_0x155321+'_yyyymmdd_'+_0x5db65c;break;default:throw new IdGeneratorError(_0x19ab95['CQNrm'],'Unknown\x20format:\x20'+_0x2f8a76);}return{'formatKey':_0x13bdd6,'datePrefix':_0x5db65c};}['_buildSeqKey'](_0xc3378f,_0x3a464e){const _0x3de8a5=a0_0x4699fa;return this[_0x3de8a5(0x16e)]+'seq:'+_0xc3378f+':'+_0x3a464e;}[a0_0x4699fa(0x1c6)](_0x50fbf1,_0x1f9509){const _0x129a94=a0_0x4699fa;return this[_0x129a94(0x16e)]+_0x129a94(0x190)+_0x50fbf1+':'+_0x1f9509;}['_buildMetaKey'](_0x52d21c,_0x273d0c){const _0x22f1ad=a0_0x4699fa;return this['keyPrefix']+_0x22f1ad(0x1e3)+_0x52d21c+':'+_0x273d0c;}[a0_0x4699fa(0x1a6)](_0x106610){return this['keyPrefix']+'issued:'+_0x106610;}['_buildActiveKey'](_0x1c0f24,_0x3dd4d8){return this['keyPrefix']+'active:'+_0x1c0f24+':'+_0x3dd4d8;}['_buildReservationKey'](_0x24b4bb){const _0x3bd847=a0_0x4699fa;return this['keyPrefix']+_0x3bd847(0x157)+_0x24b4bb;}['_buildReservationIndexKey'](_0x2f6804,_0x3a1af7){const _0x5ed344=a0_0x4699fa;return this[_0x5ed344(0x16e)]+'rsv_idx:'+_0x2f6804+':'+_0x3a1af7;}[a0_0x4699fa(0x1b4)](){const _0x205ddd=a0_0x4699fa;return this[_0x205ddd(0x16e)]+_0x205ddd(0x157);}[a0_0x4699fa(0x25e)](_0x2cd3d0,_0x3f406b,_0x333b14,_0x1a038f){const _0x16379d=a0_0x4699fa,_0x350e5b={'KzHhz':_0x16379d(0x1a8)};if(_0x333b14)return idempotencyManager[_0x16379d(0x189)]('idgen',_0x2cd3d0,_0x3f406b+':'+_0x333b14+':'+_0x1a038f);return idempotencyManager[_0x16379d(0x189)](_0x350e5b[_0x16379d(0x1e0)],_0x2cd3d0,_0x3f406b+':'+_0x1a038f);}['_getCounterTTL'](_0x1a92ab){return this['_counterTTLMap'][_0x1a92ab]||0x0;}[a0_0x4699fa(0x183)]({format:_0x4d53c1,prefix:_0x3ded8d,datePrefix:_0xd16924,separator:_0x403230,numDigits:_0x4f16f4,counterInt:_0x2e444a}){const _0x1b4792=a0_0x4699fa,_0x749cb8={'otTwX':_0x1b4792(0x1a7)},_0x177c2e=Math['pow'](0xa,_0x4f16f4)-0x1;if(_0x2e444a>_0x177c2e)throw new IdGeneratorError(_0x1b4792(0x258),_0x1b4792(0x1db)+_0x2e444a+'\x20exceeds\x20'+_0x4f16f4+'-digit\x20capacity\x20('+_0x177c2e+_0x1b4792(0x1b8),{'counterInt':_0x2e444a,'numDigits':_0x4f16f4,'max':_0x177c2e});const _0x4641e3=String(_0x2e444a)['padStart'](_0x4f16f4,'0');if(_0x4d53c1===_0x749cb8['otTwX'])return _0x3ded8d?''+_0x3ded8d+_0x403230+_0x4641e3:_0x4641e3;return _0x3ded8d?''+_0x3ded8d+_0x403230+_0xd16924+_0x403230+_0x4641e3:''+_0xd16924+_0x403230+_0x4641e3;}['_parseNumber']({format:_0x469bba,prefix:_0x52ea20,separator:_0x3723a6,numDigits:_0x2eeb91,number:_0x35ac34}){const _0x210652=a0_0x4699fa,_0x6ed6b6={'umDrP':function(_0x5171ce,_0x2d2508){return _0x5171ce!==_0x2d2508;},'zSlVz':'string','nJzfT':'IDGEN_INVALID_NUMBER','gfwrH':function(_0x17cc95,_0x503027){return _0x17cc95||_0x503027;},'mznBA':function(_0x50975e,_0x5382b3){return _0x50975e===_0x5382b3;},'BziTp':function(_0x207f86,_0x22e868){return _0x207f86!==_0x22e868;},'zlJxm':function(_0x532264,_0x53716f){return _0x532264!==_0x53716f;},'BufNT':_0x210652(0x219)};if(_0x6ed6b6[_0x210652(0x1e2)](typeof _0x35ac34,_0x6ed6b6[_0x210652(0x23b)])||_0x35ac34['length']===0x0)throw new IdGeneratorError(_0x6ed6b6[_0x210652(0x1f4)],_0x210652(0x16a));const _0x2994ce=_0x6ed6b6['gfwrH'](_0x3723a6,''),_0x4e6797=_0x6ed6b6[_0x210652(0x20c)](_0x2994ce,'')?[_0x35ac34]:_0x35ac34['split'](_0x2994ce);let _0x4fdaee='',_0x269a7c;if(_0x469bba===_0x210652(0x1a7)){if(_0x52ea20){if(_0x4e6797[_0x210652(0x1ab)]!==0x2||_0x4e6797[0x0]!==_0x52ea20)throw new IdGeneratorError(_0x6ed6b6['nJzfT'],_0x210652(0x1a2)+_0x2994ce+_0x210652(0x167)+_0x35ac34+')');_0x269a7c=_0x4e6797[0x1];}else{if(_0x6ed6b6['BziTp'](_0x4e6797['length'],0x1))throw new IdGeneratorError(_0x6ed6b6[_0x210652(0x1f4)],'Number\x20does\x20not\x20match\x20expected\x20text\x20format\x20(got:\x20'+_0x35ac34+')');_0x269a7c=_0x4e6797[0x0];}}else{const _0x21b5e3=_0x52ea20?0x3:0x2;if(_0x6ed6b6[_0x210652(0x1b6)](_0x4e6797['length'],_0x21b5e3))throw new IdGeneratorError('IDGEN_INVALID_NUMBER','Number\x20does\x20not\x20match\x20expected\x20format\x20(got:\x20'+_0x35ac34+',\x20expected\x20'+_0x21b5e3+_0x210652(0x18c));let _0x24bcbd=0x0;if(_0x52ea20){if(_0x6ed6b6[_0x210652(0x1b6)](_0x4e6797[_0x24bcbd],_0x52ea20))throw new IdGeneratorError(_0x6ed6b6['nJzfT'],'Number\x20prefix\x20mismatch:\x20expected\x20'+_0x52ea20+_0x210652(0x17c)+_0x4e6797[_0x24bcbd]);_0x24bcbd++;}_0x4fdaee=_0x4e6797[_0x24bcbd++];const _0x34505c=_0x469bba==='yyyy'?/^\d{4}$/:_0x469bba===_0x6ed6b6[_0x210652(0x26b)]?/^\d{6}$/:/^\d{8}$/;if(!_0x34505c['test'](_0x4fdaee))throw new IdGeneratorError(_0x210652(0x193),'Number\x20datePrefix\x20invalid\x20for\x20format\x20'+_0x469bba+':\x20'+_0x4fdaee);_0x269a7c=_0x4e6797[_0x24bcbd];}if(!new RegExp(_0x210652(0x235)+_0x2eeb91+'}$')['test'](_0x269a7c))throw new IdGeneratorError(_0x6ed6b6['nJzfT'],_0x210652(0x272)+_0x2eeb91+'\x20digits\x20(got:\x20'+_0x269a7c+')');const _0x2cf10f=parseInt(_0x269a7c,0xa),_0x593da4=_0x6ed6b6[_0x210652(0x188)](_0x52ea20,'_');let _0x18292b;return _0x469bba==='text'?_0x18292b=_0x593da4+_0x210652(0x275):_0x18292b=_0x593da4+'_'+_0x469bba+'_'+_0x4fdaee,{'formatKey':_0x18292b,'counterInt':_0x2cf10f,'datePrefix':_0x4fdaee};}['_generateFromPattern'](_0x59489e){let _0x21eadd='';for(const _0x5581f4 of _0x59489e){const _0x1d2b8a=PLACEHOLDER_MAP[_0x5581f4];if(_0x1d2b8a){const _0x221bad=crypto['randomInt'](0x0,_0x1d2b8a['length']);_0x21eadd+=_0x1d2b8a[_0x221bad];}else _0x21eadd+=_0x5581f4;}return _0x21eadd;}async['_retrieveIdemCache'](_0x514857){const _0x343f9f=a0_0x4699fa,_0x2a1213={'xOAPe':_0x343f9f(0x1f0),'wBqbI':_0x343f9f(0x221),'EqVkI':'Idempotency\x20retrieve\x20error'};if(!_0x514857)return null;try{const _0x308ba6=redisClient[_0x343f9f(0x158)](),_0x2097a9=await _0x308ba6[_0x343f9f(0x1ac)](_0x514857);if(_0x2097a9)return logger['info']({'event':_0x343f9f(0x1cb),'key':_0x514857},_0x2a1213[_0x343f9f(0x214)]),JSON[_0x343f9f(0x20d)](_0x2097a9);return null;}catch(_0x23b3e2){return logger[_0x343f9f(0x277)]({'event':_0x2a1213[_0x343f9f(0x273)],'error':_0x23b3e2[_0x343f9f(0x26d)]},_0x2a1213['EqVkI']),null;}}async[a0_0x4699fa(0x269)](_0x82a7c1,_0xb69081){const _0x398b61=a0_0x4699fa,_0x2d44ba={'nmgPL':'idgen_idem_store_error','HnWFb':_0x398b61(0x24b)};if(!_0x82a7c1)return;try{const _0x5bebbe=redisClient[_0x398b61(0x158)]();await _0x5bebbe['setex'](_0x82a7c1,this['idemTTL'],JSON['stringify'](_0xb69081));}catch(_0x50a36c){logger['warn']({'event':_0x2d44ba['nmgPL'],'error':_0x50a36c['message']},_0x2d44ba['HnWFb']);}}async['_storeIdemCacheNX'](_0x544700,_0x4ce75c){const _0x207ce8=a0_0x4699fa,_0x1c26f2={'hDvTO':function(_0x3e325a,_0x2a892b){return _0x3e325a===_0x2a892b;},'mdTxo':_0x207ce8(0x1b7)};if(!_0x544700)return{'stored':!![],'winnerResult':null};try{const _0x8d100=redisClient['getClient'](),_0x53fadd=JSON['stringify'](_0x4ce75c),_0x439df0=await _0x8d100['set'](_0x544700,_0x53fadd,'EX',this['idemTTL'],'NX');if(_0x1c26f2['hDvTO'](_0x439df0,'OK'))return{'stored':!![],'winnerResult':null};const _0x504c95=await _0x8d100[_0x207ce8(0x1ac)](_0x544700);if(_0x504c95)return{'stored':![],'winnerResult':JSON[_0x207ce8(0x20d)](_0x504c95)};return logger[_0x207ce8(0x277)]({'event':_0x207ce8(0x255),'key':_0x544700},'SET\x20NX\x20failed\x20but\x20cache\x20GET\x20returned\x20empty\x20—\x20falling\x20back\x20to\x20own\x20result'),{'stored':!![],'winnerResult':null};}catch(_0x5a4131){return logger[_0x207ce8(0x277)]({'event':_0x1c26f2['mdTxo'],'error':_0x5a4131[_0x207ce8(0x26d)]},'Idempotency\x20SET\x20NX\x20error'),{'stored':!![],'winnerResult':null};}}async['_undoRandomReservation'](_0x327daa,_0x5c8d38,_0x265f40){const _0xd0fcde=a0_0x4699fa,_0x271dd0={'TsPjW':'idgen_random_undo_error'};try{const _0x40fc79=redisClient['getClient']();if(_0x265f40){const _0x189523=this[_0xd0fcde(0x181)](_0x327daa,_0x5c8d38);await _0x40fc79['del'](_0x189523);}else{const _0x3d734f=this[_0xd0fcde(0x1a6)](_0x327daa);await _0x40fc79[_0xd0fcde(0x184)](_0x3d734f,_0x5c8d38);}}catch(_0x21a59d){logger['warn']({'event':_0x271dd0[_0xd0fcde(0x170)],'error':_0x21a59d[_0xd0fcde(0x26d)]},_0xd0fcde(0x1af));}}async[a0_0x4699fa(0x1d1)](_0x52b376,_0x15f233,_0x38eec9,_0x35e376=0x0){const _0x4bc899=a0_0x4699fa,_0xc64ec1={'IxTId':function(_0x1757f4,_0x151375){return _0x1757f4>_0x151375;},'CENdb':'idgen_meta_update_error'};try{const _0x557d00=redisClient['getClient'](),_0x22ed35=this['_buildMetaKey'](_0x52b376,_0x15f233),_0x5ea069=[];for(const [_0x2aa0ce,_0x5bbf88]of Object['entries'](_0x38eec9)){_0x5ea069[_0x4bc899(0x26f)](_0x2aa0ce,String(_0x5bbf88));}if(_0x5ea069['length']>0x0){await _0x557d00[_0x4bc899(0x231)](_0x22ed35,..._0x5ea069);if(_0xc64ec1['IxTId'](_0x35e376,0x0))await _0x557d00[_0x4bc899(0x25f)](_0x22ed35,_0x35e376);}}catch(_0x477f0f){logger['warn']({'event':_0xc64ec1['CENdb'],'error':_0x477f0f[_0x4bc899(0x26d)]},_0x4bc899(0x268));}}async[a0_0x4699fa(0x1fc)](_0x38d642){const _0x344571=a0_0x4699fa,_0x1d6bbc={'ixepX':function(_0x4d6159,_0x20b03d){return _0x4d6159(_0x20b03d);},'Yufng':_0x344571(0x251)};if(!this[_0x344571(0x264)])throw new IdGeneratorError(_0x344571(0x1ce),'ID\x20Generator\x20is\x20disabled\x20(set\x20IDGEN_ENABLED=true)');const _0xac235e=this['_validateNumberParams'](_0x38d642),_0x1c8326=this[_0x344571(0x222)](_0x38d642[_0x344571(0x1c0)]),{resource:_0x25bb5b,format:_0x12292d,prefix:_0x250820,separator:_0x47acf2,numDigits:_0x57da81,reuseDelete:_0x3ff1ec}=_0xac235e,{formatKey:_0x5afd38,datePrefix:_0x5ecece}=this['_buildFormatKey'](_0x12292d,_0x250820),_0x458cbb=this['_buildSeqKey'](_0x25bb5b,_0x5afd38),_0x5288d=this[_0x344571(0x1c6)](_0x25bb5b,_0x5afd38),_0x2badb7=this['_getCounterTTL'](_0x12292d);let _0x1c371f=null;if(_0x1c8326){_0x1c371f=this['_buildIdemKey'](_0x344571(0x1fc),_0x25bb5b,_0x5afd38,_0x1c8326);const _0x5f5baf=await this[_0x344571(0x209)](_0x1c371f);if(_0x5f5baf)return _0x5f5baf;}const _0x433268=redisClient['getClient'](),_0x5e33e8=await _0x433268['eval'](LUA_GENERATE_NUMBER,0x2,_0x458cbb,_0x5288d,_0x3ff1ec?'1':'0',String(_0x2badb7)),_0xcc5dbe=_0x5e33e8[0x0],_0x4747ae=_0x5e33e8[0x1]===0x1,_0x84aad3=this['_formatNumber']({'format':_0x12292d,'prefix':_0x250820,'datePrefix':_0x5ecece,'separator':_0x47acf2,'numDigits':_0x57da81,'counterInt':_0xcc5dbe}),_0x175294={'value':_0x84aad3,'counter':_0xcc5dbe,'resource':_0x25bb5b,'formatKey':_0x5afd38,'isReused':_0x4747ae,'generatedAt':new Date()['toISOString']()},_0x31bc8f=await this[_0x344571(0x21e)](_0x1c371f,_0x175294);if(!_0x31bc8f['stored']){try{await _0x433268['eval'](LUA_RELEASE_NUMBER,0x1,_0x5288d,_0x1d6bbc[_0x344571(0x1f8)](String,_0xcc5dbe),String(_0x2badb7));}catch(_0x50ae6d){logger['warn']({'event':_0x344571(0x1e8),'error':_0x50ae6d['message'],'resource':_0x25bb5b,'formatKey':_0x5afd38,'counterInt':_0xcc5dbe},_0x1d6bbc['Yufng']);}return logger[_0x344571(0x1eb)]({'event':'idgen_number_idem_loser','resource':_0x25bb5b,'formatKey':_0x5afd38,'counter':_0xcc5dbe},'ID\x20Generator\x20number\x20idem\x20race\x20lost,\x20returning\x20winner\x20envelope'),_0x31bc8f[_0x344571(0x18e)];}return this['_updateMeta'](_0x25bb5b,_0x5afd38,{'lastValue':_0x84aad3,'lastCounter':_0xcc5dbe,'lastIsReused':_0x4747ae,'lastGeneratedAt':_0x175294['generatedAt']},_0x2badb7),logger[_0x344571(0x1eb)]({'event':'idgen_number_generated','resource':_0x25bb5b,'formatKey':_0x5afd38,'counter':_0xcc5dbe,'isReused':_0x4747ae},'ID\x20Generator\x20number:\x20'+_0x84aad3),_0x175294;}async[a0_0x4699fa(0x225)](_0x4accce){const _0x357b13=a0_0x4699fa,_0x1ee32b={'eKqaf':'IDGEN_DISABLED','JODHI':'string','nsdIv':_0x357b13(0x193),'QBlbY':_0x357b13(0x1a7),'PdWZn':_0x357b13(0x1bb),'zwTAp':function(_0x53e474,_0x4837bc){return _0x53e474(_0x4837bc);},'GIhKO':function(_0x5bfddb,_0x1d8165){return _0x5bfddb(_0x1d8165);}};if(!this[_0x357b13(0x264)])throw new IdGeneratorError(_0x1ee32b[_0x357b13(0x226)],_0x357b13(0x19b));let _0x48e7c1,_0x2dd157,_0x21a770,_0x2570de;const _0x38b161=this['_validateIdempotencyKey'](_0x4accce['idempotencyKey']);if(_0x4accce['counterInt']!==undefined&&_0x4accce['counterInt']!==null){this[_0x357b13(0x1b5)](_0x4accce['resource']),_0x48e7c1=_0x4accce[_0x357b13(0x15d)];if(typeof _0x4accce[_0x357b13(0x223)]!==_0x1ee32b['JODHI']||_0x4accce['formatKey'][_0x357b13(0x1ab)]===0x0)throw new IdGeneratorError(_0x1ee32b[_0x357b13(0x172)],_0x357b13(0x252));_0x2dd157=_0x4accce['formatKey'];if(!Number['isInteger'](_0x4accce['counterInt'])||_0x4accce[_0x357b13(0x168)]<0x1)throw new IdGeneratorError(_0x1ee32b[_0x357b13(0x172)],'counterInt\x20must\x20be\x20positive\x20integer\x20(got:\x20'+_0x4accce[_0x357b13(0x168)]+')');_0x21a770=_0x4accce[_0x357b13(0x168)];const _0x1bb161=_0x2dd157[_0x357b13(0x196)](/_(text|yyyy|yyyymm|yyyymmdd)(?:_|$)/);_0x2570de=_0x1bb161?_0x1bb161[0x1]:_0x1ee32b['QBlbY'];}else{const _0xb86e42=this[_0x357b13(0x25b)](_0x4accce),_0x312ad1=this[_0x357b13(0x176)]({'format':_0xb86e42['format'],'prefix':_0xb86e42['prefix'],'separator':_0xb86e42['separator'],'numDigits':_0xb86e42['numDigits'],'number':_0x4accce['number']});_0x48e7c1=_0xb86e42[_0x357b13(0x15d)],_0x2dd157=_0x312ad1[_0x357b13(0x223)],_0x21a770=_0x312ad1[_0x357b13(0x168)],_0x2570de=_0xb86e42['format'];}const _0x2abbab=this['_buildReuseKey'](_0x48e7c1,_0x2dd157),_0x21a868=this['_getCounterTTL'](_0x2570de);let _0x5d5c3e=null;if(_0x38b161){_0x5d5c3e=this['_buildIdemKey'](_0x1ee32b[_0x357b13(0x248)],_0x48e7c1,_0x2dd157,_0x38b161);const _0x23045b=await this[_0x357b13(0x209)](_0x5d5c3e);if(_0x23045b)return _0x23045b;}const _0x4b9941=redisClient['getClient']();await _0x4b9941[_0x357b13(0x1fb)](LUA_RELEASE_NUMBER,0x1,_0x2abbab,_0x1ee32b['zwTAp'](String,_0x21a770),_0x1ee32b[_0x357b13(0x217)](String,_0x21a868));const _0x445da3={'released':!![],'resource':_0x48e7c1,'formatKey':_0x2dd157,'counter':_0x21a770,'releasedAt':new Date()[_0x357b13(0x23d)]()};return await this[_0x357b13(0x269)](_0x5d5c3e,_0x445da3),this[_0x357b13(0x1d1)](_0x48e7c1,_0x2dd157,{'lastReleasedCounter':_0x21a770,'lastReleasedAt':_0x445da3[_0x357b13(0x1f2)]},_0x21a868),logger['info']({'event':_0x357b13(0x224),'resource':_0x48e7c1,'formatKey':_0x2dd157,'counter':_0x21a770},'ID\x20Generator\x20number\x20released:\x20'+_0x21a770),_0x445da3;}async['reserveNumber'](_0x20fb1f){const _0x591f9a=a0_0x4699fa,_0x1bb83e={'Sdukt':_0x591f9a(0x1ce),'WtDdW':'ID\x20Generator\x20is\x20disabled\x20(set\x20IDGEN_ENABLED=true)','PlrVN':_0x591f9a(0x163),'rlgJr':function(_0x28b340,_0x58bed2){return _0x28b340+_0x58bed2;},'MfbeU':function(_0x101287,_0x2d2d58){return _0x101287*_0x2d2d58;},'SIUUZ':'formatKey','eGDiP':function(_0x1519fe,_0x243eeb){return _0x1519fe(_0x243eeb);},'csIxa':_0x591f9a(0x182),'vmszY':_0x591f9a(0x205),'dfQwO':_0x591f9a(0x234),'mssob':'idemKey','rxoil':function(_0x2029bc,_0x38f633){return _0x2029bc(_0x38f633);},'EXXiM':function(_0x25db41,_0x140db5){return _0x25db41(_0x140db5);},'GPXgo':function(_0x3f07be,_0x2ef78f){return _0x3f07be===_0x2ef78f;},'uaCsc':_0x591f9a(0x1cc),'GBEHF':'value','rDYjT':'idgen_reserve_value_persist_error','PryMy':_0x591f9a(0x207),'NADcN':'Failed\x20to\x20cancel\x20reservation\x20for\x20idempotency\x20loser','RVFxg':_0x591f9a(0x262)};if(!this['enabled'])throw new IdGeneratorError(_0x1bb83e[_0x591f9a(0x20a)],_0x1bb83e['WtDdW']);const _0x55edac=this[_0x591f9a(0x25b)](_0x20fb1f),_0x2ecf08=this['_validateReserveTTL'](_0x20fb1f[_0x591f9a(0x249)]),_0x3ba162=this[_0x591f9a(0x222)](_0x20fb1f['idempotencyKey']),{resource:_0x5c48b4,format:_0x3efede,prefix:_0x11bfb4,separator:_0x5acc6b,numDigits:_0x297117,reuseDelete:_0x3956fe}=_0x55edac,{formatKey:_0xbb131d,datePrefix:_0x139bce}=this['_buildFormatKey'](_0x3efede,_0x11bfb4),_0x2d25cd=this[_0x591f9a(0x1c1)](_0x5c48b4,_0xbb131d),_0x13e5ef=this['_buildReuseKey'](_0x5c48b4,_0xbb131d),_0x5bf5b1=this[_0x591f9a(0x17f)](_0x5c48b4,_0xbb131d),_0x49baa7=this['_getCounterTTL'](_0x3efede);let _0x2ae6ac=null;if(_0x3ba162){_0x2ae6ac=this['_buildIdemKey'](_0x1bb83e[_0x591f9a(0x21f)],_0x5c48b4,_0xbb131d,_0x3ba162);const _0x33bfac=await this['_retrieveIdemCache'](_0x2ae6ac);if(_0x33bfac)return _0x33bfac;}const _0x5b031b=crypto['randomUUID'](),_0x2cde9c=this['_buildReservationKey'](_0x5b031b),_0x47e5b5=this[_0x591f9a(0x1b4)](),_0x5458b4=Date['now'](),_0x4ce098=_0x1bb83e['rlgJr'](_0x5458b4,_0x1bb83e[_0x591f9a(0x1ff)](_0x2ecf08,0x3e8)),_0x3856ad=_0x1bb83e[_0x591f9a(0x1ff)](_0x2ecf08,0x3e8),_0x244dec=new Date(_0x5458b4)[_0x591f9a(0x23d)](),_0x39f5e0=new Date(_0x4ce098)[_0x591f9a(0x23d)](),_0x1fd272=[_0x591f9a(0x15d),_0x5c48b4,_0x1bb83e['SIUUZ'],_0xbb131d,'format',_0x3efede,_0x591f9a(0x20b),_0x11bfb4,_0x591f9a(0x1b0),_0x5acc6b,'numDigits',_0x1bb83e[_0x591f9a(0x17a)](String,_0x297117),_0x1bb83e['csIxa'],_0x139bce||'',_0x1bb83e[_0x591f9a(0x213)],_0x244dec,_0x1bb83e[_0x591f9a(0x1b3)],_0x39f5e0,_0x591f9a(0x160),String(_0x3856ad)];_0x3ba162&&_0x1fd272[_0x591f9a(0x26f)](_0x1bb83e[_0x591f9a(0x169)],_0x3ba162);const _0x4b3290=redisClient['getClient'](),_0x49fce4=await _0x4b3290[_0x591f9a(0x1fb)](LUA_RESERVE_NUMBER,0x3,_0x2d25cd,_0x13e5ef,_0x5bf5b1,_0x3956fe?'1':'0',_0x1bb83e[_0x591f9a(0x208)](String,_0x49baa7),_0x5b031b,_0x2cde9c,String(_0x3856ad),String(_0x4ce098),_0x1bb83e[_0x591f9a(0x276)](String,_0x5458b4),_0x47e5b5,..._0x1fd272),_0x4f8011=_0x49fce4[0x0],_0x2351f1=_0x1bb83e[_0x591f9a(0x15c)](_0x49fce4[0x1],0x1),_0x361a9d=_0x49fce4[0x2]||0x0;let _0x309c22;try{_0x309c22=this['_formatNumber']({'format':_0x3efede,'prefix':_0x11bfb4,'datePrefix':_0x139bce,'separator':_0x5acc6b,'numDigits':_0x297117,'counterInt':_0x4f8011});}catch(_0x29531d){try{await _0x4b3290['eval'](LUA_CANCEL_RESERVATION,0x3,_0x2cde9c,_0x5bf5b1,_0x13e5ef,_0x5b031b,String(_0x49baa7));}catch(_0x563752){logger['warn']({'event':_0x1bb83e['uaCsc'],'error':_0x563752['message'],'resource':_0x5c48b4,'formatKey':_0xbb131d,'counterInt':_0x4f8011,'token':_0x5b031b},_0x591f9a(0x24f));}throw _0x29531d;}try{await _0x4b3290['hset'](_0x2cde9c,_0x1bb83e['GBEHF'],_0x309c22);}catch(_0x2a30bb){logger[_0x591f9a(0x277)]({'event':_0x1bb83e['rDYjT'],'error':_0x2a30bb['message'],'resource':_0x5c48b4,'formatKey':_0xbb131d,'counterInt':_0x4f8011,'token':_0x5b031b},_0x591f9a(0x261));}const _0x13d1bc={'token':_0x5b031b,'value':_0x309c22,'counter':_0x4f8011,'resource':_0x5c48b4,'formatKey':_0xbb131d,'isReused':_0x2351f1,'createdAt':_0x244dec,'expiresAt':_0x39f5e0,'reapedCount':_0x361a9d},_0x2aefc1=await this[_0x591f9a(0x21e)](_0x2ae6ac,_0x13d1bc);if(!_0x2aefc1[_0x591f9a(0x1a1)]){try{await _0x4b3290['eval'](LUA_CANCEL_RESERVATION,0x3,_0x2cde9c,_0x5bf5b1,_0x13e5ef,_0x5b031b,String(_0x49baa7));}catch(_0x48dee6){logger['warn']({'event':_0x1bb83e['PryMy'],'error':_0x48dee6['message'],'resource':_0x5c48b4,'formatKey':_0xbb131d,'counterInt':_0x4f8011,'token':_0x5b031b},_0x1bb83e['NADcN']);}return logger['info']({'event':'idgen_reserve_idem_loser','resource':_0x5c48b4,'formatKey':_0xbb131d,'counter':_0x4f8011,'token':_0x5b031b},'ID\x20Generator\x20reserve\x20idem\x20race\x20lost,\x20returning\x20winner\x20envelope'),_0x2aefc1[_0x591f9a(0x18e)];}return this[_0x591f9a(0x1d1)](_0x5c48b4,_0xbb131d,{'lastReservedCounter':_0x4f8011,'lastReservedAt':_0x244dec,'lastReapedCount':_0x361a9d},_0x49baa7),logger[_0x591f9a(0x1eb)]({'event':_0x1bb83e[_0x591f9a(0x177)],'resource':_0x5c48b4,'formatKey':_0xbb131d,'counter':_0x4f8011,'isReused':_0x2351f1,'token':_0x5b031b,'ttl':_0x2ecf08,'reapedCount':_0x361a9d},'ID\x20Generator\x20number\x20reserved:\x20'+_0x309c22+_0x591f9a(0x1d8)+_0x5b031b+')'),_0x13d1bc;}async['confirmReservation'](_0x5d1175){const _0x35e30c=a0_0x4699fa,_0x1bddf6={'CpJYt':'ID\x20Generator\x20is\x20disabled','zvPQp':'idgen','IdqYa':_0x35e30c(0x233),'LnSGq':function(_0x15aa7a,_0x25ab2d){return _0x15aa7a!==_0x25ab2d;},'zPHjB':_0x35e30c(0x220),'cvZDQ':_0x35e30c(0x179)};if(!this['enabled'])throw new IdGeneratorError('IDGEN_DISABLED',_0x1bddf6['CpJYt']);const _0x5f21bd=this['_validateReservationToken'](_0x5d1175&&_0x5d1175['token']),_0x49ad1b=this['_validateIdempotencyKey'](_0x5d1175&&_0x5d1175['idempotencyKey']);let _0x2a1c24=null;if(_0x49ad1b){_0x2a1c24=idempotencyManager['buildDeterministicKey'](_0x1bddf6['zvPQp'],_0x1bddf6['IdqYa'],_0x5f21bd+':'+_0x49ad1b);const _0x312472=await this['_retrieveIdemCache'](_0x2a1c24);if(_0x312472)return _0x312472;}const _0x1695b9=await this['_getReservationContext'](_0x5f21bd),_0x5a66ac=redisClient[_0x35e30c(0x158)](),_0x3d3e1a=await _0x5a66ac[_0x35e30c(0x1fb)](LUA_CONFIRM_RESERVATION,0x2,_0x1695b9[_0x35e30c(0x1c4)],_0x1695b9['rsvIdxKey'],_0x5f21bd);if(!_0x3d3e1a||_0x1bddf6[_0x35e30c(0x175)](_0x3d3e1a[0x0],0x1))throw new IdGeneratorError(_0x1bddf6[_0x35e30c(0x19d)],'Reservation\x20not\x20found\x20or\x20already\x20consumed:\x20'+_0x5f21bd,{'token':_0x5f21bd});const _0x1f0add=parseInt(_0x3d3e1a[0x1],0xa),_0x1f8710=_0x3d3e1a[0x2],_0x46f943=_0x3d3e1a[0x3],_0x55a4b7=new Date()[_0x35e30c(0x23d)](),_0x567383={'confirmed':!![],'token':_0x5f21bd,'value':_0x1f8710,'counter':_0x1f0add,'resource':_0x1695b9['resource'],'formatKey':_0x46f943,'confirmedAt':_0x55a4b7};await this[_0x35e30c(0x269)](_0x2a1c24,_0x567383);const _0x2f1e8a=_0x46f943[_0x35e30c(0x196)](/_(text|yyyy|yyyymm|yyyymmdd)(?:_|$)/),_0x499bfe=_0x2f1e8a?_0x2f1e8a[0x1]:'text',_0x50d589=this[_0x35e30c(0x1c8)](_0x499bfe);return this[_0x35e30c(0x1d1)](_0x1695b9[_0x35e30c(0x15d)],_0x46f943,{'lastConfirmedCounter':_0x1f0add,'lastConfirmedAt':_0x55a4b7},_0x50d589),logger[_0x35e30c(0x1eb)]({'event':_0x1bddf6['cvZDQ'],'resource':_0x1695b9[_0x35e30c(0x15d)],'formatKey':_0x46f943,'counter':_0x1f0add,'token':_0x5f21bd},_0x35e30c(0x198)+_0x1f8710+_0x35e30c(0x1d8)+_0x5f21bd+')'),_0x567383;}async[a0_0x4699fa(0x22a)](_0x540da1){const _0x4a7575=a0_0x4699fa,_0x302f1c={'PwDou':_0x4a7575(0x19b),'ewWWi':'idgen','gaQzU':_0x4a7575(0x1a7),'LOPIP':function(_0x559071,_0x162053){return _0x559071!==_0x162053;},'jTBrY':'IDGEN_RESERVATION_NOT_FOUND','QgxIC':function(_0x26f8f9,_0x517d45,_0x16d712){return _0x26f8f9(_0x517d45,_0x16d712);},'udjnt':_0x4a7575(0x210)};if(!this['enabled'])throw new IdGeneratorError('IDGEN_DISABLED',_0x302f1c['PwDou']);const _0x4957fc=this['_validateReservationToken'](_0x540da1&&_0x540da1['token']),_0x374bcd=this['_validateIdempotencyKey'](_0x540da1&&_0x540da1['idempotencyKey']);let _0x3a884e=null;if(_0x374bcd){_0x3a884e=idempotencyManager['buildDeterministicKey'](_0x302f1c['ewWWi'],'reserve_cancel',_0x4957fc+':'+_0x374bcd);const _0x7823f9=await this[_0x4a7575(0x209)](_0x3a884e);if(_0x7823f9)return _0x7823f9;}const _0x23ef0b=await this['_getReservationContext'](_0x4957fc),_0x10a343=this[_0x4a7575(0x1c6)](_0x23ef0b['resource'],_0x23ef0b['formatKey']),_0x144a33=_0x23ef0b[_0x4a7575(0x223)][_0x4a7575(0x196)](/_(text|yyyy|yyyymm|yyyymmdd)(?:_|$)/),_0x36f169=_0x144a33?_0x144a33[0x1]:_0x302f1c['gaQzU'],_0xa63691=this['_getCounterTTL'](_0x36f169),_0x3ea3c8=redisClient['getClient'](),_0x30107e=await _0x3ea3c8['eval'](LUA_CANCEL_RESERVATION,0x3,_0x23ef0b[_0x4a7575(0x1c4)],_0x23ef0b['rsvIdxKey'],_0x10a343,_0x4957fc,String(_0xa63691));if(!_0x30107e||_0x302f1c['LOPIP'](_0x30107e[0x0],0x1))throw new IdGeneratorError(_0x302f1c[_0x4a7575(0x185)],'Reservation\x20not\x20found\x20or\x20already\x20consumed:\x20'+_0x4957fc,{'token':_0x4957fc});const _0x401940=_0x302f1c[_0x4a7575(0x1f3)](parseInt,_0x30107e[0x1],0xa),_0x1cb94b=_0x30107e[0x2],_0x2fe58a=_0x30107e[0x3],_0x41c995=new Date()[_0x4a7575(0x23d)](),_0x107de6={'cancelled':!![],'token':_0x4957fc,'value':_0x1cb94b,'counter':_0x401940,'resource':_0x23ef0b['resource'],'formatKey':_0x2fe58a,'releasedToReuse':!![],'cancelledAt':_0x41c995};return await this[_0x4a7575(0x269)](_0x3a884e,_0x107de6),this[_0x4a7575(0x1d1)](_0x23ef0b['resource'],_0x2fe58a,{'lastCancelledCounter':_0x401940,'lastCancelledAt':_0x41c995},_0xa63691),logger[_0x4a7575(0x1eb)]({'event':_0x302f1c[_0x4a7575(0x278)],'resource':_0x23ef0b['resource'],'formatKey':_0x2fe58a,'counter':_0x401940,'token':_0x4957fc},'ID\x20Generator\x20reservation\x20cancelled:\x20'+_0x1cb94b+'\x20(token='+_0x4957fc+')'),_0x107de6;}async['extendReservation'](_0x137f10){const _0x4ce985=a0_0x4699fa,_0x37f25d={'oEWDi':_0x4ce985(0x1ce),'JIuME':_0x4ce985(0x19b),'tjNBz':'idgen','BzSOv':function(_0x11cbca,_0x70cdda){return _0x11cbca*_0x70cdda;},'VsMwf':function(_0x396e64,_0x75af1e){return _0x396e64!==_0x75af1e;},'jrZoG':'IDGEN_RESERVATION_NOT_FOUND','uJXAh':function(_0x5aa9ca,_0x162033,_0x3c3fb8){return _0x5aa9ca(_0x162033,_0x3c3fb8);},'grujB':_0x4ce985(0x23f)};if(!this['enabled'])throw new IdGeneratorError(_0x37f25d[_0x4ce985(0x19a)],_0x37f25d['JIuME']);const _0x3ec207=this['_validateReservationToken'](_0x137f10&&_0x137f10[_0x4ce985(0x1e1)]),_0x4a4846=this['_validateReserveTTL'](_0x137f10&&_0x137f10[_0x4ce985(0x249)]),_0x1d0773=this['_validateIdempotencyKey'](_0x137f10&&_0x137f10['idempotencyKey']);let _0x528731=null;if(_0x1d0773){_0x528731=idempotencyManager['buildDeterministicKey'](_0x37f25d['tjNBz'],_0x4ce985(0x199),_0x3ec207+':'+_0x1d0773);const _0x209cad=await this['_retrieveIdemCache'](_0x528731);if(_0x209cad)return _0x209cad;}const _0x25c25e=await this['_getReservationContext'](_0x3ec207),_0x4998af=Date['now'](),_0x2c973e=_0x4998af+_0x4a4846*0x3e8,_0x2a7270=_0x37f25d[_0x4ce985(0x247)](_0x4a4846,0x3e8),_0x4dad5c=new Date(_0x2c973e)[_0x4ce985(0x23d)](),_0x49cdca=redisClient[_0x4ce985(0x158)](),_0xffe23d=await _0x49cdca[_0x4ce985(0x1fb)](LUA_EXTEND_RESERVATION,0x2,_0x25c25e['rsvKey'],_0x25c25e['rsvIdxKey'],_0x3ec207,String(_0x2a7270),String(_0x2c973e),_0x4dad5c);if(!_0xffe23d||_0x37f25d['VsMwf'](_0xffe23d[0x0],0x1))throw new IdGeneratorError(_0x37f25d['jrZoG'],_0x4ce985(0x1aa)+_0x3ec207,{'token':_0x3ec207});const _0x1c9637=_0xffe23d[0x1],_0x245236=_0x37f25d[_0x4ce985(0x216)](parseInt,_0xffe23d[0x2],0xa),_0x4a6761=_0xffe23d[0x3],_0x57b9f4=_0xffe23d[0x4],_0x5e09bd=new Date(_0x4998af)[_0x4ce985(0x23d)](),_0x2099c5={'extended':!![],'token':_0x3ec207,'previousExpiresAt':_0x1c9637,'expiresAt':_0x4dad5c,'ttlMs':_0x2a7270,'resource':_0x25c25e['resource'],'formatKey':_0x57b9f4,'counter':_0x245236,'value':_0x4a6761,'extendedAt':_0x5e09bd};await this['_storeIdemCache'](_0x528731,_0x2099c5);const _0x5c08d5=_0x57b9f4[_0x4ce985(0x196)](/_(text|yyyy|yyyymm|yyyymmdd)(?:_|$)/),_0x3640a5=_0x5c08d5?_0x5c08d5[0x1]:'text',_0x1903ed=this['_getCounterTTL'](_0x3640a5);return this['_updateMeta'](_0x25c25e[_0x4ce985(0x15d)],_0x57b9f4,{'lastExtendedCounter':_0x245236,'lastExtendedAt':_0x5e09bd},_0x1903ed),logger[_0x4ce985(0x1eb)]({'event':_0x37f25d['grujB'],'resource':_0x25c25e[_0x4ce985(0x15d)],'formatKey':_0x57b9f4,'counter':_0x245236,'token':_0x3ec207,'ttl':_0x4a4846},'ID\x20Generator\x20reservation\x20extended:\x20'+_0x4a6761+_0x4ce985(0x1d8)+_0x3ec207+',\x20+'+_0x4a4846+'s)'),_0x2099c5;}async['getReservation'](_0x20b1e4){const _0x41c320=a0_0x4699fa,_0x26bb8d={'LwZIz':_0x41c320(0x1ce),'mgJjX':_0x41c320(0x19b),'ylLVx':function(_0x36be64,_0x2f702c){return _0x36be64===_0x2f702c;},'BZxOM':'IDGEN_RESERVATION_NOT_FOUND','JUOPL':function(_0x3791b9,_0x10732c,_0x23a17b){return _0x3791b9(_0x10732c,_0x23a17b);},'ZqmMA':function(_0xcf439e,_0x52b32e){return _0xcf439e===_0x52b32e;},'CNgzw':function(_0x247510,_0x4324aa){return _0x247510===_0x4324aa;},'xlAza':'number'};if(!this[_0x41c320(0x264)])throw new IdGeneratorError(_0x26bb8d[_0x41c320(0x1d7)],_0x26bb8d[_0x41c320(0x23c)]);const _0x2cb185=this[_0x41c320(0x1c3)](_0x20b1e4&&_0x20b1e4[_0x41c320(0x1e1)]),_0x272766=this['_buildReservationKey'](_0x2cb185),_0x1555e8=redisClient[_0x41c320(0x158)](),_0xd1dee4=_0x1555e8['pipeline']();_0xd1dee4[_0x41c320(0x1d9)](_0x272766),_0xd1dee4[_0x41c320(0x173)](_0x272766);const _0x53724f=await _0xd1dee4['exec'](),_0x532764=_0x53724f&&_0x53724f[0x0]&&_0x53724f[0x0][0x1],_0x3abc3b=_0x53724f&&_0x53724f[0x1]&&_0x53724f[0x1][0x1];if(!_0x532764||_0x26bb8d['ylLVx'](Object['keys'](_0x532764)['length'],0x0))throw new IdGeneratorError(_0x26bb8d[_0x41c320(0x1f9)],'Reservation\x20not\x20found\x20or\x20already\x20consumed:\x20'+_0x2cb185,{'token':_0x2cb185});return{'token':_0x2cb185,'resource':_0x532764[_0x41c320(0x15d)]||null,'formatKey':_0x532764[_0x41c320(0x223)]||null,'format':_0x532764[_0x41c320(0x24e)]||null,'prefix':_0x532764['prefix']||'','separator':_0x532764['separator']||'','numDigits':_0x532764[_0x41c320(0x178)]?_0x26bb8d['JUOPL'](parseInt,_0x532764[_0x41c320(0x178)],0xa):null,'datePrefix':_0x532764[_0x41c320(0x182)]||'','counter':_0x532764[_0x41c320(0x20e)]?parseInt(_0x532764[_0x41c320(0x20e)],0xa):null,'value':_0x532764['value']||null,'isReused':_0x532764['isReused']==='1'||_0x26bb8d['ZqmMA'](_0x532764[_0x41c320(0x174)],0x1),'createdAt':_0x532764['createdAt']||null,'expiresAt':_0x532764[_0x41c320(0x234)]||null,'ttlRemainingMs':_0x26bb8d[_0x41c320(0x227)](typeof _0x3abc3b,_0x26bb8d[_0x41c320(0x1bd)])&&_0x3abc3b>=0x0?_0x3abc3b:null};}async['_getReservationContext'](_0x39ccd5){const _0x28d530=a0_0x4699fa,_0x266e01={'DaLAH':_0x28d530(0x223),'aEObf':function(_0x5f51ec,_0x59cba4){return _0x5f51ec||_0x59cba4;}},_0xab1689=this['_buildReservationKey'](_0x39ccd5),_0x41b709=redisClient['getClient'](),_0x2cac6d=await _0x41b709[_0x28d530(0x270)](_0xab1689,_0x28d530(0x15d),_0x266e01[_0x28d530(0x1ea)]),_0x270076=_0x2cac6d&&_0x2cac6d[0x0],_0x9bb591=_0x2cac6d&&_0x2cac6d[0x1];if(_0x266e01[_0x28d530(0x215)](!_0x270076,!_0x9bb591))throw new IdGeneratorError(_0x28d530(0x220),'Reservation\x20not\x20found\x20or\x20already\x20consumed:\x20'+_0x39ccd5,{'token':_0x39ccd5});return{'resource':_0x270076,'formatKey':_0x9bb591,'rsvKey':_0xab1689,'rsvIdxKey':this[_0x28d530(0x17f)](_0x270076,_0x9bb591)};}async['random'](_0x5173c0){const _0x25c65a=a0_0x4699fa,_0x503f24={'OHtND':'ID\x20Generator\x20is\x20disabled','wmXKV':'random','tzBvj':function(_0x157ac2,_0xfa083e){return _0x157ac2===_0xfa083e;},'eBisf':function(_0x1b0c4d,_0x560385){return _0x1b0c4d===_0x560385;},'jWJZL':function(_0x2e603f,_0x195fa2){return _0x2e603f&&_0x195fa2;},'fHSiC':function(_0x2eb51b,_0x1804ac){return _0x2eb51b+_0x1804ac;},'keMrf':function(_0x156410,_0x5574dc){return _0x156410*_0x5574dc;},'EmYMH':'idgen_random_generated','BqaKh':function(_0x79ce5b,_0x4511ae){return _0x79ce5b||_0x4511ae;}};if(!this[_0x25c65a(0x264)])throw new IdGeneratorError('IDGEN_DISABLED',_0x503f24[_0x25c65a(0x186)]);this['_validateResource'](_0x5173c0['resource']),this['_validatePattern'](_0x5173c0['pattern']);const _0x495808=this['_validateTTL'](_0x5173c0['ttl']),_0x51448f=this['_validateMaxRetry'](_0x5173c0[_0x25c65a(0x1a4)]),_0x5e2f06=this['_validateIdempotencyKey'](_0x5173c0['idempotencyKey']),_0x447379=_0x5173c0[_0x25c65a(0x1e6)]===!![],{resource:_0x21c1ec,pattern:_0x16fdc7}=_0x5173c0;let _0x1126bb=null;if(_0x5e2f06){_0x1126bb=this['_buildIdemKey'](_0x503f24[_0x25c65a(0x266)],_0x21c1ec,null,_0x5e2f06);const _0x2af725=await this[_0x25c65a(0x209)](_0x1126bb);if(_0x2af725)return _0x2af725;}const _0x12752c=redisClient['getClient']();let _0x408dda=null,_0x3dc39a=0x0;if(!_0x447379)_0x408dda=this['_generateFromPattern'](_0x16fdc7),_0x3dc39a=0x1;else{for(let _0xdb8c92=0x0;_0xdb8c92<_0x51448f;_0xdb8c92++){_0x3dc39a++;const _0x127b13=this[_0x25c65a(0x20f)](_0x16fdc7);if(_0x495808){const _0x28aed6=this[_0x25c65a(0x181)](_0x21c1ec,_0x127b13),_0x4f60e4=await _0x12752c[_0x25c65a(0x1bc)](_0x28aed6,'1','EX',_0x495808,'NX');if(_0x503f24['tzBvj'](_0x4f60e4,'OK')){_0x408dda=_0x127b13;break;}}else{const _0x49ac53=this['_buildIssuedKey'](_0x21c1ec),_0x1b7dd1=await _0x12752c[_0x25c65a(0x206)](_0x49ac53,_0x127b13);if(_0x1b7dd1===0x1){_0x408dda=_0x127b13;break;}}}if(_0x503f24[_0x25c65a(0x17e)](_0x408dda,null))throw new IdGeneratorError(_0x25c65a(0x1c9),_0x25c65a(0x256)+_0x51448f+'\x20attempts.\x20Increase\x20pattern\x20length\x20or\x20maxRetry.',{'resource':_0x21c1ec,'pattern':_0x16fdc7,'maxRetry':_0x51448f});}const _0x4a756a={'value':_0x408dda,'resource':_0x21c1ec,'pattern':_0x16fdc7,'attemptCount':_0x3dc39a,'generatedAt':new Date()['toISOString']()};_0x503f24['jWJZL'](_0x495808,_0x447379)&&(_0x4a756a['expiresAt']=new Date(_0x503f24['fHSiC'](Date['now'](),_0x503f24[_0x25c65a(0x22f)](_0x495808,0x3e8)))[_0x25c65a(0x23d)]());const _0x4d8032=await this['_storeIdemCacheNX'](_0x1126bb,_0x4a756a);if(!_0x4d8032[_0x25c65a(0x1a1)])return _0x447379&&await this['_undoRandomReservation'](_0x21c1ec,_0x408dda,_0x495808),logger[_0x25c65a(0x1eb)]({'event':_0x25c65a(0x18f),'resource':_0x21c1ec,'pattern':_0x16fdc7,'value':_0x408dda},_0x25c65a(0x211)),_0x4d8032['winnerResult'];return logger['info']({'event':_0x503f24[_0x25c65a(0x162)],'resource':_0x21c1ec,'pattern':_0x16fdc7,'attemptCount':_0x3dc39a,'ensureUnique':_0x447379,'ttl':_0x503f24[_0x25c65a(0x1dd)](_0x495808,0x0)},'ID\x20Generator\x20random:\x20'+_0x408dda),_0x4a756a;}async['pin'](_0x17781a){const _0x5c384d=a0_0x4699fa,_0xd79580={'qIzqF':function(_0xbed04,_0x170778){return _0xbed04<_0x170778;},'NaSHU':'IDGEN_INVALID_DIGITS','ULYBJ':function(_0xe06867,_0x1f94a8){return _0xe06867===_0x1f94a8;}},_0x3dc00d=_0x17781a[_0x5c384d(0x243)]==null?this['defaultPinDigits']:_0x17781a[_0x5c384d(0x243)];if(!Number['isInteger'](_0x3dc00d)||_0xd79580['qIzqF'](_0x3dc00d,MIN_PIN_DIGITS)||_0x3dc00d>MAX_PIN_DIGITS)throw new IdGeneratorError(_0xd79580[_0x5c384d(0x1f1)],_0x5c384d(0x1b9)+MIN_PIN_DIGITS+'-'+MAX_PIN_DIGITS+_0x5c384d(0x27a)+_0x3dc00d+')');const _0x3409af='9'['repeat'](_0x3dc00d);return this['random']({'resource':_0x17781a[_0x5c384d(0x15d)],'pattern':_0x3409af,'ensureUnique':_0xd79580['ULYBJ'](_0x17781a['ensureUnique'],!![]),'ttl':_0x17781a[_0x5c384d(0x249)],'maxRetry':_0x17781a[_0x5c384d(0x1a4)],'idempotencyKey':_0x17781a[_0x5c384d(0x1c0)]});}async['serial'](_0x30b169){const _0x244f49=a0_0x4699fa,_0x1667eb={'qzcng':function(_0x53cad6,_0x527b3d){return _0x53cad6!==_0x527b3d;}},_0x2dddf6=_0x30b169['pattern']||this[_0x244f49(0x257)];return this[_0x244f49(0x1f6)]({'resource':_0x30b169[_0x244f49(0x15d)],'pattern':_0x2dddf6,'ensureUnique':_0x1667eb['qzcng'](_0x30b169['ensureUnique'],![]),'ttl':_0x30b169[_0x244f49(0x249)],'maxRetry':_0x30b169['maxRetry'],'idempotencyKey':_0x30b169['idempotencyKey']});}async[a0_0x4699fa(0x1f7)](_0x10482e){const _0x53cd84=a0_0x4699fa,_0x5790d5={'Thptc':function(_0x392078,_0x2ad3fe){return _0x392078!==_0x2ad3fe;}},_0x280691=_0x10482e[_0x53cd84(0x204)]||this['defaultCodePattern'];return this['random']({'resource':_0x10482e[_0x53cd84(0x15d)],'pattern':_0x280691,'ensureUnique':_0x5790d5[_0x53cd84(0x21a)](_0x10482e['ensureUnique'],![]),'ttl':_0x10482e[_0x53cd84(0x249)],'maxRetry':_0x10482e['maxRetry'],'idempotencyKey':_0x10482e[_0x53cd84(0x1c0)]});}async['consume'](_0x36c14e){const _0x2ddbe5=a0_0x4699fa,_0x396759={'FzayB':_0x2ddbe5(0x19b),'axONv':'string','hhxWq':function(_0x4d2a34,_0x287fbc){return _0x4d2a34>_0x287fbc;},'clDSf':function(_0x4087a6,_0x470e8f){return _0x4087a6+_0x470e8f;},'ZEzwu':_0x2ddbe5(0x236)};if(!this['enabled'])throw new IdGeneratorError('IDGEN_DISABLED',_0x396759[_0x2ddbe5(0x16f)]);this['_validateResource'](_0x36c14e[_0x2ddbe5(0x15d)]);if(typeof _0x36c14e[_0x2ddbe5(0x1fa)]!==_0x396759[_0x2ddbe5(0x17d)]||_0x36c14e['value']['length']===0x0)throw new IdGeneratorError(_0x2ddbe5(0x193),'value\x20is\x20required');const {resource:_0x696c74,value:_0x2f9b89}=_0x36c14e,_0x12fb6e=redisClient['getClient'](),_0x5994c6=this['_buildActiveKey'](_0x696c74,_0x2f9b89),_0x4fb952=this[_0x2ddbe5(0x1a6)](_0x696c74),[_0x47c1e3,_0x22914c]=await Promise['all']([_0x12fb6e['del'](_0x5994c6),_0x12fb6e['srem'](_0x4fb952,_0x2f9b89)]),_0x3488c6=_0x396759[_0x2ddbe5(0x1d5)](_0x396759[_0x2ddbe5(0x15f)](_0x47c1e3,_0x22914c),0x0);return logger[_0x2ddbe5(0x1eb)]({'event':_0x396759[_0x2ddbe5(0x1e9)],'resource':_0x696c74,'value':_0x2f9b89,'consumed':_0x3488c6},'ID\x20Generator\x20consumed:\x20'+_0x2f9b89),{'consumed':_0x3488c6,'resource':_0x696c74,'value':_0x2f9b89,'consumedAt':new Date()[_0x2ddbe5(0x23d)]()};}async['peek'](_0x21a81e){const _0x1ae762=a0_0x4699fa,_0x11f387={'GNWKE':_0x1ae762(0x1ce),'TcfKu':function(_0x5ef411,_0x5bb30d,_0x192560){return _0x5ef411(_0x5bb30d,_0x192560);},'YbAmb':'random'};if(!this[_0x1ae762(0x264)])throw new IdGeneratorError(_0x11f387[_0x1ae762(0x1be)],'ID\x20Generator\x20is\x20disabled');this['_validateResource'](_0x21a81e['resource']);const _0x461af0=_0x21a81e['mode']||_0x1ae762(0x1fc),_0x170f99=redisClient['getClient']();if(_0x461af0===_0x1ae762(0x1fc)){const _0x511e5f=(_0x21a81e[_0x1ae762(0x24e)]||_0x1ae762(0x1a7))[_0x1ae762(0x25c)]();if(!ALLOWED_FORMATS[_0x1ae762(0x1ec)](_0x511e5f))throw new IdGeneratorError('IDGEN_INVALID_FORMAT',_0x1ae762(0x27b)+_0x21a81e['format']);const {formatKey:_0xd8fac6}=this['_buildFormatKey'](_0x511e5f,_0x21a81e[_0x1ae762(0x20b)]||''),_0x21633e=this[_0x1ae762(0x1c1)](_0x21a81e['resource'],_0xd8fac6),_0x52d33a=this['_buildReuseKey'](_0x21a81e[_0x1ae762(0x15d)],_0xd8fac6),[_0x236291,_0x26d42a]=await Promise['all']([_0x170f99['get'](_0x21633e),_0x170f99['zcard'](_0x52d33a)]);return{'resource':_0x21a81e[_0x1ae762(0x15d)],'mode':_0x1ae762(0x1fc),'formatKey':_0xd8fac6,'currentCounter':_0x11f387[_0x1ae762(0x212)](parseInt,_0x236291,0xa)||0x0,'reusePoolSize':_0x26d42a||0x0};}if(_0x461af0===_0x11f387['YbAmb']){const _0x57b306=this[_0x1ae762(0x1a6)](_0x21a81e[_0x1ae762(0x15d)]),_0x53e193=await _0x170f99['scard'](_0x57b306);return{'resource':_0x21a81e[_0x1ae762(0x15d)],'mode':'random','issuedCount':_0x53e193||0x0};}throw new IdGeneratorError(_0x1ae762(0x1b1),'Unknown\x20mode:\x20'+_0x461af0);}async['getInfo'](_0x56b12a){const _0x29c9a2=a0_0x4699fa,_0x17411a={'ilzyN':_0x29c9a2(0x1fc),'Byxap':function(_0x4b0d34,_0x10b143){return _0x4b0d34>_0x10b143;}},_0x4ba7fa=await this[_0x29c9a2(0x1fe)](_0x56b12a);if(_0x4ba7fa[_0x29c9a2(0x164)]===_0x17411a[_0x29c9a2(0x24a)]){const _0x1ee752=redisClient['getClient'](),_0x12cb13=this[_0x29c9a2(0x1d6)](_0x56b12a[_0x29c9a2(0x15d)],_0x4ba7fa[_0x29c9a2(0x223)]),_0x25475b=this[_0x29c9a2(0x1c6)](_0x56b12a['resource'],_0x4ba7fa['formatKey']),[_0x37105f,_0x1ef814]=await Promise[_0x29c9a2(0x26c)]([_0x1ee752['hgetall'](_0x12cb13),_0x1ee752['zrange'](_0x25475b,0x0,-0x1)]);return{..._0x4ba7fa,'reusePoolValues':_0x1ef814[_0x29c9a2(0x1ee)](_0xc5a915=>parseInt(_0xc5a915,0xa)),'meta':_0x37105f&&_0x17411a[_0x29c9a2(0x1da)](Object[_0x29c9a2(0x1cd)](_0x37105f)['length'],0x0)?_0x37105f:null};}return _0x4ba7fa;}async['reset'](_0x571d27){const _0x59f695=a0_0x4699fa,_0x49c086={'xXnrz':'IDGEN_DISABLED','jhWEh':_0x59f695(0x19b),'TBidX':function(_0x2031e8,_0x488352){return _0x2031e8===_0x488352;},'mGLdS':_0x59f695(0x1fc),'yGlnN':_0x59f695(0x265),'ecAsi':function(_0x134a1a,_0x5734b0){return _0x134a1a===_0x5734b0;},'KMlHN':'idgen_reset','qXCwD':'random','JxVvF':'IDGEN_INVALID_MODE'};if(!this[_0x59f695(0x264)])throw new IdGeneratorError(_0x49c086[_0x59f695(0x22d)],_0x49c086[_0x59f695(0x232)]);if(!this[_0x59f695(0x263)])throw new IdGeneratorError(_0x59f695(0x201),'Reset\x20operation\x20not\x20allowed\x20(set\x20IDGEN_ALLOW_RESET=true\x20to\x20enable)');this[_0x59f695(0x1b5)](_0x571d27[_0x59f695(0x15d)]);const _0x587cf5=_0x571d27[_0x59f695(0x164)]||_0x59f695(0x1fc),_0x1676c7=redisClient['getClient']();if(_0x49c086['TBidX'](_0x587cf5,_0x49c086[_0x59f695(0x1c2)])){const _0x150716=(_0x571d27[_0x59f695(0x24e)]||_0x59f695(0x1a7))[_0x59f695(0x25c)]();if(!ALLOWED_FORMATS[_0x59f695(0x1ec)](_0x150716))throw new IdGeneratorError('IDGEN_INVALID_FORMAT',_0x59f695(0x27b)+_0x571d27['format']);const {formatKey:_0x15edc7}=this[_0x59f695(0x203)](_0x150716,_0x571d27[_0x59f695(0x20b)]||''),_0x26702a=this['_buildSeqKey'](_0x571d27[_0x59f695(0x15d)],_0x15edc7),_0x22092c=this[_0x59f695(0x1c6)](_0x571d27['resource'],_0x15edc7),_0x4f4262=this['_buildMetaKey'](_0x571d27[_0x59f695(0x15d)],_0x15edc7);return await _0x1676c7['del'](_0x26702a,_0x22092c,_0x4f4262),logger[_0x59f695(0x277)]({'event':'idgen_reset','resource':_0x571d27[_0x59f695(0x15d)],'mode':_0x59f695(0x1fc),'formatKey':_0x15edc7},'ID\x20Generator\x20reset:\x20'+_0x571d27['resource']+':'+_0x15edc7),{'reset':!![],'resource':_0x571d27['resource'],'mode':_0x59f695(0x1fc),'formatKey':_0x15edc7,'deletedKeys':['seq',_0x59f695(0x166),_0x49c086[_0x59f695(0x195)]]};}if(_0x49c086['ecAsi'](_0x587cf5,_0x59f695(0x1f6))){const _0x312e4b=this[_0x59f695(0x1a6)](_0x571d27['resource']);return await _0x1676c7['del'](_0x312e4b),logger[_0x59f695(0x277)]({'event':_0x49c086['KMlHN'],'resource':_0x571d27['resource'],'mode':_0x49c086['qXCwD']},_0x59f695(0x26a)+_0x571d27[_0x59f695(0x15d)]),{'reset':!![],'resource':_0x571d27[_0x59f695(0x15d)],'mode':_0x59f695(0x1f6),'deletedKeys':['issued']};}throw new IdGeneratorError(_0x49c086['JxVvF'],_0x59f695(0x1d3)+_0x587cf5);}}const instance=new IdGenerator();instance[a0_0x4699fa(0x1a0)]=IdGeneratorError,module['exports']=instance,module['exports']['IdGeneratorError']=IdGeneratorError;function a0_0x25a6(){const _0x14afbd=['AgH4v3e','x2j1AwXKtwv0yuTLEq','thDAsxO','icH0B2TLBJ0','AgDLDgfSBa','qNL4yxa','q291BNrLCIbVDMvYzMXVDZOG','sw52ywXPzcbZzxbHCMf0B3i6ig1HEcaZignOyxiSig11C3qGBM90ignVBNrHAw4GjZONicHNB3q6ia','qNfHs2G','cMLMihjLzgLZlMnHBgWOj0vysvnuuYCSieTfwvnBmv0Pid09idaGDgHLBGOGihjLzgLZlMnHBgWOj1Psru0NlcblrvLtwZjDlcbbuKDwwZfDkqOGihjLDhvYBIb7idaGFqPLBMqkBg9JywWGAca9ihjLzgLZlMnHBgWOj0Hnr0vujYWGs0vzu1SXxsWGj2nVDw50zxiNlcaNDMfSDwuNlcaNzM9YBwf0s2v5jYKkBg9JywWGy291BNrLCIa9igHBmv0kAwyGy291BNrLCIb0AgvUcIaGCMvKAxmUy2fSBcGNwKfercCSieTfwvnBm10SignVDw50zxiSignVDw50zxiPcIaGBg9JywWGDhrSid0GDg9UDw1IzxiOqvjhvLSYxsKkicbPzIb0DgWGpIaWihrOzw4kicaGihjLzgLZlMnHBgWOj0vyueLsrsCSieTfwvnBm10Sihr0BcKkicbLBMqkzw5KcNjLzgLZlMnHBgWOj0rftcCSieTfwvnBmv0PcNjLzgLZlMnHBgWOj1Psru0NlcblrvLtwZjDlcbbuKDwwZfDkqPYzxr1CM4GEYaXlcbJB3vUDgvYlcbOwZjDlcbOwZnDih0k','sw52ywXPzcb0DgW6ig11C3qGyMuGAw50zwDLCIaXlq','s3PiAhO','Dg9Rzw4','Dw1eCLa','Bwv0ytO','C3rYAw5N','mtaWmJGYmM5AzwzKuq','zw5ZDxjLvw5PCxvL','rNzuqxe','AwrNzw5FAwrLBv9SB3nLCL9YzwXLyxnLx2vYCM9Y','wKv6D3u','rgfmquG','Aw5MBW','AgfZ','ihnLy29UzhmGkgDVDdOG','BwfW','surhru5FuKvtrvjwrv9eruzbvuXux1ruta','swrLBxbVDgvUy3KGy2fJAguGseLu','tMftsfu','CMvSzwfZzwrbDa','uwD4sum','BKP6zLq','sw52ywXPzcbWyxr0zxjUoIbTDxn0igjLihn0CMLUzYaXlq','CMfUzg9T','y29Kzq','AxHLCfG','qLP4t00','DMfSDwu','zxzHBa','BNvTyMvY','mJuWmKvHB29UrW','CgvLAW','twzIzvu','CMX3AKe','surhru5FuKvtrvrFtK9ux0fmte9xruq','sw52ywXPzcbYzxnLCNzHDgLVBIb0B2TLBJOGBxvZDcbIzsbHihzHBgLKifvvsuqGzM9YBwf0icHNB3q6ia','x2j1AwXKrM9YBwf0s2v5','Cgf0DgvYBG','y3jLyxrLzef0','C2fKza','AwrNzw5FCMvZzxj2zv9PzgvTx2XVC2vYx2nHBMnLBf9LCNjVCG','CNHVAwW','x3jLDhjPzxzLswrLBunHy2HL','u2r1A3q','ChjLzML4','BxPUqKe','CgfYC2u','y291BNrLCG','x2DLBMvYyxrLrNjVBvbHDhrLCM4','AwrNzw5FCMvZzxj2yxrPB25Fy2fUy2vSBgvK','suqGr2vUzxjHDg9YihjHBMrVBsbPzgvTihjHy2uGBg9ZDcWGCMv0DxjUAw5NihDPBM5LCIbLBNzLBg9Wzq','vgnMs3u','DM1ZELK','Ee9bugu','yuvpyMy','DuPyqwG','r0LOs08','qujdrevgr0HjsKTmtu5puffsu1rvvLDywvO','ExL5Ew1T','vgHWDgm','zgvMyxvSDfbPBKrPz2L0CW','AM9PBG','wNbrs00','x3n0B3jLswrLBunHy2HLtLG','ugXYvK4','surhru5FuKvtrvjwqvrjt05FtK9ux0zpvu5e','AwrNzw5FAwrLBv9YzxrYAwv2zv9LCNjVCG','x3zHBgLKyxrLswrLBxbVDgvUy3LlzxK','zM9YBwf0s2v5','AwrNzw5FBNvTyMvYx3jLBgvHC2vK','CMvSzwfZzu51BwjLCG','zuTXywy','q05NENC','x2vUC3vYzuLUAxrPywXPEMvK','surhru5Fsu5wquXjrf9uveW','y2fUy2vSuMvZzxj2yxrPB24','zgjQufy','zw52','EfHUCNO','x3zHBgLKyxrLtwf4uMv0CNK','A2vnCMy','CMvZzxj2zu1HEfruta','AhnLDa','AMHxrwG','CMvZzxj2zv9JB25MAxjT','zxHWAxjLC0f0','xLXKEW','AwrNzw5Fy29UC3vTzwq','sw52ywXPzcbWCMvMAxG6ig11C3qGBwf0y2GG','C3rYAw5NAwz5','sw52ywXPzcbUDw1eAwDPDhm6ig11C3qGyMuGAw50zwDLCIa','sw52ywXPzcbYzxnVDxjJztOGBxvZDcbTyxrJAca','ELnSvNO','BwDkALG','Dg9ju09tDhjPBMC','r3rJv3u','AwrNzw5FCMvZzxj2yxrPB25FzxH0zw5Kzwq','tLzxDfm','nJi3nZuWAxLvsufM','surhru5Fsu5wquXjrf9nqvHFuKvuuLK','zgLNAxrZ','AxnjBNrLz2vY','x3bHzdi','ignOyxjZicHNB3qGBgvUz3rOoIa','qNPtt3y','ugrxwM4','DhrS','AwX6Eu4','swrLBxbVDgvUy3KGC3rVCMuGzxjYB3i','z2v0tw9UDgG','yM9VBgvHBG','zM9YBwf0','rMfPBgvKihrVignVBxbLBNnHDguGCMvZzxj2yxrPB24Gywz0zxiGy291BNrLCIbVDMvYzMXVDW','mJHmANnqy3m','rMfPBgvKihrVihjLBgvHC2uGy291BNrLCIbMB3iGAwrLBxbVDgvUy3KGBg9Zzxi','zM9YBwf0s2v5igLZihjLCxvPCMvKigLUigXVDY1SzxzLBcbYzwXLyxnL','x2LUAxrPywXPEMvK','CMHmseW','AwrNzw5FAwrLBv9UEf9YywnLx2XVC3rFyNv0x2vTChr5','q291BgqGBM90igDLBMvYyxrLihvUAxf1zsb2ywX1zsbHzNrLCIa','zgvMyxvSDfnLCMLHBfbHDhrLCM4','surhru5Fq09vtLrfuL9pvKvsrKXpvW','z2v0rgf0zq','CMy6AwrNzw46','x3zHBgLKyxrLtNvTyMvYugfYyw1Z','Dg9mB3DLCKnHC2u','zgvMyxvSDe1HEfjLDhj5','x2j1AwXKswrLBuTLEq','zxHWAxjL','mtKWmKfSyLH4qW','rMfPBgvKihrVihbLCNnPC3qGzM9YBwf0DgvKihzHBhvLihrVihjLC2vYDMf0Aw9UigHHC2G','AwrNzw5FBNvTyMvYx3jLC2vYDMvK','ywXSB3DszxnLDa','zw5HyMXLza','Bwv0yq','D21ys1y','zgvMyxvSDenVzgvqyxr0zxjU','twv0ysb1CgrHDguGzxjYB3i','x3n0B3jLswrLBunHy2HL','suqGr2vUzxjHDg9YihjLC2v0oIbYyw5KB206','qNvMtLq','ywXS','BwvZC2fNzq','x3zHBgLKyxrLugf0DgvYBG','ChvZAa','Ag1Nzxq','qwnlzgK','tNvTyMvYignVDw50zxiGCgfYDcbTDxn0igjLigv4ywn0BhKG','D0jXyKK','mtGYnZfUt2TUCKO','x3rLEhq','rvHyAu0','D2fYBG','DwrQBNq','mZuWmJeWnhrSzgPKDq','icHNB3q6ia','sw52ywXPzcbMB3jTyxq6ia','CNn2oG','z2v0q2XPzw50','sw52ywXPzcbPzgvTCg90zw5JEuTLEtOGBxvZDcbIzsbZDhjPBMCGms0','x2nVDw50zxjuveXnyxa','zxHstNG','r1byz28','CMvZB3vYy2u','uuD6BwC','y2Xeu2y','DhrStxm','A1vMDNi','rw1ztuG','CMvZzxj2zq','Bw9Kzq','suqGr2vUzxjHDg9YignVBMzPzYbPBML0AwfSAxPLzcaTigvUywjSzwq6ia','CMv1C2u','CgfKzgvKicHNB3q6ia','y291BNrLCKLUDa','BxnZB2i','sw52ywXPzcbUDw1Izxi6ig11C3qGyMuGBM9UlwvTChr5ihn0CMLUzW','surhru5Frevgqvvmvf9nqvHFuKvuuLK','x3L5ExLF','DgvZDa','A2v5uhjLzML4','rNPHEui','vhnqALC','vNzHAxu','BNnKsxy','Chr0Ba','AxnszxvZzwq','tg5tr3e','x3bHCNnLtNvTyMvY','uLzgEgC','BNvTrgLNAxrZ','AwrNzw5FCMvZzxj2yxrPB25Fy29UzMLYBwvK','zuDeAva','u2fpA08','lcbNB3qG','yxHptNy','zujPC2y','x2j1AwXKuMvZzxj2yxrPB25jBMrLEeTLEq','zNDRB1u','x2j1AwXKqwn0AxzLs2v5','zgf0zvbYzwzPEa','x2zVCM1HDe51BwjLCG','C3jLBq','ALrcCLK','t0H0tKq','BMfTzq','z2z3CKG','yNvPBgrezxrLCM1PBMLZDgLJs2v5','odq5yuPuEwLw','mJa1mePAt2XYqq','ihbHCNrZkq','ignOyxjZ','D2LUBMvYuMvZDwX0','AwrNzw5FCMfUzg9Tx2LKzw1FBg9Zzxi','CMv1C2u6','x3zHBgLKyxrLuMvZzxj2zvruta','surhru5Fsu5wquXjrf9srvnpvvjdrq','surhru5Fsu5wquXjrf9ovu1crvi','sw52ywXPzcbMB3jTyxq6ig11C3qGyMuGB25Lig9Mia','EuDSBK4','Bwf0y2G','mtm0otvqvuLbqxi','suqGr2vUzxjHDg9YihjLC2vYDMf0Aw9UignVBMzPCM1LzdOG','CMvZzxj2zv9LEhrLBMq','B0vxrgK','suqGr2vUzxjHDg9YigLZigrPC2fIBgvK','x2rLzMf1BhrqAw5eAwDPDhm','ELbiAKi','sw52ywXPzcbWyxr0zxjUoIbTDxn0ignVBNrHAw4GyxqGBgvHC3qGB25LihbSywnLAg9SzgvYignOyxjHy3rLCIaOos9ol0eVys9ml1GVEc9il2GP','x2TLEvbYzwzPEa','swrhzw5LCMf0B3jfCNjVCG','C3rVCMvK','tNvTyMvYigrVzxmGBM90ig1HDgnOigv4CgvJDgvKigzVCM1HDcbWCMvMAxG','cMXVy2fSihvUCgSGpsb1BNbHy2SGB3iGDgfIBguUDw5WywnRcGOTlsbtDgvWide6igXHENKGCMvHCcbLEhbPCMvKihjLC2vYDMf0Aw9UCYaOy2fWifjfu0vsvKvFuKvbuf9cqvrdscKkBg9JywWGCMvHCgvKid0GmaPSB2nHBcbUB3DnCYa9iefsr1zBn10kBg9JywWGCNn2uhjLzML4id0GqvjhvLS4xqPSB2nHBcbLEhbPCMvKid0GCMvKAxmUy2fSBcGNwLjbtKDfqLLtq09srsCSieTfwvnBm10SicCTAw5MjYWGjYGNic4Uig5VD01ZlcaNteLnsvqNlcaWlca2ncKkzM9YigKGpsaXlcaJzxHWAxjLzcbKBWOGigXVy2fSigv4CfrVA2vUid0GzxHWAxjLzfTPxqOGigXVy2fSigv4CfjZDKTLEsa9ihjZDLbYzwzPEcaUlIbLEhbuB2TLBGOGigXVy2fSigv4CenVDw50zxiGpsbYzwrPCY5JywXSkcDir0vujYWGzxHWuNn2s2v5lcaNy291BNrLCICPcIaGAwyGzxHWq291BNrLCIb0AgvUcIaGicbYzwrPCY5JywXSkcDAqurejYWGs0vzu1SYxsWGzxHWq291BNrLCIWGzxHWq291BNrLCIKkicbLBMqkicbYzwrPCY5JywXSkcDeruWNlcbLEhbsC3zlzxKPcIaGCMvKAxmUy2fSBcGNwLjftsCSieTfwvnBm10Sigv4CfrVA2vUkqOGihjLyxbLzca9ihjLyxbLzcaRidekzw5KcGOTlsbtDgvWidi6igfSBg9JyxrLignVDw50zxiGkfPqt1bnsu4GCMv1C2uGyxrHDsbjtKnsihnLCsKkBg9JywWGy291BNrLCKLUDaPSB2nHBcbPC1jLDxnLzca9idakAwyGqvjhvLSXxsa9psaNmsCGDgHLBGOGigXVy2fSihiGpsbYzwrPCY5JywXSkcDAue9qtuLojYWGs0vzu1SYxsWGmsKkicbPzIaJCIa+idaGDgHLBGOGicaGy291BNrLCKLUDca9ihrVBNvTyMvYkhjBmv0PcIaGicbPC1jLDxnLzca9idekicbLBMqkzw5KcMLMig5VDcbJB3vUDgvYsw50ihrOzw4kicbJB3vUDgvYsw50id0GCMvKAxmUy2fSBcGNsu5duICSieTfwvnBmv0PcIaGBg9JywWGy3r0Bca9ihrVBNvTyMvYkefsr1zBmL0PcIaGAwyGy3r0Bca+idaGyw5KignVDw50zxjjBNqGpt0Gmsb0AgvUcIaGicbYzwrPCY5JywXSkcDfwfbjuKuNlcblrvLtwZfDlcbJDhrSkqOGigvUzaPLBMqkcI0Tifn0zxaGmZOGD3jPDguGCMvZzxj2yxrPB24GAgfZAcaRigLUzgv4icSGvfrmcMXVy2fSihjZDKTLEsa9iefsr1zBnf0kBg9JywWGCNn2vhrStxmGpsb0B251BwjLCIHbuKDwwZvDkqPSB2nHBcbLEhbPCMvZqxrnCYa9ihrVBNvTyMvYkefsr1zBnL0PcMXVy2fSig5HCMDZid0Gi0fsr1ykBg9JywWGzMLLBgrZid0GE30kzM9YigKGpsa5lcbUyxjNCYbKBWOGigzPzwXKC1SJzMLLBgrZicSGmv0GpsbbuKDww2LDcMvUzaPYzwrPCY5JywXSkcDiu0vujYWGCNn2s2v5lcaNy291BNrLCICSignVDw50zxjjBNqSicDPC1jLDxnLzcCSigLZuMv1C2vKlcb1BNbRkgzPzwXKCYKPcNjLzgLZlMnHBgWOj1bfwfbjuKuNlcbYC3zlzxKSihjZDLr0Be1ZkqPYzwrPCY5JywXSkcDAqurejYWGs0vzu1SZxsWGzxHWAxjLC0f0txmSiefsr1zBm10PcNjLzgLZlMnHBgWOj0vyueLsrsCSieTfwvnBm10Sig1HDgGUzMXVB3iOCNn2vhrStxmGlYaXmdaWksaRidyWkqOkCMv0DxjUihSGy291BNrLCKLUDcWGAxnszxvZzwqSihjLyxbLzcb9cG','Bwf4uMv0CNK','sLHgBhO','x2j1AwXKsxnZDwvKs2v5','Dgv4Da','AwrNzw4','x3jLC2vYDMvnyxHuveW','uMvZzxj2yxrPB24GBM90igzVDw5Kig9YigfSCMvHzhKGy29UC3vTzwq6ia','BgvUz3rO','z2v0','u2TXze8','x2vUywjSzwq','uMfUzg9TihjLC2vYDMf0Aw9UihvUzg8GzxjYB3iGkg9YCgHHBIbZBg90ig1HEsbYzw1HAw4P','C2vWyxjHDg9Y','surhru5Fsu5wquXjrf9nt0rf','x2rLzMf1BhrtzxjPywXqyxr0zxjU','zgzrD08','x2j1AwXKuMvZzxj2yxrPB25lzxLqCMvMAxG','x3zHBgLKyxrLuMvZB3vYy2u','EMXkEg0','AwrNzw5FAwrLBv9ZDg9Yzw54x2vYCM9Y','ks4Gsw5JCMvHC2uGBNvTrgLNAxrZlG','sw52ywXPzcbKAwDPDhm6ig11C3qGyMuGAw50zwDLCIa','x2LKzw1uveW','CMvSzwfZzq','C2v0','EgXbEMe','r05xs0u','surhru5FuKvtrvjwrv9nqvHFvfrm','AwrLBxbVDgvUy3LlzxK','x2j1AwXKu2vXs2v5','BuDmzfm','x3zHBgLKyxrLuMvZzxj2yxrPB25uB2TLBG','CNn2s2v5','mta5mJyWogf2D0P2ra','x2j1AwXKuMv1C2vlzxK','x2fSBg93uMvZzxq','x2DLDenVDw50zxjuveW','surhru5Fvu5juvvfx1jfvfjzx0vysefvu1rfra','sw52ywXPzcbTyxHszxrYEtOGBxvZDcbIzsbPBNrLz2vYideT','AwrNzw5FAwrLBv9OAxq','AwrNzw5FCMvZzxj2zv9VDMvYzMXVD19JB21Wzw5ZyxrPB25FzxjYB3i','A2v5CW','surhru5FreLtqujmruq','r0H6tey','ExL5Ew1Tzgq','x3vWzgf0zu1LDge','x3zHBgLKyxrLvfrm','vw5RBM93BIbTB2rLoIa','x3jLC2vYDMvezwzHDwX0vfrm'];a0_0x25a6=function(){return _0x14afbd;};return a0_0x25a6();}
@@ -1 +1 @@
1
- 'use strict';function a0_0x494a(){const _0x1de1ec=['Dw5RBM93BG','zgvIDwC','z2v0q2XPzw50','mtiXmta2n2fXyMvHDG','zw52','y3j5ChrV','AwrLBxbVDgvUy3LFy29UzMLNx2LUAxq','mta3nZy4m2P3swjoEG','CMv0CMLLDMu','x2vUywjSzwq','DhrS','AwrLBxbVDgvUy3LFC3rVCMvFzxjYB3i','nZi3mZy4wfzOENvt','BwvZC2fNzq','zw5HyMXLza','CMy6AwrLBtO','twPtDee','x3r0Ba','z2ztDuG','x2LUAxrdB25MAwC','ntq2ndC0Bvj2wvjK','lcbuveW6ia','mZa3mte3ofHyC2zqva','lI9YzwrPCY1JBgLLBNq','x2vUC3vYzuLUAxrPywXPEMvK','ndv2ywTYvgm','mLbVsNfWCq','swrLBxbVDgvUy3KGy29UzMLNDxjHDgLVBIbPBML0AwfSAxPLzcaTigvUywjSzwq6ia','lI9SB2DNzxi','AxnfBMfIBgvK','zgvMyxvSDa','zxHWB3j0CW','zxjYB3i','mZmYnJHlqMTQBMm','ndLky2nSu1i','CgfYC2u','x2LUAxrPywXPEMvK','AwrLBxbVDgvUy3LFBwLZCW','zMLSDgvY','CMfUzg9Tvvvjra','swrLBxbVDgvUy3KGy2fJAguGtuLtuW','AwrLBxbVDgvUy3LFCMv0CMLLDMvFzxjYB3i','odq0mtu0mgnlsgTqzG','Aw5MBW','swrLBxbVDgvUy3KGy2fJAguGseLu','swrLBxbVDgvUy3KGCMvZCg9UC2uGC3rVCMvK','nte1t3zcwhrk'];a0_0x494a=function(){return _0x1de1ec;};return a0_0x494a();}const a0_0x2311b9=a0_0x5e8f;(function(_0xbb3cc2,_0x3e7b42){const _0x4f6727=a0_0x5e8f,_0x54fd5f=_0xbb3cc2();while(!![]){try{const _0xa578a8=parseInt(_0x4f6727(0x1d8))/0x1*(-parseInt(_0x4f6727(0x1eb))/0x2)+-parseInt(_0x4f6727(0x1e7))/0x3+-parseInt(_0x4f6727(0x1f2))/0x4*(-parseInt(_0x4f6727(0x1ff))/0x5)+-parseInt(_0x4f6727(0x1e5))/0x6*(-parseInt(_0x4f6727(0x1f3))/0x7)+parseInt(_0x4f6727(0x1dd))/0x8*(parseInt(_0x4f6727(0x1ea))/0x9)+parseInt(_0x4f6727(0x1fb))/0xa+-parseInt(_0x4f6727(0x1d4))/0xb;if(_0xa578a8===_0x3e7b42)break;else _0x54fd5f['push'](_0x54fd5f['shift']());}catch(_0x4aeeb9){_0x54fd5f['push'](_0x54fd5f['shift']());}}}(a0_0x494a,0x8df51));function a0_0x5e8f(_0x14ec9b,_0xc181ec){_0x14ec9b=_0x14ec9b-0x1d1;const _0x494a57=a0_0x494a();let _0x5e8f20=_0x494a57[_0x14ec9b];if(a0_0x5e8f['rTrmCg']===undefined){var _0x4ccc9c=function(_0x5163bf){const _0x564bc0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x458413='',_0x1a24a1='';for(let _0x352a52=0x0,_0x272921,_0xa9036d,_0x588e9b=0x0;_0xa9036d=_0x5163bf['charAt'](_0x588e9b++);~_0xa9036d&&(_0x272921=_0x352a52%0x4?_0x272921*0x40+_0xa9036d:_0xa9036d,_0x352a52++%0x4)?_0x458413+=String['fromCharCode'](0xff&_0x272921>>(-0x2*_0x352a52&0x6)):0x0){_0xa9036d=_0x564bc0['indexOf'](_0xa9036d);}for(let _0x4bc76b=0x0,_0x1f6049=_0x458413['length'];_0x4bc76b<_0x1f6049;_0x4bc76b++){_0x1a24a1+='%'+('00'+_0x458413['charCodeAt'](_0x4bc76b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1a24a1);};a0_0x5e8f['HLgXPz']=_0x4ccc9c,a0_0x5e8f['ZheJKC']={},a0_0x5e8f['rTrmCg']=!![];}const _0x3ecbf0=_0x494a57[0x0],_0x3f0c20=_0x14ec9b+_0x3ecbf0,_0x301205=a0_0x5e8f['ZheJKC'][_0x3f0c20];return!_0x301205?(_0x5e8f20=a0_0x5e8f['HLgXPz'](_0x5e8f20),a0_0x5e8f['ZheJKC'][_0x3f0c20]=_0x5e8f20):_0x5e8f20=_0x301205,_0x5e8f20;}const redisClient=require(a0_0x2311b9(0x1e8)),{logger}=require(a0_0x2311b9(0x1ed)),crypto=require(a0_0x2311b9(0x1d6));class IdempotencyManager{constructor(){this['_enabled']=null,this['_ttl']=null,this['_initialized']=![];}['_initConfig'](){const _0x2aebd8=a0_0x2311b9;this[_0x2aebd8(0x1da)]=process['env']['IDEMPOTENCY_ENABLED']==='true',this['_ttl']=parseInt(process[_0x2aebd8(0x1d5)]['IDEMPOTENCY_TTL'],0xa)||0x12c,this[_0x2aebd8(0x1f5)]=!![],logger[_0x2aebd8(0x1fc)]({'event':_0x2aebd8(0x1d7),'enabled':this[_0x2aebd8(0x1da)],'ttl':this['_ttl']},_0x2aebd8(0x1ec)+this[_0x2aebd8(0x1da)]+_0x2aebd8(0x1e6)+this[_0x2aebd8(0x1e2)]+'s');}[a0_0x2311b9(0x1e9)](){const _0x1a0831=a0_0x2311b9;!this['_initialized']&&this[_0x1a0831(0x1e4)]();}get[a0_0x2311b9(0x1df)](){const _0x2f3e12=a0_0x2311b9;return this[_0x2f3e12(0x1e9)](),this[_0x2f3e12(0x1da)];}get['ttl'](){const _0x17d3e5=a0_0x2311b9;return this[_0x17d3e5(0x1e9)](),this[_0x17d3e5(0x1e2)];}[a0_0x2311b9(0x1ee)](){const _0x2f0af6=a0_0x2311b9;return this[_0x2f0af6(0x1df)];}['buildKey'](_0x3bb09f,_0x7d4649){const _0x535065=a0_0x2311b9,_0x34316c={'DDIGJ':_0x535065(0x1ef),'buVBW':_0x535065(0x1d1)},_0x42c8b1=_0x7d4649['path']['split']('/')[_0x535065(0x1f7)](Boolean),_0x393cb2=_0x42c8b1[0x0]||_0x34316c['DDIGJ'],_0x3347b5=_0x42c8b1[0x1]||_0x535065(0x1d1),_0x5044fa=_0x42c8b1[0x2]||_0x34316c['buVBW'];return _0x535065(0x1e0)+_0x393cb2+':'+_0x3347b5+':'+_0x5044fa+':'+_0x3bb09f;}async['store'](_0x41f4ca,_0x5a4b4c){const _0x1e0974=a0_0x2311b9,_0x1b6975={'MjStA':_0x1e0974(0x1fe)};if(!this['enabled'])return![];try{const _0xf67bcf=redisClient[_0x1e0974(0x1d3)]();return await _0xf67bcf['setex'](_0x41f4ca,this[_0x1e0974(0x1db)],JSON['stringify'](_0x5a4b4c)),logger[_0x1e0974(0x1d2)]({'event':'idempotency_store','key':_0x41f4ca,'ttl':this['ttl'],'statusCode':_0x5a4b4c['statusCode']},_0x1b6975[_0x1e0974(0x1e1)]),!![];}catch(_0xc044b4){return logger['error']({'event':_0x1e0974(0x1dc),'key':_0x41f4ca,'error':_0xc044b4['message']},'Idempotency\x20store\x20error:\x20'+_0xc044b4['message']),![];}}async[a0_0x2311b9(0x1d9)](_0x135b40){const _0x1bc743=a0_0x2311b9,_0x4e0d2d={'gfSuH':_0x1bc743(0x1f9),'czQPA':_0x1bc743(0x1fa)};if(!this['enabled'])return null;try{const _0x462542=redisClient['getClient'](),_0x1a2180=await _0x462542['get'](_0x135b40);if(_0x1a2180)return logger[_0x1bc743(0x1fc)]({'event':'idempotency_hit','key':_0x135b40},_0x1bc743(0x1fd)),JSON[_0x1bc743(0x1f4)](_0x1a2180);return logger['debug']({'event':_0x1bc743(0x1f6),'key':_0x135b40},_0x4e0d2d[_0x1bc743(0x1e3)]),null;}catch(_0x216956){return logger[_0x1bc743(0x1f1)]({'event':_0x4e0d2d['czQPA'],'key':_0x135b40,'error':_0x216956[_0x1bc743(0x1de)]},'Idempotency\x20retrieve\x20error:\x20'+_0x216956['message']),null;}}['generateKey'](_0x50f04a='req'){const _0xad1dc8=a0_0x2311b9;return _0x50f04a+'_'+crypto[_0xad1dc8(0x1f8)]();}['buildDeterministicKey'](_0x169122,_0x3abcce,_0x27f33f){return _0x169122+':'+_0x3abcce+':'+_0x27f33f;}}module[a0_0x2311b9(0x1f0)]=new IdempotencyManager();
1
+ 'use strict';function a0_0x49fd(){const _0x55b79a=['mtq2ndbjsNHuzM8','x3r0Ba','Cgf0Aa','CMTLAeu','swrLBxbVDgvUy3KGy29UzMLNDxjHDgLVBIbPBML0AwfSAxPLzcaTigvUywjSzwq6ia','mxvwwgH2rq','CMv0CMLLDMu','CMfUzg9Tvvvjra','mtbWAwvtBgO','BwvZC2fNzq','nJq3mujdA2Dhta','odb0werHvK4','mtCWExfLs3zY','zw5HyMXLza','x2vUywjSzwq','DhrS','CMvX','surftvbpvevoq1LFvfrm','ntC1ndmWn010Bxn2wG','zgvIDwC','zgvMyxvSDa','mZy0nZe3offxt0v5tG','Eefzwgm','Dw5RBM93BG','lI9YzwrPCY1JBgLLBNq','swrLBxbVDgvUy3KGCMvZCg9UC2uGC3rVCMvK','ndy0r2znu3vt','C3bSAxq','mtjJAeD6zKO','mta3nJa2mMPHA0DKDG','x2LUAxrPywXPEMvK','nZa3otmWm3LZwezJEq','zw52','lcbuveW6ia','x2LUAxrdB25MAwC','C3rYAw5NAwz5','mtqYnZy1r0jIyNfm','z2vUzxjHDgvlzxK','Aw5MBW'];a0_0x49fd=function(){return _0x55b79a;};return a0_0x49fd();}const a0_0x54755c=a0_0x2c4c;(function(_0x257d1f,_0x5032a4){const _0x2677bb=a0_0x2c4c,_0x8f89d6=_0x257d1f();while(!![]){try{const _0x2281b6=parseInt(_0x2677bb(0x109))/0x1*(parseInt(_0x2677bb(0x121))/0x2)+parseInt(_0x2677bb(0x10e))/0x3*(parseInt(_0x2677bb(0x11e))/0x4)+parseInt(_0x2677bb(0x110))/0x5*(parseInt(_0x2677bb(0x104))/0x6)+-parseInt(_0x2677bb(0x128))/0x7*(-parseInt(_0x2677bb(0x10f))/0x8)+-parseInt(_0x2677bb(0x119))/0x9*(-parseInt(_0x2677bb(0x10c))/0xa)+-parseInt(_0x2677bb(0x123))/0xb*(parseInt(_0x2677bb(0x120))/0xc)+-parseInt(_0x2677bb(0x116))/0xd;if(_0x2281b6===_0x5032a4)break;else _0x8f89d6['push'](_0x8f89d6['shift']());}catch(_0x51e606){_0x8f89d6['push'](_0x8f89d6['shift']());}}}(a0_0x49fd,0x603c7));const redisClient=require(a0_0x54755c(0x11c)),{logger}=require('./logger'),crypto=require('crypto');class IdempotencyManager{constructor(){const _0x133d52=a0_0x54755c;this['_enabled']=null,this[_0x133d52(0x105)]=null,this[_0x133d52(0x122)]=![];}[a0_0x54755c(0x126)](){const _0x1c7c89=a0_0x54755c,_0x154329={'xAYXc':function(_0xd8a290,_0x4072eb){return _0xd8a290===_0x4072eb;},'ZBlLa':'true','juEfW':function(_0x441593,_0x2c2be1,_0x4f0317){return _0x441593(_0x2c2be1,_0x4f0317);}};this['_enabled']=_0x154329[_0x1c7c89(0x11a)](process[_0x1c7c89(0x124)]['IDEMPOTENCY_ENABLED'],_0x154329['ZBlLa']),this['_ttl']=_0x154329['juEfW'](parseInt,process[_0x1c7c89(0x124)][_0x1c7c89(0x115)],0xa)||0x12c,this[_0x1c7c89(0x122)]=!![],logger['info']({'event':'idempotency_config_init','enabled':this[_0x1c7c89(0x112)],'ttl':this['_ttl']},_0x1c7c89(0x108)+this[_0x1c7c89(0x112)]+_0x1c7c89(0x125)+this[_0x1c7c89(0x105)]+'s');}['_ensureInitialized'](){!this['_initialized']&&this['_initConfig']();}get[a0_0x54755c(0x111)](){const _0x47290d=a0_0x54755c;return this['_ensureInitialized'](),this[_0x47290d(0x112)];}get[a0_0x54755c(0x113)](){const _0x3f79ca=a0_0x54755c;return this['_ensureInitialized'](),this[_0x3f79ca(0x105)];}['isEnabled'](){return this['enabled'];}['buildKey'](_0x119e2f,_0x47f671){const _0x284b78=a0_0x54755c,_0x4b5852=_0x47f671[_0x284b78(0x106)][_0x284b78(0x11f)]('/')['filter'](Boolean),_0x221696=_0x4b5852[0x0]||_0x284b78(0x118),_0x4c8b0e=_0x4b5852[0x1]||_0x284b78(0x11b),_0x20c31b=_0x4b5852[0x2]||'unknown';return'rf:idem:'+_0x221696+':'+_0x4c8b0e+':'+_0x20c31b+':'+_0x119e2f;}async['store'](_0x51df86,_0x10e653){const _0x171286=a0_0x54755c,_0x6e83c4={'IqGHr':_0x171286(0x11d),'LbeUB':'idempotency_store_error'};if(!this['enabled'])return![];try{const _0x2e5236=redisClient['getClient']();return await _0x2e5236['setex'](_0x51df86,this[_0x171286(0x113)],JSON[_0x171286(0x127)](_0x10e653)),logger[_0x171286(0x117)]({'event':'idempotency_store','key':_0x51df86,'ttl':this[_0x171286(0x113)],'statusCode':_0x10e653['statusCode']},_0x6e83c4['IqGHr']),!![];}catch(_0x1197a){return logger['error']({'event':_0x6e83c4['LbeUB'],'key':_0x51df86,'error':_0x1197a['message']},'Idempotency\x20store\x20error:\x20'+_0x1197a['message']),![];}}async[a0_0x54755c(0x10a)](_0x61833f){const _0x1ac77c=a0_0x54755c,_0x29e76f={'rkehE':'Idempotency\x20cache\x20MISS','ilcuC':'idempotency_retrieve_error'};if(!this['enabled'])return null;try{const _0xd4e199=redisClient['getClient'](),_0x352c5d=await _0xd4e199['get'](_0x61833f);if(_0x352c5d)return logger[_0x1ac77c(0x103)]({'event':'idempotency_hit','key':_0x61833f},'Idempotency\x20cache\x20HIT'),JSON['parse'](_0x352c5d);return logger[_0x1ac77c(0x117)]({'event':'idempotency_miss','key':_0x61833f},_0x29e76f[_0x1ac77c(0x107)]),null;}catch(_0x4ca619){return logger['error']({'event':_0x29e76f['ilcuC'],'key':_0x61833f,'error':_0x4ca619[_0x1ac77c(0x10d)]},'Idempotency\x20retrieve\x20error:\x20'+_0x4ca619['message']),null;}}[a0_0x54755c(0x102)](_0x2d34ed=a0_0x54755c(0x114)){const _0x35b9a9=a0_0x54755c;return _0x2d34ed+'_'+crypto[_0x35b9a9(0x10b)]();}['buildDeterministicKey'](_0x59ce5c,_0xfd51dc,_0x1f0e2e){return _0x59ce5c+':'+_0xfd51dc+':'+_0x1f0e2e;}}function a0_0x2c4c(_0x1df547,_0x5553d9){_0x1df547=_0x1df547-0x102;const _0x49fd8c=a0_0x49fd();let _0x2c4ced=_0x49fd8c[_0x1df547];if(a0_0x2c4c['iXmPQs']===undefined){var _0x54a476=function(_0x30ae23){const _0x53e1d9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5bd949='',_0x35ae2e='';for(let _0x5f39dd=0x0,_0x36c33f,_0x414d5f,_0x4fb45d=0x0;_0x414d5f=_0x30ae23['charAt'](_0x4fb45d++);~_0x414d5f&&(_0x36c33f=_0x5f39dd%0x4?_0x36c33f*0x40+_0x414d5f:_0x414d5f,_0x5f39dd++%0x4)?_0x5bd949+=String['fromCharCode'](0xff&_0x36c33f>>(-0x2*_0x5f39dd&0x6)):0x0){_0x414d5f=_0x53e1d9['indexOf'](_0x414d5f);}for(let _0x29910e=0x0,_0x3b6f30=_0x5bd949['length'];_0x29910e<_0x3b6f30;_0x29910e++){_0x35ae2e+='%'+('00'+_0x5bd949['charCodeAt'](_0x29910e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x35ae2e);};a0_0x2c4c['gyvhLZ']=_0x54a476,a0_0x2c4c['NKpgGb']={},a0_0x2c4c['iXmPQs']=!![];}const _0x56d6e8=_0x49fd8c[0x0],_0xdabd88=_0x1df547+_0x56d6e8,_0x612cff=a0_0x2c4c['NKpgGb'][_0xdabd88];return!_0x612cff?(_0x2c4ced=a0_0x2c4c['gyvhLZ'](_0x2c4ced),a0_0x2c4c['NKpgGb'][_0xdabd88]=_0x2c4ced):_0x2c4ced=_0x612cff,_0x2c4ced;}module['exports']=new IdempotencyManager();
@@ -1 +1 @@
1
- function a0_0x11ca(){const _0x241426=['CMvWBgfJzq','DvPXEem','qLHds3C','mZzHr2vWrLm','DMfSAwrHDgvfBwfPBa','mtG2mJyWmgvfsxDoAq','CuzrtKK','sw52ywXPzcbWAg9UzsbMB3jTyxq','qMf0y2GGDMfSAwrHDgLVBIbJB21WBgv0zwq','BwfW','yMf0y2HwywXPzgf0zvjVD3m','DxjS','zM9YBwf0','BgvUz3rO','C2v0','mJmZota4nxHQsNjRBW','DMfSAwrHDgvgAwvSzezVCM1HDa','nJi2nZL3B1bLwgW','t09Qvvy','uMvXDwLYzwqGzMLLBgqGAxmGzw1WDhK','BNvTyMvY','Aw5MBW','DMfSAwrHDgvvCMW','ChvZAa','mtKZnJu5C1z1B3j1','nJq0nZy2meLSrwP1ua','yMf0y2HFDMfSAwrHDgLVBL9JB21WBgv0zq','DgvZDa','AgfZ','mJy5mZG4EMjvANni','zM9YrwfJAa','A2v5CW','mta0ndm0nfH3D2Ltta','mZbWC21wvLq','DMfSAwrHDgvoDw1Izxi','A0HRteS','mtbKD3bLs08','CgHVBMu','t0j5Cwe','DMfSAwrHDgvqAg9Uzq'];a0_0x11ca=function(){return _0x241426;};return a0_0x11ca();}const a0_0x2cf49a=a0_0x374b;function a0_0x374b(_0x209154,_0x32c3c4){_0x209154=_0x209154-0x138;const _0x11ca78=a0_0x11ca();let _0x374b89=_0x11ca78[_0x209154];if(a0_0x374b['QRagXw']===undefined){var _0x1ab00d=function(_0x5ad45f){const _0x5f04d5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x23403d='',_0x568d46='';for(let _0x3f8d2f=0x0,_0x2f33ac,_0x1e60d0,_0x5d0375=0x0;_0x1e60d0=_0x5ad45f['charAt'](_0x5d0375++);~_0x1e60d0&&(_0x2f33ac=_0x3f8d2f%0x4?_0x2f33ac*0x40+_0x1e60d0:_0x1e60d0,_0x3f8d2f++%0x4)?_0x23403d+=String['fromCharCode'](0xff&_0x2f33ac>>(-0x2*_0x3f8d2f&0x6)):0x0){_0x1e60d0=_0x5f04d5['indexOf'](_0x1e60d0);}for(let _0x18c849=0x0,_0x193dac=_0x23403d['length'];_0x18c849<_0x193dac;_0x18c849++){_0x568d46+='%'+('00'+_0x23403d['charCodeAt'](_0x18c849)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x568d46);};a0_0x374b['qjkfrE']=_0x1ab00d,a0_0x374b['oFxhmz']={},a0_0x374b['QRagXw']=!![];}const _0x44ebe6=_0x11ca78[0x0],_0x38dcd0=_0x209154+_0x44ebe6,_0x45e42e=a0_0x374b['oFxhmz'][_0x38dcd0];return!_0x45e42e?(_0x374b89=a0_0x374b['qjkfrE'](_0x374b89),a0_0x374b['oFxhmz'][_0x38dcd0]=_0x374b89):_0x374b89=_0x45e42e,_0x374b89;}(function(_0x4538bc,_0x19dcbd){const _0x33191d=a0_0x374b,_0x1f0541=_0x4538bc();while(!![]){try{const _0x5d259f=-parseInt(_0x33191d(0x154))/0x1+-parseInt(_0x33191d(0x13f))/0x2*(-parseInt(_0x33191d(0x15b))/0x3)+-parseInt(_0x33191d(0x148))/0x4+-parseInt(_0x33191d(0x13c))/0x5*(parseInt(_0x33191d(0x138))/0x6)+-parseInt(_0x33191d(0x152))/0x7+parseInt(_0x33191d(0x13b))/0x8*(parseInt(_0x33191d(0x146))/0x9)+parseInt(_0x33191d(0x15c))/0xa;if(_0x5d259f===_0x19dcbd)break;else _0x1f0541['push'](_0x1f0541['shift']());}catch(_0x5dfa0e){_0x1f0541['push'](_0x1f0541['shift']());}}}(a0_0x11ca,0x575c7));const {logger}=require('./logger');class ImportValidator{['validateRow'](_0x11b83b,_0x55d267=[],_0x526a8e={}){const _0xa10320=a0_0x374b,_0x5a17dc={'OOjUV':function(_0x48ac00,_0x52dfe3){return _0x48ac00===_0x52dfe3;},'hQusZ':function(_0x1f2320,_0x1c2ada){return _0x1f2320===_0x1c2ada;},'kHkLK':function(_0x5ee609,_0x16280c){return _0x5ee609===_0x16280c;}},_0x3cc78a=[];return _0x55d267[_0xa10320(0x139)](_0x232884=>{const _0x21226f=_0xa10320,_0x1a8dd7=_0x11b83b[_0x232884];(_0x5a17dc[_0x21226f(0x155)](_0x1a8dd7,null)||_0x1a8dd7===undefined||_0x5a17dc['hQusZ'](_0x1a8dd7,''))&&_0x3cc78a['push']({'field':_0x232884,'type':'required','message':_0x21226f(0x156)});}),Object[_0xa10320(0x13a)](_0x526a8e)[_0xa10320(0x139)](_0x363b81=>{const _0x3f26c9=_0xa10320,_0x3afb8c=_0x11b83b[_0x363b81],_0x41fcf1=_0x526a8e[_0x363b81];if(_0x3afb8c===null||_0x5a17dc[_0x3f26c9(0x13e)](_0x3afb8c,undefined)||_0x3afb8c==='')return;const _0x5c1d0e=this[_0x3f26c9(0x153)](_0x363b81,_0x3afb8c,_0x41fcf1);_0x5c1d0e&&_0x3cc78a[_0x3f26c9(0x15a)](_0x5c1d0e);}),_0x3cc78a;}[a0_0x2cf49a(0x153)](_0x255728,_0x52eff9,_0x4c5536){const _0xe0b79b=a0_0x2cf49a,_0x4df326={'ODgAV':'email','xTPWm':_0xe0b79b(0x140),'BXCKw':_0xe0b79b(0x14e)};switch(_0x4c5536){case _0x4df326['ODgAV']:return this[_0xe0b79b(0x147)](_0x255728,_0x52eff9);case _0x4df326['xTPWm']:return this['validatePhone'](_0x255728,_0x52eff9);case _0x4df326[_0xe0b79b(0x145)]:return this[_0xe0b79b(0x159)](_0x255728,_0x52eff9);case _0xe0b79b(0x157):return this[_0xe0b79b(0x13d)](_0x255728,_0x52eff9);default:return null;}}[a0_0x2cf49a(0x147)](_0x1ef514,_0x5eb20c){const _0x5c75a1=a0_0x2cf49a,_0x21f481={'zDWpC':function(_0x20c339,_0x987878){return _0x20c339(_0x987878);}},_0x46924c=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;if(!_0x46924c[_0x5c75a1(0x15e)](_0x21f481['zDWpC'](String,_0x5eb20c)))return{'field':_0x1ef514,'type':_0x5c75a1(0x14f),'message':'Invalid\x20email\x20format'};return null;}[a0_0x2cf49a(0x142)](_0x3d6f4a,_0x5b760f){const _0x310e9e=a0_0x2cf49a,_0x5b267d={'qFQNI':'format'},_0x395ef3=String(_0x5b760f)[_0x310e9e(0x143)](/\s+/g,''),_0x259e8f=/^[\d\+\-\(\)]+$/;if(!_0x259e8f[_0x310e9e(0x15e)](_0x395ef3)||_0x395ef3[_0x310e9e(0x150)]<0x8)return{'field':_0x3d6f4a,'type':_0x5b267d[_0x310e9e(0x149)],'message':_0x310e9e(0x14a)};return null;}['validateUrl'](_0x59ddf2,_0x44b7fe){const _0x3304df=a0_0x2cf49a,_0x286594={'OByqa':function(_0x3923e0,_0x360188){return _0x3923e0(_0x360188);},'uZqxC':'Invalid\x20URL\x20format'};try{return new URL(_0x286594[_0x3304df(0x141)](String,_0x44b7fe)),null;}catch(_0xe2b1b3){return{'field':_0x59ddf2,'type':'format','message':_0x286594[_0x3304df(0x144)]};}}[a0_0x2cf49a(0x13d)](_0x418fb2,_0x5712be){const _0x4eebf8=a0_0x2cf49a;if(isNaN(_0x5712be))return{'field':_0x418fb2,'type':_0x4eebf8(0x14f),'message':'Invalid\x20number\x20format'};return null;}['detectDuplicatesInFile'](_0x27d05e,_0x2b3e5b){const _0x5cc06a=a0_0x2cf49a,_0x11ebba=new Map(),_0x34e94e=[];return _0x27d05e[_0x5cc06a(0x139)]((_0x345133,_0x564a99)=>{const _0x3201a4=_0x5cc06a,_0x55deba=_0x2b3e5b[_0x3201a4(0x14c)](_0x515874=>_0x345133[_0x515874])['join']('|');_0x11ebba[_0x3201a4(0x15f)](_0x55deba)?_0x34e94e['push']({'rowIndex':_0x564a99,'duplicateOf':_0x11ebba['get'](_0x55deba),'key':_0x55deba}):_0x11ebba[_0x3201a4(0x151)](_0x55deba,_0x564a99);}),_0x34e94e;}[a0_0x2cf49a(0x14d)](_0x100539,_0x3a2ed4,_0x5c1afa){const _0x3a0a73=a0_0x2cf49a,_0x2e7589=[];return _0x100539['forEach']((_0x24418b,_0x564428)=>{const _0x3b8f64=this['validateRow'](_0x24418b,_0x3a2ed4,_0x5c1afa);_0x3b8f64['length']>0x0&&_0x2e7589['push']({'rowIndex':_0x564428,'rowData':_0x24418b,'errors':_0x3b8f64});}),logger[_0x3a0a73(0x158)]({'event':_0x3a0a73(0x15d),'totalRows':_0x100539['length'],'errorCount':_0x2e7589[_0x3a0a73(0x150)]},_0x3a0a73(0x14b)),_0x2e7589;}}module['exports']=new ImportValidator();
1
+ const a0_0x3d9e8e=a0_0x4f50;(function(_0x12ef04,_0x4183ee){const _0x13185c=a0_0x4f50,_0x36e258=_0x12ef04();while(!![]){try{const _0x346459=-parseInt(_0x13185c(0x120))/0x1+parseInt(_0x13185c(0x10f))/0x2+parseInt(_0x13185c(0x113))/0x3+-parseInt(_0x13185c(0x11d))/0x4+-parseInt(_0x13185c(0x115))/0x5+parseInt(_0x13185c(0x11a))/0x6+parseInt(_0x13185c(0x118))/0x7*(parseInt(_0x13185c(0x123))/0x8);if(_0x346459===_0x4183ee)break;else _0x36e258['push'](_0x36e258['shift']());}catch(_0x21cb53){_0x36e258['push'](_0x36e258['shift']());}}}(a0_0x283e,0xb3e1b));const {logger}=require('./logger');function a0_0x4f50(_0x6a36a8,_0x3d4506){_0x6a36a8=_0x6a36a8-0xfd;const _0x283e43=a0_0x283e();let _0x4f5014=_0x283e43[_0x6a36a8];if(a0_0x4f50['LPOgpC']===undefined){var _0x5660f0=function(_0x2392f2){const _0x4eeeb7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x526531='',_0x1b6b91='';for(let _0x505c41=0x0,_0x363a0d,_0xd04ea9,_0x1e8498=0x0;_0xd04ea9=_0x2392f2['charAt'](_0x1e8498++);~_0xd04ea9&&(_0x363a0d=_0x505c41%0x4?_0x363a0d*0x40+_0xd04ea9:_0xd04ea9,_0x505c41++%0x4)?_0x526531+=String['fromCharCode'](0xff&_0x363a0d>>(-0x2*_0x505c41&0x6)):0x0){_0xd04ea9=_0x4eeeb7['indexOf'](_0xd04ea9);}for(let _0x4eb1b4=0x0,_0xfeade6=_0x526531['length'];_0x4eb1b4<_0xfeade6;_0x4eb1b4++){_0x1b6b91+='%'+('00'+_0x526531['charCodeAt'](_0x4eb1b4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1b6b91);};a0_0x4f50['FDxzrX']=_0x5660f0,a0_0x4f50['tPkqtp']={},a0_0x4f50['LPOgpC']=!![];}const _0xa26393=_0x283e43[0x0],_0x4e9956=_0x6a36a8+_0xa26393,_0x3cfbb1=a0_0x4f50['tPkqtp'][_0x4e9956];return!_0x3cfbb1?(_0x4f5014=a0_0x4f50['FDxzrX'](_0x4f5014),a0_0x4f50['tPkqtp'][_0x4e9956]=_0x4f5014):_0x4f5014=_0x3cfbb1,_0x4f5014;}class ImportValidator{[a0_0x3d9e8e(0x10a)](_0x13cab0,_0x1f09e1=[],_0x1353ba={}){const _0x432332=a0_0x3d9e8e,_0x4b59ee={'mbXIL':function(_0xfe02d8,_0x4ed6c7){return _0xfe02d8===_0x4ed6c7;},'BLNTy':function(_0x16d554,_0x106348){return _0x16d554===_0x106348;}},_0x4ab130=[];return _0x1f09e1[_0x432332(0xfd)](_0x1609f0=>{const _0x1451f5=_0x432332,_0x331c2f=_0x13cab0[_0x1609f0];(_0x4b59ee[_0x1451f5(0x11f)](_0x331c2f,null)||_0x4b59ee[_0x1451f5(0x11f)](_0x331c2f,undefined)||_0x331c2f==='')&&_0x4ab130['push']({'field':_0x1609f0,'type':_0x1451f5(0x112),'message':'Required\x20field\x20is\x20empty'});}),Object['keys'](_0x1353ba)['forEach'](_0x2c3e81=>{const _0x4f9900=_0x432332,_0x36fb04=_0x13cab0[_0x2c3e81],_0x4e746b=_0x1353ba[_0x2c3e81];if(_0x4b59ee[_0x4f9900(0x11f)](_0x36fb04,null)||_0x36fb04===undefined||_0x4b59ee['BLNTy'](_0x36fb04,''))return;const _0x3c1fd5=this[_0x4f9900(0x11e)](_0x2c3e81,_0x36fb04,_0x4e746b);_0x3c1fd5&&_0x4ab130[_0x4f9900(0x116)](_0x3c1fd5);}),_0x4ab130;}['validateFieldFormat'](_0x228867,_0x268b24,_0x54d29e){const _0x2a3e45=a0_0x3d9e8e,_0x8a645d={'bXKGQ':_0x2a3e45(0x107),'FkLtW':'url'};switch(_0x54d29e){case _0x8a645d['bXKGQ']:return this[_0x2a3e45(0xff)](_0x228867,_0x268b24);case _0x2a3e45(0x101):return this[_0x2a3e45(0x106)](_0x228867,_0x268b24);case _0x8a645d[_0x2a3e45(0x109)]:return this[_0x2a3e45(0x10d)](_0x228867,_0x268b24);case _0x2a3e45(0x11c):return this['validateNumber'](_0x228867,_0x268b24);default:return null;}}['validateEmail'](_0x4e0704,_0x48e389){const _0x1c9710=a0_0x3d9e8e,_0x41e2bd={'jbhzq':'format','MEegO':'Invalid\x20email\x20format'},_0x1c37cc=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;if(!_0x1c37cc['test'](String(_0x48e389)))return{'field':_0x4e0704,'type':_0x41e2bd['jbhzq'],'message':_0x41e2bd[_0x1c9710(0x102)]};return null;}[a0_0x3d9e8e(0x106)](_0x220164,_0x3744ba){const _0x16cd78=a0_0x3d9e8e,_0x2858ad={'NrwrM':function(_0x44fdcb,_0xa2634){return _0x44fdcb(_0xa2634);},'YXnwh':_0x16cd78(0x122)},_0x53e3a4=_0x2858ad[_0x16cd78(0x104)](String,_0x3744ba)[_0x16cd78(0x119)](/\s+/g,''),_0x380a3f=/^[\d\+\-\(\)]+$/;if(!_0x380a3f[_0x16cd78(0x121)](_0x53e3a4)||_0x53e3a4['length']<0x8)return{'field':_0x220164,'type':_0x2858ad[_0x16cd78(0x108)],'message':'Invalid\x20phone\x20format'};return null;}['validateUrl'](_0x856918,_0x5d83b6){const _0x2e17ea=a0_0x3d9e8e;try{return new URL(String(_0x5d83b6)),null;}catch(_0x66cf8a){return{'field':_0x856918,'type':_0x2e17ea(0x122),'message':_0x2e17ea(0x11b)};}}[a0_0x3d9e8e(0xfe)](_0x299d1a,_0x59af3d){const _0x3ab067=a0_0x3d9e8e,_0x2f9160={'nAnKe':'format'};if(isNaN(_0x59af3d))return{'field':_0x299d1a,'type':_0x2f9160[_0x3ab067(0x100)],'message':_0x3ab067(0x103)};return null;}['detectDuplicatesInFile'](_0x367597,_0x1f432b){const _0x389e54=new Map(),_0x3245f2=[];return _0x367597['forEach']((_0x987f34,_0x1d5420)=>{const _0x385190=a0_0x4f50,_0x21fdd0=_0x1f432b['map'](_0x3040c3=>_0x987f34[_0x3040c3])['join']('|');_0x389e54['has'](_0x21fdd0)?_0x3245f2['push']({'rowIndex':_0x1d5420,'duplicateOf':_0x389e54[_0x385190(0x10e)](_0x21fdd0),'key':_0x21fdd0}):_0x389e54[_0x385190(0x105)](_0x21fdd0,_0x1d5420);}),_0x3245f2;}[a0_0x3d9e8e(0x10c)](_0x5b012e,_0x356d33,_0x347733){const _0xf77aa2=a0_0x3d9e8e,_0x111b85={'nKiUB':function(_0x617b6e,_0x135d93){return _0x617b6e>_0x135d93;},'ERYmf':'batch_validation_complete','dGPMb':'Batch\x20validation\x20completed'},_0x88fa85=[];return _0x5b012e['forEach']((_0x4ec837,_0x172741)=>{const _0x304b25=a0_0x4f50,_0x34e98d=this[_0x304b25(0x10a)](_0x4ec837,_0x356d33,_0x347733);_0x111b85[_0x304b25(0x110)](_0x34e98d['length'],0x0)&&_0x88fa85[_0x304b25(0x116)]({'rowIndex':_0x172741,'rowData':_0x4ec837,'errors':_0x34e98d});}),logger[_0xf77aa2(0x111)]({'event':_0x111b85[_0xf77aa2(0x10b)],'totalRows':_0x5b012e[_0xf77aa2(0x117)],'errorCount':_0x88fa85['length']},_0x111b85['dGPMb']),_0x88fa85;}}function a0_0x283e(){const _0x2f25d2=['Aw5MBW','CMvXDwLYzwq','nZiZmZCYtxz3tvH2','zxHWB3j0CW','nJKZodq4nvfdq0zrvW','ChvZAa','BgvUz3rO','mJfwD091ENi','CMvWBgfJzq','mJaYntGYohvvrLzmEq','sw52ywXPzcbvuKWGzM9YBwf0','BNvTyMvY','ntCYmtKYDunqBLHc','DMfSAwrHDgvgAwvSzezVCM1HDa','BwjysuW','mti0nJeWneTsv3b3uq','DgvZDa','zM9YBwf0','ntmZmJq3mKTHDxfHyW','zM9YrwfJAa','DMfSAwrHDgvoDw1Izxi','DMfSAwrHDgvfBwfPBa','BKfUs2u','CgHVBMu','tuvLz08','sw52ywXPzcbUDw1IzxiGzM9YBwf0','tNj3CK0','C2v0','DMfSAwrHDgvqAg9Uzq','zw1HAwW','wvHUD2G','rMTmDfC','DMfSAwrHDgvsB3C','rvjzBwy','yMf0y2HwywXPzgf0zvjVD3m','DMfSAwrHDgvvCMW','z2v0','mtG3mdqXmef3uMTNEq','BKTPvui'];a0_0x283e=function(){return _0x2f25d2;};return a0_0x283e();}module[a0_0x3d9e8e(0x114)]=new ImportValidator();