@digitaldefiance/node-express-suite 1.0.21 → 1.0.23
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/README.md +9 -0
- package/package.json +27 -32
- package/src/application-base.ts +492 -0
- package/src/application.ts +254 -0
- package/src/backup-code.ts +336 -0
- package/src/constants.ts +69 -0
- package/src/controllers/base.ts +440 -0
- package/{dist/controllers/index.d.ts → src/controllers/index.ts} +0 -1
- package/src/controllers/user.ts +1451 -0
- package/src/decorators/base-controller.ts +61 -0
- package/src/decorators/controller.ts +109 -0
- package/{dist/decorators/index.d.ts → src/decorators/index.ts} +0 -1
- package/src/decorators/zod-validation.ts +57 -0
- package/src/defaults.ts +94 -0
- package/src/documents/base.ts +7 -0
- package/src/documents/email-token.ts +14 -0
- package/{dist/documents/index.d.ts → src/documents/index.ts} +0 -1
- package/{dist/documents/mnemonic.d.ts → src/documents/mnemonic.ts} +5 -2
- package/{dist/documents/role.d.ts → src/documents/role.ts} +5 -2
- package/src/documents/used-direct-login-token.ts +7 -0
- package/{dist/documents/user-role.d.ts → src/documents/user-role.ts} +5 -2
- package/{dist/documents/user.d.ts → src/documents/user.ts} +4 -2
- package/src/enumerations/base-model-name.ts +41 -0
- package/{dist/enumerations/index.d.ts → src/enumerations/index.ts} +0 -1
- package/src/enumerations/length-encoding-type.ts +6 -0
- package/src/enumerations/schema-collection.ts +33 -0
- package/src/enumerations/symmetric-error-type.ts +4 -0
- package/src/environment.ts +770 -0
- package/src/errors/express-validation.ts +21 -0
- package/{dist/errors/index.d.ts → src/errors/index.ts} +0 -1
- package/src/errors/invalid-backup-code-version.ts +14 -0
- package/src/errors/invalid-jwt-token.ts +10 -0
- package/src/errors/invalid-model.ts +11 -0
- package/src/errors/invalid-new-password.ts +18 -0
- package/src/errors/invalid-password.ts +13 -0
- package/src/errors/missing-validated-data.ts +36 -0
- package/src/errors/mnemonic-or-password-required.ts +12 -0
- package/src/errors/model-not-registered.ts +11 -0
- package/src/errors/mongoose-validation.ts +34 -0
- package/src/errors/symmetric.ts +41 -0
- package/src/errors/token-expired.ts +10 -0
- package/src/get-language.ts +53 -0
- package/src/get-timezone.ts +45 -0
- package/{dist/index.d.ts → src/index.ts} +3 -2
- package/{dist/interfaces/api-error-response.d.ts → src/interfaces/api-error-response.ts} +2 -2
- package/src/interfaces/api-express-validation-error-response.ts +8 -0
- package/src/interfaces/api-message-response.ts +3 -0
- package/{dist/interfaces/api-mongo-validation-error-response.d.ts → src/interfaces/api-mongo-validation-error-response.ts} +2 -2
- package/{dist/interfaces/api-responses/backup-codes-response.d.ts → src/interfaces/api-responses/backup-codes-response.ts} +2 -2
- package/{dist/interfaces/api-responses/challenge-response.d.ts → src/interfaces/api-responses/challenge-response.ts} +3 -3
- package/{dist/interfaces/api-responses/code-count-response.d.ts → src/interfaces/api-responses/code-count-response.ts} +2 -2
- package/{dist/interfaces/api-responses/index.d.ts → src/interfaces/api-responses/index.ts} +0 -1
- package/{dist/interfaces/api-responses/login-response.d.ts → src/interfaces/api-responses/login-response.ts} +4 -4
- package/{dist/interfaces/api-responses/mnemonic-response.d.ts → src/interfaces/api-responses/mnemonic-response.ts} +2 -2
- package/{dist/interfaces/api-responses/registration-response.d.ts → src/interfaces/api-responses/registration-response.ts} +3 -3
- package/{dist/interfaces/api-responses/request-user-response.d.ts → src/interfaces/api-responses/request-user-response.ts} +2 -2
- package/{dist/interfaces/application.d.ts → src/interfaces/application.ts} +7 -7
- package/src/interfaces/backend-objects/email-token.ts +11 -0
- package/{dist/interfaces/backend-objects/index.d.ts → src/interfaces/backend-objects/index.ts} +0 -1
- package/{dist/interfaces/backend-objects/request-user.d.ts → src/interfaces/backend-objects/request-user.ts} +7 -2
- package/{dist/interfaces/backend-objects/role.d.ts → src/interfaces/backend-objects/role.ts} +1 -1
- package/src/interfaces/backend-objects/user.ts +9 -0
- package/src/interfaces/checksum-config.ts +4 -0
- package/src/interfaces/checksum-consts.ts +13 -0
- package/{dist/interfaces/constants.d.ts → src/interfaces/constants.ts} +5 -5
- package/src/interfaces/create-user-basics.ts +17 -0
- package/src/interfaces/csp-config.ts +35 -0
- package/src/interfaces/deep-partial.ts +3 -0
- package/{dist/interfaces/discriminator-collections.d.ts → src/interfaces/discriminator-collections.ts} +3 -3
- package/src/interfaces/email-service.ts +8 -0
- package/src/interfaces/environment-mongo.ts +76 -0
- package/src/interfaces/environment.ts +181 -0
- package/src/interfaces/failable-result.ts +6 -0
- package/src/interfaces/fec-consts.ts +4 -0
- package/src/interfaces/handleable-error-options.ts +6 -0
- package/{dist/interfaces/index.d.ts → src/interfaces/index.ts} +0 -1
- package/src/interfaces/jwt-consts.ts +23 -0
- package/src/interfaces/jwt-sign-response.ts +19 -0
- package/src/interfaces/mongo-errors.ts +5 -0
- package/src/interfaces/request-user.ts +50 -0
- package/src/interfaces/required-string-keys.ts +26 -0
- package/src/interfaces/schema.ts +31 -0
- package/src/interfaces/server-init-result.ts +37 -0
- package/src/interfaces/status-code-response.ts +7 -0
- package/src/interfaces/symmetric-encryption-results.d.ts +5 -0
- package/src/interfaces/symmetric-encryption-results.d.ts.map +1 -0
- package/src/interfaces/symmetric-encryption-results.js.map +1 -0
- package/src/interfaces/symmetric-encryption-results.ts +4 -0
- package/{dist/interfaces/token-response.d.ts → src/interfaces/token-response.ts} +2 -2
- package/src/middlewares/authenticate-crypto.ts +243 -0
- package/src/middlewares/authenticate-token.ts +152 -0
- package/src/middlewares/cleanup-crypto.ts +40 -0
- package/{dist/middlewares/index.d.ts → src/middlewares/index.ts} +0 -1
- package/src/middlewares/set-global-context-language.ts +24 -0
- package/src/middlewares.ts +120 -0
- package/src/model-registry.ts +75 -0
- package/src/models/email-token.ts +19 -0
- package/{dist/models/index.d.ts → src/models/index.ts} +0 -1
- package/src/models/mnemonic.ts +19 -0
- package/src/models/role.ts +19 -0
- package/src/models/used-direct-login-token.ts +23 -0
- package/src/models/user-role.ts +17 -0
- package/src/models/user.ts +19 -0
- package/src/registry/email-service-registry.ts +24 -0
- package/{dist/registry/index.d.ts → src/registry/index.ts} +0 -1
- package/src/routers/api.ts +151 -0
- package/src/routers/app.ts +258 -0
- package/src/routers/base.ts +17 -0
- package/{dist/routers/index.d.ts → src/routers/index.ts} +0 -1
- package/src/schemas/email-token.ts +91 -0
- package/{dist/schemas/index.d.ts → src/schemas/index.ts} +1 -2
- package/src/schemas/mnemonic.ts +37 -0
- package/src/schemas/role.ts +127 -0
- package/src/schemas/schema.ts +140 -0
- package/src/schemas/used-direct-login-token.ts +38 -0
- package/src/schemas/user-role.ts +75 -0
- package/src/schemas/user.ts +202 -0
- package/src/services/backup-code.ts +316 -0
- package/src/services/base.ts +33 -0
- package/src/services/checksum.ts +161 -0
- package/src/services/crc.ts +213 -0
- package/src/services/database-initialization.ts +1479 -0
- package/src/services/db-init-cache.d.ts +16 -0
- package/src/services/direct-login-token.ts +62 -0
- package/src/services/fec-usage-example.ts +102 -0
- package/src/services/fec.ts +296 -0
- package/{dist/services/index.d.ts → src/services/index.ts} +0 -1
- package/src/services/jwt.ts +134 -0
- package/src/services/key-wrapping.ts +434 -0
- package/src/services/mnemonic.ts +167 -0
- package/src/services/request-user.ts +62 -0
- package/src/services/role.ts +396 -0
- package/src/services/symmetric.ts +139 -0
- package/src/services/system-user.ts +82 -0
- package/src/services/user.ts +2137 -0
- package/src/services/xor.ts +34 -0
- package/src/types.d.ts +44 -0
- package/src/types.ts +128 -0
- package/src/utils.ts +1022 -0
- package/dist/application-base.d.ts +0 -112
- package/dist/application-base.d.ts.map +0 -1
- package/dist/application-base.js +0 -301
- package/dist/application-base.js.map +0 -1
- package/dist/application.d.ts +0 -23
- package/dist/application.d.ts.map +0 -1
- package/dist/application.js +0 -126
- package/dist/application.js.map +0 -1
- package/dist/backup-code.d.ts +0 -67
- package/dist/backup-code.d.ts.map +0 -1
- package/dist/backup-code.js +0 -270
- package/dist/backup-code.js.map +0 -1
- package/dist/constants.d.ts +0 -16
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js +0 -54
- package/dist/constants.js.map +0 -1
- package/dist/controllers/base.d.ts +0 -63
- package/dist/controllers/base.d.ts.map +0 -1
- package/dist/controllers/base.js +0 -269
- package/dist/controllers/base.js.map +0 -1
- package/dist/controllers/index.d.ts.map +0 -1
- package/dist/controllers/index.js +0 -19
- package/dist/controllers/index.js.map +0 -1
- package/dist/controllers/user.d.ts +0 -45
- package/dist/controllers/user.d.ts.map +0 -1
- package/dist/controllers/user.js +0 -750
- package/dist/controllers/user.js.map +0 -1
- package/dist/decorators/base-controller.d.ts +0 -14
- package/dist/decorators/base-controller.d.ts.map +0 -1
- package/dist/decorators/base-controller.js +0 -49
- package/dist/decorators/base-controller.js.map +0 -1
- package/dist/decorators/controller.d.ts +0 -32
- package/dist/decorators/controller.d.ts.map +0 -1
- package/dist/decorators/controller.js +0 -67
- package/dist/decorators/controller.js.map +0 -1
- package/dist/decorators/index.d.ts.map +0 -1
- package/dist/decorators/index.js +0 -20
- package/dist/decorators/index.js.map +0 -1
- package/dist/decorators/zod-validation.d.ts +0 -5
- package/dist/decorators/zod-validation.d.ts.map +0 -1
- package/dist/decorators/zod-validation.js +0 -47
- package/dist/decorators/zod-validation.js.map +0 -1
- package/dist/defaults.d.ts +0 -7
- package/dist/defaults.d.ts.map +0 -1
- package/dist/defaults.js +0 -83
- package/dist/defaults.js.map +0 -1
- package/dist/documents/base.d.ts +0 -3
- package/dist/documents/base.d.ts.map +0 -1
- package/dist/documents/base.js +0 -3
- package/dist/documents/base.js.map +0 -1
- package/dist/documents/email-token.d.ts +0 -8
- package/dist/documents/email-token.d.ts.map +0 -1
- package/dist/documents/email-token.js +0 -3
- package/dist/documents/email-token.js.map +0 -1
- package/dist/documents/index.d.ts.map +0 -1
- package/dist/documents/index.js +0 -3
- package/dist/documents/index.js.map +0 -1
- package/dist/documents/mnemonic.d.ts.map +0 -1
- package/dist/documents/mnemonic.js +0 -3
- package/dist/documents/mnemonic.js.map +0 -1
- package/dist/documents/role.d.ts.map +0 -1
- package/dist/documents/role.js +0 -3
- package/dist/documents/role.js.map +0 -1
- package/dist/documents/used-direct-login-token.d.ts +0 -5
- package/dist/documents/used-direct-login-token.d.ts.map +0 -1
- package/dist/documents/used-direct-login-token.js +0 -3
- package/dist/documents/used-direct-login-token.js.map +0 -1
- package/dist/documents/user-role.d.ts.map +0 -1
- package/dist/documents/user-role.js +0 -3
- package/dist/documents/user-role.js.map +0 -1
- package/dist/documents/user.d.ts.map +0 -1
- package/dist/documents/user.js +0 -3
- package/dist/documents/user.js.map +0 -1
- package/dist/enumerations/base-model-name.d.ts +0 -38
- package/dist/enumerations/base-model-name.d.ts.map +0 -1
- package/dist/enumerations/base-model-name.js +0 -34
- package/dist/enumerations/base-model-name.js.map +0 -1
- package/dist/enumerations/index.d.ts.map +0 -1
- package/dist/enumerations/index.js +0 -21
- package/dist/enumerations/index.js.map +0 -1
- package/dist/enumerations/length-encoding-type.d.ts +0 -7
- package/dist/enumerations/length-encoding-type.d.ts.map +0 -1
- package/dist/enumerations/length-encoding-type.js +0 -11
- package/dist/enumerations/length-encoding-type.js.map +0 -1
- package/dist/enumerations/schema-collection.d.ts +0 -34
- package/dist/enumerations/schema-collection.d.ts.map +0 -1
- package/dist/enumerations/schema-collection.js +0 -38
- package/dist/enumerations/schema-collection.js.map +0 -1
- package/dist/enumerations/symmetric-error-type.d.ts +0 -5
- package/dist/enumerations/symmetric-error-type.d.ts.map +0 -1
- package/dist/enumerations/symmetric-error-type.js +0 -9
- package/dist/enumerations/symmetric-error-type.js.map +0 -1
- package/dist/environment.d.ts +0 -189
- package/dist/environment.d.ts.map +0 -1
- package/dist/environment.js +0 -618
- package/dist/environment.js.map +0 -1
- package/dist/errors/express-validation.d.ts +0 -9
- package/dist/errors/express-validation.d.ts.map +0 -1
- package/dist/errors/express-validation.js +0 -17
- package/dist/errors/express-validation.js.map +0 -1
- package/dist/errors/index.d.ts.map +0 -1
- package/dist/errors/index.js +0 -29
- package/dist/errors/index.js.map +0 -1
- package/dist/errors/invalid-backup-code-version.d.ts +0 -6
- package/dist/errors/invalid-backup-code-version.d.ts.map +0 -1
- package/dist/errors/invalid-backup-code-version.js +0 -14
- package/dist/errors/invalid-backup-code-version.js.map +0 -1
- package/dist/errors/invalid-jwt-token.d.ts +0 -5
- package/dist/errors/invalid-jwt-token.d.ts.map +0 -1
- package/dist/errors/invalid-jwt-token.js +0 -11
- package/dist/errors/invalid-jwt-token.js.map +0 -1
- package/dist/errors/invalid-model.d.ts +0 -6
- package/dist/errors/invalid-model.d.ts.map +0 -1
- package/dist/errors/invalid-model.js +0 -13
- package/dist/errors/invalid-model.js.map +0 -1
- package/dist/errors/invalid-new-password.d.ts +0 -5
- package/dist/errors/invalid-new-password.d.ts.map +0 -1
- package/dist/errors/invalid-new-password.js +0 -14
- package/dist/errors/invalid-new-password.js.map +0 -1
- package/dist/errors/invalid-password.d.ts +0 -5
- package/dist/errors/invalid-password.d.ts.map +0 -1
- package/dist/errors/invalid-password.js +0 -14
- package/dist/errors/invalid-password.js.map +0 -1
- package/dist/errors/missing-validated-data.d.ts +0 -7
- package/dist/errors/missing-validated-data.d.ts.map +0 -1
- package/dist/errors/missing-validated-data.js +0 -34
- package/dist/errors/missing-validated-data.js.map +0 -1
- package/dist/errors/mnemonic-or-password-required.d.ts +0 -5
- package/dist/errors/mnemonic-or-password-required.d.ts.map +0 -1
- package/dist/errors/mnemonic-or-password-required.js +0 -13
- package/dist/errors/mnemonic-or-password-required.js.map +0 -1
- package/dist/errors/model-not-registered.d.ts +0 -5
- package/dist/errors/model-not-registered.d.ts.map +0 -1
- package/dist/errors/model-not-registered.js +0 -12
- package/dist/errors/model-not-registered.js.map +0 -1
- package/dist/errors/mongoose-validation.d.ts +0 -11
- package/dist/errors/mongoose-validation.d.ts.map +0 -1
- package/dist/errors/mongoose-validation.js +0 -16
- package/dist/errors/mongoose-validation.js.map +0 -1
- package/dist/errors/symmetric.d.ts +0 -8
- package/dist/errors/symmetric.d.ts.map +0 -1
- package/dist/errors/symmetric.js +0 -23
- package/dist/errors/symmetric.js.map +0 -1
- package/dist/errors/token-expired.d.ts +0 -5
- package/dist/errors/token-expired.d.ts.map +0 -1
- package/dist/errors/token-expired.js +0 -11
- package/dist/errors/token-expired.js.map +0 -1
- package/dist/get-language.d.ts +0 -2
- package/dist/get-language.d.ts.map +0 -1
- package/dist/get-language.js +0 -30
- package/dist/get-language.js.map +0 -1
- package/dist/get-timezone.d.ts +0 -3
- package/dist/get-timezone.d.ts.map +0 -1
- package/dist/get-timezone.js +0 -31
- package/dist/get-timezone.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -40
- package/dist/index.js.map +0 -1
- package/dist/interfaces/api-error-response.d.ts.map +0 -1
- package/dist/interfaces/api-error-response.js +0 -3
- package/dist/interfaces/api-error-response.js.map +0 -1
- package/dist/interfaces/api-express-validation-error-response.d.ts +0 -7
- package/dist/interfaces/api-express-validation-error-response.d.ts.map +0 -1
- package/dist/interfaces/api-express-validation-error-response.js +0 -3
- package/dist/interfaces/api-express-validation-error-response.js.map +0 -1
- package/dist/interfaces/api-message-response.d.ts +0 -4
- package/dist/interfaces/api-message-response.d.ts.map +0 -1
- package/dist/interfaces/api-message-response.js +0 -3
- package/dist/interfaces/api-message-response.js.map +0 -1
- package/dist/interfaces/api-mongo-validation-error-response.d.ts.map +0 -1
- package/dist/interfaces/api-mongo-validation-error-response.js +0 -3
- package/dist/interfaces/api-mongo-validation-error-response.js.map +0 -1
- package/dist/interfaces/api-responses/backup-codes-response.d.ts.map +0 -1
- package/dist/interfaces/api-responses/backup-codes-response.js +0 -3
- package/dist/interfaces/api-responses/backup-codes-response.js.map +0 -1
- package/dist/interfaces/api-responses/challenge-response.d.ts.map +0 -1
- package/dist/interfaces/api-responses/challenge-response.js +0 -3
- package/dist/interfaces/api-responses/challenge-response.js.map +0 -1
- package/dist/interfaces/api-responses/code-count-response.d.ts.map +0 -1
- package/dist/interfaces/api-responses/code-count-response.js +0 -3
- package/dist/interfaces/api-responses/code-count-response.js.map +0 -1
- package/dist/interfaces/api-responses/index.d.ts.map +0 -1
- package/dist/interfaces/api-responses/index.js +0 -24
- package/dist/interfaces/api-responses/index.js.map +0 -1
- package/dist/interfaces/api-responses/login-response.d.ts.map +0 -1
- package/dist/interfaces/api-responses/login-response.js +0 -3
- package/dist/interfaces/api-responses/login-response.js.map +0 -1
- package/dist/interfaces/api-responses/mnemonic-response.d.ts.map +0 -1
- package/dist/interfaces/api-responses/mnemonic-response.js +0 -3
- package/dist/interfaces/api-responses/mnemonic-response.js.map +0 -1
- package/dist/interfaces/api-responses/registration-response.d.ts.map +0 -1
- package/dist/interfaces/api-responses/registration-response.js +0 -3
- package/dist/interfaces/api-responses/registration-response.js.map +0 -1
- package/dist/interfaces/api-responses/request-user-response.d.ts.map +0 -1
- package/dist/interfaces/api-responses/request-user-response.js +0 -3
- package/dist/interfaces/api-responses/request-user-response.js.map +0 -1
- package/dist/interfaces/application.d.ts.map +0 -1
- package/dist/interfaces/application.js +0 -3
- package/dist/interfaces/application.js.map +0 -1
- package/dist/interfaces/backend-objects/email-token.d.ts +0 -4
- package/dist/interfaces/backend-objects/email-token.d.ts.map +0 -1
- package/dist/interfaces/backend-objects/email-token.js +0 -3
- package/dist/interfaces/backend-objects/email-token.js.map +0 -1
- package/dist/interfaces/backend-objects/index.d.ts.map +0 -1
- package/dist/interfaces/backend-objects/index.js +0 -21
- package/dist/interfaces/backend-objects/index.js.map +0 -1
- package/dist/interfaces/backend-objects/request-user.d.ts.map +0 -1
- package/dist/interfaces/backend-objects/request-user.js +0 -3
- package/dist/interfaces/backend-objects/request-user.js.map +0 -1
- package/dist/interfaces/backend-objects/role.d.ts.map +0 -1
- package/dist/interfaces/backend-objects/role.js +0 -3
- package/dist/interfaces/backend-objects/role.js.map +0 -1
- package/dist/interfaces/backend-objects/user.d.ts +0 -4
- package/dist/interfaces/backend-objects/user.d.ts.map +0 -1
- package/dist/interfaces/backend-objects/user.js +0 -3
- package/dist/interfaces/backend-objects/user.js.map +0 -1
- package/dist/interfaces/checksum-config.d.ts +0 -5
- package/dist/interfaces/checksum-config.d.ts.map +0 -1
- package/dist/interfaces/checksum-config.js +0 -3
- package/dist/interfaces/checksum-config.js.map +0 -1
- package/dist/interfaces/checksum-consts.d.ts +0 -11
- package/dist/interfaces/checksum-consts.d.ts.map +0 -1
- package/dist/interfaces/checksum-consts.js +0 -3
- package/dist/interfaces/checksum-consts.js.map +0 -1
- package/dist/interfaces/constants.d.ts.map +0 -1
- package/dist/interfaces/constants.js +0 -3
- package/dist/interfaces/constants.js.map +0 -1
- package/dist/interfaces/create-user-basics.d.ts +0 -18
- package/dist/interfaces/create-user-basics.d.ts.map +0 -1
- package/dist/interfaces/create-user-basics.js +0 -3
- package/dist/interfaces/create-user-basics.js.map +0 -1
- package/dist/interfaces/csp-config.d.ts +0 -14
- package/dist/interfaces/csp-config.d.ts.map +0 -1
- package/dist/interfaces/csp-config.js +0 -3
- package/dist/interfaces/csp-config.js.map +0 -1
- package/dist/interfaces/deep-partial.d.ts +0 -4
- package/dist/interfaces/deep-partial.d.ts.map +0 -1
- package/dist/interfaces/deep-partial.js +0 -3
- package/dist/interfaces/deep-partial.js.map +0 -1
- package/dist/interfaces/discriminator-collections.d.ts.map +0 -1
- package/dist/interfaces/discriminator-collections.js +0 -3
- package/dist/interfaces/discriminator-collections.js.map +0 -1
- package/dist/interfaces/email-service.d.ts +0 -4
- package/dist/interfaces/email-service.d.ts.map +0 -1
- package/dist/interfaces/email-service.js +0 -3
- package/dist/interfaces/email-service.js.map +0 -1
- package/dist/interfaces/environment-mongo.d.ts +0 -76
- package/dist/interfaces/environment-mongo.d.ts.map +0 -1
- package/dist/interfaces/environment-mongo.js +0 -3
- package/dist/interfaces/environment-mongo.js.map +0 -1
- package/dist/interfaces/environment.d.ts +0 -181
- package/dist/interfaces/environment.d.ts.map +0 -1
- package/dist/interfaces/environment.js +0 -3
- package/dist/interfaces/environment.js.map +0 -1
- package/dist/interfaces/failable-result.d.ts +0 -7
- package/dist/interfaces/failable-result.d.ts.map +0 -1
- package/dist/interfaces/failable-result.js +0 -3
- package/dist/interfaces/failable-result.js.map +0 -1
- package/dist/interfaces/fec-consts.d.ts +0 -5
- package/dist/interfaces/fec-consts.d.ts.map +0 -1
- package/dist/interfaces/fec-consts.js +0 -3
- package/dist/interfaces/fec-consts.js.map +0 -1
- package/dist/interfaces/handleable-error-options.d.ts +0 -7
- package/dist/interfaces/handleable-error-options.d.ts.map +0 -1
- package/dist/interfaces/handleable-error-options.js +0 -3
- package/dist/interfaces/handleable-error-options.js.map +0 -1
- package/dist/interfaces/index.d.ts.map +0 -1
- package/dist/interfaces/index.js +0 -46
- package/dist/interfaces/index.js.map +0 -1
- package/dist/interfaces/jwt-consts.d.ts +0 -11
- package/dist/interfaces/jwt-consts.d.ts.map +0 -1
- package/dist/interfaces/jwt-consts.js +0 -3
- package/dist/interfaces/jwt-consts.js.map +0 -1
- package/dist/interfaces/jwt-sign-response.d.ts +0 -11
- package/dist/interfaces/jwt-sign-response.d.ts.map +0 -1
- package/dist/interfaces/jwt-sign-response.js +0 -3
- package/dist/interfaces/jwt-sign-response.js.map +0 -1
- package/dist/interfaces/mongo-errors.d.ts +0 -5
- package/dist/interfaces/mongo-errors.d.ts.map +0 -1
- package/dist/interfaces/mongo-errors.js +0 -3
- package/dist/interfaces/mongo-errors.js.map +0 -1
- package/dist/interfaces/request-user.d.ts +0 -42
- package/dist/interfaces/request-user.d.ts.map +0 -1
- package/dist/interfaces/request-user.js +0 -3
- package/dist/interfaces/request-user.js.map +0 -1
- package/dist/interfaces/required-string-keys.d.ts +0 -22
- package/dist/interfaces/required-string-keys.d.ts.map +0 -1
- package/dist/interfaces/required-string-keys.js +0 -3
- package/dist/interfaces/required-string-keys.js.map +0 -1
- package/dist/interfaces/schema.d.ts +0 -29
- package/dist/interfaces/schema.d.ts.map +0 -1
- package/dist/interfaces/schema.js +0 -3
- package/dist/interfaces/schema.js.map +0 -1
- package/dist/interfaces/server-init-result.d.ts +0 -35
- package/dist/interfaces/server-init-result.d.ts.map +0 -1
- package/dist/interfaces/server-init-result.js +0 -3
- package/dist/interfaces/server-init-result.js.map +0 -1
- package/dist/interfaces/status-code-response.d.ts +0 -7
- package/dist/interfaces/status-code-response.d.ts.map +0 -1
- package/dist/interfaces/status-code-response.js +0 -3
- package/dist/interfaces/status-code-response.js.map +0 -1
- package/dist/interfaces/symmetric-encryption-results.d.ts +0 -5
- package/dist/interfaces/symmetric-encryption-results.d.ts.map +0 -1
- package/dist/interfaces/symmetric-encryption-results.js.map +0 -1
- package/dist/interfaces/token-response.d.ts.map +0 -1
- package/dist/interfaces/token-response.js +0 -3
- package/dist/interfaces/token-response.js.map +0 -1
- package/dist/middlewares/authenticate-crypto.d.ts +0 -13
- package/dist/middlewares/authenticate-crypto.d.ts.map +0 -1
- package/dist/middlewares/authenticate-crypto.js +0 -146
- package/dist/middlewares/authenticate-crypto.js.map +0 -1
- package/dist/middlewares/authenticate-token.d.ts +0 -24
- package/dist/middlewares/authenticate-token.d.ts.map +0 -1
- package/dist/middlewares/authenticate-token.js +0 -102
- package/dist/middlewares/authenticate-token.js.map +0 -1
- package/dist/middlewares/cleanup-crypto.d.ts +0 -7
- package/dist/middlewares/cleanup-crypto.d.ts.map +0 -1
- package/dist/middlewares/cleanup-crypto.js +0 -32
- package/dist/middlewares/cleanup-crypto.js.map +0 -1
- package/dist/middlewares/index.d.ts.map +0 -1
- package/dist/middlewares/index.js +0 -21
- package/dist/middlewares/index.js.map +0 -1
- package/dist/middlewares/set-global-context-language.d.ts +0 -3
- package/dist/middlewares/set-global-context-language.d.ts.map +0 -1
- package/dist/middlewares/set-global-context-language.js +0 -14
- package/dist/middlewares/set-global-context-language.js.map +0 -1
- package/dist/middlewares.d.ts +0 -18
- package/dist/middlewares.d.ts.map +0 -1
- package/dist/middlewares.js +0 -76
- package/dist/middlewares.js.map +0 -1
- package/dist/model-registry.d.ts +0 -23
- package/dist/model-registry.d.ts.map +0 -1
- package/dist/model-registry.js +0 -47
- package/dist/model-registry.js.map +0 -1
- package/dist/models/email-token.d.ts +0 -11
- package/dist/models/email-token.d.ts.map +0 -1
- package/dist/models/email-token.js +0 -11
- package/dist/models/email-token.js.map +0 -1
- package/dist/models/index.d.ts.map +0 -1
- package/dist/models/index.js +0 -23
- package/dist/models/index.js.map +0 -1
- package/dist/models/mnemonic.d.ts +0 -11
- package/dist/models/mnemonic.d.ts.map +0 -1
- package/dist/models/mnemonic.js +0 -11
- package/dist/models/mnemonic.js.map +0 -1
- package/dist/models/role.d.ts +0 -11
- package/dist/models/role.d.ts.map +0 -1
- package/dist/models/role.js +0 -11
- package/dist/models/role.js.map +0 -1
- package/dist/models/used-direct-login-token.d.ts +0 -11
- package/dist/models/used-direct-login-token.d.ts.map +0 -1
- package/dist/models/used-direct-login-token.js +0 -11
- package/dist/models/used-direct-login-token.js.map +0 -1
- package/dist/models/user-role.d.ts +0 -6
- package/dist/models/user-role.d.ts.map +0 -1
- package/dist/models/user-role.js +0 -10
- package/dist/models/user-role.js.map +0 -1
- package/dist/models/user.d.ts +0 -7
- package/dist/models/user.d.ts.map +0 -1
- package/dist/models/user.js +0 -11
- package/dist/models/user.js.map +0 -1
- package/dist/registry/email-service-registry.d.ts +0 -9
- package/dist/registry/email-service-registry.d.ts.map +0 -1
- package/dist/registry/email-service-registry.js +0 -17
- package/dist/registry/email-service-registry.js.map +0 -1
- package/dist/registry/index.d.ts.map +0 -1
- package/dist/registry/index.js +0 -6
- package/dist/registry/index.js.map +0 -1
- package/dist/routers/api.d.ts +0 -27
- package/dist/routers/api.d.ts.map +0 -1
- package/dist/routers/api.js +0 -44
- package/dist/routers/api.js.map +0 -1
- package/dist/routers/app.d.ts +0 -28
- package/dist/routers/app.d.ts.map +0 -1
- package/dist/routers/app.js +0 -182
- package/dist/routers/app.js.map +0 -1
- package/dist/routers/base.d.ts +0 -12
- package/dist/routers/base.d.ts.map +0 -1
- package/dist/routers/base.js +0 -12
- package/dist/routers/base.js.map +0 -1
- package/dist/routers/index.d.ts.map +0 -1
- package/dist/routers/index.js +0 -20
- package/dist/routers/index.js.map +0 -1
- package/dist/schemas/email-token.d.ts +0 -38
- package/dist/schemas/email-token.d.ts.map +0 -1
- package/dist/schemas/email-token.js +0 -56
- package/dist/schemas/email-token.js.map +0 -1
- package/dist/schemas/index.d.ts.map +0 -1
- package/dist/schemas/index.js +0 -24
- package/dist/schemas/index.js.map +0 -1
- package/dist/schemas/mnemonic.d.ts +0 -20
- package/dist/schemas/mnemonic.d.ts.map +0 -1
- package/dist/schemas/mnemonic.js +0 -30
- package/dist/schemas/mnemonic.js.map +0 -1
- package/dist/schemas/role.d.ts +0 -32
- package/dist/schemas/role.d.ts.map +0 -1
- package/dist/schemas/role.js +0 -86
- package/dist/schemas/role.js.map +0 -1
- package/dist/schemas/schema.d.ts +0 -40
- package/dist/schemas/schema.d.ts.map +0 -1
- package/dist/schemas/schema.js +0 -64
- package/dist/schemas/schema.js.map +0 -1
- package/dist/schemas/used-direct-login-token.d.ts +0 -27
- package/dist/schemas/used-direct-login-token.d.ts.map +0 -1
- package/dist/schemas/used-direct-login-token.js +0 -23
- package/dist/schemas/used-direct-login-token.js.map +0 -1
- package/dist/schemas/user-role.d.ts +0 -29
- package/dist/schemas/user-role.d.ts.map +0 -1
- package/dist/schemas/user-role.js +0 -54
- package/dist/schemas/user-role.js.map +0 -1
- package/dist/schemas/user.d.ts +0 -21
- package/dist/schemas/user.d.ts.map +0 -1
- package/dist/schemas/user.js +0 -178
- package/dist/schemas/user.js.map +0 -1
- package/dist/services/backup-code.d.ts +0 -78
- package/dist/services/backup-code.d.ts.map +0 -1
- package/dist/services/backup-code.js +0 -180
- package/dist/services/backup-code.js.map +0 -1
- package/dist/services/base.d.ts +0 -13
- package/dist/services/base.d.ts.map +0 -1
- package/dist/services/base.js +0 -14
- package/dist/services/base.js.map +0 -1
- package/dist/services/checksum.d.ts +0 -67
- package/dist/services/checksum.d.ts.map +0 -1
- package/dist/services/checksum.js +0 -175
- package/dist/services/checksum.js.map +0 -1
- package/dist/services/crc.d.ts +0 -87
- package/dist/services/crc.d.ts.map +0 -1
- package/dist/services/crc.js +0 -198
- package/dist/services/crc.js.map +0 -1
- package/dist/services/database-initialization.d.ts +0 -105
- package/dist/services/database-initialization.d.ts.map +0 -1
- package/dist/services/database-initialization.js +0 -779
- package/dist/services/database-initialization.js.map +0 -1
- package/dist/services/direct-login-token.d.ts +0 -9
- package/dist/services/direct-login-token.d.ts.map +0 -1
- package/dist/services/direct-login-token.js +0 -41
- package/dist/services/direct-login-token.js.map +0 -1
- package/dist/services/fec-usage-example.d.ts +0 -38
- package/dist/services/fec-usage-example.d.ts.map +0 -1
- package/dist/services/fec-usage-example.js +0 -77
- package/dist/services/fec-usage-example.js.map +0 -1
- package/dist/services/fec.d.ts +0 -46
- package/dist/services/fec.d.ts.map +0 -1
- package/dist/services/fec.js +0 -192
- package/dist/services/fec.js.map +0 -1
- package/dist/services/index.d.ts.map +0 -1
- package/dist/services/index.js +0 -35
- package/dist/services/index.js.map +0 -1
- package/dist/services/jwt.d.ts +0 -33
- package/dist/services/jwt.d.ts.map +0 -1
- package/dist/services/jwt.js +0 -90
- package/dist/services/jwt.js.map +0 -1
- package/dist/services/key-wrapping.d.ts +0 -60
- package/dist/services/key-wrapping.d.ts.map +0 -1
- package/dist/services/key-wrapping.js +0 -311
- package/dist/services/key-wrapping.js.map +0 -1
- package/dist/services/mnemonic.d.ts +0 -61
- package/dist/services/mnemonic.d.ts.map +0 -1
- package/dist/services/mnemonic.js +0 -112
- package/dist/services/mnemonic.js.map +0 -1
- package/dist/services/request-user.d.ts +0 -20
- package/dist/services/request-user.d.ts.map +0 -1
- package/dist/services/request-user.js +0 -50
- package/dist/services/request-user.js.map +0 -1
- package/dist/services/role.d.ts +0 -88
- package/dist/services/role.d.ts.map +0 -1
- package/dist/services/role.js +0 -263
- package/dist/services/role.js.map +0 -1
- package/dist/services/symmetric.d.ts +0 -42
- package/dist/services/symmetric.d.ts.map +0 -1
- package/dist/services/symmetric.js +0 -101
- package/dist/services/symmetric.js.map +0 -1
- package/dist/services/system-user.d.ts +0 -17
- package/dist/services/system-user.d.ts.map +0 -1
- package/dist/services/system-user.js +0 -46
- package/dist/services/system-user.js.map +0 -1
- package/dist/services/user.d.ts +0 -320
- package/dist/services/user.d.ts.map +0 -1
- package/dist/services/user.js +0 -1374
- package/dist/services/user.js.map +0 -1
- package/dist/services/xor.d.ts +0 -24
- package/dist/services/xor.d.ts.map +0 -1
- package/dist/services/xor.js +0 -37
- package/dist/services/xor.js.map +0 -1
- package/dist/types.d.ts +0 -70
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -14
- package/dist/types.js.map +0 -1
- package/dist/utils.d.ts +0 -202
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -786
- package/dist/utils.js.map +0 -1
- /package/{dist → src}/interfaces/symmetric-encryption-results.js +0 -0
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MnemonicService = void 0;
|
|
4
|
-
const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
|
|
5
|
-
const crypto_1 = require("crypto");
|
|
6
|
-
const constants_1 = require("../constants");
|
|
7
|
-
/**
|
|
8
|
-
* Encrypts and stores mnemonics securely, using an HMAC to check for
|
|
9
|
-
* uniqueness without exposing the mnemonic itself.
|
|
10
|
-
*/
|
|
11
|
-
class MnemonicService {
|
|
12
|
-
constructor(mnemonicModel, hmacSecret, keyWrappingService) {
|
|
13
|
-
this.MnemonicModel = mnemonicModel;
|
|
14
|
-
// Immediately wrap secrets in secure containers
|
|
15
|
-
this.hmacSecret = hmacSecret;
|
|
16
|
-
this.keyWrappingService = keyWrappingService;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Disposes of the secure secrets held by this service.
|
|
20
|
-
*/
|
|
21
|
-
dispose() {
|
|
22
|
-
this.hmacSecret.dispose();
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Creates a non-reversible HMAC of the mnemonic for fast, indexed lookups.
|
|
26
|
-
* @param mnemonic The mnemonic to hash, wrapped in a SecureString.
|
|
27
|
-
*/
|
|
28
|
-
getMnemonicHmac(mnemonic) {
|
|
29
|
-
// Use the raw secret buffer for the HMAC
|
|
30
|
-
return (0, crypto_1.createHmac)('sha256', this.hmacSecret.value)
|
|
31
|
-
.update(mnemonic.valueAsUint8Array) // Use the raw buffer for consistency
|
|
32
|
-
.digest('hex');
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Checks if a mnemonic already exists in the database using its HMAC.
|
|
36
|
-
* @param mnemonic The mnemonic to check, wrapped in a SecureString.
|
|
37
|
-
* @param session Optional Mongoose session for transaction support.
|
|
38
|
-
*/
|
|
39
|
-
async mnemonicExists(mnemonic, session) {
|
|
40
|
-
const hmac = this.getMnemonicHmac(mnemonic);
|
|
41
|
-
const count = await this.MnemonicModel.countDocuments({ hmac }).session(session ?? null);
|
|
42
|
-
return count > 0;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Adds a new, unique mnemonic to the database with password-based key wrapping.
|
|
46
|
-
* @param mnemonic The mnemonic to add, wrapped in a SecureString.
|
|
47
|
-
* @param password User's password for key wrapping.
|
|
48
|
-
* @param session Optional Mongoose session for transaction support.
|
|
49
|
-
*/
|
|
50
|
-
async addMnemonicWithPassword(mnemonic, _password, session) {
|
|
51
|
-
if (!mnemonic.value || !constants_1.Constants.MnemonicRegex.test(mnemonic.value)) {
|
|
52
|
-
throw new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.Validation_MnemonicRegex);
|
|
53
|
-
}
|
|
54
|
-
if (await this.mnemonicExists(mnemonic, session)) {
|
|
55
|
-
return { document: null };
|
|
56
|
-
}
|
|
57
|
-
try {
|
|
58
|
-
const hmac = this.getMnemonicHmac(mnemonic);
|
|
59
|
-
const [newDoc] = await this.MnemonicModel.create([
|
|
60
|
-
{
|
|
61
|
-
hmac: hmac,
|
|
62
|
-
},
|
|
63
|
-
], { session });
|
|
64
|
-
return { document: newDoc };
|
|
65
|
-
}
|
|
66
|
-
finally {
|
|
67
|
-
// nothing to dispose
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Adds a new, unique mnemonic to the database.
|
|
72
|
-
* @param mnemonic The mnemonic to add, wrapped in a SecureString.
|
|
73
|
-
* @param session Optional Mongoose session for transaction support.
|
|
74
|
-
*/
|
|
75
|
-
async addMnemonic(mnemonic, session) {
|
|
76
|
-
if (!mnemonic.value || !constants_1.Constants.MnemonicRegex.test(mnemonic.value)) {
|
|
77
|
-
throw new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.Validation_MnemonicRegex);
|
|
78
|
-
}
|
|
79
|
-
if (await this.mnemonicExists(mnemonic, session)) {
|
|
80
|
-
return null;
|
|
81
|
-
}
|
|
82
|
-
const hmac = this.getMnemonicHmac(mnemonic);
|
|
83
|
-
const [newDoc] = await this.MnemonicModel.create([
|
|
84
|
-
{
|
|
85
|
-
hmac: hmac,
|
|
86
|
-
},
|
|
87
|
-
], { session });
|
|
88
|
-
return newDoc;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Retrieves a mnemonic document by ID.
|
|
92
|
-
* @param mnemonicId The ID of the mnemonic document.
|
|
93
|
-
* @param session Optional Mongoose session for transaction support.
|
|
94
|
-
*/
|
|
95
|
-
async getMnemonicDocument(mnemonicId, session) {
|
|
96
|
-
return await this.MnemonicModel.findById(mnemonicId).session(session ?? null);
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Decrypts a mnemonic from a document using the service's master encryption key.
|
|
100
|
-
* @param doc The mnemonic document.
|
|
101
|
-
*/
|
|
102
|
-
/**
|
|
103
|
-
* Deletes a mnemonic document by ID.
|
|
104
|
-
* @param mnemonicId The ID of the mnemonic document.
|
|
105
|
-
* @param session Optional Mongoose session for transaction support.
|
|
106
|
-
*/
|
|
107
|
-
async deleteMnemonicDocument(mnemonicId, session) {
|
|
108
|
-
await this.MnemonicModel.findByIdAndDelete(mnemonicId).session(session ?? null);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
exports.MnemonicService = MnemonicService;
|
|
112
|
-
//# sourceMappingURL=mnemonic.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mnemonic.js","sourceRoot":"","sources":["../../src/services/mnemonic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { IRequestUserDTO, ITokenRole } from '@digitaldefiance/suite-core-lib';
|
|
2
|
-
import { IUserDocument } from '../documents';
|
|
3
|
-
import { IRequestUserBackendObject } from '../interfaces/backend-objects/request-user';
|
|
4
|
-
export declare class RequestUserService<I, TTokenRole extends ITokenRole<I>> {
|
|
5
|
-
/**
|
|
6
|
-
* Given a user document and an array of role documents, create the IRequestUser
|
|
7
|
-
* @param userDoc
|
|
8
|
-
* @returns
|
|
9
|
-
*/
|
|
10
|
-
static makeRequestUserDTO<I, TTokenRole extends ITokenRole<I>, TRequestUserDTO extends IRequestUserDTO>(userDoc: IUserDocument, roles: TTokenRole[]): TRequestUserDTO;
|
|
11
|
-
/**
|
|
12
|
-
* Given a request user, reconstitute dates, objectids, and enums
|
|
13
|
-
* @param requestUser a RequestUser DTO
|
|
14
|
-
* @returns An IRequestUserBackendObject
|
|
15
|
-
*/
|
|
16
|
-
static hydrateRequestUser<S extends string, TRequestUserDTO extends IRequestUserDTO & {
|
|
17
|
-
siteLanguage: S;
|
|
18
|
-
}>(requestUser: TRequestUserDTO): IRequestUserBackendObject<S>;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=request-user.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"request-user.d.ts","sourceRoot":"","sources":["../../src/services/request-user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE9E,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAGvF,qBAAa,kBAAkB,CAAC,CAAC,EAAE,UAAU,SAAS,UAAU,CAAC,CAAC,CAAC;IACjE;;;;OAIG;WACW,kBAAkB,CAC9B,CAAC,EACD,UAAU,SAAS,UAAU,CAAC,CAAC,CAAC,EAChC,eAAe,SAAS,eAAe,EACvC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,eAAe;IAgB/D;;;;OAIG;WACW,kBAAkB,CAC9B,CAAC,SAAS,MAAM,EAChB,eAAe,SAAS,eAAe,GAAG;QAAE,YAAY,EAAE,CAAC,CAAA;KAAE,EAC7D,WAAW,EAAE,eAAe,GAAG,yBAAyB,CAAC,CAAC,CAAC;CAqB9D"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RequestUserService = void 0;
|
|
4
|
-
const mongoose_1 = require("mongoose");
|
|
5
|
-
const role_1 = require("./role");
|
|
6
|
-
class RequestUserService {
|
|
7
|
-
/**
|
|
8
|
-
* Given a user document and an array of role documents, create the IRequestUser
|
|
9
|
-
* @param userDoc
|
|
10
|
-
* @returns
|
|
11
|
-
*/
|
|
12
|
-
static makeRequestUserDTO(userDoc, roles) {
|
|
13
|
-
if (!userDoc._id) {
|
|
14
|
-
throw new Error('User document is missing _id');
|
|
15
|
-
}
|
|
16
|
-
return {
|
|
17
|
-
id: userDoc._id.toString(),
|
|
18
|
-
email: userDoc.email,
|
|
19
|
-
roles: roles.map((r) => role_1.RoleService.roleToRoleDTO(r)),
|
|
20
|
-
username: userDoc.username,
|
|
21
|
-
timezone: userDoc.timezone,
|
|
22
|
-
...(userDoc.lastLogin && { lastLogin: userDoc.lastLogin.toString() }),
|
|
23
|
-
emailVerified: userDoc.emailVerified,
|
|
24
|
-
siteLanguage: userDoc.siteLanguage,
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Given a request user, reconstitute dates, objectids, and enums
|
|
29
|
-
* @param requestUser a RequestUser DTO
|
|
30
|
-
* @returns An IRequestUserBackendObject
|
|
31
|
-
*/
|
|
32
|
-
static hydrateRequestUser(requestUser) {
|
|
33
|
-
const hydratedRoles = requestUser.roles.map((role) => role_1.RoleService.hydrateRoleDTOToBackend(role));
|
|
34
|
-
const hydratedUser = {
|
|
35
|
-
id: new mongoose_1.Types.ObjectId(requestUser.id),
|
|
36
|
-
email: requestUser.email,
|
|
37
|
-
roles: hydratedRoles,
|
|
38
|
-
username: requestUser.username,
|
|
39
|
-
timezone: requestUser.timezone,
|
|
40
|
-
emailVerified: requestUser.emailVerified,
|
|
41
|
-
siteLanguage: requestUser.siteLanguage,
|
|
42
|
-
};
|
|
43
|
-
if (requestUser.lastLogin) {
|
|
44
|
-
hydratedUser.lastLogin = new Date(requestUser.lastLogin);
|
|
45
|
-
}
|
|
46
|
-
return hydratedUser;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
exports.RequestUserService = RequestUserService;
|
|
50
|
-
//# sourceMappingURL=request-user.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"request-user.js","sourceRoot":"","sources":["../../src/services/request-user.ts"],"names":[],"mappings":";;;AACA,uCAAiC;AAGjC,iCAAqC;AAErC,MAAa,kBAAkB;IAC7B;;;;OAIG;IACI,MAAM,CAAC,kBAAkB,CAI9B,OAAsB,EAAE,KAAmB;QAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QACD,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;YAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACrD,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;YACrE,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,YAAY,EAAE,OAAO,CAAC,YAAsB;SAC1B,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,kBAAkB,CAG9B,WAA4B;QAC5B,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACnD,kBAAW,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAC1C,CAAC;QAEF,MAAM,YAAY,GAAiC;YACjD,EAAE,EAAE,IAAI,gBAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACtC,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,aAAa,EAAE,WAAW,CAAC,aAAa;YACxC,YAAY,EAAE,WAAW,CAAC,YAAY;SACvC,CAAC;QAEF,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;YAC1B,YAAY,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAvDD,gDAuDC"}
|
package/dist/services/role.d.ts
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { MemberType } from '@digitaldefiance/ecies-lib';
|
|
2
|
-
import { IRoleBase, ITokenRole, ITokenRoleDTO, Role } from '@digitaldefiance/suite-core-lib';
|
|
3
|
-
import { ClientSession, Types } from 'mongoose';
|
|
4
|
-
import { IBaseDocument, IUserDocument } from '../documents';
|
|
5
|
-
import { IRoleDocument } from '../documents/role';
|
|
6
|
-
import { IUserRoleDocument } from '../documents/user-role';
|
|
7
|
-
import { IApplication } from '../interfaces/application';
|
|
8
|
-
import { IRoleBackendObject } from '../interfaces/backend-objects/role';
|
|
9
|
-
import { BaseService } from './base';
|
|
10
|
-
import { Environment } from '../environment';
|
|
11
|
-
import { IConstants } from '../interfaces';
|
|
12
|
-
/**
|
|
13
|
-
* Service for managing roles
|
|
14
|
-
*/
|
|
15
|
-
export declare class RoleService<I = Types.ObjectId, D extends Date = Date, TTokenRole extends ITokenRole<I, D> = ITokenRole<I, D>> extends BaseService {
|
|
16
|
-
/**
|
|
17
|
-
* Constructor for the role service
|
|
18
|
-
* @param application The application object
|
|
19
|
-
*/
|
|
20
|
-
constructor(application: IApplication<any, Types.ObjectId, IBaseDocument<any, Types.ObjectId>, Environment, IConstants>);
|
|
21
|
-
static roleToRoleDTO<I = Types.ObjectId, D extends Date = Date>(role: ITokenRole<I, D> | IRoleDocument | Partial<IRoleBase<I>>): ITokenRoleDTO;
|
|
22
|
-
/**
|
|
23
|
-
* Given a Role DTO, reconstitute ids and dates
|
|
24
|
-
* @param role The Role DTO
|
|
25
|
-
* @returns An IRoleBackendObject
|
|
26
|
-
*/
|
|
27
|
-
static hydrateRoleDTOToBackend(role: ITokenRoleDTO): IRoleBackendObject;
|
|
28
|
-
/**
|
|
29
|
-
* Gets the role ID by name
|
|
30
|
-
* @param roleName The name of the role
|
|
31
|
-
* @returns The role ID or null if not found
|
|
32
|
-
*/
|
|
33
|
-
getRoleIdByName(roleName: Role, session?: ClientSession): Promise<Types.ObjectId | null>;
|
|
34
|
-
/**
|
|
35
|
-
* Creates a new role
|
|
36
|
-
* @param roleData The role data
|
|
37
|
-
* @param session Optional mongoose session
|
|
38
|
-
* @returns The created role document
|
|
39
|
-
*/
|
|
40
|
-
createRole(roleData: IRoleBase<Types.ObjectId, Date, Role>, session?: ClientSession | null): Promise<IRoleDocument>;
|
|
41
|
-
/**
|
|
42
|
-
* Adds a user to a role
|
|
43
|
-
* @param roleId - The role id
|
|
44
|
-
* @param userId - The user id
|
|
45
|
-
* @param createdBy - The user creating the relationship
|
|
46
|
-
* @param session Optional mongoose session
|
|
47
|
-
*/
|
|
48
|
-
addUserToRole(roleId: Types.ObjectId, userId: Types.ObjectId, createdBy: Types.ObjectId, session?: ClientSession, overrideId?: Types.ObjectId): Promise<IUserRoleDocument>;
|
|
49
|
-
/**
|
|
50
|
-
* Removes a user from a role
|
|
51
|
-
* @param roleId - The role id
|
|
52
|
-
* @param userId - The user id
|
|
53
|
-
* @param deletedBy - The user removing the relationship
|
|
54
|
-
* @param session Optional mongoose session
|
|
55
|
-
* @throws LastAdminError if attempting to remove the last admin
|
|
56
|
-
*/
|
|
57
|
-
removeUserFromRole(roleId: Types.ObjectId, userId: Types.ObjectId, deletedBy: Types.ObjectId, session?: ClientSession): Promise<void>;
|
|
58
|
-
/**
|
|
59
|
-
* Deletes a role by ID
|
|
60
|
-
* @param roleId The role ID
|
|
61
|
-
* @param deleter The ID of the user deleting the role
|
|
62
|
-
* @param hardDelete Whether to hard delete the role
|
|
63
|
-
* @param session Optional mongoose session
|
|
64
|
-
*/
|
|
65
|
-
deleteRole(roleId: Types.ObjectId, deleter: Types.ObjectId, hardDelete: boolean, session?: ClientSession): Promise<void>;
|
|
66
|
-
/**
|
|
67
|
-
* Gets all roles for a user
|
|
68
|
-
* @param userId The user ID
|
|
69
|
-
* @param session Optional mongoose session
|
|
70
|
-
* @returns The roles the user is a member of
|
|
71
|
-
*/
|
|
72
|
-
getUserRoles(userId: Types.ObjectId, session?: ClientSession): Promise<IRoleDocument[]>;
|
|
73
|
-
/**
|
|
74
|
-
* Gets all users for a role
|
|
75
|
-
* @param roleId The role ID
|
|
76
|
-
* @param session Optional mongoose session
|
|
77
|
-
* @returns The user IDs that are members of the role
|
|
78
|
-
*/
|
|
79
|
-
getRoleUsers(roleId: Types.ObjectId, session?: ClientSession): Promise<Types.ObjectId[]>;
|
|
80
|
-
/** Convert roles to translated TokenRoles */
|
|
81
|
-
rolesToTokenRoles(roles: Array<IRoleBackendObject>, overrideLanguage?: string): Array<TTokenRole>;
|
|
82
|
-
isUserAdmin(userDoc: IUserDocument, session?: ClientSession, providedRoles?: Array<IRoleDocument>): Promise<boolean>;
|
|
83
|
-
isUserMember(userDoc: IUserDocument, session?: ClientSession, providedRoles?: Array<IRoleDocument>): Promise<boolean>;
|
|
84
|
-
isUserChild(userDoc: IUserDocument, session?: ClientSession, providedRoles?: Array<IRoleDocument>): Promise<boolean>;
|
|
85
|
-
isSystemUser(userDoc: IUserDocument, session?: ClientSession, providedRoles?: Array<IRoleDocument>): Promise<boolean>;
|
|
86
|
-
getMemberType(userDoc: IUserDocument, session?: ClientSession, providedRoles?: Array<IRoleDocument>): Promise<MemberType>;
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=role.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"role.d.ts","sourceRoot":"","sources":["../../src/services/role.ts"],"names":[],"mappings":"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"}
|
package/dist/services/role.js
DELETED
|
@@ -1,263 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RoleService = void 0;
|
|
4
|
-
const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
|
|
5
|
-
const i18n_lib_1 = require("@digitaldefiance/i18n-lib");
|
|
6
|
-
const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
|
|
7
|
-
const mongoose_1 = require("mongoose");
|
|
8
|
-
const base_model_name_1 = require("../enumerations/base-model-name");
|
|
9
|
-
const model_registry_1 = require("../model-registry");
|
|
10
|
-
const utils_1 = require("../utils");
|
|
11
|
-
const base_1 = require("./base");
|
|
12
|
-
/**
|
|
13
|
-
* Service for managing roles
|
|
14
|
-
*/
|
|
15
|
-
class RoleService extends base_1.BaseService {
|
|
16
|
-
/**
|
|
17
|
-
* Constructor for the role service
|
|
18
|
-
* @param application The application object
|
|
19
|
-
*/
|
|
20
|
-
constructor(application) {
|
|
21
|
-
super(application);
|
|
22
|
-
}
|
|
23
|
-
static roleToRoleDTO(role) {
|
|
24
|
-
return {
|
|
25
|
-
...(role instanceof mongoose_1.Document ? role.toObject() : role),
|
|
26
|
-
_id: (role._id instanceof mongoose_1.Types.ObjectId
|
|
27
|
-
? role._id.toString()
|
|
28
|
-
: role._id),
|
|
29
|
-
translatedName: 'translatedName' in role ? role.translatedName : role.name,
|
|
30
|
-
createdBy: (role.createdBy instanceof Date
|
|
31
|
-
? role.createdBy.toString()
|
|
32
|
-
: role.createdBy),
|
|
33
|
-
updatedBy: (role.updatedBy instanceof Date
|
|
34
|
-
? role.updatedBy.toString()
|
|
35
|
-
: role.updatedBy),
|
|
36
|
-
...(role.deletedBy
|
|
37
|
-
? {
|
|
38
|
-
deletedBy: (role.deletedBy instanceof Date
|
|
39
|
-
? role.deletedBy.toString()
|
|
40
|
-
: role.deletedBy),
|
|
41
|
-
}
|
|
42
|
-
: {}),
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Given a Role DTO, reconstitute ids and dates
|
|
47
|
-
* @param role The Role DTO
|
|
48
|
-
* @returns An IRoleBackendObject
|
|
49
|
-
*/
|
|
50
|
-
static hydrateRoleDTOToBackend(role) {
|
|
51
|
-
return {
|
|
52
|
-
...(0, utils_1.omit)(role, [
|
|
53
|
-
'translatedName',
|
|
54
|
-
]),
|
|
55
|
-
_id: new mongoose_1.Types.ObjectId(role._id),
|
|
56
|
-
name: role.name,
|
|
57
|
-
createdAt: new Date(role.createdAt),
|
|
58
|
-
createdBy: new mongoose_1.Types.ObjectId(role.createdBy),
|
|
59
|
-
updatedAt: new Date(role.updatedAt),
|
|
60
|
-
updatedBy: new mongoose_1.Types.ObjectId(role.updatedBy),
|
|
61
|
-
...(role.deletedAt ? { deletedAt: new Date(role.deletedAt) } : {}),
|
|
62
|
-
...(role.deletedBy
|
|
63
|
-
? {
|
|
64
|
-
deletedBy: new mongoose_1.Types.ObjectId(role.deletedBy),
|
|
65
|
-
}
|
|
66
|
-
: {}),
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Gets the role ID by name
|
|
71
|
-
* @param roleName The name of the role
|
|
72
|
-
* @returns The role ID or null if not found
|
|
73
|
-
*/
|
|
74
|
-
async getRoleIdByName(roleName, session) {
|
|
75
|
-
const RoleModel = model_registry_1.ModelRegistry.instance.get(base_model_name_1.BaseModelName.Role).model;
|
|
76
|
-
const role = await RoleModel.findOne({ name: roleName }, undefined, {
|
|
77
|
-
session,
|
|
78
|
-
}).select('_id');
|
|
79
|
-
if (!role) {
|
|
80
|
-
return null;
|
|
81
|
-
}
|
|
82
|
-
return role._id;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Creates a new role
|
|
86
|
-
* @param roleData The role data
|
|
87
|
-
* @param session Optional mongoose session
|
|
88
|
-
* @returns The created role document
|
|
89
|
-
*/
|
|
90
|
-
async createRole(roleData, session) {
|
|
91
|
-
const RoleModel = model_registry_1.ModelRegistry.instance.get(base_model_name_1.BaseModelName.Role).model;
|
|
92
|
-
const role = new RoleModel(roleData);
|
|
93
|
-
const savedRole = await role.save(session ? { session } : {});
|
|
94
|
-
return savedRole;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Adds a user to a role
|
|
98
|
-
* @param roleId - The role id
|
|
99
|
-
* @param userId - The user id
|
|
100
|
-
* @param createdBy - The user creating the relationship
|
|
101
|
-
* @param session Optional mongoose session
|
|
102
|
-
*/
|
|
103
|
-
async addUserToRole(roleId, userId, createdBy, session, overrideId) {
|
|
104
|
-
const UserRoleModel = model_registry_1.ModelRegistry.instance.get(base_model_name_1.BaseModelName.UserRole).model;
|
|
105
|
-
// Check if the user-role relationship already exists (and is not deleted)
|
|
106
|
-
const existingUserRole = await UserRoleModel.findOne({
|
|
107
|
-
userId,
|
|
108
|
-
roleId,
|
|
109
|
-
deletedAt: { $exists: false },
|
|
110
|
-
}).session(session ?? null);
|
|
111
|
-
if (existingUserRole) {
|
|
112
|
-
// Relationship already exists, no need to create it again
|
|
113
|
-
return existingUserRole;
|
|
114
|
-
}
|
|
115
|
-
const userRole = new UserRoleModel({
|
|
116
|
-
...(overrideId ? { _id: overrideId } : {}),
|
|
117
|
-
userId,
|
|
118
|
-
roleId,
|
|
119
|
-
createdBy,
|
|
120
|
-
updatedBy: createdBy,
|
|
121
|
-
});
|
|
122
|
-
const result = await userRole.save({ session });
|
|
123
|
-
return result;
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Removes a user from a role
|
|
127
|
-
* @param roleId - The role id
|
|
128
|
-
* @param userId - The user id
|
|
129
|
-
* @param deletedBy - The user removing the relationship
|
|
130
|
-
* @param session Optional mongoose session
|
|
131
|
-
* @throws LastAdminError if attempting to remove the last admin
|
|
132
|
-
*/
|
|
133
|
-
async removeUserFromRole(roleId, userId, deletedBy, session) {
|
|
134
|
-
const RoleModel = model_registry_1.ModelRegistry.instance.get(base_model_name_1.BaseModelName.Role).model;
|
|
135
|
-
const UserRoleModel = model_registry_1.ModelRegistry.instance.get(base_model_name_1.BaseModelName.UserRole).model;
|
|
136
|
-
const role = await RoleModel.findById(roleId).session(session ?? null);
|
|
137
|
-
if (role?.admin) {
|
|
138
|
-
const adminCount = await UserRoleModel.countDocuments({
|
|
139
|
-
roleId,
|
|
140
|
-
deletedAt: { $exists: false },
|
|
141
|
-
}).session(session ?? null);
|
|
142
|
-
if (adminCount <= 1) {
|
|
143
|
-
throw new suite_core_lib_1.LastAdminError();
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
await UserRoleModel.findOneAndUpdate({ userId, roleId, deletedAt: { $exists: false } }, { deletedAt: new Date(), deletedBy }, { session });
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Deletes a role by ID
|
|
150
|
-
* @param roleId The role ID
|
|
151
|
-
* @param deleter The ID of the user deleting the role
|
|
152
|
-
* @param hardDelete Whether to hard delete the role
|
|
153
|
-
* @param session Optional mongoose session
|
|
154
|
-
*/
|
|
155
|
-
async deleteRole(roleId, deleter, hardDelete, session) {
|
|
156
|
-
const RoleModel = model_registry_1.ModelRegistry.instance.get(base_model_name_1.BaseModelName.Role).model;
|
|
157
|
-
if (hardDelete) {
|
|
158
|
-
await RoleModel.findByIdAndDelete(roleId).session(session ?? null);
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
await RoleModel.findByIdAndUpdate(roleId, {
|
|
162
|
-
deletedAt: new Date(),
|
|
163
|
-
deletedBy: deleter,
|
|
164
|
-
}).session(session ?? null);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Gets all roles for a user
|
|
169
|
-
* @param userId The user ID
|
|
170
|
-
* @param session Optional mongoose session
|
|
171
|
-
* @returns The roles the user is a member of
|
|
172
|
-
*/
|
|
173
|
-
async getUserRoles(userId, session) {
|
|
174
|
-
const UserRoleModel = model_registry_1.ModelRegistry.instance.get(base_model_name_1.BaseModelName.UserRole).model;
|
|
175
|
-
const RoleModel = model_registry_1.ModelRegistry.instance.get(base_model_name_1.BaseModelName.Role).model;
|
|
176
|
-
if (!UserRoleModel || !RoleModel)
|
|
177
|
-
throw new Error('Model not registered');
|
|
178
|
-
// Return full documents
|
|
179
|
-
const userRoles = await UserRoleModel.find({
|
|
180
|
-
userId,
|
|
181
|
-
deletedAt: { $exists: false },
|
|
182
|
-
})
|
|
183
|
-
.select('roleId')
|
|
184
|
-
.session(session ?? null);
|
|
185
|
-
const roleIds = userRoles.map((ur) => ur.roleId);
|
|
186
|
-
return await RoleModel.find({
|
|
187
|
-
_id: { $in: roleIds },
|
|
188
|
-
deletedAt: { $exists: false },
|
|
189
|
-
}).session(session ?? null);
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Gets all users for a role
|
|
193
|
-
* @param roleId The role ID
|
|
194
|
-
* @param session Optional mongoose session
|
|
195
|
-
* @returns The user IDs that are members of the role
|
|
196
|
-
*/
|
|
197
|
-
async getRoleUsers(roleId, session) {
|
|
198
|
-
const UserRoleModel = model_registry_1.ModelRegistry.instance.get(base_model_name_1.BaseModelName.UserRole).model;
|
|
199
|
-
// Return full documents
|
|
200
|
-
const userRoles = await UserRoleModel.find({
|
|
201
|
-
roleId,
|
|
202
|
-
deletedAt: { $exists: false },
|
|
203
|
-
})
|
|
204
|
-
.select('userId')
|
|
205
|
-
.session(session ?? null);
|
|
206
|
-
return userRoles.map((ur) => ur.userId);
|
|
207
|
-
}
|
|
208
|
-
/** Convert roles to translated TokenRoles */
|
|
209
|
-
rolesToTokenRoles(roles, overrideLanguage) {
|
|
210
|
-
return roles.map((role) => {
|
|
211
|
-
const engine = i18n_lib_1.PluginI18nEngine.getInstance();
|
|
212
|
-
const userLang = i18n_lib_1.GlobalActiveContext.getInstance().userLanguage;
|
|
213
|
-
const lang = (overrideLanguage || userLang || 'en-US');
|
|
214
|
-
const roleTranslation = engine.translateEnum(suite_core_lib_1.Role, role.name, lang);
|
|
215
|
-
return {
|
|
216
|
-
...role,
|
|
217
|
-
translatedName: roleTranslation,
|
|
218
|
-
};
|
|
219
|
-
});
|
|
220
|
-
}
|
|
221
|
-
async isUserAdmin(userDoc, session, providedRoles) {
|
|
222
|
-
const roles = providedRoles ?? (await this.getUserRoles(userDoc._id, session));
|
|
223
|
-
if (roles.filter((r) => r.admin).length > 0) {
|
|
224
|
-
return true;
|
|
225
|
-
}
|
|
226
|
-
return false;
|
|
227
|
-
}
|
|
228
|
-
async isUserMember(userDoc, session, providedRoles) {
|
|
229
|
-
const roles = providedRoles ?? (await this.getUserRoles(userDoc._id, session));
|
|
230
|
-
if (roles.filter((r) => r.member).length > 0) {
|
|
231
|
-
return true;
|
|
232
|
-
}
|
|
233
|
-
return false;
|
|
234
|
-
}
|
|
235
|
-
async isUserChild(userDoc, session, providedRoles) {
|
|
236
|
-
const roles = providedRoles ?? (await this.getUserRoles(userDoc._id, session));
|
|
237
|
-
if (roles.filter((r) => r.child).length > 0) {
|
|
238
|
-
return true;
|
|
239
|
-
}
|
|
240
|
-
return false;
|
|
241
|
-
}
|
|
242
|
-
async isSystemUser(userDoc, session, providedRoles) {
|
|
243
|
-
const roles = providedRoles ?? (await this.getUserRoles(userDoc._id, session));
|
|
244
|
-
return roles.some((r) => r.system);
|
|
245
|
-
}
|
|
246
|
-
async getMemberType(userDoc, session, providedRoles) {
|
|
247
|
-
const roles = providedRoles ?? (await this.getUserRoles(userDoc._id, session));
|
|
248
|
-
if (await this.isSystemUser(userDoc, session, roles)) {
|
|
249
|
-
return ecies_lib_1.MemberType.System;
|
|
250
|
-
}
|
|
251
|
-
else if (await this.isUserAdmin(userDoc, session, roles)) {
|
|
252
|
-
return ecies_lib_1.MemberType.Admin;
|
|
253
|
-
}
|
|
254
|
-
else if (await this.isUserMember(userDoc, session, roles)) {
|
|
255
|
-
return ecies_lib_1.MemberType.User;
|
|
256
|
-
}
|
|
257
|
-
else {
|
|
258
|
-
return ecies_lib_1.MemberType.Anonymous;
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
exports.RoleService = RoleService;
|
|
263
|
-
//# sourceMappingURL=role.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"role.js","sourceRoot":"","sources":["../../src/services/role.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { IECIESConstants } from '@digitaldefiance/ecies-lib';
|
|
2
|
-
import { ISymmetricEncryptionResults } from '../interfaces/symmetric-encryption-results';
|
|
3
|
-
/**
|
|
4
|
-
* Service for handling symmetric encryption operations.
|
|
5
|
-
* This service provides functionality for:
|
|
6
|
-
* - AES encryption/decryption of buffers and JSON data
|
|
7
|
-
* - Key and IV generation
|
|
8
|
-
* - Secure cryptographic operations
|
|
9
|
-
*/
|
|
10
|
-
export declare class SymmetricService {
|
|
11
|
-
static symmetricKeyBits(eciesConstants?: IECIESConstants): number;
|
|
12
|
-
static symmetricKeyBytes(eciesConstants?: IECIESConstants): number;
|
|
13
|
-
/**
|
|
14
|
-
* Encrypt data with AES
|
|
15
|
-
* @param data The data to encrypt
|
|
16
|
-
* @param encryptionKey Optional encryption key (will be randomly generated if not provided)
|
|
17
|
-
* @returns Object containing encrypted data and key
|
|
18
|
-
*/
|
|
19
|
-
static encryptBuffer(data: Buffer, encryptionKey?: Buffer, eciesConstants?: IECIESConstants): ISymmetricEncryptionResults;
|
|
20
|
-
/**
|
|
21
|
-
* Decrypt the given buffer with AES
|
|
22
|
-
* @param encryptedData The encrypted data to decrypt
|
|
23
|
-
* @param key The key to use for decryption
|
|
24
|
-
* @returns Decrypted data as a Buffer
|
|
25
|
-
*/
|
|
26
|
-
static decryptBuffer(encryptedData: Buffer, key: Buffer, eciesConstants?: IECIESConstants): Buffer;
|
|
27
|
-
/**
|
|
28
|
-
* Encrypt JSON data with AES
|
|
29
|
-
* @param data The data to encrypt
|
|
30
|
-
* @param encryptionKey Optional encryption key (will be randomly generated if not provided)
|
|
31
|
-
* @returns Object containing encrypted data and key
|
|
32
|
-
*/
|
|
33
|
-
static encryptJson<T>(data: T, encryptionKey?: Buffer): ISymmetricEncryptionResults;
|
|
34
|
-
/**
|
|
35
|
-
* Decrypt the given buffer with AES and parse as JSON
|
|
36
|
-
* @param encryptedData The encrypted data to decrypt
|
|
37
|
-
* @param key The key to use for decryption
|
|
38
|
-
* @returns Decrypted data parsed as type T
|
|
39
|
-
*/
|
|
40
|
-
static decryptJson<T>(encryptedData: Buffer, key: Buffer): T;
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=symmetric.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"symmetric.d.ts","sourceRoot":"","sources":["../../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"}
|