@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.
- package/SECURITY.md +83 -4
- package/bin/sdf-tools.exe +0 -0
- package/build-info.json +2 -2
- package/cli/consumer-deploy.js +1 -1
- package/cli/consumer.js +1 -1
- package/generators/cli/dashboard/create.js +4 -1
- package/generators/cli/endpoint/create.js +1 -1
- package/generators/cli/key/generate.js +2 -1
- package/generators/cli/key/revoke.js +2 -1
- package/generators/cli/payload/diff.js +3 -2
- package/generators/cli/payload/generate.js +3 -2
- package/generators/cli/payload/sync.js +3 -2
- package/generators/cli/payload/validate.js +3 -2
- package/generators/cli/processor/create.js +14 -3
- package/generators/cli/project/delete.js +2 -1
- package/generators/cli/query/validate.js +3 -2
- package/generators/cli/schema/apply.js +3 -2
- package/generators/cli/schema/describe.js +3 -2
- package/generators/cli/schema/diff.js +3 -2
- package/generators/cli/schema/introspect.js +3 -2
- package/generators/cli/schema/list.js +3 -2
- package/generators/cli/schema/migrate.js +3 -2
- package/generators/lib/migration/audit-table-runner.js +213 -215
- package/generators/lib/payload/payload-runner.js +1 -1
- package/generators/lib/templates/dashboard-catalog.js +1 -437
- package/generators/lib/templates/db-connection-env.js +1 -212
- package/generators/lib/templates/dbschema-catalog.js +1 -489
- package/generators/lib/templates/field-validation-catalog.js +1 -531
- package/generators/lib/templates/mysql-template.js +1 -3863
- package/generators/lib/templates/oracle-template.js +1 -3915
- package/generators/lib/templates/postgres-template.js +1 -5838
- package/generators/lib/templates/query-declarative-catalog.js +1 -199
- package/generators/lib/templates/sqlite-template.js +1 -3440
- package/generators/lib/utils/env-manager.js +6 -0
- package/generators/lib/utils/path-validator.js +71 -0
- package/generators/lib/validators/payload-validator.js +1 -2
- package/integrity-manifest.json +28 -10
- package/package.json +11 -3
- package/scripts/verify-integrity.js +1 -1
- package/server.js +1 -1
- package/src/components/handlers/adjust_handler.js +1 -1
- package/src/components/handlers/audit_handler.js +1 -1
- package/src/components/handlers/delete_handler.js +1 -1
- package/src/components/handlers/export_handler.js +1 -1
- package/src/components/handlers/import_handler.js +1 -1
- package/src/components/handlers/insert_handler.js +1 -1
- package/src/components/handlers/update_handler.js +1 -1
- package/src/components/handlers/upload_handler.js +1 -1
- package/src/components/handlers/workflow_handler.js +1 -1
- package/src/components/integrations/webhook.js +1 -1
- package/src/consumers/baseConsumer.js +1 -1
- package/src/consumers/declarativeMapper.js +1 -1
- package/src/consumers/handlers/apiHandler.js +1 -1
- package/src/consumers/handlers/consoleHandler.js +1 -1
- package/src/consumers/handlers/databaseHandler.js +1 -1
- package/src/consumers/handlers/index.js +1 -1
- package/src/consumers/handlers/kafkaHandler.js +1 -1
- package/src/consumers/index.js +1 -1
- package/src/consumers/messageTransformer.js +1 -1
- package/src/consumers/validator.js +1 -1
- package/src/core/db/dialect/base-dialect.js +1 -1
- package/src/core/db/dialect/index.js +1 -1
- package/src/core/db/dialect/mysql-dialect.js +1 -1
- package/src/core/db/dialect/oracle-dialect.js +1 -1
- package/src/core/db/dialect/postgres-dialect.js +1 -1
- package/src/core/db/dialect/sqlite-dialect.js +1 -1
- package/src/core/db/flatten-helper.js +1 -1
- package/src/core/db/query-builder-error.js +1 -1
- package/src/core/db/query-builder.js +1 -1
- package/src/core/db/relation-helper.js +1 -1
- package/src/core/handlers/delete_handler.js +1 -1
- package/src/core/handlers/insert_handler.js +1 -1
- package/src/core/handlers/update_handler.js +1 -1
- package/src/core/models/base-model.js +1 -1
- package/src/core/utils/cache-manager.js +1 -1
- package/src/core/utils/component-engine.js +1 -1
- package/src/core/utils/context-builder.js +1 -1
- package/src/core/utils/datetime-formatter.js +1 -1
- package/src/core/utils/datetime-parser.js +1 -1
- package/src/core/utils/db.js +1 -1
- package/src/core/utils/logger.js +1 -1
- package/src/core/utils/payload-loader.js +1 -1
- package/src/core/utils/security-checks.js +1 -1
- package/src/middleware/body-options.js +1 -1
- package/src/middleware/cors.js +1 -1
- package/src/middleware/idempotency.js +1 -1
- package/src/middleware/rate-limiter.js +1 -1
- package/src/middleware/request-logger.js +1 -1
- package/src/middleware/security-headers.js +1 -1
- package/src/models/base-model-mysql.js +1 -1
- package/src/models/base-model-oracle.js +1 -1
- package/src/models/base-model-sqlite.js +1 -1
- package/src/models/base-model.js +1 -1
- package/src/pro/caching/redis-client.js +1 -1
- package/src/pro/caching/redis-helper.js +1 -1
- package/src/pro/consumers/baseConsumer.js +1 -1
- package/src/pro/consumers/declarativeMapper.js +1 -1
- package/src/pro/consumers/handlers/apiHandler.js +1 -1
- package/src/pro/consumers/handlers/consoleHandler.js +1 -1
- package/src/pro/consumers/handlers/databaseHandler.js +1 -1
- package/src/pro/consumers/handlers/index.js +1 -1
- package/src/pro/consumers/handlers/kafkaHandler.js +1 -1
- package/src/pro/consumers/index.js +1 -1
- package/src/pro/consumers/messageTransformer.js +1 -1
- package/src/pro/consumers/validator.js +1 -1
- package/src/pro/database/base-model-mysql.js +1 -1
- package/src/pro/database/base-model-oracle.js +1 -1
- package/src/pro/database/base-model-sqlite.js +1 -1
- package/src/pro/database/db-mysql.js +1 -1
- package/src/pro/database/db-oracle.js +1 -1
- package/src/pro/database/db-sqlite.js +1 -1
- package/src/pro/excel/excel-generator.js +1 -1
- package/src/pro/excel/excel-parser.js +1 -1
- package/src/pro/excel/export-service.js +1 -1
- package/src/pro/excel/export_handler.js +1 -1
- package/src/pro/excel/import-service.js +1 -1
- package/src/pro/excel/import-validator.js +1 -1
- package/src/pro/excel/import_handler.js +1 -1
- package/src/pro/excel/upsert-builder.js +1 -1
- package/src/pro/idgen/idgen-routes.js +1 -1
- package/src/pro/integrations/lookup-resolver.js +1 -1
- package/src/pro/integrations/upload-handler-v2.js +1 -1
- package/src/pro/integrations/upload-handler.js +1 -1
- package/src/pro/integrations/webhook.js +1 -1
- package/src/pro/locking/lock-routes.js +1 -1
- package/src/pro/locking/resource-lock-manager.js +1 -1
- package/src/pro/messaging/kafkaConsumerService.js +1 -1
- package/src/pro/messaging/kafkaService.js +1 -1
- package/src/pro/messaging/messagehubService.js +1 -1
- package/src/pro/messaging/rabbitmqService.js +1 -1
- package/src/pro/scheduler/job-manager.js +1 -1
- package/src/pro/scheduler/job-routes.js +1 -1
- package/src/pro/scheduler/job-validator.js +1 -1
- package/src/pro/storage/base-storage-provider.js +1 -1
- package/src/pro/storage/file-metadata-helper.js +1 -1
- package/src/pro/storage/index.js +1 -1
- package/src/pro/storage/local-storage-provider.js +1 -1
- package/src/pro/storage/s3-storage-provider.js +1 -1
- package/src/pro/storage/upload-cleanup-job.js +1 -1
- package/src/pro/storage/upload-cleanup-scheduler.js +1 -1
- package/src/pro/storage/upload-pending-tracker.js +1 -1
- package/src/pro/websocket/broadcast-helper.js +1 -1
- package/src/pro/websocket/index.js +1 -1
- package/src/pro/websocket/livesync-server.js +1 -1
- package/src/pro/websocket/ws-broadcaster.js +1 -1
- package/src/services/export-service.js +1 -1
- package/src/services/import-service.js +1 -1
- package/src/services/kafkaConsumerService.js +1 -1
- package/src/services/kafkaService.js +1 -1
- package/src/services/messagehubService.js +1 -1
- package/src/services/rabbitmqService.js +1 -1
- package/src/utils/cache-invalidation-registry.js +1 -1
- package/src/utils/cache-manager.js +1 -1
- package/src/utils/component-engine.js +1 -1
- package/src/utils/config-extractor.js +1 -1
- package/src/utils/consumerLogger.js +1 -1
- package/src/utils/context-builder.js +1 -1
- package/src/utils/dashboard-helpers.js +1 -1
- package/src/utils/dateHelper.js +1 -1
- package/src/utils/datetime-formatter.js +1 -1
- package/src/utils/datetime-parser.js +1 -1
- package/src/utils/db-bootstrap.js +1 -1
- package/src/utils/db-mysql.js +1 -1
- package/src/utils/db-oracle.js +1 -1
- package/src/utils/db-sqlite.js +1 -1
- package/src/utils/db.js +1 -1
- package/src/utils/demo-generator.js +1 -1
- package/src/utils/excel-generator.js +1 -1
- package/src/utils/excel-parser.js +1 -1
- package/src/utils/file-watcher.js +1 -1
- package/src/utils/id-generator.js +1 -1
- package/src/utils/idempotency-manager.js +1 -1
- package/src/utils/import-validator.js +1 -1
- package/src/utils/license-client.js +1 -1
- package/src/utils/lock-manager.js +1 -1
- package/src/utils/logger.js +1 -1
- package/src/utils/lookup-resolver.js +1 -1
- package/src/utils/payload-loader.js +1 -1
- package/src/utils/processor-response.js +1 -1
- package/src/utils/rabbitmq.js +1 -1
- package/src/utils/redis-client.js +1 -1
- package/src/utils/redis-helper.js +1 -1
- package/src/utils/request-scope.js +1 -1
- package/src/utils/security-checks.js +1 -1
- package/src/utils/service-resolver.js +1 -1
- package/src/utils/shutdown-coordinator.js +1 -1
- package/src/utils/trusted-keys.js +1 -1
- package/src/utils/upload-handler.js +1 -1
- package/src/utils/upsert-builder.js +1 -1
- package/src/utils/workflow-hook-executor.js +1 -1
- package/generators/metadata/global.json +0 -58
- package/generators/metadata/test-mysql-workbench.json +0 -118
- package/generators/metadata/test-mysql.json +0 -56
- package/generators/metadata/test-oracle-workbench.json +0 -118
- package/generators/metadata/test-oracle.json +0 -56
- package/generators/metadata/test-pg-workbench.json +0 -118
- package/generators/metadata/test-pg.json +0 -56
- package/generators/scripts/obfuscate-source.js +0 -356
- package/generators/scripts/validate-catalog.js +0 -430
- package/generators/scripts/validate-dbschema-catalog.js +0 -708
- package/generators/tests/baseline/mysql/mini_inventory_item/src/models/mini-inventory/item.js +0 -944
- package/generators/tests/baseline/mysql/mini_inventory_item/src/modules/mini-inventory/item.js +0 -740
- package/generators/tests/baseline/mysql/mini_inventory_item/src/modules/mini-inventory.js +0 -336
- package/generators/tests/baseline/oracle/mini_inventory_item/src/models/mini-inventory/item.js +0 -1002
- package/generators/tests/baseline/oracle/mini_inventory_item/src/modules/mini-inventory/item.js +0 -740
- package/generators/tests/baseline/oracle/mini_inventory_item/src/modules/mini-inventory.js +0 -336
- package/generators/tests/baseline/postgres/mini_inventory_item/src/models/mini-inventory/item.js +0 -1333
- package/generators/tests/baseline/postgres/mini_inventory_item/src/modules/mini-inventory/item.js +0 -1173
- package/generators/tests/baseline/postgres/mini_inventory_item/src/modules/mini-inventory.js +0 -496
- package/generators/tests/fixtures/payloads/custom-sensitive.json +0 -27
- package/generators/tests/fixtures/payloads/dynamic-search-optout.json +0 -23
- package/generators/tests/fixtures/payloads/login-with-password.json +0 -22
- package/generators/tests/fixtures/payloads/order-process.json +0 -52
- package/generators/tests/fixtures/payloads/with-inline-sql.json +0 -26
- package/generators/tests/integration-tahap4b/README.md +0 -145
- package/generators/tests/integration-tahap4b/run-concurrent.js +0 -77
- package/generators/tests/integration-tahap4b/seed.sql +0 -53
- package/generators/tests/integration-tahap4b/verify.sql +0 -110
- package/generators/tests/unit/cli/create-dashboard.test.js +0 -505
- package/generators/tests/unit/cli/create-processor.test.js +0 -319
- package/generators/tests/unit/cli/dispatch-dashboard.test.js +0 -149
- package/generators/tests/unit/lib/dashboard-generator.test.js +0 -895
- package/generators/tests/unit/lib/dashboard-validator.test.js +0 -354
- package/generators/tests/unit/lib/dbschema-kit/apply-executor.test.js +0 -437
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-introspect.test.js +0 -393
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-generate-ddl.test.js +0 -104
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-init.test.js +0 -119
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-list.test.js +0 -48
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-migrate.test.js +0 -175
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-kit-validate.test.js +0 -102
- package/generators/tests/unit/lib/dbschema-kit/cli/dbschema-models.test.js +0 -43
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/all-schemas-listing.js +0 -84
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/connection-error.js +0 -13
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/empty.js +0 -12
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/multi-schema.js +0 -124
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/single-schema-inventory.js +0 -64
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/introspect-stubs/two-tables.js +0 -66
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/connection-error.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/partial.js +0 -29
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/rollback.js +0 -26
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/migrate-stubs/success.js +0 -43
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/multi-schema/audit/events.js +0 -18
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/multi-schema/inventory/products.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/cli/fixtures/multi-schema/users.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/connection.test.js +0 -112
- package/generators/tests/unit/lib/dbschema-kit/ddl-generator.test.js +0 -205
- package/generators/tests/unit/lib/dbschema-kit/define-model.test.js +0 -56
- package/generators/tests/unit/lib/dbschema-kit/dialect/index.test.js +0 -46
- package/generators/tests/unit/lib/dbschema-kit/dialect/mysql.test.js +0 -126
- package/generators/tests/unit/lib/dbschema-kit/dialect/oracle.test.js +0 -126
- package/generators/tests/unit/lib/dbschema-kit/dialect/postgres.test.js +0 -131
- package/generators/tests/unit/lib/dbschema-kit/dialect/sqlite.test.js +0 -126
- package/generators/tests/unit/lib/dbschema-kit/driver-loader.test.js +0 -93
- package/generators/tests/unit/lib/dbschema-kit/emitters/create-index.test.js +0 -173
- package/generators/tests/unit/lib/dbschema-kit/emitters/create-table.test.js +0 -376
- package/generators/tests/unit/lib/dbschema-kit/emitters/drop-table.test.js +0 -78
- package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/invalid-dialect.env +0 -6
- package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/missing-dialect.env +0 -5
- package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/missing-host.env +0 -5
- package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/oracle-valid.env +0 -6
- package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/postgres-valid.env +0 -7
- package/generators/tests/unit/lib/dbschema-kit/fixtures/connection/sqlite-valid.env +0 -2
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/category.js +0 -11
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/item_product.js +0 -11
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/stock_inbound.js +0 -24
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/stock_inbound_item.js +0 -28
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/supplier.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory/warehouse.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-invalid/orphan.js +0 -17
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/category.js +0 -11
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/item_product.js +0 -11
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/supplier.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/master/warehouse.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/transactions/stock_inbound.js +0 -24
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/mini-inventory-multifolder/transactions/stock_inbound_item.js +0 -28
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/multi-schema/audit/events.js +0 -18
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/multi-schema/inventory/products.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/integration/multi-schema/public/users.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-subfolder/extra/category.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-subfolder/master/category.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-tablename/bar.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/duplicate-tablename/foo.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/empty-folder/README.md +0 -1
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/invalid-export/plain.js +0 -3
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/invalid-schema/bad.js +0 -6
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/legacy-pattern/legacy.js +0 -12
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-distinct/audit/products.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-distinct/inventory/products.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-duplicate/a/products.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/multi-schema-duplicate/b/products.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/nested-deep/a/b/c/deep_table.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/.hidden/ignored.js +0 -7
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/master/category.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/master/supplier.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/transactions/stock_inbound.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/recursive-multi-folder/transactions/stock_inbound_item.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/valid-multiple/category.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/valid-multiple/item_product.js +0 -9
- package/generators/tests/unit/lib/dbschema-kit/fixtures/loader/valid-single/category.js +0 -8
- package/generators/tests/unit/lib/dbschema-kit/integration.test.js +0 -217
- package/generators/tests/unit/lib/dbschema-kit/introspect-mapper.test.js +0 -403
- package/generators/tests/unit/lib/dbschema-kit/ir-builder.test.js +0 -390
- package/generators/tests/unit/lib/dbschema-kit/loader.test.js +0 -128
- package/generators/tests/unit/lib/dbschema-kit/naming.test.js +0 -170
- package/generators/tests/unit/lib/dbschema-kit/parser/shorthand-parser.test.js +0 -237
- package/generators/tests/unit/lib/dbschema-kit/schema-printer.test.js +0 -251
- package/generators/tests/unit/lib/dbschema-kit/statement-modifier.test.js +0 -105
- package/generators/tests/unit/lib/dbschema-kit/statement-splitter.test.js +0 -165
- package/generators/tests/unit/lib/dbschema-kit/topological-sort.test.js +0 -135
- package/generators/tests/unit/lib/dbschema-kit/validator/check-compatibility-validator.test.js +0 -373
- package/generators/tests/unit/lib/dbschema-kit/validator/circular-relation-validator.test.js +0 -454
- package/generators/tests/unit/lib/dbschema-kit/validator/cross-model-validator.test.js +0 -512
- package/generators/tests/unit/lib/dbschema-kit/validator/enhanced-validate-integration.test.js +0 -390
- package/generators/tests/unit/lib/dbschema-kit/validator/naming-convention-validator.test.js +0 -306
- package/generators/tests/unit/lib/dbschema-kit/validator/schema-validator.test.js +0 -443
- package/generators/tests/unit/lib/dbschema-kit/validator/type-compatibility-validator.test.js +0 -440
- package/generators/tests/unit/lib/dbschema-kit/validator/validator-reporter.test.js +0 -172
- package/generators/tests/unit/lib/metadata-manager-dashboard.test.js +0 -256
- package/generators/tests/unit/lib/payload-validator-fieldpolicy.test.js +0 -240
- package/generators/tests/unit/lib/processor-validation-generator.test.js +0 -300
- package/generators/tests/unit/lib/sensitive-field-masker.test.js +0 -170
- package/generators/tests/unit/lib/sql-table-extractor.test.js +0 -119
- package/scripts/generate-integrity-manifest.js +0 -124
- package/scripts/snapshot-cli-contracts.js +0 -194
- 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
|
|
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
|
-
|
|
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();
|