@digitaldefiance/node-express-suite 3.6.21 → 3.6.24
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 +8 -7
- package/src/__tests__/fixtures/{index.ts → index.d.ts} +1 -0
- package/src/__tests__/fixtures/index.d.ts.map +1 -0
- package/src/__tests__/fixtures/index.js +5 -0
- package/src/__tests__/fixtures/index.js.map +1 -0
- package/src/__tests__/fixtures/model-mocks.mock.d.ts +12 -0
- package/src/__tests__/fixtures/model-mocks.mock.d.ts.map +1 -0
- package/src/__tests__/fixtures/model-mocks.mock.js +102 -0
- package/src/__tests__/fixtures/model-mocks.mock.js.map +1 -0
- package/src/__tests__/helpers/application.mock.d.ts +8 -0
- package/src/__tests__/helpers/application.mock.d.ts.map +1 -0
- package/src/__tests__/helpers/application.mock.js +77 -0
- package/src/__tests__/helpers/application.mock.js.map +1 -0
- package/src/__tests__/helpers/{index.ts → index.d.ts} +1 -0
- package/src/__tests__/helpers/index.d.ts.map +1 -0
- package/src/__tests__/helpers/index.js +7 -0
- package/src/__tests__/helpers/index.js.map +1 -0
- package/src/__tests__/helpers/setup-test-env.d.ts +12 -0
- package/src/__tests__/helpers/setup-test-env.d.ts.map +1 -0
- package/src/__tests__/helpers/setup-test-env.js +121 -0
- package/src/__tests__/helpers/setup-test-env.js.map +1 -0
- package/src/__tests__/{index.ts → index.d.ts} +1 -0
- package/src/__tests__/index.d.ts.map +1 -0
- package/src/__tests__/index.js +6 -0
- package/src/__tests__/index.js.map +1 -0
- package/src/application-base.d.ts +122 -0
- package/src/application-base.d.ts.map +1 -0
- package/src/application-base.js +359 -0
- package/src/application-base.js.map +1 -0
- package/src/application-concrete.d.ts +12 -0
- package/src/application-concrete.d.ts.map +1 -0
- package/src/application-concrete.js +21 -0
- package/src/application-concrete.js.map +1 -0
- package/src/application.d.ts +28 -0
- package/src/application.d.ts.map +1 -0
- package/src/application.js +167 -0
- package/src/application.js.map +1 -0
- package/src/backup-code.d.ts +68 -0
- package/src/backup-code.d.ts.map +1 -0
- package/src/backup-code.js +238 -0
- package/src/backup-code.js.map +1 -0
- package/src/builders/application-builder.d.ts +34 -0
- package/src/builders/application-builder.d.ts.map +1 -0
- package/src/builders/application-builder.js +64 -0
- package/src/builders/application-builder.js.map +1 -0
- package/src/builders/{index.ts → index.d.ts} +1 -0
- package/src/builders/index.d.ts.map +1 -0
- package/src/builders/index.js +5 -0
- package/src/builders/index.js.map +1 -0
- package/src/constants.d.ts +16 -0
- package/src/constants.d.ts.map +1 -0
- package/src/constants.js +58 -0
- package/src/constants.js.map +1 -0
- package/src/container/{index.ts → index.d.ts} +1 -0
- package/src/container/index.d.ts.map +1 -0
- package/src/container/index.js +6 -0
- package/src/container/index.js.map +1 -0
- package/src/container/service-container.d.ts +11 -0
- package/src/container/service-container.d.ts.map +1 -0
- package/src/container/service-container.js +38 -0
- package/src/container/service-container.js.map +1 -0
- package/src/container/service-definitions.d.ts +11 -0
- package/src/container/service-definitions.d.ts.map +1 -0
- package/src/container/service-definitions.js +13 -0
- package/src/container/service-definitions.js.map +1 -0
- package/src/controllers/base.d.ts +66 -0
- package/src/controllers/base.d.ts.map +1 -0
- package/src/controllers/base.js +305 -0
- package/src/controllers/base.js.map +1 -0
- package/src/controllers/{index.ts → index.d.ts} +1 -0
- package/src/controllers/index.d.ts.map +1 -0
- package/src/controllers/index.js +6 -0
- package/src/controllers/index.js.map +1 -0
- package/src/controllers/user.d.ts +50 -0
- package/src/controllers/user.d.ts.map +1 -0
- package/src/controllers/user.js +918 -0
- package/src/controllers/user.js.map +1 -0
- package/src/database/{database-initializer.ts → database-initializer.d.ts} +3 -3
- package/src/database/database-initializer.d.ts.map +1 -0
- package/src/database/database-initializer.js +3 -0
- package/src/database/database-initializer.js.map +1 -0
- package/src/database/{index.ts → index.d.ts} +1 -0
- package/src/database/index.d.ts.map +1 -0
- package/src/database/index.js +5 -0
- package/src/database/index.js.map +1 -0
- package/src/decorators/base-controller.d.ts +10 -0
- package/src/decorators/base-controller.d.ts.map +1 -0
- package/src/decorators/base-controller.js +60 -0
- package/src/decorators/base-controller.js.map +1 -0
- package/src/decorators/controller.d.ts +38 -0
- package/src/decorators/controller.d.ts.map +1 -0
- package/src/decorators/controller.js +68 -0
- package/src/decorators/controller.js.map +1 -0
- package/src/decorators/{index.ts → index.d.ts} +1 -0
- package/src/decorators/index.d.ts.map +1 -0
- package/src/decorators/index.js +7 -0
- package/src/decorators/index.js.map +1 -0
- package/src/decorators/zod-validation.d.ts +5 -0
- package/src/decorators/zod-validation.d.ts.map +1 -0
- package/src/decorators/zod-validation.js +48 -0
- package/src/decorators/zod-validation.js.map +1 -0
- package/src/defaults.d.ts +7 -0
- package/src/defaults.d.ts.map +1 -0
- package/src/defaults.js +204 -0
- package/src/defaults.js.map +1 -0
- package/src/documents/base.d.ts +4 -0
- package/src/documents/base.d.ts.map +1 -0
- package/src/documents/base.js +3 -0
- package/src/documents/base.js.map +1 -0
- package/src/documents/email-token.d.ts +8 -0
- package/src/documents/email-token.d.ts.map +1 -0
- package/src/documents/email-token.js +3 -0
- package/src/documents/email-token.js.map +1 -0
- package/src/documents/{index.ts → index.d.ts} +1 -0
- package/src/documents/index.d.ts.map +1 -0
- package/src/documents/index.js +3 -0
- package/src/documents/index.js.map +1 -0
- package/src/documents/{mnemonic.ts → mnemonic.d.ts} +2 -4
- package/src/documents/mnemonic.d.ts.map +1 -0
- package/src/documents/mnemonic.js +3 -0
- package/src/documents/mnemonic.js.map +1 -0
- package/src/documents/{role.ts → role.d.ts} +2 -3
- package/src/documents/role.d.ts.map +1 -0
- package/src/documents/role.js +3 -0
- package/src/documents/role.js.map +1 -0
- package/src/documents/used-direct-login-token.d.ts +5 -0
- package/src/documents/used-direct-login-token.d.ts.map +1 -0
- package/src/documents/used-direct-login-token.js +3 -0
- package/src/documents/used-direct-login-token.js.map +1 -0
- package/src/documents/{user-role.ts → user-role.d.ts} +2 -4
- package/src/documents/user-role.d.ts.map +1 -0
- package/src/documents/user-role.js +3 -0
- package/src/documents/user-role.js.map +1 -0
- package/src/documents/{user.ts → user.d.ts} +2 -5
- package/src/documents/user.d.ts.map +1 -0
- package/src/documents/user.js +3 -0
- package/src/documents/user.js.map +1 -0
- package/src/enumerations/base-model-name.d.ts +38 -0
- package/src/enumerations/base-model-name.d.ts.map +1 -0
- package/src/enumerations/base-model-name.js +34 -0
- package/src/enumerations/base-model-name.js.map +1 -0
- package/src/enumerations/{index.ts → index.d.ts} +1 -0
- package/src/enumerations/index.d.ts.map +1 -0
- package/src/enumerations/index.js +8 -0
- package/src/enumerations/index.js.map +1 -0
- package/src/enumerations/length-encoding-type.d.ts +7 -0
- package/src/enumerations/length-encoding-type.d.ts.map +1 -0
- package/src/enumerations/length-encoding-type.js +11 -0
- package/src/enumerations/length-encoding-type.js.map +1 -0
- package/src/enumerations/schema-collection.d.ts +34 -0
- package/src/enumerations/schema-collection.d.ts.map +1 -0
- package/src/enumerations/schema-collection.js +38 -0
- package/src/enumerations/schema-collection.js.map +1 -0
- package/src/enumerations/symmetric-error-type.d.ts +5 -0
- package/src/enumerations/symmetric-error-type.d.ts.map +1 -0
- package/src/enumerations/symmetric-error-type.js +9 -0
- package/src/enumerations/symmetric-error-type.js.map +1 -0
- package/src/environment.d.ts +190 -0
- package/src/environment.d.ts.map +1 -0
- package/src/environment.js +646 -0
- package/src/environment.js.map +1 -0
- package/src/errors/express-validation.d.ts +9 -0
- package/src/errors/express-validation.d.ts.map +1 -0
- package/src/errors/express-validation.js +18 -0
- package/src/errors/express-validation.js.map +1 -0
- package/src/errors/{index.ts → index.d.ts} +1 -0
- package/src/errors/index.d.ts.map +1 -0
- package/src/errors/index.js +16 -0
- package/src/errors/index.js.map +1 -0
- package/src/errors/invalid-backup-code-version.d.ts +6 -0
- package/src/errors/invalid-backup-code-version.d.ts.map +1 -0
- package/src/errors/invalid-backup-code-version.js +16 -0
- package/src/errors/invalid-backup-code-version.js.map +1 -0
- package/src/errors/invalid-jwt-token.d.ts +5 -0
- package/src/errors/invalid-jwt-token.d.ts.map +1 -0
- package/src/errors/invalid-jwt-token.js +12 -0
- package/src/errors/invalid-jwt-token.js.map +1 -0
- package/src/errors/invalid-model.d.ts +6 -0
- package/src/errors/invalid-model.d.ts.map +1 -0
- package/src/errors/invalid-model.js +14 -0
- package/src/errors/invalid-model.js.map +1 -0
- package/src/errors/invalid-new-password.d.ts +5 -0
- package/src/errors/invalid-new-password.d.ts.map +1 -0
- package/src/errors/invalid-new-password.js +14 -0
- package/src/errors/invalid-new-password.js.map +1 -0
- package/src/errors/invalid-password.d.ts +5 -0
- package/src/errors/invalid-password.d.ts.map +1 -0
- package/src/errors/invalid-password.js +14 -0
- package/src/errors/invalid-password.js.map +1 -0
- package/src/errors/missing-validated-data.d.ts +7 -0
- package/src/errors/missing-validated-data.d.ts.map +1 -0
- package/src/errors/missing-validated-data.js +36 -0
- package/src/errors/missing-validated-data.js.map +1 -0
- package/src/errors/mnemonic-or-password-required.d.ts +5 -0
- package/src/errors/mnemonic-or-password-required.d.ts.map +1 -0
- package/src/errors/mnemonic-or-password-required.js +14 -0
- package/src/errors/mnemonic-or-password-required.js.map +1 -0
- package/src/errors/model-not-registered.d.ts +6 -0
- package/src/errors/model-not-registered.d.ts.map +1 -0
- package/src/errors/model-not-registered.js +14 -0
- package/src/errors/model-not-registered.js.map +1 -0
- package/src/errors/mongoose-validation.d.ts +12 -0
- package/src/errors/mongoose-validation.d.ts.map +1 -0
- package/src/errors/mongoose-validation.js +17 -0
- package/src/errors/mongoose-validation.js.map +1 -0
- package/src/errors/symmetric.d.ts +8 -0
- package/src/errors/symmetric.d.ts.map +1 -0
- package/src/errors/symmetric.js +22 -0
- package/src/errors/symmetric.js.map +1 -0
- package/src/errors/token-expired.d.ts +5 -0
- package/src/errors/token-expired.d.ts.map +1 -0
- package/src/errors/token-expired.js +12 -0
- package/src/errors/token-expired.js.map +1 -0
- package/src/get-language.d.ts +2 -0
- package/src/get-language.d.ts.map +1 -0
- package/src/get-language.js +30 -0
- package/src/get-language.js.map +1 -0
- package/src/get-timezone.d.ts +2 -0
- package/src/get-timezone.d.ts.map +1 -0
- package/src/get-timezone.js +39 -0
- package/src/get-timezone.js.map +1 -0
- package/src/{index.ts → index.d.ts} +1 -2
- package/src/index.d.ts.map +1 -0
- package/src/index.js +42 -0
- package/src/index.js.map +1 -0
- package/src/interfaces/{api-error-response.ts → api-error-response.d.ts} +2 -2
- package/src/interfaces/api-error-response.d.ts.map +1 -0
- package/src/interfaces/api-error-response.js +3 -0
- package/src/interfaces/api-error-response.js.map +1 -0
- package/src/interfaces/api-express-validation-error-response.d.ts +7 -0
- package/src/interfaces/api-express-validation-error-response.d.ts.map +1 -0
- package/src/interfaces/api-express-validation-error-response.js +3 -0
- package/src/interfaces/api-express-validation-error-response.js.map +1 -0
- package/src/interfaces/api-message-response.d.ts +4 -0
- package/src/interfaces/api-message-response.d.ts.map +1 -0
- package/src/interfaces/api-message-response.js +3 -0
- package/src/interfaces/api-message-response.js.map +1 -0
- package/src/interfaces/{api-mongo-validation-error-response.ts → api-mongo-validation-error-response.d.ts} +2 -2
- package/src/interfaces/api-mongo-validation-error-response.d.ts.map +1 -0
- package/src/interfaces/api-mongo-validation-error-response.js +3 -0
- package/src/interfaces/api-mongo-validation-error-response.js.map +1 -0
- package/src/interfaces/api-responses/{backup-codes-response.ts → backup-codes-response.d.ts} +2 -2
- package/src/interfaces/api-responses/backup-codes-response.d.ts.map +1 -0
- package/src/interfaces/api-responses/backup-codes-response.js +3 -0
- package/src/interfaces/api-responses/backup-codes-response.js.map +1 -0
- package/src/interfaces/api-responses/{challenge-response.ts → challenge-response.d.ts} +3 -3
- package/src/interfaces/api-responses/challenge-response.d.ts.map +1 -0
- package/src/interfaces/api-responses/challenge-response.js +3 -0
- package/src/interfaces/api-responses/challenge-response.js.map +1 -0
- package/src/interfaces/api-responses/{code-count-response.ts → code-count-response.d.ts} +2 -2
- package/src/interfaces/api-responses/code-count-response.d.ts.map +1 -0
- package/src/interfaces/api-responses/code-count-response.js +3 -0
- package/src/interfaces/api-responses/code-count-response.js.map +1 -0
- package/src/interfaces/api-responses/{index.ts → index.d.ts} +1 -0
- package/src/interfaces/api-responses/index.d.ts.map +1 -0
- package/src/interfaces/api-responses/index.js +12 -0
- package/src/interfaces/api-responses/index.js.map +1 -0
- package/src/interfaces/api-responses/{login-response.ts → login-response.d.ts} +4 -4
- package/src/interfaces/api-responses/login-response.d.ts.map +1 -0
- package/src/interfaces/api-responses/login-response.js +3 -0
- package/src/interfaces/api-responses/login-response.js.map +1 -0
- package/src/interfaces/api-responses/{mnemonic-response.ts → mnemonic-response.d.ts} +2 -2
- package/src/interfaces/api-responses/mnemonic-response.d.ts.map +1 -0
- package/src/interfaces/api-responses/mnemonic-response.js +3 -0
- package/src/interfaces/api-responses/mnemonic-response.js.map +1 -0
- package/src/interfaces/api-responses/{registration-response.ts → registration-response.d.ts} +3 -3
- package/src/interfaces/api-responses/registration-response.d.ts.map +1 -0
- package/src/interfaces/api-responses/registration-response.js +3 -0
- package/src/interfaces/api-responses/registration-response.js.map +1 -0
- package/src/interfaces/api-responses/{request-user-response.ts → request-user-response.d.ts} +2 -2
- package/src/interfaces/api-responses/request-user-response.d.ts.map +1 -0
- package/src/interfaces/api-responses/request-user-response.js +3 -0
- package/src/interfaces/api-responses/request-user-response.js.map +1 -0
- package/src/interfaces/api-responses/user-settings-response.d.ts +12 -0
- package/src/interfaces/api-responses/user-settings-response.d.ts.map +1 -0
- package/src/interfaces/api-responses/user-settings-response.js +3 -0
- package/src/interfaces/api-responses/user-settings-response.js.map +1 -0
- package/src/interfaces/application.d.ts +16 -0
- package/src/interfaces/application.d.ts.map +1 -0
- package/src/interfaces/application.js +3 -0
- package/src/interfaces/application.js.map +1 -0
- package/src/interfaces/backend-objects/email-token.d.ts +4 -0
- package/src/interfaces/backend-objects/email-token.d.ts.map +1 -0
- package/src/interfaces/backend-objects/email-token.js +3 -0
- package/src/interfaces/backend-objects/email-token.js.map +1 -0
- package/src/interfaces/backend-objects/{index.ts → index.d.ts} +1 -0
- package/src/interfaces/backend-objects/index.d.ts.map +1 -0
- package/src/interfaces/backend-objects/index.js +8 -0
- package/src/interfaces/backend-objects/index.js.map +1 -0
- package/src/interfaces/backend-objects/request-user.d.ts +5 -0
- package/src/interfaces/backend-objects/request-user.d.ts.map +1 -0
- package/src/interfaces/backend-objects/request-user.js +3 -0
- package/src/interfaces/backend-objects/request-user.js.map +1 -0
- package/src/interfaces/backend-objects/role.d.ts +4 -0
- package/src/interfaces/backend-objects/role.d.ts.map +1 -0
- package/src/interfaces/backend-objects/role.js +3 -0
- package/src/interfaces/backend-objects/role.js.map +1 -0
- package/src/interfaces/backend-objects/user.d.ts +4 -0
- package/src/interfaces/backend-objects/user.d.ts.map +1 -0
- package/src/interfaces/backend-objects/user.js +3 -0
- package/src/interfaces/backend-objects/user.js.map +1 -0
- package/src/interfaces/checksum-config.d.ts +5 -0
- package/src/interfaces/checksum-config.d.ts.map +1 -0
- package/src/interfaces/checksum-config.js +3 -0
- package/src/interfaces/checksum-config.js.map +1 -0
- package/src/interfaces/checksum-consts.d.ts +11 -0
- package/src/interfaces/checksum-consts.d.ts.map +1 -0
- package/src/interfaces/checksum-consts.js +3 -0
- package/src/interfaces/checksum-consts.js.map +1 -0
- package/src/interfaces/constants.d.ts +98 -0
- package/src/interfaces/constants.d.ts.map +1 -0
- package/src/interfaces/constants.js +3 -0
- package/src/interfaces/constants.js.map +1 -0
- package/src/interfaces/controller-config.d.ts +21 -0
- package/src/interfaces/controller-config.d.ts.map +1 -0
- package/src/interfaces/controller-config.js +3 -0
- package/src/interfaces/controller-config.js.map +1 -0
- package/src/interfaces/create-user-basics.d.ts +18 -0
- package/src/interfaces/create-user-basics.d.ts.map +1 -0
- package/src/interfaces/create-user-basics.js +3 -0
- package/src/interfaces/create-user-basics.js.map +1 -0
- package/src/interfaces/csp-config.d.ts +7 -0
- package/src/interfaces/csp-config.d.ts.map +1 -0
- package/src/interfaces/csp-config.js +13 -0
- package/src/interfaces/csp-config.js.map +1 -0
- package/src/interfaces/csp-definition.d.ts +13 -0
- package/src/interfaces/csp-definition.d.ts.map +1 -0
- package/src/interfaces/csp-definition.js +22 -0
- package/src/interfaces/csp-definition.js.map +1 -0
- package/src/interfaces/{db-init-result.ts → db-init-result.d.ts} +2 -2
- package/src/interfaces/db-init-result.d.ts.map +1 -0
- package/src/interfaces/db-init-result.js +3 -0
- package/src/interfaces/db-init-result.js.map +1 -0
- package/src/interfaces/deep-partial.d.ts +4 -0
- package/src/interfaces/deep-partial.d.ts.map +1 -0
- package/src/interfaces/deep-partial.js +3 -0
- package/src/interfaces/deep-partial.js.map +1 -0
- package/src/interfaces/{discriminator-collections.ts → discriminator-collections.d.ts} +3 -3
- package/src/interfaces/discriminator-collections.d.ts.map +1 -0
- package/src/interfaces/discriminator-collections.js +3 -0
- package/src/interfaces/discriminator-collections.js.map +1 -0
- package/src/interfaces/email-service.d.ts +4 -0
- package/src/interfaces/email-service.d.ts.map +1 -0
- package/src/interfaces/email-service.js +3 -0
- package/src/interfaces/email-service.js.map +1 -0
- package/src/interfaces/environment-mongo.d.ts +76 -0
- package/src/interfaces/environment-mongo.d.ts.map +1 -0
- package/src/interfaces/environment-mongo.js +3 -0
- package/src/interfaces/environment-mongo.js.map +1 -0
- package/src/interfaces/environment.d.ts +184 -0
- package/src/interfaces/environment.d.ts.map +1 -0
- package/src/interfaces/environment.js +3 -0
- package/src/interfaces/environment.js.map +1 -0
- package/src/interfaces/failable-result.d.ts +7 -0
- package/src/interfaces/failable-result.d.ts.map +1 -0
- package/src/interfaces/failable-result.js +3 -0
- package/src/interfaces/failable-result.js.map +1 -0
- package/src/interfaces/fec-consts.d.ts +5 -0
- package/src/interfaces/fec-consts.d.ts.map +1 -0
- package/src/interfaces/fec-consts.js +3 -0
- package/src/interfaces/fec-consts.js.map +1 -0
- package/src/interfaces/flexible-csp.d.ts +8 -0
- package/src/interfaces/flexible-csp.d.ts.map +1 -0
- package/src/interfaces/flexible-csp.js +14 -0
- package/src/interfaces/flexible-csp.js.map +1 -0
- package/src/interfaces/handleable-error-options.d.ts +7 -0
- package/src/interfaces/handleable-error-options.d.ts.map +1 -0
- package/src/interfaces/handleable-error-options.js +3 -0
- package/src/interfaces/handleable-error-options.js.map +1 -0
- package/src/interfaces/{index.ts → index.d.ts} +1 -0
- package/src/interfaces/index.d.ts.map +1 -0
- package/src/interfaces/index.js +38 -0
- package/src/interfaces/index.js.map +1 -0
- package/src/interfaces/jwt-consts.d.ts +11 -0
- package/src/interfaces/jwt-consts.d.ts.map +1 -0
- package/src/interfaces/jwt-consts.js +3 -0
- package/src/interfaces/jwt-consts.js.map +1 -0
- package/src/interfaces/jwt-sign-response.d.ts +11 -0
- package/src/interfaces/jwt-sign-response.d.ts.map +1 -0
- package/src/interfaces/jwt-sign-response.js +3 -0
- package/src/interfaces/jwt-sign-response.js.map +1 -0
- package/src/interfaces/models/{email-token.ts → email-token.d.ts} +1 -1
- package/src/interfaces/models/email-token.d.ts.map +1 -0
- package/src/interfaces/models/email-token.js +3 -0
- package/src/interfaces/models/email-token.js.map +1 -0
- package/src/interfaces/models/{index.ts → index.d.ts} +1 -0
- package/src/interfaces/models/index.d.ts.map +1 -0
- package/src/interfaces/models/index.js +11 -0
- package/src/interfaces/models/index.js.map +1 -0
- package/src/interfaces/models/{mnemonic.ts → mnemonic.d.ts} +1 -1
- package/src/interfaces/models/mnemonic.d.ts.map +1 -0
- package/src/interfaces/models/mnemonic.js +3 -0
- package/src/interfaces/models/mnemonic.js.map +1 -0
- package/src/interfaces/models/{role.ts → role.d.ts} +1 -1
- package/src/interfaces/models/role.d.ts.map +1 -0
- package/src/interfaces/models/role.js +3 -0
- package/src/interfaces/models/role.js.map +1 -0
- package/src/interfaces/models/{token-role.ts → token-role.d.ts} +1 -1
- package/src/interfaces/models/token-role.d.ts.map +1 -0
- package/src/interfaces/models/token-role.js +3 -0
- package/src/interfaces/models/token-role.js.map +1 -0
- package/src/interfaces/models/{used-direct-login-token.ts → used-direct-login-token.d.ts} +2 -3
- package/src/interfaces/models/used-direct-login-token.d.ts.map +1 -0
- package/src/interfaces/models/used-direct-login-token.js +3 -0
- package/src/interfaces/models/used-direct-login-token.js.map +1 -0
- package/src/interfaces/models/{user-role.ts → user-role.d.ts} +1 -1
- package/src/interfaces/models/user-role.d.ts.map +1 -0
- package/src/interfaces/models/user-role.js +3 -0
- package/src/interfaces/models/user-role.js.map +1 -0
- package/src/interfaces/models/{user.ts → user.d.ts} +3 -11
- package/src/interfaces/models/user.d.ts.map +1 -0
- package/src/interfaces/models/user.js +3 -0
- package/src/interfaces/models/user.js.map +1 -0
- package/src/interfaces/mongo-errors.d.ts +5 -0
- package/src/interfaces/mongo-errors.d.ts.map +1 -0
- package/src/interfaces/mongo-errors.js +3 -0
- package/src/interfaces/mongo-errors.js.map +1 -0
- package/src/interfaces/request-user.d.ts +58 -0
- package/src/interfaces/request-user.d.ts.map +1 -0
- package/src/interfaces/request-user.js +3 -0
- package/src/interfaces/request-user.js.map +1 -0
- package/src/interfaces/required-string-keys.d.ts +22 -0
- package/src/interfaces/required-string-keys.d.ts.map +1 -0
- package/src/interfaces/required-string-keys.js +3 -0
- package/src/interfaces/required-string-keys.js.map +1 -0
- package/src/interfaces/schema.d.ts +29 -0
- package/src/interfaces/schema.d.ts.map +1 -0
- package/src/interfaces/schema.js +3 -0
- package/src/interfaces/schema.js.map +1 -0
- package/src/interfaces/server-init-result.d.ts +36 -0
- package/src/interfaces/server-init-result.d.ts.map +1 -0
- package/src/interfaces/server-init-result.js +3 -0
- package/src/interfaces/server-init-result.js.map +1 -0
- package/src/interfaces/status-code-response.d.ts +7 -0
- package/src/interfaces/status-code-response.d.ts.map +1 -0
- package/src/interfaces/status-code-response.js +3 -0
- package/src/interfaces/status-code-response.js.map +1 -0
- package/src/interfaces/symmetric-encryption-results.d.ts +3 -3
- package/src/interfaces/symmetric-encryption-results.d.ts.map +1 -1
- package/src/interfaces/symmetric-encryption-results.js.map +1 -1
- package/src/interfaces/{test-environment.ts → test-environment.d.ts} +6 -6
- package/src/interfaces/test-environment.d.ts.map +1 -0
- package/src/interfaces/test-environment.js +3 -0
- package/src/interfaces/test-environment.js.map +1 -0
- package/src/interfaces/{token-response.ts → token-response.d.ts} +2 -2
- package/src/interfaces/token-response.d.ts.map +1 -0
- package/src/interfaces/token-response.js +3 -0
- package/src/interfaces/token-response.js.map +1 -0
- package/src/middlewares/authenticate-crypto.d.ts +10 -0
- package/src/middlewares/authenticate-crypto.d.ts.map +1 -0
- package/src/middlewares/authenticate-crypto.js +126 -0
- package/src/middlewares/authenticate-crypto.js.map +1 -0
- package/src/middlewares/authenticate-token.d.ts +21 -0
- package/src/middlewares/authenticate-token.d.ts.map +1 -0
- package/src/middlewares/authenticate-token.js +104 -0
- package/src/middlewares/authenticate-token.js.map +1 -0
- package/src/middlewares/cleanup-crypto.d.ts +7 -0
- package/src/middlewares/cleanup-crypto.d.ts.map +1 -0
- package/src/middlewares/cleanup-crypto.js +32 -0
- package/src/middlewares/cleanup-crypto.js.map +1 -0
- package/src/middlewares/{index.ts → index.d.ts} +1 -0
- package/src/middlewares/index.d.ts.map +1 -0
- package/src/middlewares/index.js +8 -0
- package/src/middlewares/index.js.map +1 -0
- package/src/middlewares/set-global-context-language.d.ts +3 -0
- package/src/middlewares/set-global-context-language.d.ts.map +1 -0
- package/src/middlewares/set-global-context-language.js +14 -0
- package/src/middlewares/set-global-context-language.js.map +1 -0
- package/src/middlewares.d.ts +8 -0
- package/src/middlewares.d.ts.map +1 -0
- package/src/middlewares.js +91 -0
- package/src/middlewares.js.map +1 -0
- package/src/model-registry.d.ts +23 -0
- package/src/model-registry.d.ts.map +1 -0
- package/src/model-registry.js +47 -0
- package/src/model-registry.js.map +1 -0
- package/src/models/email-token.d.ts +35 -11
- package/src/models/email-token.d.ts.map +1 -0
- package/src/models/email-token.js +11 -0
- package/src/models/email-token.js.map +1 -0
- package/src/models/{index.ts → index.d.ts} +1 -0
- package/src/models/index.d.ts.map +1 -0
- package/src/models/index.js +10 -0
- package/src/models/index.js.map +1 -0
- package/src/models/mnemonic.d.ts +35 -11
- package/src/models/mnemonic.d.ts.map +1 -0
- package/src/models/mnemonic.js +11 -0
- package/src/models/mnemonic.js.map +1 -0
- package/src/models/role.d.ts +35 -11
- package/src/models/role.d.ts.map +1 -0
- package/src/models/role.js +11 -0
- package/src/models/role.js.map +1 -0
- package/src/models/used-direct-login-token.d.ts +35 -11
- package/src/models/used-direct-login-token.d.ts.map +1 -0
- package/src/models/used-direct-login-token.js +11 -0
- package/src/models/used-direct-login-token.js.map +1 -0
- package/src/models/user-role.d.ts +3 -10
- package/src/models/user-role.d.ts.map +1 -0
- package/src/models/user-role.js +10 -0
- package/src/models/user-role.js.map +1 -0
- package/src/models/user.d.ts +3 -16
- package/src/models/user.d.ts.map +1 -0
- package/src/models/user.js +11 -0
- package/src/models/user.js.map +1 -0
- package/src/pipeline/{index.ts → index.d.ts} +1 -0
- package/src/pipeline/index.d.ts.map +1 -0
- package/src/pipeline/index.js +5 -0
- package/src/pipeline/index.js.map +1 -0
- package/src/pipeline/pipeline-builder.d.ts +8 -0
- package/src/pipeline/pipeline-builder.d.ts.map +1 -0
- package/src/pipeline/pipeline-builder.js +18 -0
- package/src/pipeline/pipeline-builder.js.map +1 -0
- package/src/plugins/{index.ts → index.d.ts} +1 -0
- package/src/plugins/index.d.ts.map +1 -0
- package/src/plugins/index.js +6 -0
- package/src/plugins/index.js.map +1 -0
- package/src/plugins/plugin-interface.d.ts +8 -0
- package/src/plugins/plugin-interface.d.ts.map +1 -0
- package/src/plugins/plugin-interface.js +3 -0
- package/src/plugins/plugin-interface.js.map +1 -0
- package/src/plugins/plugin-manager.d.ts +12 -0
- package/src/plugins/plugin-manager.d.ts.map +1 -0
- package/src/plugins/plugin-manager.js +37 -0
- package/src/plugins/plugin-manager.js.map +1 -0
- package/src/registry/email-service-registry.d.ts +27 -0
- package/src/registry/email-service-registry.d.ts.map +1 -0
- package/src/registry/email-service-registry.js +42 -0
- package/src/registry/email-service-registry.js.map +1 -0
- package/src/registry/{index.ts → index.d.ts} +1 -0
- package/src/registry/index.d.ts.map +1 -0
- package/src/registry/index.js +6 -0
- package/src/registry/index.js.map +1 -0
- package/src/responses/{index.ts → index.d.ts} +1 -0
- package/src/responses/index.d.ts.map +1 -0
- package/src/responses/index.js +5 -0
- package/src/responses/index.js.map +1 -0
- package/src/responses/response-builder.d.ts +24 -0
- package/src/responses/response-builder.d.ts.map +1 -0
- package/src/responses/response-builder.js +63 -0
- package/src/responses/response-builder.js.map +1 -0
- package/src/routers/api.d.ts +28 -0
- package/src/routers/api.d.ts.map +1 -0
- package/src/routers/api.js +80 -0
- package/src/routers/api.js.map +1 -0
- package/src/routers/app.d.ts +32 -0
- package/src/routers/app.d.ts.map +1 -0
- package/src/routers/app.js +228 -0
- package/src/routers/app.js.map +1 -0
- package/src/routers/base.d.ts +8 -0
- package/src/routers/base.d.ts.map +1 -0
- package/src/routers/base.js +14 -0
- package/src/routers/base.js.map +1 -0
- package/src/routers/{index.ts → index.d.ts} +1 -0
- package/src/routers/index.d.ts.map +1 -0
- package/src/routers/index.js +7 -0
- package/src/routers/index.js.map +1 -0
- package/src/routers/router-config.d.ts +18 -0
- package/src/routers/router-config.d.ts.map +1 -0
- package/src/routers/router-config.js +8 -0
- package/src/routers/router-config.js.map +1 -0
- package/src/routing/index.d.ts +2 -0
- package/src/routing/index.d.ts.map +1 -0
- package/src/routing/index.js +5 -0
- package/src/routing/index.js.map +1 -0
- package/src/routing/route-builder.d.ts +36 -0
- package/src/routing/route-builder.d.ts.map +1 -0
- package/src/routing/route-builder.js +86 -0
- package/src/routing/route-builder.js.map +1 -0
- package/src/schemas/email-token.d.ts +47 -13
- package/src/schemas/email-token.d.ts.map +1 -0
- package/src/schemas/email-token.js +55 -0
- package/src/schemas/email-token.js.map +1 -0
- package/src/schemas/{index.ts → index.d.ts} +1 -0
- package/src/schemas/index.d.ts.map +1 -0
- package/src/schemas/index.js +11 -0
- package/src/schemas/index.js.map +1 -0
- package/src/schemas/mnemonic.d.ts +26 -10
- package/src/schemas/mnemonic.d.ts.map +1 -0
- package/src/schemas/mnemonic.js +31 -0
- package/src/schemas/mnemonic.js.map +1 -0
- package/src/schemas/role.d.ts +40 -13
- package/src/schemas/role.d.ts.map +1 -0
- package/src/schemas/role.js +89 -0
- package/src/schemas/role.js.map +1 -0
- package/src/schemas/schema.d.ts +42 -0
- package/src/schemas/schema.d.ts.map +1 -0
- package/src/schemas/schema.js +70 -0
- package/src/schemas/schema.js.map +1 -0
- package/src/schemas/used-direct-login-token.d.ts +35 -12
- package/src/schemas/used-direct-login-token.d.ts.map +1 -0
- package/src/schemas/used-direct-login-token.js +24 -0
- package/src/schemas/used-direct-login-token.js.map +1 -0
- package/src/schemas/user-role.d.ts +37 -12
- package/src/schemas/user-role.d.ts.map +1 -0
- package/src/schemas/user-role.js +55 -0
- package/src/schemas/user-role.js.map +1 -0
- package/src/schemas/user.d.ts +23 -18
- package/src/schemas/user.d.ts.map +1 -0
- package/src/schemas/user.js +195 -0
- package/src/schemas/user.js.map +1 -0
- package/src/services/backup-code.d.ts +76 -0
- package/src/services/backup-code.d.ts.map +1 -0
- package/src/services/backup-code.js +185 -0
- package/src/services/backup-code.js.map +1 -0
- package/src/services/base.d.ts +10 -0
- package/src/services/base.d.ts.map +1 -0
- package/src/services/base.js +15 -0
- package/src/services/base.js.map +1 -0
- package/src/services/checksum.d.ts +69 -0
- package/src/services/checksum.d.ts.map +1 -0
- package/src/services/checksum.js +145 -0
- package/src/services/checksum.js.map +1 -0
- package/src/services/crc.d.ts +87 -0
- package/src/services/crc.d.ts.map +1 -0
- package/src/services/crc.js +198 -0
- package/src/services/crc.js.map +1 -0
- package/src/services/database-initialization.d.ts +111 -0
- package/src/services/database-initialization.d.ts.map +1 -0
- package/src/services/database-initialization.js +879 -0
- package/src/services/database-initialization.js.map +1 -0
- package/src/services/{db-init-cache.ts → db-init-cache.d.ts} +5 -11
- package/src/services/db-init-cache.d.ts.map +1 -0
- package/src/services/db-init-cache.js +3 -0
- package/src/services/db-init-cache.js.map +1 -0
- package/src/services/direct-login-token.d.ts +6 -0
- package/src/services/direct-login-token.d.ts.map +1 -0
- package/src/services/direct-login-token.js +41 -0
- package/src/services/direct-login-token.js.map +1 -0
- package/src/services/dummy-email-service.d.ts +10 -0
- package/src/services/dummy-email-service.d.ts.map +1 -0
- package/src/services/dummy-email-service.js +16 -0
- package/src/services/dummy-email-service.js.map +1 -0
- package/src/services/fec-usage-example.d.ts +38 -0
- package/src/services/fec-usage-example.d.ts.map +1 -0
- package/src/services/fec-usage-example.js +75 -0
- package/src/services/fec-usage-example.js.map +1 -0
- package/src/services/fec.d.ts +46 -0
- package/src/services/fec.d.ts.map +1 -0
- package/src/services/fec.js +214 -0
- package/src/services/fec.js.map +1 -0
- package/src/services/{index.ts → index.d.ts} +1 -0
- package/src/services/index.d.ts.map +1 -0
- package/src/services/index.js +23 -0
- package/src/services/index.js.map +1 -0
- package/src/services/jwt.d.ts +30 -0
- package/src/services/jwt.d.ts.map +1 -0
- package/src/services/jwt.js +90 -0
- package/src/services/jwt.js.map +1 -0
- package/src/services/key-wrapping.d.ts +61 -0
- package/src/services/key-wrapping.d.ts.map +1 -0
- package/src/services/key-wrapping.js +307 -0
- package/src/services/key-wrapping.js.map +1 -0
- package/src/services/mnemonic.d.ts +61 -0
- package/src/services/mnemonic.d.ts.map +1 -0
- package/src/services/mnemonic.js +114 -0
- package/src/services/mnemonic.js.map +1 -0
- package/src/services/request-user.d.ts +23 -0
- package/src/services/request-user.d.ts.map +1 -0
- package/src/services/request-user.js +66 -0
- package/src/services/request-user.js.map +1 -0
- package/src/services/role.d.ts +86 -0
- package/src/services/role.d.ts.map +1 -0
- package/src/services/role.js +285 -0
- package/src/services/role.js.map +1 -0
- package/src/services/symmetric.d.ts +42 -0
- package/src/services/symmetric.d.ts.map +1 -0
- package/src/services/symmetric.js +101 -0
- package/src/services/symmetric.js.map +1 -0
- package/src/services/system-user.d.ts +17 -0
- package/src/services/system-user.d.ts.map +1 -0
- package/src/services/system-user.js +46 -0
- package/src/services/system-user.js.map +1 -0
- package/src/services/user.d.ts +349 -0
- package/src/services/user.d.ts.map +1 -0
- package/src/services/user.js +1442 -0
- package/src/services/user.js.map +1 -0
- package/src/services/xor.d.ts +24 -0
- package/src/services/xor.d.ts.map +1 -0
- package/src/services/xor.js +37 -0
- package/src/services/xor.js.map +1 -0
- package/src/testing.d.ts +3 -0
- package/src/testing.d.ts.map +1 -0
- package/src/testing.js +7 -0
- package/src/testing.js.map +1 -0
- package/src/transactions/{index.ts → index.d.ts} +1 -0
- package/src/transactions/index.d.ts.map +1 -0
- package/src/transactions/index.js +5 -0
- package/src/transactions/index.js.map +1 -0
- package/src/transactions/transaction-manager.d.ts +12 -0
- package/src/transactions/transaction-manager.d.ts.map +1 -0
- package/src/transactions/transaction-manager.js +30 -0
- package/src/transactions/transaction-manager.js.map +1 -0
- package/src/types/{app-config.ts → app-config.d.ts} +9 -10
- package/src/types/app-config.d.ts.map +1 -0
- package/src/types/app-config.js +3 -0
- package/src/types/app-config.js.map +1 -0
- package/src/types/{controller-config.ts → controller-config.d.ts} +7 -8
- package/src/types/controller-config.d.ts.map +1 -0
- package/src/types/controller-config.js +3 -0
- package/src/types/controller-config.js.map +1 -0
- package/src/types/{environment-variables.ts → environment-variables.d.ts} +5 -26
- package/src/types/environment-variables.d.ts.map +1 -0
- package/src/types/environment-variables.js +39 -0
- package/src/types/environment-variables.js.map +1 -0
- package/src/types/id-converters.d.ts +28 -0
- package/src/types/id-converters.d.ts.map +1 -0
- package/src/types/id-converters.js +45 -0
- package/src/types/id-converters.js.map +1 -0
- package/src/types/{index.ts → index.d.ts} +1 -0
- package/src/types/index.d.ts.map +1 -0
- package/src/types/index.js +6 -0
- package/src/types/index.js.map +1 -0
- package/src/types/{mongoose-helpers.ts → mongoose-helpers.d.ts} +2 -2
- package/src/types/mongoose-helpers.d.ts.map +1 -0
- package/src/types/mongoose-helpers.js +6 -0
- package/src/types/mongoose-helpers.js.map +1 -0
- package/src/types.d.ts +67 -34
- package/src/types.d.ts.map +1 -0
- package/src/types.js +14 -0
- package/src/types.js.map +1 -0
- package/src/utils.d.ts +210 -0
- package/src/utils.d.ts.map +1 -0
- package/src/utils.js +818 -0
- package/src/utils.js.map +1 -0
- package/src/validation/{index.ts → index.d.ts} +1 -0
- package/src/validation/index.d.ts.map +1 -0
- package/src/validation/index.js +5 -0
- package/src/validation/index.js.map +1 -0
- package/src/validation/validation-builder.d.ts +32 -0
- package/src/validation/validation-builder.d.ts.map +1 -0
- package/src/validation/validation-builder.js +81 -0
- package/src/validation/validation-builder.js.map +1 -0
- package/LICENSE +0 -21
- package/src/__tests__/fixtures/model-mocks.mock.ts +0 -164
- package/src/__tests__/helpers/application.mock.ts +0 -89
- package/src/__tests__/helpers/setup-test-env.ts +0 -190
- package/src/application-base.ts +0 -536
- package/src/application-concrete.ts +0 -42
- package/src/application.ts +0 -321
- package/src/backup-code.ts +0 -348
- package/src/builders/application-builder.ts +0 -131
- package/src/constants.ts +0 -83
- package/src/container/service-container.ts +0 -50
- package/src/container/service-definitions.ts +0 -11
- package/src/controllers/base.ts +0 -499
- package/src/controllers/user.ts +0 -1711
- package/src/decorators/base-controller.ts +0 -77
- package/src/decorators/controller.ts +0 -146
- package/src/decorators/zod-validation.ts +0 -58
- package/src/defaults.ts +0 -249
- package/src/documents/base.ts +0 -10
- package/src/documents/email-token.ts +0 -13
- package/src/documents/used-direct-login-token.ts +0 -7
- package/src/enumerations/base-model-name.ts +0 -41
- package/src/enumerations/length-encoding-type.ts +0 -6
- package/src/enumerations/schema-collection.ts +0 -33
- package/src/enumerations/symmetric-error-type.ts +0 -4
- package/src/environment.ts +0 -836
- package/src/errors/express-validation.ts +0 -21
- package/src/errors/invalid-backup-code-version.ts +0 -15
- package/src/errors/invalid-jwt-token.ts +0 -11
- package/src/errors/invalid-model.ts +0 -11
- package/src/errors/invalid-new-password.ts +0 -18
- package/src/errors/invalid-password.ts +0 -13
- package/src/errors/missing-validated-data.ts +0 -36
- package/src/errors/mnemonic-or-password-required.ts +0 -13
- package/src/errors/model-not-registered.ts +0 -11
- package/src/errors/mongoose-validation.ts +0 -38
- package/src/errors/symmetric.ts +0 -37
- package/src/errors/token-expired.ts +0 -11
- package/src/get-language.ts +0 -53
- package/src/get-timezone.ts +0 -61
- package/src/interfaces/api-express-validation-error-response.ts +0 -8
- package/src/interfaces/api-message-response.ts +0 -3
- package/src/interfaces/api-responses/user-settings-response.ts +0 -12
- package/src/interfaces/application.ts +0 -16
- package/src/interfaces/backend-objects/email-token.ts +0 -9
- package/src/interfaces/backend-objects/request-user.ts +0 -8
- package/src/interfaces/backend-objects/role.ts +0 -6
- package/src/interfaces/backend-objects/user.ts +0 -7
- package/src/interfaces/checksum-config.ts +0 -4
- package/src/interfaces/checksum-consts.ts +0 -13
- package/src/interfaces/constants.ts +0 -103
- package/src/interfaces/controller-config.ts +0 -36
- package/src/interfaces/create-user-basics.ts +0 -17
- package/src/interfaces/csp-config.ts +0 -16
- package/src/interfaces/csp-definition.ts +0 -49
- package/src/interfaces/deep-partial.ts +0 -3
- package/src/interfaces/email-service.ts +0 -8
- package/src/interfaces/environment-mongo.ts +0 -76
- package/src/interfaces/environment.ts +0 -185
- package/src/interfaces/failable-result.ts +0 -6
- package/src/interfaces/fec-consts.ts +0 -4
- package/src/interfaces/flexible-csp.ts +0 -18
- package/src/interfaces/handleable-error-options.ts +0 -6
- package/src/interfaces/jwt-consts.ts +0 -23
- package/src/interfaces/jwt-sign-response.ts +0 -19
- package/src/interfaces/mongo-errors.ts +0 -5
- package/src/interfaces/request-user.ts +0 -70
- package/src/interfaces/required-string-keys.ts +0 -26
- package/src/interfaces/schema.ts +0 -31
- package/src/interfaces/server-init-result.ts +0 -40
- package/src/interfaces/status-code-response.ts +0 -7
- package/src/interfaces/symmetric-encryption-results.ts +0 -4
- package/src/middlewares/authenticate-crypto.ts +0 -216
- package/src/middlewares/authenticate-token.ts +0 -150
- package/src/middlewares/cleanup-crypto.ts +0 -37
- package/src/middlewares/set-global-context-language.ts +0 -24
- package/src/middlewares.ts +0 -112
- package/src/model-registry.ts +0 -79
- package/src/models/email-token.ts +0 -15
- package/src/models/mnemonic.ts +0 -15
- package/src/models/role.ts +0 -15
- package/src/models/used-direct-login-token.ts +0 -15
- package/src/models/user-role.ts +0 -13
- package/src/models/user.ts +0 -15
- package/src/pipeline/pipeline-builder.ts +0 -18
- package/src/plugins/plugin-interface.ts +0 -8
- package/src/plugins/plugin-manager.ts +0 -42
- package/src/registry/email-service-registry.ts +0 -53
- package/src/responses/response-builder.ts +0 -86
- package/src/routers/api.ts +0 -196
- package/src/routers/app.ts +0 -333
- package/src/routers/base.ts +0 -13
- package/src/routers/router-config.ts +0 -16
- package/src/routing/index.ts +0 -1
- package/src/routing/route-builder.ts +0 -128
- package/src/schemas/email-token.ts +0 -95
- package/src/schemas/mnemonic.ts +0 -37
- package/src/schemas/role.ts +0 -137
- package/src/schemas/schema.ts +0 -164
- package/src/schemas/used-direct-login-token.ts +0 -45
- package/src/schemas/user-role.ts +0 -79
- package/src/schemas/user.ts +0 -224
- package/src/services/backup-code.ts +0 -321
- package/src/services/base.ts +0 -30
- package/src/services/checksum.ts +0 -167
- package/src/services/crc.ts +0 -213
- package/src/services/database-initialization.ts +0 -1648
- package/src/services/direct-login-token.ts +0 -61
- package/src/services/dummy-email-service.ts +0 -20
- package/src/services/fec-usage-example.ts +0 -102
- package/src/services/fec.ts +0 -355
- package/src/services/jwt.ts +0 -130
- package/src/services/key-wrapping.ts +0 -447
- package/src/services/mnemonic.ts +0 -168
- package/src/services/request-user.ts +0 -101
- package/src/services/role.ts +0 -414
- package/src/services/symmetric.ts +0 -139
- package/src/services/system-user.ts +0 -79
- package/src/services/user.ts +0 -2281
- package/src/services/xor.ts +0 -34
- package/src/testing.ts +0 -3
- package/src/transactions/transaction-manager.ts +0 -37
- package/src/types/id-converters.ts +0 -53
- package/src/types/mongoose-override.d.ts +0 -1
- package/src/types/mongoose.d.ts +0 -1
- package/src/types.ts +0 -130
- package/src/utils.ts +0 -1087
- package/src/validation/validation-builder.ts +0 -115
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symmetric.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/symmetric.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAIpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AAMzF;;;;;;GAMG;AACH,qBAAa,gBAAgB;WACb,gBAAgB,CAC5B,cAAc,GAAE,eAAuB,GACtC,MAAM;WAIK,iBAAiB,CAC7B,cAAc,GAAE,eAAuB,GACtC,MAAM;IAIT;;;;;OAKG;WACW,aAAa,CACzB,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,MAAM,EACtB,cAAc,GAAE,eAAuB,GACtC,2BAA2B;IAmC9B;;;;;OAKG;WACW,aAAa,CACzB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,EACX,cAAc,GAAE,eAAuB,GACtC,MAAM;IAmBT;;;;;OAKG;WACW,WAAW,CAAC,CAAC,EACzB,IAAI,EAAE,CAAC,EACP,aAAa,CAAC,EAAE,MAAM,GACrB,2BAA2B;IAc9B;;;;;OAKG;WACW,WAAW,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC;CAKpE"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SymmetricService = void 0;
|
|
4
|
+
const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
|
|
5
|
+
const crypto_1 = require("crypto");
|
|
6
|
+
const symmetric_error_type_1 = require("../enumerations/symmetric-error-type");
|
|
7
|
+
const symmetric_1 = require("../errors/symmetric");
|
|
8
|
+
function hasToJsonMethod(obj) {
|
|
9
|
+
return typeof obj === 'object' && obj !== null && 'toJson' in obj;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Service for handling symmetric encryption operations.
|
|
13
|
+
* This service provides functionality for:
|
|
14
|
+
* - AES encryption/decryption of buffers and JSON data
|
|
15
|
+
* - Key and IV generation
|
|
16
|
+
* - Secure cryptographic operations
|
|
17
|
+
*/
|
|
18
|
+
class SymmetricService {
|
|
19
|
+
static symmetricKeyBits(eciesConstants = ecies_lib_1.ECIES) {
|
|
20
|
+
return eciesConstants.SYMMETRIC.KEY_BITS;
|
|
21
|
+
}
|
|
22
|
+
static symmetricKeyBytes(eciesConstants = ecies_lib_1.ECIES) {
|
|
23
|
+
return eciesConstants.SYMMETRIC.KEY_SIZE;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Encrypt data with AES
|
|
27
|
+
* @param data The data to encrypt
|
|
28
|
+
* @param encryptionKey Optional encryption key (will be randomly generated if not provided)
|
|
29
|
+
* @returns Object containing encrypted data and key
|
|
30
|
+
*/
|
|
31
|
+
static encryptBuffer(data, encryptionKey, eciesConstants = ecies_lib_1.ECIES) {
|
|
32
|
+
if (encryptionKey &&
|
|
33
|
+
encryptionKey.length != eciesConstants.SYMMETRIC.KEY_SIZE) {
|
|
34
|
+
throw new symmetric_1.SymmetricError(symmetric_error_type_1.SymmetricErrorType.InvalidKeyLength);
|
|
35
|
+
}
|
|
36
|
+
// encrypt the document using AES-256 and the key
|
|
37
|
+
// Initialization Vector
|
|
38
|
+
const ivBuffer = (0, crypto_1.randomBytes)(eciesConstants.IV_SIZE);
|
|
39
|
+
const key = encryptionKey ?? (0, crypto_1.randomBytes)(eciesConstants.SYMMETRIC.KEY_SIZE);
|
|
40
|
+
const cipher = (0, crypto_1.createCipheriv)(eciesConstants.SYMMETRIC_ALGORITHM_CONFIGURATION, key, ivBuffer);
|
|
41
|
+
const ciphertextBuffer = cipher.update(data);
|
|
42
|
+
const finalBuffer = cipher.final();
|
|
43
|
+
const authTag = cipher.getAuthTag();
|
|
44
|
+
const encryptionIvPlusData = Buffer.concat([
|
|
45
|
+
ivBuffer,
|
|
46
|
+
ciphertextBuffer,
|
|
47
|
+
finalBuffer,
|
|
48
|
+
authTag,
|
|
49
|
+
]);
|
|
50
|
+
return {
|
|
51
|
+
encryptedData: encryptionIvPlusData,
|
|
52
|
+
key: key,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Decrypt the given buffer with AES
|
|
57
|
+
* @param encryptedData The encrypted data to decrypt
|
|
58
|
+
* @param key The key to use for decryption
|
|
59
|
+
* @returns Decrypted data as a Buffer
|
|
60
|
+
*/
|
|
61
|
+
static decryptBuffer(encryptedData, key, eciesConstants = ecies_lib_1.ECIES) {
|
|
62
|
+
const ivBuffer = encryptedData.subarray(0, eciesConstants.IV_SIZE);
|
|
63
|
+
const authTagStart = encryptedData.length - eciesConstants.AUTH_TAG_SIZE;
|
|
64
|
+
const ciphertextBuffer = encryptedData.subarray(eciesConstants.IV_SIZE, authTagStart);
|
|
65
|
+
const authTag = encryptedData.subarray(authTagStart);
|
|
66
|
+
const decipher = (0, crypto_1.createDecipheriv)(eciesConstants.SYMMETRIC_ALGORITHM_CONFIGURATION, key, ivBuffer);
|
|
67
|
+
decipher.setAuthTag(authTag);
|
|
68
|
+
return Buffer.concat([decipher.update(ciphertextBuffer), decipher.final()]);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Encrypt JSON data with AES
|
|
72
|
+
* @param data The data to encrypt
|
|
73
|
+
* @param encryptionKey Optional encryption key (will be randomly generated if not provided)
|
|
74
|
+
* @returns Object containing encrypted data and key
|
|
75
|
+
*/
|
|
76
|
+
static encryptJson(data, encryptionKey) {
|
|
77
|
+
if (data === null || data === undefined) {
|
|
78
|
+
throw new symmetric_1.SymmetricError(symmetric_error_type_1.SymmetricErrorType.DataNullOrUndefined);
|
|
79
|
+
}
|
|
80
|
+
let dataBuffer;
|
|
81
|
+
if (hasToJsonMethod(data)) {
|
|
82
|
+
// amazonq-ignore-next-line false positive
|
|
83
|
+
dataBuffer = Buffer.from(data.toJson(), 'utf8');
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
dataBuffer = Buffer.from(JSON.stringify(data), 'utf8');
|
|
87
|
+
}
|
|
88
|
+
return SymmetricService.encryptBuffer(dataBuffer, encryptionKey);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Decrypt the given buffer with AES and parse as JSON
|
|
92
|
+
* @param encryptedData The encrypted data to decrypt
|
|
93
|
+
* @param key The key to use for decryption
|
|
94
|
+
* @returns Decrypted data parsed as type T
|
|
95
|
+
*/
|
|
96
|
+
static decryptJson(encryptedData, key) {
|
|
97
|
+
return JSON.parse(SymmetricService.decryptBuffer(encryptedData, key).toString('utf8'));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
exports.SymmetricService = SymmetricService;
|
|
101
|
+
//# sourceMappingURL=symmetric.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symmetric.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/symmetric.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Types } from '@digitaldefiance/mongoose-types';
|
|
2
|
+
import { Member as BackendMember } from '@digitaldefiance/node-ecies-lib';
|
|
3
|
+
import { Environment } from '../environment';
|
|
4
|
+
import { IConstants } from '../interfaces/constants';
|
|
5
|
+
/**
|
|
6
|
+
* Service to manage the system member's wallet.
|
|
7
|
+
*/
|
|
8
|
+
export declare class SystemUserService {
|
|
9
|
+
private static systemUser;
|
|
10
|
+
/**
|
|
11
|
+
* Initializes and returns the system member's Member instance.
|
|
12
|
+
* The mnemonic should be stored securely in environment variables.
|
|
13
|
+
*/
|
|
14
|
+
static getSystemUser(environment: Environment, constants: IConstants): BackendMember<Buffer>;
|
|
15
|
+
static setSystemUser<TID extends string | Types.ObjectId | Buffer | Uint8Array = Buffer>(user: BackendMember<TID>, constants: IConstants): void;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=system-user.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-user.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/system-user.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACxD,OAAO,EACL,MAAM,IAAI,aAAa,EAExB,MAAM,iCAAiC,CAAC;AAKzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAsC;IAE/D;;;OAGG;WACW,aAAa,CACzB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,UAAU,GACpB,aAAa,CAAC,MAAM,CAAC;WAqCV,aAAa,CACzB,GAAG,SAAS,MAAM,GAAG,KAAK,CAAC,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,EAClE,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,GAAG,IAAI;CAQzD"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SystemUserService = void 0;
|
|
4
|
+
const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
|
|
5
|
+
const node_ecies_lib_1 = require("@digitaldefiance/node-ecies-lib");
|
|
6
|
+
const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
|
|
7
|
+
/**
|
|
8
|
+
* Service to manage the system member's wallet.
|
|
9
|
+
*/
|
|
10
|
+
class SystemUserService {
|
|
11
|
+
static systemUser = null;
|
|
12
|
+
/**
|
|
13
|
+
* Initializes and returns the system member's Member instance.
|
|
14
|
+
* The mnemonic should be stored securely in environment variables.
|
|
15
|
+
*/
|
|
16
|
+
static getSystemUser(environment, constants) {
|
|
17
|
+
if (!SystemUserService.systemUser) {
|
|
18
|
+
if (!environment.systemMnemonic) {
|
|
19
|
+
throw new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.Admin_EnvNotSetTemplate, {
|
|
20
|
+
NAME: 'SYSTEM_MNEMONIC',
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
const mnemonic = environment.systemMnemonic;
|
|
24
|
+
const eciesService = new node_ecies_lib_1.ECIESService(undefined, constants.ECIES);
|
|
25
|
+
const { wallet } = eciesService.walletAndSeedFromMnemonic(mnemonic);
|
|
26
|
+
const keyPair = eciesService.walletToSimpleKeyPairBuffer(wallet);
|
|
27
|
+
SystemUserService.systemUser = new node_ecies_lib_1.Member(eciesService, ecies_lib_1.MemberType.System, constants.SystemUser, new ecies_lib_1.EmailString(constants.SystemEmail), keyPair.publicKey, new ecies_lib_1.SecureBuffer(keyPair.privateKey), wallet);
|
|
28
|
+
if (SystemUserService.systemUser.publicKey.toString('hex') !==
|
|
29
|
+
environment.systemPublicKeyHex) {
|
|
30
|
+
console.warn('System public key does not match environment variable', {
|
|
31
|
+
derived: SystemUserService.systemUser.publicKey.toString('hex'),
|
|
32
|
+
expected: environment.systemPublicKeyHex,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return SystemUserService.systemUser;
|
|
37
|
+
}
|
|
38
|
+
static setSystemUser(user, constants) {
|
|
39
|
+
if (user.type !== ecies_lib_1.MemberType.System || user.name !== constants.SystemUser) {
|
|
40
|
+
throw new Error('setSystemUser can only be called with a MemberType.System user');
|
|
41
|
+
}
|
|
42
|
+
SystemUserService.systemUser = user;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.SystemUserService = SystemUserService;
|
|
46
|
+
//# sourceMappingURL=system-user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-user.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/system-user.ts"],"names":[],"mappings":";;;AAAA,0DAKoC;AAEpC,oEAGyC;AACzC,oEAGyC;AAIzC;;GAEG;AACH,MAAa,iBAAiB;IACpB,MAAM,CAAC,UAAU,GAAiC,IAAI,CAAC;IAE/D;;;OAGG;IACI,MAAM,CAAC,aAAa,CACzB,WAAwB,EACxB,SAAqB;QAErB,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;gBAChC,MAAM,IAAI,uCAAsB,CAC9B,mCAAkB,CAAC,uBAAuB,EAC1C;oBACE,IAAI,EAAE,iBAAiB;iBACxB,CACF,CAAC;YACJ,CAAC;YACD,MAAM,QAAQ,GAAiB,WAAW,CAAC,cAAc,CAAC;YAC1D,MAAM,YAAY,GAAG,IAAI,6BAAY,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YAClE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;YACpE,MAAM,OAAO,GAAG,YAAY,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;YAEjE,iBAAiB,CAAC,UAAU,GAAG,IAAI,uBAAa,CAC9C,YAAY,EACZ,sBAAU,CAAC,MAAM,EACjB,SAAS,CAAC,UAAU,EACpB,IAAI,uBAAW,CAAC,SAAS,CAAC,WAAW,CAAC,EACtC,OAAO,CAAC,SAAS,EACjB,IAAI,wBAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EACpC,MAAM,CACP,CAAC;YACF,IACE,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACtD,WAAW,CAAC,kBAAkB,EAC9B,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,uDAAuD,EAAE;oBACpE,OAAO,EAAE,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAC/D,QAAQ,EAAE,WAAW,CAAC,kBAAkB;iBACzC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,iBAAiB,CAAC,UAAU,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,aAAa,CAEzB,IAAwB,EAAE,SAAqB;QAC/C,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAU,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC;YAC1E,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;QACJ,CAAC;QACD,iBAAiB,CAAC,UAAU,GAAG,IAA6B,CAAC;IAC/D,CAAC;;AAxDH,8CAyDC"}
|
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
import { SecureBuffer, SecureString } from '@digitaldefiance/ecies-lib';
|
|
2
|
+
import { ClientSession, ProjectionType, Types } from '@digitaldefiance/mongoose-types';
|
|
3
|
+
import { Member as BackendMember, ECIESService } from '@digitaldefiance/node-ecies-lib';
|
|
4
|
+
import { EmailTokenType, IBackupCode, IRequestUserDTO, ITokenRole, IUserBase, IUserDTO } from '@digitaldefiance/suite-core-lib';
|
|
5
|
+
import { Wallet } from '@ethereumjs/wallet';
|
|
6
|
+
import { BackupCode } from '../backup-code';
|
|
7
|
+
import { IBaseDocument } from '../documents';
|
|
8
|
+
import { IEmailTokenDocument } from '../documents/email-token';
|
|
9
|
+
import { IUserDocument } from '../documents/user';
|
|
10
|
+
import { Environment } from '../environment';
|
|
11
|
+
import { ICreateUserBasics } from '../interfaces';
|
|
12
|
+
import { IApplication } from '../interfaces/application';
|
|
13
|
+
import { IUserBackendObject } from '../interfaces/backend-objects/user';
|
|
14
|
+
import { IConstants } from '../interfaces/constants';
|
|
15
|
+
import { IEmailService } from '../interfaces/email-service';
|
|
16
|
+
import { BackupCodeService } from './backup-code';
|
|
17
|
+
import { BaseService } from './base';
|
|
18
|
+
import { KeyWrappingService } from './key-wrapping';
|
|
19
|
+
import { MnemonicService } from './mnemonic';
|
|
20
|
+
import { RoleService } from './role';
|
|
21
|
+
export declare class UserService<T, I extends Types.ObjectId | string, D extends Date, S extends string, A extends string, _TEnvironment extends Environment = Environment, _TConstants extends IConstants = IConstants, _TBaseDocument extends IBaseDocument<T, I> = IBaseDocument<T, I>, TUser extends IUserBase<I, D, S, A> = IUserBase<I, D, S, A>, TTokenRole extends ITokenRole<I, D> = ITokenRole<I, D>, TApplication extends IApplication = IApplication> extends BaseService {
|
|
22
|
+
protected readonly roleService: RoleService<I, D, TTokenRole>;
|
|
23
|
+
protected readonly eciesService: ECIESService;
|
|
24
|
+
protected readonly keyWrappingService: KeyWrappingService;
|
|
25
|
+
protected readonly mnemonicService: MnemonicService;
|
|
26
|
+
protected readonly emailService: IEmailService;
|
|
27
|
+
protected readonly backupCodeService: BackupCodeService<I, D, TTokenRole, TApplication>;
|
|
28
|
+
protected readonly serverUrl: string;
|
|
29
|
+
protected readonly disableEmailSend: boolean;
|
|
30
|
+
protected readonly idConverter: (id: string) => I;
|
|
31
|
+
protected readonly idGenerator: () => I;
|
|
32
|
+
constructor(application: IApplication, roleService: RoleService<I, D, TTokenRole>, emailService: IEmailService, keyWrappingService: KeyWrappingService, backupCodeService: BackupCodeService<I, D, TTokenRole, TApplication>, idConverter?: (id: string) => I, idGenerator?: () => I);
|
|
33
|
+
toId(id: string): I;
|
|
34
|
+
generateId(): I;
|
|
35
|
+
/**
|
|
36
|
+
* Given a User Document, make a User DTO
|
|
37
|
+
* @param user a User Document
|
|
38
|
+
* @returns An IUserDTO
|
|
39
|
+
*/
|
|
40
|
+
static userToUserDTO<S extends string, I extends string | Types.ObjectId = Types.ObjectId>(user: IUserDocument<S, I> | Record<string, unknown>): IUserDTO;
|
|
41
|
+
/**
|
|
42
|
+
* Given a User DTO, reconstitute ids and dates
|
|
43
|
+
* @param user a User DTO
|
|
44
|
+
* @returns An IUserBackendObject
|
|
45
|
+
*/
|
|
46
|
+
hydrateUserDTOToBackend(user: IUserDTO): IUserBackendObject<S, I>;
|
|
47
|
+
/**
|
|
48
|
+
* Create a new email token to send to the user for email verification
|
|
49
|
+
* @param userDoc The user to create the email token for
|
|
50
|
+
* @param type The type of email token to create
|
|
51
|
+
* @param session The session to use for the query
|
|
52
|
+
* @returns The email token document
|
|
53
|
+
*/
|
|
54
|
+
createEmailToken(userDoc: IUserDocument<S, I>, type: EmailTokenType, session?: ClientSession): Promise<IEmailTokenDocument>;
|
|
55
|
+
/**
|
|
56
|
+
* Create and send an email token to the user for email verification
|
|
57
|
+
* @param user The user to send the email token to
|
|
58
|
+
* @param type The type of email token to send
|
|
59
|
+
* @param session The session to use for the query
|
|
60
|
+
* @returns The email token document
|
|
61
|
+
*/
|
|
62
|
+
createAndSendEmailToken(user: IUserDocument<S, I> | (Pick<IUserDocument<S, I>, keyof IUserDocument<S, I>> & {
|
|
63
|
+
_id: any;
|
|
64
|
+
}), type?: EmailTokenType, session?: ClientSession, debug?: boolean): Promise<IEmailTokenDocument>;
|
|
65
|
+
/**
|
|
66
|
+
* Create and send an email token directly within an existing transaction
|
|
67
|
+
* @param user The user to send the email token to
|
|
68
|
+
* @param type The type of email token to send
|
|
69
|
+
* @param session The session to use for the query (required)
|
|
70
|
+
* @param debug Whether to enable debug logging
|
|
71
|
+
* @returns The email token document
|
|
72
|
+
*/
|
|
73
|
+
createAndSendEmailTokenDirect(user: IUserDocument<S, I>, type: EmailTokenType | undefined, session: ClientSession, debug?: boolean): Promise<IEmailTokenDocument>;
|
|
74
|
+
/**
|
|
75
|
+
* Send an email token to the user for email verification
|
|
76
|
+
* @param emailToken The email token to send
|
|
77
|
+
* @param session The session to use for the query
|
|
78
|
+
* @returns void
|
|
79
|
+
*/
|
|
80
|
+
sendEmailToken(emailToken: IEmailTokenDocument, session?: ClientSession, debug?: boolean): Promise<void>;
|
|
81
|
+
/**
|
|
82
|
+
* Find a user by email or username and enforce account status checks
|
|
83
|
+
* @param email Optional email
|
|
84
|
+
* @param username Optional username
|
|
85
|
+
* @param session Optional mongoose session
|
|
86
|
+
* @throws UsernameOrEmailRequiredError if neither provided
|
|
87
|
+
* @throws InvalidCredentialsError if not found or deleted
|
|
88
|
+
* @throws AccountLockedError | PendingEmailVerificationError | AccountStatusError per status
|
|
89
|
+
*/
|
|
90
|
+
findUser(email?: string, username?: string, session?: ClientSession): Promise<IUserDocument<S, I>>;
|
|
91
|
+
/**
|
|
92
|
+
* Finds a user record by ID
|
|
93
|
+
* @param userId The user ID
|
|
94
|
+
* @param throwIfNotActive Whether to throw if the user is inactive
|
|
95
|
+
* @param session The active session, if present
|
|
96
|
+
* @returns The user document
|
|
97
|
+
*/
|
|
98
|
+
findUserById(userId: I, throwIfNotActive: boolean, session?: ClientSession, select?: ProjectionType<IUserDocument<S, I>>): Promise<IUserDocument<S, I>>;
|
|
99
|
+
/**
|
|
100
|
+
* Ensure required fields are present in a projection for queries that rely on them.
|
|
101
|
+
* Supports string and object-style projections. For inclusion projections, adds fields.
|
|
102
|
+
* For exclusion projections, ensures required fields are not excluded.
|
|
103
|
+
*/
|
|
104
|
+
private ensureRequiredFieldsInProjection;
|
|
105
|
+
/**
|
|
106
|
+
* Fill in the default values to a user object
|
|
107
|
+
* @param newUser The user object to fill in
|
|
108
|
+
* @param createdBy The user ID of the user creating the new user
|
|
109
|
+
* @returns The filled in user
|
|
110
|
+
*/
|
|
111
|
+
fillUserDefaults(newUser: ICreateUserBasics, createdBy: I, backupCodes: Array<IBackupCode>, encryptedMnemonic: string, userId?: I): IUserBackendObject<S, I>;
|
|
112
|
+
/**
|
|
113
|
+
* Create a new user document from an IUser and unhashed password
|
|
114
|
+
* @param newUser The user object
|
|
115
|
+
* @returns The new user document
|
|
116
|
+
*/
|
|
117
|
+
makeUserDoc(newUser: TUser): Promise<IUserDocument<S, I>>;
|
|
118
|
+
/**
|
|
119
|
+
* Create a new user.
|
|
120
|
+
* Do not set createdBy to a new (non-existing) ObjectId unless you also set newUserId to it.
|
|
121
|
+
* If newUserId is not set, one will be generated.
|
|
122
|
+
* @param systemUser The system user performing the operation
|
|
123
|
+
* @param userData Username, email, password in a ICreateUserBasics object
|
|
124
|
+
* @param createdBy The user id of the user creating the user
|
|
125
|
+
* @param newUserId the user id of the new user object- usually the createdBy user id.
|
|
126
|
+
* @param session The session to use for the query
|
|
127
|
+
* @param debug Whether to log debug information
|
|
128
|
+
* @param password The password to use for the new user (optional, if not provided, mnemonic will be used)
|
|
129
|
+
* @returns The new user document
|
|
130
|
+
*/
|
|
131
|
+
newUser(systemUser: BackendMember, userData: ICreateUserBasics, createdBy?: I, newUserId?: I, session?: ClientSession, debug?: boolean, password?: string): Promise<{
|
|
132
|
+
user: IUserDocument<S, I>;
|
|
133
|
+
mnemonic: string;
|
|
134
|
+
backupCodes: Array<string>;
|
|
135
|
+
password?: string;
|
|
136
|
+
}>;
|
|
137
|
+
/**
|
|
138
|
+
* Get the backup codes for a user.
|
|
139
|
+
* Requires the user not be deleted or inactive
|
|
140
|
+
*/
|
|
141
|
+
getEncryptedUserBackupCodes(userId: Types.ObjectId, session?: ClientSession): Promise<Array<IBackupCode>>;
|
|
142
|
+
/**
|
|
143
|
+
* Resets the given user's backup codes
|
|
144
|
+
* @param backupUser The user to generate codes for
|
|
145
|
+
* @param session The current session, if any
|
|
146
|
+
* @returns A promise of an array of backup codes
|
|
147
|
+
*/
|
|
148
|
+
resetUserBackupCodes(backupUser: BackendMember, systemUser: BackendMember, session?: ClientSession): Promise<Array<BackupCode>>;
|
|
149
|
+
/**
|
|
150
|
+
* Recover a user's mnemonic from an encrypted mnemonic
|
|
151
|
+
* @param user The user whose mnemonic to recover
|
|
152
|
+
* @param encryptedMnemonic The encrypted mnemonic
|
|
153
|
+
* @returns The recovered mnemonic
|
|
154
|
+
*/
|
|
155
|
+
recoverMnemonic(user: BackendMember<any>, encryptedMnemonic: string): SecureString;
|
|
156
|
+
/**
|
|
157
|
+
* Make a Member from a user document and optional private key
|
|
158
|
+
* @param userDoc The user document
|
|
159
|
+
* @param privateKey Optional private key to load the wallet
|
|
160
|
+
* @param publicKey Optional public key to override the userDoc public key
|
|
161
|
+
* @param session The current session, if any
|
|
162
|
+
* @returns A promise containing the created Member
|
|
163
|
+
*/
|
|
164
|
+
makeUserFromUserDoc(userDoc: IUserDocument<S, I>, privateKey?: SecureBuffer, publicKey?: Buffer, mnemonic?: SecureString, wallet?: Wallet, session?: ClientSession): Promise<BackendMember<any>>;
|
|
165
|
+
/**
|
|
166
|
+
* Challenges a given userDoc with a given mnemonic, returns a system and user Member
|
|
167
|
+
* @param userDoc The userDoc in question
|
|
168
|
+
* @param mnemonic The mnemonic to challenge against
|
|
169
|
+
* @returns A promise containing the user and system Members
|
|
170
|
+
* @throws InvalidCredentialsError if the challenge fails
|
|
171
|
+
* @throws AccountLockedError if the account is locked
|
|
172
|
+
* @throws PendingEmailVerificationError if the email is not verified
|
|
173
|
+
* @throws AccountStatusError if the account status is invalid
|
|
174
|
+
*/
|
|
175
|
+
challengeUserWithMnemonic(userDoc: IUserDocument<S, I>, mnemonic: SecureString, session?: ClientSession): Promise<{
|
|
176
|
+
userMember: BackendMember;
|
|
177
|
+
adminMember: BackendMember;
|
|
178
|
+
}>;
|
|
179
|
+
/**
|
|
180
|
+
* Validates a login challenge response
|
|
181
|
+
* @param challengeResponse The challenge response bytes in hex
|
|
182
|
+
* @param email The email address of the user
|
|
183
|
+
* @param username The username of the user
|
|
184
|
+
* @param session The mongo session for the query
|
|
185
|
+
* @returns A promise that resolves to the user document, user member, and system member
|
|
186
|
+
*/
|
|
187
|
+
loginWithChallengeResponse(challengeResponse: string, email?: string, username?: string, session?: ClientSession): Promise<{
|
|
188
|
+
userDoc: IUserDocument<S, I>;
|
|
189
|
+
userMember: BackendMember;
|
|
190
|
+
adminMember: BackendMember;
|
|
191
|
+
}>;
|
|
192
|
+
/**
|
|
193
|
+
* Authenticate a user with client-verified challenge (skips server-side challenge)
|
|
194
|
+
* @returns The authenticated user document.
|
|
195
|
+
*/
|
|
196
|
+
loginWithClientVerifiedChallenge(usernameOrEmail: string, mnemonic: SecureString, session?: ClientSession): Promise<{
|
|
197
|
+
userDoc: IUserDocument<S, I>;
|
|
198
|
+
userMember: BackendMember;
|
|
199
|
+
adminMember: BackendMember;
|
|
200
|
+
}>;
|
|
201
|
+
/**
|
|
202
|
+
* Authenticate a user with their mnemonic.
|
|
203
|
+
* @returns The authenticated user document.
|
|
204
|
+
*/
|
|
205
|
+
loginWithMnemonic(usernameOrEmail: string, mnemonic: SecureString, session?: ClientSession): Promise<{
|
|
206
|
+
userDoc: IUserDocument<S, I>;
|
|
207
|
+
userMember: BackendMember;
|
|
208
|
+
adminMember: BackendMember;
|
|
209
|
+
}>;
|
|
210
|
+
/**
|
|
211
|
+
* Authenticate a user with their password (for key-wrapped accounts).
|
|
212
|
+
* @returns The authenticated user document.
|
|
213
|
+
*/
|
|
214
|
+
loginWithPassword(usernameOrEmail: string, password: string, session?: ClientSession): Promise<{
|
|
215
|
+
userDoc: IUserDocument<S, I>;
|
|
216
|
+
userMember: BackendMember;
|
|
217
|
+
adminMember: BackendMember;
|
|
218
|
+
}>;
|
|
219
|
+
/**
|
|
220
|
+
* Re-send a previously sent email token
|
|
221
|
+
* @param userId The user id
|
|
222
|
+
* @param session The session to use for the query
|
|
223
|
+
* @returns void
|
|
224
|
+
* @throws EmailTokenUsedOrInvalidError
|
|
225
|
+
*/
|
|
226
|
+
resendEmailToken(userId: string, type: EmailTokenType, session?: ClientSession, debug?: boolean): Promise<void>;
|
|
227
|
+
/**
|
|
228
|
+
* Verify the email token and update the user's account status
|
|
229
|
+
* @param emailToken The email token to verify
|
|
230
|
+
* @param session The session to use for the query
|
|
231
|
+
* @returns void
|
|
232
|
+
* @throws EmailTokenUsedOrInvalidError
|
|
233
|
+
* @throws EmailTokenExpiredError
|
|
234
|
+
* @throws EmailVerifiedError
|
|
235
|
+
* @throws UserNotFoundError
|
|
236
|
+
*/
|
|
237
|
+
verifyAccountTokenAndComplete(emailToken: string, session?: ClientSession): Promise<void>;
|
|
238
|
+
/**
|
|
239
|
+
* Validate the email token
|
|
240
|
+
* @param token The token to validate
|
|
241
|
+
* @param restrictType The type of email token to validate (or throw)
|
|
242
|
+
* @param session The session to use for the query
|
|
243
|
+
* @returns void
|
|
244
|
+
* @throws EmailTokenUsedOrInvalidError
|
|
245
|
+
*/
|
|
246
|
+
validateEmailToken(token: string, restrictType?: EmailTokenType, session?: ClientSession): Promise<void>;
|
|
247
|
+
/**
|
|
248
|
+
* Updates the user's language
|
|
249
|
+
* @param userId - The ID of the user
|
|
250
|
+
* @param newLanguage - The new language
|
|
251
|
+
* @param session - The session to use for the query
|
|
252
|
+
* @returns The updated user
|
|
253
|
+
*/
|
|
254
|
+
updateSiteLanguage(userId: string, newLanguage: string, session?: ClientSession): Promise<IRequestUserDTO>;
|
|
255
|
+
/**
|
|
256
|
+
* Updates the user's Dark Mode preference
|
|
257
|
+
* @param userId - The ID of the user
|
|
258
|
+
* @param newDarkMode - The new Dark Mode preference
|
|
259
|
+
* @param session - The session to use for the query
|
|
260
|
+
* @returns The updated user
|
|
261
|
+
*/
|
|
262
|
+
updateDarkMode(userId: string, newDarkMode: boolean, session?: ClientSession): Promise<IRequestUserDTO>;
|
|
263
|
+
/**
|
|
264
|
+
* Updates multiple user settings at once
|
|
265
|
+
* @param userId - The ID of the user
|
|
266
|
+
* @param settings - Object containing settings to update
|
|
267
|
+
* @param session - The session to use for the query
|
|
268
|
+
* @returns The updated user
|
|
269
|
+
*/
|
|
270
|
+
updateUserSettings(userId: string, settings: {
|
|
271
|
+
email?: string;
|
|
272
|
+
timezone?: string;
|
|
273
|
+
siteLanguage?: string;
|
|
274
|
+
currency?: string;
|
|
275
|
+
darkMode?: boolean;
|
|
276
|
+
directChallenge?: boolean;
|
|
277
|
+
}, session?: ClientSession): Promise<IRequestUserDTO>;
|
|
278
|
+
/**
|
|
279
|
+
* Changes the user's password by re-wrapping their master key
|
|
280
|
+
* @param userId - The ID of the user
|
|
281
|
+
* @param currentPassword - The current password
|
|
282
|
+
* @param newPassword - The new password
|
|
283
|
+
* @param session - The session to use for the query
|
|
284
|
+
* @returns void
|
|
285
|
+
*/
|
|
286
|
+
changePassword(userId: string, currentPassword: string, newPassword: string, session?: ClientSession): Promise<void>;
|
|
287
|
+
/**
|
|
288
|
+
* Retrieve an email token by its token string and type
|
|
289
|
+
* @param token - The token string
|
|
290
|
+
* @param type - The type of the email token
|
|
291
|
+
* @param session - The session to use for the query
|
|
292
|
+
* @returns The email token document or null if not found
|
|
293
|
+
*/
|
|
294
|
+
findEmailToken(token: string, type?: EmailTokenType, session?: ClientSession): Promise<IEmailTokenDocument | null>;
|
|
295
|
+
/**
|
|
296
|
+
* Verify email token is valid
|
|
297
|
+
* @param token - The email token
|
|
298
|
+
* @param session - The session to use for the query
|
|
299
|
+
* @returns void
|
|
300
|
+
*/
|
|
301
|
+
verifyEmailToken(token: string, type: EmailTokenType, session?: ClientSession): Promise<void>;
|
|
302
|
+
/**
|
|
303
|
+
* Reset password using email token
|
|
304
|
+
* @param token - The email token
|
|
305
|
+
* @param newPassword - The new password
|
|
306
|
+
* @param session - The session to use for the query
|
|
307
|
+
* @returns void
|
|
308
|
+
*/
|
|
309
|
+
resetPasswordWithToken(token: string, newPassword: string, credential?: string, // either mnemonic or current password; required
|
|
310
|
+
session?: ClientSession): Promise<void>;
|
|
311
|
+
/**
|
|
312
|
+
* Generate a login challenge for the client to sign
|
|
313
|
+
* @returns The login challenge in hex
|
|
314
|
+
*/
|
|
315
|
+
generateDirectLoginChallenge(): string;
|
|
316
|
+
/**
|
|
317
|
+
* Verifies a direct login challenge response
|
|
318
|
+
* @param serverSignedRequest The login challenge response in hex
|
|
319
|
+
* @param session The mongoose session, if provided
|
|
320
|
+
* @returns A promise with the user document and user member object
|
|
321
|
+
*/
|
|
322
|
+
verifyDirectLoginChallenge(serverSignedRequest: string, signature: string, username?: string, email?: string, session?: ClientSession): Promise<{
|
|
323
|
+
userDoc: IUserDocument<S, I>;
|
|
324
|
+
userMember: BackendMember;
|
|
325
|
+
}>;
|
|
326
|
+
/**
|
|
327
|
+
* Request a login link via email
|
|
328
|
+
* @param email Email address
|
|
329
|
+
* @param username Username
|
|
330
|
+
* @param session Existing session, if any
|
|
331
|
+
* @returns void
|
|
332
|
+
*/
|
|
333
|
+
requestEmailLogin(email?: string, username?: string, session?: ClientSession): Promise<void>;
|
|
334
|
+
/**
|
|
335
|
+
* Validate an email login token challenge
|
|
336
|
+
* @param token The token to challenge
|
|
337
|
+
* @param signature The signature of the token by the user's private key
|
|
338
|
+
* @param session The session to use for the query
|
|
339
|
+
* @returns The user document if the challenge is valid
|
|
340
|
+
*/
|
|
341
|
+
validateEmailLoginTokenChallenge(token: string, signature: string, session?: ClientSession): Promise<IUserDocument<S, I>>;
|
|
342
|
+
/**
|
|
343
|
+
* Updates the user's last login time atomically
|
|
344
|
+
* @param userId - The ID of the user
|
|
345
|
+
* @returns void
|
|
346
|
+
*/
|
|
347
|
+
updateLastLogin(userId: I): Promise<void>;
|
|
348
|
+
}
|
|
349
|
+
//# sourceMappingURL=user.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/user.ts"],"names":[],"mappings":"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"}
|