@contember/engine-tenant-api 2.1.0-alpha.9 → 2.1.0-beta.2
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/CLAUDE.md +37 -0
- package/dist/development/index.cjs +5 -6
- package/dist/development/index.cjs.map +1 -1
- package/dist/development/index.js +2 -3
- package/dist/development/src/TenantContainer.cjs +73 -2
- package/dist/development/src/TenantContainer.cjs.map +1 -1
- package/dist/development/src/TenantContainer.js +73 -2
- package/dist/development/src/TenantContainer.js.map +1 -1
- package/dist/development/src/bridges/system/IdentityFetcher.cjs +1 -0
- package/dist/development/src/bridges/system/IdentityFetcher.cjs.map +1 -1
- package/dist/development/src/bridges/system/IdentityFetcher.js +1 -0
- package/dist/development/src/bridges/system/IdentityFetcher.js.map +1 -1
- package/dist/development/src/exceptions.cjs.map +1 -1
- package/dist/development/src/exceptions.js.map +1 -1
- package/dist/development/src/migrations/2018-08-02-174310-init.cjs.map +1 -1
- package/dist/development/src/migrations/2018-08-02-174310-init.js.map +1 -1
- package/dist/development/src/migrations/2018-09-03-140621-identity-project.cjs.map +1 -1
- package/dist/development/src/migrations/2018-09-03-140621-identity-project.js.map +1 -1
- package/dist/development/src/migrations/2018-10-26-165450-setup-api-key.cjs.map +1 -1
- package/dist/development/src/migrations/2018-10-26-165450-setup-api-key.js.map +1 -1
- package/dist/development/src/migrations/2018-10-26-175155-variables.cjs.map +1 -1
- package/dist/development/src/migrations/2018-10-26-175155-variables.js.map +1 -1
- package/dist/development/src/migrations/2019-02-18-110949-project-slug.cjs.map +1 -1
- package/dist/development/src/migrations/2019-02-18-110949-project-slug.js.map +1 -1
- package/dist/development/src/migrations/2019-02-18-160155-session-expiration.cjs.map +1 -1
- package/dist/development/src/migrations/2019-02-18-160155-session-expiration.js.map +1 -1
- package/dist/development/src/migrations/2019-05-03-163729-api-key-disabled-at.cjs.map +1 -1
- package/dist/development/src/migrations/2019-05-03-163729-api-key-disabled-at.js.map +1 -1
- package/dist/development/src/migrations/2019-08-14-153300-project-slug-unique.cjs.map +1 -1
- package/dist/development/src/migrations/2019-08-14-153300-project-slug-unique.js.map +1 -1
- package/dist/development/src/migrations/2019-09-06-111000-membership.cjs.map +1 -1
- package/dist/development/src/migrations/2019-09-06-111000-membership.js.map +1 -1
- package/dist/development/src/migrations/2019-09-06-111001-drop-old-member.cjs.map +1 -1
- package/dist/development/src/migrations/2019-09-06-111001-drop-old-member.js.map +1 -1
- package/dist/development/src/migrations/2020-01-29-idenity-note.cjs.map +1 -1
- package/dist/development/src/migrations/2020-01-29-idenity-note.js.map +1 -1
- package/dist/development/src/migrations/2020-04-17-fix-person-index.cjs.map +1 -1
- package/dist/development/src/migrations/2020-04-17-fix-person-index.js.map +1 -1
- package/dist/development/src/migrations/2020-05-01-170000-api-key-index.cjs.map +1 -1
- package/dist/development/src/migrations/2020-05-01-170000-api-key-index.js.map +1 -1
- package/dist/development/src/migrations/2020-06-08-134000-tenant-credentials.cjs.map +1 -1
- package/dist/development/src/migrations/2020-06-08-134000-tenant-credentials.js.map +1 -1
- package/dist/development/src/migrations/2020-08-07-110000-person-otp.cjs.map +1 -1
- package/dist/development/src/migrations/2020-08-07-110000-person-otp.js.map +1 -1
- package/dist/development/src/migrations/2020-08-17-162200-mail-templates.cjs.map +1 -1
- package/dist/development/src/migrations/2020-08-17-162200-mail-templates.js.map +1 -1
- package/dist/development/src/migrations/2020-08-21-143400-person-password-reset.cjs.map +1 -1
- package/dist/development/src/migrations/2020-08-21-143400-person-password-reset.js.map +1 -1
- package/dist/development/src/migrations/2020-09-07-094200-identity-provider.cjs.map +1 -1
- package/dist/development/src/migrations/2020-09-07-094200-identity-provider.js.map +1 -1
- package/dist/development/src/migrations/2021-03-28-134000-timestamp.cjs.map +1 -1
- package/dist/development/src/migrations/2021-03-28-134000-timestamp.js.map +1 -1
- package/dist/development/src/migrations/2021-07-26-105000-project-config.cjs.map +1 -1
- package/dist/development/src/migrations/2021-07-26-105000-project-config.js.map +1 -1
- package/dist/development/src/migrations/2021-07-26-132000-project-secrets.cjs.map +1 -1
- package/dist/development/src/migrations/2021-07-26-132000-project-secrets.js.map +1 -1
- package/dist/development/src/migrations/2021-07-27-174000-project-alias-index.cjs.map +1 -1
- package/dist/development/src/migrations/2021-07-27-174000-project-alias-index.js.map +1 -1
- package/dist/development/src/migrations/2021-11-24-130000-person-password-null.cjs.map +1 -1
- package/dist/development/src/migrations/2021-11-24-130000-person-password-null.js.map +1 -1
- package/dist/development/src/migrations/2021-11-24-161500-mail-template-project-null.cjs.map +1 -1
- package/dist/development/src/migrations/2021-11-24-161500-mail-template-project-null.js.map +1 -1
- package/dist/development/src/migrations/2022-01-04-144000-person-unique-identity.cjs.map +1 -1
- package/dist/development/src/migrations/2022-01-04-144000-person-unique-identity.js.map +1 -1
- package/dist/development/src/migrations/2022-02-09-111800-fix-crypted.cjs.map +1 -1
- package/dist/development/src/migrations/2022-02-09-111800-fix-crypted.js.map +1 -1
- package/dist/development/src/migrations/2022-02-11-153000-idp-auto-sign-up.cjs.map +1 -1
- package/dist/development/src/migrations/2022-02-11-153000-idp-auto-sign-up.js.map +1 -1
- package/dist/development/src/migrations/2022-06-29-105000-person-idp.cjs.map +1 -1
- package/dist/development/src/migrations/2022-06-29-105000-person-idp.js.map +1 -1
- package/dist/development/src/migrations/2022-07-07-135000-person-email-opt-uniq.cjs.map +1 -1
- package/dist/development/src/migrations/2022-07-07-135000-person-email-opt-uniq.js.map +1 -1
- package/dist/development/src/migrations/2022-07-07-141000-person-display-name.cjs.map +1 -1
- package/dist/development/src/migrations/2022-07-07-141000-person-display-name.js.map +1 -1
- package/dist/development/src/migrations/2022-07-14-145000-person-login-options.cjs.map +1 -1
- package/dist/development/src/migrations/2022-07-14-145000-person-login-options.js.map +1 -1
- package/dist/development/src/migrations/2022-11-08-project-update-notification.cjs.map +1 -1
- package/dist/development/src/migrations/2022-11-08-project-update-notification.js.map +1 -1
- package/dist/development/src/migrations/2023-01-20-135500-person-email-normalize.cjs.map +1 -1
- package/dist/development/src/migrations/2023-01-20-135500-person-email-normalize.js.map +1 -1
- package/dist/development/src/migrations/2023-06-03-104000-person-disabled.cjs.map +1 -1
- package/dist/development/src/migrations/2023-06-03-104000-person-disabled.js.map +1 -1
- package/dist/development/src/migrations/2023-09-01-165000-idp-return-config.cjs.map +1 -1
- package/dist/development/src/migrations/2023-09-01-165000-idp-return-config.js.map +1 -1
- package/dist/development/src/migrations/2024-06-20-140000-mail-reply.cjs.map +1 -1
- package/dist/development/src/migrations/2024-06-20-140000-mail-reply.js.map +1 -1
- package/dist/development/src/migrations/2024-08-26-120000-passwordless.cjs.map +1 -1
- package/dist/development/src/migrations/2024-08-26-120000-passwordless.js.map +1 -1
- package/dist/development/src/migrations/2025-04-16-180000-config-up.cjs +39 -0
- package/dist/development/src/migrations/2025-04-16-180000-config-up.cjs.map +1 -0
- package/dist/development/src/migrations/2025-04-16-180000-config-up.js +40 -0
- package/dist/development/src/migrations/2025-04-16-180000-config-up.js.map +1 -0
- package/dist/development/src/migrations/2025-04-17-160000-auth-log.cjs +45 -0
- package/dist/development/src/migrations/2025-04-17-160000-auth-log.cjs.map +1 -0
- package/dist/development/src/migrations/2025-04-17-160000-auth-log.js +46 -0
- package/dist/development/src/migrations/2025-04-17-160000-auth-log.js.map +1 -0
- package/dist/development/src/migrations/runner.cjs +9 -4
- package/dist/development/src/migrations/runner.cjs.map +1 -1
- package/dist/development/src/migrations/runner.js +7 -2
- package/dist/development/src/migrations/runner.js.map +1 -1
- package/dist/development/src/migrations/snapshot.cjs +56 -1
- package/dist/development/src/migrations/snapshot.cjs.map +1 -1
- package/dist/development/src/migrations/snapshot.js +56 -1
- package/dist/development/src/migrations/snapshot.js.map +1 -1
- package/dist/development/src/migrations/tenantCredentials.cjs.map +1 -1
- package/dist/development/src/migrations/tenantCredentials.js.map +1 -1
- package/dist/development/src/model/authorization/AclSchemaAccessNodeFactory.cjs.map +1 -1
- package/dist/development/src/model/authorization/AclSchemaAccessNodeFactory.js.map +1 -1
- package/dist/development/src/model/authorization/DirectPermissionsAccessNode.cjs.map +1 -1
- package/dist/development/src/model/authorization/DirectPermissionsAccessNode.js.map +1 -1
- package/dist/development/src/model/authorization/Identity.cjs.map +1 -1
- package/dist/development/src/model/authorization/Identity.js.map +1 -1
- package/dist/development/src/model/authorization/IdentityFactory.cjs.map +1 -1
- package/dist/development/src/model/authorization/IdentityFactory.js.map +1 -1
- package/dist/development/src/model/authorization/IdentityScope.cjs.map +1 -1
- package/dist/development/src/model/authorization/IdentityScope.js.map +1 -1
- package/dist/development/src/model/authorization/MembershipMatcher.cjs +6 -0
- package/dist/development/src/model/authorization/MembershipMatcher.cjs.map +1 -1
- package/dist/development/src/model/authorization/MembershipMatcher.js +6 -0
- package/dist/development/src/model/authorization/MembershipMatcher.js.map +1 -1
- package/dist/development/src/model/authorization/PermissionActions.cjs.map +1 -1
- package/dist/development/src/model/authorization/PermissionActions.js.map +1 -1
- package/dist/development/src/model/authorization/PermissionContext.cjs.map +1 -1
- package/dist/development/src/model/authorization/PermissionContext.js.map +1 -1
- package/dist/development/src/model/authorization/PermissionContextFactory.cjs.map +1 -1
- package/dist/development/src/model/authorization/PermissionContextFactory.js.map +1 -1
- package/dist/development/src/model/authorization/PermissionsFactory.cjs +2 -0
- package/dist/development/src/model/authorization/PermissionsFactory.cjs.map +1 -1
- package/dist/development/src/model/authorization/PermissionsFactory.js +2 -0
- package/dist/development/src/model/authorization/PermissionsFactory.js.map +1 -1
- package/dist/development/src/model/authorization/ProjectScope.cjs.map +1 -1
- package/dist/development/src/model/authorization/ProjectScope.js.map +1 -1
- package/dist/development/src/model/authorization/ProjectScopeFactory.cjs.map +1 -1
- package/dist/development/src/model/authorization/ProjectScopeFactory.js.map +1 -1
- package/dist/development/src/model/authorization/Roles.cjs.map +1 -1
- package/dist/development/src/model/authorization/Roles.js.map +1 -1
- package/dist/development/src/model/commands/CommandBus.cjs +1 -3
- package/dist/development/src/model/commands/CommandBus.cjs.map +1 -1
- package/dist/development/src/model/commands/CommandBus.js +1 -3
- package/dist/development/src/model/commands/CommandBus.js.map +1 -1
- package/dist/development/src/model/commands/apiKey/ApiKeyHelper.cjs.map +1 -1
- package/dist/development/src/model/commands/apiKey/ApiKeyHelper.js.map +1 -1
- package/dist/development/src/model/commands/apiKey/CreateApiKeyCommand.cjs +7 -7
- package/dist/development/src/model/commands/apiKey/CreateApiKeyCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/apiKey/CreateApiKeyCommand.js +2 -2
- package/dist/development/src/model/commands/apiKey/CreateApiKeyCommand.js.map +1 -1
- package/dist/development/src/model/commands/apiKey/DisableApiKeyCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/apiKey/DisableApiKeyCommand.js.map +1 -1
- package/dist/development/src/model/commands/apiKey/DisableIdentityApiKeysCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/apiKey/DisableIdentityApiKeysCommand.js.map +1 -1
- package/dist/development/src/model/commands/apiKey/DisableOneOffApiKeyCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/apiKey/DisableOneOffApiKeyCommand.js.map +1 -1
- package/dist/development/src/model/commands/apiKey/ProlongApiKeyCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/apiKey/ProlongApiKeyCommand.js.map +1 -1
- package/dist/development/src/model/commands/authLog/CreateAuthLogEntryCommand.cjs +27 -0
- package/dist/development/src/model/commands/authLog/CreateAuthLogEntryCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/authLog/CreateAuthLogEntryCommand.js +27 -0
- package/dist/development/src/model/commands/authLog/CreateAuthLogEntryCommand.js.map +1 -0
- package/dist/development/src/model/commands/configuration/UpdateConfigurationCommand.cjs +20 -5
- package/dist/development/src/model/commands/configuration/UpdateConfigurationCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/configuration/UpdateConfigurationCommand.js +20 -5
- package/dist/development/src/model/commands/configuration/UpdateConfigurationCommand.js.map +1 -1
- package/dist/development/src/model/commands/identity/CreateIdentityCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/identity/CreateIdentityCommand.js.map +1 -1
- package/dist/development/src/model/commands/identity/PatchIdentityGlobalRoles.cjs +6 -2
- package/dist/development/src/model/commands/identity/PatchIdentityGlobalRoles.cjs.map +1 -1
- package/dist/development/src/model/commands/identity/PatchIdentityGlobalRoles.js +6 -2
- package/dist/development/src/model/commands/identity/PatchIdentityGlobalRoles.js.map +1 -1
- package/dist/development/src/model/commands/idp/CreateIdpCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/idp/CreateIdpCommand.js.map +1 -1
- package/dist/development/src/model/commands/idp/DisableIdpCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/idp/DisableIdpCommand.js.map +1 -1
- package/dist/development/src/model/commands/idp/EnableIdpCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/idp/EnableIdpCommand.js.map +1 -1
- package/dist/development/src/model/commands/idp/UpdateIdpCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/idp/UpdateIdpCommand.js.map +1 -1
- package/dist/development/src/model/commands/mailTemplate/AddMailTemplateCommand.cjs +16 -12
- package/dist/development/src/model/commands/mailTemplate/AddMailTemplateCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/mailTemplate/AddMailTemplateCommand.js +16 -12
- package/dist/development/src/model/commands/mailTemplate/AddMailTemplateCommand.js.map +1 -1
- package/dist/development/src/model/commands/mailTemplate/RemoveMailTemplateCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/mailTemplate/RemoveMailTemplateCommand.js.map +1 -1
- package/dist/development/src/model/commands/membership/AddProjectMemberCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/membership/AddProjectMemberCommand.js.map +1 -1
- package/dist/development/src/model/commands/membership/CreateOrUpdateProjectMembershipCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/membership/CreateOrUpdateProjectMembershipCommand.js.map +1 -1
- package/dist/development/src/model/commands/membership/RemoveProjectMemberCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/membership/RemoveProjectMemberCommand.js.map +1 -1
- package/dist/development/src/model/commands/membership/RemoveProjectMembershipsCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/membership/RemoveProjectMembershipsCommand.js.map +1 -1
- package/dist/development/src/model/commands/membership/UpdateProjectMemberCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/membership/UpdateProjectMemberCommand.js.map +1 -1
- package/dist/development/src/model/commands/membership/variables/PatchProjectMembershipVariableValuesCommand.cjs +4 -10
- package/dist/development/src/model/commands/membership/variables/PatchProjectMembershipVariableValuesCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/membership/variables/PatchProjectMembershipVariableValuesCommand.js +4 -10
- package/dist/development/src/model/commands/membership/variables/PatchProjectMembershipVariableValuesCommand.js.map +1 -1
- package/dist/development/src/model/commands/membership/variables/PatchProjectMembershipVariablesCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/membership/variables/PatchProjectMembershipVariablesCommand.js.map +1 -1
- package/dist/development/src/model/commands/membership/variables/SetProjectMembershipVariableValuesCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/membership/variables/SetProjectMembershipVariableValuesCommand.js.map +1 -1
- package/dist/development/src/model/commands/otp/ConfirmOtpCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/otp/ConfirmOtpCommand.js.map +1 -1
- package/dist/development/src/model/commands/otp/DisableOtpCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/otp/DisableOtpCommand.js.map +1 -1
- package/dist/development/src/model/commands/otp/PrepareOtpCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/otp/PrepareOtpCommand.js.map +1 -1
- package/dist/development/src/model/commands/person/ChangePasswordCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/person/ChangePasswordCommand.js.map +1 -1
- package/dist/development/src/model/commands/person/ChangeProfileCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/person/ChangeProfileCommand.js.map +1 -1
- package/dist/development/src/model/commands/person/CreatePersonCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/person/CreatePersonCommand.js.map +1 -1
- package/dist/development/src/model/commands/person/CreatePersonIdentityProviderIdentifierCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/person/CreatePersonIdentityProviderIdentifierCommand.js.map +1 -1
- package/dist/development/src/model/commands/person/DisablePersonCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/person/DisablePersonCommand.js.map +1 -1
- package/dist/development/src/model/commands/person/TogglePersonPasswordlessCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/person/TogglePersonPasswordlessCommand.js.map +1 -1
- package/dist/development/src/model/commands/personToken/ActivateOtpCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/personToken/ActivateOtpCommand.js.map +1 -1
- package/dist/development/src/model/commands/personToken/CreatePersonTokenCommand.cjs +12 -10
- package/dist/development/src/model/commands/personToken/CreatePersonTokenCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/personToken/CreatePersonTokenCommand.js +9 -7
- package/dist/development/src/model/commands/personToken/CreatePersonTokenCommand.js.map +1 -1
- package/dist/development/src/model/commands/personToken/IncreaseOtpAttemptCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/personToken/IncreaseOtpAttemptCommand.js.map +1 -1
- package/dist/development/src/model/commands/personToken/InvalidateTokenCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/personToken/InvalidateTokenCommand.js.map +1 -1
- package/dist/development/src/model/commands/personToken/ResetPasswordCommand.cjs +5 -5
- package/dist/development/src/model/commands/personToken/ResetPasswordCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/personToken/ResetPasswordCommand.js +1 -1
- package/dist/development/src/model/commands/personToken/ResetPasswordCommand.js.map +1 -1
- package/dist/development/src/model/commands/personToken/SavePersonTokenCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/personToken/SavePersonTokenCommand.js.map +1 -1
- package/dist/development/src/model/commands/project/CreateProjectCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/project/CreateProjectCommand.js.map +1 -1
- package/dist/development/src/model/commands/project/SetProjectSecretCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/project/SetProjectSecretCommand.js.map +1 -1
- package/dist/development/src/model/commands/project/UpdateProjectCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/project/UpdateProjectCommand.js.map +1 -1
- package/dist/development/src/model/dtos/Password.cjs.map +1 -1
- package/dist/development/src/model/dtos/Password.js.map +1 -1
- package/dist/development/src/model/mailing/UserMailer.cjs.map +1 -1
- package/dist/development/src/model/mailing/UserMailer.js.map +1 -1
- package/dist/development/src/model/mailing/templates/Layout.mustache.cjs.map +1 -1
- package/dist/development/src/model/mailing/templates/Layout.mustache.js.map +1 -1
- package/dist/development/src/model/mailing/type.cjs.map +1 -1
- package/dist/development/src/model/mailing/type.js.map +1 -1
- package/dist/development/src/model/queries/apiKey/ApiKeyQuery.cjs +5 -9
- package/dist/development/src/model/queries/apiKey/ApiKeyQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/apiKey/ApiKeyQuery.js +2 -6
- package/dist/development/src/model/queries/apiKey/ApiKeyQuery.js.map +1 -1
- package/dist/development/src/model/queries/authLog/NextLoginAttemptQuery.cjs +43 -0
- package/dist/development/src/model/queries/authLog/NextLoginAttemptQuery.cjs.map +1 -0
- package/dist/development/src/model/queries/authLog/NextLoginAttemptQuery.js +43 -0
- package/dist/development/src/model/queries/authLog/NextLoginAttemptQuery.js.map +1 -0
- package/dist/development/src/model/queries/configuration/ConfigurationQuery.cjs +18 -1
- package/dist/development/src/model/queries/configuration/ConfigurationQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/configuration/ConfigurationQuery.js +18 -1
- package/dist/development/src/model/queries/configuration/ConfigurationQuery.js.map +1 -1
- package/dist/development/src/model/queries/identity/IdentityQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/identity/IdentityQuery.js.map +1 -1
- package/dist/development/src/model/queries/idp/IdentityProviderBySlugQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/idp/IdentityProviderBySlugQuery.js.map +1 -1
- package/dist/development/src/model/queries/idp/IdentityProvidersQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/idp/IdentityProvidersQuery.js.map +1 -1
- package/dist/development/src/model/queries/idp/helpers.cjs.map +1 -1
- package/dist/development/src/model/queries/idp/helpers.js.map +1 -1
- package/dist/development/src/model/queries/mailTemplate/MailTemplateListQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/mailTemplate/MailTemplateListQuery.js.map +1 -1
- package/dist/development/src/model/queries/mailTemplate/MailTemplateQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/mailTemplate/MailTemplateQuery.js.map +1 -1
- package/dist/development/src/model/queries/mailTemplate/helpers.cjs.map +1 -1
- package/dist/development/src/model/queries/mailTemplate/helpers.js.map +1 -1
- package/dist/development/src/model/queries/membership/ProjectMembersQuery.cjs +5 -3
- package/dist/development/src/model/queries/membership/ProjectMembersQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/membership/ProjectMembersQuery.js +5 -3
- package/dist/development/src/model/queries/membership/ProjectMembersQuery.js.map +1 -1
- package/dist/development/src/model/queries/membership/ProjectMembershipByIdentityQuery.cjs +5 -15
- package/dist/development/src/model/queries/membership/ProjectMembershipByIdentityQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/membership/ProjectMembershipByIdentityQuery.js +5 -15
- package/dist/development/src/model/queries/membership/ProjectMembershipByIdentityQuery.js.map +1 -1
- package/dist/development/src/model/queries/membership/ProjectRolesByIdentityQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/membership/ProjectRolesByIdentityQuery.js.map +1 -1
- package/dist/development/src/model/queries/membership/ProjectSlugSpecification.cjs +1 -4
- package/dist/development/src/model/queries/membership/ProjectSlugSpecification.cjs.map +1 -1
- package/dist/development/src/model/queries/membership/ProjectSlugSpecification.js +1 -4
- package/dist/development/src/model/queries/membership/ProjectSlugSpecification.js.map +1 -1
- package/dist/development/src/model/queries/person/PersonByIdPQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/person/PersonByIdPQuery.js.map +1 -1
- package/dist/development/src/model/queries/person/PersonByIdentityBatchQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/person/PersonByIdentityBatchQuery.js.map +1 -1
- package/dist/development/src/model/queries/person/PersonQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/person/PersonQuery.js.map +1 -1
- package/dist/development/src/model/queries/person/PersonQueryBuilderFactory.cjs.map +1 -1
- package/dist/development/src/model/queries/person/PersonQueryBuilderFactory.js.map +1 -1
- package/dist/development/src/model/queries/personToken/PersonTokenQuery.cjs +3 -3
- package/dist/development/src/model/queries/personToken/PersonTokenQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/personToken/PersonTokenQuery.js +1 -1
- package/dist/development/src/model/queries/personToken/PersonTokenQuery.js.map +1 -1
- package/dist/development/src/model/queries/project/ProjectBySlugQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/project/ProjectBySlugQuery.js.map +1 -1
- package/dist/development/src/model/queries/project/ProjectSecretsQuery.cjs +6 -8
- package/dist/development/src/model/queries/project/ProjectSecretsQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/project/ProjectSecretsQuery.js +6 -8
- package/dist/development/src/model/queries/project/ProjectSecretsQuery.js.map +1 -1
- package/dist/development/src/model/queries/project/ProjectUpdateTimestampQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/project/ProjectUpdateTimestampQuery.js.map +1 -1
- package/dist/development/src/model/queries/project/ProjectsByIdentityQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/project/ProjectsByIdentityQuery.js.map +1 -1
- package/dist/development/src/model/queries/project/ProjectsQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/project/ProjectsQuery.js.map +1 -1
- package/dist/development/src/model/service/AuthLogService.cjs +36 -0
- package/dist/development/src/model/service/AuthLogService.cjs.map +1 -0
- package/dist/development/src/model/service/AuthLogService.js +36 -0
- package/dist/development/src/model/service/AuthLogService.js.map +1 -0
- package/dist/development/src/model/service/ConfigurationManager.cjs +0 -12
- package/dist/development/src/model/service/ConfigurationManager.cjs.map +1 -1
- package/dist/development/src/model/service/ConfigurationManager.js +0 -12
- package/dist/development/src/model/service/ConfigurationManager.js.map +1 -1
- package/dist/development/src/model/service/EmailValidator.cjs.map +1 -1
- package/dist/development/src/model/service/EmailValidator.js.map +1 -1
- package/dist/development/src/model/service/IDPSignInManager.cjs +46 -12
- package/dist/development/src/model/service/IDPSignInManager.cjs.map +1 -1
- package/dist/development/src/model/service/IDPSignInManager.js +46 -12
- package/dist/development/src/model/service/IDPSignInManager.js.map +1 -1
- package/dist/development/src/model/service/InviteManager.cjs +14 -8
- package/dist/development/src/model/service/InviteManager.cjs.map +1 -1
- package/dist/development/src/model/service/InviteManager.js +14 -8
- package/dist/development/src/model/service/InviteManager.js.map +1 -1
- package/dist/development/src/model/service/MailTemplateManager.cjs.map +1 -1
- package/dist/development/src/model/service/MailTemplateManager.js.map +1 -1
- package/dist/development/src/model/service/MembershipValidator.cjs +1 -1
- package/dist/development/src/model/service/MembershipValidator.cjs.map +1 -1
- package/dist/development/src/model/service/MembershipValidator.js +1 -1
- package/dist/development/src/model/service/MembershipValidator.js.map +1 -1
- package/dist/development/src/model/service/OtpAuthenticator.cjs.map +1 -1
- package/dist/development/src/model/service/OtpAuthenticator.js.map +1 -1
- package/dist/development/src/model/service/OtpManager.cjs +0 -3
- package/dist/development/src/model/service/OtpManager.cjs.map +1 -1
- package/dist/development/src/model/service/OtpManager.js +0 -3
- package/dist/development/src/model/service/OtpManager.js.map +1 -1
- package/dist/development/src/model/service/PasswordChangeManager.cjs +21 -12
- package/dist/development/src/model/service/PasswordChangeManager.cjs.map +1 -1
- package/dist/development/src/model/service/PasswordChangeManager.js +20 -11
- package/dist/development/src/model/service/PasswordChangeManager.js.map +1 -1
- package/dist/development/src/model/service/PasswordResetManager.cjs +40 -8
- package/dist/development/src/model/service/PasswordResetManager.cjs.map +1 -1
- package/dist/development/src/model/service/PasswordResetManager.js +40 -8
- package/dist/development/src/model/service/PasswordResetManager.js.map +1 -1
- package/dist/development/src/model/service/PasswordStrengthValidator.cjs +69 -0
- package/dist/development/src/model/service/PasswordStrengthValidator.cjs.map +1 -0
- package/dist/development/src/model/service/PasswordStrengthValidator.js +69 -0
- package/dist/development/src/model/service/PasswordStrengthValidator.js.map +1 -0
- package/dist/development/src/model/service/PasswordlessSignInManager.cjs +94 -25
- package/dist/development/src/model/service/PasswordlessSignInManager.cjs.map +1 -1
- package/dist/development/src/model/service/PasswordlessSignInManager.js +86 -17
- package/dist/development/src/model/service/PasswordlessSignInManager.js.map +1 -1
- package/dist/development/src/model/service/PersonAccessManager.cjs +7 -29
- package/dist/development/src/model/service/PersonAccessManager.cjs.map +1 -1
- package/dist/development/src/model/service/PersonAccessManager.js +7 -29
- package/dist/development/src/model/service/PersonAccessManager.js.map +1 -1
- package/dist/development/src/model/service/PersonManager.cjs.map +1 -1
- package/dist/development/src/model/service/PersonManager.js.map +1 -1
- package/dist/development/src/model/service/ProjectManager.cjs.map +1 -1
- package/dist/development/src/model/service/ProjectManager.js.map +1 -1
- package/dist/development/src/model/service/ProjectMemberManager.cjs.map +1 -1
- package/dist/development/src/model/service/ProjectMemberManager.js.map +1 -1
- package/dist/development/src/model/service/RolesManager.cjs.map +1 -1
- package/dist/development/src/model/service/RolesManager.js.map +1 -1
- package/dist/development/src/model/service/SecretsManager.cjs.map +1 -1
- package/dist/development/src/model/service/SecretsManager.js.map +1 -1
- package/dist/development/src/model/service/SignInManager.cjs +56 -31
- package/dist/development/src/model/service/SignInManager.cjs.map +1 -1
- package/dist/development/src/model/service/SignInManager.js +57 -32
- package/dist/development/src/model/service/SignInManager.js.map +1 -1
- package/dist/development/src/model/service/SignUpManager.cjs +13 -8
- package/dist/development/src/model/service/SignUpManager.cjs.map +1 -1
- package/dist/development/src/model/service/SignUpManager.js +11 -6
- package/dist/development/src/model/service/SignUpManager.js.map +1 -1
- package/dist/development/src/model/service/apiKey/ApiKeyManager.cjs +6 -1
- package/dist/development/src/model/service/apiKey/ApiKeyManager.cjs.map +1 -1
- package/dist/development/src/model/service/apiKey/ApiKeyManager.js +6 -1
- package/dist/development/src/model/service/apiKey/ApiKeyManager.js.map +1 -1
- package/dist/development/src/model/service/apiKey/ApiKeyService.cjs.map +1 -1
- package/dist/development/src/model/service/apiKey/ApiKeyService.js.map +1 -1
- package/dist/development/src/model/service/helpers/getPreferredProject.cjs.map +1 -1
- package/dist/development/src/model/service/helpers/getPreferredProject.js.map +1 -1
- package/dist/development/src/model/service/idp/IDPHandlerRegistry.cjs.map +1 -1
- package/dist/development/src/model/service/idp/IDPHandlerRegistry.js.map +1 -1
- package/dist/development/src/model/service/idp/IDPManager.cjs +6 -4
- package/dist/development/src/model/service/idp/IDPManager.cjs.map +1 -1
- package/dist/development/src/model/service/idp/IDPManager.js +6 -4
- package/dist/development/src/model/service/idp/IDPManager.js.map +1 -1
- package/dist/development/src/model/service/idp/IDPResponseError.cjs +0 -3
- package/dist/development/src/model/service/idp/IDPResponseError.cjs.map +1 -1
- package/dist/development/src/model/service/idp/IDPResponseError.js +0 -3
- package/dist/development/src/model/service/idp/IDPResponseError.js.map +1 -1
- package/dist/development/src/model/service/idp/IDPValidationError.cjs +0 -3
- package/dist/development/src/model/service/idp/IDPValidationError.cjs.map +1 -1
- package/dist/development/src/model/service/idp/IDPValidationError.js +0 -3
- package/dist/development/src/model/service/idp/IDPValidationError.js.map +1 -1
- package/dist/development/src/model/service/idp/IdentityProviderNotFoundError.cjs +0 -3
- package/dist/development/src/model/service/idp/IdentityProviderNotFoundError.cjs.map +1 -1
- package/dist/development/src/model/service/idp/IdentityProviderNotFoundError.js +0 -3
- package/dist/development/src/model/service/idp/IdentityProviderNotFoundError.js.map +1 -1
- package/dist/development/src/model/service/idp/InvalidIDPConfigurationError.cjs +0 -3
- package/dist/development/src/model/service/idp/InvalidIDPConfigurationError.cjs.map +1 -1
- package/dist/development/src/model/service/idp/InvalidIDPConfigurationError.js +0 -3
- package/dist/development/src/model/service/idp/InvalidIDPConfigurationError.js.map +1 -1
- package/dist/development/src/model/service/idp/providers/AppleProvider.cjs.map +1 -1
- package/dist/development/src/model/service/idp/providers/AppleProvider.js.map +1 -1
- package/dist/development/src/model/service/idp/providers/FacebookProvider.cjs.map +1 -1
- package/dist/development/src/model/service/idp/providers/FacebookProvider.js.map +1 -1
- package/dist/development/src/model/service/idp/providers/OIDCHelpers.cjs.map +1 -1
- package/dist/development/src/model/service/idp/providers/OIDCHelpers.js.map +1 -1
- package/dist/development/src/model/service/idp/providers/OIDCProvider.cjs.map +1 -1
- package/dist/development/src/model/service/idp/providers/OIDCProvider.js.map +1 -1
- package/dist/development/src/model/service/idp/providers/OIDCTypes.cjs.map +1 -1
- package/dist/development/src/model/service/idp/providers/OIDCTypes.js.map +1 -1
- package/dist/development/src/model/service/idp/providers/helpers.cjs.map +1 -1
- package/dist/development/src/model/service/idp/providers/helpers.js.map +1 -1
- package/dist/development/src/model/service/membershipUtils.cjs.map +1 -1
- package/dist/development/src/model/service/membershipUtils.js.map +1 -1
- package/dist/development/src/model/type/ApiKey.cjs.map +1 -1
- package/dist/development/src/model/type/ApiKey.js.map +1 -1
- package/dist/development/src/model/utils/DatabaseContext.cjs.map +1 -1
- package/dist/development/src/model/utils/DatabaseContext.js.map +1 -1
- package/dist/development/src/model/utils/Response.cjs +2 -1
- package/dist/development/src/model/utils/Response.cjs.map +1 -1
- package/dist/development/src/model/utils/Response.js +2 -1
- package/dist/development/src/model/utils/Response.js.map +1 -1
- package/dist/development/src/model/utils/blacklist.cjs +10006 -0
- package/dist/development/src/model/utils/blacklist.cjs.map +1 -0
- package/dist/development/src/model/utils/blacklist.js +10006 -0
- package/dist/development/src/model/utils/blacklist.js.map +1 -0
- package/dist/development/src/model/utils/email.cjs.map +1 -1
- package/dist/development/src/model/utils/email.js.map +1 -1
- package/dist/{production/src/model/utils/typeUtils.cjs → development/src/model/utils/hex.cjs} +1 -1
- package/dist/development/src/model/utils/hex.cjs.map +1 -0
- package/dist/development/src/model/utils/{typeUtils.js → hex.js} +1 -1
- package/dist/development/src/model/utils/hex.js.map +1 -0
- package/dist/development/src/model/utils/interval.cjs +8 -0
- package/dist/development/src/model/utils/interval.cjs.map +1 -0
- package/dist/development/src/model/utils/interval.js +8 -0
- package/dist/development/src/model/utils/interval.js.map +1 -0
- package/dist/development/src/model/utils/time.cjs.map +1 -1
- package/dist/development/src/model/utils/time.js.map +1 -1
- package/dist/development/src/model/utils/{tokenUtils.cjs → token.cjs} +3 -3
- package/dist/development/src/model/utils/token.cjs.map +1 -0
- package/dist/development/src/model/utils/{tokenUtils.js → token.js} +2 -2
- package/dist/development/src/model/utils/token.js.map +1 -0
- package/dist/development/src/resolvers/ResolverFactory.cjs +22 -7
- package/dist/development/src/resolvers/ResolverFactory.cjs.map +1 -1
- package/dist/development/src/resolvers/ResolverFactory.js +23 -8
- package/dist/development/src/resolvers/ResolverFactory.js.map +1 -1
- package/dist/development/src/resolvers/TenantResolverContextFactory.cjs +10 -2
- package/dist/development/src/resolvers/TenantResolverContextFactory.cjs.map +1 -1
- package/dist/development/src/resolvers/TenantResolverContextFactory.js +10 -2
- package/dist/development/src/resolvers/TenantResolverContextFactory.js.map +1 -1
- package/dist/development/src/resolvers/errorUtils.cjs +15 -4
- package/dist/development/src/resolvers/errorUtils.cjs.map +1 -1
- package/dist/development/src/resolvers/errorUtils.js +15 -4
- package/dist/development/src/resolvers/errorUtils.js.map +1 -1
- package/dist/development/src/resolvers/membershipUtils.cjs.map +1 -1
- package/dist/development/src/resolvers/membershipUtils.js.map +1 -1
- package/dist/development/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.cjs +4 -3
- package/dist/development/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.js +2 -1
- package/dist/development/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.cjs +1 -0
- package/dist/development/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.js +1 -0
- package/dist/development/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/configuration/ConfigurationMutationResolver.cjs +1 -0
- package/dist/development/src/resolvers/mutation/configuration/ConfigurationMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/configuration/ConfigurationMutationResolver.js +1 -0
- package/dist/development/src/resolvers/mutation/configuration/ConfigurationMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/identity/GlobalRolesMutationResolver.cjs +1 -0
- package/dist/development/src/resolvers/mutation/identity/GlobalRolesMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/identity/GlobalRolesMutationResolver.js +1 -0
- package/dist/development/src/resolvers/mutation/identity/GlobalRolesMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/idp/AddIDPMutationResolver.cjs +1 -0
- package/dist/development/src/resolvers/mutation/idp/AddIDPMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/idp/AddIDPMutationResolver.js +1 -0
- package/dist/development/src/resolvers/mutation/idp/AddIDPMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/idp/DisableIDPMutationResolver.cjs +1 -0
- package/dist/development/src/resolvers/mutation/idp/DisableIDPMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/idp/DisableIDPMutationResolver.js +1 -0
- package/dist/development/src/resolvers/mutation/idp/DisableIDPMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/idp/EnableIDPMutationResolver.cjs +1 -0
- package/dist/development/src/resolvers/mutation/idp/EnableIDPMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/idp/EnableIDPMutationResolver.js +1 -0
- package/dist/development/src/resolvers/mutation/idp/EnableIDPMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/idp/UpdateIDPMutationResolver.cjs +1 -0
- package/dist/development/src/resolvers/mutation/idp/UpdateIDPMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/idp/UpdateIDPMutationResolver.js +1 -0
- package/dist/development/src/resolvers/mutation/idp/UpdateIDPMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.cjs +1 -0
- package/dist/development/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.js +1 -0
- package/dist/development/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/person/ChangePasswordMutationResolver.cjs +17 -6
- package/dist/development/src/resolvers/mutation/person/ChangePasswordMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/person/ChangePasswordMutationResolver.js +17 -6
- package/dist/development/src/resolvers/mutation/person/ChangePasswordMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/person/ChangeProfileMutationResolver.cjs +14 -0
- package/dist/development/src/resolvers/mutation/person/ChangeProfileMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/person/ChangeProfileMutationResolver.js +14 -0
- package/dist/development/src/resolvers/mutation/person/ChangeProfileMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/person/DisablePersonMutationResolver.cjs +7 -1
- package/dist/development/src/resolvers/mutation/person/DisablePersonMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/person/DisablePersonMutationResolver.js +7 -1
- package/dist/development/src/resolvers/mutation/person/DisablePersonMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/person/IDPMutationResolver.cjs +12 -3
- package/dist/development/src/resolvers/mutation/person/IDPMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/person/IDPMutationResolver.js +12 -3
- package/dist/development/src/resolvers/mutation/person/IDPMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/person/InviteMutationResolver.cjs +3 -2
- package/dist/development/src/resolvers/mutation/person/InviteMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/person/InviteMutationResolver.js +2 -1
- package/dist/development/src/resolvers/mutation/person/InviteMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/person/OtpMutationResolver.cjs +26 -1
- package/dist/development/src/resolvers/mutation/person/OtpMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/person/OtpMutationResolver.js +26 -1
- package/dist/development/src/resolvers/mutation/person/OtpMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/person/PasswordlessMutationResolver.cjs +20 -0
- package/dist/development/src/resolvers/mutation/person/PasswordlessMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/person/PasswordlessMutationResolver.js +20 -0
- package/dist/development/src/resolvers/mutation/person/PasswordlessMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/person/ResetPasswordMutationResolver.cjs +25 -2
- package/dist/development/src/resolvers/mutation/person/ResetPasswordMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/person/ResetPasswordMutationResolver.js +25 -2
- package/dist/development/src/resolvers/mutation/person/ResetPasswordMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/person/SignInMutationResolver.cjs +24 -0
- package/dist/development/src/resolvers/mutation/person/SignInMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/person/SignInMutationResolver.js +24 -0
- package/dist/development/src/resolvers/mutation/person/SignInMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/person/SignOutMutationResolver.cjs +1 -0
- package/dist/development/src/resolvers/mutation/person/SignOutMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/person/SignOutMutationResolver.js +1 -0
- package/dist/development/src/resolvers/mutation/person/SignOutMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/person/SignUpMutationResolver.cjs +2 -1
- package/dist/development/src/resolvers/mutation/person/SignUpMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/person/SignUpMutationResolver.js +2 -1
- package/dist/development/src/resolvers/mutation/person/SignUpMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.cjs +3 -1
- package/dist/development/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.js +3 -1
- package/dist/development/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/project/CreateProjectMutationResolver.cjs +3 -2
- package/dist/development/src/resolvers/mutation/project/CreateProjectMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/project/CreateProjectMutationResolver.js +2 -1
- package/dist/development/src/resolvers/mutation/project/CreateProjectMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/project/SetProjectSecretMutationResolver.cjs +1 -0
- package/dist/development/src/resolvers/mutation/project/SetProjectSecretMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/project/SetProjectSecretMutationResolver.js +1 -0
- package/dist/development/src/resolvers/mutation/project/SetProjectSecretMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/project/UpdateProjectMutationResolver.cjs +1 -0
- package/dist/development/src/resolvers/mutation/project/UpdateProjectMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/project/UpdateProjectMutationResolver.js +1 -0
- package/dist/development/src/resolvers/mutation/project/UpdateProjectMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.cjs +1 -0
- package/dist/development/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.js +1 -0
- package/dist/development/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.cjs +1 -0
- package/dist/development/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.js +1 -0
- package/dist/development/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.cjs +1 -0
- package/dist/development/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.js +1 -0
- package/dist/development/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/query/ConfigurationQueryResolver.cjs +3 -1
- package/dist/development/src/resolvers/query/ConfigurationQueryResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/query/ConfigurationQueryResolver.js +3 -1
- package/dist/development/src/resolvers/query/ConfigurationQueryResolver.js.map +1 -1
- package/dist/development/src/resolvers/query/IDPQueryResolver.cjs +1 -0
- package/dist/development/src/resolvers/query/IDPQueryResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/query/IDPQueryResolver.js +1 -0
- package/dist/development/src/resolvers/query/IDPQueryResolver.js.map +1 -1
- package/dist/development/src/resolvers/query/MailTemplateQueryResolver.cjs +1 -0
- package/dist/development/src/resolvers/query/MailTemplateQueryResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/query/MailTemplateQueryResolver.js +1 -0
- package/dist/development/src/resolvers/query/MailTemplateQueryResolver.js.map +1 -1
- package/dist/development/src/resolvers/query/MeQueryResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/query/MeQueryResolver.js.map +1 -1
- package/dist/development/src/resolvers/query/PersonQueryResolver.cjs +1 -0
- package/dist/development/src/resolvers/query/PersonQueryResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/query/PersonQueryResolver.js +1 -0
- package/dist/development/src/resolvers/query/PersonQueryResolver.js.map +1 -1
- package/dist/development/src/resolvers/query/ProjectMembersQueryResolver.cjs +1 -0
- package/dist/development/src/resolvers/query/ProjectMembersQueryResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/query/ProjectMembersQueryResolver.js +1 -0
- package/dist/development/src/resolvers/query/ProjectMembersQueryResolver.js.map +1 -1
- package/dist/development/src/resolvers/query/ProjectQueryResolver.cjs +1 -0
- package/dist/development/src/resolvers/query/ProjectQueryResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/query/ProjectQueryResolver.js +1 -0
- package/dist/development/src/resolvers/query/ProjectQueryResolver.js.map +1 -1
- package/dist/development/src/resolvers/responseHelpers/PersonResponseFactory.cjs.map +1 -1
- package/dist/development/src/resolvers/responseHelpers/PersonResponseFactory.js.map +1 -1
- package/dist/development/src/resolvers/responseHelpers/SignInResponseFactory.cjs +1 -0
- package/dist/development/src/resolvers/responseHelpers/SignInResponseFactory.cjs.map +1 -1
- package/dist/development/src/resolvers/responseHelpers/SignInResponseFactory.js +1 -0
- package/dist/development/src/resolvers/responseHelpers/SignInResponseFactory.js.map +1 -1
- package/dist/development/src/resolvers/types/IdentityTypeResolver.cjs +1 -0
- package/dist/development/src/resolvers/types/IdentityTypeResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/types/IdentityTypeResolver.js +1 -0
- package/dist/development/src/resolvers/types/IdentityTypeResolver.js.map +1 -1
- package/dist/development/src/resolvers/types/ProjectTypeResolver.cjs +7 -1
- package/dist/development/src/resolvers/types/ProjectTypeResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/types/ProjectTypeResolver.js +7 -1
- package/dist/development/src/resolvers/types/ProjectTypeResolver.js.map +1 -1
- package/dist/development/src/schema/tenant.graphql.cjs +64 -2
- package/dist/development/src/schema/tenant.graphql.cjs.map +1 -1
- package/dist/development/src/schema/tenant.graphql.js +64 -2
- package/dist/development/src/schema/tenant.graphql.js.map +1 -1
- package/dist/development/src/utils/Mailer.cjs.map +1 -1
- package/dist/development/src/utils/Mailer.js.map +1 -1
- package/dist/development/src/utils/TemplateRenderer.cjs.map +1 -1
- package/dist/development/src/utils/TemplateRenderer.js.map +1 -1
- package/dist/development/src/utils/array.cjs.map +1 -1
- package/dist/development/src/utils/array.js.map +1 -1
- package/dist/development/src/utils/batchQuery.cjs.map +1 -1
- package/dist/development/src/utils/batchQuery.js.map +1 -1
- package/dist/development/src/utils/tick.cjs.map +1 -1
- package/dist/development/src/utils/tick.js.map +1 -1
- package/dist/production/index.cjs +5 -6
- package/dist/production/index.cjs.map +1 -1
- package/dist/production/index.js +2 -3
- package/dist/production/src/TenantContainer.cjs +73 -2
- package/dist/production/src/TenantContainer.cjs.map +1 -1
- package/dist/production/src/TenantContainer.js +73 -2
- package/dist/production/src/TenantContainer.js.map +1 -1
- package/dist/production/src/bridges/system/IdentityFetcher.cjs +1 -0
- package/dist/production/src/bridges/system/IdentityFetcher.cjs.map +1 -1
- package/dist/production/src/bridges/system/IdentityFetcher.js +1 -0
- package/dist/production/src/bridges/system/IdentityFetcher.js.map +1 -1
- package/dist/production/src/exceptions.cjs.map +1 -1
- package/dist/production/src/exceptions.js.map +1 -1
- package/dist/production/src/migrations/2018-08-02-174310-init.cjs.map +1 -1
- package/dist/production/src/migrations/2018-08-02-174310-init.js.map +1 -1
- package/dist/production/src/migrations/2018-09-03-140621-identity-project.cjs.map +1 -1
- package/dist/production/src/migrations/2018-09-03-140621-identity-project.js.map +1 -1
- package/dist/production/src/migrations/2018-10-26-165450-setup-api-key.cjs.map +1 -1
- package/dist/production/src/migrations/2018-10-26-165450-setup-api-key.js.map +1 -1
- package/dist/production/src/migrations/2018-10-26-175155-variables.cjs.map +1 -1
- package/dist/production/src/migrations/2018-10-26-175155-variables.js.map +1 -1
- package/dist/production/src/migrations/2019-02-18-110949-project-slug.cjs.map +1 -1
- package/dist/production/src/migrations/2019-02-18-110949-project-slug.js.map +1 -1
- package/dist/production/src/migrations/2019-02-18-160155-session-expiration.cjs.map +1 -1
- package/dist/production/src/migrations/2019-02-18-160155-session-expiration.js.map +1 -1
- package/dist/production/src/migrations/2019-05-03-163729-api-key-disabled-at.cjs.map +1 -1
- package/dist/production/src/migrations/2019-05-03-163729-api-key-disabled-at.js.map +1 -1
- package/dist/production/src/migrations/2019-08-14-153300-project-slug-unique.cjs.map +1 -1
- package/dist/production/src/migrations/2019-08-14-153300-project-slug-unique.js.map +1 -1
- package/dist/production/src/migrations/2019-09-06-111000-membership.cjs.map +1 -1
- package/dist/production/src/migrations/2019-09-06-111000-membership.js.map +1 -1
- package/dist/production/src/migrations/2019-09-06-111001-drop-old-member.cjs.map +1 -1
- package/dist/production/src/migrations/2019-09-06-111001-drop-old-member.js.map +1 -1
- package/dist/production/src/migrations/2020-01-29-idenity-note.cjs.map +1 -1
- package/dist/production/src/migrations/2020-01-29-idenity-note.js.map +1 -1
- package/dist/production/src/migrations/2020-04-17-fix-person-index.cjs.map +1 -1
- package/dist/production/src/migrations/2020-04-17-fix-person-index.js.map +1 -1
- package/dist/production/src/migrations/2020-05-01-170000-api-key-index.cjs.map +1 -1
- package/dist/production/src/migrations/2020-05-01-170000-api-key-index.js.map +1 -1
- package/dist/production/src/migrations/2020-06-08-134000-tenant-credentials.cjs.map +1 -1
- package/dist/production/src/migrations/2020-06-08-134000-tenant-credentials.js.map +1 -1
- package/dist/production/src/migrations/2020-08-07-110000-person-otp.cjs.map +1 -1
- package/dist/production/src/migrations/2020-08-07-110000-person-otp.js.map +1 -1
- package/dist/production/src/migrations/2020-08-17-162200-mail-templates.cjs.map +1 -1
- package/dist/production/src/migrations/2020-08-17-162200-mail-templates.js.map +1 -1
- package/dist/production/src/migrations/2020-08-21-143400-person-password-reset.cjs.map +1 -1
- package/dist/production/src/migrations/2020-08-21-143400-person-password-reset.js.map +1 -1
- package/dist/production/src/migrations/2020-09-07-094200-identity-provider.cjs.map +1 -1
- package/dist/production/src/migrations/2020-09-07-094200-identity-provider.js.map +1 -1
- package/dist/production/src/migrations/2021-03-28-134000-timestamp.cjs.map +1 -1
- package/dist/production/src/migrations/2021-03-28-134000-timestamp.js.map +1 -1
- package/dist/production/src/migrations/2021-07-26-105000-project-config.cjs.map +1 -1
- package/dist/production/src/migrations/2021-07-26-105000-project-config.js.map +1 -1
- package/dist/production/src/migrations/2021-07-26-132000-project-secrets.cjs.map +1 -1
- package/dist/production/src/migrations/2021-07-26-132000-project-secrets.js.map +1 -1
- package/dist/production/src/migrations/2021-07-27-174000-project-alias-index.cjs.map +1 -1
- package/dist/production/src/migrations/2021-07-27-174000-project-alias-index.js.map +1 -1
- package/dist/production/src/migrations/2021-11-24-130000-person-password-null.cjs.map +1 -1
- package/dist/production/src/migrations/2021-11-24-130000-person-password-null.js.map +1 -1
- package/dist/production/src/migrations/2021-11-24-161500-mail-template-project-null.cjs.map +1 -1
- package/dist/production/src/migrations/2021-11-24-161500-mail-template-project-null.js.map +1 -1
- package/dist/production/src/migrations/2022-01-04-144000-person-unique-identity.cjs.map +1 -1
- package/dist/production/src/migrations/2022-01-04-144000-person-unique-identity.js.map +1 -1
- package/dist/production/src/migrations/2022-02-09-111800-fix-crypted.cjs.map +1 -1
- package/dist/production/src/migrations/2022-02-09-111800-fix-crypted.js.map +1 -1
- package/dist/production/src/migrations/2022-02-11-153000-idp-auto-sign-up.cjs.map +1 -1
- package/dist/production/src/migrations/2022-02-11-153000-idp-auto-sign-up.js.map +1 -1
- package/dist/production/src/migrations/2022-06-29-105000-person-idp.cjs.map +1 -1
- package/dist/production/src/migrations/2022-06-29-105000-person-idp.js.map +1 -1
- package/dist/production/src/migrations/2022-07-07-135000-person-email-opt-uniq.cjs.map +1 -1
- package/dist/production/src/migrations/2022-07-07-135000-person-email-opt-uniq.js.map +1 -1
- package/dist/production/src/migrations/2022-07-07-141000-person-display-name.cjs.map +1 -1
- package/dist/production/src/migrations/2022-07-07-141000-person-display-name.js.map +1 -1
- package/dist/production/src/migrations/2022-07-14-145000-person-login-options.cjs.map +1 -1
- package/dist/production/src/migrations/2022-07-14-145000-person-login-options.js.map +1 -1
- package/dist/production/src/migrations/2022-11-08-project-update-notification.cjs.map +1 -1
- package/dist/production/src/migrations/2022-11-08-project-update-notification.js.map +1 -1
- package/dist/production/src/migrations/2023-01-20-135500-person-email-normalize.cjs.map +1 -1
- package/dist/production/src/migrations/2023-01-20-135500-person-email-normalize.js.map +1 -1
- package/dist/production/src/migrations/2023-06-03-104000-person-disabled.cjs.map +1 -1
- package/dist/production/src/migrations/2023-06-03-104000-person-disabled.js.map +1 -1
- package/dist/production/src/migrations/2023-09-01-165000-idp-return-config.cjs.map +1 -1
- package/dist/production/src/migrations/2023-09-01-165000-idp-return-config.js.map +1 -1
- package/dist/production/src/migrations/2024-06-20-140000-mail-reply.cjs.map +1 -1
- package/dist/production/src/migrations/2024-06-20-140000-mail-reply.js.map +1 -1
- package/dist/production/src/migrations/2024-08-26-120000-passwordless.cjs.map +1 -1
- package/dist/production/src/migrations/2024-08-26-120000-passwordless.js.map +1 -1
- package/dist/production/src/migrations/2025-04-16-180000-config-up.cjs +39 -0
- package/dist/production/src/migrations/2025-04-16-180000-config-up.cjs.map +1 -0
- package/dist/production/src/migrations/2025-04-16-180000-config-up.js +40 -0
- package/dist/production/src/migrations/2025-04-16-180000-config-up.js.map +1 -0
- package/dist/production/src/migrations/2025-04-17-160000-auth-log.cjs +45 -0
- package/dist/production/src/migrations/2025-04-17-160000-auth-log.cjs.map +1 -0
- package/dist/production/src/migrations/2025-04-17-160000-auth-log.js +46 -0
- package/dist/production/src/migrations/2025-04-17-160000-auth-log.js.map +1 -0
- package/dist/production/src/migrations/runner.cjs +9 -4
- package/dist/production/src/migrations/runner.cjs.map +1 -1
- package/dist/production/src/migrations/runner.js +7 -2
- package/dist/production/src/migrations/runner.js.map +1 -1
- package/dist/production/src/migrations/snapshot.cjs +56 -1
- package/dist/production/src/migrations/snapshot.cjs.map +1 -1
- package/dist/production/src/migrations/snapshot.js +56 -1
- package/dist/production/src/migrations/snapshot.js.map +1 -1
- package/dist/production/src/migrations/tenantCredentials.cjs.map +1 -1
- package/dist/production/src/migrations/tenantCredentials.js.map +1 -1
- package/dist/production/src/model/authorization/AclSchemaAccessNodeFactory.cjs.map +1 -1
- package/dist/production/src/model/authorization/AclSchemaAccessNodeFactory.js.map +1 -1
- package/dist/production/src/model/authorization/DirectPermissionsAccessNode.cjs.map +1 -1
- package/dist/production/src/model/authorization/DirectPermissionsAccessNode.js.map +1 -1
- package/dist/production/src/model/authorization/Identity.cjs.map +1 -1
- package/dist/production/src/model/authorization/Identity.js.map +1 -1
- package/dist/production/src/model/authorization/IdentityFactory.cjs.map +1 -1
- package/dist/production/src/model/authorization/IdentityFactory.js.map +1 -1
- package/dist/production/src/model/authorization/IdentityScope.cjs.map +1 -1
- package/dist/production/src/model/authorization/IdentityScope.js.map +1 -1
- package/dist/production/src/model/authorization/MembershipMatcher.cjs +6 -0
- package/dist/production/src/model/authorization/MembershipMatcher.cjs.map +1 -1
- package/dist/production/src/model/authorization/MembershipMatcher.js +6 -0
- package/dist/production/src/model/authorization/MembershipMatcher.js.map +1 -1
- package/dist/production/src/model/authorization/PermissionActions.cjs.map +1 -1
- package/dist/production/src/model/authorization/PermissionActions.js.map +1 -1
- package/dist/production/src/model/authorization/PermissionContext.cjs.map +1 -1
- package/dist/production/src/model/authorization/PermissionContext.js.map +1 -1
- package/dist/production/src/model/authorization/PermissionContextFactory.cjs.map +1 -1
- package/dist/production/src/model/authorization/PermissionContextFactory.js.map +1 -1
- package/dist/production/src/model/authorization/PermissionsFactory.cjs +2 -0
- package/dist/production/src/model/authorization/PermissionsFactory.cjs.map +1 -1
- package/dist/production/src/model/authorization/PermissionsFactory.js +2 -0
- package/dist/production/src/model/authorization/PermissionsFactory.js.map +1 -1
- package/dist/production/src/model/authorization/ProjectScope.cjs.map +1 -1
- package/dist/production/src/model/authorization/ProjectScope.js.map +1 -1
- package/dist/production/src/model/authorization/ProjectScopeFactory.cjs.map +1 -1
- package/dist/production/src/model/authorization/ProjectScopeFactory.js.map +1 -1
- package/dist/production/src/model/authorization/Roles.cjs.map +1 -1
- package/dist/production/src/model/authorization/Roles.js.map +1 -1
- package/dist/production/src/model/commands/CommandBus.cjs +1 -3
- package/dist/production/src/model/commands/CommandBus.cjs.map +1 -1
- package/dist/production/src/model/commands/CommandBus.js +1 -3
- package/dist/production/src/model/commands/CommandBus.js.map +1 -1
- package/dist/production/src/model/commands/apiKey/ApiKeyHelper.cjs.map +1 -1
- package/dist/production/src/model/commands/apiKey/ApiKeyHelper.js.map +1 -1
- package/dist/production/src/model/commands/apiKey/CreateApiKeyCommand.cjs +7 -7
- package/dist/production/src/model/commands/apiKey/CreateApiKeyCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/apiKey/CreateApiKeyCommand.js +2 -2
- package/dist/production/src/model/commands/apiKey/CreateApiKeyCommand.js.map +1 -1
- package/dist/production/src/model/commands/apiKey/DisableApiKeyCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/apiKey/DisableApiKeyCommand.js.map +1 -1
- package/dist/production/src/model/commands/apiKey/DisableIdentityApiKeysCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/apiKey/DisableIdentityApiKeysCommand.js.map +1 -1
- package/dist/production/src/model/commands/apiKey/DisableOneOffApiKeyCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/apiKey/DisableOneOffApiKeyCommand.js.map +1 -1
- package/dist/production/src/model/commands/apiKey/ProlongApiKeyCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/apiKey/ProlongApiKeyCommand.js.map +1 -1
- package/dist/production/src/model/commands/authLog/CreateAuthLogEntryCommand.cjs +27 -0
- package/dist/production/src/model/commands/authLog/CreateAuthLogEntryCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/authLog/CreateAuthLogEntryCommand.js +27 -0
- package/dist/production/src/model/commands/authLog/CreateAuthLogEntryCommand.js.map +1 -0
- package/dist/production/src/model/commands/configuration/UpdateConfigurationCommand.cjs +20 -5
- package/dist/production/src/model/commands/configuration/UpdateConfigurationCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/configuration/UpdateConfigurationCommand.js +20 -5
- package/dist/production/src/model/commands/configuration/UpdateConfigurationCommand.js.map +1 -1
- package/dist/production/src/model/commands/identity/CreateIdentityCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/identity/CreateIdentityCommand.js.map +1 -1
- package/dist/production/src/model/commands/identity/PatchIdentityGlobalRoles.cjs +6 -2
- package/dist/production/src/model/commands/identity/PatchIdentityGlobalRoles.cjs.map +1 -1
- package/dist/production/src/model/commands/identity/PatchIdentityGlobalRoles.js +6 -2
- package/dist/production/src/model/commands/identity/PatchIdentityGlobalRoles.js.map +1 -1
- package/dist/production/src/model/commands/idp/CreateIdpCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/idp/CreateIdpCommand.js.map +1 -1
- package/dist/production/src/model/commands/idp/DisableIdpCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/idp/DisableIdpCommand.js.map +1 -1
- package/dist/production/src/model/commands/idp/EnableIdpCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/idp/EnableIdpCommand.js.map +1 -1
- package/dist/production/src/model/commands/idp/UpdateIdpCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/idp/UpdateIdpCommand.js.map +1 -1
- package/dist/production/src/model/commands/mailTemplate/AddMailTemplateCommand.cjs +16 -12
- package/dist/production/src/model/commands/mailTemplate/AddMailTemplateCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/mailTemplate/AddMailTemplateCommand.js +16 -12
- package/dist/production/src/model/commands/mailTemplate/AddMailTemplateCommand.js.map +1 -1
- package/dist/production/src/model/commands/mailTemplate/RemoveMailTemplateCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/mailTemplate/RemoveMailTemplateCommand.js.map +1 -1
- package/dist/production/src/model/commands/membership/AddProjectMemberCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/membership/AddProjectMemberCommand.js.map +1 -1
- package/dist/production/src/model/commands/membership/CreateOrUpdateProjectMembershipCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/membership/CreateOrUpdateProjectMembershipCommand.js.map +1 -1
- package/dist/production/src/model/commands/membership/RemoveProjectMemberCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/membership/RemoveProjectMemberCommand.js.map +1 -1
- package/dist/production/src/model/commands/membership/RemoveProjectMembershipsCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/membership/RemoveProjectMembershipsCommand.js.map +1 -1
- package/dist/production/src/model/commands/membership/UpdateProjectMemberCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/membership/UpdateProjectMemberCommand.js.map +1 -1
- package/dist/production/src/model/commands/membership/variables/PatchProjectMembershipVariableValuesCommand.cjs +4 -10
- package/dist/production/src/model/commands/membership/variables/PatchProjectMembershipVariableValuesCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/membership/variables/PatchProjectMembershipVariableValuesCommand.js +4 -10
- package/dist/production/src/model/commands/membership/variables/PatchProjectMembershipVariableValuesCommand.js.map +1 -1
- package/dist/production/src/model/commands/membership/variables/PatchProjectMembershipVariablesCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/membership/variables/PatchProjectMembershipVariablesCommand.js.map +1 -1
- package/dist/production/src/model/commands/membership/variables/SetProjectMembershipVariableValuesCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/membership/variables/SetProjectMembershipVariableValuesCommand.js.map +1 -1
- package/dist/production/src/model/commands/otp/ConfirmOtpCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/otp/ConfirmOtpCommand.js.map +1 -1
- package/dist/production/src/model/commands/otp/DisableOtpCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/otp/DisableOtpCommand.js.map +1 -1
- package/dist/production/src/model/commands/otp/PrepareOtpCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/otp/PrepareOtpCommand.js.map +1 -1
- package/dist/production/src/model/commands/person/ChangePasswordCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/person/ChangePasswordCommand.js.map +1 -1
- package/dist/production/src/model/commands/person/ChangeProfileCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/person/ChangeProfileCommand.js.map +1 -1
- package/dist/production/src/model/commands/person/CreatePersonCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/person/CreatePersonCommand.js.map +1 -1
- package/dist/production/src/model/commands/person/CreatePersonIdentityProviderIdentifierCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/person/CreatePersonIdentityProviderIdentifierCommand.js.map +1 -1
- package/dist/production/src/model/commands/person/DisablePersonCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/person/DisablePersonCommand.js.map +1 -1
- package/dist/production/src/model/commands/person/TogglePersonPasswordlessCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/person/TogglePersonPasswordlessCommand.js.map +1 -1
- package/dist/production/src/model/commands/personToken/ActivateOtpCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/personToken/ActivateOtpCommand.js.map +1 -1
- package/dist/production/src/model/commands/personToken/CreatePersonTokenCommand.cjs +12 -10
- package/dist/production/src/model/commands/personToken/CreatePersonTokenCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/personToken/CreatePersonTokenCommand.js +9 -7
- package/dist/production/src/model/commands/personToken/CreatePersonTokenCommand.js.map +1 -1
- package/dist/production/src/model/commands/personToken/IncreaseOtpAttemptCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/personToken/IncreaseOtpAttemptCommand.js.map +1 -1
- package/dist/production/src/model/commands/personToken/InvalidateTokenCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/personToken/InvalidateTokenCommand.js.map +1 -1
- package/dist/production/src/model/commands/personToken/ResetPasswordCommand.cjs +5 -5
- package/dist/production/src/model/commands/personToken/ResetPasswordCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/personToken/ResetPasswordCommand.js +1 -1
- package/dist/production/src/model/commands/personToken/ResetPasswordCommand.js.map +1 -1
- package/dist/production/src/model/commands/personToken/SavePersonTokenCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/personToken/SavePersonTokenCommand.js.map +1 -1
- package/dist/production/src/model/commands/project/CreateProjectCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/project/CreateProjectCommand.js.map +1 -1
- package/dist/production/src/model/commands/project/SetProjectSecretCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/project/SetProjectSecretCommand.js.map +1 -1
- package/dist/production/src/model/commands/project/UpdateProjectCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/project/UpdateProjectCommand.js.map +1 -1
- package/dist/production/src/model/dtos/Password.cjs.map +1 -1
- package/dist/production/src/model/dtos/Password.js.map +1 -1
- package/dist/production/src/model/mailing/UserMailer.cjs.map +1 -1
- package/dist/production/src/model/mailing/UserMailer.js.map +1 -1
- package/dist/production/src/model/mailing/templates/Layout.mustache.cjs.map +1 -1
- package/dist/production/src/model/mailing/templates/Layout.mustache.js.map +1 -1
- package/dist/production/src/model/mailing/type.cjs.map +1 -1
- package/dist/production/src/model/mailing/type.js.map +1 -1
- package/dist/production/src/model/queries/apiKey/ApiKeyQuery.cjs +5 -9
- package/dist/production/src/model/queries/apiKey/ApiKeyQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/apiKey/ApiKeyQuery.js +2 -6
- package/dist/production/src/model/queries/apiKey/ApiKeyQuery.js.map +1 -1
- package/dist/production/src/model/queries/authLog/NextLoginAttemptQuery.cjs +43 -0
- package/dist/production/src/model/queries/authLog/NextLoginAttemptQuery.cjs.map +1 -0
- package/dist/production/src/model/queries/authLog/NextLoginAttemptQuery.js +43 -0
- package/dist/production/src/model/queries/authLog/NextLoginAttemptQuery.js.map +1 -0
- package/dist/production/src/model/queries/configuration/ConfigurationQuery.cjs +18 -1
- package/dist/production/src/model/queries/configuration/ConfigurationQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/configuration/ConfigurationQuery.js +18 -1
- package/dist/production/src/model/queries/configuration/ConfigurationQuery.js.map +1 -1
- package/dist/production/src/model/queries/identity/IdentityQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/identity/IdentityQuery.js.map +1 -1
- package/dist/production/src/model/queries/idp/IdentityProviderBySlugQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/idp/IdentityProviderBySlugQuery.js.map +1 -1
- package/dist/production/src/model/queries/idp/IdentityProvidersQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/idp/IdentityProvidersQuery.js.map +1 -1
- package/dist/production/src/model/queries/idp/helpers.cjs.map +1 -1
- package/dist/production/src/model/queries/idp/helpers.js.map +1 -1
- package/dist/production/src/model/queries/mailTemplate/MailTemplateListQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/mailTemplate/MailTemplateListQuery.js.map +1 -1
- package/dist/production/src/model/queries/mailTemplate/MailTemplateQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/mailTemplate/MailTemplateQuery.js.map +1 -1
- package/dist/production/src/model/queries/mailTemplate/helpers.cjs.map +1 -1
- package/dist/production/src/model/queries/mailTemplate/helpers.js.map +1 -1
- package/dist/production/src/model/queries/membership/ProjectMembersQuery.cjs +5 -3
- package/dist/production/src/model/queries/membership/ProjectMembersQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/membership/ProjectMembersQuery.js +5 -3
- package/dist/production/src/model/queries/membership/ProjectMembersQuery.js.map +1 -1
- package/dist/production/src/model/queries/membership/ProjectMembershipByIdentityQuery.cjs +5 -15
- package/dist/production/src/model/queries/membership/ProjectMembershipByIdentityQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/membership/ProjectMembershipByIdentityQuery.js +5 -15
- package/dist/production/src/model/queries/membership/ProjectMembershipByIdentityQuery.js.map +1 -1
- package/dist/production/src/model/queries/membership/ProjectRolesByIdentityQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/membership/ProjectRolesByIdentityQuery.js.map +1 -1
- package/dist/production/src/model/queries/membership/ProjectSlugSpecification.cjs +1 -4
- package/dist/production/src/model/queries/membership/ProjectSlugSpecification.cjs.map +1 -1
- package/dist/production/src/model/queries/membership/ProjectSlugSpecification.js +1 -4
- package/dist/production/src/model/queries/membership/ProjectSlugSpecification.js.map +1 -1
- package/dist/production/src/model/queries/person/PersonByIdPQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/person/PersonByIdPQuery.js.map +1 -1
- package/dist/production/src/model/queries/person/PersonByIdentityBatchQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/person/PersonByIdentityBatchQuery.js.map +1 -1
- package/dist/production/src/model/queries/person/PersonQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/person/PersonQuery.js.map +1 -1
- package/dist/production/src/model/queries/person/PersonQueryBuilderFactory.cjs.map +1 -1
- package/dist/production/src/model/queries/person/PersonQueryBuilderFactory.js.map +1 -1
- package/dist/production/src/model/queries/personToken/PersonTokenQuery.cjs +3 -3
- package/dist/production/src/model/queries/personToken/PersonTokenQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/personToken/PersonTokenQuery.js +1 -1
- package/dist/production/src/model/queries/personToken/PersonTokenQuery.js.map +1 -1
- package/dist/production/src/model/queries/project/ProjectBySlugQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/project/ProjectBySlugQuery.js.map +1 -1
- package/dist/production/src/model/queries/project/ProjectSecretsQuery.cjs +6 -8
- package/dist/production/src/model/queries/project/ProjectSecretsQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/project/ProjectSecretsQuery.js +6 -8
- package/dist/production/src/model/queries/project/ProjectSecretsQuery.js.map +1 -1
- package/dist/production/src/model/queries/project/ProjectUpdateTimestampQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/project/ProjectUpdateTimestampQuery.js.map +1 -1
- package/dist/production/src/model/queries/project/ProjectsByIdentityQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/project/ProjectsByIdentityQuery.js.map +1 -1
- package/dist/production/src/model/queries/project/ProjectsQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/project/ProjectsQuery.js.map +1 -1
- package/dist/production/src/model/service/AuthLogService.cjs +36 -0
- package/dist/production/src/model/service/AuthLogService.cjs.map +1 -0
- package/dist/production/src/model/service/AuthLogService.js +36 -0
- package/dist/production/src/model/service/AuthLogService.js.map +1 -0
- package/dist/production/src/model/service/ConfigurationManager.cjs +0 -12
- package/dist/production/src/model/service/ConfigurationManager.cjs.map +1 -1
- package/dist/production/src/model/service/ConfigurationManager.js +0 -12
- package/dist/production/src/model/service/ConfigurationManager.js.map +1 -1
- package/dist/production/src/model/service/EmailValidator.cjs.map +1 -1
- package/dist/production/src/model/service/EmailValidator.js.map +1 -1
- package/dist/production/src/model/service/IDPSignInManager.cjs +46 -12
- package/dist/production/src/model/service/IDPSignInManager.cjs.map +1 -1
- package/dist/production/src/model/service/IDPSignInManager.js +46 -12
- package/dist/production/src/model/service/IDPSignInManager.js.map +1 -1
- package/dist/production/src/model/service/InviteManager.cjs +14 -8
- package/dist/production/src/model/service/InviteManager.cjs.map +1 -1
- package/dist/production/src/model/service/InviteManager.js +14 -8
- package/dist/production/src/model/service/InviteManager.js.map +1 -1
- package/dist/production/src/model/service/MailTemplateManager.cjs.map +1 -1
- package/dist/production/src/model/service/MailTemplateManager.js.map +1 -1
- package/dist/production/src/model/service/MembershipValidator.cjs +1 -1
- package/dist/production/src/model/service/MembershipValidator.cjs.map +1 -1
- package/dist/production/src/model/service/MembershipValidator.js +1 -1
- package/dist/production/src/model/service/MembershipValidator.js.map +1 -1
- package/dist/production/src/model/service/OtpAuthenticator.cjs.map +1 -1
- package/dist/production/src/model/service/OtpAuthenticator.js.map +1 -1
- package/dist/production/src/model/service/OtpManager.cjs +0 -3
- package/dist/production/src/model/service/OtpManager.cjs.map +1 -1
- package/dist/production/src/model/service/OtpManager.js +0 -3
- package/dist/production/src/model/service/OtpManager.js.map +1 -1
- package/dist/production/src/model/service/PasswordChangeManager.cjs +21 -12
- package/dist/production/src/model/service/PasswordChangeManager.cjs.map +1 -1
- package/dist/production/src/model/service/PasswordChangeManager.js +20 -11
- package/dist/production/src/model/service/PasswordChangeManager.js.map +1 -1
- package/dist/production/src/model/service/PasswordResetManager.cjs +40 -8
- package/dist/production/src/model/service/PasswordResetManager.cjs.map +1 -1
- package/dist/production/src/model/service/PasswordResetManager.js +40 -8
- package/dist/production/src/model/service/PasswordResetManager.js.map +1 -1
- package/dist/production/src/model/service/PasswordStrengthValidator.cjs +69 -0
- package/dist/production/src/model/service/PasswordStrengthValidator.cjs.map +1 -0
- package/dist/production/src/model/service/PasswordStrengthValidator.js +69 -0
- package/dist/production/src/model/service/PasswordStrengthValidator.js.map +1 -0
- package/dist/production/src/model/service/PasswordlessSignInManager.cjs +94 -25
- package/dist/production/src/model/service/PasswordlessSignInManager.cjs.map +1 -1
- package/dist/production/src/model/service/PasswordlessSignInManager.js +86 -17
- package/dist/production/src/model/service/PasswordlessSignInManager.js.map +1 -1
- package/dist/production/src/model/service/PersonAccessManager.cjs +7 -29
- package/dist/production/src/model/service/PersonAccessManager.cjs.map +1 -1
- package/dist/production/src/model/service/PersonAccessManager.js +7 -29
- package/dist/production/src/model/service/PersonAccessManager.js.map +1 -1
- package/dist/production/src/model/service/PersonManager.cjs.map +1 -1
- package/dist/production/src/model/service/PersonManager.js.map +1 -1
- package/dist/production/src/model/service/ProjectManager.cjs.map +1 -1
- package/dist/production/src/model/service/ProjectManager.js.map +1 -1
- package/dist/production/src/model/service/ProjectMemberManager.cjs.map +1 -1
- package/dist/production/src/model/service/ProjectMemberManager.js.map +1 -1
- package/dist/production/src/model/service/RolesManager.cjs.map +1 -1
- package/dist/production/src/model/service/RolesManager.js.map +1 -1
- package/dist/production/src/model/service/SecretsManager.cjs.map +1 -1
- package/dist/production/src/model/service/SecretsManager.js.map +1 -1
- package/dist/production/src/model/service/SignInManager.cjs +56 -31
- package/dist/production/src/model/service/SignInManager.cjs.map +1 -1
- package/dist/production/src/model/service/SignInManager.js +57 -32
- package/dist/production/src/model/service/SignInManager.js.map +1 -1
- package/dist/production/src/model/service/SignUpManager.cjs +13 -8
- package/dist/production/src/model/service/SignUpManager.cjs.map +1 -1
- package/dist/production/src/model/service/SignUpManager.js +11 -6
- package/dist/production/src/model/service/SignUpManager.js.map +1 -1
- package/dist/production/src/model/service/apiKey/ApiKeyManager.cjs +6 -1
- package/dist/production/src/model/service/apiKey/ApiKeyManager.cjs.map +1 -1
- package/dist/production/src/model/service/apiKey/ApiKeyManager.js +6 -1
- package/dist/production/src/model/service/apiKey/ApiKeyManager.js.map +1 -1
- package/dist/production/src/model/service/apiKey/ApiKeyService.cjs.map +1 -1
- package/dist/production/src/model/service/apiKey/ApiKeyService.js.map +1 -1
- package/dist/production/src/model/service/helpers/getPreferredProject.cjs.map +1 -1
- package/dist/production/src/model/service/helpers/getPreferredProject.js.map +1 -1
- package/dist/production/src/model/service/idp/IDPHandlerRegistry.cjs.map +1 -1
- package/dist/production/src/model/service/idp/IDPHandlerRegistry.js.map +1 -1
- package/dist/production/src/model/service/idp/IDPManager.cjs +6 -4
- package/dist/production/src/model/service/idp/IDPManager.cjs.map +1 -1
- package/dist/production/src/model/service/idp/IDPManager.js +6 -4
- package/dist/production/src/model/service/idp/IDPManager.js.map +1 -1
- package/dist/production/src/model/service/idp/IDPResponseError.cjs +0 -3
- package/dist/production/src/model/service/idp/IDPResponseError.cjs.map +1 -1
- package/dist/production/src/model/service/idp/IDPResponseError.js +0 -3
- package/dist/production/src/model/service/idp/IDPResponseError.js.map +1 -1
- package/dist/production/src/model/service/idp/IDPValidationError.cjs +0 -3
- package/dist/production/src/model/service/idp/IDPValidationError.cjs.map +1 -1
- package/dist/production/src/model/service/idp/IDPValidationError.js +0 -3
- package/dist/production/src/model/service/idp/IDPValidationError.js.map +1 -1
- package/dist/production/src/model/service/idp/IdentityProviderNotFoundError.cjs +0 -3
- package/dist/production/src/model/service/idp/IdentityProviderNotFoundError.cjs.map +1 -1
- package/dist/production/src/model/service/idp/IdentityProviderNotFoundError.js +0 -3
- package/dist/production/src/model/service/idp/IdentityProviderNotFoundError.js.map +1 -1
- package/dist/production/src/model/service/idp/InvalidIDPConfigurationError.cjs +0 -3
- package/dist/production/src/model/service/idp/InvalidIDPConfigurationError.cjs.map +1 -1
- package/dist/production/src/model/service/idp/InvalidIDPConfigurationError.js +0 -3
- package/dist/production/src/model/service/idp/InvalidIDPConfigurationError.js.map +1 -1
- package/dist/production/src/model/service/idp/providers/AppleProvider.cjs.map +1 -1
- package/dist/production/src/model/service/idp/providers/AppleProvider.js.map +1 -1
- package/dist/production/src/model/service/idp/providers/FacebookProvider.cjs.map +1 -1
- package/dist/production/src/model/service/idp/providers/FacebookProvider.js.map +1 -1
- package/dist/production/src/model/service/idp/providers/OIDCHelpers.cjs.map +1 -1
- package/dist/production/src/model/service/idp/providers/OIDCHelpers.js.map +1 -1
- package/dist/production/src/model/service/idp/providers/OIDCProvider.cjs.map +1 -1
- package/dist/production/src/model/service/idp/providers/OIDCProvider.js.map +1 -1
- package/dist/production/src/model/service/idp/providers/OIDCTypes.cjs.map +1 -1
- package/dist/production/src/model/service/idp/providers/OIDCTypes.js.map +1 -1
- package/dist/production/src/model/service/idp/providers/helpers.cjs.map +1 -1
- package/dist/production/src/model/service/idp/providers/helpers.js.map +1 -1
- package/dist/production/src/model/service/membershipUtils.cjs.map +1 -1
- package/dist/production/src/model/service/membershipUtils.js.map +1 -1
- package/dist/production/src/model/type/ApiKey.cjs.map +1 -1
- package/dist/production/src/model/type/ApiKey.js.map +1 -1
- package/dist/production/src/model/utils/DatabaseContext.cjs.map +1 -1
- package/dist/production/src/model/utils/DatabaseContext.js.map +1 -1
- package/dist/production/src/model/utils/Response.cjs +2 -1
- package/dist/production/src/model/utils/Response.cjs.map +1 -1
- package/dist/production/src/model/utils/Response.js +2 -1
- package/dist/production/src/model/utils/Response.js.map +1 -1
- package/dist/production/src/model/utils/blacklist.cjs +10006 -0
- package/dist/production/src/model/utils/blacklist.cjs.map +1 -0
- package/dist/production/src/model/utils/blacklist.js +10006 -0
- package/dist/production/src/model/utils/blacklist.js.map +1 -0
- package/dist/production/src/model/utils/email.cjs.map +1 -1
- package/dist/production/src/model/utils/email.js.map +1 -1
- package/dist/{development/src/model/utils/typeUtils.cjs → production/src/model/utils/hex.cjs} +1 -1
- package/dist/production/src/model/utils/hex.cjs.map +1 -0
- package/dist/production/src/model/utils/{typeUtils.js → hex.js} +1 -1
- package/dist/production/src/model/utils/hex.js.map +1 -0
- package/dist/production/src/model/utils/interval.cjs +8 -0
- package/dist/production/src/model/utils/interval.cjs.map +1 -0
- package/dist/production/src/model/utils/interval.js +8 -0
- package/dist/production/src/model/utils/interval.js.map +1 -0
- package/dist/production/src/model/utils/time.cjs.map +1 -1
- package/dist/production/src/model/utils/time.js.map +1 -1
- package/dist/production/src/model/utils/{tokenUtils.cjs → token.cjs} +3 -3
- package/dist/production/src/model/utils/token.cjs.map +1 -0
- package/dist/production/src/model/utils/{tokenUtils.js → token.js} +2 -2
- package/dist/production/src/model/utils/token.js.map +1 -0
- package/dist/production/src/resolvers/ResolverFactory.cjs +22 -7
- package/dist/production/src/resolvers/ResolverFactory.cjs.map +1 -1
- package/dist/production/src/resolvers/ResolverFactory.js +23 -8
- package/dist/production/src/resolvers/ResolverFactory.js.map +1 -1
- package/dist/production/src/resolvers/TenantResolverContextFactory.cjs +10 -2
- package/dist/production/src/resolvers/TenantResolverContextFactory.cjs.map +1 -1
- package/dist/production/src/resolvers/TenantResolverContextFactory.js +10 -2
- package/dist/production/src/resolvers/TenantResolverContextFactory.js.map +1 -1
- package/dist/production/src/resolvers/errorUtils.cjs +15 -4
- package/dist/production/src/resolvers/errorUtils.cjs.map +1 -1
- package/dist/production/src/resolvers/errorUtils.js +15 -4
- package/dist/production/src/resolvers/errorUtils.js.map +1 -1
- package/dist/production/src/resolvers/membershipUtils.cjs.map +1 -1
- package/dist/production/src/resolvers/membershipUtils.js.map +1 -1
- package/dist/production/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.cjs +4 -3
- package/dist/production/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.js +2 -1
- package/dist/production/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.cjs +1 -0
- package/dist/production/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.js +1 -0
- package/dist/production/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/configuration/ConfigurationMutationResolver.cjs +1 -0
- package/dist/production/src/resolvers/mutation/configuration/ConfigurationMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/configuration/ConfigurationMutationResolver.js +1 -0
- package/dist/production/src/resolvers/mutation/configuration/ConfigurationMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/identity/GlobalRolesMutationResolver.cjs +1 -0
- package/dist/production/src/resolvers/mutation/identity/GlobalRolesMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/identity/GlobalRolesMutationResolver.js +1 -0
- package/dist/production/src/resolvers/mutation/identity/GlobalRolesMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/idp/AddIDPMutationResolver.cjs +1 -0
- package/dist/production/src/resolvers/mutation/idp/AddIDPMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/idp/AddIDPMutationResolver.js +1 -0
- package/dist/production/src/resolvers/mutation/idp/AddIDPMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/idp/DisableIDPMutationResolver.cjs +1 -0
- package/dist/production/src/resolvers/mutation/idp/DisableIDPMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/idp/DisableIDPMutationResolver.js +1 -0
- package/dist/production/src/resolvers/mutation/idp/DisableIDPMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/idp/EnableIDPMutationResolver.cjs +1 -0
- package/dist/production/src/resolvers/mutation/idp/EnableIDPMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/idp/EnableIDPMutationResolver.js +1 -0
- package/dist/production/src/resolvers/mutation/idp/EnableIDPMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/idp/UpdateIDPMutationResolver.cjs +1 -0
- package/dist/production/src/resolvers/mutation/idp/UpdateIDPMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/idp/UpdateIDPMutationResolver.js +1 -0
- package/dist/production/src/resolvers/mutation/idp/UpdateIDPMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.cjs +1 -0
- package/dist/production/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.js +1 -0
- package/dist/production/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/person/ChangePasswordMutationResolver.cjs +17 -6
- package/dist/production/src/resolvers/mutation/person/ChangePasswordMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/person/ChangePasswordMutationResolver.js +17 -6
- package/dist/production/src/resolvers/mutation/person/ChangePasswordMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/person/ChangeProfileMutationResolver.cjs +14 -0
- package/dist/production/src/resolvers/mutation/person/ChangeProfileMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/person/ChangeProfileMutationResolver.js +14 -0
- package/dist/production/src/resolvers/mutation/person/ChangeProfileMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/person/DisablePersonMutationResolver.cjs +7 -1
- package/dist/production/src/resolvers/mutation/person/DisablePersonMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/person/DisablePersonMutationResolver.js +7 -1
- package/dist/production/src/resolvers/mutation/person/DisablePersonMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/person/IDPMutationResolver.cjs +12 -3
- package/dist/production/src/resolvers/mutation/person/IDPMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/person/IDPMutationResolver.js +12 -3
- package/dist/production/src/resolvers/mutation/person/IDPMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/person/InviteMutationResolver.cjs +3 -2
- package/dist/production/src/resolvers/mutation/person/InviteMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/person/InviteMutationResolver.js +2 -1
- package/dist/production/src/resolvers/mutation/person/InviteMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/person/OtpMutationResolver.cjs +26 -1
- package/dist/production/src/resolvers/mutation/person/OtpMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/person/OtpMutationResolver.js +26 -1
- package/dist/production/src/resolvers/mutation/person/OtpMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/person/PasswordlessMutationResolver.cjs +20 -0
- package/dist/production/src/resolvers/mutation/person/PasswordlessMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/person/PasswordlessMutationResolver.js +20 -0
- package/dist/production/src/resolvers/mutation/person/PasswordlessMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/person/ResetPasswordMutationResolver.cjs +25 -2
- package/dist/production/src/resolvers/mutation/person/ResetPasswordMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/person/ResetPasswordMutationResolver.js +25 -2
- package/dist/production/src/resolvers/mutation/person/ResetPasswordMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/person/SignInMutationResolver.cjs +24 -0
- package/dist/production/src/resolvers/mutation/person/SignInMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/person/SignInMutationResolver.js +24 -0
- package/dist/production/src/resolvers/mutation/person/SignInMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/person/SignOutMutationResolver.cjs +1 -0
- package/dist/production/src/resolvers/mutation/person/SignOutMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/person/SignOutMutationResolver.js +1 -0
- package/dist/production/src/resolvers/mutation/person/SignOutMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/person/SignUpMutationResolver.cjs +2 -1
- package/dist/production/src/resolvers/mutation/person/SignUpMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/person/SignUpMutationResolver.js +2 -1
- package/dist/production/src/resolvers/mutation/person/SignUpMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.cjs +3 -1
- package/dist/production/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.js +3 -1
- package/dist/production/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/project/CreateProjectMutationResolver.cjs +3 -2
- package/dist/production/src/resolvers/mutation/project/CreateProjectMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/project/CreateProjectMutationResolver.js +2 -1
- package/dist/production/src/resolvers/mutation/project/CreateProjectMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/project/SetProjectSecretMutationResolver.cjs +1 -0
- package/dist/production/src/resolvers/mutation/project/SetProjectSecretMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/project/SetProjectSecretMutationResolver.js +1 -0
- package/dist/production/src/resolvers/mutation/project/SetProjectSecretMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/project/UpdateProjectMutationResolver.cjs +1 -0
- package/dist/production/src/resolvers/mutation/project/UpdateProjectMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/project/UpdateProjectMutationResolver.js +1 -0
- package/dist/production/src/resolvers/mutation/project/UpdateProjectMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.cjs +1 -0
- package/dist/production/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.js +1 -0
- package/dist/production/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.cjs +1 -0
- package/dist/production/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.js +1 -0
- package/dist/production/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.cjs +1 -0
- package/dist/production/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.js +1 -0
- package/dist/production/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/query/ConfigurationQueryResolver.cjs +3 -1
- package/dist/production/src/resolvers/query/ConfigurationQueryResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/query/ConfigurationQueryResolver.js +3 -1
- package/dist/production/src/resolvers/query/ConfigurationQueryResolver.js.map +1 -1
- package/dist/production/src/resolvers/query/IDPQueryResolver.cjs +1 -0
- package/dist/production/src/resolvers/query/IDPQueryResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/query/IDPQueryResolver.js +1 -0
- package/dist/production/src/resolvers/query/IDPQueryResolver.js.map +1 -1
- package/dist/production/src/resolvers/query/MailTemplateQueryResolver.cjs +1 -0
- package/dist/production/src/resolvers/query/MailTemplateQueryResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/query/MailTemplateQueryResolver.js +1 -0
- package/dist/production/src/resolvers/query/MailTemplateQueryResolver.js.map +1 -1
- package/dist/production/src/resolvers/query/MeQueryResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/query/MeQueryResolver.js.map +1 -1
- package/dist/production/src/resolvers/query/PersonQueryResolver.cjs +1 -0
- package/dist/production/src/resolvers/query/PersonQueryResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/query/PersonQueryResolver.js +1 -0
- package/dist/production/src/resolvers/query/PersonQueryResolver.js.map +1 -1
- package/dist/production/src/resolvers/query/ProjectMembersQueryResolver.cjs +1 -0
- package/dist/production/src/resolvers/query/ProjectMembersQueryResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/query/ProjectMembersQueryResolver.js +1 -0
- package/dist/production/src/resolvers/query/ProjectMembersQueryResolver.js.map +1 -1
- package/dist/production/src/resolvers/query/ProjectQueryResolver.cjs +1 -0
- package/dist/production/src/resolvers/query/ProjectQueryResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/query/ProjectQueryResolver.js +1 -0
- package/dist/production/src/resolvers/query/ProjectQueryResolver.js.map +1 -1
- package/dist/production/src/resolvers/responseHelpers/PersonResponseFactory.cjs.map +1 -1
- package/dist/production/src/resolvers/responseHelpers/PersonResponseFactory.js.map +1 -1
- package/dist/production/src/resolvers/responseHelpers/SignInResponseFactory.cjs +1 -0
- package/dist/production/src/resolvers/responseHelpers/SignInResponseFactory.cjs.map +1 -1
- package/dist/production/src/resolvers/responseHelpers/SignInResponseFactory.js +1 -0
- package/dist/production/src/resolvers/responseHelpers/SignInResponseFactory.js.map +1 -1
- package/dist/production/src/resolvers/types/IdentityTypeResolver.cjs +1 -0
- package/dist/production/src/resolvers/types/IdentityTypeResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/types/IdentityTypeResolver.js +1 -0
- package/dist/production/src/resolvers/types/IdentityTypeResolver.js.map +1 -1
- package/dist/production/src/resolvers/types/ProjectTypeResolver.cjs +7 -1
- package/dist/production/src/resolvers/types/ProjectTypeResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/types/ProjectTypeResolver.js +7 -1
- package/dist/production/src/resolvers/types/ProjectTypeResolver.js.map +1 -1
- package/dist/production/src/schema/tenant.graphql.cjs +64 -2
- package/dist/production/src/schema/tenant.graphql.cjs.map +1 -1
- package/dist/production/src/schema/tenant.graphql.js +64 -2
- package/dist/production/src/schema/tenant.graphql.js.map +1 -1
- package/dist/production/src/utils/Mailer.cjs.map +1 -1
- package/dist/production/src/utils/Mailer.js.map +1 -1
- package/dist/production/src/utils/TemplateRenderer.cjs.map +1 -1
- package/dist/production/src/utils/TemplateRenderer.js.map +1 -1
- package/dist/production/src/utils/array.cjs.map +1 -1
- package/dist/production/src/utils/array.js.map +1 -1
- package/dist/production/src/utils/batchQuery.cjs.map +1 -1
- package/dist/production/src/utils/batchQuery.js.map +1 -1
- package/dist/production/src/utils/tick.cjs.map +1 -1
- package/dist/production/src/utils/tick.js.map +1 -1
- package/dist/tests/cases/integration/mocked/gql/createSessionToken.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/gql/signIn.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/sql/createPersonSql.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/sql/createSessionKeySql.d.ts +1 -1
- package/dist/tests/cases/integration/mocked/sql/createSessionKeySql.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/sql/getConfigSql.d.ts +3 -0
- package/dist/tests/cases/integration/mocked/sql/getConfigSql.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/sql/getIdentityProjectsSql.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/sql/getIdpBySlugSql.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/sql/getMailTemplateSql.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/sql/getNextLoginAttemptSql.d.ts +3 -0
- package/dist/tests/cases/integration/mocked/sql/getNextLoginAttemptSql.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/sql/getPersonByEmailSql.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/sql/getPersonByIdSql.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/sql/getPersonByIdentity.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/sql/getPersonByIdpSql.d.ts.map +1 -1
- package/dist/tests/src/testTenant.d.ts +2 -0
- package/dist/tests/src/testTenant.d.ts.map +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/dist/types/TenantContainer.d.ts +10 -4
- package/dist/types/TenantContainer.d.ts.map +1 -1
- package/dist/types/migrations/2018-08-02-174310-init.d.ts.map +1 -1
- package/dist/types/migrations/2018-09-03-140621-identity-project.d.ts.map +1 -1
- package/dist/types/migrations/2018-10-26-165450-setup-api-key.d.ts.map +1 -1
- package/dist/types/migrations/2018-10-26-175155-variables.d.ts.map +1 -1
- package/dist/types/migrations/2019-02-18-110949-project-slug.d.ts.map +1 -1
- package/dist/types/migrations/2019-02-18-160155-session-expiration.d.ts.map +1 -1
- package/dist/types/migrations/2019-05-03-163729-api-key-disabled-at.d.ts.map +1 -1
- package/dist/types/migrations/2019-08-14-153300-project-slug-unique.d.ts.map +1 -1
- package/dist/types/migrations/2019-09-06-111000-membership.d.ts.map +1 -1
- package/dist/types/migrations/2019-09-06-111001-drop-old-member.d.ts.map +1 -1
- package/dist/types/migrations/2020-01-29-idenity-note.d.ts.map +1 -1
- package/dist/types/migrations/2020-04-17-fix-person-index.d.ts.map +1 -1
- package/dist/types/migrations/2020-05-01-170000-api-key-index.d.ts.map +1 -1
- package/dist/types/migrations/2020-06-08-134000-tenant-credentials.d.ts.map +1 -1
- package/dist/types/migrations/2020-08-07-110000-person-otp.d.ts.map +1 -1
- package/dist/types/migrations/2020-08-17-162200-mail-templates.d.ts.map +1 -1
- package/dist/types/migrations/2020-08-21-143400-person-password-reset.d.ts.map +1 -1
- package/dist/types/migrations/2020-09-07-094200-identity-provider.d.ts.map +1 -1
- package/dist/types/migrations/2021-03-28-134000-timestamp.d.ts.map +1 -1
- package/dist/types/migrations/2021-07-26-105000-project-config.d.ts.map +1 -1
- package/dist/types/migrations/2021-07-26-132000-project-secrets.d.ts.map +1 -1
- package/dist/types/migrations/2021-07-27-174000-project-alias-index.d.ts.map +1 -1
- package/dist/types/migrations/2021-11-24-130000-person-password-null.d.ts.map +1 -1
- package/dist/types/migrations/2021-11-24-161500-mail-template-project-null.d.ts.map +1 -1
- package/dist/types/migrations/2022-01-04-144000-person-unique-identity.d.ts.map +1 -1
- package/dist/types/migrations/2022-02-09-111800-fix-crypted.d.ts.map +1 -1
- package/dist/types/migrations/2022-02-11-153000-idp-auto-sign-up.d.ts.map +1 -1
- package/dist/types/migrations/2022-06-29-105000-person-idp.d.ts.map +1 -1
- package/dist/types/migrations/2022-07-07-135000-person-email-opt-uniq.d.ts.map +1 -1
- package/dist/types/migrations/2022-07-07-141000-person-display-name.d.ts.map +1 -1
- package/dist/types/migrations/2022-07-14-145000-person-login-options.d.ts.map +1 -1
- package/dist/types/migrations/2022-11-08-project-update-notification.d.ts.map +1 -1
- package/dist/types/migrations/2023-01-20-135500-person-email-normalize.d.ts.map +1 -1
- package/dist/types/migrations/2023-06-03-104000-person-disabled.d.ts.map +1 -1
- package/dist/types/migrations/2023-09-01-165000-idp-return-config.d.ts.map +1 -1
- package/dist/types/migrations/2024-06-20-140000-mail-reply.d.ts.map +1 -1
- package/dist/types/migrations/2024-08-26-120000-passwordless.d.ts.map +1 -1
- package/dist/types/migrations/2025-04-16-180000-config-up.d.ts +3 -0
- package/dist/types/migrations/2025-04-16-180000-config-up.d.ts.map +1 -0
- package/dist/types/migrations/2025-04-17-160000-auth-log.d.ts +3 -0
- package/dist/types/migrations/2025-04-17-160000-auth-log.d.ts.map +1 -0
- package/dist/types/migrations/runner.d.ts.map +1 -1
- package/dist/types/migrations/snapshot-factory.d.ts.map +1 -1
- package/dist/types/migrations/snapshot.d.ts.map +1 -1
- package/dist/types/migrations/types.d.ts.map +1 -1
- package/dist/types/model/authorization/AclSchemaAccessNodeFactory.d.ts.map +1 -1
- package/dist/types/model/authorization/IdentityScope.d.ts +1 -1
- package/dist/types/model/authorization/IdentityScope.d.ts.map +1 -1
- package/dist/types/model/authorization/MembershipMatcher.d.ts.map +1 -1
- package/dist/types/model/authorization/PermissionActions.d.ts.map +1 -1
- package/dist/types/model/authorization/PermissionsFactory.d.ts.map +1 -1
- package/dist/types/model/commands/Command.d.ts +1 -1
- package/dist/types/model/commands/Command.d.ts.map +1 -1
- package/dist/types/model/commands/CommandBus.d.ts.map +1 -1
- package/dist/types/model/commands/authLog/CreateAuthLogEntryCommand.d.ts +26 -0
- package/dist/types/model/commands/authLog/CreateAuthLogEntryCommand.d.ts.map +1 -0
- package/dist/types/model/commands/configuration/UpdateConfigurationCommand.d.ts.map +1 -1
- package/dist/types/model/commands/identity/PatchIdentityGlobalRoles.d.ts.map +1 -1
- package/dist/types/model/commands/mailTemplate/AddMailTemplateCommand.d.ts.map +1 -1
- package/dist/types/model/commands/membership/types.d.ts.map +1 -1
- package/dist/types/model/commands/membership/variables/PatchProjectMembershipVariableValuesCommand.d.ts.map +1 -1
- package/dist/types/model/commands/person/CreatePersonCommand.d.ts.map +1 -1
- package/dist/types/model/commands/personToken/CreatePersonTokenCommand.d.ts.map +1 -1
- package/dist/types/model/commands/personToken/ResetPasswordCommand.d.ts.map +1 -1
- package/dist/types/model/dtos/AuthLogBag.d.ts +3 -0
- package/dist/types/model/dtos/AuthLogBag.d.ts.map +1 -0
- package/dist/types/model/dtos/Password.d.ts.map +1 -1
- package/dist/types/model/mailing/UserMailer.d.ts +1 -0
- package/dist/types/model/mailing/UserMailer.d.ts.map +1 -1
- package/dist/types/model/queries/authLog/NextLoginAttemptQuery.d.ts +7 -0
- package/dist/types/model/queries/authLog/NextLoginAttemptQuery.d.ts.map +1 -0
- package/dist/types/model/queries/configuration/ConfigurationQuery.d.ts +1 -1
- package/dist/types/model/queries/configuration/ConfigurationQuery.d.ts.map +1 -1
- package/dist/types/model/queries/mailTemplate/helpers.d.ts.map +1 -1
- package/dist/types/model/queries/membership/ProjectMembersQuery.d.ts.map +1 -1
- package/dist/types/model/queries/membership/ProjectMembershipByIdentityQuery.d.ts.map +1 -1
- package/dist/types/model/queries/membership/ProjectRolesByIdentityQuery.d.ts.map +1 -1
- package/dist/types/model/queries/membership/ProjectSlugSpecification.d.ts.map +1 -1
- package/dist/types/model/queries/person/PersonQuery.d.ts.map +1 -1
- package/dist/types/model/queries/personToken/PersonTokenQuery.d.ts.map +1 -1
- package/dist/types/model/queries/project/ProjectSecretsQuery.d.ts.map +1 -1
- package/dist/types/model/service/AuthLogService.d.ts +34 -0
- package/dist/types/model/service/AuthLogService.d.ts.map +1 -0
- package/dist/types/model/service/ConfigurationManager.d.ts +1 -3
- package/dist/types/model/service/ConfigurationManager.d.ts.map +1 -1
- package/dist/types/model/service/EmailValidator.d.ts.map +1 -1
- package/dist/types/model/service/IDPSignInManager.d.ts +5 -1
- package/dist/types/model/service/IDPSignInManager.d.ts.map +1 -1
- package/dist/types/model/service/InviteManager.d.ts.map +1 -1
- package/dist/types/model/service/MembershipValidator.d.ts +1 -1
- package/dist/types/model/service/MembershipValidator.d.ts.map +1 -1
- package/dist/types/model/service/OtpManager.d.ts +0 -1
- package/dist/types/model/service/OtpManager.d.ts.map +1 -1
- package/dist/types/model/service/PasswordChangeManager.d.ts +8 -4
- package/dist/types/model/service/PasswordChangeManager.d.ts.map +1 -1
- package/dist/types/model/service/PasswordResetManager.d.ts +11 -4
- package/dist/types/model/service/PasswordResetManager.d.ts.map +1 -1
- package/dist/types/model/service/PasswordStrengthValidator.d.ts +11 -0
- package/dist/types/model/service/PasswordStrengthValidator.d.ts.map +1 -0
- package/dist/types/model/service/PasswordlessSignInManager.d.ts +16 -6
- package/dist/types/model/service/PasswordlessSignInManager.d.ts.map +1 -1
- package/dist/types/model/service/PersonAccessManager.d.ts +2 -1
- package/dist/types/model/service/PersonAccessManager.d.ts.map +1 -1
- package/dist/types/model/service/PersonManager.d.ts.map +1 -1
- package/dist/types/model/service/ProjectManager.d.ts.map +1 -1
- package/dist/types/model/service/ProjectMemberManager.d.ts.map +1 -1
- package/dist/types/model/service/RolesManager.d.ts.map +1 -1
- package/dist/types/model/service/SignInManager.d.ts +9 -4
- package/dist/types/model/service/SignInManager.d.ts.map +1 -1
- package/dist/types/model/service/SignUpManager.d.ts +7 -3
- package/dist/types/model/service/SignUpManager.d.ts.map +1 -1
- package/dist/types/model/service/apiKey/ApiKeyManager.d.ts +1 -1
- package/dist/types/model/service/apiKey/ApiKeyManager.d.ts.map +1 -1
- package/dist/types/model/service/apiKey/ApiKeyService.d.ts.map +1 -1
- package/dist/types/model/service/idp/IDPManager.d.ts.map +1 -1
- package/dist/types/model/service/idp/IDPResponseError.d.ts +0 -1
- package/dist/types/model/service/idp/IDPResponseError.d.ts.map +1 -1
- package/dist/types/model/service/idp/IDPValidationError.d.ts +0 -1
- package/dist/types/model/service/idp/IDPValidationError.d.ts.map +1 -1
- package/dist/types/model/service/idp/IdentityProviderHandler.d.ts.map +1 -1
- package/dist/types/model/service/idp/IdentityProviderNotFoundError.d.ts +0 -1
- package/dist/types/model/service/idp/IdentityProviderNotFoundError.d.ts.map +1 -1
- package/dist/types/model/service/idp/InvalidIDPConfigurationError.d.ts +0 -1
- package/dist/types/model/service/idp/InvalidIDPConfigurationError.d.ts.map +1 -1
- package/dist/types/model/service/idp/providers/FacebookProvider.d.ts.map +1 -1
- package/dist/types/model/service/idp/providers/OIDCHelpers.d.ts.map +1 -1
- package/dist/types/model/service/idp/providers/OIDCProvider.d.ts.map +1 -1
- package/dist/types/model/service/idp/providers/OIDCTypes.d.ts.map +1 -1
- package/dist/types/model/service/idp/providers/helpers.d.ts.map +1 -1
- package/dist/types/model/type/ApiKey.d.ts +1 -1
- package/dist/types/model/type/ApiKey.d.ts.map +1 -1
- package/dist/types/model/type/AuthLog.d.ts +2 -0
- package/dist/types/model/type/AuthLog.d.ts.map +1 -0
- package/dist/types/model/type/Config.d.ts +28 -0
- package/dist/types/model/type/Config.d.ts.map +1 -0
- package/dist/types/model/type/Project.d.ts.map +1 -1
- package/dist/types/model/utils/DatabaseContext.d.ts.map +1 -1
- package/dist/types/model/utils/Response.d.ts +4 -3
- package/dist/types/model/utils/Response.d.ts.map +1 -1
- package/dist/types/model/utils/blacklist.d.ts +2 -0
- package/dist/types/model/utils/blacklist.d.ts.map +1 -0
- package/dist/types/model/utils/{typeUtils.d.ts → hex.d.ts} +1 -1
- package/dist/types/model/utils/hex.d.ts.map +1 -0
- package/dist/types/model/utils/index.d.ts +1 -1
- package/dist/types/model/utils/index.d.ts.map +1 -1
- package/dist/types/model/utils/interval.d.ts +3 -0
- package/dist/types/model/utils/interval.d.ts.map +1 -0
- package/dist/types/model/utils/{tokenUtils.d.ts → token.d.ts} +2 -2
- package/dist/types/model/utils/token.d.ts.map +1 -0
- package/dist/types/resolvers/ResolverFactory.d.ts.map +1 -1
- package/dist/types/resolvers/TenantResolverContext.d.ts +2 -0
- package/dist/types/resolvers/TenantResolverContext.d.ts.map +1 -1
- package/dist/types/resolvers/TenantResolverContextFactory.d.ts +9 -4
- package/dist/types/resolvers/TenantResolverContextFactory.d.ts.map +1 -1
- package/dist/types/resolvers/errorUtils.d.ts +7 -5
- package/dist/types/resolvers/errorUtils.d.ts.map +1 -1
- package/dist/types/resolvers/membershipUtils.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/ChangePasswordMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/ChangeProfileMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/DisablePersonMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/IDPMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/InviteMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/OtpMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/PasswordlessMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/ResetPasswordMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/SignInMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/SignOutMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/SignUpMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/TogglePasswordlessMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/query/ConfigurationQueryResolver.d.ts.map +1 -1
- package/dist/types/resolvers/query/IDPQueryResolver.d.ts.map +1 -1
- package/dist/types/resolvers/query/PersonQueryResolver.d.ts.map +1 -1
- package/dist/types/resolvers/types/IdentityTypeResolver.d.ts.map +1 -1
- package/dist/types/resolvers/types/ProjectTypeResolver.d.ts +2 -2
- package/dist/types/resolvers/types/ProjectTypeResolver.d.ts.map +1 -1
- package/dist/types/schema/index.d.ts +103 -8
- package/dist/types/schema/index.d.ts.map +1 -1
- package/dist/types/schema/tenant.graphql.d.ts.map +1 -1
- package/dist/types/schema/types.d.ts +8 -0
- package/dist/types/schema/types.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/types/utils/Mailer.d.ts.map +1 -1
- package/dist/types/utils/batchQuery.d.ts +4 -1
- package/dist/types/utils/batchQuery.d.ts.map +1 -1
- package/graphql.codegen.yml +7 -3
- package/package.json +30 -24
- package/src/TenantContainer.ts +156 -156
- package/src/bin/runMigrations.ts +0 -2
- package/src/migrations/2018-08-02-174310-init.ts +1 -1
- package/src/migrations/2018-09-03-140621-identity-project.ts +1 -1
- package/src/migrations/2018-10-26-165450-setup-api-key.ts +1 -1
- package/src/migrations/2018-10-26-175155-variables.ts +1 -1
- package/src/migrations/2019-02-18-110949-project-slug.ts +1 -1
- package/src/migrations/2019-02-18-160155-session-expiration.ts +1 -1
- package/src/migrations/2019-05-03-163729-api-key-disabled-at.ts +1 -1
- package/src/migrations/2019-08-14-153300-project-slug-unique.ts +1 -1
- package/src/migrations/2019-09-06-111000-membership.ts +1 -1
- package/src/migrations/2019-09-06-111001-drop-old-member.ts +1 -1
- package/src/migrations/2020-01-29-idenity-note.ts +1 -2
- package/src/migrations/2020-04-17-fix-person-index.ts +1 -2
- package/src/migrations/2020-05-01-170000-api-key-index.ts +1 -2
- package/src/migrations/2020-06-08-134000-tenant-credentials.ts +1 -1
- package/src/migrations/2020-08-07-110000-person-otp.ts +1 -2
- package/src/migrations/2020-08-17-162200-mail-templates.ts +1 -1
- package/src/migrations/2020-08-21-143400-person-password-reset.ts +1 -2
- package/src/migrations/2020-09-07-094200-identity-provider.ts +1 -1
- package/src/migrations/2021-03-28-134000-timestamp.ts +1 -3
- package/src/migrations/2021-07-26-105000-project-config.ts +1 -2
- package/src/migrations/2021-07-26-132000-project-secrets.ts +1 -1
- package/src/migrations/2021-07-27-174000-project-alias-index.ts +1 -2
- package/src/migrations/2021-11-24-130000-person-password-null.ts +1 -2
- package/src/migrations/2021-11-24-161500-mail-template-project-null.ts +1 -1
- package/src/migrations/2022-01-04-144000-person-unique-identity.ts +1 -1
- package/src/migrations/2022-02-09-111800-fix-crypted.ts +1 -1
- package/src/migrations/2022-02-11-153000-idp-auto-sign-up.ts +1 -1
- package/src/migrations/2022-06-29-105000-person-idp.ts +1 -1
- package/src/migrations/2022-07-07-135000-person-email-opt-uniq.ts +1 -1
- package/src/migrations/2022-07-07-141000-person-display-name.ts +1 -2
- package/src/migrations/2022-07-14-145000-person-login-options.ts +1 -2
- package/src/migrations/2022-11-08-project-update-notification.ts +1 -2
- package/src/migrations/2023-01-20-135500-person-email-normalize.ts +1 -2
- package/src/migrations/2023-06-03-104000-person-disabled.ts +1 -1
- package/src/migrations/2023-09-01-165000-idp-return-config.ts +1 -1
- package/src/migrations/2024-06-20-140000-mail-reply.ts +1 -1
- package/src/migrations/2024-08-26-120000-passwordless.ts +1 -1
- package/src/migrations/2025-04-16-180000-config-up.ts +39 -0
- package/src/migrations/2025-04-17-160000-auth-log.ts +45 -0
- package/src/migrations/runner.ts +4 -1
- package/src/migrations/snapshot-factory.ts +0 -1
- package/src/migrations/snapshot.ts +57 -2
- package/src/migrations/types.ts +1 -1
- package/src/model/authorization/AclSchemaAccessNodeFactory.ts +0 -1
- package/src/model/authorization/IdentityScope.ts +1 -1
- package/src/model/authorization/MembershipMatcher.ts +6 -0
- package/src/model/authorization/PermissionActions.ts +12 -8
- package/src/model/authorization/PermissionsFactory.ts +3 -1
- package/src/model/commands/Command.ts +1 -1
- package/src/model/commands/CommandBus.ts +1 -3
- package/src/model/commands/apiKey/CreateApiKeyCommand.ts +1 -1
- package/src/model/commands/authLog/CreateAuthLogEntryCommand.ts +49 -0
- package/src/model/commands/configuration/UpdateConfigurationCommand.ts +24 -6
- package/src/model/commands/identity/PatchIdentityGlobalRoles.ts +7 -2
- package/src/model/commands/mailTemplate/AddMailTemplateCommand.ts +18 -12
- package/src/model/commands/membership/types.ts +2 -2
- package/src/model/commands/membership/variables/PatchProjectMembershipVariableValuesCommand.ts +2 -4
- package/src/model/commands/person/ChangeProfileCommand.ts +1 -1
- package/src/model/commands/person/CreatePersonCommand.ts +11 -9
- package/src/model/commands/person/TogglePersonPasswordlessCommand.ts +1 -1
- package/src/model/commands/personToken/CreatePersonTokenCommand.ts +8 -6
- package/src/model/commands/personToken/ResetPasswordCommand.ts +1 -2
- package/src/model/dtos/AuthLogBag.ts +2 -0
- package/src/model/dtos/Password.ts +0 -1
- package/src/model/mailing/UserMailer.ts +16 -8
- package/src/model/queries/apiKey/ApiKeyQuery.ts +9 -6
- package/src/model/queries/authLog/NextLoginAttemptQuery.ts +66 -0
- package/src/model/queries/configuration/ConfigurationQuery.ts +20 -10
- package/src/model/queries/mailTemplate/helpers.ts +11 -10
- package/src/model/queries/membership/ProjectMembersQuery.ts +9 -8
- package/src/model/queries/membership/ProjectMembershipByIdentityQuery.ts +5 -9
- package/src/model/queries/membership/ProjectRolesByIdentityQuery.ts +5 -6
- package/src/model/queries/membership/ProjectSlugSpecification.ts +9 -12
- package/src/model/queries/person/PersonQuery.ts +0 -1
- package/src/model/queries/personToken/PersonTokenQuery.ts +0 -1
- package/src/model/queries/project/ProjectSecretsQuery.ts +1 -2
- package/src/model/queries/project/ProjectsByIdentityQuery.ts +3 -3
- package/src/model/service/AuthLogService.ts +64 -0
- package/src/model/service/ConfigurationManager.ts +1 -9
- package/src/model/service/EmailValidator.ts +0 -1
- package/src/model/service/IDPSignInManager.ts +51 -14
- package/src/model/service/InviteManager.ts +18 -12
- package/src/model/service/MembershipValidator.ts +2 -2
- package/src/model/service/OtpAuthenticator.ts +1 -1
- package/src/model/service/OtpManager.ts +0 -3
- package/src/model/service/PasswordChangeManager.ts +27 -13
- package/src/model/service/PasswordResetManager.ts +47 -12
- package/src/model/service/PasswordStrengthValidator.ts +96 -0
- package/src/model/service/PasswordlessSignInManager.ts +106 -26
- package/src/model/service/PersonAccessManager.ts +8 -28
- package/src/model/service/PersonManager.ts +0 -1
- package/src/model/service/ProjectManager.ts +1 -7
- package/src/model/service/ProjectMemberManager.ts +6 -2
- package/src/model/service/RolesManager.ts +6 -2
- package/src/model/service/SecretsManager.ts +1 -1
- package/src/model/service/SignInManager.ts +68 -34
- package/src/model/service/SignUpManager.ts +16 -8
- package/src/model/service/apiKey/ApiKeyManager.ts +11 -5
- package/src/model/service/apiKey/ApiKeyService.ts +1 -2
- package/src/model/service/idp/IDPManager.ts +6 -5
- package/src/model/service/idp/IDPResponseError.ts +0 -3
- package/src/model/service/idp/IDPValidationError.ts +0 -3
- package/src/model/service/idp/IdentityProviderHandler.ts +1 -2
- package/src/model/service/idp/IdentityProviderNotFoundError.ts +0 -3
- package/src/model/service/idp/InvalidIDPConfigurationError.ts +0 -3
- package/src/model/service/idp/providers/FacebookProvider.ts +0 -3
- package/src/model/service/idp/providers/OIDCHelpers.ts +10 -2
- package/src/model/service/idp/providers/OIDCProvider.ts +0 -1
- package/src/model/service/idp/providers/OIDCTypes.ts +0 -1
- package/src/model/service/idp/providers/helpers.ts +9 -8
- package/src/model/type/ApiKey.ts +1 -1
- package/src/model/type/AuthLog.ts +14 -0
- package/src/model/type/Config.ts +31 -0
- package/src/model/type/Project.ts +0 -1
- package/src/model/utils/DatabaseContext.ts +0 -1
- package/src/model/utils/Response.ts +9 -3
- package/src/model/utils/blacklist.ts +5 -0
- package/src/model/utils/index.ts +1 -1
- package/src/model/utils/interval.ts +14 -0
- package/src/model/utils/{tokenUtils.ts → token.ts} +1 -2
- package/src/resolvers/ResolverFactory.ts +24 -10
- package/src/resolvers/TenantResolverContext.ts +2 -0
- package/src/resolvers/TenantResolverContextFactory.ts +10 -0
- package/src/resolvers/errorUtils.ts +24 -5
- package/src/resolvers/membershipUtils.ts +3 -5
- package/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.ts +2 -1
- package/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.ts +2 -7
- package/src/resolvers/mutation/idp/AddIDPMutationResolver.ts +1 -1
- package/src/resolvers/mutation/idp/UpdateIDPMutationResolver.ts +1 -1
- package/src/resolvers/mutation/person/ChangePasswordMutationResolver.ts +16 -8
- package/src/resolvers/mutation/person/ChangeProfileMutationResolver.ts +14 -2
- package/src/resolvers/mutation/person/DisablePersonMutationResolver.ts +10 -9
- package/src/resolvers/mutation/person/IDPMutationResolver.ts +12 -10
- package/src/resolvers/mutation/person/InviteMutationResolver.ts +1 -9
- package/src/resolvers/mutation/person/OtpMutationResolver.ts +25 -1
- package/src/resolvers/mutation/person/PasswordlessMutationResolver.ts +31 -4
- package/src/resolvers/mutation/person/ResetPasswordMutationResolver.ts +27 -3
- package/src/resolvers/mutation/person/SignInMutationResolver.ts +35 -12
- package/src/resolvers/mutation/person/SignOutMutationResolver.ts +2 -1
- package/src/resolvers/mutation/person/SignUpMutationResolver.ts +2 -9
- package/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.ts +2 -3
- package/src/resolvers/mutation/project/CreateProjectMutationResolver.ts +1 -1
- package/src/resolvers/mutation/project/UpdateProjectMutationResolver.ts +1 -1
- package/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.ts +1 -6
- package/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.ts +1 -6
- package/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.ts +2 -13
- package/src/resolvers/query/ConfigurationQueryResolver.ts +2 -3
- package/src/resolvers/query/IDPQueryResolver.ts +0 -1
- package/src/resolvers/query/PersonQueryResolver.ts +1 -6
- package/src/resolvers/query/ProjectMembersQueryResolver.ts +2 -2
- package/src/resolvers/query/ProjectQueryResolver.ts +2 -2
- package/src/resolvers/types/IdentityTypeResolver.ts +1 -8
- package/src/resolvers/types/ProjectTypeResolver.ts +8 -3
- package/src/schema/index.ts +888 -359
- package/src/schema/tenant.graphql.ts +64 -2
- package/src/schema/types.ts +4 -0
- package/src/utils/Mailer.ts +1 -5
- package/src/utils/batchQuery.ts +4 -1
- package/tests/cases/integration/mocked/addProjectMemberMutation.test.ts +0 -1
- package/tests/cases/integration/mocked/changeMyPasswordMutation.test.ts +52 -3
- package/tests/cases/integration/mocked/changeMyProfileMutation.test.ts +26 -6
- package/tests/cases/integration/mocked/changePasswordMutation.test.ts +10 -3
- package/tests/cases/integration/mocked/changeProfileMutation.test.ts +7 -3
- package/tests/cases/integration/mocked/confirmOtpMutation.test.ts +13 -9
- package/tests/cases/integration/mocked/createApiKeyMutation.test.ts +0 -1
- package/tests/cases/integration/mocked/createSessionKeyMutation.test.ts +9 -22
- package/tests/cases/integration/mocked/gql/createSessionToken.ts +5 -2
- package/tests/cases/integration/mocked/gql/signIn.ts +5 -2
- package/tests/cases/integration/mocked/inviteMutations.test.ts +6 -28
- package/tests/cases/integration/mocked/listProjectMembersQuery.test.ts +1 -1
- package/tests/cases/integration/mocked/prepareOtpMutation.test.ts +1 -2
- package/tests/cases/integration/mocked/removeProjectMemberMutation.test.ts +0 -1
- package/tests/cases/integration/mocked/signInIdpMutation.test.ts +16 -2
- package/tests/cases/integration/mocked/signInMutation.test.ts +64 -24
- package/tests/cases/integration/mocked/signOutMutation.test.ts +0 -6
- package/tests/cases/integration/mocked/signUpMutation.test.ts +3 -13
- package/tests/cases/integration/mocked/sql/createPersonSql.ts +8 -1
- package/tests/cases/integration/mocked/sql/createSessionKeySql.ts +2 -2
- package/tests/cases/integration/mocked/sql/getApiKeySql.ts +2 -2
- package/tests/cases/integration/mocked/sql/getConfigSql.ts +29 -0
- package/tests/cases/integration/mocked/sql/getIdentityProjectsSql.ts +1 -1
- package/tests/cases/integration/mocked/sql/getIdpBySlugSql.ts +2 -1
- package/tests/cases/integration/mocked/sql/getMailTemplateSql.ts +18 -14
- package/tests/cases/integration/mocked/sql/getNextLoginAttemptSql.ts +20 -0
- package/tests/cases/integration/mocked/sql/getPersonByEmailSql.ts +3 -2
- package/tests/cases/integration/mocked/sql/getPersonByIdSql.ts +2 -1
- package/tests/cases/integration/mocked/sql/getPersonByIdentity.ts +2 -1
- package/tests/cases/integration/mocked/sql/getPersonByIdpSql.ts +3 -2
- package/tests/cases/integration/mocked/updateProjectMemberMutation.test.ts +0 -1
- package/tests/cases/migrations/2020-06-08-134000-tenant-credentials.test.ts +1 -1
- package/tests/cases/unit/authorization/membershipAwareAccessNode.test.ts +1 -5
- package/tests/src/testTenant.ts +13 -0
- package/dist/development/src/model/utils/password.cjs +0 -12
- package/dist/development/src/model/utils/password.cjs.map +0 -1
- package/dist/development/src/model/utils/password.js +0 -12
- package/dist/development/src/model/utils/password.js.map +0 -1
- package/dist/development/src/model/utils/tokenUtils.cjs.map +0 -1
- package/dist/development/src/model/utils/tokenUtils.js.map +0 -1
- package/dist/development/src/model/utils/typeUtils.cjs.map +0 -1
- package/dist/development/src/model/utils/typeUtils.js.map +0 -1
- package/dist/production/src/model/utils/password.cjs +0 -12
- package/dist/production/src/model/utils/password.cjs.map +0 -1
- package/dist/production/src/model/utils/password.js +0 -12
- package/dist/production/src/model/utils/password.js.map +0 -1
- package/dist/production/src/model/utils/tokenUtils.cjs.map +0 -1
- package/dist/production/src/model/utils/tokenUtils.js.map +0 -1
- package/dist/production/src/model/utils/typeUtils.cjs.map +0 -1
- package/dist/production/src/model/utils/typeUtils.js.map +0 -1
- package/dist/types/model/utils/password.d.ts +0 -4
- package/dist/types/model/utils/password.d.ts.map +0 -1
- package/dist/types/model/utils/tokenUtils.d.ts.map +0 -1
- package/dist/types/model/utils/typeUtils.d.ts.map +0 -1
- package/src/model/utils/password.ts +0 -8
- package/tests/.eslintrc.cjs +0 -5
- package/vitest.config.ts +0 -3
- /package/src/model/utils/{typeUtils.ts → hex.ts} +0 -0
|
@@ -1,14 +1,23 @@
|
|
|
1
|
-
import { ResponseError } from "../utils/Response.js";
|
|
2
|
-
import
|
|
1
|
+
import { ResponseError, ResponseOk } from "../utils/Response.js";
|
|
2
|
+
import "../queries/apiKey/ApiKeyQuery.js";
|
|
3
|
+
import { ConfigurationQuery } from "../queries/configuration/ConfigurationQuery.js";
|
|
4
|
+
import "@contember/database";
|
|
3
5
|
import { ImplementationException } from "../../exceptions.js";
|
|
6
|
+
import "../authorization/PermissionActions.js";
|
|
7
|
+
import "@contember/authorization";
|
|
8
|
+
import "../authorization/PermissionContext.js";
|
|
9
|
+
import "../authorization/PermissionsFactory.js";
|
|
10
|
+
import "@contember/schema";
|
|
4
11
|
import { getPreferredProject } from "./helpers/getPreferredProject.js";
|
|
5
|
-
import "@contember/database";
|
|
6
12
|
import { CreatePersonTokenCommand } from "../commands/personToken/CreatePersonTokenCommand.js";
|
|
7
13
|
import { ResetPasswordCommand } from "../commands/personToken/ResetPasswordCommand.js";
|
|
14
|
+
import { PersonTokenQuery } from "../queries/personToken/PersonTokenQuery.js";
|
|
15
|
+
import { AuthLogService } from "./AuthLogService.js";
|
|
8
16
|
class PasswordResetManager {
|
|
9
|
-
constructor(mailer, projectManager) {
|
|
17
|
+
constructor(mailer, projectManager, passwordStrengthValidator) {
|
|
10
18
|
this.mailer = mailer;
|
|
11
19
|
this.projectManager = projectManager;
|
|
20
|
+
this.passwordStrengthValidator = passwordStrengthValidator;
|
|
12
21
|
}
|
|
13
22
|
async createPasswordResetRequest(dbContext, permissionContext, person, mailOptions = {}) {
|
|
14
23
|
const result = await dbContext.commandBus.execute(CreatePersonTokenCommand.createPasswordResetRequest(person.id));
|
|
@@ -32,11 +41,34 @@ class PasswordResetManager {
|
|
|
32
41
|
);
|
|
33
42
|
}
|
|
34
43
|
async resetPassword(dbContext, token, password) {
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
44
|
+
const config = await dbContext.queryHandler.fetch(new ConfigurationQuery());
|
|
45
|
+
const tokenRow = await dbContext.queryHandler.fetch(PersonTokenQuery.byToken(token, "password_reset"));
|
|
46
|
+
if (!tokenRow) {
|
|
47
|
+
return new ResponseError("TOKEN_NOT_FOUND", "Token not found", {
|
|
48
|
+
[AuthLogService.Key]: new AuthLogService.Bag({})
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
const authLogData = new AuthLogService.Bag({
|
|
52
|
+
personId: tokenRow.person_id,
|
|
53
|
+
tokenId: tokenRow.id
|
|
54
|
+
});
|
|
55
|
+
const weakPassword = await this.passwordStrengthValidator.verify(password, config.password, "PASSWORD_TOO_WEAK");
|
|
56
|
+
if (!weakPassword.ok) {
|
|
57
|
+
return new ResponseError(weakPassword.error, weakPassword.errorMessage, {
|
|
58
|
+
...weakPassword.metadata ?? {},
|
|
59
|
+
[AuthLogService.Key]: authLogData
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
const resetPasswordResult = await dbContext.commandBus.execute(new ResetPasswordCommand(token, password));
|
|
63
|
+
if (!resetPasswordResult.ok) {
|
|
64
|
+
return new ResponseError(resetPasswordResult.error, resetPasswordResult.errorMessage, {
|
|
65
|
+
...resetPasswordResult.metadata ?? {},
|
|
66
|
+
[AuthLogService.Key]: authLogData
|
|
67
|
+
});
|
|
38
68
|
}
|
|
39
|
-
return
|
|
69
|
+
return new ResponseOk({
|
|
70
|
+
[AuthLogService.Key]: authLogData
|
|
71
|
+
});
|
|
40
72
|
}
|
|
41
73
|
}
|
|
42
74
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PasswordResetManager.js","sources":["../../../../../../packages/engine-tenant-api/src/model/service/PasswordResetManager.ts"],"sourcesContent":["import { Response, ResponseError } from '../utils/Response'\nimport {
|
|
1
|
+
{"version":3,"file":"PasswordResetManager.js","sources":["../../../../../../packages/engine-tenant-api/src/model/service/PasswordResetManager.ts"],"sourcesContent":["import { Response, ResponseError, ResponseOk } from '../utils/Response'\nimport { UserMailer } from '../mailing'\nimport { ConfigurationQuery, PersonRow } from '../queries'\nimport { PermissionContext } from '../authorization'\nimport { ProjectManager } from './ProjectManager'\nimport { DatabaseContext } from '../utils'\nimport { ImplementationException } from '../../exceptions'\nimport { getPreferredProject } from './helpers/getPreferredProject'\nimport { CreatePersonTokenCommand, ResetPasswordCommand } from '../commands/personToken'\nimport { PasswordStrengthValidator } from './PasswordStrengthValidator'\nimport { ResetPasswordErrorCode, WeakPasswordReason } from '../../schema'\nimport { PersonTokenQuery } from '../queries/personToken/PersonTokenQuery'\nimport { AuthLogService } from './AuthLogService'\n\ninterface MailOptions {\n\tproject?: string\n\tmailVariant?: string\n}\n\nexport class PasswordResetManager {\n\tconstructor(\n\t\tprivate readonly mailer: UserMailer,\n\t\tprivate readonly projectManager: ProjectManager,\n\t\tprivate readonly passwordStrengthValidator: PasswordStrengthValidator,\n\t) {}\n\n\tpublic async createPasswordResetRequest(\n\t\tdbContext: DatabaseContext,\n\t\tpermissionContext: PermissionContext,\n\t\tperson: PersonRow,\n\t\tmailOptions: MailOptions = {},\n\t): Promise<void> {\n\t\tconst result = await dbContext.commandBus.execute(CreatePersonTokenCommand.createPasswordResetRequest(person.id))\n\t\tconst projects = await this.projectManager.getProjectsByIdentity(dbContext, person.identity_id, permissionContext)\n\t\tconst project = getPreferredProject(projects, mailOptions.project ?? null)\n\t\tif (!person.email) {\n\t\t\tthrow new ImplementationException()\n\t\t}\n\n\t\tawait this.mailer.sendPasswordResetEmail(\n\t\t\tdbContext,\n\t\t\t{\n\t\t\t\temail: person.email,\n\t\t\t\ttoken: result.token,\n\t\t\t\tproject: project?.name,\n\t\t\t\tprojectSlug: project?.slug,\n\t\t\t},\n\t\t\t{\n\t\t\t\tvariant: mailOptions.mailVariant || '',\n\t\t\t\tprojectId: project?.id ?? null,\n\t\t\t},\n\t\t)\n\t}\n\n\tpublic async resetPassword(dbContext: DatabaseContext, token: string, password: string): Promise<ResetPasswordResponse> {\n\t\tconst config = await dbContext.queryHandler.fetch(new ConfigurationQuery())\n\t\tconst tokenRow = await dbContext.queryHandler.fetch(PersonTokenQuery.byToken(token, 'password_reset'))\n\t\tif (!tokenRow) {\n\t\t\treturn new ResponseError('TOKEN_NOT_FOUND', 'Token not found', {\n\t\t\t\t[AuthLogService.Key]: new AuthLogService.Bag({}),\n\t\t\t})\n\t\t}\n\n\t\tconst authLogData = new AuthLogService.Bag({\n\t\t\tpersonId: tokenRow.person_id,\n\t\t\ttokenId: tokenRow.id,\n\t\t})\n\t\tconst weakPassword = await this.passwordStrengthValidator.verify(password, config.password, 'PASSWORD_TOO_WEAK')\n\t\tif (!weakPassword.ok) {\n\t\t\treturn new ResponseError(weakPassword.error, weakPassword.errorMessage, {\n\t\t\t\t...weakPassword.metadata ?? {},\n\t\t\t\t[AuthLogService.Key]: authLogData,\n\t\t\t})\n\t\t}\n\t\tconst resetPasswordResult = await dbContext.commandBus.execute(new ResetPasswordCommand(token, password))\n\t\tif (!resetPasswordResult.ok) {\n\t\t\treturn new ResponseError(resetPasswordResult.error, resetPasswordResult.errorMessage, {\n\t\t\t\t...resetPasswordResult.metadata ?? {},\n\t\t\t\t[AuthLogService.Key]: authLogData,\n\t\t\t})\n\t\t}\n\t\treturn new ResponseOk({\n\t\t\t[AuthLogService.Key]: authLogData,\n\t\t})\n\t}\n}\n\nexport type ResetPasswordResponse = Response<\n\t{\n\t\t[AuthLogService.Key]: AuthLogService.Bag\n\t},\n\tResetPasswordErrorCode,\n\t{\n\t\tweakPasswordReasons?: WeakPasswordReason[]\n\t\t[AuthLogService.Key]: AuthLogService.Bag\n\t}\n>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAmBO,MAAM,qBAAqB;AAAA,EACjC,YACkB,QACA,gBACA,2BAChB;AAHgB,SAAA,SAAA;AACA,SAAA,iBAAA;AACA,SAAA,4BAAA;AAAA,EACf;AAAA,EAEH,MAAa,2BACZ,WACA,mBACA,QACA,cAA2B,CAAA,GACX;AAChB,UAAM,SAAS,MAAM,UAAU,WAAW,QAAQ,yBAAyB,2BAA2B,OAAO,EAAE,CAAC;AAChH,UAAM,WAAW,MAAM,KAAK,eAAe,sBAAsB,WAAW,OAAO,aAAa,iBAAiB;AACjH,UAAM,UAAU,oBAAoB,UAAU,YAAY,WAAW,IAAI;AACzE,QAAI,CAAC,OAAO,OAAO;AAClB,YAAM,IAAI,wBAAA;AAAA,IACX;AAEA,UAAM,KAAK,OAAO;AAAA,MACjB;AAAA,MACA;AAAA,QACC,OAAO,OAAO;AAAA,QACd,OAAO,OAAO;AAAA,QACd,SAAS,SAAS;AAAA,QAClB,aAAa,SAAS;AAAA,MAAA;AAAA,MAEvB;AAAA,QACC,SAAS,YAAY,eAAe;AAAA,QACpC,WAAW,SAAS,MAAM;AAAA,MAAA;AAAA,IAC3B;AAAA,EAEF;AAAA,EAEA,MAAa,cAAc,WAA4B,OAAe,UAAkD;AACvH,UAAM,SAAS,MAAM,UAAU,aAAa,MAAM,IAAI,oBAAoB;AAC1E,UAAM,WAAW,MAAM,UAAU,aAAa,MAAM,iBAAiB,QAAQ,OAAO,gBAAgB,CAAC;AACrG,QAAI,CAAC,UAAU;AACd,aAAO,IAAI,cAAc,mBAAmB,mBAAmB;AAAA,QAC9D,CAAC,eAAe,GAAG,GAAG,IAAI,eAAe,IAAI,CAAA,CAAE;AAAA,MAAA,CAC/C;AAAA,IACF;AAEA,UAAM,cAAc,IAAI,eAAe,IAAI;AAAA,MAC1C,UAAU,SAAS;AAAA,MACnB,SAAS,SAAS;AAAA,IAAA,CAClB;AACD,UAAM,eAAe,MAAM,KAAK,0BAA0B,OAAO,UAAU,OAAO,UAAU,mBAAmB;AAC/G,QAAI,CAAC,aAAa,IAAI;AACrB,aAAO,IAAI,cAAc,aAAa,OAAO,aAAa,cAAc;AAAA,QACvE,GAAG,aAAa,YAAY,CAAA;AAAA,QAC5B,CAAC,eAAe,GAAG,GAAG;AAAA,MAAA,CACtB;AAAA,IACF;AACA,UAAM,sBAAsB,MAAM,UAAU,WAAW,QAAQ,IAAI,qBAAqB,OAAO,QAAQ,CAAC;AACxG,QAAI,CAAC,oBAAoB,IAAI;AAC5B,aAAO,IAAI,cAAc,oBAAoB,OAAO,oBAAoB,cAAc;AAAA,QACrF,GAAG,oBAAoB,YAAY,CAAA;AAAA,QACnC,CAAC,eAAe,GAAG,GAAG;AAAA,MAAA,CACtB;AAAA,IACF;AACA,WAAO,IAAI,WAAW;AAAA,MACrB,CAAC,eAAe,GAAG,GAAG;AAAA,IAAA,CACtB;AAAA,EACF;AACD;"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const blacklist = require("../utils/blacklist.cjs");
|
|
4
|
+
const Response = require("../utils/Response.cjs");
|
|
5
|
+
class PasswordStrengthValidator {
|
|
6
|
+
async verify(password, passwordConfig, errorCode) {
|
|
7
|
+
const failureReasons = [];
|
|
8
|
+
const developerMessage = [];
|
|
9
|
+
if (password.length < passwordConfig.minLength) {
|
|
10
|
+
failureReasons.push("TOO_SHORT");
|
|
11
|
+
developerMessage.push(`Password is too short. Minimum length is ${passwordConfig.minLength}.`);
|
|
12
|
+
}
|
|
13
|
+
if (passwordConfig.requireUppercase > 0 && (password.match(/[A-Z]/g) || []).length < passwordConfig.requireUppercase) {
|
|
14
|
+
failureReasons.push("MISSING_UPPERCASE");
|
|
15
|
+
developerMessage.push(
|
|
16
|
+
`Password must contain at least ${passwordConfig.requireUppercase} uppercase letter${passwordConfig.requireUppercase > 1 ? "s" : ""}.`
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
if (passwordConfig.requireLowercase > 0 && (password.match(/[a-z]/g) || []).length < passwordConfig.requireLowercase) {
|
|
20
|
+
failureReasons.push("MISSING_LOWERCASE");
|
|
21
|
+
developerMessage.push(
|
|
22
|
+
`Password must contain at least ${passwordConfig.requireLowercase} lowercase letter${passwordConfig.requireLowercase > 1 ? "s" : ""}.`
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
if (passwordConfig.requireDigit > 0 && (password.match(/\d/g) || []).length < passwordConfig.requireDigit) {
|
|
26
|
+
failureReasons.push("MISSING_DIGIT");
|
|
27
|
+
developerMessage.push(`Password must contain at least ${passwordConfig.requireDigit} digit${passwordConfig.requireDigit > 1 ? "s" : ""}.`);
|
|
28
|
+
}
|
|
29
|
+
if (passwordConfig.requireSpecial > 0 && (password.match(/[!@#$%^&*(),.?":{}|<>]/g) || []).length < passwordConfig.requireSpecial) {
|
|
30
|
+
failureReasons.push("MISSING_SPECIAL");
|
|
31
|
+
developerMessage.push(
|
|
32
|
+
`Password must contain at least ${passwordConfig.requireSpecial} special character${passwordConfig.requireSpecial > 1 ? "s" : ""}.`
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
if (passwordConfig.pattern && !new RegExp(passwordConfig.pattern).test(password)) {
|
|
36
|
+
failureReasons.push("INVALID_PATTERN");
|
|
37
|
+
developerMessage.push(`Password does not match the required pattern: ${passwordConfig.pattern}.`);
|
|
38
|
+
}
|
|
39
|
+
if (passwordConfig.checkBlacklist && this.isBlacklisted(password.toLowerCase())) {
|
|
40
|
+
failureReasons.push("BLACKLISTED");
|
|
41
|
+
developerMessage.push(`Password is blacklisted.`);
|
|
42
|
+
}
|
|
43
|
+
if (failureReasons.length > 0) {
|
|
44
|
+
return new Response.ResponseError(errorCode, developerMessage.join(" "), {
|
|
45
|
+
weakPasswordReasons: failureReasons
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return new Response.ResponseOk(null);
|
|
49
|
+
}
|
|
50
|
+
isBlacklisted(password) {
|
|
51
|
+
return blacklist.blacklist.has(password) || blacklist.blacklist.has(this.decodeLeetspeak(password));
|
|
52
|
+
}
|
|
53
|
+
decodeLeetspeak(input) {
|
|
54
|
+
const leetspeakMap = {
|
|
55
|
+
"@": "a",
|
|
56
|
+
"$": "s",
|
|
57
|
+
"0": "o",
|
|
58
|
+
"1": "l",
|
|
59
|
+
"3": "e",
|
|
60
|
+
"7": "t",
|
|
61
|
+
"!": "i"
|
|
62
|
+
};
|
|
63
|
+
return input.split("").map((char) => {
|
|
64
|
+
return leetspeakMap[char] || char;
|
|
65
|
+
}).join("");
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.PasswordStrengthValidator = PasswordStrengthValidator;
|
|
69
|
+
//# sourceMappingURL=PasswordStrengthValidator.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasswordStrengthValidator.cjs","sources":["../../../../../../packages/engine-tenant-api/src/model/service/PasswordStrengthValidator.ts"],"sourcesContent":["import { Config } from '../type/Config'\nimport { blacklist } from '../utils/blacklist'\nimport { WeakPasswordReason } from '../../schema'\nimport { Response, ResponseError, ResponseOk } from '../utils/Response'\n\nexport class PasswordStrengthValidator {\n\tpublic async verify<const Code extends string>(\n\t\tpassword: string,\n\t\tpasswordConfig: Config['password'],\n\t\terrorCode: Code,\n\t): Promise<\n\t\t| ResponseOk<null>\n\t\t| ResponseError<Code, {\n\t\t\tweakPasswordReasons: WeakPasswordReason[]\n\t\t}>\n\t> {\n\t\tconst failureReasons: WeakPasswordReason[] = []\n\t\tconst developerMessage: string[] = []\n\n\t\tif (password.length < passwordConfig.minLength) {\n\t\t\tfailureReasons.push('TOO_SHORT')\n\t\t\tdeveloperMessage.push(`Password is too short. Minimum length is ${passwordConfig.minLength}.`)\n\t\t}\n\n\t\tif (passwordConfig.requireUppercase > 0 && (password.match(/[A-Z]/g) || []).length < passwordConfig.requireUppercase) {\n\t\t\tfailureReasons.push('MISSING_UPPERCASE')\n\t\t\tdeveloperMessage.push(\n\t\t\t\t`Password must contain at least ${passwordConfig.requireUppercase} uppercase letter${passwordConfig.requireUppercase > 1 ? 's' : ''}.`,\n\t\t\t)\n\t\t}\n\n\t\tif (passwordConfig.requireLowercase > 0 && (password.match(/[a-z]/g) || []).length < passwordConfig.requireLowercase) {\n\t\t\tfailureReasons.push('MISSING_LOWERCASE')\n\t\t\tdeveloperMessage.push(\n\t\t\t\t`Password must contain at least ${passwordConfig.requireLowercase} lowercase letter${passwordConfig.requireLowercase > 1 ? 's' : ''}.`,\n\t\t\t)\n\t\t}\n\n\t\tif (passwordConfig.requireDigit > 0 && (password.match(/\\d/g) || []).length < passwordConfig.requireDigit) {\n\t\t\tfailureReasons.push('MISSING_DIGIT')\n\t\t\tdeveloperMessage.push(`Password must contain at least ${passwordConfig.requireDigit} digit${passwordConfig.requireDigit > 1 ? 's' : ''}.`)\n\t\t}\n\n\t\tif (passwordConfig.requireSpecial > 0 && (password.match(/[!@#$%^&*(),.?\":{}|<>]/g) || []).length < passwordConfig.requireSpecial) {\n\t\t\tfailureReasons.push('MISSING_SPECIAL')\n\t\t\tdeveloperMessage.push(\n\t\t\t\t`Password must contain at least ${passwordConfig.requireSpecial} special character${passwordConfig.requireSpecial > 1 ? 's' : ''}.`,\n\t\t\t)\n\t\t}\n\n\t\tif (passwordConfig.pattern && !new RegExp(passwordConfig.pattern).test(password)) {\n\t\t\tfailureReasons.push('INVALID_PATTERN')\n\t\t\tdeveloperMessage.push(`Password does not match the required pattern: ${passwordConfig.pattern}.`)\n\t\t}\n\n\t\tif (passwordConfig.checkBlacklist && this.isBlacklisted(password.toLowerCase())) {\n\t\t\tfailureReasons.push('BLACKLISTED')\n\t\t\tdeveloperMessage.push(`Password is blacklisted.`)\n\t\t}\n\n\t\tif (failureReasons.length > 0) {\n\t\t\treturn new ResponseError(errorCode as any, developerMessage.join(' '), {\n\t\t\t\tweakPasswordReasons: failureReasons,\n\t\t\t})\n\t\t}\n\t\treturn new ResponseOk(null)\n\t}\n\n\tprivate isBlacklisted(password: string): boolean {\n\t\treturn blacklist.has(password) || blacklist.has(this.decodeLeetspeak(password))\n\t}\n\n\tprivate decodeLeetspeak(input: string): string {\n\t\tconst leetspeakMap: { [key: string]: string } = {\n\t\t\t'@': 'a',\n\t\t\t'$': 's',\n\t\t\t'0': 'o',\n\t\t\t'1': 'l',\n\t\t\t'3': 'e',\n\t\t\t'7': 't',\n\t\t\t'!': 'i',\n\t\t}\n\t\treturn input\n\t\t\t.split('')\n\t\t\t.map(char => {\n\t\t\t\treturn leetspeakMap[char] || char\n\t\t\t})\n\t\t\t.join('')\n\t}\n}\n\nnamespace PasswordStrengthValidator {\n\texport type Result =\n\t\t| { ok: true }\n\t\t| { ok: false; reasons: WeakPasswordReason[]; message: string }\n}\n"],"names":["ResponseError","ResponseOk","blacklist"],"mappings":";;;;AAKO,MAAM,0BAA0B;AAAA,EACtC,MAAa,OACZ,UACA,gBACA,WAMC;AACD,UAAM,iBAAuC,CAAA;AAC7C,UAAM,mBAA6B,CAAA;AAEnC,QAAI,SAAS,SAAS,eAAe,WAAW;AAC/C,qBAAe,KAAK,WAAW;AAC/B,uBAAiB,KAAK,4CAA4C,eAAe,SAAS,GAAG;AAAA,IAC9F;AAEA,QAAI,eAAe,mBAAmB,MAAM,SAAS,MAAM,QAAQ,KAAK,CAAA,GAAI,SAAS,eAAe,kBAAkB;AACrH,qBAAe,KAAK,mBAAmB;AACvC,uBAAiB;AAAA,QAChB,kCAAkC,eAAe,gBAAgB,oBAAoB,eAAe,mBAAmB,IAAI,MAAM,EAAE;AAAA,MAAA;AAAA,IAErI;AAEA,QAAI,eAAe,mBAAmB,MAAM,SAAS,MAAM,QAAQ,KAAK,CAAA,GAAI,SAAS,eAAe,kBAAkB;AACrH,qBAAe,KAAK,mBAAmB;AACvC,uBAAiB;AAAA,QAChB,kCAAkC,eAAe,gBAAgB,oBAAoB,eAAe,mBAAmB,IAAI,MAAM,EAAE;AAAA,MAAA;AAAA,IAErI;AAEA,QAAI,eAAe,eAAe,MAAM,SAAS,MAAM,KAAK,KAAK,CAAA,GAAI,SAAS,eAAe,cAAc;AAC1G,qBAAe,KAAK,eAAe;AACnC,uBAAiB,KAAK,kCAAkC,eAAe,YAAY,SAAS,eAAe,eAAe,IAAI,MAAM,EAAE,GAAG;AAAA,IAC1I;AAEA,QAAI,eAAe,iBAAiB,MAAM,SAAS,MAAM,yBAAyB,KAAK,CAAA,GAAI,SAAS,eAAe,gBAAgB;AAClI,qBAAe,KAAK,iBAAiB;AACrC,uBAAiB;AAAA,QAChB,kCAAkC,eAAe,cAAc,qBAAqB,eAAe,iBAAiB,IAAI,MAAM,EAAE;AAAA,MAAA;AAAA,IAElI;AAEA,QAAI,eAAe,WAAW,CAAC,IAAI,OAAO,eAAe,OAAO,EAAE,KAAK,QAAQ,GAAG;AACjF,qBAAe,KAAK,iBAAiB;AACrC,uBAAiB,KAAK,iDAAiD,eAAe,OAAO,GAAG;AAAA,IACjG;AAEA,QAAI,eAAe,kBAAkB,KAAK,cAAc,SAAS,YAAA,CAAa,GAAG;AAChF,qBAAe,KAAK,aAAa;AACjC,uBAAiB,KAAK,0BAA0B;AAAA,IACjD;AAEA,QAAI,eAAe,SAAS,GAAG;AAC9B,aAAO,IAAIA,SAAAA,cAAc,WAAkB,iBAAiB,KAAK,GAAG,GAAG;AAAA,QACtE,qBAAqB;AAAA,MAAA,CACrB;AAAA,IACF;AACA,WAAO,IAAIC,SAAAA,WAAW,IAAI;AAAA,EAC3B;AAAA,EAEQ,cAAc,UAA2B;AAChD,WAAOC,UAAAA,UAAU,IAAI,QAAQ,KAAKA,UAAAA,UAAU,IAAI,KAAK,gBAAgB,QAAQ,CAAC;AAAA,EAC/E;AAAA,EAEQ,gBAAgB,OAAuB;AAC9C,UAAM,eAA0C;AAAA,MAC/C,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IAAA;AAEN,WAAO,MACL,MAAM,EAAE,EACR,IAAI,CAAA,SAAQ;AACZ,aAAO,aAAa,IAAI,KAAK;AAAA,IAC9B,CAAC,EACA,KAAK,EAAE;AAAA,EACV;AACD;;"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { blacklist } from "../utils/blacklist.js";
|
|
2
|
+
import { ResponseError, ResponseOk } from "../utils/Response.js";
|
|
3
|
+
class PasswordStrengthValidator {
|
|
4
|
+
async verify(password, passwordConfig, errorCode) {
|
|
5
|
+
const failureReasons = [];
|
|
6
|
+
const developerMessage = [];
|
|
7
|
+
if (password.length < passwordConfig.minLength) {
|
|
8
|
+
failureReasons.push("TOO_SHORT");
|
|
9
|
+
developerMessage.push(`Password is too short. Minimum length is ${passwordConfig.minLength}.`);
|
|
10
|
+
}
|
|
11
|
+
if (passwordConfig.requireUppercase > 0 && (password.match(/[A-Z]/g) || []).length < passwordConfig.requireUppercase) {
|
|
12
|
+
failureReasons.push("MISSING_UPPERCASE");
|
|
13
|
+
developerMessage.push(
|
|
14
|
+
`Password must contain at least ${passwordConfig.requireUppercase} uppercase letter${passwordConfig.requireUppercase > 1 ? "s" : ""}.`
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
if (passwordConfig.requireLowercase > 0 && (password.match(/[a-z]/g) || []).length < passwordConfig.requireLowercase) {
|
|
18
|
+
failureReasons.push("MISSING_LOWERCASE");
|
|
19
|
+
developerMessage.push(
|
|
20
|
+
`Password must contain at least ${passwordConfig.requireLowercase} lowercase letter${passwordConfig.requireLowercase > 1 ? "s" : ""}.`
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
if (passwordConfig.requireDigit > 0 && (password.match(/\d/g) || []).length < passwordConfig.requireDigit) {
|
|
24
|
+
failureReasons.push("MISSING_DIGIT");
|
|
25
|
+
developerMessage.push(`Password must contain at least ${passwordConfig.requireDigit} digit${passwordConfig.requireDigit > 1 ? "s" : ""}.`);
|
|
26
|
+
}
|
|
27
|
+
if (passwordConfig.requireSpecial > 0 && (password.match(/[!@#$%^&*(),.?":{}|<>]/g) || []).length < passwordConfig.requireSpecial) {
|
|
28
|
+
failureReasons.push("MISSING_SPECIAL");
|
|
29
|
+
developerMessage.push(
|
|
30
|
+
`Password must contain at least ${passwordConfig.requireSpecial} special character${passwordConfig.requireSpecial > 1 ? "s" : ""}.`
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
if (passwordConfig.pattern && !new RegExp(passwordConfig.pattern).test(password)) {
|
|
34
|
+
failureReasons.push("INVALID_PATTERN");
|
|
35
|
+
developerMessage.push(`Password does not match the required pattern: ${passwordConfig.pattern}.`);
|
|
36
|
+
}
|
|
37
|
+
if (passwordConfig.checkBlacklist && this.isBlacklisted(password.toLowerCase())) {
|
|
38
|
+
failureReasons.push("BLACKLISTED");
|
|
39
|
+
developerMessage.push(`Password is blacklisted.`);
|
|
40
|
+
}
|
|
41
|
+
if (failureReasons.length > 0) {
|
|
42
|
+
return new ResponseError(errorCode, developerMessage.join(" "), {
|
|
43
|
+
weakPasswordReasons: failureReasons
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
return new ResponseOk(null);
|
|
47
|
+
}
|
|
48
|
+
isBlacklisted(password) {
|
|
49
|
+
return blacklist.has(password) || blacklist.has(this.decodeLeetspeak(password));
|
|
50
|
+
}
|
|
51
|
+
decodeLeetspeak(input) {
|
|
52
|
+
const leetspeakMap = {
|
|
53
|
+
"@": "a",
|
|
54
|
+
"$": "s",
|
|
55
|
+
"0": "o",
|
|
56
|
+
"1": "l",
|
|
57
|
+
"3": "e",
|
|
58
|
+
"7": "t",
|
|
59
|
+
"!": "i"
|
|
60
|
+
};
|
|
61
|
+
return input.split("").map((char) => {
|
|
62
|
+
return leetspeakMap[char] || char;
|
|
63
|
+
}).join("");
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export {
|
|
67
|
+
PasswordStrengthValidator
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=PasswordStrengthValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasswordStrengthValidator.js","sources":["../../../../../../packages/engine-tenant-api/src/model/service/PasswordStrengthValidator.ts"],"sourcesContent":["import { Config } from '../type/Config'\nimport { blacklist } from '../utils/blacklist'\nimport { WeakPasswordReason } from '../../schema'\nimport { Response, ResponseError, ResponseOk } from '../utils/Response'\n\nexport class PasswordStrengthValidator {\n\tpublic async verify<const Code extends string>(\n\t\tpassword: string,\n\t\tpasswordConfig: Config['password'],\n\t\terrorCode: Code,\n\t): Promise<\n\t\t| ResponseOk<null>\n\t\t| ResponseError<Code, {\n\t\t\tweakPasswordReasons: WeakPasswordReason[]\n\t\t}>\n\t> {\n\t\tconst failureReasons: WeakPasswordReason[] = []\n\t\tconst developerMessage: string[] = []\n\n\t\tif (password.length < passwordConfig.minLength) {\n\t\t\tfailureReasons.push('TOO_SHORT')\n\t\t\tdeveloperMessage.push(`Password is too short. Minimum length is ${passwordConfig.minLength}.`)\n\t\t}\n\n\t\tif (passwordConfig.requireUppercase > 0 && (password.match(/[A-Z]/g) || []).length < passwordConfig.requireUppercase) {\n\t\t\tfailureReasons.push('MISSING_UPPERCASE')\n\t\t\tdeveloperMessage.push(\n\t\t\t\t`Password must contain at least ${passwordConfig.requireUppercase} uppercase letter${passwordConfig.requireUppercase > 1 ? 's' : ''}.`,\n\t\t\t)\n\t\t}\n\n\t\tif (passwordConfig.requireLowercase > 0 && (password.match(/[a-z]/g) || []).length < passwordConfig.requireLowercase) {\n\t\t\tfailureReasons.push('MISSING_LOWERCASE')\n\t\t\tdeveloperMessage.push(\n\t\t\t\t`Password must contain at least ${passwordConfig.requireLowercase} lowercase letter${passwordConfig.requireLowercase > 1 ? 's' : ''}.`,\n\t\t\t)\n\t\t}\n\n\t\tif (passwordConfig.requireDigit > 0 && (password.match(/\\d/g) || []).length < passwordConfig.requireDigit) {\n\t\t\tfailureReasons.push('MISSING_DIGIT')\n\t\t\tdeveloperMessage.push(`Password must contain at least ${passwordConfig.requireDigit} digit${passwordConfig.requireDigit > 1 ? 's' : ''}.`)\n\t\t}\n\n\t\tif (passwordConfig.requireSpecial > 0 && (password.match(/[!@#$%^&*(),.?\":{}|<>]/g) || []).length < passwordConfig.requireSpecial) {\n\t\t\tfailureReasons.push('MISSING_SPECIAL')\n\t\t\tdeveloperMessage.push(\n\t\t\t\t`Password must contain at least ${passwordConfig.requireSpecial} special character${passwordConfig.requireSpecial > 1 ? 's' : ''}.`,\n\t\t\t)\n\t\t}\n\n\t\tif (passwordConfig.pattern && !new RegExp(passwordConfig.pattern).test(password)) {\n\t\t\tfailureReasons.push('INVALID_PATTERN')\n\t\t\tdeveloperMessage.push(`Password does not match the required pattern: ${passwordConfig.pattern}.`)\n\t\t}\n\n\t\tif (passwordConfig.checkBlacklist && this.isBlacklisted(password.toLowerCase())) {\n\t\t\tfailureReasons.push('BLACKLISTED')\n\t\t\tdeveloperMessage.push(`Password is blacklisted.`)\n\t\t}\n\n\t\tif (failureReasons.length > 0) {\n\t\t\treturn new ResponseError(errorCode as any, developerMessage.join(' '), {\n\t\t\t\tweakPasswordReasons: failureReasons,\n\t\t\t})\n\t\t}\n\t\treturn new ResponseOk(null)\n\t}\n\n\tprivate isBlacklisted(password: string): boolean {\n\t\treturn blacklist.has(password) || blacklist.has(this.decodeLeetspeak(password))\n\t}\n\n\tprivate decodeLeetspeak(input: string): string {\n\t\tconst leetspeakMap: { [key: string]: string } = {\n\t\t\t'@': 'a',\n\t\t\t'$': 's',\n\t\t\t'0': 'o',\n\t\t\t'1': 'l',\n\t\t\t'3': 'e',\n\t\t\t'7': 't',\n\t\t\t'!': 'i',\n\t\t}\n\t\treturn input\n\t\t\t.split('')\n\t\t\t.map(char => {\n\t\t\t\treturn leetspeakMap[char] || char\n\t\t\t})\n\t\t\t.join('')\n\t}\n}\n\nnamespace PasswordStrengthValidator {\n\texport type Result =\n\t\t| { ok: true }\n\t\t| { ok: false; reasons: WeakPasswordReason[]; message: string }\n}\n"],"names":[],"mappings":";;AAKO,MAAM,0BAA0B;AAAA,EACtC,MAAa,OACZ,UACA,gBACA,WAMC;AACD,UAAM,iBAAuC,CAAA;AAC7C,UAAM,mBAA6B,CAAA;AAEnC,QAAI,SAAS,SAAS,eAAe,WAAW;AAC/C,qBAAe,KAAK,WAAW;AAC/B,uBAAiB,KAAK,4CAA4C,eAAe,SAAS,GAAG;AAAA,IAC9F;AAEA,QAAI,eAAe,mBAAmB,MAAM,SAAS,MAAM,QAAQ,KAAK,CAAA,GAAI,SAAS,eAAe,kBAAkB;AACrH,qBAAe,KAAK,mBAAmB;AACvC,uBAAiB;AAAA,QAChB,kCAAkC,eAAe,gBAAgB,oBAAoB,eAAe,mBAAmB,IAAI,MAAM,EAAE;AAAA,MAAA;AAAA,IAErI;AAEA,QAAI,eAAe,mBAAmB,MAAM,SAAS,MAAM,QAAQ,KAAK,CAAA,GAAI,SAAS,eAAe,kBAAkB;AACrH,qBAAe,KAAK,mBAAmB;AACvC,uBAAiB;AAAA,QAChB,kCAAkC,eAAe,gBAAgB,oBAAoB,eAAe,mBAAmB,IAAI,MAAM,EAAE;AAAA,MAAA;AAAA,IAErI;AAEA,QAAI,eAAe,eAAe,MAAM,SAAS,MAAM,KAAK,KAAK,CAAA,GAAI,SAAS,eAAe,cAAc;AAC1G,qBAAe,KAAK,eAAe;AACnC,uBAAiB,KAAK,kCAAkC,eAAe,YAAY,SAAS,eAAe,eAAe,IAAI,MAAM,EAAE,GAAG;AAAA,IAC1I;AAEA,QAAI,eAAe,iBAAiB,MAAM,SAAS,MAAM,yBAAyB,KAAK,CAAA,GAAI,SAAS,eAAe,gBAAgB;AAClI,qBAAe,KAAK,iBAAiB;AACrC,uBAAiB;AAAA,QAChB,kCAAkC,eAAe,cAAc,qBAAqB,eAAe,iBAAiB,IAAI,MAAM,EAAE;AAAA,MAAA;AAAA,IAElI;AAEA,QAAI,eAAe,WAAW,CAAC,IAAI,OAAO,eAAe,OAAO,EAAE,KAAK,QAAQ,GAAG;AACjF,qBAAe,KAAK,iBAAiB;AACrC,uBAAiB,KAAK,iDAAiD,eAAe,OAAO,GAAG;AAAA,IACjG;AAEA,QAAI,eAAe,kBAAkB,KAAK,cAAc,SAAS,YAAA,CAAa,GAAG;AAChF,qBAAe,KAAK,aAAa;AACjC,uBAAiB,KAAK,0BAA0B;AAAA,IACjD;AAEA,QAAI,eAAe,SAAS,GAAG;AAC9B,aAAO,IAAI,cAAc,WAAkB,iBAAiB,KAAK,GAAG,GAAG;AAAA,QACtE,qBAAqB;AAAA,MAAA,CACrB;AAAA,IACF;AACA,WAAO,IAAI,WAAW,IAAI;AAAA,EAC3B;AAAA,EAEQ,cAAc,UAA2B;AAChD,WAAO,UAAU,IAAI,QAAQ,KAAK,UAAU,IAAI,KAAK,gBAAgB,QAAQ,CAAC;AAAA,EAC/E;AAAA,EAEQ,gBAAgB,OAAuB;AAC9C,UAAM,eAA0C;AAAA,MAC/C,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IAAA;AAEN,WAAO,MACL,MAAM,EAAE,EACR,IAAI,CAAA,SAAQ;AACZ,aAAO,aAAa,IAAI,KAAK;AAAA,IAC9B,CAAC,EACA,KAAK,EAAE;AAAA,EACV;AACD;"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
require("../queries/apiKey/ApiKeyQuery.cjs");
|
|
4
|
+
const ConfigurationQuery = require("../queries/configuration/ConfigurationQuery.cjs");
|
|
4
5
|
require("@contember/database");
|
|
5
6
|
const exceptions = require("../../exceptions.cjs");
|
|
6
7
|
const PersonQuery = require("../queries/person/PersonQuery.cjs");
|
|
@@ -16,30 +17,45 @@ const CreatePersonTokenCommand = require("../commands/personToken/CreatePersonTo
|
|
|
16
17
|
const InvalidateTokenCommand = require("../commands/personToken/InvalidateTokenCommand.cjs");
|
|
17
18
|
const IncreaseOtpAttemptCommand = require("../commands/personToken/IncreaseOtpAttemptCommand.cjs");
|
|
18
19
|
const PersonTokenQuery = require("../queries/personToken/PersonTokenQuery.cjs");
|
|
19
|
-
const
|
|
20
|
+
const token = require("../utils/token.cjs");
|
|
20
21
|
const getPreferredProject = require("./helpers/getPreferredProject.cjs");
|
|
22
|
+
const AuthLogService = require("./AuthLogService.cjs");
|
|
23
|
+
const interval = require("../utils/interval.cjs");
|
|
21
24
|
class PasswordlessSignInManager {
|
|
22
|
-
constructor(apiKeyManager,
|
|
25
|
+
constructor(apiKeyManager, mailer, projectManager, otpAuthenticator) {
|
|
23
26
|
this.apiKeyManager = apiKeyManager;
|
|
24
|
-
this.configurationManager = configurationManager;
|
|
25
27
|
this.mailer = mailer;
|
|
26
28
|
this.projectManager = projectManager;
|
|
27
29
|
this.otpAuthenticator = otpAuthenticator;
|
|
28
30
|
}
|
|
29
31
|
async initSignInPasswordless({ db, permissionContext, mailVariant, mailProject, email }) {
|
|
30
32
|
return db.transaction(async (db2) => {
|
|
31
|
-
const configuration = await
|
|
33
|
+
const configuration = await db2.queryHandler.fetch(new ConfigurationQuery.ConfigurationQuery());
|
|
32
34
|
if (configuration.passwordless.enabled === "never") {
|
|
33
|
-
return new Response.ResponseError("PASSWORDLESS_DISABLED", "Passwordless sign-in is disabled"
|
|
35
|
+
return new Response.ResponseError("PASSWORDLESS_DISABLED", "Passwordless sign-in is disabled", {
|
|
36
|
+
[AuthLogService.AuthLogService.Key]: new AuthLogService.AuthLogService.Bag({})
|
|
37
|
+
});
|
|
34
38
|
}
|
|
35
39
|
const person = await db2.queryHandler.fetch(PersonQuery.PersonQuery.byEmail(email));
|
|
36
40
|
if (!person) {
|
|
37
|
-
return new Response.ResponseError("PERSON_NOT_FOUND", `Person ${email} not found
|
|
41
|
+
return new Response.ResponseError("PERSON_NOT_FOUND", `Person ${email} not found`, {
|
|
42
|
+
[AuthLogService.AuthLogService.Key]: new AuthLogService.AuthLogService.Bag({
|
|
43
|
+
personInput: email
|
|
44
|
+
})
|
|
45
|
+
});
|
|
38
46
|
}
|
|
39
47
|
if (!this.isEnabled(configuration.passwordless.enabled, person.passwordless_enabled)) {
|
|
40
|
-
return new Response.ResponseError("PASSWORDLESS_DISABLED", "Passwordless sign-in is disabled for this person"
|
|
48
|
+
return new Response.ResponseError("PASSWORDLESS_DISABLED", "Passwordless sign-in is disabled for this person", {
|
|
49
|
+
[AuthLogService.AuthLogService.Key]: new AuthLogService.AuthLogService.Bag({
|
|
50
|
+
personInput: email,
|
|
51
|
+
personId: person.id
|
|
52
|
+
})
|
|
53
|
+
});
|
|
41
54
|
}
|
|
42
|
-
const createTokenCommand = CreatePersonTokenCommand.CreatePersonTokenCommand.createPasswordlessRequest(
|
|
55
|
+
const createTokenCommand = CreatePersonTokenCommand.CreatePersonTokenCommand.createPasswordlessRequest(
|
|
56
|
+
person.id,
|
|
57
|
+
interval.intervalToSeconds(configuration.passwordless.expiration) / 60
|
|
58
|
+
);
|
|
43
59
|
const result = await db2.commandBus.execute(createTokenCommand);
|
|
44
60
|
const url = this.formatUrl(configuration.passwordless.url ?? null, result.token, result.id, email) ?? void 0;
|
|
45
61
|
const projects = await this.projectManager.getProjectsByIdentity(db2, person.identity_id, permissionContext);
|
|
@@ -49,30 +65,40 @@ class PasswordlessSignInManager {
|
|
|
49
65
|
token: result.token,
|
|
50
66
|
url,
|
|
51
67
|
project: project?.name,
|
|
52
|
-
projectSlug: project?.slug
|
|
68
|
+
projectSlug: project?.slug,
|
|
69
|
+
requestId: result.id
|
|
53
70
|
}, {
|
|
54
71
|
variant: mailVariant || "",
|
|
55
72
|
projectId: project?.id ?? null
|
|
56
73
|
});
|
|
57
|
-
return new Response.ResponseOk({
|
|
74
|
+
return new Response.ResponseOk({
|
|
75
|
+
requestId: result.id,
|
|
76
|
+
expiresAt: result.expiresAt,
|
|
77
|
+
person,
|
|
78
|
+
[AuthLogService.AuthLogService.Key]: new AuthLogService.AuthLogService.Bag({
|
|
79
|
+
personInput: email,
|
|
80
|
+
personId: person.id,
|
|
81
|
+
tokenId: result.id
|
|
82
|
+
})
|
|
83
|
+
});
|
|
58
84
|
});
|
|
59
85
|
}
|
|
60
|
-
formatUrl(url,
|
|
86
|
+
formatUrl(url, token2, requestId, email) {
|
|
61
87
|
if (!url) {
|
|
62
88
|
return null;
|
|
63
89
|
}
|
|
64
90
|
const urlObj = new URL(url);
|
|
65
|
-
urlObj.searchParams.set("token",
|
|
91
|
+
urlObj.searchParams.set("token", token2);
|
|
66
92
|
urlObj.searchParams.set("request_id", requestId);
|
|
67
93
|
urlObj.searchParams.set("email", email);
|
|
68
94
|
return urlObj.toString();
|
|
69
95
|
}
|
|
70
|
-
async signInPasswordless({ db, expiration, token, requestId, mfaOtp, validationType }) {
|
|
96
|
+
async signInPasswordless({ db, expiration, token: token$1, requestId, mfaOtp, validationType }) {
|
|
71
97
|
return db.transaction(async (db2) => {
|
|
72
98
|
const tokenResult = await db2.queryHandler.fetch(PersonTokenQuery.PersonTokenQuery.byId(requestId, "passwordless"));
|
|
73
|
-
const tokenValidationResult =
|
|
99
|
+
const tokenValidationResult = token.validateToken({
|
|
74
100
|
entry: tokenResult,
|
|
75
|
-
token,
|
|
101
|
+
token: token$1,
|
|
76
102
|
now: db2.providers.now(),
|
|
77
103
|
validationType
|
|
78
104
|
});
|
|
@@ -80,42 +106,85 @@ class PasswordlessSignInManager {
|
|
|
80
106
|
if (tokenValidationResult.error === "TOKEN_INVALID" && validationType === "otp") {
|
|
81
107
|
await db2.commandBus.execute(new IncreaseOtpAttemptCommand.IncreaseOtpAttemptCommand(tokenResult.id));
|
|
82
108
|
}
|
|
83
|
-
return tokenValidationResult
|
|
109
|
+
return new Response.ResponseError(tokenValidationResult.error, tokenValidationResult.errorMessage, {
|
|
110
|
+
...tokenValidationResult.metadata ?? {},
|
|
111
|
+
[AuthLogService.AuthLogService.Key]: new AuthLogService.AuthLogService.Bag({
|
|
112
|
+
personId: tokenResult?.person_id,
|
|
113
|
+
tokenId: tokenResult?.id
|
|
114
|
+
})
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
if (!tokenResult) {
|
|
118
|
+
throw new exceptions.ImplementationException();
|
|
84
119
|
}
|
|
85
120
|
const personRow = await db2.queryHandler.fetch(PersonQuery.PersonQuery.byId(tokenValidationResult.result.person_id));
|
|
86
121
|
if (!personRow) {
|
|
87
122
|
throw new exceptions.ImplementationException();
|
|
88
123
|
}
|
|
89
124
|
if (personRow.disabled_at !== null) {
|
|
90
|
-
return new Response.ResponseError("PERSON_DISABLED", `Person is disabled
|
|
125
|
+
return new Response.ResponseError("PERSON_DISABLED", `Person is disabled`, {
|
|
126
|
+
[AuthLogService.AuthLogService.Key]: new AuthLogService.AuthLogService.Bag({
|
|
127
|
+
personId: personRow.id,
|
|
128
|
+
tokenId: tokenResult?.id
|
|
129
|
+
})
|
|
130
|
+
});
|
|
91
131
|
}
|
|
92
132
|
if (personRow.otp_uri && personRow.otp_activated_at) {
|
|
93
133
|
if (!mfaOtp) {
|
|
94
|
-
return new Response.ResponseError("OTP_REQUIRED", `2FA is enabled. OTP token is required
|
|
134
|
+
return new Response.ResponseError("OTP_REQUIRED", `2FA is enabled. OTP token is required`, {
|
|
135
|
+
[AuthLogService.AuthLogService.Key]: new AuthLogService.AuthLogService.Bag({
|
|
136
|
+
personId: personRow.id,
|
|
137
|
+
tokenId: tokenResult?.id
|
|
138
|
+
})
|
|
139
|
+
});
|
|
95
140
|
}
|
|
96
141
|
if (!this.otpAuthenticator.validate({ uri: personRow.otp_uri }, mfaOtp)) {
|
|
97
|
-
return new Response.ResponseError("INVALID_OTP_TOKEN", "OTP token validation has failed"
|
|
142
|
+
return new Response.ResponseError("INVALID_OTP_TOKEN", "OTP token validation has failed", {
|
|
143
|
+
[AuthLogService.AuthLogService.Key]: new AuthLogService.AuthLogService.Bag({
|
|
144
|
+
personId: personRow.id,
|
|
145
|
+
tokenId: tokenResult?.id
|
|
146
|
+
})
|
|
147
|
+
});
|
|
98
148
|
}
|
|
99
149
|
}
|
|
100
150
|
await db2.commandBus.execute(new InvalidateTokenCommand.InvalidateTokenCommand(tokenValidationResult.result.id));
|
|
101
151
|
const sessionToken = await this.apiKeyManager.createSessionApiKey(db2, personRow.identity_id, expiration);
|
|
102
|
-
return new Response.ResponseOk({
|
|
152
|
+
return new Response.ResponseOk({
|
|
153
|
+
person: personRow,
|
|
154
|
+
token: sessionToken,
|
|
155
|
+
[AuthLogService.AuthLogService.Key]: new AuthLogService.AuthLogService.Bag({
|
|
156
|
+
personId: personRow.id,
|
|
157
|
+
tokenId: tokenResult?.id
|
|
158
|
+
})
|
|
159
|
+
});
|
|
103
160
|
});
|
|
104
161
|
}
|
|
105
|
-
async activatePasswordlessOtp({ db, token, requestId, otpHash }) {
|
|
162
|
+
async activatePasswordlessOtp({ db, token: token$1, requestId, otpHash }) {
|
|
106
163
|
return db.transaction(async (db2) => {
|
|
107
164
|
const tokenResult = await db2.queryHandler.fetch(PersonTokenQuery.PersonTokenQuery.byId(requestId, "passwordless"));
|
|
108
|
-
const tokenValidationResult =
|
|
165
|
+
const tokenValidationResult = token.validateToken({
|
|
109
166
|
entry: tokenResult,
|
|
110
|
-
token,
|
|
167
|
+
token: token$1,
|
|
111
168
|
now: db2.providers.now(),
|
|
112
169
|
validationType: "token"
|
|
113
170
|
});
|
|
114
171
|
if (!tokenValidationResult.ok) {
|
|
115
|
-
return tokenValidationResult
|
|
172
|
+
return new Response.ResponseError(tokenValidationResult.error, tokenValidationResult.errorMessage, {
|
|
173
|
+
...tokenValidationResult.metadata ?? {},
|
|
174
|
+
[AuthLogService.AuthLogService.Key]: new AuthLogService.AuthLogService.Bag({
|
|
175
|
+
personId: tokenResult?.person_id,
|
|
176
|
+
tokenId: tokenResult?.id
|
|
177
|
+
})
|
|
178
|
+
});
|
|
116
179
|
}
|
|
117
180
|
await db2.commandBus.execute(new ActivateOtpCommand.ActivateOtpCommand(tokenValidationResult.result.id, otpHash));
|
|
118
|
-
return new Response.ResponseOk(
|
|
181
|
+
return new Response.ResponseOk({
|
|
182
|
+
person: tokenResult?.person_id,
|
|
183
|
+
[AuthLogService.AuthLogService.Key]: new AuthLogService.AuthLogService.Bag({
|
|
184
|
+
personId: tokenResult?.person_id,
|
|
185
|
+
tokenId: tokenResult?.id
|
|
186
|
+
})
|
|
187
|
+
});
|
|
119
188
|
});
|
|
120
189
|
}
|
|
121
190
|
isEnabled(globalValue, personValue) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PasswordlessSignInManager.cjs","sources":["../../../../../../packages/engine-tenant-api/src/model/service/PasswordlessSignInManager.ts"],"sourcesContent":["import { ApiKeyManager } from './apiKey'\nimport { PersonQuery, PersonRow } from '../queries'\nimport { Response, ResponseError, ResponseOk } from '../utils/Response'\nimport {\n\tActivatePasswordlessOtpErrorCode,\n\tConfigPolicy,\n\tInitSignInPasswordlessErrorCode,\n\tInitSignInPasswordlessResult,\n\tSignInPasswordlessErrorCode,\n} from '../../schema'\nimport { DatabaseContext, validateToken } from '../utils'\nimport { ConfigurationManager } from './ConfigurationManager'\nimport { UserMailer } from '../mailing'\nimport { ActivateOtpCommand, CreatePersonTokenCommand, IncreaseOtpAttemptCommand } from '../commands'\nimport { getPreferredProject } from './helpers/getPreferredProject'\nimport { ProjectManager } from './ProjectManager'\nimport { PermissionContext } from '../authorization'\nimport { PersonTokenQuery } from '../queries/personToken/PersonTokenQuery'\nimport { ImplementationException } from '../../exceptions'\nimport { OtpAuthenticator } from './OtpAuthenticator'\nimport { InvalidateTokenCommand } from '../commands/personToken/InvalidateTokenCommand'\nimport { PersonToken } from '../type'\n\nclass PasswordlessSignInManager {\n\tconstructor(\n\t\tprivate readonly apiKeyManager: ApiKeyManager,\n\t\tprivate readonly configurationManager: ConfigurationManager,\n\t\tprivate readonly mailer: UserMailer,\n\t\tprivate readonly projectManager: ProjectManager,\n\t\tprivate readonly otpAuthenticator: OtpAuthenticator,\n\n\t) {}\n\n\tasync initSignInPasswordless({ db, permissionContext, mailVariant, mailProject, email }: {\n\t\tdb: DatabaseContext\n\t\tpermissionContext: PermissionContext\n\t\temail: string\n\t\tmailVariant?: string\n\t\tmailProject?: string\n\t}): Promise<PasswordlessSignInManager.InitSignInPasswordlessResponse> {\n\t\treturn db.transaction(async (db): Promise<PasswordlessSignInManager.InitSignInPasswordlessResponse> => {\n\t\t\tconst configuration = await this.configurationManager.fetchConfiguration(db)\n\t\t\tif (configuration.passwordless.enabled === 'never') {\n\t\t\t\treturn new ResponseError('PASSWORDLESS_DISABLED', 'Passwordless sign-in is disabled')\n\t\t\t}\n\n\t\t\tconst person = await db.queryHandler.fetch(PersonQuery.byEmail(email))\n\t\t\tif (!person) {\n\t\t\t\treturn new ResponseError('PERSON_NOT_FOUND', `Person ${email} not found`)\n\t\t\t}\n\t\t\tif (!this.isEnabled(configuration.passwordless.enabled, person.passwordless_enabled)) {\n\t\t\t\treturn new ResponseError('PASSWORDLESS_DISABLED', 'Passwordless sign-in is disabled for this person')\n\t\t\t}\n\n\t\t\tconst createTokenCommand = CreatePersonTokenCommand.createPasswordlessRequest(person.id, configuration.passwordless.expirationMinutes)\n\t\t\tconst result = await db.commandBus.execute(createTokenCommand)\n\n\n\t\t\tconst url = this.formatUrl(configuration.passwordless.url ?? null, result.token, result.id, email) ?? undefined\n\n\t\t\tconst projects = await this.projectManager.getProjectsByIdentity(db, person.identity_id, permissionContext)\n\t\t\tconst project = getPreferredProject(projects, mailProject ?? null)\n\n\t\t\tawait this.mailer.sendPasswordlessEmail(db, {\n\t\t\t\temail,\n\t\t\t\ttoken: result.token,\n\t\t\t\turl,\n\t\t\t\tproject: project?.name,\n\t\t\t\tprojectSlug: project?.slug,\n\t\t\t}, {\n\t\t\t\tvariant: mailVariant || '',\n\t\t\t\tprojectId: project?.id ?? null,\n\t\t\t})\n\n\t\t\treturn new ResponseOk({ requestId: result.id, expiresAt: result.expiresAt })\n\t\t})\n\t}\n\n\tprivate formatUrl(url: string | null, token: string, requestId: string, email: string): string | null {\n\t\tif (!url) {\n\t\t\treturn null\n\t\t}\n\t\tconst urlObj = new URL(url)\n\t\turlObj.searchParams.set('token', token)\n\t\turlObj.searchParams.set('request_id', requestId)\n\t\turlObj.searchParams.set('email', email)\n\t\treturn urlObj.toString()\n\t}\n\n\tasync signInPasswordless({ db, expiration, token, requestId, mfaOtp, validationType }: {\n\t\tdb: DatabaseContext\n\t\tvalidationType: PersonToken.ValidationType\n\t\trequestId: string\n\t\ttoken: string\n\t\tmfaOtp?: string\n\t\texpiration?: number\n\t}): Promise<PasswordlessSignInManager.SignInPasswordlessResponse> {\n\t\treturn db.transaction(async (db): Promise<PasswordlessSignInManager.SignInPasswordlessResponse> => {\n\n\t\t\tconst tokenResult = await db.queryHandler.fetch(PersonTokenQuery.byId(requestId, 'passwordless'))\n\t\t\tconst tokenValidationResult = validateToken({\n\t\t\t\tentry: tokenResult,\n\t\t\t\ttoken,\n\t\t\t\tnow: db.providers.now(),\n\t\t\t\tvalidationType,\n\t\t\t})\n\t\t\tif (!tokenValidationResult.ok) {\n\t\t\t\tif (tokenValidationResult.error === 'TOKEN_INVALID' && validationType === 'otp') {\n\t\t\t\t\tawait db.commandBus.execute(new IncreaseOtpAttemptCommand(tokenResult!.id))\n\t\t\t\t}\n\t\t\t\treturn tokenValidationResult\n\t\t\t}\n\t\t\tconst personRow = await db.queryHandler.fetch(PersonQuery.byId(tokenValidationResult.result.person_id))\n\t\t\tif (!personRow) {\n\t\t\t\tthrow new ImplementationException()\n\t\t\t}\n\t\t\tif (personRow.disabled_at !== null) {\n\t\t\t\treturn new ResponseError('PERSON_DISABLED', `Person is disabled`)\n\t\t\t}\n\n\t\t\tif (personRow.otp_uri && personRow.otp_activated_at) {\n\t\t\t\tif (!mfaOtp) {\n\t\t\t\t\treturn new ResponseError('OTP_REQUIRED', `2FA is enabled. OTP token is required`)\n\t\t\t\t}\n\n\t\t\t\tif (!this.otpAuthenticator.validate({ uri: personRow.otp_uri }, mfaOtp)) {\n\t\t\t\t\treturn new ResponseError('INVALID_OTP_TOKEN', 'OTP token validation has failed')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tawait db.commandBus.execute(new InvalidateTokenCommand(tokenValidationResult.result.id))\n\t\t\tconst sessionToken = await this.apiKeyManager.createSessionApiKey(db, personRow.identity_id, expiration)\n\n\t\t\treturn new ResponseOk({ person: personRow, token: sessionToken })\n\t\t})\n\t}\n\n\tasync activatePasswordlessOtp({ db, token, requestId, otpHash }: {\n\t\tdb: DatabaseContext\n\t\trequestId: string\n\t\ttoken: string\n\t\totpHash: string\n\t}): Promise<PasswordlessSignInManager.ActivatePasswordlessOtpResponse> {\n\t\treturn db.transaction(async (db): Promise<PasswordlessSignInManager.ActivatePasswordlessOtpResponse> => {\n\n\t\t\tconst tokenResult = await db.queryHandler.fetch(PersonTokenQuery.byId(requestId, 'passwordless'))\n\t\t\tconst tokenValidationResult = validateToken({\n\t\t\t\tentry: tokenResult,\n\t\t\t\ttoken,\n\t\t\t\tnow: db.providers.now(),\n\t\t\t\tvalidationType: 'token',\n\t\t\t})\n\t\t\tif (!tokenValidationResult.ok) {\n\t\t\t\treturn tokenValidationResult\n\t\t\t}\n\n\t\t\tawait db.commandBus.execute(new ActivateOtpCommand(tokenValidationResult.result.id, otpHash))\n\n\t\t\treturn new ResponseOk(null)\n\t\t})\n\t}\n\n\tprivate isEnabled(globalValue: ConfigPolicy, personValue: boolean | null): boolean {\n\t\tswitch (globalValue) {\n\t\t\tcase 'always':\n\t\t\t\treturn true\n\t\t\tcase 'never':\n\t\t\t\treturn false\n\t\t\tcase 'optIn':\n\t\t\t\treturn personValue === true\n\t\t\tcase 'optOut':\n\t\t\t\treturn personValue !== false\n\t\t}\n\t}\n}\n\nnamespace PasswordlessSignInManager {\n\texport type InitSignInPasswordlessResponse = Response<InitSignInPasswordlessResult, InitSignInPasswordlessErrorCode>\n\n\n\tinterface SignInPasswordlessResult {\n\t\treadonly person: PersonRow\n\t\treadonly token: string\n\t}\n\texport type SignInPasswordlessResponse = Response<SignInPasswordlessResult, SignInPasswordlessErrorCode>\n\n\texport type ActivatePasswordlessOtpResponse = Response<null, ActivatePasswordlessOtpErrorCode>\n}\n\nexport { PasswordlessSignInManager }\n"],"names":["db","ResponseError","PersonQuery","CreatePersonTokenCommand","getPreferredProject","ResponseOk","PersonTokenQuery","validateToken","IncreaseOtpAttemptCommand","ImplementationException","InvalidateTokenCommand","ActivateOtpCommand"],"mappings":";;;;;;;;;;;;;;;;;;;;AAuBA,MAAM,0BAA0B;AAAA,EAC/B,YACkB,eACA,sBACA,QACA,gBACA,kBAEhB;AANgB,SAAA,gBAAA;AACA,SAAA,uBAAA;AACA,SAAA,SAAA;AACA,SAAA,iBAAA;AACA,SAAA,mBAAA;AAAA,EAAA;AAAA,EAIlB,MAAM,uBAAuB,EAAE,IAAI,mBAAmB,aAAa,aAAa,SAMV;AAC9D,WAAA,GAAG,YAAY,OAAOA,QAA0E;AACtG,YAAM,gBAAgB,MAAM,KAAK,qBAAqB,mBAAmBA,GAAE;AACvE,UAAA,cAAc,aAAa,YAAY,SAAS;AAC5C,eAAA,IAAIC,SAAAA,cAAc,yBAAyB,kCAAkC;AAAA,MAAA;AAG/E,YAAA,SAAS,MAAMD,IAAG,aAAa,MAAME,wBAAY,QAAQ,KAAK,CAAC;AACrE,UAAI,CAAC,QAAQ;AACZ,eAAO,IAAID,SAAA,cAAc,oBAAoB,UAAU,KAAK,YAAY;AAAA,MAAA;AAErE,UAAA,CAAC,KAAK,UAAU,cAAc,aAAa,SAAS,OAAO,oBAAoB,GAAG;AAC9E,eAAA,IAAIA,SAAAA,cAAc,yBAAyB,kDAAkD;AAAA,MAAA;AAGrG,YAAM,qBAAqBE,yBAAyB,yBAAA,0BAA0B,OAAO,IAAI,cAAc,aAAa,iBAAiB;AACrI,YAAM,SAAS,MAAMH,IAAG,WAAW,QAAQ,kBAAkB;AAG7D,YAAM,MAAM,KAAK,UAAU,cAAc,aAAa,OAAO,MAAM,OAAO,OAAO,OAAO,IAAI,KAAK,KAAK;AAEhG,YAAA,WAAW,MAAM,KAAK,eAAe,sBAAsBA,KAAI,OAAO,aAAa,iBAAiB;AAC1G,YAAM,UAAUI,oBAAA,oBAAoB,UAAU,eAAe,IAAI;AAE3D,YAAA,KAAK,OAAO,sBAAsBJ,KAAI;AAAA,QAC3C;AAAA,QACA,OAAO,OAAO;AAAA,QACd;AAAA,QACA,SAAS,SAAS;AAAA,QAClB,aAAa,SAAS;AAAA,MAAA,GACpB;AAAA,QACF,SAAS,eAAe;AAAA,QACxB,WAAW,SAAS,MAAM;AAAA,MAAA,CAC1B;AAEM,aAAA,IAAIK,SAAAA,WAAW,EAAE,WAAW,OAAO,IAAI,WAAW,OAAO,WAAW;AAAA,IAAA,CAC3E;AAAA,EAAA;AAAA,EAGM,UAAU,KAAoB,OAAe,WAAmB,OAA8B;AACrG,QAAI,CAAC,KAAK;AACF,aAAA;AAAA,IAAA;AAEF,UAAA,SAAS,IAAI,IAAI,GAAG;AACnB,WAAA,aAAa,IAAI,SAAS,KAAK;AAC/B,WAAA,aAAa,IAAI,cAAc,SAAS;AACxC,WAAA,aAAa,IAAI,SAAS,KAAK;AACtC,WAAO,OAAO,SAAS;AAAA,EAAA;AAAA,EAGxB,MAAM,mBAAmB,EAAE,IAAI,YAAY,OAAO,WAAW,QAAQ,kBAOH;AAC1D,WAAA,GAAG,YAAY,OAAOL,QAAsE;AAE5F,YAAA,cAAc,MAAMA,IAAG,aAAa,MAAMM,iBAAAA,iBAAiB,KAAK,WAAW,cAAc,CAAC;AAChG,YAAM,wBAAwBC,WAAAA,cAAc;AAAA,QAC3C,OAAO;AAAA,QACP;AAAA,QACA,KAAKP,IAAG,UAAU,IAAI;AAAA,QACtB;AAAA,MAAA,CACA;AACG,UAAA,CAAC,sBAAsB,IAAI;AAC9B,YAAI,sBAAsB,UAAU,mBAAmB,mBAAmB,OAAO;AAChF,gBAAMA,IAAG,WAAW,QAAQ,IAAIQ,0BAAAA,0BAA0B,YAAa,EAAE,CAAC;AAAA,QAAA;AAEpE,eAAA;AAAA,MAAA;AAEF,YAAA,YAAY,MAAMR,IAAG,aAAa,MAAME,wBAAY,KAAK,sBAAsB,OAAO,SAAS,CAAC;AACtG,UAAI,CAAC,WAAW;AACf,cAAM,IAAIO,WAAAA,wBAAwB;AAAA,MAAA;AAE/B,UAAA,UAAU,gBAAgB,MAAM;AAC5B,eAAA,IAAIR,SAAc,cAAA,mBAAmB,oBAAoB;AAAA,MAAA;AAG7D,UAAA,UAAU,WAAW,UAAU,kBAAkB;AACpD,YAAI,CAAC,QAAQ;AACL,iBAAA,IAAIA,SAAc,cAAA,gBAAgB,uCAAuC;AAAA,QAAA;AAG7E,YAAA,CAAC,KAAK,iBAAiB,SAAS,EAAE,KAAK,UAAU,WAAW,MAAM,GAAG;AACjE,iBAAA,IAAIA,SAAAA,cAAc,qBAAqB,iCAAiC;AAAA,QAAA;AAAA,MAChF;AAGKD,YAAAA,IAAG,WAAW,QAAQ,IAAIU,8CAAuB,sBAAsB,OAAO,EAAE,CAAC;AACjF,YAAA,eAAe,MAAM,KAAK,cAAc,oBAAoBV,KAAI,UAAU,aAAa,UAAU;AAEvG,aAAO,IAAIK,SAAW,WAAA,EAAE,QAAQ,WAAW,OAAO,cAAc;AAAA,IAAA,CAChE;AAAA,EAAA;AAAA,EAGF,MAAM,wBAAwB,EAAE,IAAI,OAAO,WAAW,WAKiB;AAC/D,WAAA,GAAG,YAAY,OAAOL,QAA2E;AAEjG,YAAA,cAAc,MAAMA,IAAG,aAAa,MAAMM,iBAAAA,iBAAiB,KAAK,WAAW,cAAc,CAAC;AAChG,YAAM,wBAAwBC,WAAAA,cAAc;AAAA,QAC3C,OAAO;AAAA,QACP;AAAA,QACA,KAAKP,IAAG,UAAU,IAAI;AAAA,QACtB,gBAAgB;AAAA,MAAA,CAChB;AACG,UAAA,CAAC,sBAAsB,IAAI;AACvB,eAAA;AAAA,MAAA;AAGFA,YAAAA,IAAG,WAAW,QAAQ,IAAIW,mBAAAA,mBAAmB,sBAAsB,OAAO,IAAI,OAAO,CAAC;AAErF,aAAA,IAAIN,oBAAW,IAAI;AAAA,IAAA,CAC1B;AAAA,EAAA;AAAA,EAGM,UAAU,aAA2B,aAAsC;AAClF,YAAQ,aAAa;AAAA,MACpB,KAAK;AACG,eAAA;AAAA,MACR,KAAK;AACG,eAAA;AAAA,MACR,KAAK;AACJ,eAAO,gBAAgB;AAAA,MACxB,KAAK;AACJ,eAAO,gBAAgB;AAAA,IAAA;AAAA,EACzB;AAEF;;"}
|
|
1
|
+
{"version":3,"file":"PasswordlessSignInManager.cjs","sources":["../../../../../../packages/engine-tenant-api/src/model/service/PasswordlessSignInManager.ts"],"sourcesContent":["import { ApiKeyManager } from './apiKey'\nimport { ConfigurationQuery, PersonQuery, PersonRow } from '../queries'\nimport { Response, ResponseError, ResponseOk } from '../utils/Response'\nimport {\n\tActivatePasswordlessOtpErrorCode,\n\tConfigPolicy,\n\tInitSignInPasswordlessErrorCode,\n\tInitSignInPasswordlessResult,\n\tSignInPasswordlessErrorCode,\n} from '../../schema'\nimport { DatabaseContext, validateToken } from '../utils'\nimport { UserMailer } from '../mailing'\nimport { ActivateOtpCommand, CreatePersonTokenCommand, IncreaseOtpAttemptCommand, InvalidateTokenCommand } from '../commands'\nimport { getPreferredProject } from './helpers/getPreferredProject'\nimport { ProjectManager } from './ProjectManager'\nimport { PermissionContext } from '../authorization'\nimport { PersonTokenQuery } from '../queries/personToken/PersonTokenQuery'\nimport { ImplementationException } from '../../exceptions'\nimport { OtpAuthenticator } from './OtpAuthenticator'\nimport { PersonToken } from '../type'\nimport { AuthLogService } from './AuthLogService'\nimport { intervalToSeconds } from '../utils/interval'\n\nclass PasswordlessSignInManager {\n\tconstructor(\n\t\tprivate readonly apiKeyManager: ApiKeyManager,\n\t\tprivate readonly mailer: UserMailer,\n\t\tprivate readonly projectManager: ProjectManager,\n\t\tprivate readonly otpAuthenticator: OtpAuthenticator,\n\t) {}\n\n\tasync initSignInPasswordless({ db, permissionContext, mailVariant, mailProject, email }: {\n\t\tdb: DatabaseContext\n\t\tpermissionContext: PermissionContext\n\t\temail: string\n\t\tmailVariant?: string\n\t\tmailProject?: string\n\t}): Promise<PasswordlessSignInManager.InitSignInPasswordlessResponse> {\n\t\treturn db.transaction(async (db): Promise<PasswordlessSignInManager.InitSignInPasswordlessResponse> => {\n\t\t\tconst configuration = await db.queryHandler.fetch(new ConfigurationQuery())\n\t\t\tif (configuration.passwordless.enabled === 'never') {\n\t\t\t\treturn new ResponseError('PASSWORDLESS_DISABLED', 'Passwordless sign-in is disabled', {\n\t\t\t\t\t[AuthLogService.Key]: new AuthLogService.Bag({}),\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tconst person = await db.queryHandler.fetch(PersonQuery.byEmail(email))\n\t\t\tif (!person) {\n\t\t\t\treturn new ResponseError('PERSON_NOT_FOUND', `Person ${email} not found`, {\n\t\t\t\t\t[AuthLogService.Key]: new AuthLogService.Bag({\n\t\t\t\t\t\tpersonInput: email,\n\t\t\t\t\t}),\n\t\t\t\t})\n\t\t\t}\n\t\t\tif (!this.isEnabled(configuration.passwordless.enabled, person.passwordless_enabled)) {\n\t\t\t\treturn new ResponseError('PASSWORDLESS_DISABLED', 'Passwordless sign-in is disabled for this person', {\n\t\t\t\t\t[AuthLogService.Key]: new AuthLogService.Bag({\n\t\t\t\t\t\tpersonInput: email,\n\t\t\t\t\t\tpersonId: person.id,\n\t\t\t\t\t}),\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tconst createTokenCommand = CreatePersonTokenCommand.createPasswordlessRequest(\n\t\t\t\tperson.id,\n\t\t\t\tintervalToSeconds(configuration.passwordless.expiration) / 60,\n\t\t\t)\n\t\t\tconst result = await db.commandBus.execute(createTokenCommand)\n\n\t\t\tconst url = this.formatUrl(configuration.passwordless.url ?? null, result.token, result.id, email) ?? undefined\n\n\t\t\tconst projects = await this.projectManager.getProjectsByIdentity(db, person.identity_id, permissionContext)\n\t\t\tconst project = getPreferredProject(projects, mailProject ?? null)\n\n\t\t\tawait this.mailer.sendPasswordlessEmail(db, {\n\t\t\t\temail,\n\t\t\t\ttoken: result.token,\n\t\t\t\turl,\n\t\t\t\tproject: project?.name,\n\t\t\t\tprojectSlug: project?.slug,\n\t\t\t\trequestId: result.id,\n\t\t\t}, {\n\t\t\t\tvariant: mailVariant || '',\n\t\t\t\tprojectId: project?.id ?? null,\n\t\t\t})\n\n\t\t\treturn new ResponseOk({\n\t\t\t\trequestId: result.id,\n\t\t\t\texpiresAt: result.expiresAt,\n\t\t\t\tperson,\n\t\t\t\t[AuthLogService.Key]: new AuthLogService.Bag({\n\t\t\t\t\tpersonInput: email,\n\t\t\t\t\tpersonId: person.id,\n\t\t\t\t\ttokenId: result.id,\n\t\t\t\t}),\n\t\t\t})\n\t\t})\n\t}\n\n\tprivate formatUrl(url: string | null, token: string, requestId: string, email: string): string | null {\n\t\tif (!url) {\n\t\t\treturn null\n\t\t}\n\t\tconst urlObj = new URL(url)\n\t\turlObj.searchParams.set('token', token)\n\t\turlObj.searchParams.set('request_id', requestId)\n\t\turlObj.searchParams.set('email', email)\n\t\treturn urlObj.toString()\n\t}\n\n\tasync signInPasswordless({ db, expiration, token, requestId, mfaOtp, validationType }: {\n\t\tdb: DatabaseContext\n\t\tvalidationType: PersonToken.ValidationType\n\t\trequestId: string\n\t\ttoken: string\n\t\tmfaOtp?: string\n\t\texpiration?: number\n\t}): Promise<PasswordlessSignInManager.SignInPasswordlessResponse> {\n\t\treturn db.transaction(async (db): Promise<PasswordlessSignInManager.SignInPasswordlessResponse> => {\n\t\t\tconst tokenResult = await db.queryHandler.fetch(PersonTokenQuery.byId(requestId, 'passwordless'))\n\t\t\tconst tokenValidationResult = validateToken({\n\t\t\t\tentry: tokenResult,\n\t\t\t\ttoken,\n\t\t\t\tnow: db.providers.now(),\n\t\t\t\tvalidationType,\n\t\t\t})\n\t\t\tif (!tokenValidationResult.ok) {\n\t\t\t\tif (tokenValidationResult.error === 'TOKEN_INVALID' && validationType === 'otp') {\n\t\t\t\t\tawait db.commandBus.execute(new IncreaseOtpAttemptCommand(tokenResult!.id))\n\t\t\t\t}\n\t\t\t\treturn new ResponseError(tokenValidationResult.error, tokenValidationResult.errorMessage, {\n\t\t\t\t\t...tokenValidationResult.metadata ?? {},\n\t\t\t\t\t[AuthLogService.Key]: new AuthLogService.Bag({\n\t\t\t\t\t\tpersonId: tokenResult?.person_id,\n\t\t\t\t\t\ttokenId: tokenResult?.id,\n\t\t\t\t\t}),\n\t\t\t\t})\n\t\t\t}\n\t\t\tif (!tokenResult) {\n\t\t\t\tthrow new ImplementationException()\n\t\t\t}\n\t\t\tconst personRow = await db.queryHandler.fetch(PersonQuery.byId(tokenValidationResult.result.person_id))\n\t\t\tif (!personRow) {\n\t\t\t\tthrow new ImplementationException()\n\t\t\t}\n\t\t\tif (personRow.disabled_at !== null) {\n\t\t\t\treturn new ResponseError('PERSON_DISABLED', `Person is disabled`, {\n\t\t\t\t\t[AuthLogService.Key]: new AuthLogService.Bag({\n\t\t\t\t\t\tpersonId: personRow.id,\n\t\t\t\t\t\ttokenId: tokenResult?.id,\n\t\t\t\t\t}),\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (personRow.otp_uri && personRow.otp_activated_at) {\n\t\t\t\tif (!mfaOtp) {\n\t\t\t\t\treturn new ResponseError('OTP_REQUIRED', `2FA is enabled. OTP token is required`, {\n\t\t\t\t\t\t[AuthLogService.Key]: new AuthLogService.Bag({\n\t\t\t\t\t\t\tpersonId: personRow.id,\n\t\t\t\t\t\t\ttokenId: tokenResult?.id,\n\t\t\t\t\t\t}),\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tif (!this.otpAuthenticator.validate({ uri: personRow.otp_uri }, mfaOtp)) {\n\t\t\t\t\treturn new ResponseError('INVALID_OTP_TOKEN', 'OTP token validation has failed', {\n\t\t\t\t\t\t[AuthLogService.Key]: new AuthLogService.Bag({\n\t\t\t\t\t\t\tpersonId: personRow.id,\n\t\t\t\t\t\t\ttokenId: tokenResult?.id,\n\t\t\t\t\t\t}),\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tawait db.commandBus.execute(new InvalidateTokenCommand(tokenValidationResult.result.id))\n\t\t\tconst sessionToken = await this.apiKeyManager.createSessionApiKey(db, personRow.identity_id, expiration)\n\n\t\t\treturn new ResponseOk({\n\t\t\t\tperson: personRow,\n\t\t\t\ttoken: sessionToken,\n\t\t\t\t[AuthLogService.Key]: new AuthLogService.Bag({\n\t\t\t\t\tpersonId: personRow.id,\n\t\t\t\t\ttokenId: tokenResult?.id,\n\t\t\t\t}),\n\t\t\t})\n\t\t})\n\t}\n\n\tasync activatePasswordlessOtp({ db, token, requestId, otpHash }: {\n\t\tdb: DatabaseContext\n\t\trequestId: string\n\t\ttoken: string\n\t\totpHash: string\n\t}): Promise<PasswordlessSignInManager.ActivatePasswordlessOtpResponse> {\n\t\treturn db.transaction(async (db): Promise<PasswordlessSignInManager.ActivatePasswordlessOtpResponse> => {\n\t\t\tconst tokenResult = await db.queryHandler.fetch(PersonTokenQuery.byId(requestId, 'passwordless'))\n\t\t\tconst tokenValidationResult = validateToken({\n\t\t\t\tentry: tokenResult,\n\t\t\t\ttoken,\n\t\t\t\tnow: db.providers.now(),\n\t\t\t\tvalidationType: 'token',\n\t\t\t})\n\t\t\tif (!tokenValidationResult.ok) {\n\t\t\t\treturn new ResponseError(tokenValidationResult.error, tokenValidationResult.errorMessage, {\n\t\t\t\t\t...tokenValidationResult.metadata ?? {},\n\t\t\t\t\t[AuthLogService.Key]: new AuthLogService.Bag({\n\t\t\t\t\t\tpersonId: tokenResult?.person_id,\n\t\t\t\t\t\ttokenId: tokenResult?.id,\n\t\t\t\t\t}),\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tawait db.commandBus.execute(new ActivateOtpCommand(tokenValidationResult.result.id, otpHash))\n\n\t\t\treturn new ResponseOk({\n\t\t\t\tperson: tokenResult?.person_id,\n\t\t\t\t[AuthLogService.Key]: new AuthLogService.Bag({\n\t\t\t\t\tpersonId: tokenResult?.person_id,\n\t\t\t\t\ttokenId: tokenResult?.id,\n\t\t\t\t}),\n\t\t\t})\n\t\t})\n\t}\n\n\tprivate isEnabled(globalValue: ConfigPolicy, personValue: boolean | null): boolean {\n\t\tswitch (globalValue) {\n\t\t\tcase 'always':\n\t\t\t\treturn true\n\t\t\tcase 'never':\n\t\t\t\treturn false\n\t\t\tcase 'optIn':\n\t\t\t\treturn personValue === true\n\t\t\tcase 'optOut':\n\t\t\t\treturn personValue !== false\n\t\t}\n\t}\n}\n\nnamespace PasswordlessSignInManager {\n\texport type InitSignInPasswordlessResponse = Response<\n\t\tInitSignInPasswordlessResult & {\n\t\t\t[AuthLogService.Key]: AuthLogService.Bag\n\t\t},\n\t\tInitSignInPasswordlessErrorCode,\n\t\t{\n\t\t\t[AuthLogService.Key]: AuthLogService.Bag\n\t\t}\n\t>\n\n\tinterface SignInPasswordlessResult {\n\t\treadonly person: PersonRow\n\t\treadonly token: string\n\t\t[AuthLogService.Key]: AuthLogService.Bag\n\t}\n\texport type SignInPasswordlessResponse = Response<SignInPasswordlessResult, SignInPasswordlessErrorCode, {\n\t\t[AuthLogService.Key]: AuthLogService.Bag\n\t}>\n\n\texport type ActivatePasswordlessOtpResponse = Response<\n\t\t{\n\t\t\t[AuthLogService.Key]: AuthLogService.Bag\n\t\t},\n\t\tActivatePasswordlessOtpErrorCode,\n\t\t{\n\t\t\t[AuthLogService.Key]: AuthLogService.Bag\n\t\t}\n\t>\n}\n\nexport { PasswordlessSignInManager }\n"],"names":["db","ConfigurationQuery","ResponseError","AuthLogService","PersonQuery","CreatePersonTokenCommand","intervalToSeconds","getPreferredProject","ResponseOk","token","PersonTokenQuery","validateToken","IncreaseOtpAttemptCommand","ImplementationException","InvalidateTokenCommand","ActivateOtpCommand"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAuBA,MAAM,0BAA0B;AAAA,EAC/B,YACkB,eACA,QACA,gBACA,kBAChB;AAJgB,SAAA,gBAAA;AACA,SAAA,SAAA;AACA,SAAA,iBAAA;AACA,SAAA,mBAAA;AAAA,EACf;AAAA,EAEH,MAAM,uBAAuB,EAAE,IAAI,mBAAmB,aAAa,aAAa,SAMV;AACrE,WAAO,GAAG,YAAY,OAAOA,QAA0E;AACtG,YAAM,gBAAgB,MAAMA,IAAG,aAAa,MAAM,IAAIC,mBAAAA,oBAAoB;AAC1E,UAAI,cAAc,aAAa,YAAY,SAAS;AACnD,eAAO,IAAIC,SAAAA,cAAc,yBAAyB,oCAAoC;AAAA,UACrF,CAACC,eAAAA,eAAe,GAAG,GAAG,IAAIA,eAAAA,eAAe,IAAI,CAAA,CAAE;AAAA,QAAA,CAC/C;AAAA,MACF;AAEA,YAAM,SAAS,MAAMH,IAAG,aAAa,MAAMI,wBAAY,QAAQ,KAAK,CAAC;AACrE,UAAI,CAAC,QAAQ;AACZ,eAAO,IAAIF,SAAAA,cAAc,oBAAoB,UAAU,KAAK,cAAc;AAAA,UACzE,CAACC,8BAAe,GAAG,GAAG,IAAIA,eAAAA,eAAe,IAAI;AAAA,YAC5C,aAAa;AAAA,UAAA,CACb;AAAA,QAAA,CACD;AAAA,MACF;AACA,UAAI,CAAC,KAAK,UAAU,cAAc,aAAa,SAAS,OAAO,oBAAoB,GAAG;AACrF,eAAO,IAAID,SAAAA,cAAc,yBAAyB,oDAAoD;AAAA,UACrG,CAACC,8BAAe,GAAG,GAAG,IAAIA,eAAAA,eAAe,IAAI;AAAA,YAC5C,aAAa;AAAA,YACb,UAAU,OAAO;AAAA,UAAA,CACjB;AAAA,QAAA,CACD;AAAA,MACF;AAEA,YAAM,qBAAqBE,yBAAAA,yBAAyB;AAAA,QACnD,OAAO;AAAA,QACPC,SAAAA,kBAAkB,cAAc,aAAa,UAAU,IAAI;AAAA,MAAA;AAE5D,YAAM,SAAS,MAAMN,IAAG,WAAW,QAAQ,kBAAkB;AAE7D,YAAM,MAAM,KAAK,UAAU,cAAc,aAAa,OAAO,MAAM,OAAO,OAAO,OAAO,IAAI,KAAK,KAAK;AAEtG,YAAM,WAAW,MAAM,KAAK,eAAe,sBAAsBA,KAAI,OAAO,aAAa,iBAAiB;AAC1G,YAAM,UAAUO,oBAAAA,oBAAoB,UAAU,eAAe,IAAI;AAEjE,YAAM,KAAK,OAAO,sBAAsBP,KAAI;AAAA,QAC3C;AAAA,QACA,OAAO,OAAO;AAAA,QACd;AAAA,QACA,SAAS,SAAS;AAAA,QAClB,aAAa,SAAS;AAAA,QACtB,WAAW,OAAO;AAAA,MAAA,GAChB;AAAA,QACF,SAAS,eAAe;AAAA,QACxB,WAAW,SAAS,MAAM;AAAA,MAAA,CAC1B;AAED,aAAO,IAAIQ,SAAAA,WAAW;AAAA,QACrB,WAAW,OAAO;AAAA,QAClB,WAAW,OAAO;AAAA,QAClB;AAAA,QACA,CAACL,8BAAe,GAAG,GAAG,IAAIA,eAAAA,eAAe,IAAI;AAAA,UAC5C,aAAa;AAAA,UACb,UAAU,OAAO;AAAA,UACjB,SAAS,OAAO;AAAA,QAAA,CAChB;AAAA,MAAA,CACD;AAAA,IACF,CAAC;AAAA,EACF;AAAA,EAEQ,UAAU,KAAoBM,QAAe,WAAmB,OAA8B;AACrG,QAAI,CAAC,KAAK;AACT,aAAO;AAAA,IACR;AACA,UAAM,SAAS,IAAI,IAAI,GAAG;AAC1B,WAAO,aAAa,IAAI,SAASA,MAAK;AACtC,WAAO,aAAa,IAAI,cAAc,SAAS;AAC/C,WAAO,aAAa,IAAI,SAAS,KAAK;AACtC,WAAO,OAAO,SAAA;AAAA,EACf;AAAA,EAEA,MAAM,mBAAmB,EAAE,IAAI,mBAAYA,SAAO,WAAW,QAAQ,kBAOH;AACjE,WAAO,GAAG,YAAY,OAAOT,QAAsE;AAClG,YAAM,cAAc,MAAMA,IAAG,aAAa,MAAMU,iBAAAA,iBAAiB,KAAK,WAAW,cAAc,CAAC;AAChG,YAAM,wBAAwBC,MAAAA,cAAc;AAAA,QAC3C,OAAO;AAAA,QAAA,OACPF;AAAAA,QACA,KAAKT,IAAG,UAAU,IAAA;AAAA,QAClB;AAAA,MAAA,CACA;AACD,UAAI,CAAC,sBAAsB,IAAI;AAC9B,YAAI,sBAAsB,UAAU,mBAAmB,mBAAmB,OAAO;AAChF,gBAAMA,IAAG,WAAW,QAAQ,IAAIY,0BAAAA,0BAA0B,YAAa,EAAE,CAAC;AAAA,QAC3E;AACA,eAAO,IAAIV,SAAAA,cAAc,sBAAsB,OAAO,sBAAsB,cAAc;AAAA,UACzF,GAAG,sBAAsB,YAAY,CAAA;AAAA,UACrC,CAACC,8BAAe,GAAG,GAAG,IAAIA,eAAAA,eAAe,IAAI;AAAA,YAC5C,UAAU,aAAa;AAAA,YACvB,SAAS,aAAa;AAAA,UAAA,CACtB;AAAA,QAAA,CACD;AAAA,MACF;AACA,UAAI,CAAC,aAAa;AACjB,cAAM,IAAIU,WAAAA,wBAAA;AAAA,MACX;AACA,YAAM,YAAY,MAAMb,IAAG,aAAa,MAAMI,wBAAY,KAAK,sBAAsB,OAAO,SAAS,CAAC;AACtG,UAAI,CAAC,WAAW;AACf,cAAM,IAAIS,WAAAA,wBAAA;AAAA,MACX;AACA,UAAI,UAAU,gBAAgB,MAAM;AACnC,eAAO,IAAIX,SAAAA,cAAc,mBAAmB,sBAAsB;AAAA,UACjE,CAACC,8BAAe,GAAG,GAAG,IAAIA,eAAAA,eAAe,IAAI;AAAA,YAC5C,UAAU,UAAU;AAAA,YACpB,SAAS,aAAa;AAAA,UAAA,CACtB;AAAA,QAAA,CACD;AAAA,MACF;AAEA,UAAI,UAAU,WAAW,UAAU,kBAAkB;AACpD,YAAI,CAAC,QAAQ;AACZ,iBAAO,IAAID,SAAAA,cAAc,gBAAgB,yCAAyC;AAAA,YACjF,CAACC,8BAAe,GAAG,GAAG,IAAIA,eAAAA,eAAe,IAAI;AAAA,cAC5C,UAAU,UAAU;AAAA,cACpB,SAAS,aAAa;AAAA,YAAA,CACtB;AAAA,UAAA,CACD;AAAA,QACF;AAEA,YAAI,CAAC,KAAK,iBAAiB,SAAS,EAAE,KAAK,UAAU,WAAW,MAAM,GAAG;AACxE,iBAAO,IAAID,SAAAA,cAAc,qBAAqB,mCAAmC;AAAA,YAChF,CAACC,8BAAe,GAAG,GAAG,IAAIA,eAAAA,eAAe,IAAI;AAAA,cAC5C,UAAU,UAAU;AAAA,cACpB,SAAS,aAAa;AAAA,YAAA,CACtB;AAAA,UAAA,CACD;AAAA,QACF;AAAA,MACD;AAEA,YAAMH,IAAG,WAAW,QAAQ,IAAIc,uBAAAA,uBAAuB,sBAAsB,OAAO,EAAE,CAAC;AACvF,YAAM,eAAe,MAAM,KAAK,cAAc,oBAAoBd,KAAI,UAAU,aAAa,UAAU;AAEvG,aAAO,IAAIQ,SAAAA,WAAW;AAAA,QACrB,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,CAACL,8BAAe,GAAG,GAAG,IAAIA,eAAAA,eAAe,IAAI;AAAA,UAC5C,UAAU,UAAU;AAAA,UACpB,SAAS,aAAa;AAAA,QAAA,CACtB;AAAA,MAAA,CACD;AAAA,IACF,CAAC;AAAA,EACF;AAAA,EAEA,MAAM,wBAAwB,EAAE,WAAIM,SAAO,WAAW,WAKiB;AACtE,WAAO,GAAG,YAAY,OAAOT,QAA2E;AACvG,YAAM,cAAc,MAAMA,IAAG,aAAa,MAAMU,iBAAAA,iBAAiB,KAAK,WAAW,cAAc,CAAC;AAChG,YAAM,wBAAwBC,MAAAA,cAAc;AAAA,QAC3C,OAAO;AAAA,QAAA,OACPF;AAAAA,QACA,KAAKT,IAAG,UAAU,IAAA;AAAA,QAClB,gBAAgB;AAAA,MAAA,CAChB;AACD,UAAI,CAAC,sBAAsB,IAAI;AAC9B,eAAO,IAAIE,SAAAA,cAAc,sBAAsB,OAAO,sBAAsB,cAAc;AAAA,UACzF,GAAG,sBAAsB,YAAY,CAAA;AAAA,UACrC,CAACC,8BAAe,GAAG,GAAG,IAAIA,eAAAA,eAAe,IAAI;AAAA,YAC5C,UAAU,aAAa;AAAA,YACvB,SAAS,aAAa;AAAA,UAAA,CACtB;AAAA,QAAA,CACD;AAAA,MACF;AAEA,YAAMH,IAAG,WAAW,QAAQ,IAAIe,mBAAAA,mBAAmB,sBAAsB,OAAO,IAAI,OAAO,CAAC;AAE5F,aAAO,IAAIP,SAAAA,WAAW;AAAA,QACrB,QAAQ,aAAa;AAAA,QACrB,CAACL,8BAAe,GAAG,GAAG,IAAIA,eAAAA,eAAe,IAAI;AAAA,UAC5C,UAAU,aAAa;AAAA,UACvB,SAAS,aAAa;AAAA,QAAA,CACtB;AAAA,MAAA,CACD;AAAA,IACF,CAAC;AAAA,EACF;AAAA,EAEQ,UAAU,aAA2B,aAAsC;AAClF,YAAQ,aAAA;AAAA,MACP,KAAK;AACJ,eAAO;AAAA,MACR,KAAK;AACJ,eAAO;AAAA,MACR,KAAK;AACJ,eAAO,gBAAgB;AAAA,MACxB,KAAK;AACJ,eAAO,gBAAgB;AAAA,IAAA;AAAA,EAE1B;AACD;;"}
|