@digitaldefiance/node-express-suite 3.7.4 → 3.7.6
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/package.json +2 -2
- package/src/__tests__/helpers/setup-test-env.d.ts +1 -1
- package/src/__tests__/helpers/setup-test-env.d.ts.map +1 -1
- package/src/__tests__/helpers/setup-test-env.js.map +1 -1
- package/src/application-base.d.ts +9 -4
- package/src/application-base.d.ts.map +1 -1
- package/src/application-base.js +5 -0
- package/src/application-base.js.map +1 -1
- package/src/application-concrete.d.ts +14 -1
- package/src/application-concrete.d.ts.map +1 -1
- package/src/application-concrete.js +14 -1
- package/src/application-concrete.js.map +1 -1
- package/src/application.d.ts +7 -2
- package/src/application.d.ts.map +1 -1
- package/src/application.js +5 -0
- package/src/application.js.map +1 -1
- package/src/backup-code.d.ts +5 -0
- package/src/backup-code.d.ts.map +1 -1
- package/src/backup-code.js +5 -0
- package/src/backup-code.js.map +1 -1
- package/src/builders/application-builder.d.ts +13 -1
- package/src/builders/application-builder.d.ts.map +1 -1
- package/src/builders/application-builder.js +12 -0
- package/src/builders/application-builder.js.map +1 -1
- package/src/constants.d.ts +5 -0
- package/src/constants.d.ts.map +1 -1
- package/src/constants.js +5 -0
- package/src/constants.js.map +1 -1
- package/src/container/service-container.d.ts +34 -0
- package/src/container/service-container.d.ts.map +1 -1
- package/src/container/service-container.js +30 -0
- package/src/container/service-container.js.map +1 -1
- package/src/container/service-definitions.d.ts +11 -0
- package/src/container/service-definitions.d.ts.map +1 -1
- package/src/container/service-definitions.js +8 -0
- package/src/container/service-definitions.js.map +1 -1
- package/src/controllers/base.d.ts +21 -8
- package/src/controllers/base.d.ts.map +1 -1
- package/src/controllers/base.js +13 -0
- package/src/controllers/base.js.map +1 -1
- package/src/controllers/user.d.ts +25 -8
- package/src/controllers/user.d.ts.map +1 -1
- package/src/controllers/user.js +17 -0
- package/src/controllers/user.js.map +1 -1
- package/src/database/database-initializer.d.ts +5 -0
- package/src/database/database-initializer.d.ts.map +1 -1
- package/src/database/database-initializer.js +5 -0
- package/src/database/database-initializer.js.map +1 -1
- package/src/decorators/base-controller.d.ts +11 -0
- package/src/decorators/base-controller.d.ts.map +1 -1
- package/src/decorators/base-controller.js +11 -0
- package/src/decorators/base-controller.js.map +1 -1
- package/src/decorators/controller.d.ts +5 -0
- package/src/decorators/controller.d.ts.map +1 -1
- package/src/decorators/controller.js +5 -0
- package/src/decorators/controller.js.map +1 -1
- package/src/decorators/zod-validation.d.ts +5 -0
- package/src/decorators/zod-validation.d.ts.map +1 -1
- package/src/decorators/zod-validation.js +5 -0
- package/src/decorators/zod-validation.js.map +1 -1
- package/src/defaults.d.ts +5 -0
- package/src/defaults.d.ts.map +1 -1
- package/src/defaults.js +5 -0
- package/src/defaults.js.map +1 -1
- package/src/documents/base.d.ts +12 -1
- package/src/documents/base.d.ts.map +1 -1
- package/src/documents/base.js +5 -0
- package/src/documents/base.js.map +1 -1
- package/src/documents/email-token.d.ts +9 -2
- package/src/documents/email-token.d.ts.map +1 -1
- package/src/documents/email-token.js +5 -0
- package/src/documents/email-token.js.map +1 -1
- package/src/documents/mnemonic.d.ts +10 -2
- package/src/documents/mnemonic.d.ts.map +1 -1
- package/src/documents/mnemonic.js +5 -0
- package/src/documents/mnemonic.js.map +1 -1
- package/src/documents/role.d.ts +9 -2
- package/src/documents/role.d.ts.map +1 -1
- package/src/documents/role.js +5 -0
- package/src/documents/role.js.map +1 -1
- package/src/documents/used-direct-login-token.d.ts +12 -1
- package/src/documents/used-direct-login-token.d.ts.map +1 -1
- package/src/documents/used-direct-login-token.js +5 -0
- package/src/documents/used-direct-login-token.js.map +1 -1
- package/src/documents/user-role.d.ts +10 -2
- package/src/documents/user-role.d.ts.map +1 -1
- package/src/documents/user-role.js +5 -0
- package/src/documents/user-role.js.map +1 -1
- package/src/documents/user.d.ts +10 -2
- package/src/documents/user.d.ts.map +1 -1
- package/src/documents/user.js +5 -0
- package/src/documents/user.js.map +1 -1
- package/src/enumerations/base-model-name.d.ts +5 -0
- package/src/enumerations/base-model-name.d.ts.map +1 -1
- package/src/enumerations/base-model-name.js +5 -0
- package/src/enumerations/base-model-name.js.map +1 -1
- package/src/enumerations/length-encoding-type.d.ts +9 -0
- package/src/enumerations/length-encoding-type.d.ts.map +1 -1
- package/src/enumerations/length-encoding-type.js +9 -0
- package/src/enumerations/length-encoding-type.js.map +1 -1
- package/src/enumerations/schema-collection.d.ts +5 -0
- package/src/enumerations/schema-collection.d.ts.map +1 -1
- package/src/enumerations/schema-collection.js +5 -0
- package/src/enumerations/schema-collection.js.map +1 -1
- package/src/enumerations/symmetric-error-type.d.ts +8 -0
- package/src/enumerations/symmetric-error-type.d.ts.map +1 -1
- package/src/enumerations/symmetric-error-type.js +8 -0
- package/src/enumerations/symmetric-error-type.js.map +1 -1
- package/src/environment.d.ts +15 -10
- package/src/environment.d.ts.map +1 -1
- package/src/environment.js +5 -0
- package/src/environment.js.map +1 -1
- package/src/errors/express-validation.d.ts +15 -0
- package/src/errors/express-validation.d.ts.map +1 -1
- package/src/errors/express-validation.js +15 -0
- package/src/errors/express-validation.js.map +1 -1
- package/src/errors/invalid-backup-code-version.d.ts +13 -0
- package/src/errors/invalid-backup-code-version.d.ts.map +1 -1
- package/src/errors/invalid-backup-code-version.js +13 -0
- package/src/errors/invalid-backup-code-version.js.map +1 -1
- package/src/errors/invalid-jwt-token.d.ts +12 -0
- package/src/errors/invalid-jwt-token.d.ts.map +1 -1
- package/src/errors/invalid-jwt-token.js +12 -0
- package/src/errors/invalid-jwt-token.js.map +1 -1
- package/src/errors/invalid-model.d.ts +12 -0
- package/src/errors/invalid-model.d.ts.map +1 -1
- package/src/errors/invalid-model.js +12 -0
- package/src/errors/invalid-model.js.map +1 -1
- package/src/errors/invalid-new-password.d.ts +14 -0
- package/src/errors/invalid-new-password.d.ts.map +1 -1
- package/src/errors/invalid-new-password.js +14 -0
- package/src/errors/invalid-new-password.js.map +1 -1
- package/src/errors/invalid-password.d.ts +14 -0
- package/src/errors/invalid-password.d.ts.map +1 -1
- package/src/errors/invalid-password.js +14 -0
- package/src/errors/invalid-password.js.map +1 -1
- package/src/errors/missing-validated-data.d.ts +17 -0
- package/src/errors/missing-validated-data.d.ts.map +1 -1
- package/src/errors/missing-validated-data.js +17 -0
- package/src/errors/missing-validated-data.js.map +1 -1
- package/src/errors/mnemonic-or-password-required.d.ts +12 -0
- package/src/errors/mnemonic-or-password-required.d.ts.map +1 -1
- package/src/errors/mnemonic-or-password-required.js +12 -0
- package/src/errors/mnemonic-or-password-required.js.map +1 -1
- package/src/errors/model-not-registered.d.ts +12 -0
- package/src/errors/model-not-registered.d.ts.map +1 -1
- package/src/errors/model-not-registered.js +12 -0
- package/src/errors/model-not-registered.js.map +1 -1
- package/src/errors/mongoose-validation.d.ts +16 -0
- package/src/errors/mongoose-validation.d.ts.map +1 -1
- package/src/errors/mongoose-validation.js +16 -0
- package/src/errors/mongoose-validation.js.map +1 -1
- package/src/errors/symmetric.d.ts +15 -0
- package/src/errors/symmetric.d.ts.map +1 -1
- package/src/errors/symmetric.js +15 -0
- package/src/errors/symmetric.js.map +1 -1
- package/src/errors/token-expired.d.ts +12 -0
- package/src/errors/token-expired.d.ts.map +1 -1
- package/src/errors/token-expired.js +12 -0
- package/src/errors/token-expired.js.map +1 -1
- package/src/get-language.d.ts +10 -0
- package/src/get-language.d.ts.map +1 -1
- package/src/get-language.js +10 -0
- package/src/get-language.js.map +1 -1
- package/src/get-timezone.d.ts +10 -0
- package/src/get-timezone.d.ts.map +1 -1
- package/src/get-timezone.js +15 -1
- package/src/get-timezone.js.map +1 -1
- package/src/interfaces/api-error-response.d.ts +9 -0
- package/src/interfaces/api-error-response.d.ts.map +1 -1
- package/src/interfaces/api-error-response.js +5 -0
- package/src/interfaces/api-error-response.js.map +1 -1
- package/src/interfaces/api-express-validation-error-response.d.ts +9 -0
- package/src/interfaces/api-express-validation-error-response.d.ts.map +1 -1
- package/src/interfaces/api-express-validation-error-response.js +5 -0
- package/src/interfaces/api-express-validation-error-response.js.map +1 -1
- package/src/interfaces/api-message-response.d.ts +8 -0
- package/src/interfaces/api-message-response.d.ts.map +1 -1
- package/src/interfaces/api-message-response.js +5 -0
- package/src/interfaces/api-message-response.js.map +1 -1
- package/src/interfaces/api-mongo-validation-error-response.d.ts +10 -0
- package/src/interfaces/api-mongo-validation-error-response.d.ts.map +1 -1
- package/src/interfaces/api-mongo-validation-error-response.js +5 -0
- package/src/interfaces/api-mongo-validation-error-response.js.map +1 -1
- package/src/interfaces/api-responses/backup-codes-response.d.ts +9 -0
- package/src/interfaces/api-responses/backup-codes-response.d.ts.map +1 -1
- package/src/interfaces/api-responses/backup-codes-response.js +5 -0
- package/src/interfaces/api-responses/backup-codes-response.js.map +1 -1
- package/src/interfaces/api-responses/challenge-response.d.ts +10 -0
- package/src/interfaces/api-responses/challenge-response.d.ts.map +1 -1
- package/src/interfaces/api-responses/challenge-response.js +4 -0
- package/src/interfaces/api-responses/challenge-response.js.map +1 -1
- package/src/interfaces/api-responses/code-count-response.d.ts +6 -0
- package/src/interfaces/api-responses/code-count-response.d.ts.map +1 -1
- package/src/interfaces/api-responses/code-count-response.js +5 -0
- package/src/interfaces/api-responses/code-count-response.js.map +1 -1
- package/src/interfaces/api-responses/login-response.d.ts +9 -0
- package/src/interfaces/api-responses/login-response.d.ts.map +1 -1
- package/src/interfaces/api-responses/login-response.js +5 -0
- package/src/interfaces/api-responses/login-response.js.map +1 -1
- package/src/interfaces/api-responses/mnemonic-response.d.ts +9 -0
- package/src/interfaces/api-responses/mnemonic-response.d.ts.map +1 -1
- package/src/interfaces/api-responses/mnemonic-response.js +4 -0
- package/src/interfaces/api-responses/mnemonic-response.js.map +1 -1
- package/src/interfaces/api-responses/registration-response.d.ts +10 -0
- package/src/interfaces/api-responses/registration-response.d.ts.map +1 -1
- package/src/interfaces/api-responses/registration-response.js +4 -0
- package/src/interfaces/api-responses/registration-response.js.map +1 -1
- package/src/interfaces/api-responses/request-user-response.d.ts +9 -0
- package/src/interfaces/api-responses/request-user-response.d.ts.map +1 -1
- package/src/interfaces/api-responses/request-user-response.js +5 -0
- package/src/interfaces/api-responses/request-user-response.js.map +1 -1
- package/src/interfaces/api-responses/user-settings-response.d.ts +6 -0
- package/src/interfaces/api-responses/user-settings-response.d.ts.map +1 -1
- package/src/interfaces/api-responses/user-settings-response.js +5 -0
- package/src/interfaces/api-responses/user-settings-response.js.map +1 -1
- package/src/interfaces/application.d.ts +22 -0
- package/src/interfaces/application.d.ts.map +1 -1
- package/src/interfaces/application.js +5 -0
- package/src/interfaces/application.js.map +1 -1
- package/src/interfaces/backend-objects/email-token.d.ts +10 -1
- package/src/interfaces/backend-objects/email-token.d.ts.map +1 -1
- package/src/interfaces/backend-objects/email-token.js +5 -0
- package/src/interfaces/backend-objects/email-token.js.map +1 -1
- package/src/interfaces/backend-objects/request-user.d.ts +11 -1
- package/src/interfaces/backend-objects/request-user.d.ts.map +1 -1
- package/src/interfaces/backend-objects/request-user.js +5 -0
- package/src/interfaces/backend-objects/request-user.js.map +1 -1
- package/src/interfaces/backend-objects/role.d.ts +10 -1
- package/src/interfaces/backend-objects/role.d.ts.map +1 -1
- package/src/interfaces/backend-objects/role.js +5 -0
- package/src/interfaces/backend-objects/role.js.map +1 -1
- package/src/interfaces/backend-objects/user.d.ts +11 -1
- package/src/interfaces/backend-objects/user.d.ts.map +1 -1
- package/src/interfaces/backend-objects/user.js +5 -0
- package/src/interfaces/backend-objects/user.js.map +1 -1
- package/src/interfaces/checksum-config.d.ts +10 -0
- package/src/interfaces/checksum-config.d.ts.map +1 -1
- package/src/interfaces/checksum-config.js +5 -0
- package/src/interfaces/checksum-config.js.map +1 -1
- package/src/interfaces/checksum-consts.d.ts +9 -0
- package/src/interfaces/checksum-consts.d.ts.map +1 -1
- package/src/interfaces/checksum-consts.js +5 -0
- package/src/interfaces/checksum-consts.js.map +1 -1
- package/src/interfaces/constants.d.ts +7 -2
- package/src/interfaces/constants.d.ts.map +1 -1
- package/src/interfaces/constants.js +5 -0
- package/src/interfaces/constants.js.map +1 -1
- package/src/interfaces/controller-config.d.ts +27 -10
- package/src/interfaces/controller-config.d.ts.map +1 -1
- package/src/interfaces/controller-config.js +5 -0
- package/src/interfaces/controller-config.js.map +1 -1
- package/src/interfaces/create-user-basics.d.ts +7 -1
- package/src/interfaces/create-user-basics.d.ts.map +1 -1
- package/src/interfaces/create-user-basics.js +5 -0
- package/src/interfaces/create-user-basics.js.map +1 -1
- package/src/interfaces/csp-config.d.ts +15 -0
- package/src/interfaces/csp-config.d.ts.map +1 -1
- package/src/interfaces/csp-config.js +10 -0
- package/src/interfaces/csp-config.js.map +1 -1
- package/src/interfaces/csp-definition.d.ts +21 -0
- package/src/interfaces/csp-definition.d.ts.map +1 -1
- package/src/interfaces/csp-definition.js +10 -0
- package/src/interfaces/csp-definition.js.map +1 -1
- package/src/interfaces/db-init-result.d.ts +11 -0
- package/src/interfaces/db-init-result.d.ts.map +1 -1
- package/src/interfaces/db-init-result.js +5 -0
- package/src/interfaces/db-init-result.js.map +1 -1
- package/src/interfaces/deep-partial.d.ts +10 -0
- package/src/interfaces/deep-partial.d.ts.map +1 -1
- package/src/interfaces/deep-partial.js +5 -0
- package/src/interfaces/deep-partial.js.map +1 -1
- package/src/interfaces/discriminator-collections.d.ts +11 -1
- package/src/interfaces/discriminator-collections.d.ts.map +1 -1
- package/src/interfaces/discriminator-collections.js +5 -0
- package/src/interfaces/discriminator-collections.js.map +1 -1
- package/src/interfaces/email-service.d.ts +17 -0
- package/src/interfaces/email-service.d.ts.map +1 -1
- package/src/interfaces/email-service.js +5 -0
- package/src/interfaces/email-service.js.map +1 -1
- package/src/interfaces/environment-mongo.d.ts +9 -0
- package/src/interfaces/environment-mongo.d.ts.map +1 -1
- package/src/interfaces/environment-mongo.js +5 -0
- package/src/interfaces/environment-mongo.js.map +1 -1
- package/src/interfaces/environment.d.ts +20 -10
- package/src/interfaces/environment.d.ts.map +1 -1
- package/src/interfaces/environment.js +5 -0
- package/src/interfaces/environment.js.map +1 -1
- package/src/interfaces/failable-result.d.ts +13 -0
- package/src/interfaces/failable-result.d.ts.map +1 -1
- package/src/interfaces/failable-result.js +5 -0
- package/src/interfaces/failable-result.js.map +1 -1
- package/src/interfaces/fec-consts.d.ts +9 -0
- package/src/interfaces/fec-consts.d.ts.map +1 -1
- package/src/interfaces/fec-consts.js +5 -0
- package/src/interfaces/fec-consts.js.map +1 -1
- package/src/interfaces/flexible-csp.d.ts +16 -0
- package/src/interfaces/flexible-csp.d.ts.map +1 -1
- package/src/interfaces/flexible-csp.js +10 -0
- package/src/interfaces/flexible-csp.js.map +1 -1
- package/src/interfaces/handleable-error-options.d.ts +12 -0
- package/src/interfaces/handleable-error-options.d.ts.map +1 -1
- package/src/interfaces/handleable-error-options.js +5 -0
- package/src/interfaces/handleable-error-options.js.map +1 -1
- package/src/interfaces/jwt-consts.d.ts +9 -0
- package/src/interfaces/jwt-consts.d.ts.map +1 -1
- package/src/interfaces/jwt-consts.js +5 -0
- package/src/interfaces/jwt-consts.js.map +1 -1
- package/src/interfaces/jwt-sign-response.d.ts +12 -1
- package/src/interfaces/jwt-sign-response.d.ts.map +1 -1
- package/src/interfaces/jwt-sign-response.js +5 -0
- package/src/interfaces/jwt-sign-response.js.map +1 -1
- package/src/interfaces/models/email-token.d.ts +7 -1
- package/src/interfaces/models/email-token.d.ts.map +1 -1
- package/src/interfaces/models/email-token.js +5 -0
- package/src/interfaces/models/email-token.js.map +1 -1
- package/src/interfaces/models/mnemonic.d.ts +8 -1
- package/src/interfaces/models/mnemonic.d.ts.map +1 -1
- package/src/interfaces/models/mnemonic.js +5 -0
- package/src/interfaces/models/mnemonic.js.map +1 -1
- package/src/interfaces/models/role.d.ts +7 -1
- package/src/interfaces/models/role.d.ts.map +1 -1
- package/src/interfaces/models/role.js +5 -0
- package/src/interfaces/models/role.js.map +1 -1
- package/src/interfaces/models/token-role.d.ts +11 -3
- package/src/interfaces/models/token-role.d.ts.map +1 -1
- package/src/interfaces/models/token-role.js +5 -0
- package/src/interfaces/models/token-role.js.map +1 -1
- package/src/interfaces/models/used-direct-login-token.d.ts +11 -3
- package/src/interfaces/models/used-direct-login-token.d.ts.map +1 -1
- package/src/interfaces/models/used-direct-login-token.js +5 -0
- package/src/interfaces/models/used-direct-login-token.js.map +1 -1
- package/src/interfaces/models/user-role.d.ts +11 -3
- package/src/interfaces/models/user-role.d.ts.map +1 -1
- package/src/interfaces/models/user-role.js +5 -0
- package/src/interfaces/models/user-role.js.map +1 -1
- package/src/interfaces/models/user.d.ts +13 -3
- package/src/interfaces/models/user.d.ts.map +1 -1
- package/src/interfaces/models/user.js +5 -0
- package/src/interfaces/models/user.js.map +1 -1
- package/src/interfaces/mongo-errors.d.ts +8 -0
- package/src/interfaces/mongo-errors.d.ts.map +1 -1
- package/src/interfaces/mongo-errors.js +5 -0
- package/src/interfaces/mongo-errors.js.map +1 -1
- package/src/interfaces/request-user.d.ts +16 -7
- package/src/interfaces/request-user.d.ts.map +1 -1
- package/src/interfaces/request-user.js +5 -0
- package/src/interfaces/request-user.js.map +1 -1
- package/src/interfaces/required-string-keys.d.ts +9 -3
- package/src/interfaces/required-string-keys.d.ts.map +1 -1
- package/src/interfaces/required-string-keys.js +5 -0
- package/src/interfaces/required-string-keys.js.map +1 -1
- package/src/interfaces/schema.d.ts +11 -3
- package/src/interfaces/schema.d.ts.map +1 -1
- package/src/interfaces/schema.js +5 -0
- package/src/interfaces/schema.js.map +1 -1
- package/src/interfaces/server-init-result.d.ts +23 -13
- package/src/interfaces/server-init-result.d.ts.map +1 -1
- package/src/interfaces/server-init-result.js +5 -0
- package/src/interfaces/server-init-result.js.map +1 -1
- package/src/interfaces/status-code-response.d.ts +12 -0
- package/src/interfaces/status-code-response.d.ts.map +1 -1
- package/src/interfaces/status-code-response.js +5 -0
- package/src/interfaces/status-code-response.js.map +1 -1
- package/src/interfaces/symmetric-encryption-results.d.ts +10 -0
- package/src/interfaces/symmetric-encryption-results.d.ts.map +1 -1
- package/src/interfaces/symmetric-encryption-results.js +5 -0
- package/src/interfaces/symmetric-encryption-results.js.map +1 -1
- package/src/interfaces/test-environment.d.ts +10 -0
- package/src/interfaces/test-environment.d.ts.map +1 -1
- package/src/interfaces/test-environment.js +5 -0
- package/src/interfaces/test-environment.js.map +1 -1
- package/src/interfaces/token-response.d.ts +10 -0
- package/src/interfaces/token-response.d.ts.map +1 -1
- package/src/interfaces/token-response.js +5 -0
- package/src/interfaces/token-response.js.map +1 -1
- package/src/middleware-utils.d.ts +23 -0
- package/src/middleware-utils.d.ts.map +1 -1
- package/src/middleware-utils.js +23 -0
- package/src/middleware-utils.js.map +1 -1
- package/src/middlewares/authenticate-crypto.d.ts +20 -3
- package/src/middlewares/authenticate-crypto.d.ts.map +1 -1
- package/src/middlewares/authenticate-crypto.js +19 -2
- package/src/middlewares/authenticate-crypto.js.map +1 -1
- package/src/middlewares/authenticate-token.d.ts +23 -10
- package/src/middlewares/authenticate-token.d.ts.map +1 -1
- package/src/middlewares/authenticate-token.js +22 -9
- package/src/middlewares/authenticate-token.js.map +1 -1
- package/src/middlewares/cleanup-crypto.d.ts +11 -2
- package/src/middlewares/cleanup-crypto.d.ts.map +1 -1
- package/src/middlewares/cleanup-crypto.js +11 -2
- package/src/middlewares/cleanup-crypto.js.map +1 -1
- package/src/middlewares/set-global-context-language.d.ts +13 -0
- package/src/middlewares/set-global-context-language.d.ts.map +1 -1
- package/src/middlewares/set-global-context-language.js +14 -1
- package/src/middlewares/set-global-context-language.js.map +1 -1
- package/src/model-registry.d.ts +63 -7
- package/src/model-registry.d.ts.map +1 -1
- package/src/model-registry.js +50 -0
- package/src/model-registry.js.map +1 -1
- package/src/models/email-token.d.ts +17 -1
- package/src/models/email-token.d.ts.map +1 -1
- package/src/models/email-token.js +5 -0
- package/src/models/email-token.js.map +1 -1
- package/src/models/mnemonic.d.ts +17 -1
- package/src/models/mnemonic.d.ts.map +1 -1
- package/src/models/mnemonic.js +16 -0
- package/src/models/mnemonic.js.map +1 -1
- package/src/models/role.d.ts +17 -1
- package/src/models/role.d.ts.map +1 -1
- package/src/models/role.js +16 -0
- package/src/models/role.js.map +1 -1
- package/src/models/used-direct-login-token.d.ts +17 -1
- package/src/models/used-direct-login-token.d.ts.map +1 -1
- package/src/models/used-direct-login-token.js +5 -0
- package/src/models/used-direct-login-token.js.map +1 -1
- package/src/models/user-role.d.ts +17 -1
- package/src/models/user-role.d.ts.map +1 -1
- package/src/models/user-role.js +16 -0
- package/src/models/user-role.js.map +1 -1
- package/src/models/user.d.ts +17 -1
- package/src/models/user.d.ts.map +1 -1
- package/src/models/user.js +16 -0
- package/src/models/user.js.map +1 -1
- package/src/pipeline/pipeline-builder.d.ts +8 -0
- package/src/pipeline/pipeline-builder.d.ts.map +1 -1
- package/src/pipeline/pipeline-builder.js +8 -0
- package/src/pipeline/pipeline-builder.js.map +1 -1
- package/src/plugins/plugin-interface.d.ts +9 -0
- package/src/plugins/plugin-interface.d.ts.map +1 -1
- package/src/plugins/plugin-interface.js +5 -0
- package/src/plugins/plugin-interface.js.map +1 -1
- package/src/plugins/plugin-manager.d.ts +9 -0
- package/src/plugins/plugin-manager.d.ts.map +1 -1
- package/src/plugins/plugin-manager.js +9 -0
- package/src/plugins/plugin-manager.js.map +1 -1
- package/src/registry/email-service-registry.d.ts +28 -6
- package/src/registry/email-service-registry.d.ts.map +1 -1
- package/src/registry/email-service-registry.js +28 -6
- package/src/registry/email-service-registry.js.map +1 -1
- package/src/responses/response-builder.d.ts +79 -0
- package/src/responses/response-builder.d.ts.map +1 -1
- package/src/responses/response-builder.js +79 -0
- package/src/responses/response-builder.js.map +1 -1
- package/src/routers/api.d.ts +36 -5
- package/src/routers/api.d.ts.map +1 -1
- package/src/routers/api.js +34 -4
- package/src/routers/api.js.map +1 -1
- package/src/routers/app.d.ts +61 -7
- package/src/routers/app.d.ts.map +1 -1
- package/src/routers/app.js +62 -5
- package/src/routers/app.js.map +1 -1
- package/src/routers/base.d.ts +17 -0
- package/src/routers/base.d.ts.map +1 -1
- package/src/routers/base.js +17 -0
- package/src/routers/base.js.map +1 -1
- package/src/routers/router-config.d.ts +17 -0
- package/src/routers/router-config.d.ts.map +1 -1
- package/src/routers/router-config.js +8 -0
- package/src/routers/router-config.js.map +1 -1
- package/src/routing/route-builder.d.ts +85 -0
- package/src/routing/route-builder.d.ts.map +1 -1
- package/src/routing/route-builder.js +81 -0
- package/src/routing/route-builder.js.map +1 -1
- package/src/schemas/email-token.d.ts +19 -3
- package/src/schemas/email-token.d.ts.map +1 -1
- package/src/schemas/email-token.js +15 -2
- package/src/schemas/email-token.js.map +1 -1
- package/src/schemas/mnemonic.d.ts +12 -2
- package/src/schemas/mnemonic.d.ts.map +1 -1
- package/src/schemas/mnemonic.js +12 -2
- package/src/schemas/mnemonic.js.map +1 -1
- package/src/schemas/role.d.ts +18 -3
- package/src/schemas/role.d.ts.map +1 -1
- package/src/schemas/role.js +15 -2
- package/src/schemas/role.js.map +1 -1
- package/src/schemas/schema.d.ts +21 -1
- package/src/schemas/schema.d.ts.map +1 -1
- package/src/schemas/schema.js +11 -0
- package/src/schemas/schema.js.map +1 -1
- package/src/schemas/used-direct-login-token.d.ts +15 -3
- package/src/schemas/used-direct-login-token.d.ts.map +1 -1
- package/src/schemas/used-direct-login-token.js +13 -2
- package/src/schemas/used-direct-login-token.js.map +1 -1
- package/src/schemas/user-role.d.ts +16 -3
- package/src/schemas/user-role.d.ts.map +1 -1
- package/src/schemas/user-role.js +14 -2
- package/src/schemas/user-role.js.map +1 -1
- package/src/schemas/user.d.ts +20 -1
- package/src/schemas/user.d.ts.map +1 -1
- package/src/schemas/user.js +20 -1
- package/src/schemas/user.js.map +1 -1
- package/src/services/backup-code.d.ts +22 -18
- package/src/services/backup-code.d.ts.map +1 -1
- package/src/services/backup-code.js +12 -8
- package/src/services/backup-code.js.map +1 -1
- package/src/services/base.d.ts +11 -0
- package/src/services/base.d.ts.map +1 -1
- package/src/services/base.js +11 -0
- package/src/services/base.js.map +1 -1
- package/src/services/checksum.d.ts +50 -29
- package/src/services/checksum.d.ts.map +1 -1
- package/src/services/checksum.js +50 -29
- package/src/services/checksum.js.map +1 -1
- package/src/services/database-initialization.d.ts +82 -55
- package/src/services/database-initialization.d.ts.map +1 -1
- package/src/services/database-initialization.js +61 -35
- package/src/services/database-initialization.js.map +1 -1
- package/src/services/db-init-cache.d.ts +8 -0
- package/src/services/db-init-cache.d.ts.map +1 -1
- package/src/services/db-init-cache.js +4 -0
- package/src/services/db-init-cache.js.map +1 -1
- package/src/services/direct-login-token.d.ts +22 -1
- package/src/services/direct-login-token.d.ts.map +1 -1
- package/src/services/direct-login-token.js +21 -0
- package/src/services/direct-login-token.js.map +1 -1
- package/src/services/dummy-email-service.d.ts +20 -1
- package/src/services/dummy-email-service.d.ts.map +1 -1
- package/src/services/dummy-email-service.js +20 -1
- package/src/services/dummy-email-service.js.map +1 -1
- package/src/services/fec-usage-example.d.ts +25 -5
- package/src/services/fec-usage-example.d.ts.map +1 -1
- package/src/services/fec-usage-example.js +25 -5
- package/src/services/fec-usage-example.js.map +1 -1
- package/src/services/fec.d.ts +49 -7
- package/src/services/fec.d.ts.map +1 -1
- package/src/services/fec.js +39 -7
- package/src/services/fec.js.map +1 -1
- package/src/services/jwt.d.ts +17 -2
- package/src/services/jwt.d.ts.map +1 -1
- package/src/services/jwt.js +15 -0
- package/src/services/jwt.js.map +1 -1
- package/src/services/key-wrapping.d.ts +86 -8
- package/src/services/key-wrapping.d.ts.map +1 -1
- package/src/services/key-wrapping.js +75 -10
- package/src/services/key-wrapping.js.map +1 -1
- package/src/services/mnemonic.d.ts +14 -8
- package/src/services/mnemonic.d.ts.map +1 -1
- package/src/services/mnemonic.js +8 -2
- package/src/services/mnemonic.js.map +1 -1
- package/src/services/request-user.d.ts +33 -11
- package/src/services/request-user.d.ts.map +1 -1
- package/src/services/request-user.js +28 -6
- package/src/services/request-user.js.map +1 -1
- package/src/services/role.d.ts +28 -18
- package/src/services/role.d.ts.map +1 -1
- package/src/services/role.js +11 -1
- package/src/services/role.js.map +1 -1
- package/src/services/symmetric.d.ts +35 -17
- package/src/services/symmetric.d.ts.map +1 -1
- package/src/services/symmetric.js +41 -17
- package/src/services/symmetric.js.map +1 -1
- package/src/services/system-user.d.ts +7 -1
- package/src/services/system-user.d.ts.map +1 -1
- package/src/services/system-user.js +7 -1
- package/src/services/system-user.js.map +1 -1
- package/src/services/user.d.ts +61 -38
- package/src/services/user.d.ts.map +1 -1
- package/src/services/user.js +23 -0
- package/src/services/user.js.map +1 -1
- package/src/services/xor.d.ts +10 -6
- package/src/services/xor.d.ts.map +1 -1
- package/src/services/xor.js +14 -6
- package/src/services/xor.js.map +1 -1
- package/src/testing.d.ts +5 -0
- package/src/testing.d.ts.map +1 -1
- package/src/testing.js +5 -0
- package/src/testing.js.map +1 -1
- package/src/transactions/transaction-manager.d.ts +25 -0
- package/src/transactions/transaction-manager.d.ts.map +1 -1
- package/src/transactions/transaction-manager.js +20 -0
- package/src/transactions/transaction-manager.js.map +1 -1
- package/src/types/app-config.d.ts +16 -2
- package/src/types/app-config.d.ts.map +1 -1
- package/src/types/app-config.js +5 -0
- package/src/types/app-config.js.map +1 -1
- package/src/types/controller-config.d.ts +14 -2
- package/src/types/controller-config.d.ts.map +1 -1
- package/src/types/controller-config.js +5 -0
- package/src/types/controller-config.js.map +1 -1
- package/src/types/environment-variables.d.ts +5 -0
- package/src/types/environment-variables.d.ts.map +1 -1
- package/src/types/environment-variables.js +3 -1
- package/src/types/environment-variables.js.map +1 -1
- package/src/types/mongoose-helpers.d.ts +5 -0
- package/src/types/mongoose-helpers.d.ts.map +1 -1
- package/src/types/mongoose-helpers.js +3 -1
- package/src/types/mongoose-helpers.js.map +1 -1
- package/src/types.d.ts +17 -3
- package/src/types.d.ts.map +1 -1
- package/src/types.js +14 -0
- package/src/types.js.map +1 -1
- package/src/utils.d.ts +58 -29
- package/src/utils.d.ts.map +1 -1
- package/src/utils.js +56 -31
- package/src/utils.js.map +1 -1
- package/src/validation/validation-builder.d.ts +39 -0
- package/src/validation/validation-builder.d.ts.map +1 -1
- package/src/validation/validation-builder.js +39 -0
- package/src/validation/validation-builder.js.map +1 -1
package/src/services/fec.js
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Forward Error Correction (FEC) service using Reed-Solomon erasure coding.
|
|
4
|
+
* Provides parity data creation, file recovery, and integrity verification for distributed storage.
|
|
5
|
+
* @module services/fec
|
|
6
|
+
*/
|
|
2
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
8
|
exports.FecService = void 0;
|
|
4
9
|
const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
|
|
@@ -6,8 +11,15 @@ const reed_solomon_erasure_wasm_1 = require("@subspace/reed-solomon-erasure.wasm
|
|
|
6
11
|
const constants_1 = require("../constants");
|
|
7
12
|
class FecService {
|
|
8
13
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
14
|
+
* Encodes data using Reed-Solomon erasure coding.
|
|
15
|
+
* @param data Data buffer to encode
|
|
16
|
+
* @param shardSize Size of each shard in bytes
|
|
17
|
+
* @param dataShards Number of data shards
|
|
18
|
+
* @param parityShards Number of parity shards
|
|
19
|
+
* @param fecOnly If true, returns only parity shards; otherwise returns all shards
|
|
20
|
+
* @param fecConstants FEC constants (defaults to FEC)
|
|
21
|
+
* @returns Encoded buffer containing shards
|
|
22
|
+
* @throws {FecError} If parameters are invalid or encoding fails
|
|
11
23
|
*/
|
|
12
24
|
async encode(data, shardSize, dataShards, parityShards, fecOnly, fecConstants = constants_1.FEC) {
|
|
13
25
|
// Validate parameters
|
|
@@ -46,8 +58,14 @@ class FecService {
|
|
|
46
58
|
}
|
|
47
59
|
}
|
|
48
60
|
/**
|
|
49
|
-
*
|
|
50
|
-
*
|
|
61
|
+
* Decodes/reconstructs data using Reed-Solomon erasure coding.
|
|
62
|
+
* @param data Encoded data buffer containing all shards
|
|
63
|
+
* @param shardSize Size of each shard in bytes
|
|
64
|
+
* @param dataShards Number of data shards
|
|
65
|
+
* @param parityShards Number of parity shards
|
|
66
|
+
* @param shardsAvailable Boolean array indicating which shards are available
|
|
67
|
+
* @returns Reconstructed data buffer
|
|
68
|
+
* @throws {FecError} If parameters are invalid or decoding fails
|
|
51
69
|
*/
|
|
52
70
|
async decode(data, shardSize, dataShards, parityShards, shardsAvailable) {
|
|
53
71
|
// Validate parameters
|
|
@@ -84,7 +102,12 @@ class FecService {
|
|
|
84
102
|
}
|
|
85
103
|
}
|
|
86
104
|
/**
|
|
87
|
-
*
|
|
105
|
+
* Creates parity data for a file buffer.
|
|
106
|
+
* @param fileData File data to create parity for
|
|
107
|
+
* @param parityCount Number of parity shards to create
|
|
108
|
+
* @param fecConstants FEC constants (defaults to FEC)
|
|
109
|
+
* @returns Array of parity data objects
|
|
110
|
+
* @throws {FecError} If parameters are invalid or encoding fails
|
|
88
111
|
*/
|
|
89
112
|
async createParityData(fileData, parityCount, fecConstants = constants_1.FEC) {
|
|
90
113
|
if (!fileData || fileData.length === 0) {
|
|
@@ -129,7 +152,13 @@ class FecService {
|
|
|
129
152
|
}
|
|
130
153
|
}
|
|
131
154
|
/**
|
|
132
|
-
*
|
|
155
|
+
* Recovers file data using parity data. Pass null for corrupted data.
|
|
156
|
+
* @param corruptedData Corrupted file data or null if completely lost
|
|
157
|
+
* @param parityData Array of parity data objects
|
|
158
|
+
* @param originalSize Original file size in bytes
|
|
159
|
+
* @param fecConstants FEC constants (defaults to FEC)
|
|
160
|
+
* @returns Recovery result with data and recovery status
|
|
161
|
+
* @throws {FecError} If parameters are invalid or recovery fails
|
|
133
162
|
*/
|
|
134
163
|
async recoverFileData(corruptedData, parityData, originalSize, fecConstants = constants_1.FEC) {
|
|
135
164
|
if (!parityData || parityData.length === 0) {
|
|
@@ -198,7 +227,10 @@ class FecService {
|
|
|
198
227
|
}
|
|
199
228
|
}
|
|
200
229
|
/**
|
|
201
|
-
*
|
|
230
|
+
* Verifies file integrity using parity data.
|
|
231
|
+
* @param fileData File data to verify
|
|
232
|
+
* @param parityData Array of parity data objects
|
|
233
|
+
* @returns True if file integrity is verified, false otherwise
|
|
202
234
|
*/
|
|
203
235
|
async verifyFileIntegrity(fileData, parityData) {
|
|
204
236
|
try {
|
package/src/services/fec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fec.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/fec.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"fec.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/fec.ts"],"names":[],"mappings":"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"}
|
package/src/services/jwt.d.ts
CHANGED
|
@@ -1,10 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview JWT token service for authentication and authorization.
|
|
3
|
+
* Handles JWT token generation, signing, and verification with role-based access control.
|
|
4
|
+
* @module services/jwt
|
|
5
|
+
*/
|
|
1
6
|
import { ITokenRole, ITokenUser } from '@digitaldefiance/suite-core-lib';
|
|
2
7
|
import { IUserDocument } from '../documents/user';
|
|
3
8
|
import { IApplication } from '../interfaces/application';
|
|
4
9
|
import { IJwtSignResponse } from '../interfaces/jwt-sign-response';
|
|
5
10
|
import { BaseService } from './base';
|
|
6
11
|
import type { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
7
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Service for JWT token operations including generation, signing, and verification.
|
|
14
|
+
* Integrates with role service to embed user roles in JWT tokens.
|
|
15
|
+
* @template TID - Platform ID type (defaults to Buffer)
|
|
16
|
+
* @template TDate - Date type (defaults to Date)
|
|
17
|
+
* @template TTokenRole - Token role interface type
|
|
18
|
+
* @template TTokenUser - Token user interface type
|
|
19
|
+
* @template TApplication - Application interface type
|
|
20
|
+
* @extends {BaseService<TID, TApplication>}
|
|
21
|
+
*/
|
|
22
|
+
export declare class JwtService<TID extends PlatformID = Buffer, TDate extends Date = Date, TTokenRole extends ITokenRole<TID, TDate> = ITokenRole<TID, TDate>, TTokenUser extends ITokenUser = ITokenUser, TApplication extends IApplication<TID> = IApplication<TID>> extends BaseService<TID, TApplication> {
|
|
8
23
|
private readonly roleService;
|
|
9
24
|
/**
|
|
10
25
|
* Constructor for the JWT service
|
|
@@ -18,7 +33,7 @@ export declare class JwtService<I extends PlatformID = Buffer, D extends Date =
|
|
|
18
33
|
* @param overrideLanguage Optional language to use for role translations
|
|
19
34
|
* @returns The signed token
|
|
20
35
|
*/
|
|
21
|
-
signToken(userDoc: IUserDocument<string,
|
|
36
|
+
signToken(userDoc: IUserDocument<string, TID>, jwtSecret: string, overrideLanguage?: string): Promise<IJwtSignResponse<TID, TDate, TTokenRole>>;
|
|
22
37
|
/**
|
|
23
38
|
* Verify a JWT token and return the user data
|
|
24
39
|
* @param token The token to verify
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/jwt.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,UAAU,EACX,MAAM,iCAAiC,CAAC;AAUzC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AASlE,qBAAa,UAAU,CACrB,
|
|
1
|
+
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/jwt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,UAAU,EAEV,UAAU,EACX,MAAM,iCAAiC,CAAC;AAUzC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AASlE;;;;;;;;;GASG;AACH,qBAAa,UAAU,CACrB,GAAG,SAAS,UAAU,GAAG,MAAM,EAC/B,KAAK,SAAS,IAAI,GAAG,IAAI,EACzB,UAAU,SAAS,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,EAClE,UAAU,SAAS,UAAU,GAAG,UAAU,EAC1C,YAAY,SAAS,YAAY,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAC1D,SAAQ,WAAW,CAAC,GAAG,EAAE,YAAY,CAAC;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAElE;;;OAGG;gBACS,WAAW,EAAE,YAAY;IAKrC;;;;;;OAMG;IACU,SAAS,CACpB,OAAO,EAAE,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,EACnC,SAAS,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAgCpD;;;;;OAKG;IACU,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;CAgCpE"}
|
package/src/services/jwt.js
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview JWT token service for authentication and authorization.
|
|
4
|
+
* Handles JWT token generation, signing, and verification with role-based access control.
|
|
5
|
+
* @module services/jwt
|
|
6
|
+
*/
|
|
2
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
8
|
exports.JwtService = void 0;
|
|
4
9
|
const jsonwebtoken_1 = require("jsonwebtoken");
|
|
@@ -8,6 +13,16 @@ const token_expired_1 = require("../errors/token-expired");
|
|
|
8
13
|
const base_1 = require("./base");
|
|
9
14
|
const role_1 = require("./role");
|
|
10
15
|
const verifyAsync = (0, util_1.promisify)(jsonwebtoken_1.verify);
|
|
16
|
+
/**
|
|
17
|
+
* Service for JWT token operations including generation, signing, and verification.
|
|
18
|
+
* Integrates with role service to embed user roles in JWT tokens.
|
|
19
|
+
* @template TID - Platform ID type (defaults to Buffer)
|
|
20
|
+
* @template TDate - Date type (defaults to Date)
|
|
21
|
+
* @template TTokenRole - Token role interface type
|
|
22
|
+
* @template TTokenUser - Token user interface type
|
|
23
|
+
* @template TApplication - Application interface type
|
|
24
|
+
* @extends {BaseService<TID, TApplication>}
|
|
25
|
+
*/
|
|
11
26
|
class JwtService extends base_1.BaseService {
|
|
12
27
|
roleService;
|
|
13
28
|
/**
|
package/src/services/jwt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/jwt.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/jwt.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,60 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Service for password-based key wrapping and unwrapping using AES-256-GCM.
|
|
3
|
+
* Provides secure master key management, password changes, and generic secret wrapping.
|
|
4
|
+
* @module services/key-wrapping
|
|
5
|
+
*/
|
|
1
6
|
import { SecureBuffer, SecureString } from '@digitaldefiance/ecies-lib';
|
|
2
7
|
import { IConstants } from '@digitaldefiance/node-ecies-lib';
|
|
8
|
+
/**
|
|
9
|
+
* Represents a password-wrapped master key with all encryption metadata.
|
|
10
|
+
*/
|
|
3
11
|
export interface WrappedKey {
|
|
12
|
+
/** Hex-encoded salt for PBKDF2 key derivation */
|
|
4
13
|
salt: string;
|
|
14
|
+
/** Hex-encoded initialization vector for AES-GCM */
|
|
5
15
|
iv: string;
|
|
16
|
+
/** Hex-encoded authentication tag for AES-GCM */
|
|
6
17
|
authTag: string;
|
|
18
|
+
/** Hex-encoded encrypted master key */
|
|
7
19
|
encryptedMasterKey: string;
|
|
20
|
+
/** Number of PBKDF2 iterations used */
|
|
8
21
|
iterations: number;
|
|
9
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Generic password-wrapped secret payload with encryption metadata.
|
|
25
|
+
*/
|
|
10
26
|
export interface PasswordWrappedSecret {
|
|
27
|
+
/** Hex-encoded salt for PBKDF2 key derivation */
|
|
11
28
|
salt: string;
|
|
29
|
+
/** Hex-encoded initialization vector for AES-GCM */
|
|
12
30
|
iv: string;
|
|
31
|
+
/** Hex-encoded authentication tag for AES-GCM */
|
|
13
32
|
authTag: string;
|
|
33
|
+
/** Hex-encoded encrypted secret data */
|
|
14
34
|
ciphertext: string;
|
|
35
|
+
/** Number of PBKDF2 iterations used */
|
|
15
36
|
iterations: number;
|
|
16
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Service for password-based key wrapping and unwrapping operations.
|
|
40
|
+
* Provides secure master key management with AES-256-GCM encryption and PBKDF2 key derivation.
|
|
41
|
+
* Supports both synchronous and asynchronous operations with deduplication for concurrent requests.
|
|
42
|
+
*/
|
|
17
43
|
export declare class KeyWrappingService {
|
|
44
|
+
/**
|
|
45
|
+
* In-flight de-duplication map to share PBKDF2 work across concurrent identical requests.
|
|
46
|
+
* Stores promises of base64-encoded master key bytes for sharing across callers.
|
|
47
|
+
* @private
|
|
48
|
+
*/
|
|
18
49
|
private static inFlightUnwraps;
|
|
19
50
|
/**
|
|
20
|
-
* Generates a new master key and wraps it with the user's password
|
|
51
|
+
* Generates a new random master key and wraps it with the user's password.
|
|
52
|
+
* @param password User's password for wrapping
|
|
53
|
+
* @param constants Configuration constants (defaults to Constants)
|
|
54
|
+
* @returns Object containing the master key and wrapped key metadata
|
|
55
|
+
* @throws {InvalidNewPasswordError} If password doesn't meet requirements
|
|
21
56
|
*/
|
|
22
57
|
wrapNewMasterKey(password: SecureString, constants?: IConstants): {
|
|
23
58
|
masterKey: SecureBuffer;
|
|
24
59
|
wrappedKey: WrappedKey;
|
|
25
60
|
};
|
|
26
61
|
/**
|
|
27
|
-
* Wraps an existing master key with a password-derived key
|
|
62
|
+
* Wraps an existing master key with a password-derived key using AES-256-GCM.
|
|
63
|
+
* @param masterKey Master key to wrap
|
|
64
|
+
* @param password User's password for wrapping
|
|
65
|
+
* @param constants Configuration constants (defaults to Constants)
|
|
66
|
+
* @returns Wrapped key metadata including salt, IV, auth tag, and encrypted key
|
|
67
|
+
* @throws {InvalidNewPasswordError} If password doesn't meet requirements
|
|
28
68
|
*/
|
|
29
69
|
wrapMasterKey(masterKey: SecureBuffer, password: SecureString, constants?: IConstants): WrappedKey;
|
|
30
70
|
/**
|
|
31
|
-
* Unwraps a master key using the user's password
|
|
71
|
+
* Unwraps a master key using the user's password (synchronous).
|
|
72
|
+
* @param wrappedKey Wrapped key metadata
|
|
73
|
+
* @param password User's password for unwrapping
|
|
74
|
+
* @param constants Configuration constants (defaults to Constants)
|
|
75
|
+
* @returns Unwrapped master key in a SecureBuffer
|
|
76
|
+
* @throws {InvalidPasswordError} If password is incorrect or decryption fails
|
|
32
77
|
*/
|
|
33
78
|
unwrapMasterKey(wrappedKey: WrappedKey, password: SecureString, constants?: IConstants): SecureBuffer;
|
|
34
79
|
/**
|
|
35
80
|
* Async version of unwrapMasterKey that uses libuv threadpool via crypto.pbkdf2
|
|
36
81
|
* to avoid blocking the event loop during password verification.
|
|
82
|
+
* @param wrappedKey Wrapped key metadata
|
|
83
|
+
* @param password User's password (SecureString or raw string)
|
|
84
|
+
* @param constants Configuration constants (defaults to Constants)
|
|
85
|
+
* @returns Promise resolving to unwrapped master key in a SecureBuffer
|
|
86
|
+
* @throws {InvalidPasswordError} If password is incorrect or decryption fails
|
|
37
87
|
*/
|
|
38
88
|
unwrapMasterKeyAsync(wrappedKey: WrappedKey, password: SecureString | string, constants?: IConstants): Promise<SecureBuffer>;
|
|
39
89
|
/**
|
|
40
90
|
* Deduplicated async unwrap that coalesces concurrent identical PBKDF2 operations.
|
|
41
|
-
* Keyed by salt + iterations +
|
|
91
|
+
* Keyed by salt + iterations + password hash to avoid redundant computation.
|
|
92
|
+
* @param wrappedKey Wrapped key metadata
|
|
93
|
+
* @param password User's password as string
|
|
94
|
+
* @param constants Configuration constants (defaults to Constants)
|
|
95
|
+
* @returns Promise resolving to unwrapped master key in a SecureBuffer
|
|
96
|
+
* @throws {InvalidPasswordError} If password is incorrect or decryption fails
|
|
42
97
|
*/
|
|
43
98
|
unwrapMasterKeyAsyncDedup(wrappedKey: WrappedKey, password: string, constants?: IConstants): Promise<SecureBuffer>;
|
|
44
99
|
/**
|
|
45
|
-
* Changes password by re-wrapping the master key
|
|
100
|
+
* Changes password by re-wrapping the master key with a new password.
|
|
101
|
+
* @param wrappedKey Current wrapped key metadata
|
|
102
|
+
* @param oldPassword Current password
|
|
103
|
+
* @param newPassword New password
|
|
104
|
+
* @param constants Configuration constants (defaults to Constants)
|
|
105
|
+
* @returns New wrapped key metadata
|
|
106
|
+
* @throws {InvalidPasswordError} If old password is incorrect
|
|
107
|
+
* @throws {InvalidNewPasswordError} If new password doesn't meet requirements
|
|
46
108
|
*/
|
|
47
109
|
changePassword(wrappedKey: WrappedKey, oldPassword: SecureString, newPassword: SecureString, constants?: IConstants): WrappedKey;
|
|
48
110
|
/**
|
|
49
|
-
* Wraps arbitrary secret bytes with a password-derived key
|
|
111
|
+
* Wraps arbitrary secret bytes with a password-derived key using AES-256-GCM.
|
|
112
|
+
* @param secret Secret data to wrap
|
|
113
|
+
* @param password User's password for wrapping
|
|
114
|
+
* @param constants Configuration constants (defaults to Constants)
|
|
115
|
+
* @returns Password-wrapped secret metadata
|
|
116
|
+
* @throws {InvalidNewPasswordError} If password doesn't meet requirements
|
|
50
117
|
*/
|
|
51
118
|
wrapSecret(secret: SecureBuffer, password: SecureString, constants?: IConstants): PasswordWrappedSecret;
|
|
52
119
|
/**
|
|
53
|
-
* Unwraps a password-wrapped secret (
|
|
120
|
+
* Unwraps a password-wrapped secret (synchronous).
|
|
121
|
+
* @param wrapped Password-wrapped secret metadata
|
|
122
|
+
* @param password User's password for unwrapping
|
|
123
|
+
* @param constants Configuration constants (defaults to Constants)
|
|
124
|
+
* @returns Unwrapped secret in a SecureBuffer
|
|
125
|
+
* @throws {InvalidPasswordError} If password is incorrect or decryption fails
|
|
54
126
|
*/
|
|
55
127
|
unwrapSecret(wrapped: PasswordWrappedSecret, password: SecureString, constants?: IConstants): SecureBuffer;
|
|
56
128
|
/**
|
|
57
|
-
* Unwraps a password-wrapped secret
|
|
129
|
+
* Unwraps a password-wrapped secret using async PBKDF2 to avoid blocking.
|
|
130
|
+
* @param wrapped Password-wrapped secret metadata
|
|
131
|
+
* @param password User's password (SecureString or raw string)
|
|
132
|
+
* @param constants Configuration constants (defaults to Constants)
|
|
133
|
+
* @returns Promise resolving to unwrapped secret in a SecureBuffer
|
|
134
|
+
* @throws {InvalidPasswordError} If password is incorrect or decryption fails
|
|
135
|
+
* @throws {Error} If password is undefined, null, or invalid type
|
|
58
136
|
*/
|
|
59
137
|
unwrapSecretAsync(wrapped: PasswordWrappedSecret, password: SecureString | string, constants?: IConstants): Promise<SecureBuffer>;
|
|
60
138
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-wrapping.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/key-wrapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAEL,UAAU,EAEX,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"key-wrapping.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/key-wrapping.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAEL,UAAU,EAEX,MAAM,iCAAiC,CAAC;AAkBzC;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,EAAE,EAAE,MAAM,CAAC;IACX,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,EAAE,EAAE,MAAM,CAAC;IACX,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,qBAAa,kBAAkB;IAC7B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe,CAA2C;IAEzE;;;;;;OAMG;IACI,gBAAgB,CACrB,QAAQ,EAAE,YAAY,EACtB,SAAS,GAAE,UAAsB,GAChC;QACD,SAAS,EAAE,YAAY,CAAC;QACxB,UAAU,EAAE,UAAU,CAAC;KACxB;IAQD;;;;;;;OAOG;IACI,aAAa,CAClB,SAAS,EAAE,YAAY,EACvB,QAAQ,EAAE,YAAY,EACtB,SAAS,GAAE,UAAsB,GAChC,UAAU;IAyCb;;;;;;;OAOG;IACI,eAAe,CACpB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,YAAY,EACtB,SAAS,GAAE,UAAsB,GAChC,YAAY;IAuCf;;;;;;;;OAQG;IACU,oBAAoB,CAC/B,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,YAAY,GAAG,MAAM,EAC/B,SAAS,GAAE,UAAsB,GAChC,OAAO,CAAC,YAAY,CAAC;IA6DxB;;;;;;;;OAQG;IACU,yBAAyB,CACpC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,UAAsB,GAChC,OAAO,CAAC,YAAY,CAAC;IAuCxB;;;;;;;;;OASG;IACI,cAAc,CACnB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,YAAY,EACzB,WAAW,EAAE,YAAY,EACzB,SAAS,GAAE,UAAsB,GAChC,UAAU;IAYb;;;;;;;OAOG;IACI,UAAU,CACf,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,YAAY,EACtB,SAAS,GAAE,UAAsB,GAChC,qBAAqB;IAuCxB;;;;;;;OAOG;IACI,YAAY,CACjB,OAAO,EAAE,qBAAqB,EAC9B,QAAQ,EAAE,YAAY,EACtB,SAAS,GAAE,UAAsB,GAChC,YAAY;IAoCf;;;;;;;;OAQG;IACU,iBAAiB,CAC5B,OAAO,EAAE,qBAAqB,EAC9B,QAAQ,EAAE,YAAY,GAAG,MAAM,EAC/B,SAAS,GAAE,UAAsB,GAChC,OAAO,CAAC,YAAY,CAAC;CA+DzB"}
|
|
@@ -1,19 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Service for password-based key wrapping and unwrapping using AES-256-GCM.
|
|
4
|
+
* Provides secure master key management, password changes, and generic secret wrapping.
|
|
5
|
+
* @module services/key-wrapping
|
|
6
|
+
*/
|
|
2
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
8
|
exports.KeyWrappingService = void 0;
|
|
4
9
|
const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
|
|
5
10
|
const node_ecies_lib_1 = require("@digitaldefiance/node-ecies-lib");
|
|
6
11
|
const crypto_1 = require("crypto");
|
|
7
12
|
const errors_1 = require("../errors");
|
|
13
|
+
/**
|
|
14
|
+
* Creates a PBKDF2 service instance from constants.
|
|
15
|
+
* @param constants Configuration constants
|
|
16
|
+
* @returns Configured PBKDF2 service
|
|
17
|
+
*/
|
|
8
18
|
function createPbkdf2Service(constants) {
|
|
9
19
|
return node_ecies_lib_1.Pbkdf2Service.fromConstants(constants);
|
|
10
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Service for password-based key wrapping and unwrapping operations.
|
|
23
|
+
* Provides secure master key management with AES-256-GCM encryption and PBKDF2 key derivation.
|
|
24
|
+
* Supports both synchronous and asynchronous operations with deduplication for concurrent requests.
|
|
25
|
+
*/
|
|
11
26
|
class KeyWrappingService {
|
|
12
|
-
|
|
13
|
-
|
|
27
|
+
/**
|
|
28
|
+
* In-flight de-duplication map to share PBKDF2 work across concurrent identical requests.
|
|
29
|
+
* Stores promises of base64-encoded master key bytes for sharing across callers.
|
|
30
|
+
* @private
|
|
31
|
+
*/
|
|
14
32
|
static inFlightUnwraps = new Map();
|
|
15
33
|
/**
|
|
16
|
-
* Generates a new master key and wraps it with the user's password
|
|
34
|
+
* Generates a new random master key and wraps it with the user's password.
|
|
35
|
+
* @param password User's password for wrapping
|
|
36
|
+
* @param constants Configuration constants (defaults to Constants)
|
|
37
|
+
* @returns Object containing the master key and wrapped key metadata
|
|
38
|
+
* @throws {InvalidNewPasswordError} If password doesn't meet requirements
|
|
17
39
|
*/
|
|
18
40
|
wrapNewMasterKey(password, constants = node_ecies_lib_1.Constants) {
|
|
19
41
|
const masterKey = new ecies_lib_1.SecureBuffer((0, crypto_1.randomBytes)(constants.WRAPPED_KEY.MASTER_KEY_SIZE));
|
|
@@ -21,7 +43,12 @@ class KeyWrappingService {
|
|
|
21
43
|
return { masterKey, wrappedKey };
|
|
22
44
|
}
|
|
23
45
|
/**
|
|
24
|
-
* Wraps an existing master key with a password-derived key
|
|
46
|
+
* Wraps an existing master key with a password-derived key using AES-256-GCM.
|
|
47
|
+
* @param masterKey Master key to wrap
|
|
48
|
+
* @param password User's password for wrapping
|
|
49
|
+
* @param constants Configuration constants (defaults to Constants)
|
|
50
|
+
* @returns Wrapped key metadata including salt, IV, auth tag, and encrypted key
|
|
51
|
+
* @throws {InvalidNewPasswordError} If password doesn't meet requirements
|
|
25
52
|
*/
|
|
26
53
|
wrapMasterKey(masterKey, password, constants = node_ecies_lib_1.Constants) {
|
|
27
54
|
if (constants.PasswordRegex.test(password.value ?? '') === false) {
|
|
@@ -52,7 +79,12 @@ class KeyWrappingService {
|
|
|
52
79
|
};
|
|
53
80
|
}
|
|
54
81
|
/**
|
|
55
|
-
* Unwraps a master key using the user's password
|
|
82
|
+
* Unwraps a master key using the user's password (synchronous).
|
|
83
|
+
* @param wrappedKey Wrapped key metadata
|
|
84
|
+
* @param password User's password for unwrapping
|
|
85
|
+
* @param constants Configuration constants (defaults to Constants)
|
|
86
|
+
* @returns Unwrapped master key in a SecureBuffer
|
|
87
|
+
* @throws {InvalidPasswordError} If password is incorrect or decryption fails
|
|
56
88
|
*/
|
|
57
89
|
unwrapMasterKey(wrappedKey, password, constants = node_ecies_lib_1.Constants) {
|
|
58
90
|
const salt = Buffer.from(wrappedKey.salt, 'hex');
|
|
@@ -84,6 +116,11 @@ class KeyWrappingService {
|
|
|
84
116
|
/**
|
|
85
117
|
* Async version of unwrapMasterKey that uses libuv threadpool via crypto.pbkdf2
|
|
86
118
|
* to avoid blocking the event loop during password verification.
|
|
119
|
+
* @param wrappedKey Wrapped key metadata
|
|
120
|
+
* @param password User's password (SecureString or raw string)
|
|
121
|
+
* @param constants Configuration constants (defaults to Constants)
|
|
122
|
+
* @returns Promise resolving to unwrapped master key in a SecureBuffer
|
|
123
|
+
* @throws {InvalidPasswordError} If password is incorrect or decryption fails
|
|
87
124
|
*/
|
|
88
125
|
async unwrapMasterKeyAsync(wrappedKey, password, constants = node_ecies_lib_1.Constants) {
|
|
89
126
|
const __perfEnabled = process.env['PERF_LOGS'] === '1';
|
|
@@ -132,7 +169,12 @@ class KeyWrappingService {
|
|
|
132
169
|
}
|
|
133
170
|
/**
|
|
134
171
|
* Deduplicated async unwrap that coalesces concurrent identical PBKDF2 operations.
|
|
135
|
-
* Keyed by salt + iterations +
|
|
172
|
+
* Keyed by salt + iterations + password hash to avoid redundant computation.
|
|
173
|
+
* @param wrappedKey Wrapped key metadata
|
|
174
|
+
* @param password User's password as string
|
|
175
|
+
* @param constants Configuration constants (defaults to Constants)
|
|
176
|
+
* @returns Promise resolving to unwrapped master key in a SecureBuffer
|
|
177
|
+
* @throws {InvalidPasswordError} If password is incorrect or decryption fails
|
|
136
178
|
*/
|
|
137
179
|
async unwrapMasterKeyAsyncDedup(wrappedKey, password, constants = node_ecies_lib_1.Constants) {
|
|
138
180
|
// Derive a short cache key; avoid storing raw password by hashing
|
|
@@ -170,7 +212,14 @@ class KeyWrappingService {
|
|
|
170
212
|
return secure;
|
|
171
213
|
}
|
|
172
214
|
/**
|
|
173
|
-
* Changes password by re-wrapping the master key
|
|
215
|
+
* Changes password by re-wrapping the master key with a new password.
|
|
216
|
+
* @param wrappedKey Current wrapped key metadata
|
|
217
|
+
* @param oldPassword Current password
|
|
218
|
+
* @param newPassword New password
|
|
219
|
+
* @param constants Configuration constants (defaults to Constants)
|
|
220
|
+
* @returns New wrapped key metadata
|
|
221
|
+
* @throws {InvalidPasswordError} If old password is incorrect
|
|
222
|
+
* @throws {InvalidNewPasswordError} If new password doesn't meet requirements
|
|
174
223
|
*/
|
|
175
224
|
changePassword(wrappedKey, oldPassword, newPassword, constants = node_ecies_lib_1.Constants) {
|
|
176
225
|
// Unwrap with old password
|
|
@@ -184,7 +233,12 @@ class KeyWrappingService {
|
|
|
184
233
|
}
|
|
185
234
|
}
|
|
186
235
|
/**
|
|
187
|
-
* Wraps arbitrary secret bytes with a password-derived key
|
|
236
|
+
* Wraps arbitrary secret bytes with a password-derived key using AES-256-GCM.
|
|
237
|
+
* @param secret Secret data to wrap
|
|
238
|
+
* @param password User's password for wrapping
|
|
239
|
+
* @param constants Configuration constants (defaults to Constants)
|
|
240
|
+
* @returns Password-wrapped secret metadata
|
|
241
|
+
* @throws {InvalidNewPasswordError} If password doesn't meet requirements
|
|
188
242
|
*/
|
|
189
243
|
wrapSecret(secret, password, constants = node_ecies_lib_1.Constants) {
|
|
190
244
|
if (constants.PasswordRegex.test(password.value ?? '') === false) {
|
|
@@ -218,7 +272,12 @@ class KeyWrappingService {
|
|
|
218
272
|
}
|
|
219
273
|
}
|
|
220
274
|
/**
|
|
221
|
-
* Unwraps a password-wrapped secret (
|
|
275
|
+
* Unwraps a password-wrapped secret (synchronous).
|
|
276
|
+
* @param wrapped Password-wrapped secret metadata
|
|
277
|
+
* @param password User's password for unwrapping
|
|
278
|
+
* @param constants Configuration constants (defaults to Constants)
|
|
279
|
+
* @returns Unwrapped secret in a SecureBuffer
|
|
280
|
+
* @throws {InvalidPasswordError} If password is incorrect or decryption fails
|
|
222
281
|
*/
|
|
223
282
|
unwrapSecret(wrapped, password, constants = node_ecies_lib_1.Constants) {
|
|
224
283
|
const salt = Buffer.from(wrapped.salt, 'hex');
|
|
@@ -248,7 +307,13 @@ class KeyWrappingService {
|
|
|
248
307
|
}
|
|
249
308
|
}
|
|
250
309
|
/**
|
|
251
|
-
* Unwraps a password-wrapped secret
|
|
310
|
+
* Unwraps a password-wrapped secret using async PBKDF2 to avoid blocking.
|
|
311
|
+
* @param wrapped Password-wrapped secret metadata
|
|
312
|
+
* @param password User's password (SecureString or raw string)
|
|
313
|
+
* @param constants Configuration constants (defaults to Constants)
|
|
314
|
+
* @returns Promise resolving to unwrapped secret in a SecureBuffer
|
|
315
|
+
* @throws {InvalidPasswordError} If password is incorrect or decryption fails
|
|
316
|
+
* @throws {Error} If password is undefined, null, or invalid type
|
|
252
317
|
*/
|
|
253
318
|
async unwrapSecretAsync(wrapped, password, constants = node_ecies_lib_1.Constants) {
|
|
254
319
|
const salt = Buffer.from(wrapped.salt, 'hex');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-wrapping.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/key-wrapping.ts"],"names":[],"mappings":";;;AAAA,0DAAwE;AACxE,oEAIyC;AACzC,mCAKgB;AAChB,sCAA0E;AAE1E,SAAS,mBAAmB,CAAC,SAAqB;IAChD,OAAO,8BAAa,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAmBD,MAAa,kBAAkB;IAC7B,yFAAyF;IACzF,kGAAkG;IAC1F,MAAM,CAAC,eAAe,GAAiC,IAAI,GAAG,EAAE,CAAC;IAEzE;;OAEG;IACI,gBAAgB,CACrB,QAAsB,EACtB,YAAwB,0BAAS;QAKjC,MAAM,SAAS,GAAG,IAAI,wBAAY,CAChC,IAAA,oBAAW,EAAC,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,CACnD,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QACtE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;IACnC,CAAC;IAED;;OAEG;IACI,aAAa,CAClB,SAAuB,EACvB,QAAsB,EACtB,YAAwB,0BAAS;QAEjC,IAAI,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC;YACjE,MAAM,IAAI,gCAAuB,EAAE,CAAC;QACtC,CAAC;QACD,MAAM,IAAI,GAAG,IAAA,oBAAW,EAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC;QACxD,MAAM,aAAa,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAErD,4DAA4D;QAC5D,MAAM,UAAU,GAAG,aAAa,CAAC,qBAAqB,CACpD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EACvC,IAAI,EACJ,UAAU,EACV,SAAS,CAAC,WAAW,CAAC,SAAS,EAC/B,EAAE,EAAE,mBAAmB;QACvB,QAAQ,CACT,CAAC;QACF,MAAM,iBAAiB,GAAG,IAAI,wBAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE5D,qBAAqB;QACrB,MAAM,EAAE,GAAG,IAAA,oBAAW,EAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,IAAA,uBAAc,EAAC,aAAa,EAAE,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAE1E,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;YAC9B,MAAM,CAAC,KAAK,EAAE;SACf,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAEpC,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAE5B,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC1B,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YACtB,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChC,kBAAkB,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC7C,UAAU;SACX,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,eAAe,CACpB,UAAsB,EACtB,QAAsB,EACtB,YAAwB,0BAAS;QAEjC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjD,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QACpE,MAAM,aAAa,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAErD,qEAAqE;QACrE,MAAM,UAAU,GAAG,aAAa,CAAC,qBAAqB,CACpD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EACvC,IAAI,EACJ,UAAU,CAAC,UAAU,EACrB,IAAI,CAAC,MAAM,EAAE,uBAAuB;QACpC,EAAE,EAAE,mBAAmB;QACvB,QAAQ,CACT,CAAC;QACF,MAAM,iBAAiB,GAAG,IAAI,wBAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE5D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAA,yBAAgB,EAC/B,aAAa,EACb,iBAAiB,CAAC,KAAK,EACvB,EAAE,CACH,CAAC;YACF,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAE7B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC9B,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC1B,QAAQ,CAAC,KAAK,EAAE;aACjB,CAAC,CAAC;YAEH,OAAO,IAAI,wBAAY,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,6BAAoB,EAAE,CAAC;QACnC,CAAC;gBAAS,CAAC;YACT,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,oBAAoB,CAC/B,UAAsB,EACtB,QAA+B,EAC/B,YAAwB,0BAAS;QAEjC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC;QACvD,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjD,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QAEpE,6EAA6E;QAC7E,6DAA6D;QAC7D,MAAM,SAAS;QACb,0CAA0C;QAC1C,OAAO,QAAQ,KAAK,QAAQ;YAC1B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;YAC/B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC9C,MAAM,aAAa,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAErD,0DAA0D;QAC1D,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,0BAA0B,CAC/D,SAAS,EACT,IAAI,EACJ,UAAU,CAAC,UAAU,EACrB,IAAI,CAAC,MAAM,EAAE,uBAAuB;QACpC,EAAE,EAAE,mBAAmB;QACvB,QAAQ,CACT,CAAC;QACF,MAAM,iBAAiB,GAAG,IAAI,wBAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE5D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAA,yBAAgB,EAC/B,aAAa,EACb,iBAAiB,CAAC,KAAK,EACvB,EAAE,CACH,CAAC;YACF,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAE7B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC9B,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC1B,QAAQ,CAAC,KAAK,EAAE;aACjB,CAAC,CAAC;YACH,IAAI,aAAa;gBACf,OAAO,CAAC,IAAI,CACV,oCAAoC,EACpC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAC/D,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,CAClC,CAAC;YAEJ,OAAO,IAAI,wBAAY,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,6BAAoB,EAAE,CAAC;QACnC,CAAC;gBAAS,CAAC;YACT,iDAAiD;YACjD,IAAI,CAAC;gBACH,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,yBAAyB,CACpC,UAAsB,EACtB,QAAgB,EAChB,YAAwB,0BAAS;QAEjC,kEAAkE;QAClE,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC;aAChC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;aACxB,MAAM,CAAC,KAAK,CAAC;aACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChB,MAAM,QAAQ,GAAG,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,UAAU,IAAI,MAAM,EAAE,CAAC;QACzE,IAAI,CAAC,GAAG,kBAAkB,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,wFAAwF;YACxF,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;gBACd,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACxC,UAAU,EACV,QAAQ,EACR,SAAS,CACV,CAAC;gBACF,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;oBACnC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACpC,eAAe;oBACf,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACb,OAAO,GAAG,CAAC;gBACb,CAAC;wBAAS,CAAC;oBACT,EAAE,CAAC,OAAO,EAAE,CAAC;gBACf,CAAC;YACH,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;gBAChB,sBAAsB;gBACtB,kBAAkB,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtD,CAAC,CAAoB,CAAC;YACtB,kBAAkB,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC;QACpB,uEAAuE;QACvE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,wBAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAClD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACZ,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,cAAc,CACnB,UAAsB,EACtB,WAAyB,EACzB,WAAyB,EACzB,YAAwB,0BAAS;QAEjC,2BAA2B;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAE3E,IAAI,CAAC;YACH,4BAA4B;YAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAC/D,CAAC;gBAAS,CAAC;YACT,SAAS,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;OAEG;IACI,UAAU,CACf,MAAoB,EACpB,QAAsB,EACtB,YAAwB,0BAAS;QAEjC,IAAI,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC;YACjE,MAAM,IAAI,gCAAuB,EAAE,CAAC;QACtC,CAAC;QACD,MAAM,IAAI,GAAG,IAAA,oBAAW,EAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC;QACxD,MAAM,aAAa,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAErD,4DAA4D;QAC5D,MAAM,UAAU,GAAG,aAAa,CAAC,qBAAqB,CACpD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EACvC,IAAI,EACJ,UAAU,EACV,SAAS,CAAC,WAAW,CAAC,SAAS,EAC/B,EAAE,EAAE,mBAAmB;QACvB,QAAQ,CACT,CAAC;QACF,MAAM,iBAAiB,GAAG,IAAI,wBAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE5D,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,IAAA,oBAAW,EAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,IAAA,uBAAc,EAAC,aAAa,EAAE,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1E,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC9B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC3B,MAAM,CAAC,KAAK,EAAE;aACf,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YACpC,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC1B,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACtB,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAChC,UAAU,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACrC,UAAU;aACX,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;OAEG;IACI,YAAY,CACjB,OAA8B,EAC9B,QAAsB,EACtB,YAAwB,0BAAS;QAEjC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9C,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACzD,MAAM,aAAa,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAErD,4DAA4D;QAC5D,MAAM,UAAU,GAAG,aAAa,CAAC,qBAAqB,CACpD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EACvC,IAAI,EACJ,OAAO,CAAC,UAAU,EAClB,IAAI,CAAC,MAAM,EAAE,uBAAuB;QACpC,EAAE,EAAE,mBAAmB;QACvB,QAAQ,CACT,CAAC;QACF,MAAM,iBAAiB,GAAG,IAAI,wBAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAA,yBAAgB,EAC/B,aAAa,EACb,iBAAiB,CAAC,KAAK,EACvB,EAAE,CACH,CAAC;YACF,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC9B,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC1B,QAAQ,CAAC,KAAK,EAAE;aACjB,CAAC,CAAC;YACH,OAAO,IAAI,wBAAY,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,6BAAoB,EAAE,CAAC;QACnC,CAAC;gBAAS,CAAC;YACT,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,iBAAiB,CAC5B,OAA8B,EAC9B,QAA+B,EAC/B,YAAwB,0BAAS;QAEjC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9C,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAEzD,8CAA8C;QAC9C,0CAA0C;QAC1C,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAChD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,QAAQ,YAAY,wBAAY,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,SAAS;QACb,0CAA0C;QAC1C,OAAO,QAAQ,KAAK,QAAQ;YAC1B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;YAC/B,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAEvD,0BAA0B;QAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;QACJ,CAAC;QACD,MAAM,aAAa,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAErD,0DAA0D;QAC1D,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,0BAA0B,CAC/D,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EACtB,IAAI,EACJ,OAAO,CAAC,UAAU,EAClB,IAAI,CAAC,MAAM,EAAE,uBAAuB;QACpC,EAAE,EAAE,mBAAmB;QACvB,QAAQ,CACT,CAAC;QACF,MAAM,iBAAiB,GAAG,IAAI,wBAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAA,yBAAgB,EAC/B,aAAa,EACb,iBAAiB,CAAC,KAAK,EACvB,EAAE,CACH,CAAC;YACF,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC9B,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC1B,QAAQ,CAAC,KAAK,EAAE;aACjB,CAAC,CAAC;YACH,OAAO,IAAI,wBAAY,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,6BAAoB,EAAE,CAAC;QACnC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBACH,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;;AA1ZH,gDA2ZC"}
|
|
1
|
+
{"version":3,"file":"key-wrapping.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/key-wrapping.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,0DAAwE;AACxE,oEAIyC;AACzC,mCAKgB;AAChB,sCAA0E;AAE1E;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,SAAqB;IAChD,OAAO,8BAAa,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAkCD;;;;GAIG;AACH,MAAa,kBAAkB;IAC7B;;;;OAIG;IACK,MAAM,CAAC,eAAe,GAAiC,IAAI,GAAG,EAAE,CAAC;IAEzE;;;;;;OAMG;IACI,gBAAgB,CACrB,QAAsB,EACtB,YAAwB,0BAAS;QAKjC,MAAM,SAAS,GAAG,IAAI,wBAAY,CAChC,IAAA,oBAAW,EAAC,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,CACnD,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QACtE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;IACnC,CAAC;IAED;;;;;;;OAOG;IACI,aAAa,CAClB,SAAuB,EACvB,QAAsB,EACtB,YAAwB,0BAAS;QAEjC,IAAI,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC;YACjE,MAAM,IAAI,gCAAuB,EAAE,CAAC;QACtC,CAAC;QACD,MAAM,IAAI,GAAG,IAAA,oBAAW,EAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC;QACxD,MAAM,aAAa,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAErD,4DAA4D;QAC5D,MAAM,UAAU,GAAG,aAAa,CAAC,qBAAqB,CACpD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EACvC,IAAI,EACJ,UAAU,EACV,SAAS,CAAC,WAAW,CAAC,SAAS,EAC/B,EAAE,EAAE,mBAAmB;QACvB,QAAQ,CACT,CAAC;QACF,MAAM,iBAAiB,GAAG,IAAI,wBAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE5D,qBAAqB;QACrB,MAAM,EAAE,GAAG,IAAA,oBAAW,EAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,IAAA,uBAAc,EAAC,aAAa,EAAE,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAE1E,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;YAC9B,MAAM,CAAC,KAAK,EAAE;SACf,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAEpC,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAE5B,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC1B,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YACtB,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChC,kBAAkB,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC7C,UAAU;SACX,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACI,eAAe,CACpB,UAAsB,EACtB,QAAsB,EACtB,YAAwB,0BAAS;QAEjC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjD,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QACpE,MAAM,aAAa,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAErD,qEAAqE;QACrE,MAAM,UAAU,GAAG,aAAa,CAAC,qBAAqB,CACpD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EACvC,IAAI,EACJ,UAAU,CAAC,UAAU,EACrB,IAAI,CAAC,MAAM,EAAE,uBAAuB;QACpC,EAAE,EAAE,mBAAmB;QACvB,QAAQ,CACT,CAAC;QACF,MAAM,iBAAiB,GAAG,IAAI,wBAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE5D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAA,yBAAgB,EAC/B,aAAa,EACb,iBAAiB,CAAC,KAAK,EACvB,EAAE,CACH,CAAC;YACF,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAE7B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC9B,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC1B,QAAQ,CAAC,KAAK,EAAE;aACjB,CAAC,CAAC;YAEH,OAAO,IAAI,wBAAY,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,6BAAoB,EAAE,CAAC;QACnC,CAAC;gBAAS,CAAC;YACT,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,oBAAoB,CAC/B,UAAsB,EACtB,QAA+B,EAC/B,YAAwB,0BAAS;QAEjC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC;QACvD,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjD,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QAEpE,6EAA6E;QAC7E,6DAA6D;QAC7D,MAAM,SAAS;QACb,0CAA0C;QAC1C,OAAO,QAAQ,KAAK,QAAQ;YAC1B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;YAC/B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC9C,MAAM,aAAa,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAErD,0DAA0D;QAC1D,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,0BAA0B,CAC/D,SAAS,EACT,IAAI,EACJ,UAAU,CAAC,UAAU,EACrB,IAAI,CAAC,MAAM,EAAE,uBAAuB;QACpC,EAAE,EAAE,mBAAmB;QACvB,QAAQ,CACT,CAAC;QACF,MAAM,iBAAiB,GAAG,IAAI,wBAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE5D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAA,yBAAgB,EAC/B,aAAa,EACb,iBAAiB,CAAC,KAAK,EACvB,EAAE,CACH,CAAC;YACF,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAE7B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC9B,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC1B,QAAQ,CAAC,KAAK,EAAE;aACjB,CAAC,CAAC;YACH,IAAI,aAAa;gBACf,OAAO,CAAC,IAAI,CACV,oCAAoC,EACpC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAC/D,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,CAClC,CAAC;YAEJ,OAAO,IAAI,wBAAY,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,6BAAoB,EAAE,CAAC;QACnC,CAAC;gBAAS,CAAC;YACT,iDAAiD;YACjD,IAAI,CAAC;gBACH,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,yBAAyB,CACpC,UAAsB,EACtB,QAAgB,EAChB,YAAwB,0BAAS;QAEjC,kEAAkE;QAClE,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC;aAChC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;aACxB,MAAM,CAAC,KAAK,CAAC;aACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChB,MAAM,QAAQ,GAAG,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,UAAU,IAAI,MAAM,EAAE,CAAC;QACzE,IAAI,CAAC,GAAG,kBAAkB,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,wFAAwF;YACxF,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;gBACd,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACxC,UAAU,EACV,QAAQ,EACR,SAAS,CACV,CAAC;gBACF,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;oBACnC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACpC,eAAe;oBACf,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACb,OAAO,GAAG,CAAC;gBACb,CAAC;wBAAS,CAAC;oBACT,EAAE,CAAC,OAAO,EAAE,CAAC;gBACf,CAAC;YACH,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;gBAChB,sBAAsB;gBACtB,kBAAkB,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtD,CAAC,CAAoB,CAAC;YACtB,kBAAkB,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC;QACpB,uEAAuE;QACvE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,wBAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAClD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACZ,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;OASG;IACI,cAAc,CACnB,UAAsB,EACtB,WAAyB,EACzB,WAAyB,EACzB,YAAwB,0BAAS;QAEjC,2BAA2B;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAE3E,IAAI,CAAC;YACH,4BAA4B;YAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAC/D,CAAC;gBAAS,CAAC;YACT,SAAS,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACI,UAAU,CACf,MAAoB,EACpB,QAAsB,EACtB,YAAwB,0BAAS;QAEjC,IAAI,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC;YACjE,MAAM,IAAI,gCAAuB,EAAE,CAAC;QACtC,CAAC;QACD,MAAM,IAAI,GAAG,IAAA,oBAAW,EAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC;QACxD,MAAM,aAAa,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAErD,4DAA4D;QAC5D,MAAM,UAAU,GAAG,aAAa,CAAC,qBAAqB,CACpD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EACvC,IAAI,EACJ,UAAU,EACV,SAAS,CAAC,WAAW,CAAC,SAAS,EAC/B,EAAE,EAAE,mBAAmB;QACvB,QAAQ,CACT,CAAC;QACF,MAAM,iBAAiB,GAAG,IAAI,wBAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE5D,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,IAAA,oBAAW,EAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,IAAA,uBAAc,EAAC,aAAa,EAAE,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1E,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC9B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC3B,MAAM,CAAC,KAAK,EAAE;aACf,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YACpC,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC1B,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACtB,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAChC,UAAU,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACrC,UAAU;aACX,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACI,YAAY,CACjB,OAA8B,EAC9B,QAAsB,EACtB,YAAwB,0BAAS;QAEjC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9C,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACzD,MAAM,aAAa,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAErD,4DAA4D;QAC5D,MAAM,UAAU,GAAG,aAAa,CAAC,qBAAqB,CACpD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EACvC,IAAI,EACJ,OAAO,CAAC,UAAU,EAClB,IAAI,CAAC,MAAM,EAAE,uBAAuB;QACpC,EAAE,EAAE,mBAAmB;QACvB,QAAQ,CACT,CAAC;QACF,MAAM,iBAAiB,GAAG,IAAI,wBAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAA,yBAAgB,EAC/B,aAAa,EACb,iBAAiB,CAAC,KAAK,EACvB,EAAE,CACH,CAAC;YACF,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC9B,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC1B,QAAQ,CAAC,KAAK,EAAE;aACjB,CAAC,CAAC;YACH,OAAO,IAAI,wBAAY,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,6BAAoB,EAAE,CAAC;QACnC,CAAC;gBAAS,CAAC;YACT,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,iBAAiB,CAC5B,OAA8B,EAC9B,QAA+B,EAC/B,YAAwB,0BAAS;QAEjC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9C,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAEzD,8CAA8C;QAC9C,0CAA0C;QAC1C,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAChD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,QAAQ,YAAY,wBAAY,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,SAAS;QACb,0CAA0C;QAC1C,OAAO,QAAQ,KAAK,QAAQ;YAC1B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;YAC/B,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAEvD,0BAA0B;QAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;QACJ,CAAC;QACD,MAAM,aAAa,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAErD,0DAA0D;QAC1D,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,0BAA0B,CAC/D,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EACtB,IAAI,EACJ,OAAO,CAAC,UAAU,EAClB,IAAI,CAAC,MAAM,EAAE,uBAAuB;QACpC,EAAE,EAAE,mBAAmB;QACvB,QAAQ,CACT,CAAC;QACF,MAAM,iBAAiB,GAAG,IAAI,wBAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAA,yBAAgB,EAC/B,aAAa,EACb,iBAAiB,CAAC,KAAK,EACvB,EAAE,CACH,CAAC;YACF,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC9B,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC1B,QAAQ,CAAC,KAAK,EAAE;aACjB,CAAC,CAAC;YACH,OAAO,IAAI,wBAAY,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,6BAAoB,EAAE,CAAC;QACnC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBACH,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;;AA5cH,gDA6cC"}
|