@digitaldefiance/suite-core-lib 3.6.6 → 3.6.7
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/README.md +82 -44
- package/package.json +10 -6
- package/src/backup-code-string.ts +96 -0
- package/src/builders/{index.d.ts → index.ts} +1 -1
- package/src/builders/role-builder.ts +63 -0
- package/src/builders/user-builder.ts +72 -0
- package/src/constants.ts +220 -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 +36 -0
- package/src/core/{types.d.ts → types.ts} +6 -1
- package/src/defaults.ts +110 -0
- package/src/enumerations/account-status.ts +17 -0
- package/src/enumerations/email-token-type.ts +24 -0
- package/src/enumerations/fec-error-type.ts +13 -0
- package/src/enumerations/{index.d.ts → index.ts} +1 -2
- package/src/enumerations/pbkdf2-error-type.ts +4 -0
- package/src/enumerations/role.ts +5 -0
- package/src/enumerations/suite-core-string-key.ts +495 -0
- package/src/errors/account-locked.ts +9 -0
- package/src/errors/account-status.ts +33 -0
- package/src/errors/admin-role-not-found.ts +10 -0
- package/src/errors/core-typed-handleable.ts +69 -0
- package/src/errors/direct-challenge-not-enabled.ts +12 -0
- package/src/errors/direct-token-used.ts +9 -0
- package/src/errors/email-in-use.ts +11 -0
- package/src/errors/email-token-expired.ts +12 -0
- package/src/errors/email-token-failed-to-send.ts +20 -0
- package/src/errors/email-token-sent-too-recently.ts +29 -0
- package/src/errors/email-token-used-or-invalid.ts +12 -0
- package/src/errors/email-verified.ts +11 -0
- package/src/errors/failed-to-use-direct-token.ts +9 -0
- package/src/errors/fec-error.ts +33 -0
- package/src/errors/generic-validation.ts +11 -0
- package/src/errors/{index.d.ts → index.ts} +0 -1
- package/src/errors/invalid-backup-code.ts +6 -0
- package/src/errors/invalid-challenge-response.ts +12 -0
- package/src/errors/invalid-challenge.ts +9 -0
- package/src/errors/invalid-credentials.ts +14 -0
- package/src/errors/invalid-email.ts +22 -0
- package/src/errors/invalid-expired-token.ts +11 -0
- package/src/errors/invalid-token.ts +13 -0
- package/src/errors/invalid-userid.ts +21 -0
- package/src/errors/invalid-username.ts +14 -0
- package/src/errors/last-admin-error.ts +12 -0
- package/src/errors/login-challenge-expired.ts +12 -0
- package/src/errors/member-role-not-found.ts +10 -0
- package/src/errors/password-login-not-enabled.ts +12 -0
- package/src/errors/password-login-not-setup.ts +12 -0
- package/src/errors/pbkdf2-error.ts +19 -0
- package/src/errors/pending-email-verification.ts +9 -0
- package/src/errors/private-key-required.ts +13 -0
- package/src/errors/system-role-not-found.ts +10 -0
- package/src/errors/token-not-found.ts +26 -0
- package/src/errors/translatable-suite-handleable.ts +27 -0
- package/src/errors/translatable-suite.ts +34 -0
- package/src/errors/user-not-found.ts +14 -0
- package/src/errors/username-email-required.ts +20 -0
- package/src/errors/username-in-use.ts +14 -0
- package/src/i18n-setup.ts +141 -0
- package/src/{index.d.ts → index.ts} +0 -1
- package/src/interfaces/backup-code-consts.ts +15 -0
- package/src/interfaces/backup-code.ts +6 -0
- package/src/interfaces/bases/email-token.ts +38 -0
- package/src/interfaces/bases/{index.d.ts → index.ts} +0 -1
- package/src/interfaces/bases/{mnemonic.d.ts → mnemonic.ts} +5 -5
- package/src/interfaces/bases/role.ts +40 -0
- package/src/interfaces/bases/token-role.ts +9 -0
- package/src/interfaces/bases/{used-direct-login-token.d.ts → used-direct-login-token.ts} +3 -3
- package/src/interfaces/bases/user-role.ts +21 -0
- package/src/interfaces/bases/user.ts +88 -0
- package/src/interfaces/combined-role-privileges.ts +6 -0
- package/src/interfaces/constants.ts +56 -0
- package/src/interfaces/core-consts.ts +130 -0
- package/src/interfaces/deep-partial.ts +3 -0
- package/src/interfaces/dto/{email-token.d.ts → email-token.ts} +1 -1
- package/src/interfaces/dto/{index.d.ts → index.ts} +1 -2
- package/src/interfaces/dto/{mnemonic.d.ts → mnemonic.ts} +1 -1
- package/src/interfaces/dto/request-user.ts +19 -0
- package/src/interfaces/dto/{role.d.ts → role.ts} +1 -1
- package/src/interfaces/dto/{token-role.d.ts → token-role.ts} +9 -3
- package/src/interfaces/dto/{user-role.d.ts → user-role.ts} +1 -1
- package/src/interfaces/dto/{user-settings.d.ts → user-settings.ts} +1 -2
- package/src/interfaces/dto/{user.d.ts → user.ts} +1 -1
- package/src/interfaces/failable-result.ts +6 -0
- package/src/interfaces/frontend-objects/email-token.ts +8 -0
- package/src/interfaces/frontend-objects/{index.d.ts → index.ts} +1 -2
- package/src/interfaces/frontend-objects/request-user.ts +17 -0
- package/src/interfaces/frontend-objects/{role.d.ts → role.ts} +1 -1
- package/src/interfaces/frontend-objects/{user-role.d.ts → user-role.ts} +1 -1
- package/src/interfaces/frontend-objects/user.ts +9 -0
- package/src/interfaces/has-creation.ts +6 -0
- package/src/interfaces/has-creator.ts +6 -0
- package/src/interfaces/has-id.ts +3 -0
- package/src/interfaces/has-soft-delete.ts +6 -0
- package/src/interfaces/has-soft-deleter.ts +6 -0
- package/src/interfaces/has-timestamp-owners.ts +6 -0
- package/src/interfaces/has-timestamps.ts +7 -0
- package/src/interfaces/has-updater.ts +6 -0
- package/src/interfaces/has-updates.ts +3 -0
- package/src/interfaces/{index.d.ts → index.ts} +0 -1
- package/src/interfaces/success-message.ts +4 -0
- package/src/interfaces/{token-user.d.ts → token-user.ts} +3 -3
- package/src/interfaces/{user-settings.d.ts → user-settings.ts} +2 -2
- package/src/lib/flags.ts +286 -0
- package/src/lib/formatters.ts +28 -0
- package/src/lib/hydrate-dehydrate.ts +27 -0
- package/src/lib/{index.d.ts → index.ts} +2 -2
- package/src/lib/validators-with-constants.ts +72 -0
- package/src/lib/validators.ts +72 -0
- package/src/local-storage-manager.ts +69 -0
- package/src/strings/de.ts +689 -0
- package/src/strings/en-GB.ts +626 -0
- package/src/strings/en-US.ts +628 -0
- package/src/strings/es.ts +688 -0
- package/src/strings/fr.ts +685 -0
- package/src/strings/ja.ts +654 -0
- package/src/strings/uk.ts +667 -0
- package/src/strings/zh-CN.ts +566 -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 -482
- package/src/enumerations/suite-core-string-key.d.ts.map +0 -1
- package/src/enumerations/suite-core-string-key.js +0 -493
- 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 -31
- 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 -13
- 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 -7
- 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 -18
- 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 -13
- 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 -20
- 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 -13
- 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 -13
- 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 -13
- 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.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.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.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.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.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.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.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.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.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.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.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 -486
- 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 -486
- 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 -486
- 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 -486
- 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 -486
- 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 -486
- 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 -486
- 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 -486
- package/src/strings/zh-CN.js.map +0 -1
package/src/constants.ts
ADDED
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import { ObjectIdProvider } from '@digitaldefiance/ecies-lib';
|
|
2
|
+
import { Role } from './enumerations/role';
|
|
3
|
+
import { IBackupCodeConstants, ICoreConstants } from './interfaces';
|
|
4
|
+
import { IConstants } from './interfaces/constants';
|
|
5
|
+
|
|
6
|
+
export const BACKUP_CODES: IBackupCodeConstants = Object.freeze({
|
|
7
|
+
/**
|
|
8
|
+
* How many backup codes to generate for users
|
|
9
|
+
*/
|
|
10
|
+
Count: 10 as const,
|
|
11
|
+
NormalizedHexRegex: /^[a-z0-9]{32}$/, // exactly 32 lowercase alphanumeric chars
|
|
12
|
+
DisplayRegex: /^([a-z0-9]{4}-){7}[a-z0-9]{4}$/, // xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx
|
|
13
|
+
} as const);
|
|
14
|
+
|
|
15
|
+
export const CORE: ICoreConstants = Object.freeze({
|
|
16
|
+
/**
|
|
17
|
+
* The ID provider to use for generating and parsing IDs
|
|
18
|
+
*/
|
|
19
|
+
idProvider: new ObjectIdProvider(),
|
|
20
|
+
/**
|
|
21
|
+
* Default duration in seconds for which a mnemonic is kept in memory
|
|
22
|
+
*/
|
|
23
|
+
DefaultExpireMemoryMnemonicSeconds: 300 as const, // 5 minutes
|
|
24
|
+
/**
|
|
25
|
+
* Default duration in seconds for which a wallet is kept in memory
|
|
26
|
+
*/
|
|
27
|
+
DefaultExpireMemoryWalletSeconds: 300 as const, // 5 minutes
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Duration in milliseconds for which a login challenge is valid.
|
|
31
|
+
*/
|
|
32
|
+
LoginChallengeExpiration: 60000 as const, // 60 seconds
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* The expected length of a direct login challenge in bytes
|
|
36
|
+
*/
|
|
37
|
+
DirectLoginChallengeLength: 104 as const,
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Backup code system configuration
|
|
41
|
+
*/
|
|
42
|
+
BACKUP_CODES: BACKUP_CODES,
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Duration in milliseconds for which an email token is valid.
|
|
46
|
+
*/
|
|
47
|
+
EmailTokenExpiration: 86400000 as const, // 24 * 60 * 60 * 1000
|
|
48
|
+
/**
|
|
49
|
+
* Length in bytes of the email token generated (is represented as a hex string of twice as many)
|
|
50
|
+
*/
|
|
51
|
+
EmailTokenLength: 32 as const,
|
|
52
|
+
/**
|
|
53
|
+
* Number of rounds for bcrypt hashing. Higher values increase security but also consume more CPU resources.
|
|
54
|
+
*/
|
|
55
|
+
BcryptRounds: 10 as const,
|
|
56
|
+
/**
|
|
57
|
+
* The username of the administrator user.
|
|
58
|
+
*/
|
|
59
|
+
AdministratorUser: 'admin' as const,
|
|
60
|
+
/**
|
|
61
|
+
* The name of the administrator role.
|
|
62
|
+
*/
|
|
63
|
+
AdministratorRole: Role.Admin as const,
|
|
64
|
+
/**
|
|
65
|
+
* The name of the member role.
|
|
66
|
+
*/
|
|
67
|
+
MemberRole: Role.Member as const,
|
|
68
|
+
/**
|
|
69
|
+
* The username of the test user.
|
|
70
|
+
*/
|
|
71
|
+
MemberUser: 'test' as const,
|
|
72
|
+
/**
|
|
73
|
+
* The name of the system role.
|
|
74
|
+
*/
|
|
75
|
+
SystemRole: Role.System as const,
|
|
76
|
+
/**
|
|
77
|
+
* The username of the system user.
|
|
78
|
+
*/
|
|
79
|
+
SystemUser: 'system' as const,
|
|
80
|
+
/**
|
|
81
|
+
* Minimum username length
|
|
82
|
+
*/
|
|
83
|
+
UsernameMinLength: 3 as const,
|
|
84
|
+
/**
|
|
85
|
+
* Maximum username length
|
|
86
|
+
*/
|
|
87
|
+
UsernameMaxLength: 30 as const,
|
|
88
|
+
/**
|
|
89
|
+
* The regular expression for valid usernames.
|
|
90
|
+
*/
|
|
91
|
+
UsernameRegex: /^[A-Za-z0-9]{3,30}$/,
|
|
92
|
+
/**
|
|
93
|
+
* Minimum password length
|
|
94
|
+
*/
|
|
95
|
+
PasswordMinLength: 8 as const,
|
|
96
|
+
/**
|
|
97
|
+
* The regular expression for valid passwords.
|
|
98
|
+
*/
|
|
99
|
+
PasswordRegex:
|
|
100
|
+
/^(?=.*[A-Za-z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?])[A-Za-z\d!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]{8,}$/,
|
|
101
|
+
/**
|
|
102
|
+
* The regular expression for valid JWT tokens.
|
|
103
|
+
*/
|
|
104
|
+
JwtSecretRegex: /^[0-9a-f]{64}$/i,
|
|
105
|
+
/**
|
|
106
|
+
* The regular expression for valid mnemonic phrases.
|
|
107
|
+
* BIP39 - supports 12, 15, 18, 21, or 24 word mnemonics
|
|
108
|
+
*/
|
|
109
|
+
MnemonicRegex:
|
|
110
|
+
/^(?:\w+\s){11}\w+$|^(?:\w+\s){14}\w+$|^(?:\w+\s){17}\w+$|^(?:\w+\s){20}\w+$|^(?:\w+\s){23}\w+$/i,
|
|
111
|
+
/**
|
|
112
|
+
* Matches a 64-character hexadecimal string (SHA-256).
|
|
113
|
+
*/
|
|
114
|
+
MnemonicHmacRegex: /^[a-f0-9]{64}$/,
|
|
115
|
+
/**
|
|
116
|
+
* The regular expression for valid encryption keys.
|
|
117
|
+
*/
|
|
118
|
+
MnemonicEncryptionKeyRegex: /^[a-f0-9]{64}$/,
|
|
119
|
+
/**
|
|
120
|
+
* The amount of time in milliseconds after which an email token can be resent.
|
|
121
|
+
*/
|
|
122
|
+
EmailTokenResendInterval: 300000 as const, // 5 * 60 * 1000 = 5 minutes
|
|
123
|
+
/**
|
|
124
|
+
* The interval in minutes after which an email token can be resent.
|
|
125
|
+
*/
|
|
126
|
+
EmailTokenResendIntervalMinutes: 5 as const,
|
|
127
|
+
/**
|
|
128
|
+
* The site name. Overridden by specific site constants.
|
|
129
|
+
*/
|
|
130
|
+
Site: 'New Site' as const,
|
|
131
|
+
/**
|
|
132
|
+
* The site tagline. Overridden by specific site constants.
|
|
133
|
+
*/
|
|
134
|
+
SiteTagline: 'New Site Tagline' as const,
|
|
135
|
+
/**
|
|
136
|
+
* The site description. Overridden by specific site constants.
|
|
137
|
+
*/
|
|
138
|
+
SiteDescription: 'Description of the new site' as const,
|
|
139
|
+
/**
|
|
140
|
+
* Email domain of usernames on the site. Overridden by specific site constants.
|
|
141
|
+
*/
|
|
142
|
+
SiteEmailDomain: 'localhost' as const,
|
|
143
|
+
/**
|
|
144
|
+
* The hostname of the site. Overridden by specific site constants.
|
|
145
|
+
*/
|
|
146
|
+
SiteHostname: 'localhost' as const,
|
|
147
|
+
} as const);
|
|
148
|
+
|
|
149
|
+
export const createConstants: (
|
|
150
|
+
siteDomain: string,
|
|
151
|
+
siteHostname: string,
|
|
152
|
+
overrides?: Partial<IConstants>,
|
|
153
|
+
) => IConstants = (siteDomain: string, siteHostname: string, overrides?: Partial<IConstants>) => {
|
|
154
|
+
return Object.freeze({
|
|
155
|
+
...CORE,
|
|
156
|
+
/**
|
|
157
|
+
* The email of the administrator user/admin contact
|
|
158
|
+
*/
|
|
159
|
+
AdministratorEmail: `admin@${siteDomain}` as const,
|
|
160
|
+
/**
|
|
161
|
+
* The email of the test user.
|
|
162
|
+
*/
|
|
163
|
+
MemberEmail: `test@${siteDomain}` as const,
|
|
164
|
+
/**
|
|
165
|
+
* The email of the system user.
|
|
166
|
+
*/
|
|
167
|
+
SystemEmail: `system@${siteDomain}` as const,
|
|
168
|
+
/**
|
|
169
|
+
* The email domain of usernames on the site.
|
|
170
|
+
*/
|
|
171
|
+
SiteEmailDomain: siteDomain,
|
|
172
|
+
/**
|
|
173
|
+
* The hostname of the site.
|
|
174
|
+
*/
|
|
175
|
+
SiteHostname: siteHostname,
|
|
176
|
+
/**
|
|
177
|
+
* The color used to indicate success states.
|
|
178
|
+
*/
|
|
179
|
+
success_color: '#4CAF50',
|
|
180
|
+
/**
|
|
181
|
+
* The color used to indicate failure states.
|
|
182
|
+
*/
|
|
183
|
+
failure_color: '#F44336',
|
|
184
|
+
/**
|
|
185
|
+
* The color used to indicate warning states.
|
|
186
|
+
*/
|
|
187
|
+
warning_color: '#FF9800',
|
|
188
|
+
/**
|
|
189
|
+
* The light variant of the primary text color.
|
|
190
|
+
*/
|
|
191
|
+
primary_text_light: '#ffffff',
|
|
192
|
+
/**
|
|
193
|
+
* The dark variant of the primary text color.
|
|
194
|
+
*/
|
|
195
|
+
primary_text_dark: '#000000',
|
|
196
|
+
/**
|
|
197
|
+
* The light variant of the secondary text color.
|
|
198
|
+
*/
|
|
199
|
+
secondary_text_light: '#ffffff',
|
|
200
|
+
/**
|
|
201
|
+
* The dark variant of the secondary text color.
|
|
202
|
+
*/
|
|
203
|
+
secondary_text_dark: '#000000',
|
|
204
|
+
/**
|
|
205
|
+
* The primary brand color (used for primary theme color)
|
|
206
|
+
*/
|
|
207
|
+
logo_primary_color: '#050505ff',
|
|
208
|
+
/**
|
|
209
|
+
* The primary text color (used for logo and text)
|
|
210
|
+
*/
|
|
211
|
+
logo_primary_text: '#212121',
|
|
212
|
+
/**
|
|
213
|
+
* The secondary text color (used for logo and accents)
|
|
214
|
+
*/
|
|
215
|
+
logo_secondary_text: '#757575',
|
|
216
|
+
...(overrides ?? {}),
|
|
217
|
+
} as const);
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
export const Constants = createConstants('localhost', 'localhost');
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Core error class exports for suite-core-lib
|
|
3
3
|
*/
|
|
4
|
+
|
|
5
|
+
// Base error classes
|
|
4
6
|
export { TranslatableSuiteError } from '../errors/translatable-suite';
|
|
5
7
|
export { TranslatableSuiteHandleableError } from '../errors/translatable-suite-handleable';
|
|
6
8
|
export { CoreTypedHandleableError } from '../errors/core-typed-handleable';
|
|
9
|
+
|
|
10
|
+
// Common error classes
|
|
7
11
|
export { UserNotFoundError } from '../errors/user-not-found';
|
|
8
12
|
export { InvalidCredentialsError } from '../errors/invalid-credentials';
|
|
9
13
|
export { InvalidEmailError } from '../errors/invalid-email';
|
|
@@ -11,4 +15,3 @@ export { InvalidUsernameError } from '../errors/invalid-username';
|
|
|
11
15
|
export { EmailInUseError } from '../errors/email-in-use';
|
|
12
16
|
export { UsernameInUseError } from '../errors/username-in-use';
|
|
13
17
|
export { GenericValidationError } from '../errors/generic-validation';
|
|
14
|
-
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Result type pattern for better error handling
|
|
3
|
+
* Provides type-safe success/failure handling without exceptions
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export type Result<T, E = Error> =
|
|
7
|
+
| { success: true; data: T }
|
|
8
|
+
| { success: false; error: E };
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Create a successful result
|
|
12
|
+
*/
|
|
13
|
+
export function success<T>(data: T): Result<T, never> {
|
|
14
|
+
return { success: true, data };
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Create a failed result
|
|
19
|
+
*/
|
|
20
|
+
export function failure<E>(error: E): Result<never, E> {
|
|
21
|
+
return { success: false, error };
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Check if result is successful
|
|
26
|
+
*/
|
|
27
|
+
export function isSuccess<T, E>(result: Result<T, E>): result is { success: true; data: T } {
|
|
28
|
+
return result.success;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Check if result is a failure
|
|
33
|
+
*/
|
|
34
|
+
export function isFailure<T, E>(result: Result<T, E>): result is { success: false; error: E } {
|
|
35
|
+
return !result.success;
|
|
36
|
+
}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Core type exports for suite-core-lib
|
|
3
3
|
*/
|
|
4
|
+
|
|
5
|
+
// Common utility types
|
|
4
6
|
export type { IFailableResult } from '../interfaces/failable-result';
|
|
5
7
|
export type { DeepPartial } from '../interfaces/deep-partial';
|
|
8
|
+
|
|
9
|
+
// Base interface types
|
|
6
10
|
export type { IHasId } from '../interfaces/has-id';
|
|
7
11
|
export type { IHasTimestamps } from '../interfaces/has-timestamps';
|
|
8
12
|
export type { IHasCreation } from '../interfaces/has-creation';
|
|
@@ -12,6 +16,7 @@ export type { IHasCreator } from '../interfaces/has-creator';
|
|
|
12
16
|
export type { IHasUpdater } from '../interfaces/has-updater';
|
|
13
17
|
export type { IHasSoftDeleter } from '../interfaces/has-soft-deleter';
|
|
14
18
|
export type { IHasTimestampOwners } from '../interfaces/has-timestamp-owners';
|
|
19
|
+
|
|
20
|
+
// User and auth types
|
|
15
21
|
export type { ITokenUser } from '../interfaces/token-user';
|
|
16
22
|
export type { BackupCodeString } from '../backup-code-string';
|
|
17
|
-
//# sourceMappingURL=types.d.ts.map
|
package/src/defaults.ts
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { createConstants } from './constants';
|
|
2
|
+
import { IConstants } from './interfaces/constants';
|
|
3
|
+
import { DeepPartial } from './interfaces/deep-partial';
|
|
4
|
+
|
|
5
|
+
export type ConfigurationKey = string | symbol;
|
|
6
|
+
|
|
7
|
+
const DEFAULT_CONFIGURATION_KEY: ConfigurationKey = Symbol.for(
|
|
8
|
+
'digitaldefiance.suite-core.defaults.default'
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
const registry: Map<ConfigurationKey, IConstants> = new Map();
|
|
12
|
+
|
|
13
|
+
// Define cloneable types to improve type safety
|
|
14
|
+
type Cloneable =
|
|
15
|
+
| string
|
|
16
|
+
| number
|
|
17
|
+
| boolean
|
|
18
|
+
| null
|
|
19
|
+
| undefined
|
|
20
|
+
| Date
|
|
21
|
+
| RegExp
|
|
22
|
+
| Cloneable[]
|
|
23
|
+
| { [key: string]: Cloneable };
|
|
24
|
+
|
|
25
|
+
function deepClone<T extends Cloneable>(input: T): T {
|
|
26
|
+
if (input === null || typeof input !== 'object') {
|
|
27
|
+
return input;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
if (Array.isArray(input)) {
|
|
31
|
+
return input.map((item) => deepClone(item)) as T;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
if (input instanceof RegExp) {
|
|
35
|
+
return new RegExp(input.source, input.flags) as T;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if (input instanceof Date) {
|
|
39
|
+
return new Date(input.getTime()) as T;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const result: Record<string, Cloneable> = {};
|
|
43
|
+
for (const [key, value] of Object.entries(input)) {
|
|
44
|
+
result[key] = deepClone(value as Cloneable);
|
|
45
|
+
}
|
|
46
|
+
return result as T;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function deepFreeze<T>(obj: T): T {
|
|
50
|
+
Object.freeze(obj);
|
|
51
|
+
if (obj && typeof obj === 'object') {
|
|
52
|
+
Object.getOwnPropertyNames(obj).forEach((prop) => {
|
|
53
|
+
const value = (obj as Record<string, unknown>)[prop];
|
|
54
|
+
if (value && typeof value === 'object' && !Object.isFrozen(value)) {
|
|
55
|
+
deepFreeze(value);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
return obj;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function applyOverrides<T extends object>(
|
|
63
|
+
target: T,
|
|
64
|
+
overrides?: DeepPartial<T>
|
|
65
|
+
): T {
|
|
66
|
+
if (!overrides) return target;
|
|
67
|
+
const result = deepClone(target as Cloneable) as unknown as T;
|
|
68
|
+
for (const [key, value] of Object.entries(overrides)) {
|
|
69
|
+
if (value !== undefined && key in result) {
|
|
70
|
+
(result as Record<string, unknown>)[key] = value;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return result;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export function createSuiteCoreRuntimeConfiguration(
|
|
77
|
+
siteDomain: string = 'localhost',
|
|
78
|
+
siteHostname: string = 'localhost',
|
|
79
|
+
overrides?: DeepPartial<IConstants>
|
|
80
|
+
): IConstants {
|
|
81
|
+
const config = applyOverrides(
|
|
82
|
+
createConstants(siteDomain, siteHostname),
|
|
83
|
+
overrides
|
|
84
|
+
);
|
|
85
|
+
return deepFreeze(config);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export function registerSuiteCoreRuntimeConfiguration(
|
|
89
|
+
key: ConfigurationKey = DEFAULT_CONFIGURATION_KEY,
|
|
90
|
+
siteDomain: string = 'localhost',
|
|
91
|
+
siteHostname: string = 'localhost',
|
|
92
|
+
overrides?: DeepPartial<IConstants>
|
|
93
|
+
): IConstants {
|
|
94
|
+
const config = createSuiteCoreRuntimeConfiguration(
|
|
95
|
+
siteDomain,
|
|
96
|
+
siteHostname,
|
|
97
|
+
overrides
|
|
98
|
+
);
|
|
99
|
+
registry.set(key, config);
|
|
100
|
+
return config;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export function getSuiteCoreRuntimeConfiguration(
|
|
104
|
+
key: ConfigurationKey = DEFAULT_CONFIGURATION_KEY
|
|
105
|
+
): IConstants {
|
|
106
|
+
if (!registry.has(key)) {
|
|
107
|
+
registry.set(key, createSuiteCoreRuntimeConfiguration());
|
|
108
|
+
}
|
|
109
|
+
return registry.get(key)!;
|
|
110
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Values for the status of an account.
|
|
3
|
+
*/
|
|
4
|
+
export enum AccountStatus {
|
|
5
|
+
/**
|
|
6
|
+
* The user has not verified their email address
|
|
7
|
+
*/
|
|
8
|
+
PendingEmailVerification = 'PendingEmailVerification',
|
|
9
|
+
/**
|
|
10
|
+
* The user has verified their email address
|
|
11
|
+
*/
|
|
12
|
+
Active = 'Active',
|
|
13
|
+
/**
|
|
14
|
+
* The user has been locked by an admin
|
|
15
|
+
*/
|
|
16
|
+
AdminLock = 'AdminLock',
|
|
17
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export enum EmailTokenType {
|
|
2
|
+
/**
|
|
3
|
+
* A token for verifying an account
|
|
4
|
+
*/
|
|
5
|
+
AccountVerification = 'AccountVerification',
|
|
6
|
+
/**
|
|
7
|
+
* A token for resetting a password
|
|
8
|
+
*/
|
|
9
|
+
PasswordReset = 'PasswordReset',
|
|
10
|
+
/**
|
|
11
|
+
* Requests a login link
|
|
12
|
+
*/
|
|
13
|
+
LoginRequest = 'LoginRequest',
|
|
14
|
+
/**
|
|
15
|
+
* Request encrypted private key blob for a user
|
|
16
|
+
* (requires username/email)
|
|
17
|
+
*/
|
|
18
|
+
PrivateKeyRequest = 'PrivateKeyRequest',
|
|
19
|
+
/**
|
|
20
|
+
* Request encrypted mnemonic blob for a user
|
|
21
|
+
* (requires private key)
|
|
22
|
+
*/
|
|
23
|
+
MnemonicRecoveryRequest = 'MnemonicRecoveryRequest',
|
|
24
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export enum FecErrorType {
|
|
2
|
+
DataRequired = 'DataRequired',
|
|
3
|
+
InputDataMustBeUint8Array = 'InputDataMustBeUint8Array',
|
|
4
|
+
InvalidShardCounts = 'InvalidShardCounts',
|
|
5
|
+
InvalidShardsAvailableArray = 'InvalidShardsAvailableArray',
|
|
6
|
+
ParityDataCountMustBePositive = 'ParityDataCountMustBePositive',
|
|
7
|
+
ParityDataRequired = 'ParityDataRequired',
|
|
8
|
+
InvalidDataLength = 'InvalidDataLength',
|
|
9
|
+
ShardSizeExceedsMaximum = 'ShardSizeExceedsMaximum',
|
|
10
|
+
NotEnoughShardsAvailable = 'NotEnoughShardsAvailable',
|
|
11
|
+
FecEncodingFailed = 'FecEncodingFailed',
|
|
12
|
+
FecDecodingFailed = 'FecDecodingFailed',
|
|
13
|
+
}
|