@digitaldefiance/node-express-suite 3.7.3 → 3.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/package.json +4 -5
- package/src/__tests__/fixtures/{index.d.ts → index.ts} +0 -1
- package/src/__tests__/fixtures/model-mocks.mock.ts +164 -0
- package/src/__tests__/helpers/application.mock.ts +89 -0
- package/src/__tests__/helpers/{index.d.ts → index.ts} +0 -1
- package/src/__tests__/helpers/setup-test-env.ts +202 -0
- package/src/__tests__/{index.d.ts → index.ts} +0 -1
- package/src/application-base.ts +548 -0
- package/src/application-concrete.ts +62 -0
- package/src/application.ts +330 -0
- package/src/backup-code.ts +348 -0
- package/src/builders/application-builder.ts +147 -0
- package/src/builders/{index.d.ts → index.ts} +0 -1
- package/src/constants.ts +89 -0
- package/src/container/{index.d.ts → index.ts} +0 -1
- package/src/container/service-container.ts +85 -0
- package/src/container/service-definitions.ts +23 -0
- package/src/controllers/base.ts +512 -0
- package/src/controllers/{index.d.ts → index.ts} +0 -1
- package/src/controllers/user.ts +1734 -0
- package/src/database/database-initializer.ts +13 -0
- package/src/database/{index.d.ts → index.ts} +0 -1
- package/src/decorators/base-controller.ts +91 -0
- package/src/decorators/controller.ts +152 -0
- package/src/decorators/{index.d.ts → index.ts} +0 -1
- package/src/decorators/zod-validation.ts +64 -0
- package/src/defaults.ts +259 -0
- package/src/documents/base.ts +17 -0
- package/src/documents/email-token.ts +20 -0
- package/src/documents/{index.d.ts → index.ts} +0 -1
- package/src/documents/mnemonic.ts +20 -0
- package/src/documents/role.ts +19 -0
- package/src/documents/used-direct-login-token.ts +18 -0
- package/src/documents/user-role.ts +20 -0
- package/src/documents/user.ts +20 -0
- package/src/enumerations/base-model-name.ts +47 -0
- package/src/enumerations/{index.d.ts → index.ts} +0 -1
- package/src/enumerations/length-encoding-type.ts +16 -0
- package/src/enumerations/schema-collection.ts +39 -0
- package/src/enumerations/symmetric-error-type.ts +13 -0
- package/src/environment.ts +859 -0
- package/src/errors/express-validation.ts +38 -0
- package/src/errors/{index.d.ts → index.ts} +0 -1
- package/src/errors/invalid-backup-code-version.ts +30 -0
- package/src/errors/invalid-jwt-token.ts +24 -0
- package/src/errors/invalid-model.ts +24 -0
- package/src/errors/invalid-new-password.ts +33 -0
- package/src/errors/invalid-password.ts +28 -0
- package/src/errors/missing-validated-data.ts +55 -0
- package/src/errors/mnemonic-or-password-required.ts +26 -0
- package/src/errors/model-not-registered.ts +24 -0
- package/src/errors/mongoose-validation.ts +56 -0
- package/src/errors/symmetric.ts +53 -0
- package/src/errors/token-expired.ts +24 -0
- package/src/get-language.ts +64 -0
- package/src/get-timezone.ts +76 -0
- package/src/{index.d.ts → index.ts} +44 -2
- package/src/interfaces/api-error-response.ts +15 -0
- package/src/interfaces/api-express-validation-error-response.ts +17 -0
- package/src/interfaces/api-message-response.ts +12 -0
- package/src/interfaces/api-mongo-validation-error-response.ts +17 -0
- package/src/interfaces/api-responses/backup-codes-response.ts +15 -0
- package/src/interfaces/api-responses/challenge-response.ts +17 -0
- package/src/interfaces/api-responses/code-count-response.ts +12 -0
- package/src/interfaces/api-responses/{index.d.ts → index.ts} +0 -1
- package/src/interfaces/api-responses/login-response.ts +18 -0
- package/src/interfaces/api-responses/mnemonic-response.ts +15 -0
- package/src/interfaces/api-responses/registration-response.ts +17 -0
- package/src/interfaces/api-responses/request-user-response.ts +16 -0
- package/src/interfaces/api-responses/user-settings-response.ts +19 -0
- package/src/interfaces/application.ts +40 -0
- package/src/interfaces/backend-objects/email-token.ts +18 -0
- package/src/interfaces/backend-objects/{index.d.ts → index.ts} +0 -1
- package/src/interfaces/backend-objects/request-user.ts +19 -0
- package/src/interfaces/backend-objects/role.ts +18 -0
- package/src/interfaces/backend-objects/user.ts +18 -0
- package/src/interfaces/checksum-config.ts +15 -0
- package/src/interfaces/checksum-consts.ts +23 -0
- package/src/interfaces/constants.ts +114 -0
- package/src/interfaces/controller-config.ts +54 -0
- package/src/interfaces/create-user-basics.ts +24 -0
- package/src/interfaces/csp-config.ts +32 -0
- package/src/interfaces/csp-definition.ts +71 -0
- package/src/interfaces/db-init-result.ts +17 -0
- package/src/interfaces/deep-partial.ts +14 -0
- package/src/interfaces/discriminator-collections.ts +21 -0
- package/src/interfaces/email-service.ts +26 -0
- package/src/interfaces/environment-mongo.ts +86 -0
- package/src/interfaces/environment.ts +191 -0
- package/src/interfaces/failable-result.ts +20 -0
- package/src/interfaces/fec-consts.ts +14 -0
- package/src/interfaces/flexible-csp.ts +35 -0
- package/src/interfaces/handleable-error-options.ts +19 -0
- package/src/interfaces/{index.d.ts → index.ts} +0 -1
- package/src/interfaces/jwt-consts.ts +33 -0
- package/src/interfaces/jwt-sign-response.ts +31 -0
- package/src/interfaces/models/email-token.ts +13 -0
- package/src/interfaces/models/{index.d.ts → index.ts} +0 -1
- package/src/interfaces/models/mnemonic.ts +14 -0
- package/src/interfaces/models/role.ts +13 -0
- package/src/interfaces/models/token-role.ts +23 -0
- package/src/interfaces/models/used-direct-login-token.ts +21 -0
- package/src/interfaces/models/user-role.ts +23 -0
- package/src/interfaces/models/user.ts +30 -0
- package/src/interfaces/mongo-errors.ts +14 -0
- package/src/interfaces/request-user.ts +80 -0
- package/src/interfaces/required-string-keys.ts +33 -0
- package/src/interfaces/schema.ts +43 -0
- package/src/interfaces/server-init-result.ts +48 -0
- package/src/interfaces/status-code-response.ts +20 -0
- package/src/interfaces/symmetric-encryption-results.d.ts.map +1 -1
- package/src/interfaces/symmetric-encryption-results.js.map +1 -1
- package/src/interfaces/symmetric-encryption-results.ts +15 -0
- package/src/interfaces/test-environment.ts +23 -0
- package/src/interfaces/token-response.ts +16 -0
- package/src/middleware-utils.ts +138 -0
- package/src/middlewares/authenticate-crypto.ts +237 -0
- package/src/middlewares/authenticate-token.ts +165 -0
- package/src/middlewares/cleanup-crypto.ts +47 -0
- package/src/middlewares/{index.d.ts → index.ts} +0 -1
- package/src/middlewares/set-global-context-language.ts +38 -0
- package/src/model-registry.ts +142 -0
- package/src/models/email-token.ts +49 -0
- package/src/models/{index.d.ts → index.ts} +0 -1
- package/src/models/mnemonic.ts +42 -0
- package/src/models/role.ts +38 -0
- package/src/models/used-direct-login-token.ts +49 -0
- package/src/models/user-role.ts +40 -0
- package/src/models/user.ts +42 -0
- package/src/pipeline/{index.d.ts → index.ts} +0 -1
- package/src/pipeline/pipeline-builder.ts +27 -0
- package/src/plugins/{index.d.ts → index.ts} +0 -1
- package/src/plugins/plugin-interface.ts +19 -0
- package/src/plugins/plugin-manager.ts +53 -0
- package/src/registry/email-service-registry.ts +76 -0
- package/src/registry/{index.d.ts → index.ts} +0 -1
- package/src/responses/{index.d.ts → index.ts} +0 -1
- package/src/responses/response-builder.ts +166 -0
- package/src/routers/api.ts +233 -0
- package/src/routers/app.ts +395 -0
- package/src/routers/base.ts +34 -0
- package/src/routers/{index.d.ts → index.ts} +0 -1
- package/src/routers/router-config.ts +34 -0
- package/src/routing/index.ts +1 -0
- package/src/routing/route-builder.ts +214 -0
- package/src/schemas/email-token.ts +112 -0
- package/src/schemas/{index.d.ts → index.ts} +0 -1
- package/src/schemas/mnemonic.ts +48 -0
- package/src/schemas/role.ts +153 -0
- package/src/schemas/schema.ts +185 -0
- package/src/schemas/used-direct-login-token.ts +58 -0
- package/src/schemas/user-role.ts +93 -0
- package/src/schemas/user.ts +244 -0
- package/src/services/backup-code.ts +327 -0
- package/src/services/base.ts +46 -0
- package/src/services/checksum.ts +189 -0
- package/src/services/database-initialization.ts +1653 -0
- package/src/services/db-init-cache.ts +28 -0
- package/src/services/direct-login-token.ts +83 -0
- package/src/services/dummy-email-service.ts +43 -0
- package/src/services/fec-usage-example.ts +123 -0
- package/src/services/fec.ts +399 -0
- package/src/services/{index.d.ts → index.ts} +0 -2
- package/src/services/jwt.ts +146 -0
- package/src/services/key-wrapping.ts +528 -0
- package/src/services/mnemonic.ts +174 -0
- package/src/services/request-user.ts +127 -0
- package/src/services/role.ts +417 -0
- package/src/services/symmetric.ts +164 -0
- package/src/services/system-user.ts +87 -0
- package/src/services/user.ts +2324 -0
- package/src/services/xor.ts +39 -0
- package/src/testing.ts +9 -0
- package/src/transactions/{index.d.ts → index.ts} +0 -1
- package/src/transactions/transaction-manager.ts +63 -0
- package/src/types/app-config.ts +36 -0
- package/src/types/controller-config.ts +28 -0
- package/src/types/{environment-variables.d.ts → environment-variables.ts} +32 -5
- package/src/types/{index.d.ts → index.ts} +0 -1
- package/src/types/{mongoose-helpers.d.ts → mongoose-helpers.ts} +8 -2
- package/src/types/mongoose-override.d.ts +1 -0
- package/src/types/mongoose.d.ts +1 -0
- package/src/types.ts +189 -0
- package/src/utils.ts +1116 -0
- package/src/validation/{index.d.ts → index.ts} +0 -1
- package/src/validation/validation-builder.ts +155 -0
- package/src/__tests__/fixtures/index.d.ts.map +0 -1
- package/src/__tests__/fixtures/index.js +0 -5
- package/src/__tests__/fixtures/index.js.map +0 -1
- package/src/__tests__/fixtures/model-mocks.mock.d.ts +0 -12
- package/src/__tests__/fixtures/model-mocks.mock.d.ts.map +0 -1
- package/src/__tests__/fixtures/model-mocks.mock.js +0 -102
- package/src/__tests__/fixtures/model-mocks.mock.js.map +0 -1
- package/src/__tests__/helpers/application.mock.d.ts +0 -8
- package/src/__tests__/helpers/application.mock.d.ts.map +0 -1
- package/src/__tests__/helpers/application.mock.js +0 -77
- package/src/__tests__/helpers/application.mock.js.map +0 -1
- package/src/__tests__/helpers/index.d.ts.map +0 -1
- package/src/__tests__/helpers/index.js +0 -7
- package/src/__tests__/helpers/index.js.map +0 -1
- package/src/__tests__/helpers/setup-test-env.d.ts +0 -12
- package/src/__tests__/helpers/setup-test-env.d.ts.map +0 -1
- package/src/__tests__/helpers/setup-test-env.js +0 -121
- package/src/__tests__/helpers/setup-test-env.js.map +0 -1
- package/src/__tests__/index.d.ts.map +0 -1
- package/src/__tests__/index.js +0 -6
- package/src/__tests__/index.js.map +0 -1
- package/src/application-base.d.ts +0 -123
- package/src/application-base.d.ts.map +0 -1
- package/src/application-base.js +0 -359
- package/src/application-base.js.map +0 -1
- package/src/application-concrete.d.ts +0 -13
- package/src/application-concrete.d.ts.map +0 -1
- package/src/application-concrete.js +0 -21
- package/src/application-concrete.js.map +0 -1
- package/src/application.d.ts +0 -29
- package/src/application.d.ts.map +0 -1
- package/src/application.js +0 -167
- package/src/application.js.map +0 -1
- package/src/backup-code.d.ts +0 -67
- package/src/backup-code.d.ts.map +0 -1
- package/src/backup-code.js +0 -238
- package/src/backup-code.js.map +0 -1
- package/src/builders/application-builder.d.ts +0 -35
- package/src/builders/application-builder.d.ts.map +0 -1
- package/src/builders/application-builder.js +0 -64
- package/src/builders/application-builder.js.map +0 -1
- package/src/builders/index.d.ts.map +0 -1
- package/src/builders/index.js +0 -5
- package/src/builders/index.js.map +0 -1
- package/src/constants.d.ts +0 -16
- package/src/constants.d.ts.map +0 -1
- package/src/constants.js +0 -58
- package/src/constants.js.map +0 -1
- package/src/container/index.d.ts.map +0 -1
- package/src/container/index.js +0 -6
- package/src/container/index.js.map +0 -1
- package/src/container/service-container.d.ts +0 -11
- package/src/container/service-container.d.ts.map +0 -1
- package/src/container/service-container.js +0 -38
- package/src/container/service-container.js.map +0 -1
- package/src/container/service-definitions.d.ts +0 -11
- package/src/container/service-definitions.d.ts.map +0 -1
- package/src/container/service-definitions.js +0 -13
- package/src/container/service-definitions.js.map +0 -1
- package/src/controllers/base.d.ts +0 -67
- package/src/controllers/base.d.ts.map +0 -1
- package/src/controllers/base.js +0 -305
- package/src/controllers/base.js.map +0 -1
- package/src/controllers/index.d.ts.map +0 -1
- package/src/controllers/index.js +0 -6
- package/src/controllers/index.js.map +0 -1
- package/src/controllers/user.d.ts +0 -49
- package/src/controllers/user.d.ts.map +0 -1
- package/src/controllers/user.js +0 -919
- package/src/controllers/user.js.map +0 -1
- package/src/database/database-initializer.d.ts +0 -7
- package/src/database/database-initializer.d.ts.map +0 -1
- package/src/database/database-initializer.js +0 -3
- package/src/database/database-initializer.js.map +0 -1
- package/src/database/index.d.ts.map +0 -1
- package/src/database/index.js +0 -5
- package/src/database/index.js.map +0 -1
- package/src/decorators/base-controller.d.ts +0 -11
- package/src/decorators/base-controller.d.ts.map +0 -1
- package/src/decorators/base-controller.js +0 -60
- package/src/decorators/base-controller.js.map +0 -1
- package/src/decorators/controller.d.ts +0 -38
- package/src/decorators/controller.d.ts.map +0 -1
- package/src/decorators/controller.js +0 -68
- package/src/decorators/controller.js.map +0 -1
- package/src/decorators/index.d.ts.map +0 -1
- package/src/decorators/index.js +0 -7
- package/src/decorators/index.js.map +0 -1
- package/src/decorators/zod-validation.d.ts +0 -5
- package/src/decorators/zod-validation.d.ts.map +0 -1
- package/src/decorators/zod-validation.js +0 -48
- package/src/decorators/zod-validation.js.map +0 -1
- package/src/defaults.d.ts +0 -7
- package/src/defaults.d.ts.map +0 -1
- package/src/defaults.js +0 -205
- package/src/defaults.js.map +0 -1
- package/src/documents/base.d.ts +0 -4
- package/src/documents/base.d.ts.map +0 -1
- package/src/documents/base.js +0 -3
- package/src/documents/base.js.map +0 -1
- package/src/documents/email-token.d.ts +0 -8
- package/src/documents/email-token.d.ts.map +0 -1
- package/src/documents/email-token.js +0 -3
- package/src/documents/email-token.js.map +0 -1
- package/src/documents/index.d.ts.map +0 -1
- package/src/documents/index.js +0 -3
- package/src/documents/index.js.map +0 -1
- package/src/documents/mnemonic.d.ts +0 -8
- package/src/documents/mnemonic.d.ts.map +0 -1
- package/src/documents/mnemonic.js +0 -3
- package/src/documents/mnemonic.js.map +0 -1
- package/src/documents/role.d.ts +0 -8
- package/src/documents/role.d.ts.map +0 -1
- package/src/documents/role.js +0 -3
- package/src/documents/role.js.map +0 -1
- package/src/documents/used-direct-login-token.d.ts +0 -5
- package/src/documents/used-direct-login-token.d.ts.map +0 -1
- package/src/documents/used-direct-login-token.js +0 -3
- package/src/documents/used-direct-login-token.js.map +0 -1
- package/src/documents/user-role.d.ts +0 -8
- package/src/documents/user-role.d.ts.map +0 -1
- package/src/documents/user-role.js +0 -3
- package/src/documents/user-role.js.map +0 -1
- package/src/documents/user.d.ts +0 -8
- package/src/documents/user.d.ts.map +0 -1
- package/src/documents/user.js +0 -3
- package/src/documents/user.js.map +0 -1
- package/src/enumerations/base-model-name.d.ts +0 -38
- package/src/enumerations/base-model-name.d.ts.map +0 -1
- package/src/enumerations/base-model-name.js +0 -34
- package/src/enumerations/base-model-name.js.map +0 -1
- package/src/enumerations/index.d.ts.map +0 -1
- package/src/enumerations/index.js +0 -8
- package/src/enumerations/index.js.map +0 -1
- package/src/enumerations/length-encoding-type.d.ts +0 -7
- package/src/enumerations/length-encoding-type.d.ts.map +0 -1
- package/src/enumerations/length-encoding-type.js +0 -11
- package/src/enumerations/length-encoding-type.js.map +0 -1
- package/src/enumerations/schema-collection.d.ts +0 -34
- package/src/enumerations/schema-collection.d.ts.map +0 -1
- package/src/enumerations/schema-collection.js +0 -38
- package/src/enumerations/schema-collection.js.map +0 -1
- package/src/enumerations/symmetric-error-type.d.ts +0 -5
- package/src/enumerations/symmetric-error-type.d.ts.map +0 -1
- package/src/enumerations/symmetric-error-type.js +0 -9
- package/src/enumerations/symmetric-error-type.js.map +0 -1
- package/src/environment.d.ts +0 -189
- package/src/environment.d.ts.map +0 -1
- package/src/environment.js +0 -641
- package/src/environment.js.map +0 -1
- package/src/errors/express-validation.d.ts +0 -9
- package/src/errors/express-validation.d.ts.map +0 -1
- package/src/errors/express-validation.js +0 -18
- package/src/errors/express-validation.js.map +0 -1
- package/src/errors/index.d.ts.map +0 -1
- package/src/errors/index.js +0 -16
- package/src/errors/index.js.map +0 -1
- package/src/errors/invalid-backup-code-version.d.ts +0 -6
- package/src/errors/invalid-backup-code-version.d.ts.map +0 -1
- package/src/errors/invalid-backup-code-version.js +0 -16
- package/src/errors/invalid-backup-code-version.js.map +0 -1
- package/src/errors/invalid-jwt-token.d.ts +0 -5
- package/src/errors/invalid-jwt-token.d.ts.map +0 -1
- package/src/errors/invalid-jwt-token.js +0 -12
- package/src/errors/invalid-jwt-token.js.map +0 -1
- package/src/errors/invalid-model.d.ts +0 -6
- package/src/errors/invalid-model.d.ts.map +0 -1
- package/src/errors/invalid-model.js +0 -14
- package/src/errors/invalid-model.js.map +0 -1
- package/src/errors/invalid-new-password.d.ts +0 -5
- package/src/errors/invalid-new-password.d.ts.map +0 -1
- package/src/errors/invalid-new-password.js +0 -14
- package/src/errors/invalid-new-password.js.map +0 -1
- package/src/errors/invalid-password.d.ts +0 -5
- package/src/errors/invalid-password.d.ts.map +0 -1
- package/src/errors/invalid-password.js +0 -14
- package/src/errors/invalid-password.js.map +0 -1
- package/src/errors/missing-validated-data.d.ts +0 -7
- package/src/errors/missing-validated-data.d.ts.map +0 -1
- package/src/errors/missing-validated-data.js +0 -36
- package/src/errors/missing-validated-data.js.map +0 -1
- package/src/errors/mnemonic-or-password-required.d.ts +0 -5
- package/src/errors/mnemonic-or-password-required.d.ts.map +0 -1
- package/src/errors/mnemonic-or-password-required.js +0 -14
- package/src/errors/mnemonic-or-password-required.js.map +0 -1
- package/src/errors/model-not-registered.d.ts +0 -6
- package/src/errors/model-not-registered.d.ts.map +0 -1
- package/src/errors/model-not-registered.js +0 -14
- package/src/errors/model-not-registered.js.map +0 -1
- package/src/errors/mongoose-validation.d.ts +0 -12
- package/src/errors/mongoose-validation.d.ts.map +0 -1
- package/src/errors/mongoose-validation.js +0 -17
- package/src/errors/mongoose-validation.js.map +0 -1
- package/src/errors/symmetric.d.ts +0 -8
- package/src/errors/symmetric.d.ts.map +0 -1
- package/src/errors/symmetric.js +0 -22
- package/src/errors/symmetric.js.map +0 -1
- package/src/errors/token-expired.d.ts +0 -5
- package/src/errors/token-expired.d.ts.map +0 -1
- package/src/errors/token-expired.js +0 -12
- package/src/errors/token-expired.js.map +0 -1
- package/src/get-language.d.ts +0 -2
- package/src/get-language.d.ts.map +0 -1
- package/src/get-language.js +0 -30
- package/src/get-language.js.map +0 -1
- package/src/get-timezone.d.ts +0 -2
- package/src/get-timezone.d.ts.map +0 -1
- package/src/get-timezone.js +0 -39
- package/src/get-timezone.js.map +0 -1
- package/src/index.d.ts.map +0 -1
- package/src/index.js +0 -80
- package/src/index.js.map +0 -1
- package/src/interfaces/api-error-response.d.ts +0 -5
- package/src/interfaces/api-error-response.d.ts.map +0 -1
- package/src/interfaces/api-error-response.js +0 -3
- package/src/interfaces/api-error-response.js.map +0 -1
- package/src/interfaces/api-express-validation-error-response.d.ts +0 -7
- package/src/interfaces/api-express-validation-error-response.d.ts.map +0 -1
- package/src/interfaces/api-express-validation-error-response.js +0 -3
- package/src/interfaces/api-express-validation-error-response.js.map +0 -1
- package/src/interfaces/api-message-response.d.ts +0 -4
- package/src/interfaces/api-message-response.d.ts.map +0 -1
- package/src/interfaces/api-message-response.js +0 -3
- package/src/interfaces/api-message-response.js.map +0 -1
- package/src/interfaces/api-mongo-validation-error-response.d.ts +0 -6
- package/src/interfaces/api-mongo-validation-error-response.d.ts.map +0 -1
- package/src/interfaces/api-mongo-validation-error-response.js +0 -3
- package/src/interfaces/api-mongo-validation-error-response.js.map +0 -1
- package/src/interfaces/api-responses/backup-codes-response.d.ts +0 -5
- package/src/interfaces/api-responses/backup-codes-response.d.ts.map +0 -1
- package/src/interfaces/api-responses/backup-codes-response.js +0 -3
- package/src/interfaces/api-responses/backup-codes-response.js.map +0 -1
- package/src/interfaces/api-responses/challenge-response.d.ts +0 -6
- package/src/interfaces/api-responses/challenge-response.d.ts.map +0 -1
- package/src/interfaces/api-responses/challenge-response.js +0 -3
- package/src/interfaces/api-responses/challenge-response.js.map +0 -1
- package/src/interfaces/api-responses/code-count-response.d.ts +0 -5
- package/src/interfaces/api-responses/code-count-response.d.ts.map +0 -1
- package/src/interfaces/api-responses/code-count-response.js +0 -3
- package/src/interfaces/api-responses/code-count-response.js.map +0 -1
- package/src/interfaces/api-responses/index.d.ts.map +0 -1
- package/src/interfaces/api-responses/index.js +0 -12
- package/src/interfaces/api-responses/index.js.map +0 -1
- package/src/interfaces/api-responses/login-response.d.ts +0 -8
- package/src/interfaces/api-responses/login-response.d.ts.map +0 -1
- package/src/interfaces/api-responses/login-response.js +0 -3
- package/src/interfaces/api-responses/login-response.js.map +0 -1
- package/src/interfaces/api-responses/mnemonic-response.d.ts +0 -5
- package/src/interfaces/api-responses/mnemonic-response.d.ts.map +0 -1
- package/src/interfaces/api-responses/mnemonic-response.js +0 -3
- package/src/interfaces/api-responses/mnemonic-response.js.map +0 -1
- package/src/interfaces/api-responses/registration-response.d.ts +0 -6
- package/src/interfaces/api-responses/registration-response.d.ts.map +0 -1
- package/src/interfaces/api-responses/registration-response.js +0 -3
- package/src/interfaces/api-responses/registration-response.js.map +0 -1
- package/src/interfaces/api-responses/request-user-response.d.ts +0 -6
- package/src/interfaces/api-responses/request-user-response.d.ts.map +0 -1
- package/src/interfaces/api-responses/request-user-response.js +0 -3
- package/src/interfaces/api-responses/request-user-response.js.map +0 -1
- package/src/interfaces/api-responses/user-settings-response.d.ts +0 -12
- package/src/interfaces/api-responses/user-settings-response.d.ts.map +0 -1
- package/src/interfaces/api-responses/user-settings-response.js +0 -3
- package/src/interfaces/api-responses/user-settings-response.js.map +0 -1
- package/src/interfaces/application.d.ts +0 -17
- package/src/interfaces/application.d.ts.map +0 -1
- package/src/interfaces/application.js +0 -3
- package/src/interfaces/application.js.map +0 -1
- package/src/interfaces/backend-objects/email-token.d.ts +0 -4
- package/src/interfaces/backend-objects/email-token.d.ts.map +0 -1
- package/src/interfaces/backend-objects/email-token.js +0 -3
- package/src/interfaces/backend-objects/email-token.js.map +0 -1
- package/src/interfaces/backend-objects/index.d.ts.map +0 -1
- package/src/interfaces/backend-objects/index.js +0 -8
- package/src/interfaces/backend-objects/index.js.map +0 -1
- package/src/interfaces/backend-objects/request-user.d.ts +0 -5
- package/src/interfaces/backend-objects/request-user.d.ts.map +0 -1
- package/src/interfaces/backend-objects/request-user.js +0 -3
- package/src/interfaces/backend-objects/request-user.js.map +0 -1
- package/src/interfaces/backend-objects/role.d.ts +0 -4
- package/src/interfaces/backend-objects/role.d.ts.map +0 -1
- package/src/interfaces/backend-objects/role.js +0 -3
- package/src/interfaces/backend-objects/role.js.map +0 -1
- package/src/interfaces/backend-objects/user.d.ts +0 -4
- package/src/interfaces/backend-objects/user.d.ts.map +0 -1
- package/src/interfaces/backend-objects/user.js +0 -3
- package/src/interfaces/backend-objects/user.js.map +0 -1
- package/src/interfaces/checksum-config.d.ts +0 -5
- package/src/interfaces/checksum-config.d.ts.map +0 -1
- package/src/interfaces/checksum-config.js +0 -3
- package/src/interfaces/checksum-config.js.map +0 -1
- package/src/interfaces/checksum-consts.d.ts +0 -11
- package/src/interfaces/checksum-consts.d.ts.map +0 -1
- package/src/interfaces/checksum-consts.js +0 -3
- package/src/interfaces/checksum-consts.js.map +0 -1
- package/src/interfaces/constants.d.ts +0 -102
- package/src/interfaces/constants.d.ts.map +0 -1
- package/src/interfaces/constants.js +0 -3
- package/src/interfaces/constants.js.map +0 -1
- package/src/interfaces/controller-config.d.ts +0 -21
- package/src/interfaces/controller-config.d.ts.map +0 -1
- package/src/interfaces/controller-config.js +0 -3
- package/src/interfaces/controller-config.js.map +0 -1
- package/src/interfaces/create-user-basics.d.ts +0 -18
- package/src/interfaces/create-user-basics.d.ts.map +0 -1
- package/src/interfaces/create-user-basics.js +0 -3
- package/src/interfaces/create-user-basics.js.map +0 -1
- package/src/interfaces/csp-config.d.ts +0 -7
- package/src/interfaces/csp-config.d.ts.map +0 -1
- package/src/interfaces/csp-config.js +0 -13
- package/src/interfaces/csp-config.js.map +0 -1
- package/src/interfaces/csp-definition.d.ts +0 -13
- package/src/interfaces/csp-definition.d.ts.map +0 -1
- package/src/interfaces/csp-definition.js +0 -22
- package/src/interfaces/csp-definition.js.map +0 -1
- package/src/interfaces/db-init-result.d.ts +0 -5
- package/src/interfaces/db-init-result.d.ts.map +0 -1
- package/src/interfaces/db-init-result.js +0 -3
- package/src/interfaces/db-init-result.js.map +0 -1
- package/src/interfaces/deep-partial.d.ts +0 -4
- package/src/interfaces/deep-partial.d.ts.map +0 -1
- package/src/interfaces/deep-partial.js +0 -3
- package/src/interfaces/deep-partial.js.map +0 -1
- package/src/interfaces/discriminator-collections.d.ts +0 -7
- package/src/interfaces/discriminator-collections.d.ts.map +0 -1
- package/src/interfaces/discriminator-collections.js +0 -3
- package/src/interfaces/discriminator-collections.js.map +0 -1
- package/src/interfaces/email-service.d.ts +0 -4
- package/src/interfaces/email-service.d.ts.map +0 -1
- package/src/interfaces/email-service.js +0 -3
- package/src/interfaces/email-service.js.map +0 -1
- package/src/interfaces/environment-mongo.d.ts +0 -76
- package/src/interfaces/environment-mongo.d.ts.map +0 -1
- package/src/interfaces/environment-mongo.js +0 -3
- package/src/interfaces/environment-mongo.js.map +0 -1
- package/src/interfaces/environment.d.ts +0 -180
- package/src/interfaces/environment.d.ts.map +0 -1
- package/src/interfaces/environment.js +0 -3
- package/src/interfaces/environment.js.map +0 -1
- package/src/interfaces/failable-result.d.ts +0 -7
- package/src/interfaces/failable-result.d.ts.map +0 -1
- package/src/interfaces/failable-result.js +0 -3
- package/src/interfaces/failable-result.js.map +0 -1
- package/src/interfaces/fec-consts.d.ts +0 -5
- package/src/interfaces/fec-consts.d.ts.map +0 -1
- package/src/interfaces/fec-consts.js +0 -3
- package/src/interfaces/fec-consts.js.map +0 -1
- package/src/interfaces/flexible-csp.d.ts +0 -8
- package/src/interfaces/flexible-csp.d.ts.map +0 -1
- package/src/interfaces/flexible-csp.js +0 -14
- package/src/interfaces/flexible-csp.js.map +0 -1
- package/src/interfaces/handleable-error-options.d.ts +0 -7
- package/src/interfaces/handleable-error-options.d.ts.map +0 -1
- package/src/interfaces/handleable-error-options.js +0 -3
- package/src/interfaces/handleable-error-options.js.map +0 -1
- package/src/interfaces/index.d.ts.map +0 -1
- package/src/interfaces/index.js +0 -38
- package/src/interfaces/index.js.map +0 -1
- package/src/interfaces/jwt-consts.d.ts +0 -11
- package/src/interfaces/jwt-consts.d.ts.map +0 -1
- package/src/interfaces/jwt-consts.js +0 -3
- package/src/interfaces/jwt-consts.js.map +0 -1
- package/src/interfaces/jwt-sign-response.d.ts +0 -11
- package/src/interfaces/jwt-sign-response.d.ts.map +0 -1
- package/src/interfaces/jwt-sign-response.js +0 -3
- package/src/interfaces/jwt-sign-response.js.map +0 -1
- package/src/interfaces/models/email-token.d.ts +0 -6
- package/src/interfaces/models/email-token.d.ts.map +0 -1
- package/src/interfaces/models/email-token.js +0 -3
- package/src/interfaces/models/email-token.js.map +0 -1
- package/src/interfaces/models/index.d.ts.map +0 -1
- package/src/interfaces/models/index.js +0 -11
- package/src/interfaces/models/index.js.map +0 -1
- package/src/interfaces/models/mnemonic.d.ts +0 -6
- package/src/interfaces/models/mnemonic.d.ts.map +0 -1
- package/src/interfaces/models/mnemonic.js +0 -3
- package/src/interfaces/models/mnemonic.js.map +0 -1
- package/src/interfaces/models/role.d.ts +0 -6
- package/src/interfaces/models/role.d.ts.map +0 -1
- package/src/interfaces/models/role.js +0 -3
- package/src/interfaces/models/role.js.map +0 -1
- package/src/interfaces/models/token-role.d.ts +0 -11
- package/src/interfaces/models/token-role.d.ts.map +0 -1
- package/src/interfaces/models/token-role.js +0 -3
- package/src/interfaces/models/token-role.js.map +0 -1
- package/src/interfaces/models/used-direct-login-token.d.ts +0 -11
- package/src/interfaces/models/used-direct-login-token.d.ts.map +0 -1
- package/src/interfaces/models/used-direct-login-token.js +0 -3
- package/src/interfaces/models/used-direct-login-token.js.map +0 -1
- package/src/interfaces/models/user-role.d.ts +0 -11
- package/src/interfaces/models/user-role.d.ts.map +0 -1
- package/src/interfaces/models/user-role.js +0 -3
- package/src/interfaces/models/user-role.js.map +0 -1
- package/src/interfaces/models/user.d.ts +0 -11
- package/src/interfaces/models/user.d.ts.map +0 -1
- package/src/interfaces/models/user.js +0 -3
- package/src/interfaces/models/user.js.map +0 -1
- package/src/interfaces/mongo-errors.d.ts +0 -5
- package/src/interfaces/mongo-errors.d.ts.map +0 -1
- package/src/interfaces/mongo-errors.js +0 -3
- package/src/interfaces/mongo-errors.js.map +0 -1
- package/src/interfaces/request-user.d.ts +0 -58
- package/src/interfaces/request-user.d.ts.map +0 -1
- package/src/interfaces/request-user.js +0 -3
- package/src/interfaces/request-user.js.map +0 -1
- package/src/interfaces/required-string-keys.d.ts +0 -22
- package/src/interfaces/required-string-keys.d.ts.map +0 -1
- package/src/interfaces/required-string-keys.js +0 -3
- package/src/interfaces/required-string-keys.js.map +0 -1
- package/src/interfaces/schema.d.ts +0 -29
- package/src/interfaces/schema.d.ts.map +0 -1
- package/src/interfaces/schema.js +0 -3
- package/src/interfaces/schema.js.map +0 -1
- package/src/interfaces/server-init-result.d.ts +0 -35
- package/src/interfaces/server-init-result.d.ts.map +0 -1
- package/src/interfaces/server-init-result.js +0 -3
- package/src/interfaces/server-init-result.js.map +0 -1
- package/src/interfaces/status-code-response.d.ts +0 -7
- package/src/interfaces/status-code-response.d.ts.map +0 -1
- package/src/interfaces/status-code-response.js +0 -3
- package/src/interfaces/status-code-response.js.map +0 -1
- package/src/interfaces/symmetric-encryption-results.d.ts +0 -5
- package/src/interfaces/test-environment.d.ts +0 -12
- package/src/interfaces/test-environment.d.ts.map +0 -1
- package/src/interfaces/test-environment.js +0 -3
- package/src/interfaces/test-environment.js.map +0 -1
- package/src/interfaces/token-response.d.ts +0 -5
- package/src/interfaces/token-response.d.ts.map +0 -1
- package/src/interfaces/token-response.js +0 -3
- package/src/interfaces/token-response.js.map +0 -1
- package/src/middleware-utils.d.ts +0 -8
- package/src/middleware-utils.d.ts.map +0 -1
- package/src/middleware-utils.js +0 -94
- package/src/middleware-utils.js.map +0 -1
- package/src/middlewares/authenticate-crypto.d.ts +0 -10
- package/src/middlewares/authenticate-crypto.d.ts.map +0 -1
- package/src/middlewares/authenticate-crypto.js +0 -126
- package/src/middlewares/authenticate-crypto.js.map +0 -1
- package/src/middlewares/authenticate-token.d.ts +0 -21
- package/src/middlewares/authenticate-token.d.ts.map +0 -1
- package/src/middlewares/authenticate-token.js +0 -104
- package/src/middlewares/authenticate-token.js.map +0 -1
- package/src/middlewares/cleanup-crypto.d.ts +0 -7
- package/src/middlewares/cleanup-crypto.d.ts.map +0 -1
- package/src/middlewares/cleanup-crypto.js +0 -32
- package/src/middlewares/cleanup-crypto.js.map +0 -1
- package/src/middlewares/index.d.ts.map +0 -1
- package/src/middlewares/index.js +0 -8
- package/src/middlewares/index.js.map +0 -1
- package/src/middlewares/set-global-context-language.d.ts +0 -3
- package/src/middlewares/set-global-context-language.d.ts.map +0 -1
- package/src/middlewares/set-global-context-language.js +0 -14
- package/src/middlewares/set-global-context-language.js.map +0 -1
- package/src/model-registry.d.ts +0 -23
- package/src/model-registry.d.ts.map +0 -1
- package/src/model-registry.js +0 -47
- package/src/model-registry.js.map +0 -1
- package/src/models/email-token.d.ts +0 -8
- package/src/models/email-token.d.ts.map +0 -1
- package/src/models/email-token.js +0 -11
- package/src/models/email-token.js.map +0 -1
- package/src/models/index.d.ts.map +0 -1
- package/src/models/index.js +0 -10
- package/src/models/index.js.map +0 -1
- package/src/models/mnemonic.d.ts +0 -8
- package/src/models/mnemonic.d.ts.map +0 -1
- package/src/models/mnemonic.js +0 -11
- package/src/models/mnemonic.js.map +0 -1
- package/src/models/role.d.ts +0 -8
- package/src/models/role.d.ts.map +0 -1
- package/src/models/role.js +0 -11
- package/src/models/role.js.map +0 -1
- package/src/models/used-direct-login-token.d.ts +0 -8
- package/src/models/used-direct-login-token.d.ts.map +0 -1
- package/src/models/used-direct-login-token.js +0 -11
- package/src/models/used-direct-login-token.js.map +0 -1
- package/src/models/user-role.d.ts +0 -7
- package/src/models/user-role.d.ts.map +0 -1
- package/src/models/user-role.js +0 -10
- package/src/models/user-role.js.map +0 -1
- package/src/models/user.d.ts +0 -8
- package/src/models/user.d.ts.map +0 -1
- package/src/models/user.js +0 -11
- package/src/models/user.js.map +0 -1
- package/src/pipeline/index.d.ts.map +0 -1
- package/src/pipeline/index.js +0 -5
- package/src/pipeline/index.js.map +0 -1
- package/src/pipeline/pipeline-builder.d.ts +0 -8
- package/src/pipeline/pipeline-builder.d.ts.map +0 -1
- package/src/pipeline/pipeline-builder.js +0 -18
- package/src/pipeline/pipeline-builder.js.map +0 -1
- package/src/plugins/index.d.ts.map +0 -1
- package/src/plugins/index.js +0 -6
- package/src/plugins/index.js.map +0 -1
- package/src/plugins/plugin-interface.d.ts +0 -9
- package/src/plugins/plugin-interface.d.ts.map +0 -1
- package/src/plugins/plugin-interface.js +0 -3
- package/src/plugins/plugin-interface.js.map +0 -1
- package/src/plugins/plugin-manager.d.ts +0 -13
- package/src/plugins/plugin-manager.d.ts.map +0 -1
- package/src/plugins/plugin-manager.js +0 -37
- package/src/plugins/plugin-manager.js.map +0 -1
- package/src/registry/email-service-registry.d.ts +0 -27
- package/src/registry/email-service-registry.d.ts.map +0 -1
- package/src/registry/email-service-registry.js +0 -42
- package/src/registry/email-service-registry.js.map +0 -1
- package/src/registry/index.d.ts.map +0 -1
- package/src/registry/index.js +0 -6
- package/src/registry/index.js.map +0 -1
- package/src/responses/index.d.ts.map +0 -1
- package/src/responses/index.js +0 -5
- package/src/responses/index.js.map +0 -1
- package/src/responses/response-builder.d.ts +0 -24
- package/src/responses/response-builder.d.ts.map +0 -1
- package/src/responses/response-builder.js +0 -63
- package/src/responses/response-builder.js.map +0 -1
- package/src/routers/api.d.ts +0 -28
- package/src/routers/api.d.ts.map +0 -1
- package/src/routers/api.js +0 -80
- package/src/routers/api.js.map +0 -1
- package/src/routers/app.d.ts +0 -33
- package/src/routers/app.d.ts.map +0 -1
- package/src/routers/app.js +0 -228
- package/src/routers/app.js.map +0 -1
- package/src/routers/base.d.ts +0 -9
- package/src/routers/base.d.ts.map +0 -1
- package/src/routers/base.js +0 -14
- package/src/routers/base.js.map +0 -1
- package/src/routers/index.d.ts.map +0 -1
- package/src/routers/index.js +0 -7
- package/src/routers/index.js.map +0 -1
- package/src/routers/router-config.d.ts +0 -18
- package/src/routers/router-config.d.ts.map +0 -1
- package/src/routers/router-config.js +0 -8
- package/src/routers/router-config.js.map +0 -1
- package/src/routing/index.d.ts +0 -2
- package/src/routing/index.d.ts.map +0 -1
- package/src/routing/index.js +0 -5
- package/src/routing/index.js.map +0 -1
- package/src/routing/route-builder.d.ts +0 -36
- package/src/routing/route-builder.d.ts.map +0 -1
- package/src/routing/route-builder.js +0 -86
- package/src/routing/route-builder.js.map +0 -1
- package/src/schemas/email-token.d.ts +0 -49
- package/src/schemas/email-token.d.ts.map +0 -1
- package/src/schemas/email-token.js +0 -55
- package/src/schemas/email-token.js.map +0 -1
- package/src/schemas/index.d.ts.map +0 -1
- package/src/schemas/index.js +0 -11
- package/src/schemas/index.js.map +0 -1
- package/src/schemas/mnemonic.d.ts +0 -27
- package/src/schemas/mnemonic.d.ts.map +0 -1
- package/src/schemas/mnemonic.js +0 -31
- package/src/schemas/mnemonic.js.map +0 -1
- package/src/schemas/role.d.ts +0 -42
- package/src/schemas/role.d.ts.map +0 -1
- package/src/schemas/role.js +0 -89
- package/src/schemas/role.js.map +0 -1
- package/src/schemas/schema.d.ts +0 -42
- package/src/schemas/schema.d.ts.map +0 -1
- package/src/schemas/schema.js +0 -70
- package/src/schemas/schema.js.map +0 -1
- package/src/schemas/used-direct-login-token.d.ts +0 -37
- package/src/schemas/used-direct-login-token.d.ts.map +0 -1
- package/src/schemas/used-direct-login-token.js +0 -24
- package/src/schemas/used-direct-login-token.js.map +0 -1
- package/src/schemas/user-role.d.ts +0 -39
- package/src/schemas/user-role.d.ts.map +0 -1
- package/src/schemas/user-role.js +0 -55
- package/src/schemas/user-role.js.map +0 -1
- package/src/schemas/user.d.ts +0 -24
- package/src/schemas/user.d.ts.map +0 -1
- package/src/schemas/user.js +0 -195
- package/src/schemas/user.js.map +0 -1
- package/src/services/backup-code.d.ts +0 -76
- package/src/services/backup-code.d.ts.map +0 -1
- package/src/services/backup-code.js +0 -185
- package/src/services/backup-code.js.map +0 -1
- package/src/services/base.d.ts +0 -11
- package/src/services/base.d.ts.map +0 -1
- package/src/services/base.js +0 -15
- package/src/services/base.js.map +0 -1
- package/src/services/checksum.d.ts +0 -69
- package/src/services/checksum.d.ts.map +0 -1
- package/src/services/checksum.js +0 -145
- package/src/services/checksum.js.map +0 -1
- package/src/services/crc.d.ts +0 -87
- package/src/services/crc.d.ts.map +0 -1
- package/src/services/crc.js +0 -198
- package/src/services/crc.js.map +0 -1
- package/src/services/database-initialization.d.ts +0 -111
- package/src/services/database-initialization.d.ts.map +0 -1
- package/src/services/database-initialization.js +0 -878
- package/src/services/database-initialization.js.map +0 -1
- package/src/services/db-init-cache.d.ts +0 -10
- package/src/services/db-init-cache.d.ts.map +0 -1
- package/src/services/db-init-cache.js +0 -3
- package/src/services/db-init-cache.js.map +0 -1
- package/src/services/direct-login-token.d.ts +0 -7
- package/src/services/direct-login-token.d.ts.map +0 -1
- package/src/services/direct-login-token.js +0 -41
- package/src/services/direct-login-token.js.map +0 -1
- package/src/services/dummy-email-service.d.ts +0 -11
- package/src/services/dummy-email-service.d.ts.map +0 -1
- package/src/services/dummy-email-service.js +0 -16
- package/src/services/dummy-email-service.js.map +0 -1
- package/src/services/fec-usage-example.d.ts +0 -38
- package/src/services/fec-usage-example.d.ts.map +0 -1
- package/src/services/fec-usage-example.js +0 -75
- package/src/services/fec-usage-example.js.map +0 -1
- package/src/services/fec.d.ts +0 -46
- package/src/services/fec.d.ts.map +0 -1
- package/src/services/fec.js +0 -214
- package/src/services/fec.js.map +0 -1
- package/src/services/index.d.ts.map +0 -1
- package/src/services/index.js +0 -23
- package/src/services/index.js.map +0 -1
- package/src/services/jwt.d.ts +0 -30
- package/src/services/jwt.d.ts.map +0 -1
- package/src/services/jwt.js +0 -90
- package/src/services/jwt.js.map +0 -1
- package/src/services/key-wrapping.d.ts +0 -61
- package/src/services/key-wrapping.d.ts.map +0 -1
- package/src/services/key-wrapping.js +0 -307
- package/src/services/key-wrapping.js.map +0 -1
- package/src/services/mnemonic.d.ts +0 -62
- package/src/services/mnemonic.d.ts.map +0 -1
- package/src/services/mnemonic.js +0 -114
- package/src/services/mnemonic.js.map +0 -1
- package/src/services/request-user.d.ts +0 -23
- package/src/services/request-user.d.ts.map +0 -1
- package/src/services/request-user.js +0 -68
- package/src/services/request-user.js.map +0 -1
- package/src/services/role.d.ts +0 -87
- package/src/services/role.d.ts.map +0 -1
- package/src/services/role.js +0 -279
- package/src/services/role.js.map +0 -1
- package/src/services/symmetric.d.ts +0 -42
- package/src/services/symmetric.d.ts.map +0 -1
- package/src/services/symmetric.js +0 -101
- package/src/services/symmetric.js.map +0 -1
- package/src/services/system-user.d.ts +0 -16
- package/src/services/system-user.d.ts.map +0 -1
- package/src/services/system-user.js +0 -46
- package/src/services/system-user.js.map +0 -1
- package/src/services/user.d.ts +0 -345
- package/src/services/user.d.ts.map +0 -1
- package/src/services/user.js +0 -1447
- package/src/services/user.js.map +0 -1
- package/src/services/xor.d.ts +0 -24
- package/src/services/xor.d.ts.map +0 -1
- package/src/services/xor.js +0 -37
- package/src/services/xor.js.map +0 -1
- package/src/testing.d.ts +0 -3
- package/src/testing.d.ts.map +0 -1
- package/src/testing.js +0 -7
- package/src/testing.js.map +0 -1
- package/src/transactions/index.d.ts.map +0 -1
- package/src/transactions/index.js +0 -5
- package/src/transactions/index.js.map +0 -1
- package/src/transactions/transaction-manager.d.ts +0 -12
- package/src/transactions/transaction-manager.d.ts.map +0 -1
- package/src/transactions/transaction-manager.js +0 -30
- package/src/transactions/transaction-manager.js.map +0 -1
- package/src/types/app-config.d.ts +0 -16
- package/src/types/app-config.d.ts.map +0 -1
- package/src/types/app-config.js +0 -3
- package/src/types/app-config.js.map +0 -1
- package/src/types/controller-config.d.ts +0 -14
- package/src/types/controller-config.d.ts.map +0 -1
- package/src/types/controller-config.js +0 -3
- package/src/types/controller-config.js.map +0 -1
- package/src/types/environment-variables.d.ts.map +0 -1
- package/src/types/environment-variables.js +0 -39
- package/src/types/environment-variables.js.map +0 -1
- package/src/types/index.d.ts.map +0 -1
- package/src/types/index.js +0 -6
- package/src/types/index.js.map +0 -1
- package/src/types/mongoose-helpers.d.ts.map +0 -1
- package/src/types/mongoose-helpers.js +0 -6
- package/src/types/mongoose-helpers.js.map +0 -1
- package/src/types.d.ts +0 -104
- package/src/types.d.ts.map +0 -1
- package/src/types.js +0 -14
- package/src/types.js.map +0 -1
- package/src/utils.d.ts +0 -211
- package/src/utils.d.ts.map +0 -1
- package/src/utils.js +0 -818
- package/src/utils.js.map +0 -1
- package/src/validation/index.d.ts.map +0 -1
- package/src/validation/index.js +0 -5
- package/src/validation/index.js.map +0 -1
- package/src/validation/validation-builder.d.ts +0 -32
- package/src/validation/validation-builder.d.ts.map +0 -1
- package/src/validation/validation-builder.js +0 -81
- package/src/validation/validation-builder.js.map +0 -1
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview JWT token authentication middleware.
|
|
3
|
+
* Validates bearer tokens, loads user data, and sets up request context.
|
|
4
|
+
* @module middlewares/authenticate-token
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { Timezone as TimezoneType } from '@digitaldefiance/i18n-lib';
|
|
8
|
+
import { GlobalActiveContext } from '@digitaldefiance/i18n-lib';
|
|
9
|
+
import { ClientSession } from '@digitaldefiance/mongoose-types';
|
|
10
|
+
import {
|
|
11
|
+
AccountStatus,
|
|
12
|
+
getSuiteCoreTranslation,
|
|
13
|
+
ITokenRole,
|
|
14
|
+
ITokenUser,
|
|
15
|
+
SuiteCoreStringKey,
|
|
16
|
+
} from '@digitaldefiance/suite-core-lib';
|
|
17
|
+
import { NextFunction, Request, Response } from 'express';
|
|
18
|
+
import { IncomingHttpHeaders } from 'http';
|
|
19
|
+
import { IUserDocument } from '../documents/user';
|
|
20
|
+
import { BaseModelName } from '../enumerations/base-model-name';
|
|
21
|
+
import { TokenExpiredError } from '../errors/token-expired';
|
|
22
|
+
import { IApplication } from '../interfaces/application';
|
|
23
|
+
import { JwtService } from '../services/jwt';
|
|
24
|
+
import { RequestUserService } from '../services/request-user';
|
|
25
|
+
import { RoleService } from '../services/role';
|
|
26
|
+
import { withTransaction } from '../utils';
|
|
27
|
+
import type { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
28
|
+
|
|
29
|
+
// Type for Timezone constructor
|
|
30
|
+
type TimezoneConstructor = new (tz: string) => TimezoneType;
|
|
31
|
+
|
|
32
|
+
// Helper to create Timezone from the same module instance as GlobalActiveContext
|
|
33
|
+
function createTimezone(tz: string): TimezoneType {
|
|
34
|
+
const context = GlobalActiveContext.getInstance();
|
|
35
|
+
const TimezoneConstructor = context.adminTimezone
|
|
36
|
+
.constructor as TimezoneConstructor;
|
|
37
|
+
return new TimezoneConstructor(tz);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Extracts bearer token from HTTP request headers.
|
|
42
|
+
* @param {IncomingHttpHeaders} headers - HTTP request headers
|
|
43
|
+
* @returns {string | null} Bearer token if found, null otherwise
|
|
44
|
+
*/
|
|
45
|
+
export function findAuthToken(headers: IncomingHttpHeaders): string | null {
|
|
46
|
+
const authHeader = headers['Authorization'] || headers['authorization'];
|
|
47
|
+
if (authHeader && typeof authHeader === 'string') {
|
|
48
|
+
const parts = authHeader.split(' ');
|
|
49
|
+
if (parts.length === 2 && parts[0].toLowerCase() === 'bearer') {
|
|
50
|
+
return parts[1];
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Express middleware for JWT token authentication.
|
|
58
|
+
* Validates token, loads user from database, checks account status,
|
|
59
|
+
* and populates req.user with authenticated user data.
|
|
60
|
+
* @template TID - Platform ID type (defaults to Buffer)
|
|
61
|
+
* @template D - Date type (defaults to Date)
|
|
62
|
+
* @template TTokenRole - Token role interface type
|
|
63
|
+
* @template TTokenUser - Token user interface type
|
|
64
|
+
* @template TApplication - Application interface type
|
|
65
|
+
* @param {TApplication} application - Application instance
|
|
66
|
+
* @param {Request} req - Express request object
|
|
67
|
+
* @param {Response} res - Express response object
|
|
68
|
+
* @param {NextFunction} next - Express next function
|
|
69
|
+
* @returns {Promise<Response>} Response object
|
|
70
|
+
* @throws {TokenExpiredError} When token has expired
|
|
71
|
+
*/
|
|
72
|
+
export async function authenticateToken<
|
|
73
|
+
TID extends PlatformID = Buffer,
|
|
74
|
+
D extends Date = Date,
|
|
75
|
+
TTokenRole extends ITokenRole<TID, D> = ITokenRole<TID, D>,
|
|
76
|
+
TTokenUser extends ITokenUser = ITokenUser,
|
|
77
|
+
TApplication extends IApplication<TID> = IApplication<TID>,
|
|
78
|
+
>(
|
|
79
|
+
application: TApplication,
|
|
80
|
+
req: Request,
|
|
81
|
+
res: Response,
|
|
82
|
+
next: NextFunction,
|
|
83
|
+
): Promise<Response> {
|
|
84
|
+
const UserModel = application.getModel<IUserDocument<string, TID>>(
|
|
85
|
+
BaseModelName.User,
|
|
86
|
+
);
|
|
87
|
+
const token = findAuthToken(req.headers);
|
|
88
|
+
if (token == null) {
|
|
89
|
+
return res
|
|
90
|
+
.status(401)
|
|
91
|
+
.send(
|
|
92
|
+
getSuiteCoreTranslation(SuiteCoreStringKey.Validation_InvalidToken),
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
try {
|
|
97
|
+
return await withTransaction<Response>(
|
|
98
|
+
application.db.connection,
|
|
99
|
+
application.environment.mongo.useTransactions,
|
|
100
|
+
undefined,
|
|
101
|
+
async (sess: ClientSession | undefined) => {
|
|
102
|
+
const jwtService = new JwtService<
|
|
103
|
+
TID,
|
|
104
|
+
D,
|
|
105
|
+
TTokenRole,
|
|
106
|
+
TTokenUser,
|
|
107
|
+
TApplication
|
|
108
|
+
>(application);
|
|
109
|
+
const user: TTokenUser | null = await jwtService.verifyToken(token);
|
|
110
|
+
if (user === null) {
|
|
111
|
+
return res.status(403).send(
|
|
112
|
+
// amazonq-ignore-next-line false positive, hardcoded string
|
|
113
|
+
getSuiteCoreTranslation(SuiteCoreStringKey.Validation_UserNotFound),
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
const userDoc = await UserModel.findById(user.userId)
|
|
117
|
+
.select('-password')
|
|
118
|
+
.session(sess ?? null)
|
|
119
|
+
.exec();
|
|
120
|
+
if (!userDoc || userDoc.accountStatus !== AccountStatus.Active) {
|
|
121
|
+
return res.status(403).send(
|
|
122
|
+
// amazonq-ignore-next-line false positive, hardcoded string
|
|
123
|
+
getSuiteCoreTranslation(SuiteCoreStringKey.Validation_UserNotFound),
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
const roleService = new RoleService<TID, D, TTokenRole>(application);
|
|
127
|
+
const roles = await roleService.getUserRoles(userDoc._id as TID, sess);
|
|
128
|
+
const tokenRoles = roleService.rolesToTokenRoles(roles);
|
|
129
|
+
req.user = RequestUserService.makeRequestUserDTO(userDoc, tokenRoles);
|
|
130
|
+
const context = GlobalActiveContext.getInstance();
|
|
131
|
+
context.userLanguage = userDoc.siteLanguage ?? context.userLanguage;
|
|
132
|
+
context.setLanguageContextSpace('user');
|
|
133
|
+
context.userTimezone = createTimezone(userDoc.timezone);
|
|
134
|
+
next();
|
|
135
|
+
return res;
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
timeoutMs: application.environment.mongo.transactionTimeout,
|
|
139
|
+
},
|
|
140
|
+
);
|
|
141
|
+
} catch (err) {
|
|
142
|
+
if (err instanceof TokenExpiredError) {
|
|
143
|
+
return res.status(401).send({
|
|
144
|
+
message: getSuiteCoreTranslation(
|
|
145
|
+
SuiteCoreStringKey.Validation_TokenExpired,
|
|
146
|
+
),
|
|
147
|
+
error: err,
|
|
148
|
+
});
|
|
149
|
+
} else if (err instanceof Error && err.name === 'JsonWebTokenError') {
|
|
150
|
+
return res.status(400).send({
|
|
151
|
+
message: getSuiteCoreTranslation(
|
|
152
|
+
SuiteCoreStringKey.Validation_InvalidToken,
|
|
153
|
+
),
|
|
154
|
+
error: err,
|
|
155
|
+
});
|
|
156
|
+
} else {
|
|
157
|
+
return res.status(500).send({
|
|
158
|
+
message: getSuiteCoreTranslation(
|
|
159
|
+
SuiteCoreStringKey.Common_UnexpectedError,
|
|
160
|
+
),
|
|
161
|
+
error: err,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Cleanup middleware for disposing cryptographic resources.
|
|
3
|
+
* Ensures private keys and sensitive material are properly disposed after request completion.
|
|
4
|
+
* @module middlewares/cleanup-crypto
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { NextFunction, Request, Response } from 'express';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Express middleware to cleanup cryptographic resources after request completion.
|
|
11
|
+
* Wraps response.end() to dispose of req.eciesUser before sending response.
|
|
12
|
+
* Should be registered early in middleware chain to ensure cleanup on all responses.
|
|
13
|
+
* @param {Request} req - Express request object
|
|
14
|
+
* @param {Response} res - Express response object
|
|
15
|
+
* @param {NextFunction} next - Express next function
|
|
16
|
+
*/
|
|
17
|
+
export function cleanupCrypto(
|
|
18
|
+
req: Request,
|
|
19
|
+
res: Response,
|
|
20
|
+
next: NextFunction,
|
|
21
|
+
): void {
|
|
22
|
+
// Store original end function
|
|
23
|
+
const originalEnd = res.end;
|
|
24
|
+
|
|
25
|
+
// Override end function to cleanup before response
|
|
26
|
+
const wrappedEnd = function (this: Response, ...args: unknown[]) {
|
|
27
|
+
// Cleanup eciesUser if it exists
|
|
28
|
+
if (req.eciesUser) {
|
|
29
|
+
try {
|
|
30
|
+
// Dispose of sensitive cryptographic material
|
|
31
|
+
req.eciesUser.dispose();
|
|
32
|
+
req.eciesUser = undefined;
|
|
33
|
+
} catch (error) {
|
|
34
|
+
console.error('Error cleaning up crypto resources:', error);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
// Do not dispose system user here; it may be a process-wide singleton
|
|
38
|
+
|
|
39
|
+
// Call original end function
|
|
40
|
+
// Type assertion needed because we're wrapping the end function
|
|
41
|
+
return originalEnd.apply(this, args as Parameters<typeof originalEnd>);
|
|
42
|
+
} as typeof res.end;
|
|
43
|
+
|
|
44
|
+
res.end = wrappedEnd;
|
|
45
|
+
|
|
46
|
+
next();
|
|
47
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Middleware to set global language context from request.
|
|
3
|
+
* Determines user language from Accept-Language header and user preferences.
|
|
4
|
+
* @module middlewares/set-global-context-language
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
// src/middlewares/injectMongooseContext.ts
|
|
8
|
+
|
|
9
|
+
import {
|
|
10
|
+
GlobalActiveContext,
|
|
11
|
+
LanguageRegistry,
|
|
12
|
+
} from '@digitaldefiance/i18n-lib';
|
|
13
|
+
import { NextFunction, Request, Response } from 'express';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Express middleware to set global language context for the request.
|
|
17
|
+
* Uses fallback chain: Accept-Language header → user preference → site default.
|
|
18
|
+
* Sets both user language and language context space in GlobalActiveContext.
|
|
19
|
+
* @param {Request} req - Express request object
|
|
20
|
+
* @param {Response} res - Express response object
|
|
21
|
+
* @param {NextFunction} next - Express next function
|
|
22
|
+
*/
|
|
23
|
+
export function setGlobalContextLanguageFromRequest(
|
|
24
|
+
req: Request,
|
|
25
|
+
res: Response,
|
|
26
|
+
next: NextFunction,
|
|
27
|
+
) {
|
|
28
|
+
// Use fallback chain: accept-language -> user preference -> site default
|
|
29
|
+
const language = LanguageRegistry.getMatchingLanguageCode(
|
|
30
|
+
req.headers['accept-language'] as string,
|
|
31
|
+
req.user?.siteLanguage as string,
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
const context = GlobalActiveContext.getInstance();
|
|
35
|
+
context.setUserLanguage(language);
|
|
36
|
+
context.setLanguageContextSpace('user');
|
|
37
|
+
next();
|
|
38
|
+
}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Model registry for dynamic Mongoose model management.
|
|
3
|
+
* Singleton registry for registering and retrieving Mongoose models.
|
|
4
|
+
* @module model-registry
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
Model,
|
|
9
|
+
Document as MongooseDocument,
|
|
10
|
+
Schema,
|
|
11
|
+
} from '@digitaldefiance/mongoose-types';
|
|
12
|
+
import { IBaseDocument } from './documents/base';
|
|
13
|
+
import { InvalidModelError } from './errors';
|
|
14
|
+
import { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Model registration information.
|
|
18
|
+
* @template T - Document Data type
|
|
19
|
+
* @template U - Document type extending IBaseDocument
|
|
20
|
+
*/
|
|
21
|
+
export type ModelRegistration<
|
|
22
|
+
TID extends PlatformID,
|
|
23
|
+
T,
|
|
24
|
+
U extends IBaseDocument<T, TID>,
|
|
25
|
+
> = {
|
|
26
|
+
modelName: string;
|
|
27
|
+
schema: Schema;
|
|
28
|
+
model: Model<U>;
|
|
29
|
+
collection: string;
|
|
30
|
+
discriminators?: unknown;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Singleton registry for Mongoose models.
|
|
35
|
+
* Manages model registration and retrieval across the application.
|
|
36
|
+
*/
|
|
37
|
+
class ModelRegistry<TID extends PlatformID> {
|
|
38
|
+
protected static _instance: ModelRegistry<PlatformID>;
|
|
39
|
+
protected _models: Map<
|
|
40
|
+
string,
|
|
41
|
+
ModelRegistration<TID, any, IBaseDocument<any, TID>>
|
|
42
|
+
> = new Map();
|
|
43
|
+
|
|
44
|
+
private constructor() {}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Gets the singleton instance of ModelRegistry.
|
|
48
|
+
* @returns {ModelRegistry} The singleton instance
|
|
49
|
+
*/
|
|
50
|
+
public static get instance(): ModelRegistry<PlatformID> {
|
|
51
|
+
if (!ModelRegistry._instance) {
|
|
52
|
+
ModelRegistry._instance = new ModelRegistry();
|
|
53
|
+
}
|
|
54
|
+
return ModelRegistry._instance;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Registers a model with the registry.
|
|
59
|
+
* @template T - Document ID type
|
|
60
|
+
* @template U - Document type extending IBaseDocument
|
|
61
|
+
* @param {ModelRegistration<T, U>} registration - Model registration information
|
|
62
|
+
*/
|
|
63
|
+
public register<T, U extends IBaseDocument<T, TID>>(
|
|
64
|
+
registration: ModelRegistration<TID, T, U>,
|
|
65
|
+
): void {
|
|
66
|
+
this._models.set(
|
|
67
|
+
registration.modelName,
|
|
68
|
+
registration as ModelRegistration<TID, T, U>,
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Retrieves a model registration by name.
|
|
74
|
+
* @template T - Document ID type
|
|
75
|
+
* @template U - Document type extending IBaseDocument
|
|
76
|
+
* @param {string} modelName - Name of the model
|
|
77
|
+
* @returns {ModelRegistration<T, U>} Model registration
|
|
78
|
+
* @throws {InvalidModelError} If model is not registered
|
|
79
|
+
*/
|
|
80
|
+
public get<T, U extends IBaseDocument<T, TID>>(
|
|
81
|
+
modelName: string,
|
|
82
|
+
): ModelRegistration<TID, T, U> {
|
|
83
|
+
const result = this._models.get(modelName) as ModelRegistration<TID, T, U>;
|
|
84
|
+
if (result === undefined) {
|
|
85
|
+
throw new InvalidModelError(modelName);
|
|
86
|
+
}
|
|
87
|
+
return result;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Retrieves a typed Mongoose model by name.
|
|
92
|
+
* @template TDoc - Mongoose document type
|
|
93
|
+
* @param {string} modelName - Name of the model
|
|
94
|
+
* @returns {Model<TDoc>} Mongoose model
|
|
95
|
+
* @throws {InvalidModelError} If model is not registered
|
|
96
|
+
*/
|
|
97
|
+
public getTypedModel<TDoc extends MongooseDocument>(
|
|
98
|
+
modelName: string,
|
|
99
|
+
): Model<TDoc> {
|
|
100
|
+
const result = this._models.get(modelName);
|
|
101
|
+
if (result === undefined) {
|
|
102
|
+
throw new InvalidModelError(modelName);
|
|
103
|
+
}
|
|
104
|
+
return result.model as Model<TDoc>;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Retrieves a typed Mongoose schema by name.
|
|
109
|
+
* @template TDoc - Mongoose document type
|
|
110
|
+
* @param {string} modelName - Name of the model
|
|
111
|
+
* @returns {Schema<TDoc>} Mongoose schema
|
|
112
|
+
* @throws {InvalidModelError} If model is not registered
|
|
113
|
+
*/
|
|
114
|
+
public getTypedSchema<TDoc extends MongooseDocument>(
|
|
115
|
+
modelName: string,
|
|
116
|
+
): Schema<TDoc> {
|
|
117
|
+
const result = this._models.get(modelName);
|
|
118
|
+
if (result === undefined) {
|
|
119
|
+
throw new InvalidModelError(modelName);
|
|
120
|
+
}
|
|
121
|
+
return result.schema as Schema<TDoc>;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Checks if a model is registered.
|
|
126
|
+
* @param {string} modelName - Name of the model
|
|
127
|
+
* @returns {boolean} True if model exists
|
|
128
|
+
*/
|
|
129
|
+
public has(modelName: string): boolean {
|
|
130
|
+
return this._models.has(modelName);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Lists all registered model names.
|
|
135
|
+
* @returns {string[]} Array of model names
|
|
136
|
+
*/
|
|
137
|
+
public list(): string[] {
|
|
138
|
+
return Array.from(this._models.keys());
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
export { ModelRegistry };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Email token model factory for MongoDB.
|
|
3
|
+
* Creates Mongoose model for email verification and password reset tokens.
|
|
4
|
+
* @module models/email-token
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { Connection, Model, Schema } from '@digitaldefiance/mongoose-types';
|
|
8
|
+
import { IEmailTokenDocument } from '../documents/email-token';
|
|
9
|
+
import { BaseModelName } from '../enumerations';
|
|
10
|
+
import { SchemaCollection } from '../enumerations/schema-collection';
|
|
11
|
+
import { EmailTokenSchema } from '../schemas/email-token';
|
|
12
|
+
import type { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Creates a Mongoose model for email token documents.
|
|
16
|
+
* @template TModelName - Model name type (defaults to BaseModelName)
|
|
17
|
+
* @template TCollection - Collection name type (defaults to SchemaCollection)
|
|
18
|
+
* @template TID - Platform ID type (defaults to Buffer)
|
|
19
|
+
* @param {Connection} connection - Mongoose connection instance
|
|
20
|
+
* @param {TModelName} [modelName] - Model name (defaults to 'EmailToken')
|
|
21
|
+
* @param {TCollection} [collection] - Collection name (defaults to 'emailTokens')
|
|
22
|
+
* @param {Schema} [schema] - Mongoose schema (defaults to EmailTokenSchema)
|
|
23
|
+
* @returns {Model<IEmailTokenDocument<TID>>} Configured Mongoose model
|
|
24
|
+
*/
|
|
25
|
+
export function EmailTokenModel<
|
|
26
|
+
TModelName extends string = BaseModelName,
|
|
27
|
+
TCollection extends string = SchemaCollection,
|
|
28
|
+
TID extends PlatformID = Buffer,
|
|
29
|
+
>(
|
|
30
|
+
connection: Connection,
|
|
31
|
+
modelName?: TModelName,
|
|
32
|
+
collection?: TCollection,
|
|
33
|
+
schema?: Schema,
|
|
34
|
+
): Model<IEmailTokenDocument<TID>>;
|
|
35
|
+
|
|
36
|
+
export function EmailTokenModel<TID extends PlatformID = Buffer>(
|
|
37
|
+
connection: Connection,
|
|
38
|
+
modelName: string = BaseModelName.EmailToken,
|
|
39
|
+
collection: string = SchemaCollection.EmailToken,
|
|
40
|
+
schema: Schema = EmailTokenSchema,
|
|
41
|
+
) {
|
|
42
|
+
return connection.model<IEmailTokenDocument<TID>>(
|
|
43
|
+
modelName,
|
|
44
|
+
schema,
|
|
45
|
+
collection,
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export default EmailTokenModel;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Mnemonic model factory for MongoDB.
|
|
3
|
+
* Creates Mongoose model for mnemonic hash storage.
|
|
4
|
+
* @module models/mnemonic
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { Connection, Model, Schema } from '@digitaldefiance/mongoose-types';
|
|
8
|
+
import { IMnemonicDocument } from '../documents/mnemonic';
|
|
9
|
+
import { BaseModelName } from '../enumerations';
|
|
10
|
+
import { SchemaCollection } from '../enumerations/schema-collection';
|
|
11
|
+
import { MnemonicSchema } from '../schemas/mnemonic';
|
|
12
|
+
import type { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Creates a Mongoose model for mnemonic documents.
|
|
16
|
+
* @template TModelName - Model name type (defaults to BaseModelName)
|
|
17
|
+
* @template TCollection - Collection name type (defaults to SchemaCollection)
|
|
18
|
+
* @template TID - Platform ID type (defaults to Buffer)
|
|
19
|
+
* @param {Connection} connection - Mongoose connection instance
|
|
20
|
+
* @param {TModelName} modelName - Model name (defaults to 'Mnemonic')
|
|
21
|
+
* @param {TCollection} collection - Collection name (defaults to 'mnemonics')
|
|
22
|
+
* @param {Schema} schema - Mongoose schema (defaults to MnemonicSchema)
|
|
23
|
+
* @returns {Model<IMnemonicDocument<TID>>} Configured Mongoose model
|
|
24
|
+
*/
|
|
25
|
+
export function MnemonicModel<
|
|
26
|
+
TModelName extends string = BaseModelName,
|
|
27
|
+
TCollection extends string = SchemaCollection,
|
|
28
|
+
TID extends PlatformID = Buffer,
|
|
29
|
+
>(
|
|
30
|
+
connection: Connection,
|
|
31
|
+
modelName: TModelName = BaseModelName.Mnemonic as TModelName,
|
|
32
|
+
collection: TCollection = SchemaCollection.Mnemonic as TCollection,
|
|
33
|
+
schema: Schema = MnemonicSchema,
|
|
34
|
+
): Model<IMnemonicDocument<TID>> {
|
|
35
|
+
return connection.model<IMnemonicDocument<TID>>(
|
|
36
|
+
modelName,
|
|
37
|
+
schema,
|
|
38
|
+
collection,
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export default MnemonicModel;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Role model factory for MongoDB.
|
|
3
|
+
* Creates Mongoose model for role management with RBAC.
|
|
4
|
+
* @module models/role
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { Connection, Model, Schema } from '@digitaldefiance/mongoose-types';
|
|
8
|
+
import { IRoleDocument } from '../documents/role';
|
|
9
|
+
import { BaseModelName } from '../enumerations';
|
|
10
|
+
import { SchemaCollection } from '../enumerations/schema-collection';
|
|
11
|
+
import { RoleSchema } from '../schemas/role';
|
|
12
|
+
import type { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Creates a Mongoose model for role documents.
|
|
16
|
+
* @template TModelName - Model name type (defaults to BaseModelName)
|
|
17
|
+
* @template TCollection - Collection name type (defaults to SchemaCollection)
|
|
18
|
+
* @template TID - Platform ID type (defaults to Buffer)
|
|
19
|
+
* @param {Connection} connection - Mongoose connection instance
|
|
20
|
+
* @param {TModelName} modelName - Model name (defaults to 'Role')
|
|
21
|
+
* @param {TCollection} collection - Collection name (defaults to 'roles')
|
|
22
|
+
* @param {Schema} schema - Mongoose schema (defaults to RoleSchema)
|
|
23
|
+
* @returns {Model<IRoleDocument<TID>>} Configured Mongoose model
|
|
24
|
+
*/
|
|
25
|
+
export function RoleModel<
|
|
26
|
+
TModelName extends string = BaseModelName,
|
|
27
|
+
TCollection extends string = SchemaCollection,
|
|
28
|
+
TID extends PlatformID = Buffer,
|
|
29
|
+
>(
|
|
30
|
+
connection: Connection,
|
|
31
|
+
modelName: TModelName = BaseModelName.Role as TModelName,
|
|
32
|
+
collection: TCollection = SchemaCollection.Role as TCollection,
|
|
33
|
+
schema: Schema = RoleSchema,
|
|
34
|
+
): Model<IRoleDocument<TID>> {
|
|
35
|
+
return connection.model<IRoleDocument<TID>>(modelName, schema, collection);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export default RoleModel;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Used direct login token model factory for MongoDB.
|
|
3
|
+
* Creates Mongoose model for tracking consumed direct login tokens.
|
|
4
|
+
* @module models/used-direct-login-token
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { Connection, Model, Schema } from '@digitaldefiance/mongoose-types';
|
|
8
|
+
import { IUsedDirectLoginTokenDocument } from '../documents/used-direct-login-token';
|
|
9
|
+
import { BaseModelName } from '../enumerations';
|
|
10
|
+
import { SchemaCollection } from '../enumerations/schema-collection';
|
|
11
|
+
import { UsedDirectLoginTokenSchema } from '../schemas/used-direct-login-token';
|
|
12
|
+
import type { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Creates a Mongoose model for used direct login token documents.
|
|
16
|
+
* @template TModelName - Model name type (defaults to BaseModelName)
|
|
17
|
+
* @template TCollection - Collection name type (defaults to SchemaCollection)
|
|
18
|
+
* @template TID - Platform ID type (defaults to Buffer)
|
|
19
|
+
* @param {Connection} connection - Mongoose connection instance
|
|
20
|
+
* @param {TModelName} [modelName] - Model name (defaults to 'UsedDirectLoginToken')
|
|
21
|
+
* @param {TCollection} [collection] - Collection name (defaults to 'usedDirectLoginTokens')
|
|
22
|
+
* @param {Schema} [schema] - Mongoose schema (defaults to UsedDirectLoginTokenSchema)
|
|
23
|
+
* @returns {Model<IUsedDirectLoginTokenDocument<TID>>} Configured Mongoose model
|
|
24
|
+
*/
|
|
25
|
+
export function UsedDirectLoginTokenModel<
|
|
26
|
+
TModelName extends string = BaseModelName,
|
|
27
|
+
TCollection extends string = SchemaCollection,
|
|
28
|
+
TID extends PlatformID = Buffer,
|
|
29
|
+
>(
|
|
30
|
+
connection: Connection,
|
|
31
|
+
modelName?: TModelName,
|
|
32
|
+
collection?: TCollection,
|
|
33
|
+
schema?: Schema,
|
|
34
|
+
): Model<IUsedDirectLoginTokenDocument<TID>>;
|
|
35
|
+
|
|
36
|
+
export function UsedDirectLoginTokenModel<TID extends PlatformID = Buffer>(
|
|
37
|
+
connection: Connection,
|
|
38
|
+
modelName?: string,
|
|
39
|
+
collection?: string,
|
|
40
|
+
schema?: Schema,
|
|
41
|
+
): Model<IUsedDirectLoginTokenDocument<TID>> {
|
|
42
|
+
return connection.model<IUsedDirectLoginTokenDocument<TID>>(
|
|
43
|
+
modelName ?? BaseModelName.UsedDirectLoginToken,
|
|
44
|
+
schema ?? UsedDirectLoginTokenSchema,
|
|
45
|
+
collection ?? SchemaCollection.UsedDirectLoginToken,
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export default UsedDirectLoginTokenModel;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview User-role relationship model factory for MongoDB.
|
|
3
|
+
* Creates Mongoose model for many-to-many user-role associations.
|
|
4
|
+
* @module models/user-role
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { Connection, Model, Schema } from '@digitaldefiance/mongoose-types';
|
|
8
|
+
import { IUserRoleDocument } from '../documents/user-role';
|
|
9
|
+
import { BaseModelName } from '../enumerations';
|
|
10
|
+
import { SchemaCollection } from '../enumerations/schema-collection';
|
|
11
|
+
import { UserRoleSchema } from '../schemas/user-role';
|
|
12
|
+
import type { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Creates a Mongoose model for user-role relationship documents.
|
|
16
|
+
* @template TModelName - Model name type (defaults to BaseModelName)
|
|
17
|
+
* @template TCollection - Collection name type (defaults to SchemaCollection)
|
|
18
|
+
* @template TID - Platform ID type (defaults to Buffer)
|
|
19
|
+
* @param {Connection} connection - Mongoose connection instance
|
|
20
|
+
* @param {TModelName} modelName - Model name (defaults to 'UserRole')
|
|
21
|
+
* @param {TCollection} collection - Collection name (defaults to 'userRoles')
|
|
22
|
+
* @param {Schema} schema - Mongoose schema (defaults to UserRoleSchema)
|
|
23
|
+
* @returns {Model<IUserRoleDocument<TID>>} Configured Mongoose model
|
|
24
|
+
*/
|
|
25
|
+
export default function UserRoleModel<
|
|
26
|
+
TModelName extends string = BaseModelName,
|
|
27
|
+
TCollection extends string = SchemaCollection,
|
|
28
|
+
TID extends PlatformID = Buffer,
|
|
29
|
+
>(
|
|
30
|
+
connection: Connection,
|
|
31
|
+
modelName: TModelName = BaseModelName.UserRole as TModelName,
|
|
32
|
+
collection: TCollection = SchemaCollection.UserRole as TCollection,
|
|
33
|
+
schema: Schema = UserRoleSchema,
|
|
34
|
+
): Model<IUserRoleDocument<TID>> {
|
|
35
|
+
return connection.model<IUserRoleDocument<TID>>(
|
|
36
|
+
modelName,
|
|
37
|
+
schema,
|
|
38
|
+
collection,
|
|
39
|
+
);
|
|
40
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview User model factory for MongoDB.
|
|
3
|
+
* Creates Mongoose model for user management with authentication.
|
|
4
|
+
* @module models/user
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { Connection, Model, Schema } from '@digitaldefiance/mongoose-types';
|
|
8
|
+
import { IUserDocument } from '../documents/user';
|
|
9
|
+
import { BaseModelName } from '../enumerations';
|
|
10
|
+
import { SchemaCollection } from '../enumerations/schema-collection';
|
|
11
|
+
import { UserSchema } from '../schemas/user';
|
|
12
|
+
import type { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Creates a Mongoose model for user documents.
|
|
16
|
+
* @template TModelName - Model name type (defaults to BaseModelName)
|
|
17
|
+
* @template TCollection - Collection name type (defaults to SchemaCollection)
|
|
18
|
+
* @template TID - Platform ID type (defaults to Buffer)
|
|
19
|
+
* @param {Connection} connection - Mongoose connection instance
|
|
20
|
+
* @param {TModelName} modelName - Model name (defaults to 'User')
|
|
21
|
+
* @param {TCollection} collection - Collection name (defaults to 'users')
|
|
22
|
+
* @param {Schema} schema - Mongoose schema (defaults to UserSchema)
|
|
23
|
+
* @returns {Model<IUserDocument<string, TID>>} Configured Mongoose model
|
|
24
|
+
*/
|
|
25
|
+
export function UserModel<
|
|
26
|
+
TModelName extends string = BaseModelName,
|
|
27
|
+
TCollection extends string = SchemaCollection,
|
|
28
|
+
TID extends PlatformID = Buffer,
|
|
29
|
+
>(
|
|
30
|
+
connection: Connection,
|
|
31
|
+
modelName: TModelName = BaseModelName.User as TModelName,
|
|
32
|
+
collection: TCollection = SchemaCollection.User as TCollection,
|
|
33
|
+
schema: Schema = UserSchema,
|
|
34
|
+
): Model<IUserDocument<string, TID>> {
|
|
35
|
+
return connection.model<IUserDocument<string, TID>>(
|
|
36
|
+
modelName,
|
|
37
|
+
schema,
|
|
38
|
+
collection,
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export default UserModel;
|