@digitaldefiance/suite-core-lib 3.6.47 → 3.6.48
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 +3 -4
- package/src/backup-code-string.ts +102 -0
- package/src/builders/{index.d.ts → index.ts} +1 -1
- package/src/builders/role-builder.ts +67 -0
- package/src/builders/user-builder.ts +81 -0
- package/src/constants.ts +229 -0
- package/src/core/{errors.d.ts → errors.ts} +4 -1
- package/src/core/{index.d.ts → index.ts} +1 -1
- package/src/core/result.ts +40 -0
- package/src/core/{types.d.ts → types.ts} +6 -1
- package/src/defaults.ts +114 -0
- package/src/enumerations/account-status.ts +17 -0
- package/src/enumerations/email-token-type.ts +27 -0
- package/src/enumerations/fec-error-type.ts +16 -0
- package/src/enumerations/{index.d.ts → index.ts} +3 -1
- package/src/enumerations/pbkdf2-error-type.ts +7 -0
- package/src/enumerations/role.ts +8 -0
- package/src/enumerations/suite-core-string-key.ts +500 -0
- package/src/errors/account-locked.ts +12 -0
- package/src/errors/account-status.ts +38 -0
- package/src/errors/admin-role-not-found.ts +15 -0
- package/src/errors/core-typed-handleable.ts +72 -0
- package/src/errors/direct-challenge-not-enabled.ts +22 -0
- package/src/errors/direct-token-used.ts +17 -0
- package/src/errors/email-in-use.ts +14 -0
- package/src/errors/email-token-expired.ts +14 -0
- package/src/errors/email-token-failed-to-send.ts +46 -0
- package/src/errors/email-token-sent-too-recently.ts +32 -0
- package/src/errors/email-token-used-or-invalid.ts +14 -0
- package/src/errors/email-verified.ts +19 -0
- package/src/errors/failed-to-use-direct-token.ts +17 -0
- package/src/errors/fec-error.ts +49 -0
- package/src/errors/generic-validation.ts +14 -0
- package/src/errors/{index.d.ts → index.ts} +3 -1
- package/src/errors/invalid-backup-code.ts +9 -0
- package/src/errors/invalid-challenge-response.ts +22 -0
- package/src/errors/invalid-challenge.ts +12 -0
- package/src/errors/invalid-credentials.ts +19 -0
- package/src/errors/invalid-email.ts +46 -0
- package/src/errors/invalid-expired-token.ts +21 -0
- package/src/errors/invalid-token.ts +22 -0
- package/src/errors/invalid-userid.ts +38 -0
- package/src/errors/invalid-username.ts +17 -0
- package/src/errors/last-admin-error.ts +15 -0
- package/src/errors/login-challenge-expired.ts +22 -0
- package/src/errors/member-role-not-found.ts +15 -0
- package/src/errors/password-login-not-enabled.ts +22 -0
- package/src/errors/password-login-not-setup.ts +22 -0
- package/src/errors/pbkdf2-error.ts +26 -0
- package/src/errors/pending-email-verification.ts +12 -0
- package/src/errors/private-key-required.ts +16 -0
- package/src/errors/system-role-not-found.ts +15 -0
- package/src/errors/token-not-found.ts +24 -0
- package/src/errors/translatable-suite-handleable.ts +30 -0
- package/src/errors/translatable-suite.ts +37 -0
- package/src/errors/user-not-found.ts +14 -0
- package/src/errors/username-email-required.ts +23 -0
- package/src/errors/username-in-use.ts +14 -0
- package/src/i18n-setup.ts +150 -0
- package/src/{index.d.ts → index.ts} +4 -1
- package/src/interfaces/backup-code-consts.ts +18 -0
- package/src/interfaces/backup-code.ts +9 -0
- package/src/interfaces/bases/email-token.ts +39 -0
- package/src/interfaces/bases/{index.d.ts → index.ts} +3 -1
- package/src/interfaces/bases/mnemonic.ts +12 -0
- package/src/interfaces/bases/role.ts +43 -0
- package/src/interfaces/bases/token-role.ts +16 -0
- package/src/interfaces/bases/used-direct-login-token.ts +17 -0
- package/src/interfaces/bases/user-role.ts +23 -0
- package/src/interfaces/bases/user.ts +91 -0
- package/src/interfaces/combined-role-privileges.ts +9 -0
- package/src/interfaces/constants.ts +59 -0
- package/src/interfaces/core-consts.ts +133 -0
- package/src/interfaces/deep-partial.ts +6 -0
- package/src/interfaces/dto/email-token.ts +7 -0
- package/src/interfaces/dto/{index.d.ts → index.ts} +3 -1
- package/src/interfaces/dto/mnemonic.ts +7 -0
- package/src/interfaces/dto/request-user.ts +23 -0
- package/src/interfaces/dto/role.ts +7 -0
- package/src/interfaces/dto/token-role.ts +21 -0
- package/src/interfaces/dto/user-role.ts +7 -0
- package/src/interfaces/dto/user-settings.ts +12 -0
- package/src/interfaces/dto/user.ts +7 -0
- package/src/interfaces/failable-result.ts +9 -0
- package/src/interfaces/frontend-objects/email-token.ts +12 -0
- package/src/interfaces/frontend-objects/{index.d.ts → index.ts} +3 -1
- package/src/interfaces/frontend-objects/request-user.ts +21 -0
- package/src/interfaces/frontend-objects/{role.d.ts → role.ts} +5 -1
- package/src/interfaces/frontend-objects/user-role.ts +7 -0
- package/src/interfaces/frontend-objects/user.ts +13 -0
- package/src/interfaces/has-creation.ts +9 -0
- package/src/interfaces/has-creator.ts +11 -0
- package/src/interfaces/has-id.ts +8 -0
- package/src/interfaces/has-soft-delete.ts +9 -0
- package/src/interfaces/has-soft-deleter.ts +11 -0
- package/src/interfaces/has-timestamp-owners.ts +9 -0
- package/src/interfaces/has-timestamps.ts +11 -0
- package/src/interfaces/has-updater.ts +11 -0
- package/src/interfaces/has-updates.ts +6 -0
- package/src/interfaces/{index.d.ts → index.ts} +3 -1
- package/src/interfaces/success-message.ts +7 -0
- package/src/interfaces/{token-user.d.ts → token-user.ts} +3 -3
- package/src/interfaces/user-settings.ts +14 -0
- package/src/lib/flags.ts +286 -0
- package/src/lib/formatters.ts +26 -0
- package/src/lib/hydrate-dehydrate.ts +43 -0
- package/src/lib/{index.d.ts → index.ts} +1 -1
- package/src/lib/validators-with-constants.ts +74 -0
- package/src/lib/validators.ts +72 -0
- package/src/local-storage-manager.ts +69 -0
- package/src/strings/de.ts +793 -0
- package/src/strings/en-GB.ts +743 -0
- package/src/strings/en-US.ts +746 -0
- package/src/strings/es.ts +799 -0
- package/src/strings/fr.ts +804 -0
- package/src/strings/ja.ts +766 -0
- package/src/strings/uk.ts +783 -0
- package/src/strings/zh-CN.ts +650 -0
- package/src/backup-code-string.d.ts +0 -29
- package/src/backup-code-string.d.ts.map +0 -1
- package/src/backup-code-string.js +0 -81
- package/src/backup-code-string.js.map +0 -1
- package/src/builders/index.d.ts.map +0 -1
- package/src/builders/index.js +0 -9
- package/src/builders/index.js.map +0 -1
- package/src/builders/role-builder.d.ts +0 -19
- package/src/builders/role-builder.d.ts.map +0 -1
- package/src/builders/role-builder.js +0 -57
- package/src/builders/role-builder.js.map +0 -1
- package/src/builders/user-builder.d.ts +0 -23
- package/src/builders/user-builder.d.ts.map +0 -1
- package/src/builders/user-builder.js +0 -63
- package/src/builders/user-builder.js.map +0 -1
- package/src/constants.d.ts +0 -7
- package/src/constants.d.ts.map +0 -1
- package/src/constants.js +0 -209
- package/src/constants.js.map +0 -1
- package/src/core/errors.d.ts.map +0 -1
- package/src/core/errors.js +0 -29
- package/src/core/errors.js.map +0 -1
- package/src/core/index.d.ts.map +0 -1
- package/src/core/index.js +0 -10
- package/src/core/index.js.map +0 -1
- package/src/core/result.d.ts +0 -34
- package/src/core/result.d.ts.map +0 -1
- package/src/core/result.js +0 -35
- package/src/core/result.js.map +0 -1
- package/src/core/types.d.ts.map +0 -1
- package/src/core/types.js +0 -6
- package/src/core/types.js.map +0 -1
- package/src/defaults.d.ts +0 -7
- package/src/defaults.d.ts.map +0 -1
- package/src/defaults.js +0 -66
- package/src/defaults.js.map +0 -1
- package/src/enumerations/account-status.d.ts +0 -18
- package/src/enumerations/account-status.d.ts.map +0 -1
- package/src/enumerations/account-status.js +0 -22
- package/src/enumerations/account-status.js.map +0 -1
- package/src/enumerations/email-token-type.d.ts +0 -25
- package/src/enumerations/email-token-type.d.ts.map +0 -1
- package/src/enumerations/email-token-type.js +0 -29
- package/src/enumerations/email-token-type.js.map +0 -1
- package/src/enumerations/fec-error-type.d.ts +0 -14
- package/src/enumerations/fec-error-type.d.ts.map +0 -1
- package/src/enumerations/fec-error-type.js +0 -18
- package/src/enumerations/fec-error-type.js.map +0 -1
- package/src/enumerations/index.d.ts.map +0 -1
- package/src/enumerations/index.js +0 -10
- package/src/enumerations/index.js.map +0 -1
- package/src/enumerations/pbkdf2-error-type.d.ts +0 -5
- package/src/enumerations/pbkdf2-error-type.d.ts.map +0 -1
- package/src/enumerations/pbkdf2-error-type.js +0 -9
- package/src/enumerations/pbkdf2-error-type.js.map +0 -1
- package/src/enumerations/role.d.ts +0 -6
- package/src/enumerations/role.d.ts.map +0 -1
- package/src/enumerations/role.js +0 -10
- package/src/enumerations/role.js.map +0 -1
- package/src/enumerations/suite-core-string-key.d.ts +0 -483
- package/src/enumerations/suite-core-string-key.d.ts.map +0 -1
- package/src/enumerations/suite-core-string-key.js +0 -494
- package/src/enumerations/suite-core-string-key.js.map +0 -1
- package/src/errors/account-locked.d.ts +0 -5
- package/src/errors/account-locked.d.ts.map +0 -1
- package/src/errors/account-locked.js +0 -13
- package/src/errors/account-locked.js.map +0 -1
- package/src/errors/account-status.d.ts +0 -7
- package/src/errors/account-status.d.ts.map +0 -1
- package/src/errors/account-status.js +0 -33
- package/src/errors/account-status.js.map +0 -1
- package/src/errors/admin-role-not-found.d.ts +0 -6
- package/src/errors/admin-role-not-found.d.ts.map +0 -1
- package/src/errors/admin-role-not-found.js +0 -15
- package/src/errors/admin-role-not-found.js.map +0 -1
- package/src/errors/core-typed-handleable.d.ts +0 -12
- package/src/errors/core-typed-handleable.d.ts.map +0 -1
- package/src/errors/core-typed-handleable.js +0 -51
- package/src/errors/core-typed-handleable.js.map +0 -1
- package/src/errors/direct-challenge-not-enabled.d.ts +0 -5
- package/src/errors/direct-challenge-not-enabled.d.ts.map +0 -1
- package/src/errors/direct-challenge-not-enabled.js +0 -16
- package/src/errors/direct-challenge-not-enabled.js.map +0 -1
- package/src/errors/direct-token-used.d.ts +0 -5
- package/src/errors/direct-token-used.d.ts.map +0 -1
- package/src/errors/direct-token-used.js +0 -13
- package/src/errors/direct-token-used.js.map +0 -1
- package/src/errors/email-in-use.d.ts +0 -5
- package/src/errors/email-in-use.d.ts.map +0 -1
- package/src/errors/email-in-use.js +0 -15
- package/src/errors/email-in-use.js.map +0 -1
- package/src/errors/email-token-expired.d.ts +0 -5
- package/src/errors/email-token-expired.d.ts.map +0 -1
- package/src/errors/email-token-expired.js +0 -15
- package/src/errors/email-token-expired.js.map +0 -1
- package/src/errors/email-token-failed-to-send.d.ts +0 -6
- package/src/errors/email-token-failed-to-send.d.ts.map +0 -1
- package/src/errors/email-token-failed-to-send.js +0 -22
- package/src/errors/email-token-failed-to-send.js.map +0 -1
- package/src/errors/email-token-sent-too-recently.d.ts +0 -7
- package/src/errors/email-token-sent-too-recently.d.ts.map +0 -1
- package/src/errors/email-token-sent-too-recently.js +0 -21
- package/src/errors/email-token-sent-too-recently.js.map +0 -1
- package/src/errors/email-token-used-or-invalid.d.ts +0 -5
- package/src/errors/email-token-used-or-invalid.d.ts.map +0 -1
- package/src/errors/email-token-used-or-invalid.js +0 -15
- package/src/errors/email-token-used-or-invalid.js.map +0 -1
- package/src/errors/email-verified.d.ts +0 -5
- package/src/errors/email-verified.d.ts.map +0 -1
- package/src/errors/email-verified.js +0 -15
- package/src/errors/email-verified.js.map +0 -1
- package/src/errors/failed-to-use-direct-token.d.ts +0 -5
- package/src/errors/failed-to-use-direct-token.d.ts.map +0 -1
- package/src/errors/failed-to-use-direct-token.js +0 -13
- package/src/errors/failed-to-use-direct-token.js.map +0 -1
- package/src/errors/fec-error.d.ts +0 -6
- package/src/errors/fec-error.d.ts.map +0 -1
- package/src/errors/fec-error.js +0 -26
- package/src/errors/fec-error.js.map +0 -1
- package/src/errors/generic-validation.d.ts +0 -5
- package/src/errors/generic-validation.d.ts.map +0 -1
- package/src/errors/generic-validation.js +0 -12
- package/src/errors/generic-validation.js.map +0 -1
- package/src/errors/index.d.ts.map +0 -1
- package/src/errors/index.js +0 -43
- package/src/errors/index.js.map +0 -1
- package/src/errors/invalid-backup-code.d.ts +0 -4
- package/src/errors/invalid-backup-code.d.ts.map +0 -1
- package/src/errors/invalid-backup-code.js +0 -11
- package/src/errors/invalid-backup-code.js.map +0 -1
- package/src/errors/invalid-challenge-response.d.ts +0 -5
- package/src/errors/invalid-challenge-response.d.ts.map +0 -1
- package/src/errors/invalid-challenge-response.js +0 -16
- package/src/errors/invalid-challenge-response.js.map +0 -1
- package/src/errors/invalid-challenge.d.ts +0 -5
- package/src/errors/invalid-challenge.d.ts.map +0 -1
- package/src/errors/invalid-challenge.js +0 -13
- package/src/errors/invalid-challenge.js.map +0 -1
- package/src/errors/invalid-credentials.d.ts +0 -5
- package/src/errors/invalid-credentials.d.ts.map +0 -1
- package/src/errors/invalid-credentials.js +0 -15
- package/src/errors/invalid-credentials.js.map +0 -1
- package/src/errors/invalid-email.d.ts +0 -8
- package/src/errors/invalid-email.d.ts.map +0 -1
- package/src/errors/invalid-email.js +0 -25
- package/src/errors/invalid-email.js.map +0 -1
- package/src/errors/invalid-expired-token.d.ts +0 -6
- package/src/errors/invalid-expired-token.d.ts.map +0 -1
- package/src/errors/invalid-expired-token.js +0 -13
- package/src/errors/invalid-expired-token.js.map +0 -1
- package/src/errors/invalid-token.d.ts +0 -5
- package/src/errors/invalid-token.d.ts.map +0 -1
- package/src/errors/invalid-token.js +0 -16
- package/src/errors/invalid-token.js.map +0 -1
- package/src/errors/invalid-userid.d.ts +0 -6
- package/src/errors/invalid-userid.d.ts.map +0 -1
- package/src/errors/invalid-userid.js +0 -20
- package/src/errors/invalid-userid.js.map +0 -1
- package/src/errors/invalid-username.d.ts +0 -5
- package/src/errors/invalid-username.d.ts.map +0 -1
- package/src/errors/invalid-username.js +0 -13
- package/src/errors/invalid-username.js.map +0 -1
- package/src/errors/last-admin-error.d.ts +0 -6
- package/src/errors/last-admin-error.d.ts.map +0 -1
- package/src/errors/last-admin-error.js +0 -15
- package/src/errors/last-admin-error.js.map +0 -1
- package/src/errors/login-challenge-expired.d.ts +0 -5
- package/src/errors/login-challenge-expired.d.ts.map +0 -1
- package/src/errors/login-challenge-expired.js +0 -16
- package/src/errors/login-challenge-expired.js.map +0 -1
- package/src/errors/member-role-not-found.d.ts +0 -6
- package/src/errors/member-role-not-found.d.ts.map +0 -1
- package/src/errors/member-role-not-found.js +0 -15
- package/src/errors/member-role-not-found.js.map +0 -1
- package/src/errors/password-login-not-enabled.d.ts +0 -5
- package/src/errors/password-login-not-enabled.d.ts.map +0 -1
- package/src/errors/password-login-not-enabled.js +0 -16
- package/src/errors/password-login-not-enabled.js.map +0 -1
- package/src/errors/password-login-not-setup.d.ts +0 -5
- package/src/errors/password-login-not-setup.d.ts.map +0 -1
- package/src/errors/password-login-not-setup.js +0 -16
- package/src/errors/password-login-not-setup.js.map +0 -1
- package/src/errors/pbkdf2-error.d.ts +0 -7
- package/src/errors/pbkdf2-error.d.ts.map +0 -1
- package/src/errors/pbkdf2-error.js +0 -19
- package/src/errors/pbkdf2-error.js.map +0 -1
- package/src/errors/pending-email-verification.d.ts +0 -5
- package/src/errors/pending-email-verification.d.ts.map +0 -1
- package/src/errors/pending-email-verification.js +0 -13
- package/src/errors/pending-email-verification.js.map +0 -1
- package/src/errors/private-key-required.d.ts +0 -5
- package/src/errors/private-key-required.d.ts.map +0 -1
- package/src/errors/private-key-required.js +0 -13
- package/src/errors/private-key-required.js.map +0 -1
- package/src/errors/system-role-not-found.d.ts +0 -6
- package/src/errors/system-role-not-found.d.ts.map +0 -1
- package/src/errors/system-role-not-found.js +0 -15
- package/src/errors/system-role-not-found.js.map +0 -1
- package/src/errors/token-not-found.d.ts +0 -7
- package/src/errors/token-not-found.d.ts.map +0 -1
- package/src/errors/token-not-found.js +0 -19
- package/src/errors/token-not-found.js.map +0 -1
- package/src/errors/translatable-suite-handleable.d.ts +0 -10
- package/src/errors/translatable-suite-handleable.d.ts.map +0 -1
- package/src/errors/translatable-suite-handleable.js +0 -15
- package/src/errors/translatable-suite-handleable.js.map +0 -1
- package/src/errors/translatable-suite.d.ts +0 -13
- package/src/errors/translatable-suite.d.ts.map +0 -1
- package/src/errors/translatable-suite.js +0 -29
- package/src/errors/translatable-suite.js.map +0 -1
- package/src/errors/user-not-found.d.ts +0 -5
- package/src/errors/user-not-found.d.ts.map +0 -1
- package/src/errors/user-not-found.js +0 -15
- package/src/errors/user-not-found.js.map +0 -1
- package/src/errors/username-email-required.d.ts +0 -6
- package/src/errors/username-email-required.d.ts.map +0 -1
- package/src/errors/username-email-required.js +0 -16
- package/src/errors/username-email-required.js.map +0 -1
- package/src/errors/username-in-use.d.ts +0 -5
- package/src/errors/username-in-use.d.ts.map +0 -1
- package/src/errors/username-in-use.js +0 -15
- package/src/errors/username-in-use.js.map +0 -1
- package/src/i18n-setup.d.ts +0 -13
- package/src/i18n-setup.d.ts.map +0 -1
- package/src/i18n-setup.js +0 -116
- package/src/i18n-setup.js.map +0 -1
- package/src/index.d.ts.map +0 -1
- package/src/index.js +0 -15
- package/src/index.js.map +0 -1
- package/src/interfaces/backup-code-consts.d.ts +0 -16
- package/src/interfaces/backup-code-consts.d.ts.map +0 -1
- package/src/interfaces/backup-code-consts.js +0 -3
- package/src/interfaces/backup-code-consts.js.map +0 -1
- package/src/interfaces/backup-code.d.ts +0 -7
- package/src/interfaces/backup-code.d.ts.map +0 -1
- package/src/interfaces/backup-code.js +0 -3
- package/src/interfaces/backup-code.js.map +0 -1
- package/src/interfaces/bases/email-token.d.ts +0 -33
- package/src/interfaces/bases/email-token.d.ts.map +0 -1
- package/src/interfaces/bases/email-token.js +0 -3
- package/src/interfaces/bases/email-token.js.map +0 -1
- package/src/interfaces/bases/index.d.ts.map +0 -1
- package/src/interfaces/bases/index.js +0 -11
- package/src/interfaces/bases/index.js.map +0 -1
- package/src/interfaces/bases/mnemonic.d.ts +0 -11
- package/src/interfaces/bases/mnemonic.d.ts.map +0 -1
- package/src/interfaces/bases/mnemonic.js +0 -3
- package/src/interfaces/bases/mnemonic.js.map +0 -1
- package/src/interfaces/bases/role.d.ts +0 -32
- package/src/interfaces/bases/role.d.ts.map +0 -1
- package/src/interfaces/bases/role.js +0 -3
- package/src/interfaces/bases/role.js.map +0 -1
- package/src/interfaces/bases/token-role.d.ts +0 -8
- package/src/interfaces/bases/token-role.d.ts.map +0 -1
- package/src/interfaces/bases/token-role.js +0 -3
- package/src/interfaces/bases/token-role.js.map +0 -1
- package/src/interfaces/bases/used-direct-login-token.d.ts +0 -6
- package/src/interfaces/bases/used-direct-login-token.d.ts.map +0 -1
- package/src/interfaces/bases/used-direct-login-token.js +0 -3
- package/src/interfaces/bases/used-direct-login-token.js.map +0 -1
- package/src/interfaces/bases/user-role.d.ts +0 -16
- package/src/interfaces/bases/user-role.d.ts.map +0 -1
- package/src/interfaces/bases/user-role.js +0 -3
- package/src/interfaces/bases/user-role.js.map +0 -1
- package/src/interfaces/bases/user.d.ts +0 -79
- package/src/interfaces/bases/user.d.ts.map +0 -1
- package/src/interfaces/bases/user.js +0 -3
- package/src/interfaces/bases/user.js.map +0 -1
- package/src/interfaces/combined-role-privileges.d.ts +0 -7
- package/src/interfaces/combined-role-privileges.d.ts.map +0 -1
- package/src/interfaces/combined-role-privileges.js +0 -3
- package/src/interfaces/combined-role-privileges.js.map +0 -1
- package/src/interfaces/constants.d.ts +0 -56
- 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/core-consts.d.ts +0 -130
- package/src/interfaces/core-consts.d.ts.map +0 -1
- package/src/interfaces/core-consts.js +0 -3
- package/src/interfaces/core-consts.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/dto/email-token.d.ts +0 -3
- package/src/interfaces/dto/email-token.d.ts.map +0 -1
- package/src/interfaces/dto/email-token.js +0 -3
- package/src/interfaces/dto/email-token.js.map +0 -1
- package/src/interfaces/dto/index.d.ts.map +0 -1
- package/src/interfaces/dto/index.js +0 -12
- package/src/interfaces/dto/index.js.map +0 -1
- package/src/interfaces/dto/mnemonic.d.ts +0 -3
- package/src/interfaces/dto/mnemonic.d.ts.map +0 -1
- package/src/interfaces/dto/mnemonic.js +0 -3
- package/src/interfaces/dto/mnemonic.js.map +0 -1
- package/src/interfaces/dto/request-user.d.ts +0 -17
- package/src/interfaces/dto/request-user.d.ts.map +0 -1
- package/src/interfaces/dto/request-user.js +0 -3
- package/src/interfaces/dto/request-user.js.map +0 -1
- package/src/interfaces/dto/role.d.ts +0 -3
- package/src/interfaces/dto/role.d.ts.map +0 -1
- package/src/interfaces/dto/role.js +0 -3
- package/src/interfaces/dto/role.js.map +0 -1
- package/src/interfaces/dto/token-role.d.ts +0 -10
- package/src/interfaces/dto/token-role.d.ts.map +0 -1
- package/src/interfaces/dto/token-role.js +0 -3
- package/src/interfaces/dto/token-role.js.map +0 -1
- package/src/interfaces/dto/user-role.d.ts +0 -3
- package/src/interfaces/dto/user-role.d.ts.map +0 -1
- package/src/interfaces/dto/user-role.js +0 -3
- package/src/interfaces/dto/user-role.js.map +0 -1
- package/src/interfaces/dto/user-settings.d.ts +0 -9
- package/src/interfaces/dto/user-settings.d.ts.map +0 -1
- package/src/interfaces/dto/user-settings.js +0 -3
- package/src/interfaces/dto/user-settings.js.map +0 -1
- package/src/interfaces/dto/user.d.ts +0 -3
- package/src/interfaces/dto/user.d.ts.map +0 -1
- package/src/interfaces/dto/user.js +0 -3
- package/src/interfaces/dto/user.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/frontend-objects/email-token.d.ts +0 -4
- package/src/interfaces/frontend-objects/email-token.d.ts.map +0 -1
- package/src/interfaces/frontend-objects/email-token.js +0 -3
- package/src/interfaces/frontend-objects/email-token.js.map +0 -1
- package/src/interfaces/frontend-objects/index.d.ts.map +0 -1
- package/src/interfaces/frontend-objects/index.js +0 -9
- package/src/interfaces/frontend-objects/index.js.map +0 -1
- package/src/interfaces/frontend-objects/request-user.d.ts +0 -17
- package/src/interfaces/frontend-objects/request-user.d.ts.map +0 -1
- package/src/interfaces/frontend-objects/request-user.js +0 -3
- package/src/interfaces/frontend-objects/request-user.js.map +0 -1
- package/src/interfaces/frontend-objects/role.d.ts.map +0 -1
- package/src/interfaces/frontend-objects/role.js +0 -3
- package/src/interfaces/frontend-objects/role.js.map +0 -1
- package/src/interfaces/frontend-objects/user-role.d.ts +0 -3
- package/src/interfaces/frontend-objects/user-role.d.ts.map +0 -1
- package/src/interfaces/frontend-objects/user-role.js +0 -3
- package/src/interfaces/frontend-objects/user-role.js.map +0 -1
- package/src/interfaces/frontend-objects/user.d.ts +0 -4
- package/src/interfaces/frontend-objects/user.d.ts.map +0 -1
- package/src/interfaces/frontend-objects/user.js +0 -3
- package/src/interfaces/frontend-objects/user.js.map +0 -1
- package/src/interfaces/has-creation.d.ts +0 -7
- package/src/interfaces/has-creation.d.ts.map +0 -1
- package/src/interfaces/has-creation.js +0 -3
- package/src/interfaces/has-creation.js.map +0 -1
- package/src/interfaces/has-creator.d.ts +0 -7
- package/src/interfaces/has-creator.d.ts.map +0 -1
- package/src/interfaces/has-creator.js +0 -3
- package/src/interfaces/has-creator.js.map +0 -1
- package/src/interfaces/has-id.d.ts +0 -4
- package/src/interfaces/has-id.d.ts.map +0 -1
- package/src/interfaces/has-id.js +0 -3
- package/src/interfaces/has-id.js.map +0 -1
- package/src/interfaces/has-soft-delete.d.ts +0 -7
- package/src/interfaces/has-soft-delete.d.ts.map +0 -1
- package/src/interfaces/has-soft-delete.js +0 -3
- package/src/interfaces/has-soft-delete.js.map +0 -1
- package/src/interfaces/has-soft-deleter.d.ts +0 -7
- package/src/interfaces/has-soft-deleter.d.ts.map +0 -1
- package/src/interfaces/has-soft-deleter.js +0 -3
- package/src/interfaces/has-soft-deleter.js.map +0 -1
- package/src/interfaces/has-timestamp-owners.d.ts +0 -5
- package/src/interfaces/has-timestamp-owners.d.ts.map +0 -1
- package/src/interfaces/has-timestamp-owners.js +0 -3
- package/src/interfaces/has-timestamp-owners.js.map +0 -1
- package/src/interfaces/has-timestamps.d.ts +0 -6
- package/src/interfaces/has-timestamps.d.ts.map +0 -1
- package/src/interfaces/has-timestamps.js +0 -3
- package/src/interfaces/has-timestamps.js.map +0 -1
- package/src/interfaces/has-updater.d.ts +0 -7
- package/src/interfaces/has-updater.d.ts.map +0 -1
- package/src/interfaces/has-updater.js +0 -3
- package/src/interfaces/has-updater.js.map +0 -1
- package/src/interfaces/has-updates.d.ts +0 -4
- package/src/interfaces/has-updates.d.ts.map +0 -1
- package/src/interfaces/has-updates.js +0 -3
- package/src/interfaces/has-updates.js.map +0 -1
- package/src/interfaces/index.d.ts.map +0 -1
- package/src/interfaces/index.js +0 -26
- package/src/interfaces/index.js.map +0 -1
- package/src/interfaces/success-message.d.ts +0 -5
- package/src/interfaces/success-message.d.ts.map +0 -1
- package/src/interfaces/success-message.js +0 -3
- package/src/interfaces/success-message.js.map +0 -1
- package/src/interfaces/token-user.d.ts.map +0 -1
- package/src/interfaces/token-user.js +0 -3
- package/src/interfaces/token-user.js.map +0 -1
- package/src/interfaces/user-settings.d.ts +0 -11
- package/src/interfaces/user-settings.d.ts.map +0 -1
- package/src/interfaces/user-settings.js +0 -3
- package/src/interfaces/user-settings.js.map +0 -1
- package/src/lib/flags.d.ts +0 -10
- package/src/lib/flags.d.ts.map +0 -1
- package/src/lib/flags.js +0 -288
- package/src/lib/flags.js.map +0 -1
- package/src/lib/formatters.d.ts +0 -16
- package/src/lib/formatters.d.ts.map +0 -1
- package/src/lib/formatters.js +0 -29
- package/src/lib/formatters.js.map +0 -1
- package/src/lib/hydrate-dehydrate.d.ts +0 -4
- package/src/lib/hydrate-dehydrate.d.ts.map +0 -1
- package/src/lib/hydrate-dehydrate.js +0 -27
- package/src/lib/hydrate-dehydrate.js.map +0 -1
- package/src/lib/index.d.ts.map +0 -1
- package/src/lib/index.js +0 -12
- package/src/lib/index.js.map +0 -1
- package/src/lib/validators-with-constants.d.ts +0 -73
- package/src/lib/validators-with-constants.d.ts.map +0 -1
- package/src/lib/validators-with-constants.js +0 -64
- package/src/lib/validators-with-constants.js.map +0 -1
- package/src/lib/validators.d.ts +0 -37
- package/src/lib/validators.d.ts.map +0 -1
- package/src/lib/validators.js +0 -74
- package/src/lib/validators.js.map +0 -1
- package/src/local-storage-manager.d.ts +0 -22
- package/src/local-storage-manager.d.ts.map +0 -1
- package/src/local-storage-manager.js +0 -74
- package/src/local-storage-manager.js.map +0 -1
- package/src/strings/de.d.ts +0 -3
- package/src/strings/de.d.ts.map +0 -1
- package/src/strings/de.js +0 -487
- package/src/strings/de.js.map +0 -1
- package/src/strings/en-GB.d.ts +0 -3
- package/src/strings/en-GB.d.ts.map +0 -1
- package/src/strings/en-GB.js +0 -487
- package/src/strings/en-GB.js.map +0 -1
- package/src/strings/en-US.d.ts +0 -3
- package/src/strings/en-US.d.ts.map +0 -1
- package/src/strings/en-US.js +0 -487
- package/src/strings/en-US.js.map +0 -1
- package/src/strings/es.d.ts +0 -3
- package/src/strings/es.d.ts.map +0 -1
- package/src/strings/es.js +0 -487
- package/src/strings/es.js.map +0 -1
- package/src/strings/fr.d.ts +0 -3
- package/src/strings/fr.d.ts.map +0 -1
- package/src/strings/fr.js +0 -487
- package/src/strings/fr.js.map +0 -1
- package/src/strings/ja.d.ts +0 -3
- package/src/strings/ja.d.ts.map +0 -1
- package/src/strings/ja.js +0 -487
- package/src/strings/ja.js.map +0 -1
- package/src/strings/uk.d.ts +0 -3
- package/src/strings/uk.d.ts.map +0 -1
- package/src/strings/uk.js +0 -487
- package/src/strings/uk.js.map +0 -1
- package/src/strings/zh-CN.d.ts +0 -3
- package/src/strings/zh-CN.d.ts.map +0 -1
- package/src/strings/zh-CN.js +0 -487
- package/src/strings/zh-CN.js.map +0 -1
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error thrown when the system role cannot be found in the system.
|
|
3
|
+
*/
|
|
4
|
+
import { CoreLanguageCode } from '@digitaldefiance/i18n-lib';
|
|
5
|
+
import { SuiteCoreStringKey } from '../enumerations';
|
|
6
|
+
import { TranslatableSuiteHandleableError } from './translatable-suite-handleable';
|
|
7
|
+
|
|
8
|
+
export class SystemRoleNotFoundError extends TranslatableSuiteHandleableError {
|
|
9
|
+
constructor(language?: CoreLanguageCode) {
|
|
10
|
+
super(SuiteCoreStringKey.SystemRoleNotFound, undefined, language, {
|
|
11
|
+
statusCode: 500,
|
|
12
|
+
});
|
|
13
|
+
this.name = 'SystemRoleNotFoundError';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error thrown when a token cannot be found.
|
|
3
|
+
*/
|
|
4
|
+
import { CoreLanguageCode } from '@digitaldefiance/i18n-lib';
|
|
5
|
+
import { SuiteCoreStringKey } from '../enumerations';
|
|
6
|
+
import { TranslatableSuiteHandleableError } from './translatable-suite-handleable';
|
|
7
|
+
|
|
8
|
+
export class TokenNotFoundError extends TranslatableSuiteHandleableError {
|
|
9
|
+
public readonly token: string;
|
|
10
|
+
constructor(token: string, language?: CoreLanguageCode, statusCode = 404) {
|
|
11
|
+
super(
|
|
12
|
+
SuiteCoreStringKey.TokenNotFoundTemplate,
|
|
13
|
+
{
|
|
14
|
+
TOKEN: token,
|
|
15
|
+
},
|
|
16
|
+
language,
|
|
17
|
+
{
|
|
18
|
+
statusCode,
|
|
19
|
+
},
|
|
20
|
+
);
|
|
21
|
+
this.token = token;
|
|
22
|
+
this.name = 'TokenNotFoundError';
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Translatable handleable error class for suite-core library with i18n and error handling support.
|
|
3
|
+
*/
|
|
4
|
+
import { TranslatableHandleableGenericError } from '@digitaldefiance/i18n-lib';
|
|
5
|
+
import { SuiteCoreStringKey } from '../enumerations';
|
|
6
|
+
import { SuiteCoreComponentId } from '../i18n-setup';
|
|
7
|
+
|
|
8
|
+
export class TranslatableSuiteHandleableError extends TranslatableHandleableGenericError<SuiteCoreStringKey> {
|
|
9
|
+
constructor(
|
|
10
|
+
messageKey: SuiteCoreStringKey,
|
|
11
|
+
otherVars?: Record<string, string | number>,
|
|
12
|
+
language?: string,
|
|
13
|
+
handleableOptions?: {
|
|
14
|
+
statusCode?: number;
|
|
15
|
+
cause?: Error;
|
|
16
|
+
sourceData?: unknown;
|
|
17
|
+
},
|
|
18
|
+
) {
|
|
19
|
+
super(
|
|
20
|
+
SuiteCoreComponentId,
|
|
21
|
+
messageKey,
|
|
22
|
+
otherVars,
|
|
23
|
+
language,
|
|
24
|
+
undefined, // metadata
|
|
25
|
+
'default', // instanceKey
|
|
26
|
+
handleableOptions,
|
|
27
|
+
);
|
|
28
|
+
this.name = 'TranslatableSuiteHandleableError';
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Translatable error class for suite-core library with i18n support.
|
|
3
|
+
*/
|
|
4
|
+
import { SuiteCoreStringKey } from '../enumerations/suite-core-string-key';
|
|
5
|
+
import { getSuiteCoreI18nEngine, SuiteCoreComponentId } from '../i18n-setup';
|
|
6
|
+
|
|
7
|
+
export class TranslatableSuiteError extends Error {
|
|
8
|
+
public readonly StringName: SuiteCoreStringKey;
|
|
9
|
+
/**
|
|
10
|
+
* @param string The translation key or raw string
|
|
11
|
+
* @param otherVars Variables for interpolation
|
|
12
|
+
* @param language Optional language override
|
|
13
|
+
* @param options Error options
|
|
14
|
+
* @param engine Optional i18n engine override (defaults to node-express-suite component)
|
|
15
|
+
*/
|
|
16
|
+
constructor(
|
|
17
|
+
string: SuiteCoreStringKey,
|
|
18
|
+
otherVars?: Record<string, string | number>,
|
|
19
|
+
language?: string,
|
|
20
|
+
) {
|
|
21
|
+
const i18nEngine = getSuiteCoreI18nEngine();
|
|
22
|
+
let translatedMessage: string;
|
|
23
|
+
try {
|
|
24
|
+
translatedMessage = i18nEngine.translate(
|
|
25
|
+
SuiteCoreComponentId,
|
|
26
|
+
string,
|
|
27
|
+
otherVars,
|
|
28
|
+
language,
|
|
29
|
+
);
|
|
30
|
+
} catch {
|
|
31
|
+
translatedMessage = string;
|
|
32
|
+
}
|
|
33
|
+
super(translatedMessage);
|
|
34
|
+
this.name = 'TranslatableSuiteError';
|
|
35
|
+
this.StringName = string;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error thrown when a user cannot be found.
|
|
3
|
+
*/
|
|
4
|
+
import { SuiteCoreStringKey } from '../enumerations';
|
|
5
|
+
import { TranslatableSuiteHandleableError } from './translatable-suite-handleable';
|
|
6
|
+
|
|
7
|
+
export class UserNotFoundError extends TranslatableSuiteHandleableError {
|
|
8
|
+
constructor(language?: string, statusCode = 404) {
|
|
9
|
+
super(SuiteCoreStringKey.Auth_UserNotFound, undefined, language, {
|
|
10
|
+
statusCode,
|
|
11
|
+
});
|
|
12
|
+
this.name = 'UserNotFoundError';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error thrown when neither username nor email is provided.
|
|
3
|
+
*/
|
|
4
|
+
import { CoreLanguageCode } from '@digitaldefiance/i18n-lib';
|
|
5
|
+
import { SuiteCoreStringKey } from '../enumerations';
|
|
6
|
+
import { getSuiteCoreTranslation } from '../i18n-setup';
|
|
7
|
+
import { GenericValidationError } from './generic-validation';
|
|
8
|
+
|
|
9
|
+
export class UsernameOrEmailRequiredError extends GenericValidationError {
|
|
10
|
+
constructor(language?: CoreLanguageCode, statusCode = 422) {
|
|
11
|
+
super(
|
|
12
|
+
getSuiteCoreTranslation(
|
|
13
|
+
SuiteCoreStringKey.Validation_UsernameOrEmailRequired,
|
|
14
|
+
undefined,
|
|
15
|
+
language,
|
|
16
|
+
),
|
|
17
|
+
{
|
|
18
|
+
statusCode,
|
|
19
|
+
},
|
|
20
|
+
);
|
|
21
|
+
this.name = 'UsernameOrEmailRequiredError';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error thrown when a username is already in use by another account.
|
|
3
|
+
*/
|
|
4
|
+
import { SuiteCoreStringKey } from '../enumerations';
|
|
5
|
+
import { TranslatableSuiteHandleableError } from './translatable-suite-handleable';
|
|
6
|
+
|
|
7
|
+
export class UsernameInUseError extends TranslatableSuiteHandleableError {
|
|
8
|
+
constructor(language?: string, statusCode = 422) {
|
|
9
|
+
super(SuiteCoreStringKey.Validation_UsernameInUse, undefined, language, {
|
|
10
|
+
statusCode,
|
|
11
|
+
});
|
|
12
|
+
this.name = 'UsernameInUseError';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internationalization (i18n) setup and configuration for suite-core library.
|
|
3
|
+
* Manages i18n engine initialization, component registration, and translation string loading
|
|
4
|
+
* across 8 supported languages (en-US, en-GB, fr, de, es, zh-CN, ja, uk).
|
|
5
|
+
*/
|
|
6
|
+
import {
|
|
7
|
+
ComponentConfig,
|
|
8
|
+
ComponentDefinition,
|
|
9
|
+
CoreLanguageCode,
|
|
10
|
+
createDefaultLanguages,
|
|
11
|
+
EngineConfig,
|
|
12
|
+
I18nEngine,
|
|
13
|
+
LanguageCodes,
|
|
14
|
+
} from '@digitaldefiance/i18n-lib';
|
|
15
|
+
import { Role } from './enumerations/role';
|
|
16
|
+
import { SuiteCoreStringKey } from './enumerations/suite-core-string-key';
|
|
17
|
+
import { germanStrings } from './strings/de';
|
|
18
|
+
import { britishEnglishStrings } from './strings/en-GB';
|
|
19
|
+
import { americanEnglishStrings } from './strings/en-US';
|
|
20
|
+
import { spanishStrings } from './strings/es';
|
|
21
|
+
import { frenchStrings } from './strings/fr';
|
|
22
|
+
import { japaneseStrings } from './strings/ja';
|
|
23
|
+
import { ukrainianStrings } from './strings/uk';
|
|
24
|
+
import { mandarinStrings } from './strings/zh-CN';
|
|
25
|
+
|
|
26
|
+
export const SuiteCoreI18nEngineKey = 'default' as const;
|
|
27
|
+
export const SuiteCoreComponentId = 'suite-core' as const;
|
|
28
|
+
export const SuiteCoreComponent: ComponentDefinition<SuiteCoreStringKey> = {
|
|
29
|
+
id: SuiteCoreComponentId,
|
|
30
|
+
name: 'Suite Core Library Component',
|
|
31
|
+
stringKeys: Object.values(SuiteCoreStringKey),
|
|
32
|
+
};
|
|
33
|
+
export const SuiteCoreComponentStrings: Record<
|
|
34
|
+
string,
|
|
35
|
+
Record<SuiteCoreStringKey, string>
|
|
36
|
+
> = {
|
|
37
|
+
[LanguageCodes.EN_US]: americanEnglishStrings,
|
|
38
|
+
[LanguageCodes.EN_GB]: britishEnglishStrings,
|
|
39
|
+
[LanguageCodes.FR]: frenchStrings,
|
|
40
|
+
[LanguageCodes.DE]: germanStrings,
|
|
41
|
+
[LanguageCodes.ES]: spanishStrings,
|
|
42
|
+
[LanguageCodes.ZH_CN]: mandarinStrings,
|
|
43
|
+
[LanguageCodes.JA]: japaneseStrings,
|
|
44
|
+
[LanguageCodes.UK]: ukrainianStrings,
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const roleTranslations: Record<CoreLanguageCode, Record<Role, string>> = {
|
|
48
|
+
[LanguageCodes.EN_US]: {
|
|
49
|
+
[Role.Admin]: 'Administrator',
|
|
50
|
+
[Role.Member]: 'Member',
|
|
51
|
+
[Role.System]: 'System',
|
|
52
|
+
},
|
|
53
|
+
[LanguageCodes.EN_GB]: {
|
|
54
|
+
[Role.Admin]: 'Administrator',
|
|
55
|
+
[Role.Member]: 'Member',
|
|
56
|
+
[Role.System]: 'System',
|
|
57
|
+
},
|
|
58
|
+
[LanguageCodes.FR]: {
|
|
59
|
+
[Role.Admin]: 'Administrateur',
|
|
60
|
+
[Role.Member]: 'Membre',
|
|
61
|
+
[Role.System]: 'Système',
|
|
62
|
+
},
|
|
63
|
+
[LanguageCodes.ES]: {
|
|
64
|
+
[Role.Admin]: 'Administrador',
|
|
65
|
+
[Role.Member]: 'Miembro',
|
|
66
|
+
[Role.System]: 'Sistema',
|
|
67
|
+
},
|
|
68
|
+
[LanguageCodes.DE]: {
|
|
69
|
+
[Role.Admin]: 'Administrator',
|
|
70
|
+
[Role.Member]: 'Mitglied',
|
|
71
|
+
[Role.System]: 'System',
|
|
72
|
+
},
|
|
73
|
+
[LanguageCodes.ZH_CN]: {
|
|
74
|
+
[Role.Admin]: '管理员',
|
|
75
|
+
[Role.Member]: '成员',
|
|
76
|
+
[Role.System]: '系统',
|
|
77
|
+
},
|
|
78
|
+
[LanguageCodes.JA]: {
|
|
79
|
+
[Role.Admin]: '管理者',
|
|
80
|
+
[Role.Member]: 'メンバー',
|
|
81
|
+
[Role.System]: 'システム',
|
|
82
|
+
},
|
|
83
|
+
[LanguageCodes.UK]: {
|
|
84
|
+
[Role.Admin]: 'Адміністратор',
|
|
85
|
+
[Role.Member]: 'Учасник',
|
|
86
|
+
[Role.System]: 'Система',
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
// Suite Core component config
|
|
91
|
+
export function createSuiteCoreComponentConfig(): ComponentConfig {
|
|
92
|
+
const SuiteCoreComponentConfig: ComponentConfig = {
|
|
93
|
+
id: SuiteCoreComponentId,
|
|
94
|
+
strings: SuiteCoreComponentStrings,
|
|
95
|
+
aliases: ['SuiteCoreStringKey'],
|
|
96
|
+
};
|
|
97
|
+
return SuiteCoreComponentConfig;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
let _engine: I18nEngine | undefined;
|
|
101
|
+
|
|
102
|
+
export function getSuiteCoreI18nEngine(config?: EngineConfig): I18nEngine {
|
|
103
|
+
if (!_engine || !I18nEngine.hasInstance(SuiteCoreI18nEngineKey)) {
|
|
104
|
+
_engine = I18nEngine.registerIfNotExists(
|
|
105
|
+
SuiteCoreI18nEngineKey,
|
|
106
|
+
createDefaultLanguages(),
|
|
107
|
+
{ defaultLanguage: LanguageCodes.EN_US, ...config },
|
|
108
|
+
);
|
|
109
|
+
|
|
110
|
+
_engine.registerIfNotExists(createSuiteCoreComponentConfig());
|
|
111
|
+
_engine.registerEnum(Role, roleTranslations, 'Role');
|
|
112
|
+
}
|
|
113
|
+
return _engine;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export function getSuiteCoreTranslation(
|
|
117
|
+
key: SuiteCoreStringKey,
|
|
118
|
+
variables?: Record<string, unknown>,
|
|
119
|
+
language?: string,
|
|
120
|
+
config?: EngineConfig,
|
|
121
|
+
): string {
|
|
122
|
+
return getSuiteCoreI18nEngine(config).translate(
|
|
123
|
+
SuiteCoreComponentId,
|
|
124
|
+
key,
|
|
125
|
+
variables,
|
|
126
|
+
language,
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export function resetSuiteCoreI18nEngine(): void {
|
|
131
|
+
I18nEngine.removeInstance(SuiteCoreI18nEngineKey);
|
|
132
|
+
_engine = undefined;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export function initSuiteCoreI18nEngine(config?: EngineConfig): I18nEngine {
|
|
136
|
+
return getSuiteCoreI18nEngine(config);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
export function safeGetSuiteCoreTranslation(
|
|
140
|
+
key: SuiteCoreStringKey,
|
|
141
|
+
variables?: Record<string, unknown>,
|
|
142
|
+
language?: string,
|
|
143
|
+
config?: EngineConfig,
|
|
144
|
+
): string {
|
|
145
|
+
try {
|
|
146
|
+
return getSuiteCoreTranslation(key, variables, language, config);
|
|
147
|
+
} catch {
|
|
148
|
+
return key;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Main entry point for the suite-core library.
|
|
3
|
+
* Exports all public APIs including builders, constants, enumerations, errors, interfaces, and utilities.
|
|
4
|
+
*/
|
|
1
5
|
export * from './backup-code-string';
|
|
2
6
|
export * from './builders';
|
|
3
7
|
export * from './constants';
|
|
@@ -9,4 +13,3 @@ export * from './i18n-setup';
|
|
|
9
13
|
export * from './interfaces';
|
|
10
14
|
export * from './lib';
|
|
11
15
|
export * from './local-storage-manager';
|
|
12
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backup code constants interface.
|
|
3
|
+
*/
|
|
4
|
+
export interface IBackupCodeConstants {
|
|
5
|
+
/**
|
|
6
|
+
* How many backup codes to generate for users
|
|
7
|
+
*/
|
|
8
|
+
Count: number;
|
|
9
|
+
/**
|
|
10
|
+
* Regex for the backup codes
|
|
11
|
+
* 32 lowercase alphanumeric character string (a-z0-9)
|
|
12
|
+
*/
|
|
13
|
+
NormalizedHexRegex: RegExp;
|
|
14
|
+
/**
|
|
15
|
+
* Regex for the display format of the backup codes
|
|
16
|
+
*/
|
|
17
|
+
DisplayRegex: RegExp; // xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx
|
|
18
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { PlatformID } from '@digitaldefiance/ecies-lib';
|
|
2
|
+
import { EmailTokenType } from '../../enumerations/email-token-type';
|
|
3
|
+
import { IHasId } from '../has-id';
|
|
4
|
+
import { IHasTimestamps } from '../has-timestamps';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Base interface for email token collection documents
|
|
8
|
+
*/
|
|
9
|
+
export interface IEmailTokenBase<
|
|
10
|
+
TID extends PlatformID,
|
|
11
|
+
TDate extends Date | string,
|
|
12
|
+
TEmailTokenType extends EmailTokenType | string,
|
|
13
|
+
>
|
|
14
|
+
extends IHasId<TID>, IHasTimestamps<TDate> {
|
|
15
|
+
/**
|
|
16
|
+
* The user ID associated with the token
|
|
17
|
+
*/
|
|
18
|
+
userId: TID;
|
|
19
|
+
/**
|
|
20
|
+
* The type of token
|
|
21
|
+
*/
|
|
22
|
+
type: TEmailTokenType;
|
|
23
|
+
/**
|
|
24
|
+
* The token value
|
|
25
|
+
*/
|
|
26
|
+
token: string;
|
|
27
|
+
/**
|
|
28
|
+
* The email address the token was sent to
|
|
29
|
+
*/
|
|
30
|
+
email: string;
|
|
31
|
+
/**
|
|
32
|
+
* The date the token was last sent
|
|
33
|
+
*/
|
|
34
|
+
lastSent?: TDate;
|
|
35
|
+
/**
|
|
36
|
+
* The date the token expires
|
|
37
|
+
*/
|
|
38
|
+
expiresAt: TDate;
|
|
39
|
+
}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base interface exports for domain models.
|
|
3
|
+
*/
|
|
1
4
|
export * from './email-token';
|
|
2
5
|
export * from './mnemonic';
|
|
3
6
|
export * from './role';
|
|
@@ -5,4 +8,3 @@ export * from './token-role';
|
|
|
5
8
|
export * from './used-direct-login-token';
|
|
6
9
|
export * from './user';
|
|
7
10
|
export * from './user-role';
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { PlatformID } from '@digitaldefiance/ecies-lib';
|
|
2
|
+
import { IHasId } from '../has-id';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Represents a mnemonic hash being stored to check for uniqueness
|
|
6
|
+
*/
|
|
7
|
+
export interface IMnemonicBase<TID extends PlatformID> extends IHasId<TID> {
|
|
8
|
+
/**
|
|
9
|
+
* A non-reversible HMAC of the mnemonic, used for uniqueness checks.
|
|
10
|
+
*/
|
|
11
|
+
hmac: string;
|
|
12
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { PlatformID } from '@digitaldefiance/ecies-lib';
|
|
2
|
+
import { Role } from '../../enumerations/role';
|
|
3
|
+
import { IHasId } from '../has-id';
|
|
4
|
+
import { IHasSoftDelete } from '../has-soft-delete';
|
|
5
|
+
import { IHasSoftDeleter } from '../has-soft-deleter';
|
|
6
|
+
import { IHasTimestampOwners } from '../has-timestamp-owners';
|
|
7
|
+
import { IHasTimestamps } from '../has-timestamps';
|
|
8
|
+
|
|
9
|
+
export interface IRoleBase<
|
|
10
|
+
TID extends PlatformID,
|
|
11
|
+
TDate extends Date | string = Date,
|
|
12
|
+
TRole extends Role | string = Role,
|
|
13
|
+
>
|
|
14
|
+
extends
|
|
15
|
+
IHasId<TID>,
|
|
16
|
+
IHasTimestamps<TDate>,
|
|
17
|
+
IHasTimestampOwners<TID>,
|
|
18
|
+
IHasSoftDelete<TDate>,
|
|
19
|
+
IHasSoftDeleter<TID> {
|
|
20
|
+
/**
|
|
21
|
+
* The name of the role
|
|
22
|
+
*/
|
|
23
|
+
name: TRole;
|
|
24
|
+
/**
|
|
25
|
+
* Whether the role is an admin
|
|
26
|
+
*/
|
|
27
|
+
admin: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Whether the role is a site member
|
|
30
|
+
* Must not specify admin or system
|
|
31
|
+
*/
|
|
32
|
+
member: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Whether the role is a restricted child account
|
|
35
|
+
* This prevents the account from certain actions
|
|
36
|
+
* Must not specify admin, member,
|
|
37
|
+
*/
|
|
38
|
+
child: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Whether the role is a system account
|
|
41
|
+
*/
|
|
42
|
+
system: boolean;
|
|
43
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token role base interface.
|
|
3
|
+
* Extended role interface with translated name for JWT token payloads.
|
|
4
|
+
*/
|
|
5
|
+
import type { PlatformID } from '@digitaldefiance/ecies-lib';
|
|
6
|
+
import { IRoleBase } from './role';
|
|
7
|
+
|
|
8
|
+
export interface ITokenRole<
|
|
9
|
+
TID extends PlatformID,
|
|
10
|
+
TDate extends Date | string = Date,
|
|
11
|
+
> extends IRoleBase<TID, TDate> {
|
|
12
|
+
/**
|
|
13
|
+
* The translated name of the role
|
|
14
|
+
*/
|
|
15
|
+
translatedName: string;
|
|
16
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Used direct login token base interface.
|
|
3
|
+
* Tracks tokens that have been used for direct login to prevent replay attacks.
|
|
4
|
+
*/
|
|
5
|
+
import type { PlatformID } from '@digitaldefiance/ecies-lib';
|
|
6
|
+
import { IHasId } from '../has-id';
|
|
7
|
+
|
|
8
|
+
export interface IUsedDirectLoginTokenBase<TID extends PlatformID> extends IHasId<TID> {
|
|
9
|
+
/**
|
|
10
|
+
* The user ID associated with the token
|
|
11
|
+
*/
|
|
12
|
+
userId: TID;
|
|
13
|
+
/**
|
|
14
|
+
* The token value that was used
|
|
15
|
+
*/
|
|
16
|
+
token: string;
|
|
17
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { PlatformID } from '@digitaldefiance/ecies-lib';
|
|
2
|
+
import { IHasId } from '../has-id';
|
|
3
|
+
import { IHasSoftDelete } from '../has-soft-delete';
|
|
4
|
+
import { IHasSoftDeleter } from '../has-soft-deleter';
|
|
5
|
+
import { IHasTimestampOwners } from '../has-timestamp-owners';
|
|
6
|
+
import { IHasTimestamps } from '../has-timestamps';
|
|
7
|
+
|
|
8
|
+
export interface IUserRoleBase<TID extends PlatformID, TDate extends Date | string>
|
|
9
|
+
extends
|
|
10
|
+
IHasId<TID>,
|
|
11
|
+
IHasTimestamps<TDate>,
|
|
12
|
+
IHasTimestampOwners<TID>,
|
|
13
|
+
IHasSoftDelete<TDate>,
|
|
14
|
+
IHasSoftDeleter<TID> {
|
|
15
|
+
/**
|
|
16
|
+
* The user ID
|
|
17
|
+
*/
|
|
18
|
+
userId: TID;
|
|
19
|
+
/**
|
|
20
|
+
* The role ID
|
|
21
|
+
*/
|
|
22
|
+
roleId: TID;
|
|
23
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type { PlatformID } from '@digitaldefiance/ecies-lib';
|
|
2
|
+
import { AccountStatus } from '../../enumerations/account-status';
|
|
3
|
+
import { IBackupCode } from '../backup-code';
|
|
4
|
+
import { IHasId } from '../has-id';
|
|
5
|
+
import { IHasSoftDelete } from '../has-soft-delete';
|
|
6
|
+
import { IHasSoftDeleter } from '../has-soft-deleter';
|
|
7
|
+
import { IHasTimestampOwners } from '../has-timestamp-owners';
|
|
8
|
+
import { IHasTimestamps } from '../has-timestamps';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Base interface for user collection documents
|
|
12
|
+
*/
|
|
13
|
+
export interface IUserBase<
|
|
14
|
+
TID extends PlatformID,
|
|
15
|
+
TDate extends Date | string,
|
|
16
|
+
TLanguage extends string,
|
|
17
|
+
TAccountStatus extends AccountStatus | string,
|
|
18
|
+
>
|
|
19
|
+
extends
|
|
20
|
+
IHasId<TID>,
|
|
21
|
+
IHasTimestamps<TDate>,
|
|
22
|
+
IHasTimestampOwners<TID>,
|
|
23
|
+
IHasSoftDelete<TDate>,
|
|
24
|
+
IHasSoftDeleter<TID> {
|
|
25
|
+
/**
|
|
26
|
+
* The username of the user
|
|
27
|
+
*/
|
|
28
|
+
username: string;
|
|
29
|
+
/**
|
|
30
|
+
* The email address of the user
|
|
31
|
+
*/
|
|
32
|
+
email: string;
|
|
33
|
+
/**
|
|
34
|
+
* The public key for the user
|
|
35
|
+
*/
|
|
36
|
+
publicKey: string;
|
|
37
|
+
/**
|
|
38
|
+
* The currency preference of the user
|
|
39
|
+
*/
|
|
40
|
+
currency: string;
|
|
41
|
+
/**
|
|
42
|
+
* The timezone of the user
|
|
43
|
+
*/
|
|
44
|
+
timezone: string;
|
|
45
|
+
/**
|
|
46
|
+
* The language of the site for the user
|
|
47
|
+
*/
|
|
48
|
+
siteLanguage: TLanguage;
|
|
49
|
+
/**
|
|
50
|
+
* Whether the user prefers dark mode
|
|
51
|
+
*/
|
|
52
|
+
darkMode: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* The date the user last logged in
|
|
55
|
+
*/
|
|
56
|
+
lastLogin?: TDate;
|
|
57
|
+
/**
|
|
58
|
+
* Whether the user has verified their email address
|
|
59
|
+
*/
|
|
60
|
+
emailVerified: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* The status of the user's account, eg 'AdminLock'
|
|
63
|
+
*/
|
|
64
|
+
accountStatus: TAccountStatus;
|
|
65
|
+
/**
|
|
66
|
+
* Reference to the mnemonic document
|
|
67
|
+
*/
|
|
68
|
+
mnemonicId?: TID;
|
|
69
|
+
/**
|
|
70
|
+
* Whether the user has enabled direct challenge
|
|
71
|
+
*/
|
|
72
|
+
directChallenge: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Password-wrapped ECIES private key
|
|
75
|
+
*/
|
|
76
|
+
passwordWrappedPrivateKey?: {
|
|
77
|
+
salt: string;
|
|
78
|
+
iv: string;
|
|
79
|
+
authTag: string;
|
|
80
|
+
ciphertext: string;
|
|
81
|
+
iterations: number;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Array of backup codes to recover mnemonic/private key
|
|
85
|
+
*/
|
|
86
|
+
backupCodes: Array<IBackupCode>;
|
|
87
|
+
/**
|
|
88
|
+
* Copy of the mnemonic encrypted with the user's public key
|
|
89
|
+
*/
|
|
90
|
+
mnemonicRecovery: string;
|
|
91
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extended constants interface with site-specific configuration and theme colors.
|
|
3
|
+
*/
|
|
4
|
+
import { ICoreConstants } from './core-consts';
|
|
5
|
+
|
|
6
|
+
export interface IConstants extends ICoreConstants {
|
|
7
|
+
/**
|
|
8
|
+
* The email of the administrator user/admin contact
|
|
9
|
+
*/
|
|
10
|
+
AdministratorEmail: string;
|
|
11
|
+
/**
|
|
12
|
+
* The email of the test user.
|
|
13
|
+
*/
|
|
14
|
+
MemberEmail: string;
|
|
15
|
+
/**
|
|
16
|
+
* The email of the system user.
|
|
17
|
+
*/
|
|
18
|
+
SystemEmail: string;
|
|
19
|
+
/**
|
|
20
|
+
* The primary brand color (used for primary theme color)
|
|
21
|
+
*/
|
|
22
|
+
logo_primary_color: string;
|
|
23
|
+
/**
|
|
24
|
+
* The primary text color (used for logo and text)
|
|
25
|
+
*/
|
|
26
|
+
logo_primary_text: string;
|
|
27
|
+
/**
|
|
28
|
+
* The secondary text color (used for logo and accents)
|
|
29
|
+
*/
|
|
30
|
+
logo_secondary_text: string;
|
|
31
|
+
/**
|
|
32
|
+
* The color used to indicate success states.
|
|
33
|
+
*/
|
|
34
|
+
success_color: string;
|
|
35
|
+
/**
|
|
36
|
+
* The color used to indicate warning states.
|
|
37
|
+
*/
|
|
38
|
+
warning_color: string;
|
|
39
|
+
/**
|
|
40
|
+
* The color used to indicate failure states.
|
|
41
|
+
*/
|
|
42
|
+
failure_color: string;
|
|
43
|
+
/**
|
|
44
|
+
* The light variant of the primary text color.
|
|
45
|
+
*/
|
|
46
|
+
primary_text_light: string;
|
|
47
|
+
/**
|
|
48
|
+
* The dark variant of the primary text color.
|
|
49
|
+
*/
|
|
50
|
+
primary_text_dark: string;
|
|
51
|
+
/**
|
|
52
|
+
* The light variant of the secondary text color.
|
|
53
|
+
*/
|
|
54
|
+
secondary_text_light: string;
|
|
55
|
+
/**
|
|
56
|
+
* The dark variant of the secondary text color.
|
|
57
|
+
*/
|
|
58
|
+
secondary_text_dark: string;
|
|
59
|
+
}
|