@restforgejs/platform 4.1.0 → 4.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +5 -1
- package/README.md +30 -14
- 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/endpoint/create.js +42 -3
- package/generators/cli/schema/apply.js +525 -0
- package/generators/cli/schema/diff.js +321 -0
- package/generators/cli/schema/generate-ddl.js +7 -10
- package/generators/cli/schema/init.js +95 -172
- package/generators/cli/schema/migrate.js +10 -16
- package/generators/cli/schema/models.js +8 -12
- package/generators/cli/schema/template.js +222 -0
- package/generators/cli/schema/validate.js +8 -12
- package/generators/cli-entry.js +17 -2
- package/generators/lib/dbschema-kit/apply-engine.js +582 -0
- package/generators/lib/dbschema-kit/diff-engine.js +703 -0
- package/generators/lib/dbschema-kit/diff-reporter.js +272 -0
- package/generators/lib/dbschema-kit/emitters/alter-table.js +275 -0
- package/generators/lib/payload/endpoint-schema-validator.js +171 -0
- package/generators/lib/payload/payload-runner.js +137 -220
- package/generators/lib/payload/schema-diff.js +277 -0
- package/generators/lib/utils/audit-columns.js +181 -0
- package/generators/lib/utils/cli-output.js +17 -0
- package/generators/lib/utils/database-introspector.js +16 -13
- package/integrity-manifest.json +8 -8
- package/package.json +4 -4
- package/scripts/check-install.js +45 -45
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const a0_0x166a1c=a0_0x2538;function a0_0xc95b(){const _0x8783ce=['swrLBxbVDgvUy3KGu0vuie5yigvYCM9Y','x2vUywjSzwq','zgf0zvbYzwzPEa','zw5ZDxjLvw5PCxvL','DgPhEgK','reTPDuW','lcbNB3qG','surhru5Fsu5wquXjrf9ovu1FreLhsvrt','EwvtBfm','y2vQzMW','C2vWyxjHDg9Y','x2zVCM1HDe51BwjLCG','x3zHBgLKyxrLswrLBxbVDgvUy3LlzxK','rgHNq3G','surhru5Fsurftv9uveW','AwrNzw4','icHNB3q6ia','B2rjq3y','mte5nJu4mvnKuff3CG','z2vUzxjHDgvKqxq','uMvZzxj2yxrPB24GBM90igzVDw5Kig9YigfSCMvHzhKGy29UC3vTzwq6ia','r0Pguuy','AwrNzw5FAwrLBv9YzxrYAwv2zv9LCNjVCG','sw52ywXPzcbMB3jTyxq6ia','twv0ysb1CgrHDguGzxjYB3i','zwz5suu','CNn2swr4s2v5','ENjHBMDL','C3rYAw5N','surhru5Fvu5juvvfx1jfvfjzx0vysefvu1rfra','zM9YBwf0s2v5igLZihjLCxvPCMvKigLUigXVDY1SzxzLBcbYzwXLyxnL','x2j1AwXKuMv1C2vlzxK','mtiZmJmZmJjLBu5YD3G','wejLsKq','x3zHBgLKyxrLuMvZzxj2yxrPB25uB2TLBG','AwrNzw5FBNvTyMvYx2DLBMvYyxrLza','Du9XEK0','CvzxtgC','igrPz2L0CYaOz290oIa','x3jLC2vYDMvezwzHDwX0vfrm','DhrStxm','suqGr2vUzxjHDg9YihjLC2v0oIbYyw5KB206','lI9SB2DNzxi','zxH0zw5KuMvZzxj2yxrPB24','r0LNDu4','lI9PzgvTCg90zw5JEs1Tyw5Hz2vY','Eezut2S','surhru5Fsu5wquXjrf9nt0rf','icH0B2TLBJ0','AwrNzw5FAwrLBv9ZDg9Yzw54x2vYCM9Y','sw52ywXPzcbMB3jTyxq6ig11C3qGyMuGB25Lig9Mia','y3jLyxrLzef0','suqGr2vUzxjHDg9YigLZigrPC2fIBgvKicHZzxqGsurhru5Fru5bqKXfrd10CNvLkq','BM93','A2v5uhjLzML4','x3zHBgLKyxrLuMvZB3vYy2u','q291BgqGBM90igDLBMvYyxrLihvUAxf1zsb2ywX1zsbHzNrLCIa','BgH0rKy','x2LUAxrPywXPEMvK','yM9VBgvHBG','Bwf0y2G','C3rVCMvK','x2j1AwXKrM9YBwf0s2v5','x3L5ExLF','lcbLEhbLy3rLzca','sNbsvM0','wKrTweq','D2fYBG','x2j1AwXKu2vXs2v5','CgvLAW','AwrNzw5FCMvZzxq','zgvS','AwrNzw5FCMvZzxj2zv9PzgvTx2XVC2vYx2nHBMnLBf9LCNjVCG','zLLgzhe','ywXS','DhrS','x3jLDhjPzxzLswrLBunHy2HL','surhru5Fq09vtLrfuL9pvKvsrKXpvW','x3L5ExLTBv8','tND4EKG','suqGr2vUzxjHDg9YigLZigrPC2fIBgvK','wfHywc1ywfHylvHywfGTwfHywa','vw9Urum','uMvZzxqGB3bLCMf0Aw9Uig5VDcbHBgXVD2vKicHZzxqGsurhru5FquXmt1DFuKvtrvq9Dhj1zsb0BYbLBMfIBguP','q1PkveW','z2v0q2XPzw50','zxnvzKS','r09XyNK','Bwf4uMv0CNK','sw52ywXPzcbPzgvTCg90zw5JEuTLEtOGBxvZDcbIzsbZDhjPBMCGms0','nKXNDe5VBq','x2TLEvbYzwzPEa','mJi3ntG2mefwsg9rzG','ihnLy29UzhmGkgDVDdOG','surhru5Fsu5wquXjrf9ut0TftG','AwrLBvruta','CMvZB3vYy2u','yM5Wte0','CMflz3y','x3jLC2vYDMvnyxHuveW','tNvTyMvYignVDw50zxiGCgfYDcbTDxn0igjLigv4ywn0BhKG','mdeYmZq1nJC4owfIy2rLzG','swrLBxbVDgvUy3KGC3rVCMuGzxjYB3i','AgfZ','AwrLBxbVDgvUy3LlzxK','AwrNzw5FAwrLBv9UEf9YywnLx2XVC3rFyNv0x2vTChr5','x2j1AwXKuMvZzxj2yxrPB25jBMrLEeTLEq','A2v5CW','rKLdzxK','surhru5Fsu5wquXjrf9gt1jnqvq','m2XerMjQwa','uNPQu0G','zw52','u2TvAhO','u016u0y','y29UC3vTzq','Bw55Buq','BwvZC2fNzq','rK13uxC','uhnTr2G','zxHWB3j0CW','C3rYAw5NAwz5','x2j1AwXKsxnZDwvKs2v5','DKz5rNK','AxnszxvZzwq','EhrMs24','CMvZzxj2zq','AwrLBuTLEq','x3n0B3jLswrLBunHy2HLtLG','r1fsBxi','ExL5Eq','CMv1C2u','CMy6AwrNzw46','BhPwwwq','AwrNzw5FCMvZzxj2zv9PzgvTx2XVC2vY','x3zHBgLKyxrLvfrm','sw52ywXPzcbWyxr0zxjUoIbTDxn0ignVBNrHAw4GyxqGBgvHC3qGB25LihbSywnLAg9SzgvYignOyxjHy3rLCIaOos9ol0eVys9ml1GVEc9il2GP','y291BNrLCKLUDa','AxnjBNrLz2vY','swrhzw5LCMf0B3jfCNjVCG','Ag1Nzxq','CMvZzxq','x2j1AwXKswrLBuTLEq','r1jdC1K','AxnZDwvK','Aw5MBW','mtf8mNW3Fdv8ohW5Fdz8nhWXmhWXFdn8mhWXmG','ALnxENu','x2vUC3vYzuLUAxrPywXPEMvK','surhru5Frevgqvvmvf9trvjjquXFuefuvevstG','y3j5ChrV','ignOyxjZ','rMfPBgvKihrVihbLCNnPC3qGzM9YBwf0DgvKihzHBhvLihrVihjLC2vYDMf0Aw9UigHHC2G','ChvZAa','C2vX','z2v0sw5MBW','zM9YBwf0','s2Tnv1K','x3zHBgLKyxrLuMvZzxj2zvruta','AgDLDgfSBa','AwrNzw5FBNvTyMvYx3jLBgvHC2vK','Afz3A28','surhru5Fq09vtLrfuL9uveXFtu9oveHmwq','rMfPBgvKihrVihjLBgvHC2uGy291BNrLCIbMB3iGAwrLBxbVDgvUy3KGBg9Zzxi','Dhj1zq','BgvUz3rO','vNfjD0i','zKPwt2O','x2DLDfjLC2vYDMf0Aw9Uq29UDgv4Da','ExL5Ew1T','surhru5FquXmt1DFuKvtrvq','AwrNzw5FCMvZzxj2zv9VDMvYzMXVD19JB21Wzw5ZyxrPB25FzxjYB3i','DMfSDwu','suqGr2vUzxjHDg9Yig51BwjLCIbYzwXLyxnLzdOG','Aenyv3K','AwrNzw5FAwrLBv9ZDg9Yzv9LCNjVCG','D2LUBMvYuMvZDwX0','CNn2x2LKEdO','CNn2oG','surhru5Frevgqvvmvf9nqvHFuKvuuLK','x2fSBg93uMvZzxq','Cg93','zxzHBa','x2DLDenVDw50zxjuveW','surhru5Fsu5wquXjrf9nqvHFuKvuuLK','CMfUzg9T','BNvTyMvY','x2j1AwXKuMvZzxj2yxrPB25lzxK','x3vUzg9syw5KB21szxnLCNzHDgLVBG','surhru5Fsu5wquXjrf9srvnpvvjdrq','CMvZzxj2zv9JB25MAxjT','suqGr2vUzxjHDg9YihjLC2vYDMuGAwrLBsbYywnLigXVC3qSihjLDhvYBMLUzYb3Aw5UzxiGzw52zwXVCgu','tNvTyMvYigrVzxmGBM90ig1HDgnOigv4CgvJDgvKihrLEhqGzM9YBwf0icHNB3q6ia','thfZAvC','ExL5Ew1Tzgq','x3zHBgLKyxrLugf0DgvYBG','odq1mdqXngjKEfzfyW','tNvTyMvYihbYzwzPEcbTAxnTyxrJAdOGzxHWzwn0zwqG','x2LKzw1uveW','AxnZDwvKoG','surhru5Fsu5wquXjrf9quKvgsvG','x3zHBgLKyxrLtNvTyMvYugfYyw1Z','z2v0','u0LQDMq','ywjJzgvMz2HPAMTSBw5VChfYC3r1DND4ExO','ENbntem','mdeYmZq1nJC4oufcq0rfrG','ChjLzML4','r1PJy1G','Dg9ju09tDhjPBMC','uMfUzg9TihjLC2vYDMf0Aw9UihvUzg8GzxjYB3iGkg9YCgHHBIbZBg90ig1HEsbYzw1HAw4P','AhH3quK','y29Kzq','q3v6y3y','x3bHCNnLtNvTyMvY','AwrNzw5FCMfUzg9Tx2LKzw1FBg9Zzxi','CMfUzg9Tsw50','BKDIr20','Dgv4Da','suqGr2vUzxjHDg9YihjLC2vYDMf0Aw9UignHBMnLBgXLzdOG','AwrNzw5FCMvZzxj2yxrPB25Fy2fUy2vSBgvK','sKHWtxi','AwrNzw5FCMfUzg9Tx2DLBMvYyxrLza','BxvrCwW','surhru5Fsu5wquXjrf9trvbbuKfut1i','suqGr2vUzxjHDg9YignVBNn1BwvKoIa','mZqWnJi5nufryvfqCW','x2rLzMf1BhrtzxjPywXqyxr0zxjU','CgLU','surhru5FuKvtrvjwqvrjt05FtK9ux0zpvu5e','x2j1AwXKqwn0AxzLs2v5','AeHIuKG','x3n0B3jLswrLBunHy2HL','sg9Lyve','surhru5Fq09vtLrfuL9uveXFrefjtfK','DLLnEwO','zw5HyMXLza','x3vWzgf0zu1LDge','x2nVDw50zxjuveXnyxa','yNvPBgrezxrLCM1PBMLZDgLJs2v5','CMvZzxj2zu1HEfruta','A3z2EuS','DgvZDa','Bw9Kzq','mtK1otK2mLHbqw11Bq','zgvMyxvSDfbPBKrPz2L0CW','wxP3sfi','zxHWAxjLC0f0','BKTVyNu','surhru5FreLtqujmruq','y291BNrLCG','surhru5Fsu5wquXjrf9srvnfuLzfx1ruta','x2rLzMf1BhrnyxHszxrYEq','BNvTrgLNAxrZ','CgfYC2u','q1PLv2q','AhnLDa','x2j1AwXKuMvZzxj2yxrPB25lzxLqCMvMAxG','mZa0mZG0mfrhBe9qvq','x2rLzMf1BhrqAw5eAwDPDhm','CMvZzxj2zu51BwjLCG','q1H4y1G','C2vXoG','Chr0Ba','x2LUAxrdB25MAwC','DvnNvhm','x2rLzMf1BhrdB2rLugf0DgvYBG','suqGr2vUzxjHDg9YihjLC2vYDMf0Aw9UignVBMzPCM1LzdOG','x2j1AwXKtwv0yuTLEq','C3jLBq','surhru5Fsu5wquXjrf9ovu1crvi','zM9YBwf0s2v5','z2v0uMvZzxj2yxrPB24'];a0_0xc95b=function(){return _0x8783ce;};return a0_0xc95b();}(function(_0x38d79f,_0x607b5){const _0xf02763=a0_0x2538,_0x181bc8=_0x38d79f();while(!![]){try{const _0x3c3758=parseInt(_0xf02763(0x16b))/0x1+parseInt(_0xf02763(0x13c))/0x2+-parseInt(_0xf02763(0x1c7))/0x3*(parseInt(_0xf02763(0x1b5))/0x4)+-parseInt(_0xf02763(0x12a))/0x5*(parseInt(_0xf02763(0x1b3))/0x6)+-parseInt(_0xf02763(0x21d))/0x7+-parseInt(_0xf02763(0x14a))/0x8+parseInt(_0xf02763(0x179))/0x9;if(_0x3c3758===_0x607b5)break;else _0x181bc8['push'](_0x181bc8['shift']());}catch(_0x543871){_0x181bc8['push'](_0x181bc8['shift']());}}}(a0_0xc95b,0xacd4a));function a0_0x2538(_0x15b003,_0xb4c5bf){_0x15b003=_0x15b003-0x127;const _0xc95b2=a0_0xc95b();let _0x25385d=_0xc95b2[_0x15b003];if(a0_0x2538['JGdRUH']===undefined){var _0x18dbeb=function(_0x14be04){const _0x41ad73='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3583aa='',_0x1d08f4='';for(let _0x9a30c2=0x0,_0x525a78,_0x1ce0bc,_0x1e25ea=0x0;_0x1ce0bc=_0x14be04['charAt'](_0x1e25ea++);~_0x1ce0bc&&(_0x525a78=_0x9a30c2%0x4?_0x525a78*0x40+_0x1ce0bc:_0x1ce0bc,_0x9a30c2++%0x4)?_0x3583aa+=String['fromCharCode'](0xff&_0x525a78>>(-0x2*_0x9a30c2&0x6)):0x0){_0x1ce0bc=_0x41ad73['indexOf'](_0x1ce0bc);}for(let _0x129bf1=0x0,_0x403ee3=_0x3583aa['length'];_0x129bf1<_0x403ee3;_0x129bf1++){_0x1d08f4+='%'+('00'+_0x3583aa['charCodeAt'](_0x129bf1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1d08f4);};a0_0x2538['lzZwjb']=_0x18dbeb,a0_0x2538['CqtoiQ']={},a0_0x2538['JGdRUH']=!![];}const _0x13e53f=_0xc95b2[0x0],_0x11c34a=_0x15b003+_0x13e53f,_0x8157b2=a0_0x2538['CqtoiQ'][_0x11c34a];return!_0x8157b2?(_0x25385d=a0_0x2538['lzZwjb'](_0x25385d),a0_0x2538['CqtoiQ'][_0x11c34a]=_0x25385d):_0x25385d=_0x8157b2,_0x25385d;}const crypto=require(a0_0x166a1c(0x1ef)),redisClient=require('./redis-client'),{logger}=require(a0_0x166a1c(0x183)),idempotencyManager=require(a0_0x166a1c(0x186)),ALLOWED_FORMATS=new Set([a0_0x166a1c(0x233),'yyyy',a0_0x166a1c(0x202),a0_0x166a1c(0x21b)]),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='ABCDEFGHIJKLMNOPQRSTUVWXYZ',CHARSET_LOWER=a0_0x166a1c(0x225),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_0x166a1c(0x227),CHARSET_HEX_LOWER=a0_0x166a1c(0x1be),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='\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='\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='\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(_0x5c4ebe,_0x42dfb5,_0x517839=null){const _0x159037=a0_0x166a1c,_0x51e654={'uSgTs':_0x159037(0x1e4)};super(_0x42dfb5||_0x5c4ebe),this['name']=_0x51e654[_0x159037(0x151)],this[_0x159037(0x22d)]=_0x5c4ebe,this['details']=_0x517839;}}class IdGenerator{constructor(){const _0x1b17da=a0_0x166a1c;this[_0x1b17da(0x193)]=![],this[_0x1b17da(0x15a)]=null,this[_0x1b17da(0x1b4)]=null,this['_idemTTL']=null,this[_0x1b17da(0x20d)]=null,this['_defaultMaxRetry']=null,this['_defaultPinDigits']=null,this[_0x1b17da(0x12b)]=null,this[_0x1b17da(0x152)]=null,this['_counterTTLMap']=null,this[_0x1b17da(0x180)]=null,this[_0x1b17da(0x1bc)]=null;}[a0_0x166a1c(0x150)](){const _0x9ed178=a0_0x166a1c,_0x2b48f2={'esUfK':function(_0x2c685e,_0x3a56df){return _0x2c685e===_0x3a56df;},'yeSlS':_0x9ed178(0x1fd),'YSkAx':function(_0x258a67,_0x756af5,_0xb141c){return _0x258a67(_0x756af5,_0xb141c);},'DKiuL':function(_0x32c22e,_0xcf6222,_0x52f25d){return _0x32c22e(_0xcf6222,_0x52f25d);},'nvBZA':function(_0x2c85f7,_0x45faa3,_0x1e3200){return _0x2c85f7(_0x45faa3,_0x1e3200);}},_0x542782=_0x9ed178(0x1eb)['split']('|');let _0x21a3c4=0x0;while(!![]){switch(_0x542782[_0x21a3c4++]){case'0':this[_0x9ed178(0x193)]=!![];continue;case'1':this['_reserveDefaultTTL']=parseInt(process['env']['IDGEN_RESERVE_DEFAULT_TTL'],0xa)||DEFAULT_RESERVE_TTL;continue;case'2':this[_0x9ed178(0x15a)]=_0x2b48f2[_0x9ed178(0x1af)](process['env']['IDGEN_ENABLED'],_0x2b48f2[_0x9ed178(0x161)]);continue;case'3':this[_0x9ed178(0x1bc)]=_0x2b48f2['YSkAx'](parseInt,process[_0x9ed178(0x1c9)]['IDGEN_RESERVE_MAX_TTL'],0xa)||MAX_RESERVE_TTL;continue;case'4':this['_defaultCodePattern']=process['env']['IDGEN_DEFAULT_CODE_PATTERN']||'9999-9999';continue;case'5':this[_0x9ed178(0x20d)]=process['env'][_0x9ed178(0x203)]===_0x9ed178(0x1fd);continue;case'6':this['_defaultSerialPattern']=process['env'][_0x9ed178(0x1ee)]||_0x9ed178(0x1aa);continue;case'7':this[_0x9ed178(0x21f)]=parseInt(process[_0x9ed178(0x1c9)][_0x9ed178(0x167)],0xa)||0x258;continue;case'8':this['_defaultMaxRetry']=_0x2b48f2[_0x9ed178(0x15e)](parseInt,process['env'][_0x9ed178(0x20c)],0xa)||0xa;continue;case'9':this[_0x9ed178(0x14b)]=parseInt(process[_0x9ed178(0x1c9)]['IDGEN_DEFAULT_PIN_DIGITS'],0xa)||0x6;continue;case'10':this[_0x9ed178(0x136)]={'yyyymm':parseInt(process['env'][_0x9ed178(0x1fb)],0xa)||0x2a3000,'yyyymmdd':_0x2b48f2['nvBZA'](parseInt,process[_0x9ed178(0x1c9)][_0x9ed178(0x132)],0xa)||0x2a300};continue;case'11':this['_keyPrefix']=_0x9ed178(0x1dd);continue;case'12':logger[_0x9ed178(0x1ea)]({'event':'idgen_config_init','enabled':this['_enabled'],'idemTTL':this[_0x9ed178(0x21f)],'allowReset':this[_0x9ed178(0x20d)],'defaultMaxRetry':this[_0x9ed178(0x144)],'defaultPinDigits':this[_0x9ed178(0x14b)],'reserveDefaultTTL':this['_reserveDefaultTTL'],'reserveMaxTTL':this[_0x9ed178(0x1bc)]},'ID\x20Generator\x20config\x20initialized\x20-\x20enabled:\x20'+this['_enabled']);continue;}break;}}['_ensureInitialized'](){const _0x186ae6=a0_0x166a1c;if(!this[_0x186ae6(0x193)])this[_0x186ae6(0x150)]();}get[a0_0x166a1c(0x134)](){const _0x36dc27=a0_0x166a1c;return this[_0x36dc27(0x1ed)](),this[_0x36dc27(0x15a)];}get[a0_0x166a1c(0x18f)](){const _0x2311ed=a0_0x166a1c;return this['_ensureInitialized'](),this[_0x2311ed(0x1b4)];}get[a0_0x166a1c(0x1b8)](){const _0x389647=a0_0x166a1c;return this[_0x389647(0x1ed)](),this['_idemTTL'];}get['allowReset'](){return this['_ensureInitialized'](),this['_allowReset'];}get['defaultMaxRetry'](){const _0x186b04=a0_0x166a1c;return this['_ensureInitialized'](),this[_0x186b04(0x144)];}get['defaultPinDigits'](){const _0x4b80d1=a0_0x166a1c;return this['_ensureInitialized'](),this[_0x4b80d1(0x14b)];}get['defaultSerialPattern'](){const _0x236d5c=a0_0x166a1c;return this[_0x236d5c(0x1ed)](),this[_0x236d5c(0x12b)];}get['defaultCodePattern'](){const _0x25422e=a0_0x166a1c;return this[_0x25422e(0x1ed)](),this[_0x25422e(0x152)];}get['reserveDefaultTTL'](){const _0x322ebd=a0_0x166a1c;return this[_0x322ebd(0x1ed)](),this[_0x322ebd(0x180)];}get[a0_0x166a1c(0x138)](){const _0x126668=a0_0x166a1c;return this[_0x126668(0x1ed)](),this[_0x126668(0x1bc)];}['isEnabled'](){const _0x501578=a0_0x166a1c;return this[_0x501578(0x134)];}[a0_0x166a1c(0x190)](_0x31fa78){const _0x106040=a0_0x166a1c,_0x188af0={'CZeWd':function(_0x5628d2,_0x33a66d){return _0x5628d2!==_0x33a66d;}};if(_0x188af0[_0x106040(0x147)](typeof _0x31fa78,_0x106040(0x175))||!RESOURCE_REGEX['test'](_0x31fa78))throw new IdGeneratorError(_0x106040(0x216),'Invalid\x20resource:\x20must\x20match\x20'+RESOURCE_REGEX+_0x106040(0x169)+JSON['stringify'](_0x31fa78)+')');}[a0_0x166a1c(0x222)](_0x4df87a){const _0x21420a=a0_0x166a1c,_0x1b42b9={'FMwQw':'IDGEN_INVALID_FORMAT','KkMWY':function(_0x47812e,_0x369a16){return _0x47812e>_0x369a16;},'GOqby':function(_0x193b0e,_0x1c722a){return _0x193b0e!==_0x1c722a;},'fbkCm':_0x21420a(0x175),'odICv':_0x21420a(0x221),'EYRvQ':function(_0x178426,_0x1fe2a2){return _0x178426==_0x1fe2a2;},'rZUUT':function(_0x1ce4f2,_0xeb5193){return _0x1ce4f2!=_0xeb5193;},'Woqii':function(_0x3818dd,_0x47d63c){return _0x3818dd!==_0x47d63c;},'SMzSF':function(_0x7f8267,_0x204fed){return _0x7f8267===_0x204fed;}},{resource:_0x593f47,format:_0x2175a4,prefix:_0xc38b9a,separator:_0x54aa79,numDigits:_0x2cbf59,reuseDelete:_0x1f1a27}=_0x4df87a;this['_validateResource'](_0x593f47);const _0x5102da=typeof _0x2175a4==='string'?_0x2175a4['toLowerCase']():'';if(!ALLOWED_FORMATS[_0x21420a(0x1c0)](_0x5102da))throw new IdGeneratorError(_0x1b42b9[_0x21420a(0x1cf)],_0x21420a(0x18b)+[...ALLOWED_FORMATS]['join'](',\x20')+_0x21420a(0x169)+_0x2175a4+')');if(!Number[_0x21420a(0x1e3)](_0x2cbf59)||_0x2cbf59<MIN_NUM_DIGITS||_0x1b42b9[_0x21420a(0x1f6)](_0x2cbf59,MAX_NUM_DIGITS))throw new IdGeneratorError(_0x21420a(0x160),'Invalid\x20numDigits:\x20must\x20be\x20integer\x20'+MIN_NUM_DIGITS+'-'+MAX_NUM_DIGITS+'\x20(got:\x20'+_0x2cbf59+')');const _0x39a116=_0xc38b9a==null?'':_0xc38b9a;if(_0x1b42b9[_0x21420a(0x1b0)](typeof _0x39a116,_0x1b42b9['fbkCm'])||!PREFIX_REGEX[_0x21420a(0x13a)](_0x39a116))throw new IdGeneratorError(_0x1b42b9[_0x21420a(0x16a)],'Invalid\x20prefix:\x20must\x20match\x20'+PREFIX_REGEX+'\x20(got:\x20'+JSON['stringify'](_0xc38b9a)+')');const _0x1921a6=_0x1b42b9['EYRvQ'](_0x54aa79,null)?'':_0x54aa79;if(typeof _0x1921a6!==_0x1b42b9['fbkCm']||_0x1921a6['length']>0x3||SEPARATOR_FORBIDDEN[_0x21420a(0x13a)](_0x1921a6))throw new IdGeneratorError(_0x21420a(0x128),'Invalid\x20separator:\x20max\x203\x20char,\x20must\x20not\x20contain\x20\x27:\x27\x20(got:\x20'+JSON[_0x21420a(0x1d2)](_0x54aa79)+')');if(_0x1b42b9['rZUUT'](_0x1f1a27,null)&&_0x1b42b9['Woqii'](typeof _0x1f1a27,_0x21420a(0x194)))throw new IdGeneratorError('IDGEN_INVALID_RESOURCE','Invalid\x20reuseDelete:\x20must\x20be\x20boolean\x20(got:\x20'+typeof _0x1f1a27+')');return{'resource':_0x593f47,'format':_0x5102da,'prefix':_0x39a116,'separator':_0x1921a6,'numDigits':_0x2cbf59,'reuseDelete':_0x1b42b9[_0x21420a(0x1cb)](_0x1f1a27,!![])};}['_validatePattern'](_0x471725){const _0x3a26ed=a0_0x166a1c,_0x4ce2db={'uOqzM':'IDGEN_INVALID_PATTERN'};if(typeof _0x471725!=='string'||_0x471725[_0x3a26ed(0x1fe)]===0x0||_0x471725[_0x3a26ed(0x1fe)]>MAX_PATTERN_LENGTH)throw new IdGeneratorError('IDGEN_INVALID_PATTERN','Invalid\x20pattern:\x20must\x20be\x20string\x201-'+MAX_PATTERN_LENGTH+'\x20chars\x20(got\x20length:\x20'+(_0x471725&&_0x471725['length'])+')');let _0x465368=![];for(const _0x404ee8 of _0x471725){if(PLACEHOLDER_MAP[_0x404ee8]){_0x465368=!![];break;}}if(!_0x465368)throw new IdGeneratorError(_0x4ce2db[_0x3a26ed(0x17d)],_0x3a26ed(0x1e1));}[a0_0x166a1c(0x1e0)](_0x54b338){const _0x42aff0=a0_0x166a1c,_0xf69d8f={'TlUtc':function(_0x2922c9,_0x1a867b){return _0x2922c9<_0x1a867b;},'xFTOk':'IDGEN_INVALID_TTL'};if(_0x54b338==null)return undefined;if(!Number[_0x42aff0(0x1e3)](_0x54b338)||_0xf69d8f['TlUtc'](_0x54b338,0x1)||_0x54b338>MAX_TTL)throw new IdGeneratorError(_0xf69d8f[_0x42aff0(0x187)],'Invalid\x20ttl:\x20must\x20be\x20integer\x201-'+MAX_TTL+'\x20seconds\x20(got:\x20'+_0x54b338+')');return _0x54b338;}['_validateMaxRetry'](_0x38362c){const _0x2aacbc=a0_0x166a1c,_0x1fcd8a={'VhGjY':function(_0x1fa520,_0x2b9629){return _0x1fa520==_0x2b9629;},'crhJb':function(_0x2677ad,_0x272288){return _0x2677ad>_0x272288;}};if(_0x1fcd8a['VhGjY'](_0x38362c,null))return this['defaultMaxRetry'];if(!Number['isInteger'](_0x38362c)||_0x38362c<0x1||_0x1fcd8a['crhJb'](_0x38362c,MAX_RETRY_LIMIT))throw new IdGeneratorError(_0x2aacbc(0x211),'Invalid\x20maxRetry:\x20must\x20be\x20integer\x201-'+MAX_RETRY_LIMIT+_0x2aacbc(0x169)+_0x38362c+')');return _0x38362c;}[a0_0x166a1c(0x165)](_0x53b604){const _0x1f2207=a0_0x166a1c,_0x536b2f={'YzwHR':_0x1f2207(0x175),'lhtFF':function(_0x4788a1,_0x4802dc){return _0x4788a1>_0x4802dc;}};if(_0x53b604==null)return undefined;if(typeof _0x53b604!==_0x536b2f[_0x1f2207(0x13e)]||_0x53b604[_0x1f2207(0x1fe)]===0x0||_0x536b2f[_0x1f2207(0x192)](_0x53b604[_0x1f2207(0x1fe)],MAX_IDEMPOTENCY_KEY_LENGTH))throw new IdGeneratorError(_0x1f2207(0x216),_0x1f2207(0x1b2)+MAX_IDEMPOTENCY_KEY_LENGTH+_0x1f2207(0x1f0));return _0x53b604;}['_validateReserveTTL'](_0x2f5710){const _0x4dc6e6=a0_0x166a1c,_0x5b31c8={'ZDmXD':function(_0x509834,_0x8f8a70){return _0x509834==_0x8f8a70;},'PlzlC':function(_0x3a1b58,_0x4e1ff9){return _0x3a1b58<_0x4e1ff9;}};if(_0x5b31c8[_0x4dc6e6(0x19b)](_0x2f5710,null))return this['reserveDefaultTTL'];if(!Number['isInteger'](_0x2f5710)||_0x5b31c8['PlzlC'](_0x2f5710,MIN_RESERVE_TTL)||_0x2f5710>this[_0x4dc6e6(0x138)])throw new IdGeneratorError(_0x4dc6e6(0x143),'Invalid\x20reservation\x20ttl:\x20must\x20be\x20integer\x20'+MIN_RESERVE_TTL+'-'+this['reserveMaxTTL']+_0x4dc6e6(0x1b6)+_0x2f5710+')');return _0x2f5710;}[a0_0x166a1c(0x17b)](_0x516bbc){const _0x4daae4=a0_0x166a1c,_0x2f2e79={'QyrdI':function(_0x4b5a7b,_0x2d173b){return _0x4b5a7b!==_0x2d173b;},'efyIE':_0x4daae4(0x1b7)};if(_0x2f2e79['QyrdI'](typeof _0x516bbc,'string')||!RESERVATION_TOKEN_REGEX['test'](_0x516bbc))throw new IdGeneratorError(_0x2f2e79[_0x4daae4(0x172)],'Invalid\x20reservation\x20token:\x20must\x20be\x20UUID\x20v4\x20format\x20(got:\x20'+JSON['stringify'](_0x516bbc)+')');return _0x516bbc;}['_pad2'](_0x6c1de4){return String(_0x6c1de4)['padStart'](0x2,'0');}[a0_0x166a1c(0x197)](_0x2a4fd2,_0x16d546,_0x427411=new Date()){const _0x45f436=a0_0x166a1c,_0x41f7a9={'IYwUA':function(_0x3d4c09,_0x3dde4d){return _0x3d4c09||_0x3dde4d;},'isORS':'text','IFRqU':_0x45f436(0x1db),'NwxzH':_0x45f436(0x21b)},_0xa2e5a9=_0x427411['getFullYear'](),_0x3961c6=this['_pad2'](_0x427411['getMonth']()+0x1),_0x19f774=this['_pad2'](_0x427411['getDate']()),_0xcc1eea=_0x41f7a9['IYwUA'](_0x16d546,'_');let _0x3fb179,_0x2190a3='';switch(_0x2a4fd2){case _0x41f7a9['isORS']:_0x3fb179=_0xcc1eea+'_text';break;case _0x41f7a9['IFRqU']:_0x2190a3=''+_0xa2e5a9,_0x3fb179=_0xcc1eea+_0x45f436(0x198)+_0x2190a3;break;case _0x45f436(0x202):_0x2190a3=''+_0xa2e5a9+_0x3961c6,_0x3fb179=_0xcc1eea+_0x45f436(0x1a7)+_0x2190a3;break;case _0x41f7a9[_0x45f436(0x1a8)]:_0x2190a3=''+_0xa2e5a9+_0x3961c6+_0x19f774,_0x3fb179=_0xcc1eea+'_yyyymmdd_'+_0x2190a3;break;default:throw new IdGeneratorError(_0x45f436(0x1c6),'Unknown\x20format:\x20'+_0x2a4fd2);}return{'formatKey':_0x3fb179,'datePrefix':_0x2190a3};}[a0_0x166a1c(0x19d)](_0x2f055f,_0x58c89a){const _0x57fb6e=a0_0x166a1c;return this[_0x57fb6e(0x18f)]+_0x57fb6e(0x14e)+_0x2f055f+':'+_0x58c89a;}[a0_0x166a1c(0x178)](_0x402dd7,_0x1edfb1){return this['keyPrefix']+'reuse:'+_0x402dd7+':'+_0x1edfb1;}[a0_0x166a1c(0x154)](_0x1304e0,_0x36a3c2){return this['keyPrefix']+'meta:'+_0x1304e0+':'+_0x36a3c2;}[a0_0x166a1c(0x1d3)](_0x21096c){const _0x3ce991=a0_0x166a1c;return this[_0x3ce991(0x18f)]+_0x3ce991(0x220)+_0x21096c;}['_buildActiveKey'](_0x4f3058,_0x36618b){const _0x479315=a0_0x166a1c;return this[_0x479315(0x18f)]+'active:'+_0x4f3058+':'+_0x36618b;}[a0_0x166a1c(0x214)](_0x5241fa){const _0x17d9b9=a0_0x166a1c;return this[_0x17d9b9(0x18f)]+_0x17d9b9(0x20b)+_0x5241fa;}[a0_0x166a1c(0x1c3)](_0x423789,_0x111de7){const _0x203822=a0_0x166a1c;return this['keyPrefix']+_0x203822(0x20a)+_0x423789+':'+_0x111de7;}[a0_0x166a1c(0x149)](){return this['keyPrefix']+'rsv:';}[a0_0x166a1c(0x1e7)](_0x24afaa,_0x1c42a8,_0x26f4c6,_0x16adf6){const _0xfbd630={'sOhbD':'idgen'};if(_0x26f4c6)return idempotencyManager['buildDeterministicKey'](_0xfbd630['sOhbD'],_0x24afaa,_0x1c42a8+':'+_0x26f4c6+':'+_0x16adf6);return idempotencyManager['buildDeterministicKey'](_0xfbd630['sOhbD'],_0x24afaa,_0x1c42a8+':'+_0x16adf6);}['_getCounterTTL'](_0xedbbdf){const _0x3b9ed3=a0_0x166a1c;return this[_0x3b9ed3(0x136)][_0xedbbdf]||0x0;}[a0_0x166a1c(0x164)]({format:_0x560d55,prefix:_0x4cee62,datePrefix:_0x2bf28b,separator:_0x5d4b11,numDigits:_0x17f1c6,counterInt:_0x4c4cd9}){const _0x28b40e=a0_0x166a1c,_0x1e6ffa={'vYMyj':function(_0x3f1e6b,_0x46fd33){return _0x3f1e6b-_0x46fd33;},'SkUhz':function(_0x2428d6,_0x5f4ebf){return _0x2428d6(_0x5f4ebf);},'UonXn':function(_0x2e8a6d,_0x4134f0){return _0x2e8a6d===_0x4134f0;},'hVwko':_0x28b40e(0x233)},_0x19c5d7=_0x1e6ffa[_0x28b40e(0x133)](Math[_0x28b40e(0x20e)](0xa,_0x17f1c6),0x1);if(_0x4c4cd9>_0x19c5d7)throw new IdGeneratorError(_0x28b40e(0x1a6),'Counter\x20overflow:\x20'+_0x4c4cd9+'\x20exceeds\x20'+_0x17f1c6+'-digit\x20capacity\x20('+_0x19c5d7+').\x20Increase\x20numDigits.',{'counterInt':_0x4c4cd9,'numDigits':_0x17f1c6,'max':_0x19c5d7});const _0x56a326=_0x1e6ffa[_0x28b40e(0x1ca)](String,_0x4c4cd9)['padStart'](_0x17f1c6,'0');if(_0x1e6ffa['UonXn'](_0x560d55,_0x1e6ffa[_0x28b40e(0x1fa)]))return _0x4cee62?''+_0x4cee62+_0x5d4b11+_0x56a326:_0x56a326;return _0x4cee62?''+_0x4cee62+_0x5d4b11+_0x2bf28b+_0x5d4b11+_0x56a326:''+_0x2bf28b+_0x5d4b11+_0x56a326;}[a0_0x166a1c(0x22f)]({format:_0x64a885,prefix:_0x27339a,separator:_0x2749b2,numDigits:_0x53cf9e,number:_0x1b4f41}){const _0x2526d1=a0_0x166a1c,_0x52dc38={'qVWLg':'string','CZJTL':function(_0x1a2bc7,_0x287ec2){return _0x1a2bc7===_0x287ec2;},'hxwAI':'text','dtKgn':function(_0xa1b9d4,_0x4b4725){return _0xa1b9d4!==_0x4b4725;},'hCXWy':'IDGEN_INVALID_NUMBER','xtfKn':function(_0x4af760,_0x5b47c3){return _0x4af760!==_0x5b47c3;},'VwiWo':_0x2526d1(0x1db),'KYeOJ':_0x2526d1(0x202),'sSFse':function(_0x5c2aec,_0x3cad3d,_0x5340be){return _0x5c2aec(_0x3cad3d,_0x5340be);}};if(typeof _0x1b4f41!==_0x52dc38[_0x2526d1(0x17e)]||_0x1b4f41['length']===0x0)throw new IdGeneratorError(_0x2526d1(0x156),'Invalid\x20number:\x20must\x20be\x20non-empty\x20string');const _0x310e69=_0x2749b2||'',_0xc606e7=_0x310e69===''?[_0x1b4f41]:_0x1b4f41['split'](_0x310e69);let _0x1da101='',_0x180398;if(_0x52dc38[_0x2526d1(0x1ad)](_0x64a885,_0x52dc38[_0x2526d1(0x22c)])){if(_0x27339a){if(_0xc606e7[_0x2526d1(0x1fe)]!==0x2||_0x52dc38['dtKgn'](_0xc606e7[0x0],_0x27339a))throw new IdGeneratorError(_0x2526d1(0x156),'Number\x20does\x20not\x20match\x20expected\x20format\x20prefix'+_0x310e69+'padded\x20(got:\x20'+_0x1b4f41+')');_0x180398=_0xc606e7[0x1];}else{if(_0xc606e7['length']!==0x1)throw new IdGeneratorError(_0x2526d1(0x156),_0x2526d1(0x219)+_0x1b4f41+')');_0x180398=_0xc606e7[0x0];}}else{const _0x1c69f5=_0x27339a?0x3:0x2;if(_0xc606e7['length']!==_0x1c69f5)throw new IdGeneratorError(_0x52dc38[_0x2526d1(0x207)],'Number\x20does\x20not\x20match\x20expected\x20format\x20(got:\x20'+_0x1b4f41+_0x2526d1(0x199)+_0x1c69f5+'\x20parts)');let _0x83e9fe=0x0;if(_0x27339a){if(_0x52dc38[_0x2526d1(0x1d6)](_0xc606e7[_0x83e9fe],_0x27339a))throw new IdGeneratorError(_0x52dc38['hCXWy'],_0x2526d1(0x21e)+_0x27339a+_0x2526d1(0x15f)+_0xc606e7[_0x83e9fe]);_0x83e9fe++;}_0x1da101=_0xc606e7[_0x83e9fe++];const _0xf8a665=_0x52dc38['CZJTL'](_0x64a885,_0x52dc38['VwiWo'])?/^\d{4}$/:_0x64a885===_0x52dc38['KYeOJ']?/^\d{6}$/:/^\d{8}$/;if(!_0xf8a665['test'](_0x1da101))throw new IdGeneratorError(_0x52dc38[_0x2526d1(0x207)],'Number\x20datePrefix\x20invalid\x20for\x20format\x20'+_0x64a885+':\x20'+_0x1da101);_0x180398=_0xc606e7[_0x83e9fe];}if(!new RegExp('^\x5cd{'+_0x53cf9e+'}$')['test'](_0x180398))throw new IdGeneratorError(_0x2526d1(0x156),_0x2526d1(0x1bd)+_0x53cf9e+_0x2526d1(0x17f)+_0x180398+')');const _0x141b9a=_0x52dc38['sSFse'](parseInt,_0x180398,0xa),_0xe39327=_0x27339a||'_';let _0xc53f8b;return _0x64a885===_0x52dc38['hxwAI']?_0xc53f8b=_0xe39327+'_text':_0xc53f8b=_0xe39327+'_'+_0x64a885+'_'+_0x1da101,{'formatKey':_0xc53f8b,'counterInt':_0x141b9a,'datePrefix':_0x1da101};}['_generateFromPattern'](_0x5922e4){const _0x2b6f72=a0_0x166a1c;let _0x64bc3d='';for(const _0x3c04b6 of _0x5922e4){const _0x546dd9=PLACEHOLDER_MAP[_0x3c04b6];if(_0x546dd9){const _0x4b40f2=crypto[_0x2b6f72(0x231)](0x0,_0x546dd9['length']);_0x64bc3d+=_0x546dd9[_0x4b40f2];}else _0x64bc3d+=_0x3c04b6;}return _0x64bc3d;}async['_retrieveIdemCache'](_0x11ad1b){const _0x3c7d91=a0_0x166a1c,_0x1d5bf1={'Hnmmj':'idgen_idem_hit','nKobu':'Idempotency\x20cache\x20HIT','tfNEc':_0x3c7d91(0x16f)};if(!_0x11ad1b)return null;try{const _0x52b826=redisClient['getClient'](),_0x5d6f5a=await _0x52b826['get'](_0x11ad1b);if(_0x5d6f5a)return logger['info']({'event':_0x1d5bf1['Hnmmj'],'key':_0x11ad1b},_0x1d5bf1[_0x3c7d91(0x140)]),JSON['parse'](_0x5d6f5a);return null;}catch(_0x236304){return logger[_0x3c7d91(0x19c)]({'event':_0x1d5bf1['tfNEc'],'error':_0x236304[_0x3c7d91(0x1ce)]},'Idempotency\x20retrieve\x20error'),null;}}async[a0_0x166a1c(0x130)](_0x55efee,_0x9ffb71){const _0x56c904=a0_0x166a1c,_0x576e7b={'SDVyP':_0x56c904(0x208),'LmbGP':_0x56c904(0x1bf)};if(!_0x55efee)return;try{const _0x250f9b=redisClient['getClient']();await _0x250f9b['setex'](_0x55efee,this[_0x56c904(0x1b8)],JSON[_0x56c904(0x1d2)](_0x9ffb71));}catch(_0x6156ac){logger['warn']({'event':_0x576e7b['SDVyP'],'error':_0x6156ac['message']},_0x576e7b['LmbGP']);}}async[a0_0x166a1c(0x1d9)](_0x4bd7fc,_0x179891){const _0x261d79=a0_0x166a1c,_0x148160={'lwHqd':'SET\x20NX\x20failed\x20but\x20cache\x20GET\x20returned\x20empty\x20—\x20falling\x20back\x20to\x20own\x20result','DhgCx':_0x261d79(0x18a)};if(!_0x4bd7fc)return{'stored':!![],'winnerResult':null};try{const _0x380703=redisClient[_0x261d79(0x1ae)](),_0x3279a9=JSON['stringify'](_0x179891),_0x70f989=await _0x380703['set'](_0x4bd7fc,_0x3279a9,'EX',this[_0x261d79(0x1b8)],'NX');if(_0x70f989==='OK')return{'stored':!![],'winnerResult':null};const _0x2f6825=await _0x380703['get'](_0x4bd7fc);if(_0x2f6825)return{'stored':![],'winnerResult':JSON[_0x261d79(0x146)](_0x2f6825)};return logger[_0x261d79(0x19c)]({'event':_0x261d79(0x1c2),'key':_0x4bd7fc},_0x148160['lwHqd']),{'stored':!![],'winnerResult':null};}catch(_0x509263){return logger['warn']({'event':_0x148160[_0x261d79(0x166)],'error':_0x509263[_0x261d79(0x1ce)]},_0x261d79(0x159)),{'stored':!![],'winnerResult':null};}}async[a0_0x166a1c(0x215)](_0x245432,_0x3790ef,_0x29e387){const _0xf5b80d=a0_0x166a1c,_0x78ad19={'mXKmj':_0xf5b80d(0x22b)};try{const _0x485847=redisClient['getClient']();if(_0x29e387){const _0x5cff7b=this[_0xf5b80d(0x12e)](_0x245432,_0x3790ef);await _0x485847['del'](_0x5cff7b);}else{const _0x5366e2=this[_0xf5b80d(0x1d3)](_0x245432);await _0x485847[_0xf5b80d(0x155)](_0x5366e2,_0x3790ef);}}catch(_0x275913){logger['warn']({'event':'idgen_random_undo_error','error':_0x275913['message']},_0x78ad19['mXKmj']);}}async['_updateMeta'](_0x1c835e,_0x11e39b,_0x40b2b4,_0x533f00=0x0){const _0x5edeee=a0_0x166a1c,_0x154182={'aqgiP':function(_0x3b5b13,_0x42fda1){return _0x3b5b13>_0x42fda1;},'GIguN':_0x5edeee(0x171)};try{const _0x271580=redisClient[_0x5edeee(0x1ae)](),_0x30ad4e=this[_0x5edeee(0x154)](_0x1c835e,_0x11e39b),_0xdac605=[];for(const [_0x1725d2,_0xda08f3]of Object['entries'](_0x40b2b4)){_0xdac605['push'](_0x1725d2,String(_0xda08f3));}if(_0x154182['aqgiP'](_0xdac605[_0x5edeee(0x1fe)],0x0)){await _0x271580[_0x5edeee(0x148)](_0x30ad4e,..._0xdac605);if(_0x154182['aqgiP'](_0x533f00,0x0))await _0x271580['expire'](_0x30ad4e,_0x533f00);}}catch(_0x107ab3){logger[_0x5edeee(0x19c)]({'event':'idgen_meta_update_error','error':_0x107ab3['message']},_0x154182[_0x5edeee(0x185)]);}}async[a0_0x166a1c(0x213)](_0x645ee0){const _0x81fad=a0_0x166a1c,_0x2fff27={'GvaAU':function(_0x1a1bb6,_0x49362d){return _0x1a1bb6(_0x49362d);},'GkWVd':function(_0x4a350d,_0x2d49c3){return _0x4a350d===_0x2d49c3;},'fYFdq':'idgen_idem_loser_release_error','DXLQd':'idgen_number_idem_loser','QjluQ':_0x81fad(0x17c)};if(!this[_0x81fad(0x134)])throw new IdGeneratorError(_0x81fad(0x141),_0x81fad(0x18d));const _0x311162=this['_validateNumberParams'](_0x645ee0),_0x5bd520=this[_0x81fad(0x165)](_0x645ee0[_0x81fad(0x1c1)]),{resource:_0x31e35a,format:_0x4936e3,prefix:_0x6cfe00,separator:_0xd41554,numDigits:_0x24ff45,reuseDelete:_0x7941a6}=_0x311162,{formatKey:_0x2ca911,datePrefix:_0x48c7de}=this['_buildFormatKey'](_0x4936e3,_0x6cfe00),_0x22a992=this['_buildSeqKey'](_0x31e35a,_0x2ca911),_0x234597=this[_0x81fad(0x178)](_0x31e35a,_0x2ca911),_0x575c72=this[_0x81fad(0x210)](_0x4936e3);let _0x301a41=null;if(_0x5bd520){_0x301a41=this[_0x81fad(0x1e7)]('number',_0x31e35a,_0x2ca911,_0x5bd520);const _0x56ba38=await this['_retrieveIdemCache'](_0x301a41);if(_0x56ba38)return _0x56ba38;}const _0x4480af=redisClient['getClient'](),_0x1c37ed=await _0x4480af['eval'](LUA_GENERATE_NUMBER,0x2,_0x22a992,_0x234597,_0x7941a6?'1':'0',_0x2fff27['GvaAU'](String,_0x575c72)),_0x1a0787=_0x1c37ed[0x0],_0x4be76b=_0x2fff27['GkWVd'](_0x1c37ed[0x1],0x1),_0x5133ce=this[_0x81fad(0x164)]({'format':_0x4936e3,'prefix':_0x6cfe00,'datePrefix':_0x48c7de,'separator':_0xd41554,'numDigits':_0x24ff45,'counterInt':_0x1a0787}),_0x5eaefd={'value':_0x5133ce,'counter':_0x1a0787,'resource':_0x31e35a,'formatKey':_0x2ca911,'isReused':_0x4be76b,'generatedAt':new Date()[_0x81fad(0x22a)]()},_0x5e6b54=await this[_0x81fad(0x1d9)](_0x301a41,_0x5eaefd);if(!_0x5e6b54['stored']){try{await _0x4480af[_0x81fad(0x20f)](LUA_RELEASE_NUMBER,0x1,_0x234597,String(_0x1a0787),String(_0x575c72));}catch(_0x47261f){logger['warn']({'event':_0x2fff27[_0x81fad(0x1a2)],'error':_0x47261f[_0x81fad(0x1ce)],'resource':_0x31e35a,'formatKey':_0x2ca911,'counterInt':_0x1a0787},_0x81fad(0x1fc));}return logger[_0x81fad(0x1ea)]({'event':_0x2fff27['DXLQd'],'resource':_0x31e35a,'formatKey':_0x2ca911,'counter':_0x1a0787},'ID\x20Generator\x20number\x20idem\x20race\x20lost,\x20returning\x20winner\x20envelope'),_0x5e6b54['winnerResult'];}return this['_updateMeta'](_0x31e35a,_0x2ca911,{'lastValue':_0x5133ce,'lastCounter':_0x1a0787,'lastIsReused':_0x4be76b,'lastGeneratedAt':_0x5eaefd[_0x81fad(0x16c)]},_0x575c72),logger['info']({'event':_0x2fff27['QjluQ'],'resource':_0x31e35a,'formatKey':_0x2ca911,'counter':_0x1a0787,'isReused':_0x4be76b},'ID\x20Generator\x20number:\x20'+_0x5133ce),_0x5eaefd;}async['releaseNumber'](_0x4125f2){const _0x4acb11=a0_0x166a1c,_0x17f39f={'nGbGm':function(_0x20c0b9,_0x540cd0){return _0x20c0b9!==_0x540cd0;},'Cuzcv':_0x4acb11(0x175),'AjzqR':function(_0x3e1947,_0x55438f){return _0x3e1947===_0x55438f;},'NDLCj':_0x4acb11(0x156),'uGOFB':'release','OtSYz':function(_0x13cdba,_0x121ade){return _0x13cdba(_0x121ade);}};if(!this[_0x4acb11(0x134)])throw new IdGeneratorError('IDGEN_DISABLED',_0x4acb11(0x1a9));let _0x1f027f,_0x36b059,_0x39455d,_0x49b70c;const _0x58bbec=this[_0x4acb11(0x165)](_0x4125f2[_0x4acb11(0x1c1)]);if(_0x17f39f[_0x4acb11(0x232)](_0x4125f2['counterInt'],undefined)&&_0x4125f2[_0x4acb11(0x1e2)]!==null){this[_0x4acb11(0x190)](_0x4125f2['resource']),_0x1f027f=_0x4125f2['resource'];if(_0x17f39f['nGbGm'](typeof _0x4125f2['formatKey'],_0x17f39f[_0x4acb11(0x22e)])||_0x17f39f['AjzqR'](_0x4125f2[_0x4acb11(0x157)]['length'],0x0))throw new IdGeneratorError('IDGEN_INVALID_NUMBER',_0x4acb11(0x177));_0x36b059=_0x4125f2['formatKey'];if(!Number['isInteger'](_0x4125f2[_0x4acb11(0x1e2)])||_0x4125f2[_0x4acb11(0x1e2)]<0x1)throw new IdGeneratorError(_0x17f39f['NDLCj'],'counterInt\x20must\x20be\x20positive\x20integer\x20(got:\x20'+_0x4125f2['counterInt']+')');_0x39455d=_0x4125f2[_0x4acb11(0x1e2)];const _0x165ef4=_0x36b059[_0x4acb11(0x195)](/_(text|yyyy|yyyymm|yyyymmdd)(?:_|$)/);_0x49b70c=_0x165ef4?_0x165ef4[0x1]:'text';}else{const _0x120f5a=this['_validateNumberParams'](_0x4125f2),_0x316b3f=this[_0x4acb11(0x22f)]({'format':_0x120f5a[_0x4acb11(0x1f5)],'prefix':_0x120f5a['prefix'],'separator':_0x120f5a['separator'],'numDigits':_0x120f5a[_0x4acb11(0x145)],'number':_0x4125f2[_0x4acb11(0x213)]});_0x1f027f=_0x120f5a['resource'],_0x36b059=_0x316b3f['formatKey'],_0x39455d=_0x316b3f['counterInt'],_0x49b70c=_0x120f5a[_0x4acb11(0x1f5)];}const _0x25cfb1=this['_buildReuseKey'](_0x1f027f,_0x36b059),_0x55ea8c=this['_getCounterTTL'](_0x49b70c);let _0x470676=null;if(_0x58bbec){_0x470676=this[_0x4acb11(0x1e7)](_0x17f39f['uGOFB'],_0x1f027f,_0x36b059,_0x58bbec);const _0x1cc2a2=await this['_retrieveIdemCache'](_0x470676);if(_0x1cc2a2)return _0x1cc2a2;}const _0x44c1c6=redisClient[_0x4acb11(0x1ae)]();await _0x44c1c6['eval'](LUA_RELEASE_NUMBER,0x1,_0x25cfb1,String(_0x39455d),_0x17f39f['OtSYz'](String,_0x55ea8c));const _0xdc7c3f={'released':!![],'resource':_0x1f027f,'formatKey':_0x36b059,'counter':_0x39455d,'releasedAt':new Date()['toISOString']()};return await this['_storeIdemCache'](_0x470676,_0xdc7c3f),this['_updateMeta'](_0x1f027f,_0x36b059,{'lastReleasedCounter':_0x39455d,'lastReleasedAt':_0xdc7c3f['releasedAt']},_0x55ea8c),logger[_0x4acb11(0x1ea)]({'event':_0x4acb11(0x1f9),'resource':_0x1f027f,'formatKey':_0x36b059,'counter':_0x39455d},_0x4acb11(0x206)+_0x39455d),_0xdc7c3f;}async[a0_0x166a1c(0x14c)](_0x570fd5){const _0x5e8289=a0_0x166a1c,_0x104294={'UlkFE':'IDGEN_DISABLED','jSWzu':'ID\x20Generator\x20is\x20disabled\x20(set\x20IDGEN_ENABLED=true)','hHbRH':_0x5e8289(0x1d7),'SIjvd':function(_0x5305be,_0x1fedd7){return _0x5305be*_0x1fedd7;},'NVrXL':'resource','qHjSK':_0x5e8289(0x228),'mfgCE':'separator','HoeaQ':_0x5e8289(0x15b),'fJVOj':_0x5e8289(0x18c),'cejfl':_0x5e8289(0x1d8),'JHpMr':function(_0x3e0c91,_0x38147a){return _0x3e0c91(_0x38147a);},'QbqLI':_0x5e8289(0x1f1),'NFuQx':function(_0x39c3c4,_0x496782){return _0x39c3c4(_0x496782);},'fwjIY':_0x5e8289(0x1a1),'LqsiW':'Failed\x20to\x20cancel\x20reservation\x20for\x20idempotency\x20loser','FNhcd':_0x5e8289(0x1df),'gukSG':'idgen_number_reserved'};if(!this[_0x5e8289(0x134)])throw new IdGeneratorError(_0x104294['UlkFE'],_0x104294[_0x5e8289(0x1ec)]);const _0x5cd68e=this['_validateNumberParams'](_0x570fd5),_0x2954bc=this[_0x5e8289(0x1f7)](_0x570fd5['ttl']),_0xc14cb8=this[_0x5e8289(0x165)](_0x570fd5[_0x5e8289(0x1c1)]),{resource:_0x500943,format:_0x6347f2,prefix:_0x1b251c,separator:_0xaa24f7,numDigits:_0x4b7cb3,reuseDelete:_0x486975}=_0x5cd68e,{formatKey:_0x17b512,datePrefix:_0x4d5b1c}=this['_buildFormatKey'](_0x6347f2,_0x1b251c),_0x2270f3=this['_buildSeqKey'](_0x500943,_0x17b512),_0x24bea2=this[_0x5e8289(0x178)](_0x500943,_0x17b512),_0xad8768=this[_0x5e8289(0x1c3)](_0x500943,_0x17b512),_0x4606a2=this['_getCounterTTL'](_0x6347f2);let _0x4017c5=null;if(_0xc14cb8){_0x4017c5=this[_0x5e8289(0x1e7)](_0x104294[_0x5e8289(0x12f)],_0x500943,_0x17b512,_0xc14cb8);const _0x199409=await this[_0x5e8289(0x1a5)](_0x4017c5);if(_0x199409)return _0x199409;}const _0x29804f=crypto['randomUUID'](),_0x3c4e61=this[_0x5e8289(0x214)](_0x29804f),_0x5a4300=this['_buildReservationKeyPrefix'](),_0x560835=Date['now'](),_0x252749=_0x560835+_0x104294[_0x5e8289(0x224)](_0x2954bc,0x3e8),_0x41682b=_0x104294['SIjvd'](_0x2954bc,0x3e8),_0x161498=new Date(_0x560835)[_0x5e8289(0x22a)](),_0x4a32bd=new Date(_0x252749)[_0x5e8289(0x22a)](),_0x74cfff=[_0x104294['NVrXL'],_0x500943,_0x5e8289(0x157),_0x17b512,_0x5e8289(0x1f5),_0x6347f2,_0x104294['qHjSK'],_0x1b251c,_0x104294['mfgCE'],_0xaa24f7,'numDigits',String(_0x4b7cb3),_0x104294[_0x5e8289(0x131)],_0x4d5b1c||'',_0x104294[_0x5e8289(0x200)],_0x161498,_0x5e8289(0x13f),_0x4a32bd,_0x5e8289(0x181),String(_0x41682b)];_0xc14cb8&&_0x74cfff[_0x5e8289(0x1f2)](_0x104294[_0x5e8289(0x162)],_0xc14cb8);const _0x59508a=redisClient[_0x5e8289(0x1ae)](),_0x54d00f=await _0x59508a['eval'](LUA_RESERVE_NUMBER,0x3,_0x2270f3,_0x24bea2,_0xad8768,_0x486975?'1':'0',String(_0x4606a2),_0x29804f,_0x3c4e61,_0x104294[_0x5e8289(0x236)](String,_0x41682b),_0x104294[_0x5e8289(0x236)](String,_0x252749),_0x104294[_0x5e8289(0x236)](String,_0x560835),_0x5a4300,..._0x74cfff),_0x269835=_0x54d00f[0x0],_0x1c1407=_0x54d00f[0x1]===0x1,_0x3700d8=_0x54d00f[0x2]||0x0;let _0x4fd951;try{_0x4fd951=this[_0x5e8289(0x164)]({'format':_0x6347f2,'prefix':_0x1b251c,'datePrefix':_0x4d5b1c,'separator':_0xaa24f7,'numDigits':_0x4b7cb3,'counterInt':_0x269835});}catch(_0x207dd7){try{await _0x59508a['eval'](LUA_CANCEL_RESERVATION,0x3,_0x3c4e61,_0xad8768,_0x24bea2,_0x29804f,_0x104294['JHpMr'](String,_0x4606a2));}catch(_0x484afe){logger[_0x5e8289(0x19c)]({'event':_0x5e8289(0x204),'error':_0x484afe['message'],'resource':_0x500943,'formatKey':_0x17b512,'counterInt':_0x269835,'token':_0x29804f},'Failed\x20to\x20compensate\x20reservation\x20after\x20counter\x20overflow');}throw _0x207dd7;}try{await _0x59508a['hset'](_0x3c4e61,_0x5e8289(0x205),_0x4fd951);}catch(_0x3d84b8){logger['warn']({'event':'idgen_reserve_value_persist_error','error':_0x3d84b8[_0x5e8289(0x1ce)],'resource':_0x500943,'formatKey':_0x17b512,'counterInt':_0x269835,'token':_0x29804f},_0x104294['QbqLI']);}const _0x1e38c0={'token':_0x29804f,'value':_0x4fd951,'counter':_0x269835,'resource':_0x500943,'formatKey':_0x17b512,'isReused':_0x1c1407,'createdAt':_0x161498,'expiresAt':_0x4a32bd,'reapedCount':_0x3700d8},_0x441ad7=await this[_0x5e8289(0x1d9)](_0x4017c5,_0x1e38c0);if(!_0x441ad7[_0x5e8289(0x196)]){try{await _0x59508a['eval'](LUA_CANCEL_RESERVATION,0x3,_0x3c4e61,_0xad8768,_0x24bea2,_0x29804f,_0x104294['NFuQx'](String,_0x4606a2));}catch(_0x484b36){logger['warn']({'event':_0x104294['fwjIY'],'error':_0x484b36['message'],'resource':_0x500943,'formatKey':_0x17b512,'counterInt':_0x269835,'token':_0x29804f},_0x104294[_0x5e8289(0x21a)]);}return logger[_0x5e8289(0x1ea)]({'event':_0x104294['FNhcd'],'resource':_0x500943,'formatKey':_0x17b512,'counter':_0x269835,'token':_0x29804f},_0x5e8289(0x218)),_0x441ad7[_0x5e8289(0x209)];}return this['_updateMeta'](_0x500943,_0x17b512,{'lastReservedCounter':_0x269835,'lastReservedAt':_0x161498,'lastReapedCount':_0x3700d8},_0x4606a2),logger['info']({'event':_0x104294['gukSG'],'resource':_0x500943,'formatKey':_0x17b512,'counter':_0x269835,'isReused':_0x1c1407,'token':_0x29804f,'ttl':_0x2954bc,'reapedCount':_0x3700d8},'ID\x20Generator\x20number\x20reserved:\x20'+_0x4fd951+_0x5e8289(0x189)+_0x29804f+')'),_0x1e38c0;}async['confirmReservation'](_0x527768){const _0x185419=a0_0x166a1c,_0x3ab25f={'XBeJD':_0x185419(0x141),'PsmGh':'ID\x20Generator\x20is\x20disabled','wVdBC':_0x185419(0x217),'muQql':function(_0x549924,_0x2c7268){return _0x549924!==_0x2c7268;},'bnpLM':_0x185419(0x12d),'VqIwB':function(_0x122c88,_0x433496,_0x404c5b){return _0x122c88(_0x433496,_0x404c5b);},'QzCiK':_0x185419(0x233)};if(!this[_0x185419(0x134)])throw new IdGeneratorError(_0x3ab25f[_0x185419(0x17a)],_0x3ab25f[_0x185419(0x1d0)]);const _0x89996e=this['_validateReservationToken'](_0x527768&&_0x527768['token']),_0x58e56a=this['_validateIdempotencyKey'](_0x527768&&_0x527768[_0x185419(0x1c1)]);let _0x6bc258=null;if(_0x58e56a){_0x6bc258=idempotencyManager['buildDeterministicKey'](_0x185419(0x168),_0x3ab25f['wVdBC'],_0x89996e+':'+_0x58e56a);const _0x63b8a6=await this['_retrieveIdemCache'](_0x6bc258);if(_0x63b8a6)return _0x63b8a6;}const _0x47431a=await this['_getReservationContext'](_0x89996e),_0x1ae749=redisClient['getClient'](),_0x32531c=await _0x1ae749[_0x185419(0x20f)](LUA_CONFIRM_RESERVATION,0x2,_0x47431a['rsvKey'],_0x47431a[_0x185419(0x173)],_0x89996e);if(!_0x32531c||_0x3ab25f[_0x185419(0x127)](_0x32531c[0x0],0x1))throw new IdGeneratorError(_0x3ab25f[_0x185419(0x1ba)],_0x185419(0x16d)+_0x89996e,{'token':_0x89996e});const _0x451c2d=_0x3ab25f[_0x185419(0x1ff)](parseInt,_0x32531c[0x1],0xa),_0x307cea=_0x32531c[0x2],_0x172928=_0x32531c[0x3],_0x1dd73e=new Date()[_0x185419(0x22a)](),_0x5b2a38={'confirmed':!![],'token':_0x89996e,'value':_0x307cea,'counter':_0x451c2d,'resource':_0x47431a['resource'],'formatKey':_0x172928,'confirmedAt':_0x1dd73e};await this['_storeIdemCache'](_0x6bc258,_0x5b2a38);const _0x4382b4=_0x172928['match'](/_(text|yyyy|yyyymm|yyyymmdd)(?:_|$)/),_0x2c187c=_0x4382b4?_0x4382b4[0x1]:_0x3ab25f['QzCiK'],_0x30f6f4=this['_getCounterTTL'](_0x2c187c);return this['_updateMeta'](_0x47431a['resource'],_0x172928,{'lastConfirmedCounter':_0x451c2d,'lastConfirmedAt':_0x1dd73e},_0x30f6f4),logger[_0x185419(0x1ea)]({'event':'idgen_reservation_confirmed','resource':_0x47431a['resource'],'formatKey':_0x172928,'counter':_0x451c2d,'token':_0x89996e},_0x185419(0x153)+_0x307cea+_0x185419(0x189)+_0x89996e+')'),_0x5b2a38;}async['cancelReservation'](_0x267c47){const _0x57322e=a0_0x166a1c,_0x2ae3ff={'YYkQx':'idgen','eTbpa':'reserve_cancel','QSXBF':'text','EpEBA':function(_0x5ae534,_0x3b55be){return _0x5ae534(_0x3b55be);},'sCEjI':function(_0x333230,_0x37feba){return _0x333230!==_0x37feba;}};if(!this[_0x57322e(0x134)])throw new IdGeneratorError(_0x57322e(0x141),'ID\x20Generator\x20is\x20disabled');const _0x542e50=this[_0x57322e(0x17b)](_0x267c47&&_0x267c47['token']),_0x20c6fe=this[_0x57322e(0x165)](_0x267c47&&_0x267c47[_0x57322e(0x1c1)]);let _0x5e2cee=null;if(_0x20c6fe){_0x5e2cee=idempotencyManager['buildDeterministicKey'](_0x2ae3ff['YYkQx'],_0x2ae3ff['eTbpa'],_0x542e50+':'+_0x20c6fe);const _0x69d07d=await this['_retrieveIdemCache'](_0x5e2cee);if(_0x69d07d)return _0x69d07d;}const _0xc4809e=await this['_getReservationContext'](_0x542e50),_0x5f8120=this['_buildReuseKey'](_0xc4809e['resource'],_0xc4809e[_0x57322e(0x157)]),_0x34e2a3=_0xc4809e[_0x57322e(0x157)][_0x57322e(0x195)](/_(text|yyyy|yyyymm|yyyymmdd)(?:_|$)/),_0x3cf55a=_0x34e2a3?_0x34e2a3[0x1]:_0x2ae3ff['QSXBF'],_0x416a7d=this[_0x57322e(0x210)](_0x3cf55a),_0x36a2e8=redisClient['getClient'](),_0x484d37=await _0x36a2e8[_0x57322e(0x20f)](LUA_CANCEL_RESERVATION,0x3,_0xc4809e['rsvKey'],_0xc4809e[_0x57322e(0x173)],_0x5f8120,_0x542e50,_0x2ae3ff['EpEBA'](String,_0x416a7d));if(!_0x484d37||_0x2ae3ff['sCEjI'](_0x484d37[0x0],0x1))throw new IdGeneratorError('IDGEN_RESERVATION_NOT_FOUND','Reservation\x20not\x20found\x20or\x20already\x20consumed:\x20'+_0x542e50,{'token':_0x542e50});const _0x361cc6=parseInt(_0x484d37[0x1],0xa),_0x3948d2=_0x484d37[0x2],_0x477597=_0x484d37[0x3],_0x3f754=new Date()[_0x57322e(0x22a)](),_0x3e31d4={'cancelled':!![],'token':_0x542e50,'value':_0x3948d2,'counter':_0x361cc6,'resource':_0xc4809e[_0x57322e(0x1b9)],'formatKey':_0x477597,'releasedToReuse':!![],'cancelledAt':_0x3f754};return await this[_0x57322e(0x130)](_0x5e2cee,_0x3e31d4),this[_0x57322e(0x135)](_0xc4809e['resource'],_0x477597,{'lastCancelledCounter':_0x361cc6,'lastCancelledAt':_0x3f754},_0x416a7d),logger[_0x57322e(0x1ea)]({'event':_0x57322e(0x235),'resource':_0xc4809e['resource'],'formatKey':_0x477597,'counter':_0x361cc6,'token':_0x542e50},_0x57322e(0x234)+_0x3948d2+_0x57322e(0x189)+_0x542e50+')'),_0x3e31d4;}async[a0_0x166a1c(0x184)](_0x253357){const _0x44ea47=a0_0x166a1c,_0x3ceeec={'sdWbi':function(_0x4e3cde,_0x33bbe4){return _0x4e3cde+_0x33bbe4;},'GZccX':function(_0x47b72a,_0x34ee39){return _0x47b72a*_0x34ee39;},'lzVYd':function(_0x1a5738,_0x62daef){return _0x1a5738*_0x62daef;}};if(!this[_0x44ea47(0x134)])throw new IdGeneratorError(_0x44ea47(0x141),'ID\x20Generator\x20is\x20disabled');const _0x490978=this[_0x44ea47(0x17b)](_0x253357&&_0x253357['token']),_0x2ccad2=this['_validateReserveTTL'](_0x253357&&_0x253357['ttl']),_0x65f87e=this['_validateIdempotencyKey'](_0x253357&&_0x253357[_0x44ea47(0x1c1)]);let _0x42e3e4=null;if(_0x65f87e){_0x42e3e4=idempotencyManager[_0x44ea47(0x137)]('idgen','reserve_extend',_0x490978+':'+_0x65f87e);const _0x26d688=await this['_retrieveIdemCache'](_0x42e3e4);if(_0x26d688)return _0x26d688;}const _0x24a575=await this[_0x44ea47(0x201)](_0x490978),_0x738b53=Date[_0x44ea47(0x18e)](),_0x5d913b=_0x3ceeec['sdWbi'](_0x738b53,_0x3ceeec[_0x44ea47(0x229)](_0x2ccad2,0x3e8)),_0x21ee5d=_0x3ceeec[_0x44ea47(0x1de)](_0x2ccad2,0x3e8),_0x672a1=new Date(_0x5d913b)[_0x44ea47(0x22a)](),_0x551fb5=redisClient['getClient'](),_0x555063=await _0x551fb5[_0x44ea47(0x20f)](LUA_EXTEND_RESERVATION,0x2,_0x24a575['rsvKey'],_0x24a575[_0x44ea47(0x173)],_0x490978,String(_0x21ee5d),String(_0x5d913b),_0x672a1);if(!_0x555063||_0x555063[0x0]!==0x1)throw new IdGeneratorError('IDGEN_RESERVATION_NOT_FOUND',_0x44ea47(0x16d)+_0x490978,{'token':_0x490978});const _0xd9477a=_0x555063[0x1],_0xa6e735=parseInt(_0x555063[0x2],0xa),_0x4e382c=_0x555063[0x3],_0x33a21a=_0x555063[0x4],_0x162b1c=new Date(_0x738b53)[_0x44ea47(0x22a)](),_0x4341da={'extended':!![],'token':_0x490978,'previousExpiresAt':_0xd9477a,'expiresAt':_0x672a1,'ttlMs':_0x21ee5d,'resource':_0x24a575['resource'],'formatKey':_0x33a21a,'counter':_0xa6e735,'value':_0x4e382c,'extendedAt':_0x162b1c};await this['_storeIdemCache'](_0x42e3e4,_0x4341da);const _0xbdce90=_0x33a21a[_0x44ea47(0x195)](/_(text|yyyy|yyyymm|yyyymmdd)(?:_|$)/),_0x13d51f=_0xbdce90?_0xbdce90[0x1]:'text',_0x9fc548=this[_0x44ea47(0x210)](_0x13d51f);return this[_0x44ea47(0x135)](_0x24a575['resource'],_0x33a21a,{'lastExtendedCounter':_0xa6e735,'lastExtendedAt':_0x162b1c},_0x9fc548),logger['info']({'event':'idgen_reservation_extended','resource':_0x24a575['resource'],'formatKey':_0x33a21a,'counter':_0xa6e735,'token':_0x490978,'ttl':_0x2ccad2},'ID\x20Generator\x20reservation\x20extended:\x20'+_0x4e382c+'\x20(token='+_0x490978+',\x20+'+_0x2ccad2+'s)'),_0x4341da;}async[a0_0x166a1c(0x158)](_0x956bc4){const _0x3e4c93=a0_0x166a1c,_0x3ee388={'Nkijy':'IDGEN_RESERVATION_NOT_FOUND','GQRmr':function(_0x335034,_0x1a91e4,_0x319ec5){return _0x335034(_0x1a91e4,_0x319ec5);},'JpRVm':function(_0x3df1e6,_0x4b58cd){return _0x3df1e6===_0x4b58cd;},'UPMxr':function(_0x45eea2,_0x352ea3){return _0x45eea2===_0x352ea3;},'WDgJw':'number'};if(!this[_0x3e4c93(0x134)])throw new IdGeneratorError('IDGEN_DISABLED',_0x3e4c93(0x1a9));const _0x1567e1=this['_validateReservationToken'](_0x956bc4&&_0x956bc4['token']),_0x11c481=this['_buildReservationKey'](_0x1567e1),_0x5dc177=redisClient['getClient'](),_0x50e36d=_0x5dc177['pipeline']();_0x50e36d[_0x3e4c93(0x1f8)](_0x11c481),_0x50e36d[_0x3e4c93(0x14f)](_0x11c481);const _0x24e1b8=await _0x50e36d['exec'](),_0x2f0db0=_0x24e1b8&&_0x24e1b8[0x0]&&_0x24e1b8[0x0][0x1],_0x2f80cc=_0x24e1b8&&_0x24e1b8[0x1]&&_0x24e1b8[0x1][0x1];if(!_0x2f0db0||Object['keys'](_0x2f0db0)[_0x3e4c93(0x1fe)]===0x0)throw new IdGeneratorError(_0x3ee388['Nkijy'],_0x3e4c93(0x16d)+_0x1567e1,{'token':_0x1567e1});return{'token':_0x1567e1,'resource':_0x2f0db0[_0x3e4c93(0x1b9)]||null,'formatKey':_0x2f0db0[_0x3e4c93(0x157)]||null,'format':_0x2f0db0[_0x3e4c93(0x1f5)]||null,'prefix':_0x2f0db0[_0x3e4c93(0x228)]||'','separator':_0x2f0db0[_0x3e4c93(0x163)]||'','numDigits':_0x2f0db0['numDigits']?_0x3ee388[_0x3e4c93(0x1da)](parseInt,_0x2f0db0[_0x3e4c93(0x145)],0xa):null,'datePrefix':_0x2f0db0[_0x3e4c93(0x15b)]||'','counter':_0x2f0db0[_0x3e4c93(0x142)]?parseInt(_0x2f0db0[_0x3e4c93(0x142)],0xa):null,'value':_0x2f0db0[_0x3e4c93(0x205)]||null,'isReused':_0x3ee388[_0x3e4c93(0x19a)](_0x2f0db0[_0x3e4c93(0x1d5)],'1')||_0x2f0db0[_0x3e4c93(0x1d5)]===0x1,'createdAt':_0x2f0db0[_0x3e4c93(0x18c)]||null,'expiresAt':_0x2f0db0['expiresAt']||null,'ttlRemainingMs':_0x3ee388['UPMxr'](typeof _0x2f80cc,_0x3ee388['WDgJw'])&&_0x2f80cc>=0x0?_0x2f80cc:null};}async[a0_0x166a1c(0x201)](_0x146ed5){const _0x1c694c=a0_0x166a1c,_0x1d5d60={'ulkLR':'resource'},_0x580820=this[_0x1c694c(0x214)](_0x146ed5),_0x11f98b=redisClient[_0x1c694c(0x1ae)](),_0x4f82c0=await _0x11f98b[_0x1c694c(0x1e5)](_0x580820,_0x1d5d60['ulkLR'],'formatKey'),_0x5b99aa=_0x4f82c0&&_0x4f82c0[0x0],_0xbd221d=_0x4f82c0&&_0x4f82c0[0x1];if(!_0x5b99aa||!_0xbd221d)throw new IdGeneratorError('IDGEN_RESERVATION_NOT_FOUND','Reservation\x20not\x20found\x20or\x20already\x20consumed:\x20'+_0x146ed5,{'token':_0x146ed5});return{'resource':_0x5b99aa,'formatKey':_0xbd221d,'rsvKey':_0x580820,'rsvIdxKey':this['_buildReservationIndexKey'](_0x5b99aa,_0xbd221d)};}async[a0_0x166a1c(0x212)](_0x1772c6){const _0x4f8d70=a0_0x166a1c,_0xa14383={'fliQI':_0x4f8d70(0x1a9),'tjGxi':function(_0x3b112c,_0x370e38){return _0x3b112c===_0x370e38;},'adYXw':function(_0xb3f65c,_0x429d42){return _0xb3f65c<_0x429d42;},'hgmoG':function(_0x274762,_0x4930b5){return _0x274762===_0x4930b5;},'mnymD':function(_0x5ce967,_0x43eaf6){return _0x5ce967===_0x43eaf6;},'FICey':_0x4f8d70(0x176),'UonEC':function(_0x3bef8e,_0x355e86){return _0x3bef8e+_0x355e86;},'ulbwq':function(_0x2b673b,_0x2a2c9){return _0x2b673b*_0x2a2c9;},'RzjSH':function(_0xc2e860,_0x32bfea){return _0xc2e860||_0x32bfea;}};if(!this[_0x4f8d70(0x134)])throw new IdGeneratorError('IDGEN_DISABLED',_0xa14383['fliQI']);this['_validateResource'](_0x1772c6[_0x4f8d70(0x1b9)]),this[_0x4f8d70(0x21c)](_0x1772c6['pattern']);const _0x526397=this[_0x4f8d70(0x1e0)](_0x1772c6[_0x4f8d70(0x1a4)]),_0x125eab=this['_validateMaxRetry'](_0x1772c6[_0x4f8d70(0x1b1)]),_0x395b76=this[_0x4f8d70(0x165)](_0x1772c6[_0x4f8d70(0x1c1)]),_0x392229=_0xa14383[_0x4f8d70(0x15d)](_0x1772c6['ensureUnique'],!![]),{resource:_0x3ce527,pattern:_0x3f71a3}=_0x1772c6;let _0x4bbdd2=null;if(_0x395b76){_0x4bbdd2=this[_0x4f8d70(0x1e7)](_0x4f8d70(0x212),_0x3ce527,null,_0x395b76);const _0x40681f=await this['_retrieveIdemCache'](_0x4bbdd2);if(_0x40681f)return _0x40681f;}const _0x45cb62=redisClient['getClient']();let _0xfef76=null,_0x14cd53=0x0;if(!_0x392229)_0xfef76=this['_generateFromPattern'](_0x3f71a3),_0x14cd53=0x1;else{for(let _0x39e8b4=0x0;_0xa14383['adYXw'](_0x39e8b4,_0x125eab);_0x39e8b4++){_0x14cd53++;const _0x466f71=this['_generateFromPattern'](_0x3f71a3);if(_0x526397){const _0x3e63cf=this['_buildActiveKey'](_0x3ce527,_0x466f71),_0x2034c6=await _0x45cb62['set'](_0x3e63cf,'1','EX',_0x526397,'NX');if(_0xa14383['hgmoG'](_0x2034c6,'OK')){_0xfef76=_0x466f71;break;}}else{const _0x29fdc0=this['_buildIssuedKey'](_0x3ce527),_0x5243a4=await _0x45cb62['sadd'](_0x29fdc0,_0x466f71);if(_0xa14383[_0x4f8d70(0x1cd)](_0x5243a4,0x1)){_0xfef76=_0x466f71;break;}}}if(_0xa14383['tjGxi'](_0xfef76,null))throw new IdGeneratorError(_0xa14383[_0x4f8d70(0x1c5)],_0x4f8d70(0x191)+_0x125eab+'\x20attempts.\x20Increase\x20pattern\x20length\x20or\x20maxRetry.',{'resource':_0x3ce527,'pattern':_0x3f71a3,'maxRetry':_0x125eab});}const _0x50de25={'value':_0xfef76,'resource':_0x3ce527,'pattern':_0x3f71a3,'attemptCount':_0x14cd53,'generatedAt':new Date()[_0x4f8d70(0x22a)]()};_0x526397&&_0x392229&&(_0x50de25['expiresAt']=new Date(_0xa14383[_0x4f8d70(0x1ab)](Date['now'](),_0xa14383['ulbwq'](_0x526397,0x3e8)))['toISOString']());const _0x1239ac=await this[_0x4f8d70(0x1d9)](_0x4bbdd2,_0x50de25);if(!_0x1239ac['stored'])return _0x392229&&await this[_0x4f8d70(0x215)](_0x3ce527,_0xfef76,_0x526397),logger[_0x4f8d70(0x1ea)]({'event':_0x4f8d70(0x230),'resource':_0x3ce527,'pattern':_0x3f71a3,'value':_0xfef76},'ID\x20Generator\x20random\x20idem\x20race\x20lost,\x20returning\x20winner\x20envelope'),_0x1239ac['winnerResult'];return logger[_0x4f8d70(0x1ea)]({'event':_0x4f8d70(0x237),'resource':_0x3ce527,'pattern':_0x3f71a3,'attemptCount':_0x14cd53,'ensureUnique':_0x392229,'ttl':_0xa14383[_0x4f8d70(0x1c8)](_0x526397,0x0)},'ID\x20Generator\x20random:\x20'+_0xfef76),_0x50de25;}async[a0_0x166a1c(0x12c)](_0x59df17){const _0x3f0a4b=a0_0x166a1c,_0x537e87={'PshmX':function(_0x2944bd,_0x5a7842){return _0x2944bd==_0x5a7842;},'zpMLC':function(_0x2bc55b,_0x4c9261){return _0x2bc55b===_0x4c9261;}},_0x4d0f2c=_0x537e87['PshmX'](_0x59df17['digits'],null)?this[_0x3f0a4b(0x13d)]:_0x59df17['digits'];if(!Number[_0x3f0a4b(0x1e3)](_0x4d0f2c)||_0x4d0f2c<MIN_PIN_DIGITS||_0x4d0f2c>MAX_PIN_DIGITS)throw new IdGeneratorError('IDGEN_INVALID_DIGITS','Invalid\x20digits:\x20must\x20be\x20integer\x20'+MIN_PIN_DIGITS+'-'+MAX_PIN_DIGITS+'\x20(got:\x20'+_0x4d0f2c+')');const _0x21ad0c='9'['repeat'](_0x4d0f2c);return this['random']({'resource':_0x59df17['resource'],'pattern':_0x21ad0c,'ensureUnique':_0x537e87[_0x3f0a4b(0x226)](_0x59df17[_0x3f0a4b(0x15c)],!![]),'ttl':_0x59df17['ttl'],'maxRetry':_0x59df17[_0x3f0a4b(0x1b1)],'idempotencyKey':_0x59df17[_0x3f0a4b(0x1c1)]});}async['serial'](_0x1c44f6){const _0x10a04d=a0_0x166a1c,_0x331d89=_0x1c44f6['pattern']||this['defaultSerialPattern'];return this['random']({'resource':_0x1c44f6[_0x10a04d(0x1b9)],'pattern':_0x331d89,'ensureUnique':_0x1c44f6['ensureUnique']!==![],'ttl':_0x1c44f6[_0x10a04d(0x1a4)],'maxRetry':_0x1c44f6['maxRetry'],'idempotencyKey':_0x1c44f6['idempotencyKey']});}async[a0_0x166a1c(0x22d)](_0x3cb54b){const _0x4053a1=a0_0x166a1c,_0x58cfdf=_0x3cb54b['pattern']||this['defaultCodePattern'];return this['random']({'resource':_0x3cb54b['resource'],'pattern':_0x58cfdf,'ensureUnique':_0x3cb54b['ensureUnique']!==![],'ttl':_0x3cb54b[_0x4053a1(0x1a4)],'maxRetry':_0x3cb54b['maxRetry'],'idempotencyKey':_0x3cb54b[_0x4053a1(0x1c1)]});}async[a0_0x166a1c(0x1cc)](_0x3adbcc){const _0x9ea826=a0_0x166a1c,_0x1dd598={'QmFZV':'IDGEN_DISABLED','yZDWF':_0x9ea826(0x1a9),'CXxcX':_0x9ea826(0x175),'vFyFy':'value\x20is\x20required','raKgv':function(_0x4cb080,_0x4f73d9){return _0x4cb080>_0x4f73d9;},'fxJhV':function(_0x1d8193,_0x2fe830){return _0x1d8193+_0x2fe830;}};if(!this['enabled'])throw new IdGeneratorError(_0x1dd598['QmFZV'],_0x1dd598['yZDWF']);this[_0x9ea826(0x190)](_0x3adbcc[_0x9ea826(0x1b9)]);if(typeof _0x3adbcc['value']!==_0x1dd598[_0x9ea826(0x14d)]||_0x3adbcc[_0x9ea826(0x205)]['length']===0x0)throw new IdGeneratorError('IDGEN_INVALID_NUMBER',_0x1dd598[_0x9ea826(0x1d4)]);const {resource:_0xe8bfee,value:_0xf8675c}=_0x3adbcc,_0x156e6b=redisClient[_0x9ea826(0x1ae)](),_0x20e8b1=this['_buildActiveKey'](_0xe8bfee,_0xf8675c),_0x42a54d=this[_0x9ea826(0x1d3)](_0xe8bfee),[_0x53fc70,_0x55d104]=await Promise['all']([_0x156e6b[_0x9ea826(0x1a0)](_0x20e8b1),_0x156e6b[_0x9ea826(0x155)](_0x42a54d,_0xf8675c)]),_0x583c38=_0x1dd598[_0x9ea826(0x1bb)](_0x1dd598['fxJhV'](_0x53fc70,_0x55d104),0x0);return logger['info']({'event':'idgen_consumed','resource':_0xe8bfee,'value':_0xf8675c,'consumed':_0x583c38},_0x9ea826(0x129)+_0xf8675c),{'consumed':_0x583c38,'resource':_0xe8bfee,'value':_0xf8675c,'consumedAt':new Date()[_0x9ea826(0x22a)]()};}async[a0_0x166a1c(0x19e)](_0x280476){const _0x326c07=a0_0x166a1c,_0x3f8c0f={'JJZeR':function(_0x3cc5ff,_0x12b8b2){return _0x3cc5ff===_0x12b8b2;},'IfznR':_0x326c07(0x212),'UsqPB':_0x326c07(0x188)};if(!this['enabled'])throw new IdGeneratorError('IDGEN_DISABLED','ID\x20Generator\x20is\x20disabled');this['_validateResource'](_0x280476[_0x326c07(0x1b9)]);const _0x429469=_0x280476['mode']||'number',_0x5f01b6=redisClient[_0x326c07(0x1ae)]();if(_0x429469===_0x326c07(0x213)){const _0x5a02b7=(_0x280476[_0x326c07(0x1f5)]||'text')['toLowerCase']();if(!ALLOWED_FORMATS['has'](_0x5a02b7))throw new IdGeneratorError(_0x326c07(0x1c6),'Invalid\x20format:\x20'+_0x280476[_0x326c07(0x1f5)]);const {formatKey:_0x83e5cd}=this['_buildFormatKey'](_0x5a02b7,_0x280476[_0x326c07(0x228)]||''),_0xa645e0=this['_buildSeqKey'](_0x280476['resource'],_0x83e5cd),_0x61a643=this[_0x326c07(0x178)](_0x280476[_0x326c07(0x1b9)],_0x83e5cd),[_0x2dd487,_0xd52549]=await Promise[_0x326c07(0x1a3)]([_0x5f01b6[_0x326c07(0x223)](_0xa645e0),_0x5f01b6['zcard'](_0x61a643)]);return{'resource':_0x280476['resource'],'mode':'number','formatKey':_0x83e5cd,'currentCounter':parseInt(_0x2dd487,0xa)||0x0,'reusePoolSize':_0xd52549||0x0};}if(_0x3f8c0f['JJZeR'](_0x429469,_0x3f8c0f['IfznR'])){const _0xa835ec=this[_0x326c07(0x1d3)](_0x280476[_0x326c07(0x1b9)]),_0x4e00e9=await _0x5f01b6['scard'](_0xa835ec);return{'resource':_0x280476[_0x326c07(0x1b9)],'mode':'random','issuedCount':_0x4e00e9||0x0};}throw new IdGeneratorError(_0x3f8c0f['UsqPB'],'Unknown\x20mode:\x20'+_0x429469);}async[a0_0x166a1c(0x1f4)](_0x4e67c8){const _0x3ec81a=a0_0x166a1c,_0x283691={'GRCsY':'number'},_0x2a7b19=await this[_0x3ec81a(0x19e)](_0x4e67c8);if(_0x2a7b19[_0x3ec81a(0x13b)]===_0x283691[_0x3ec81a(0x1e8)]){const _0x411adb=redisClient[_0x3ec81a(0x1ae)](),_0x1c5bf3=this['_buildMetaKey'](_0x4e67c8['resource'],_0x2a7b19['formatKey']),_0x191450=this['_buildReuseKey'](_0x4e67c8[_0x3ec81a(0x1b9)],_0x2a7b19[_0x3ec81a(0x157)]),[_0x1b3af1,_0x2f3f96]=await Promise[_0x3ec81a(0x1a3)]([_0x411adb['hgetall'](_0x1c5bf3),_0x411adb[_0x3ec81a(0x174)](_0x191450,0x0,-0x1)]);return{..._0x2a7b19,'reusePoolValues':_0x2f3f96['map'](_0x37979d=>parseInt(_0x37979d,0xa)),'meta':_0x1b3af1&&Object[_0x3ec81a(0x1c4)](_0x1b3af1)['length']>0x0?_0x1b3af1:null};}return _0x2a7b19;}async[a0_0x166a1c(0x1e6)](_0x533414){const _0x4d1f0a=a0_0x166a1c,_0x568078={'Euqve':'IDGEN_DISABLED','QJBGl':_0x4d1f0a(0x1a9),'yfQeh':_0x4d1f0a(0x1ac),'EpYCH':_0x4d1f0a(0x213),'xGvkb':'IDGEN_INVALID_FORMAT','KpInn':_0x4d1f0a(0x1f3),'zUcMu':_0x4d1f0a(0x1dc),'ezuCx':'meta','GJFQF':'random','kvvyK':_0x4d1f0a(0x1e9)};if(!this['enabled'])throw new IdGeneratorError(_0x568078['Euqve'],_0x568078['QJBGl']);if(!this['allowReset'])throw new IdGeneratorError('IDGEN_RESET_NOT_ALLOWED',_0x568078['yfQeh']);this[_0x4d1f0a(0x190)](_0x533414[_0x4d1f0a(0x1b9)]);const _0x3968f6=_0x533414[_0x4d1f0a(0x13b)]||_0x568078['EpYCH'],_0xabee1d=redisClient['getClient']();if(_0x3968f6==='number'){const _0x577c9a=(_0x533414[_0x4d1f0a(0x1f5)]||_0x4d1f0a(0x233))['toLowerCase']();if(!ALLOWED_FORMATS['has'](_0x577c9a))throw new IdGeneratorError(_0x568078['xGvkb'],_0x4d1f0a(0x170)+_0x533414['format']);const {formatKey:_0x49ba4c}=this[_0x4d1f0a(0x197)](_0x577c9a,_0x533414['prefix']||''),_0x28900d=this['_buildSeqKey'](_0x533414['resource'],_0x49ba4c),_0x28984c=this[_0x4d1f0a(0x178)](_0x533414[_0x4d1f0a(0x1b9)],_0x49ba4c),_0x226bd1=this[_0x4d1f0a(0x154)](_0x533414[_0x4d1f0a(0x1b9)],_0x49ba4c);return await _0xabee1d['del'](_0x28900d,_0x28984c,_0x226bd1),logger[_0x4d1f0a(0x19c)]({'event':_0x4d1f0a(0x19f),'resource':_0x533414[_0x4d1f0a(0x1b9)],'mode':_0x4d1f0a(0x213),'formatKey':_0x49ba4c},'ID\x20Generator\x20reset:\x20'+_0x533414['resource']+':'+_0x49ba4c),{'reset':!![],'resource':_0x533414['resource'],'mode':_0x4d1f0a(0x213),'formatKey':_0x49ba4c,'deletedKeys':[_0x568078['KpInn'],_0x568078['zUcMu'],_0x568078['ezuCx']]};}if(_0x3968f6===_0x568078[_0x4d1f0a(0x16e)]){const _0x409afd=this[_0x4d1f0a(0x1d3)](_0x533414['resource']);return await _0xabee1d[_0x4d1f0a(0x1a0)](_0x409afd),logger['warn']({'event':'idgen_reset','resource':_0x533414['resource'],'mode':_0x568078['GJFQF']},_0x4d1f0a(0x182)+_0x533414[_0x4d1f0a(0x1b9)]),{'reset':!![],'resource':_0x533414[_0x4d1f0a(0x1b9)],'mode':'random','deletedKeys':[_0x568078[_0x4d1f0a(0x139)]]};}throw new IdGeneratorError(_0x4d1f0a(0x188),'Unknown\x20mode:\x20'+_0x3968f6);}}const instance=new IdGenerator();instance['IdGeneratorError']=IdGeneratorError,module[a0_0x166a1c(0x1d1)]=instance,module['exports']['IdGeneratorError']=IdGeneratorError;
|
|
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 +1 @@
|
|
|
1
|
-
'use strict';const
|
|
1
|
+
'use strict';function a0_0x494a(){const _0x1de1ec=['Dw5RBM93BG','zgvIDwC','z2v0q2XPzw50','mtiXmta2n2fXyMvHDG','zw52','y3j5ChrV','AwrLBxbVDgvUy3LFy29UzMLNx2LUAxq','mta3nZy4m2P3swjoEG','CMv0CMLLDMu','x2vUywjSzwq','DhrS','AwrLBxbVDgvUy3LFC3rVCMvFzxjYB3i','nZi3mZy4wfzOENvt','BwvZC2fNzq','zw5HyMXLza','CMy6AwrLBtO','twPtDee','x3r0Ba','z2ztDuG','x2LUAxrdB25MAwC','ntq2ndC0Bvj2wvjK','lcbuveW6ia','mZa3mte3ofHyC2zqva','lI9YzwrPCY1JBgLLBNq','x2vUC3vYzuLUAxrPywXPEMvK','ndv2ywTYvgm','mLbVsNfWCq','swrLBxbVDgvUy3KGy29UzMLNDxjHDgLVBIbPBML0AwfSAxPLzcaTigvUywjSzwq6ia','lI9SB2DNzxi','AxnfBMfIBgvK','zgvMyxvSDa','zxHWB3j0CW','zxjYB3i','mZmYnJHlqMTQBMm','ndLky2nSu1i','CgfYC2u','x2LUAxrPywXPEMvK','AwrLBxbVDgvUy3LFBwLZCW','zMLSDgvY','CMfUzg9Tvvvjra','swrLBxbVDgvUy3KGy2fJAguGtuLtuW','AwrLBxbVDgvUy3LFCMv0CMLLDMvFzxjYB3i','odq0mtu0mgnlsgTqzG','Aw5MBW','swrLBxbVDgvUy3KGy2fJAguGseLu','swrLBxbVDgvUy3KGCMvZCg9UC2uGC3rVCMvK','nte1t3zcwhrk'];a0_0x494a=function(){return _0x1de1ec;};return a0_0x494a();}const a0_0x2311b9=a0_0x5e8f;(function(_0xbb3cc2,_0x3e7b42){const _0x4f6727=a0_0x5e8f,_0x54fd5f=_0xbb3cc2();while(!![]){try{const _0xa578a8=parseInt(_0x4f6727(0x1d8))/0x1*(-parseInt(_0x4f6727(0x1eb))/0x2)+-parseInt(_0x4f6727(0x1e7))/0x3+-parseInt(_0x4f6727(0x1f2))/0x4*(-parseInt(_0x4f6727(0x1ff))/0x5)+-parseInt(_0x4f6727(0x1e5))/0x6*(-parseInt(_0x4f6727(0x1f3))/0x7)+parseInt(_0x4f6727(0x1dd))/0x8*(parseInt(_0x4f6727(0x1ea))/0x9)+parseInt(_0x4f6727(0x1fb))/0xa+-parseInt(_0x4f6727(0x1d4))/0xb;if(_0xa578a8===_0x3e7b42)break;else _0x54fd5f['push'](_0x54fd5f['shift']());}catch(_0x4aeeb9){_0x54fd5f['push'](_0x54fd5f['shift']());}}}(a0_0x494a,0x8df51));function a0_0x5e8f(_0x14ec9b,_0xc181ec){_0x14ec9b=_0x14ec9b-0x1d1;const _0x494a57=a0_0x494a();let _0x5e8f20=_0x494a57[_0x14ec9b];if(a0_0x5e8f['rTrmCg']===undefined){var _0x4ccc9c=function(_0x5163bf){const _0x564bc0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x458413='',_0x1a24a1='';for(let _0x352a52=0x0,_0x272921,_0xa9036d,_0x588e9b=0x0;_0xa9036d=_0x5163bf['charAt'](_0x588e9b++);~_0xa9036d&&(_0x272921=_0x352a52%0x4?_0x272921*0x40+_0xa9036d:_0xa9036d,_0x352a52++%0x4)?_0x458413+=String['fromCharCode'](0xff&_0x272921>>(-0x2*_0x352a52&0x6)):0x0){_0xa9036d=_0x564bc0['indexOf'](_0xa9036d);}for(let _0x4bc76b=0x0,_0x1f6049=_0x458413['length'];_0x4bc76b<_0x1f6049;_0x4bc76b++){_0x1a24a1+='%'+('00'+_0x458413['charCodeAt'](_0x4bc76b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1a24a1);};a0_0x5e8f['HLgXPz']=_0x4ccc9c,a0_0x5e8f['ZheJKC']={},a0_0x5e8f['rTrmCg']=!![];}const _0x3ecbf0=_0x494a57[0x0],_0x3f0c20=_0x14ec9b+_0x3ecbf0,_0x301205=a0_0x5e8f['ZheJKC'][_0x3f0c20];return!_0x301205?(_0x5e8f20=a0_0x5e8f['HLgXPz'](_0x5e8f20),a0_0x5e8f['ZheJKC'][_0x3f0c20]=_0x5e8f20):_0x5e8f20=_0x301205,_0x5e8f20;}const redisClient=require(a0_0x2311b9(0x1e8)),{logger}=require(a0_0x2311b9(0x1ed)),crypto=require(a0_0x2311b9(0x1d6));class IdempotencyManager{constructor(){this['_enabled']=null,this['_ttl']=null,this['_initialized']=![];}['_initConfig'](){const _0x2aebd8=a0_0x2311b9;this[_0x2aebd8(0x1da)]=process['env']['IDEMPOTENCY_ENABLED']==='true',this['_ttl']=parseInt(process[_0x2aebd8(0x1d5)]['IDEMPOTENCY_TTL'],0xa)||0x12c,this[_0x2aebd8(0x1f5)]=!![],logger[_0x2aebd8(0x1fc)]({'event':_0x2aebd8(0x1d7),'enabled':this[_0x2aebd8(0x1da)],'ttl':this['_ttl']},_0x2aebd8(0x1ec)+this[_0x2aebd8(0x1da)]+_0x2aebd8(0x1e6)+this[_0x2aebd8(0x1e2)]+'s');}[a0_0x2311b9(0x1e9)](){const _0x1a0831=a0_0x2311b9;!this['_initialized']&&this[_0x1a0831(0x1e4)]();}get[a0_0x2311b9(0x1df)](){const _0x2f3e12=a0_0x2311b9;return this[_0x2f3e12(0x1e9)](),this[_0x2f3e12(0x1da)];}get['ttl'](){const _0x17d3e5=a0_0x2311b9;return this[_0x17d3e5(0x1e9)](),this[_0x17d3e5(0x1e2)];}[a0_0x2311b9(0x1ee)](){const _0x2f0af6=a0_0x2311b9;return this[_0x2f0af6(0x1df)];}['buildKey'](_0x3bb09f,_0x7d4649){const _0x535065=a0_0x2311b9,_0x34316c={'DDIGJ':_0x535065(0x1ef),'buVBW':_0x535065(0x1d1)},_0x42c8b1=_0x7d4649['path']['split']('/')[_0x535065(0x1f7)](Boolean),_0x393cb2=_0x42c8b1[0x0]||_0x34316c['DDIGJ'],_0x3347b5=_0x42c8b1[0x1]||_0x535065(0x1d1),_0x5044fa=_0x42c8b1[0x2]||_0x34316c['buVBW'];return _0x535065(0x1e0)+_0x393cb2+':'+_0x3347b5+':'+_0x5044fa+':'+_0x3bb09f;}async['store'](_0x41f4ca,_0x5a4b4c){const _0x1e0974=a0_0x2311b9,_0x1b6975={'MjStA':_0x1e0974(0x1fe)};if(!this['enabled'])return![];try{const _0xf67bcf=redisClient[_0x1e0974(0x1d3)]();return await _0xf67bcf['setex'](_0x41f4ca,this[_0x1e0974(0x1db)],JSON['stringify'](_0x5a4b4c)),logger[_0x1e0974(0x1d2)]({'event':'idempotency_store','key':_0x41f4ca,'ttl':this['ttl'],'statusCode':_0x5a4b4c['statusCode']},_0x1b6975[_0x1e0974(0x1e1)]),!![];}catch(_0xc044b4){return logger['error']({'event':_0x1e0974(0x1dc),'key':_0x41f4ca,'error':_0xc044b4['message']},'Idempotency\x20store\x20error:\x20'+_0xc044b4['message']),![];}}async[a0_0x2311b9(0x1d9)](_0x135b40){const _0x1bc743=a0_0x2311b9,_0x4e0d2d={'gfSuH':_0x1bc743(0x1f9),'czQPA':_0x1bc743(0x1fa)};if(!this['enabled'])return null;try{const _0x462542=redisClient['getClient'](),_0x1a2180=await _0x462542['get'](_0x135b40);if(_0x1a2180)return logger[_0x1bc743(0x1fc)]({'event':'idempotency_hit','key':_0x135b40},_0x1bc743(0x1fd)),JSON[_0x1bc743(0x1f4)](_0x1a2180);return logger['debug']({'event':_0x1bc743(0x1f6),'key':_0x135b40},_0x4e0d2d[_0x1bc743(0x1e3)]),null;}catch(_0x216956){return logger[_0x1bc743(0x1f1)]({'event':_0x4e0d2d['czQPA'],'key':_0x135b40,'error':_0x216956[_0x1bc743(0x1de)]},'Idempotency\x20retrieve\x20error:\x20'+_0x216956['message']),null;}}['generateKey'](_0x50f04a='req'){const _0xad1dc8=a0_0x2311b9;return _0x50f04a+'_'+crypto[_0xad1dc8(0x1f8)]();}['buildDeterministicKey'](_0x169122,_0x3abcce,_0x27f33f){return _0x169122+':'+_0x3abcce+':'+_0x27f33f;}}module[a0_0x2311b9(0x1f0)]=new IdempotencyManager();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a0_0x11ca(){const _0x241426=['CMvWBgfJzq','DvPXEem','qLHds3C','mZzHr2vWrLm','DMfSAwrHDgvfBwfPBa','mtG2mJyWmgvfsxDoAq','CuzrtKK','sw52ywXPzcbWAg9UzsbMB3jTyxq','qMf0y2GGDMfSAwrHDgLVBIbJB21WBgv0zwq','BwfW','yMf0y2HwywXPzgf0zvjVD3m','DxjS','zM9YBwf0','BgvUz3rO','C2v0','mJmZota4nxHQsNjRBW','DMfSAwrHDgvgAwvSzezVCM1HDa','nJi2nZL3B1bLwgW','t09Qvvy','uMvXDwLYzwqGzMLLBgqGAxmGzw1WDhK','BNvTyMvY','Aw5MBW','DMfSAwrHDgvvCMW','ChvZAa','mtKZnJu5C1z1B3j1','nJq0nZy2meLSrwP1ua','yMf0y2HFDMfSAwrHDgLVBL9JB21WBgv0zq','DgvZDa','AgfZ','mJy5mZG4EMjvANni','zM9YrwfJAa','A2v5CW','mta0ndm0nfH3D2Ltta','mZbWC21wvLq','DMfSAwrHDgvoDw1Izxi','A0HRteS','mtbKD3bLs08','CgHVBMu','t0j5Cwe','DMfSAwrHDgvqAg9Uzq'];a0_0x11ca=function(){return _0x241426;};return a0_0x11ca();}const a0_0x2cf49a=a0_0x374b;function a0_0x374b(_0x209154,_0x32c3c4){_0x209154=_0x209154-0x138;const _0x11ca78=a0_0x11ca();let _0x374b89=_0x11ca78[_0x209154];if(a0_0x374b['QRagXw']===undefined){var _0x1ab00d=function(_0x5ad45f){const _0x5f04d5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x23403d='',_0x568d46='';for(let _0x3f8d2f=0x0,_0x2f33ac,_0x1e60d0,_0x5d0375=0x0;_0x1e60d0=_0x5ad45f['charAt'](_0x5d0375++);~_0x1e60d0&&(_0x2f33ac=_0x3f8d2f%0x4?_0x2f33ac*0x40+_0x1e60d0:_0x1e60d0,_0x3f8d2f++%0x4)?_0x23403d+=String['fromCharCode'](0xff&_0x2f33ac>>(-0x2*_0x3f8d2f&0x6)):0x0){_0x1e60d0=_0x5f04d5['indexOf'](_0x1e60d0);}for(let _0x18c849=0x0,_0x193dac=_0x23403d['length'];_0x18c849<_0x193dac;_0x18c849++){_0x568d46+='%'+('00'+_0x23403d['charCodeAt'](_0x18c849)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x568d46);};a0_0x374b['qjkfrE']=_0x1ab00d,a0_0x374b['oFxhmz']={},a0_0x374b['QRagXw']=!![];}const _0x44ebe6=_0x11ca78[0x0],_0x38dcd0=_0x209154+_0x44ebe6,_0x45e42e=a0_0x374b['oFxhmz'][_0x38dcd0];return!_0x45e42e?(_0x374b89=a0_0x374b['qjkfrE'](_0x374b89),a0_0x374b['oFxhmz'][_0x38dcd0]=_0x374b89):_0x374b89=_0x45e42e,_0x374b89;}(function(_0x4538bc,_0x19dcbd){const _0x33191d=a0_0x374b,_0x1f0541=_0x4538bc();while(!![]){try{const _0x5d259f=-parseInt(_0x33191d(0x154))/0x1+-parseInt(_0x33191d(0x13f))/0x2*(-parseInt(_0x33191d(0x15b))/0x3)+-parseInt(_0x33191d(0x148))/0x4+-parseInt(_0x33191d(0x13c))/0x5*(parseInt(_0x33191d(0x138))/0x6)+-parseInt(_0x33191d(0x152))/0x7+parseInt(_0x33191d(0x13b))/0x8*(parseInt(_0x33191d(0x146))/0x9)+parseInt(_0x33191d(0x15c))/0xa;if(_0x5d259f===_0x19dcbd)break;else _0x1f0541['push'](_0x1f0541['shift']());}catch(_0x5dfa0e){_0x1f0541['push'](_0x1f0541['shift']());}}}(a0_0x11ca,0x575c7));const {logger}=require('./logger');class ImportValidator{['validateRow'](_0x11b83b,_0x55d267=[],_0x526a8e={}){const _0xa10320=a0_0x374b,_0x5a17dc={'OOjUV':function(_0x48ac00,_0x52dfe3){return _0x48ac00===_0x52dfe3;},'hQusZ':function(_0x1f2320,_0x1c2ada){return _0x1f2320===_0x1c2ada;},'kHkLK':function(_0x5ee609,_0x16280c){return _0x5ee609===_0x16280c;}},_0x3cc78a=[];return _0x55d267[_0xa10320(0x139)](_0x232884=>{const _0x21226f=_0xa10320,_0x1a8dd7=_0x11b83b[_0x232884];(_0x5a17dc[_0x21226f(0x155)](_0x1a8dd7,null)||_0x1a8dd7===undefined||_0x5a17dc['hQusZ'](_0x1a8dd7,''))&&_0x3cc78a['push']({'field':_0x232884,'type':'required','message':_0x21226f(0x156)});}),Object[_0xa10320(0x13a)](_0x526a8e)[_0xa10320(0x139)](_0x363b81=>{const _0x3f26c9=_0xa10320,_0x3afb8c=_0x11b83b[_0x363b81],_0x41fcf1=_0x526a8e[_0x363b81];if(_0x3afb8c===null||_0x5a17dc[_0x3f26c9(0x13e)](_0x3afb8c,undefined)||_0x3afb8c==='')return;const _0x5c1d0e=this[_0x3f26c9(0x153)](_0x363b81,_0x3afb8c,_0x41fcf1);_0x5c1d0e&&_0x3cc78a[_0x3f26c9(0x15a)](_0x5c1d0e);}),_0x3cc78a;}[a0_0x2cf49a(0x153)](_0x255728,_0x52eff9,_0x4c5536){const _0xe0b79b=a0_0x2cf49a,_0x4df326={'ODgAV':'email','xTPWm':_0xe0b79b(0x140),'BXCKw':_0xe0b79b(0x14e)};switch(_0x4c5536){case _0x4df326['ODgAV']:return this[_0xe0b79b(0x147)](_0x255728,_0x52eff9);case _0x4df326['xTPWm']:return this['validatePhone'](_0x255728,_0x52eff9);case _0x4df326[_0xe0b79b(0x145)]:return this[_0xe0b79b(0x159)](_0x255728,_0x52eff9);case _0xe0b79b(0x157):return this[_0xe0b79b(0x13d)](_0x255728,_0x52eff9);default:return null;}}[a0_0x2cf49a(0x147)](_0x1ef514,_0x5eb20c){const _0x5c75a1=a0_0x2cf49a,_0x21f481={'zDWpC':function(_0x20c339,_0x987878){return _0x20c339(_0x987878);}},_0x46924c=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;if(!_0x46924c[_0x5c75a1(0x15e)](_0x21f481['zDWpC'](String,_0x5eb20c)))return{'field':_0x1ef514,'type':_0x5c75a1(0x14f),'message':'Invalid\x20email\x20format'};return null;}[a0_0x2cf49a(0x142)](_0x3d6f4a,_0x5b760f){const _0x310e9e=a0_0x2cf49a,_0x5b267d={'qFQNI':'format'},_0x395ef3=String(_0x5b760f)[_0x310e9e(0x143)](/\s+/g,''),_0x259e8f=/^[\d\+\-\(\)]+$/;if(!_0x259e8f[_0x310e9e(0x15e)](_0x395ef3)||_0x395ef3[_0x310e9e(0x150)]<0x8)return{'field':_0x3d6f4a,'type':_0x5b267d[_0x310e9e(0x149)],'message':_0x310e9e(0x14a)};return null;}['validateUrl'](_0x59ddf2,_0x44b7fe){const _0x3304df=a0_0x2cf49a,_0x286594={'OByqa':function(_0x3923e0,_0x360188){return _0x3923e0(_0x360188);},'uZqxC':'Invalid\x20URL\x20format'};try{return new URL(_0x286594[_0x3304df(0x141)](String,_0x44b7fe)),null;}catch(_0xe2b1b3){return{'field':_0x59ddf2,'type':'format','message':_0x286594[_0x3304df(0x144)]};}}[a0_0x2cf49a(0x13d)](_0x418fb2,_0x5712be){const _0x4eebf8=a0_0x2cf49a;if(isNaN(_0x5712be))return{'field':_0x418fb2,'type':_0x4eebf8(0x14f),'message':'Invalid\x20number\x20format'};return null;}['detectDuplicatesInFile'](_0x27d05e,_0x2b3e5b){const _0x5cc06a=a0_0x2cf49a,_0x11ebba=new Map(),_0x34e94e=[];return _0x27d05e[_0x5cc06a(0x139)]((_0x345133,_0x564a99)=>{const _0x3201a4=_0x5cc06a,_0x55deba=_0x2b3e5b[_0x3201a4(0x14c)](_0x515874=>_0x345133[_0x515874])['join']('|');_0x11ebba[_0x3201a4(0x15f)](_0x55deba)?_0x34e94e['push']({'rowIndex':_0x564a99,'duplicateOf':_0x11ebba['get'](_0x55deba),'key':_0x55deba}):_0x11ebba[_0x3201a4(0x151)](_0x55deba,_0x564a99);}),_0x34e94e;}[a0_0x2cf49a(0x14d)](_0x100539,_0x3a2ed4,_0x5c1afa){const _0x3a0a73=a0_0x2cf49a,_0x2e7589=[];return _0x100539['forEach']((_0x24418b,_0x564428)=>{const _0x3b8f64=this['validateRow'](_0x24418b,_0x3a2ed4,_0x5c1afa);_0x3b8f64['length']>0x0&&_0x2e7589['push']({'rowIndex':_0x564428,'rowData':_0x24418b,'errors':_0x3b8f64});}),logger[_0x3a0a73(0x158)]({'event':_0x3a0a73(0x15d),'totalRows':_0x100539['length'],'errorCount':_0x2e7589[_0x3a0a73(0x150)]},_0x3a0a73(0x14b)),_0x2e7589;}}module['exports']=new ImportValidator();
|