@contember/engine-tenant-api 2.1.0-beta.1 → 2.2.0-alpha.1
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 +71 -9
- package/dist/development/index.cjs +118 -0
- package/dist/development/index.cjs.map +1 -1
- package/dist/development/index.js +117 -2
- package/dist/development/index.js.map +1 -1
- package/dist/development/src/TenantContainer.cjs +119 -23
- package/dist/development/src/TenantContainer.cjs.map +1 -1
- package/dist/development/src/TenantContainer.js +119 -23
- package/dist/development/src/TenantContainer.js.map +1 -1
- package/dist/development/src/bridges/system/IdentityFetcher.cjs +2 -0
- package/dist/development/src/bridges/system/IdentityFetcher.cjs.map +1 -1
- package/dist/development/src/bridges/system/IdentityFetcher.js +2 -0
- package/dist/development/src/bridges/system/IdentityFetcher.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/2026-05-12-120000-api-key-session-tracking.cjs +23 -0
- package/dist/development/src/migrations/2026-05-12-120000-api-key-session-tracking.cjs.map +1 -0
- package/dist/development/src/migrations/2026-05-12-120000-api-key-session-tracking.js +24 -0
- package/dist/development/src/migrations/2026-05-12-120000-api-key-session-tracking.js.map +1 -0
- package/dist/development/src/migrations/2026-05-12-130000-api-key-trust-forwarded-info.cjs +10 -0
- package/dist/development/src/migrations/2026-05-12-130000-api-key-trust-forwarded-info.cjs.map +1 -0
- package/dist/development/src/migrations/2026-05-12-130000-api-key-trust-forwarded-info.js +11 -0
- package/dist/development/src/migrations/2026-05-12-130000-api-key-trust-forwarded-info.js.map +1 -0
- package/dist/development/src/migrations/2026-05-13-120000-auth-log-event-data.cjs +16 -0
- package/dist/development/src/migrations/2026-05-13-120000-auth-log-event-data.cjs.map +1 -0
- package/dist/development/src/migrations/2026-05-13-120000-auth-log-event-data.js +17 -0
- package/dist/development/src/migrations/2026-05-13-120000-auth-log-event-data.js.map +1 -0
- package/dist/development/src/migrations/2026-05-13-130000-anti-abuse.cjs +44 -0
- package/dist/development/src/migrations/2026-05-13-130000-anti-abuse.cjs.map +1 -0
- package/dist/development/src/migrations/2026-05-13-130000-anti-abuse.js +45 -0
- package/dist/development/src/migrations/2026-05-13-130000-anti-abuse.js.map +1 -0
- package/dist/development/src/migrations/2026-05-14-100000-auth-log-admin-actions.cjs +20 -0
- package/dist/development/src/migrations/2026-05-14-100000-auth-log-admin-actions.cjs.map +1 -0
- package/dist/development/src/migrations/2026-05-14-100000-auth-log-admin-actions.js +21 -0
- package/dist/development/src/migrations/2026-05-14-100000-auth-log-admin-actions.js.map +1 -0
- package/dist/development/src/migrations/2026-05-15-120000-config-reveal-login-method.cjs +10 -0
- package/dist/development/src/migrations/2026-05-15-120000-config-reveal-login-method.cjs.map +1 -0
- package/dist/development/src/migrations/2026-05-15-120000-config-reveal-login-method.js +11 -0
- package/dist/development/src/migrations/2026-05-15-120000-config-reveal-login-method.js.map +1 -0
- package/dist/development/src/migrations/2026-05-21-100000-person-mfa.cjs +26 -0
- package/dist/development/src/migrations/2026-05-21-100000-person-mfa.cjs.map +1 -0
- package/dist/development/src/migrations/2026-05-21-100000-person-mfa.js +27 -0
- package/dist/development/src/migrations/2026-05-21-100000-person-mfa.js.map +1 -0
- package/dist/development/src/migrations/2026-05-21-110000-mfa-foundation.cjs +43 -0
- package/dist/development/src/migrations/2026-05-21-110000-mfa-foundation.cjs.map +1 -0
- package/dist/development/src/migrations/2026-05-21-110000-mfa-foundation.js +44 -0
- package/dist/development/src/migrations/2026-05-21-110000-mfa-foundation.js.map +1 -0
- package/dist/development/src/migrations/2026-05-21-120000-email-otp.cjs +9 -0
- package/dist/development/src/migrations/2026-05-21-120000-email-otp.cjs.map +1 -0
- package/dist/development/src/migrations/2026-05-21-120000-email-otp.js +10 -0
- package/dist/development/src/migrations/2026-05-21-120000-email-otp.js.map +1 -0
- package/dist/development/src/migrations/2026-05-21-130000-api-key-session-policy.cjs +11 -0
- package/dist/development/src/migrations/2026-05-21-130000-api-key-session-policy.cjs.map +1 -0
- package/dist/development/src/migrations/2026-05-21-130000-api-key-session-policy.js +12 -0
- package/dist/development/src/migrations/2026-05-21-130000-api-key-session-policy.js.map +1 -0
- package/dist/development/src/migrations/2026-05-21-140000-mfa-grace-duration.cjs +10 -0
- package/dist/development/src/migrations/2026-05-21-140000-mfa-grace-duration.cjs.map +1 -0
- package/dist/development/src/migrations/2026-05-21-140000-mfa-grace-duration.js +11 -0
- package/dist/development/src/migrations/2026-05-21-140000-mfa-grace-duration.js.map +1 -0
- package/dist/development/src/migrations/2026-05-21-150000-email-otp-rate-limit.cjs +18 -0
- package/dist/development/src/migrations/2026-05-21-150000-email-otp-rate-limit.cjs.map +1 -0
- package/dist/development/src/migrations/2026-05-21-150000-email-otp-rate-limit.js +19 -0
- package/dist/development/src/migrations/2026-05-21-150000-email-otp-rate-limit.js.map +1 -0
- package/dist/development/src/migrations/2026-05-26-120000-email-verification-types.cjs +15 -0
- package/dist/development/src/migrations/2026-05-26-120000-email-verification-types.cjs.map +1 -0
- package/dist/development/src/migrations/2026-05-26-120000-email-verification-types.js +16 -0
- package/dist/development/src/migrations/2026-05-26-120000-email-verification-types.js.map +1 -0
- package/dist/development/src/migrations/2026-05-26-120010-email-verification.cjs +28 -0
- package/dist/development/src/migrations/2026-05-26-120010-email-verification.cjs.map +1 -0
- package/dist/development/src/migrations/2026-05-26-120010-email-verification.js +29 -0
- package/dist/development/src/migrations/2026-05-26-120010-email-verification.js.map +1 -0
- package/dist/development/src/migrations/2026-05-26-130000-email-change-verification-config.cjs +19 -0
- package/dist/development/src/migrations/2026-05-26-130000-email-change-verification-config.cjs.map +1 -0
- package/dist/development/src/migrations/2026-05-26-130000-email-change-verification-config.js +20 -0
- package/dist/development/src/migrations/2026-05-26-130000-email-change-verification-config.js.map +1 -0
- package/dist/development/src/migrations/2026-05-26-130010-idp-require-verified-email.cjs +15 -0
- package/dist/development/src/migrations/2026-05-26-130010-idp-require-verified-email.cjs.map +1 -0
- package/dist/development/src/migrations/2026-05-26-130010-idp-require-verified-email.js +16 -0
- package/dist/development/src/migrations/2026-05-26-130010-idp-require-verified-email.js.map +1 -0
- package/dist/development/src/migrations/2026-05-26-130020-email-verification-rate-limit.cjs +17 -0
- package/dist/development/src/migrations/2026-05-26-130020-email-verification-rate-limit.cjs.map +1 -0
- package/dist/development/src/migrations/2026-05-26-130020-email-verification-rate-limit.js +18 -0
- package/dist/development/src/migrations/2026-05-26-130020-email-verification-rate-limit.js.map +1 -0
- package/dist/development/src/migrations/2026-05-26-130030-captcha-protect-flows.cjs +22 -0
- package/dist/development/src/migrations/2026-05-26-130030-captcha-protect-flows.cjs.map +1 -0
- package/dist/development/src/migrations/2026-05-26-130030-captcha-protect-flows.js +23 -0
- package/dist/development/src/migrations/2026-05-26-130030-captcha-protect-flows.js.map +1 -0
- package/dist/development/src/migrations/2026-05-26-140000-idp-session.cjs +31 -0
- package/dist/development/src/migrations/2026-05-26-140000-idp-session.cjs.map +1 -0
- package/dist/development/src/migrations/2026-05-26-140000-idp-session.js +32 -0
- package/dist/development/src/migrations/2026-05-26-140000-idp-session.js.map +1 -0
- package/dist/development/src/migrations/2026-06-08-100000-idp-assume-email-verified.cjs +15 -0
- package/dist/development/src/migrations/2026-06-08-100000-idp-assume-email-verified.cjs.map +1 -0
- package/dist/development/src/migrations/2026-06-08-100000-idp-assume-email-verified.js +16 -0
- package/dist/development/src/migrations/2026-06-08-100000-idp-assume-email-verified.js.map +1 -0
- package/dist/development/src/migrations/2026-06-16-120000-login-anomaly-detection.cjs +30 -0
- package/dist/development/src/migrations/2026-06-16-120000-login-anomaly-detection.cjs.map +1 -0
- package/dist/development/src/migrations/2026-06-16-120000-login-anomaly-detection.js +31 -0
- package/dist/development/src/migrations/2026-06-16-120000-login-anomaly-detection.js.map +1 -0
- package/dist/development/src/migrations/2026-06-16-130000-idp-logout.cjs +10 -0
- package/dist/development/src/migrations/2026-06-16-130000-idp-logout.cjs.map +1 -0
- package/dist/development/src/migrations/2026-06-16-130000-idp-logout.js +11 -0
- package/dist/development/src/migrations/2026-06-16-130000-idp-logout.js.map +1 -0
- package/dist/development/src/migrations/runner.cjs +47 -1
- package/dist/development/src/migrations/runner.cjs.map +1 -1
- package/dist/development/src/migrations/runner.js +47 -1
- package/dist/development/src/migrations/runner.js.map +1 -1
- package/dist/development/src/migrations/snapshot.cjs +178 -10
- package/dist/development/src/migrations/snapshot.cjs.map +1 -1
- package/dist/development/src/migrations/snapshot.js +178 -10
- 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/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/PermissionActions.cjs +10 -0
- package/dist/development/src/model/authorization/PermissionActions.cjs.map +1 -1
- package/dist/development/src/model/authorization/PermissionActions.js +10 -0
- 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 +7 -0
- package/dist/development/src/model/authorization/PermissionsFactory.cjs.map +1 -1
- package/dist/development/src/model/authorization/PermissionsFactory.js +7 -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/commands/CommandBus.cjs.map +1 -1
- 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 +14 -2
- package/dist/development/src/model/commands/apiKey/CreateApiKeyCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/apiKey/CreateApiKeyCommand.js +14 -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 +41 -9
- package/dist/development/src/model/commands/apiKey/ProlongApiKeyCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/apiKey/ProlongApiKeyCommand.js +41 -9
- package/dist/development/src/model/commands/apiKey/ProlongApiKeyCommand.js.map +1 -1
- package/dist/development/src/model/commands/authLog/CreateAuthLogEntryCommand.cjs +5 -1
- package/dist/development/src/model/commands/authLog/CreateAuthLogEntryCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/authLog/CreateAuthLogEntryCommand.js +5 -1
- package/dist/development/src/model/commands/authLog/CreateAuthLogEntryCommand.js.map +1 -1
- package/dist/development/src/model/commands/authPolicy/CreateAuthPolicyCommand.cjs +28 -0
- package/dist/development/src/model/commands/authPolicy/CreateAuthPolicyCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/authPolicy/CreateAuthPolicyCommand.js +28 -0
- package/dist/development/src/model/commands/authPolicy/CreateAuthPolicyCommand.js.map +1 -0
- package/dist/development/src/model/commands/authPolicy/DeleteAuthPolicyCommand.cjs +14 -0
- package/dist/development/src/model/commands/authPolicy/DeleteAuthPolicyCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/authPolicy/DeleteAuthPolicyCommand.js +14 -0
- package/dist/development/src/model/commands/authPolicy/DeleteAuthPolicyCommand.js.map +1 -0
- package/dist/development/src/model/commands/authPolicy/UpdateAuthPolicyCommand.cjs +25 -0
- package/dist/development/src/model/commands/authPolicy/UpdateAuthPolicyCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/authPolicy/UpdateAuthPolicyCommand.js +25 -0
- package/dist/development/src/model/commands/authPolicy/UpdateAuthPolicyCommand.js.map +1 -0
- package/dist/development/src/model/commands/backupCode/ConsumeBackupCodeCommand.cjs +20 -0
- package/dist/development/src/model/commands/backupCode/ConsumeBackupCodeCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/backupCode/ConsumeBackupCodeCommand.js +20 -0
- package/dist/development/src/model/commands/backupCode/ConsumeBackupCodeCommand.js.map +1 -0
- package/dist/development/src/model/commands/backupCode/CreateBackupCodeCommand.cjs +19 -0
- package/dist/development/src/model/commands/backupCode/CreateBackupCodeCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/backupCode/CreateBackupCodeCommand.js +19 -0
- package/dist/development/src/model/commands/backupCode/CreateBackupCodeCommand.js.map +1 -0
- package/dist/development/src/model/commands/backupCode/DeleteBackupCodesCommand.cjs +13 -0
- package/dist/development/src/model/commands/backupCode/DeleteBackupCodesCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/backupCode/DeleteBackupCodesCommand.js +13 -0
- package/dist/development/src/model/commands/backupCode/DeleteBackupCodesCommand.js.map +1 -0
- package/dist/development/src/model/commands/configuration/UpdateConfigurationCommand.cjs +45 -2
- package/dist/development/src/model/commands/configuration/UpdateConfigurationCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/configuration/UpdateConfigurationCommand.js +45 -2
- 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.map +1 -1
- package/dist/development/src/model/commands/identity/PatchIdentityGlobalRoles.js.map +1 -1
- package/dist/development/src/model/commands/idp/ClaimIdpRevalidationCommand.cjs +19 -0
- package/dist/development/src/model/commands/idp/ClaimIdpRevalidationCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/idp/ClaimIdpRevalidationCommand.js +19 -0
- package/dist/development/src/model/commands/idp/ClaimIdpRevalidationCommand.js.map +1 -0
- package/dist/development/src/model/commands/idp/CreateIdpCommand.cjs +4 -2
- package/dist/development/src/model/commands/idp/CreateIdpCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/idp/CreateIdpCommand.js +4 -2
- package/dist/development/src/model/commands/idp/CreateIdpCommand.js.map +1 -1
- package/dist/development/src/model/commands/idp/CreateIdpSessionCommand.cjs +27 -0
- package/dist/development/src/model/commands/idp/CreateIdpSessionCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/idp/CreateIdpSessionCommand.js +27 -0
- package/dist/development/src/model/commands/idp/CreateIdpSessionCommand.js.map +1 -0
- 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/DisconnectPersonIdentityProviderCommand.cjs +17 -0
- package/dist/development/src/model/commands/idp/DisconnectPersonIdentityProviderCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/idp/DisconnectPersonIdentityProviderCommand.js +17 -0
- package/dist/development/src/model/commands/idp/DisconnectPersonIdentityProviderCommand.js.map +1 -0
- 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 +4 -2
- package/dist/development/src/model/commands/idp/UpdateIdpCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/idp/UpdateIdpCommand.js +4 -2
- package/dist/development/src/model/commands/idp/UpdateIdpCommand.js.map +1 -1
- package/dist/development/src/model/commands/idp/UpdateIdpSessionCommand.cjs +31 -0
- package/dist/development/src/model/commands/idp/UpdateIdpSessionCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/idp/UpdateIdpSessionCommand.js +31 -0
- package/dist/development/src/model/commands/idp/UpdateIdpSessionCommand.js.map +1 -0
- package/dist/development/src/model/commands/mailTemplate/AddMailTemplateCommand.cjs.map +1 -1
- 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.map +1 -1
- 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 +10 -4
- package/dist/development/src/model/commands/otp/ConfirmOtpCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/otp/ConfirmOtpCommand.js +11 -5
- package/dist/development/src/model/commands/otp/ConfirmOtpCommand.js.map +1 -1
- package/dist/development/src/model/commands/otp/DisableOtpCommand.cjs +9 -5
- package/dist/development/src/model/commands/otp/DisableOtpCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/otp/DisableOtpCommand.js +9 -5
- package/dist/development/src/model/commands/otp/DisableOtpCommand.js.map +1 -1
- package/dist/development/src/model/commands/otp/PrepareOtpCommand.cjs +14 -8
- package/dist/development/src/model/commands/otp/PrepareOtpCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/otp/PrepareOtpCommand.js +15 -9
- package/dist/development/src/model/commands/otp/PrepareOtpCommand.js.map +1 -1
- package/dist/development/src/model/commands/otp/ReEncryptOtpSecretCommand.cjs +22 -0
- package/dist/development/src/model/commands/otp/ReEncryptOtpSecretCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/otp/ReEncryptOtpSecretCommand.js +22 -0
- package/dist/development/src/model/commands/otp/ReEncryptOtpSecretCommand.js.map +1 -0
- package/dist/development/src/model/commands/otp/SetEmailOtpEnabledCommand.cjs +19 -0
- package/dist/development/src/model/commands/otp/SetEmailOtpEnabledCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/otp/SetEmailOtpEnabledCommand.js +19 -0
- package/dist/development/src/model/commands/otp/SetEmailOtpEnabledCommand.js.map +1 -0
- 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 +8 -2
- package/dist/development/src/model/commands/person/ChangeProfileCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/person/ChangeProfileCommand.js +8 -2
- package/dist/development/src/model/commands/person/ChangeProfileCommand.js.map +1 -1
- package/dist/development/src/model/commands/person/CreatePersonCommand.cjs +13 -3
- package/dist/development/src/model/commands/person/CreatePersonCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/person/CreatePersonCommand.js +13 -3
- 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/MarkEmailVerifiedCommand.cjs +21 -0
- package/dist/development/src/model/commands/person/MarkEmailVerifiedCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/person/MarkEmailVerifiedCommand.js +21 -0
- package/dist/development/src/model/commands/person/MarkEmailVerifiedCommand.js.map +1 -0
- package/dist/development/src/model/commands/person/ResetPersonMfaCommand.cjs +24 -0
- package/dist/development/src/model/commands/person/ResetPersonMfaCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/person/ResetPersonMfaCommand.js +24 -0
- package/dist/development/src/model/commands/person/ResetPersonMfaCommand.js.map +1 -0
- package/dist/development/src/model/commands/person/SetMfaGraceUntilCommand.cjs +16 -0
- package/dist/development/src/model/commands/person/SetMfaGraceUntilCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/person/SetMfaGraceUntilCommand.js +16 -0
- package/dist/development/src/model/commands/person/SetMfaGraceUntilCommand.js.map +1 -0
- 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/ClaimOtpAttemptCommand.cjs +17 -0
- package/dist/development/src/model/commands/personToken/ClaimOtpAttemptCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/personToken/ClaimOtpAttemptCommand.js +17 -0
- package/dist/development/src/model/commands/personToken/ClaimOtpAttemptCommand.js.map +1 -0
- package/dist/development/src/model/commands/personToken/CreatePersonTokenCommand.cjs +10 -2
- package/dist/development/src/model/commands/personToken/CreatePersonTokenCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/personToken/CreatePersonTokenCommand.js +11 -3
- 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/InvalidateEmailOtpTokensCommand.cjs +15 -0
- package/dist/development/src/model/commands/personToken/InvalidateEmailOtpTokensCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/personToken/InvalidateEmailOtpTokensCommand.js +15 -0
- package/dist/development/src/model/commands/personToken/InvalidateEmailOtpTokensCommand.js.map +1 -0
- 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.map +1 -1
- package/dist/development/src/model/commands/personToken/ResetPasswordCommand.js.map +1 -1
- package/dist/development/src/model/commands/personToken/SaveEmailOtpTokenCommand.cjs +32 -0
- package/dist/development/src/model/commands/personToken/SaveEmailOtpTokenCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/personToken/SaveEmailOtpTokenCommand.js +32 -0
- package/dist/development/src/model/commands/personToken/SaveEmailOtpTokenCommand.js.map +1 -0
- package/dist/development/src/model/commands/personToken/SavePersonTokenCommand.cjs +4 -2
- package/dist/development/src/model/commands/personToken/SavePersonTokenCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/personToken/SavePersonTokenCommand.js +4 -2
- 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/commands/rateLimit/RecordRateLimitEventCommand.cjs +19 -0
- package/dist/development/src/model/commands/rateLimit/RecordRateLimitEventCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/rateLimit/RecordRateLimitEventCommand.js +19 -0
- package/dist/development/src/model/commands/rateLimit/RecordRateLimitEventCommand.js.map +1 -0
- package/dist/development/src/model/consts/expirations.cjs +4 -0
- package/dist/development/src/model/consts/expirations.cjs.map +1 -1
- package/dist/development/src/model/consts/expirations.js +4 -0
- package/dist/development/src/model/consts/expirations.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 +71 -0
- package/dist/development/src/model/mailing/UserMailer.cjs.map +1 -1
- package/dist/development/src/model/mailing/UserMailer.js +71 -0
- package/dist/development/src/model/mailing/UserMailer.js.map +1 -1
- package/dist/development/src/model/mailing/templates/BackupCodesExhausted.mustache.cjs +15 -0
- package/dist/development/src/model/mailing/templates/BackupCodesExhausted.mustache.cjs.map +1 -0
- package/dist/development/src/model/mailing/templates/BackupCodesExhausted.mustache.js +16 -0
- package/dist/development/src/model/mailing/templates/BackupCodesExhausted.mustache.js.map +1 -0
- package/dist/development/src/model/mailing/templates/EmailChangeNotify.mustache.cjs +12 -0
- package/dist/development/src/model/mailing/templates/EmailChangeNotify.mustache.cjs.map +1 -0
- package/dist/development/src/model/mailing/templates/EmailChangeNotify.mustache.js +13 -0
- package/dist/development/src/model/mailing/templates/EmailChangeNotify.mustache.js.map +1 -0
- package/dist/development/src/model/mailing/templates/EmailChangeVerify.mustache.cjs +14 -0
- package/dist/development/src/model/mailing/templates/EmailChangeVerify.mustache.cjs.map +1 -0
- package/dist/development/src/model/mailing/templates/EmailChangeVerify.mustache.js +15 -0
- package/dist/development/src/model/mailing/templates/EmailChangeVerify.mustache.js.map +1 -0
- package/dist/development/src/model/mailing/templates/EmailOtp.mustache.cjs +15 -0
- package/dist/development/src/model/mailing/templates/EmailOtp.mustache.cjs.map +1 -0
- package/dist/development/src/model/mailing/templates/EmailOtp.mustache.js +16 -0
- package/dist/development/src/model/mailing/templates/EmailOtp.mustache.js.map +1 -0
- package/dist/development/src/model/mailing/templates/EmailVerification.mustache.cjs +12 -0
- package/dist/development/src/model/mailing/templates/EmailVerification.mustache.cjs.map +1 -0
- package/dist/development/src/model/mailing/templates/EmailVerification.mustache.js +13 -0
- package/dist/development/src/model/mailing/templates/EmailVerification.mustache.js.map +1 -0
- package/dist/development/src/model/mailing/templates/ExistingUserInvited.mustache.cjs.map +1 -1
- package/dist/development/src/model/mailing/templates/ExistingUserInvited.mustache.js.map +1 -1
- package/dist/development/src/model/mailing/templates/ForcedSignOut.mustache.cjs +12 -0
- package/dist/development/src/model/mailing/templates/ForcedSignOut.mustache.cjs.map +1 -0
- package/dist/development/src/model/mailing/templates/ForcedSignOut.mustache.js +13 -0
- package/dist/development/src/model/mailing/templates/ForcedSignOut.mustache.js.map +1 -0
- package/dist/development/src/model/mailing/templates/NewUserInvited.mustache.cjs.map +1 -1
- package/dist/development/src/model/mailing/templates/NewUserInvited.mustache.js.map +1 -1
- package/dist/development/src/model/mailing/templates/PasswordReset.mustache.cjs.map +1 -1
- package/dist/development/src/model/mailing/templates/PasswordReset.mustache.js.map +1 -1
- package/dist/development/src/model/mailing/templates/PasswordlessSignIn.mustache.cjs.map +1 -1
- package/dist/development/src/model/mailing/templates/PasswordlessSignIn.mustache.js.map +1 -1
- package/dist/development/src/model/mailing/templates/UnusualLogin.mustache.cjs +19 -0
- package/dist/development/src/model/mailing/templates/UnusualLogin.mustache.cjs.map +1 -0
- package/dist/development/src/model/mailing/templates/UnusualLogin.mustache.js +20 -0
- package/dist/development/src/model/mailing/templates/UnusualLogin.mustache.js.map +1 -0
- package/dist/development/src/model/mailing/type.cjs +45 -3
- package/dist/development/src/model/mailing/type.cjs.map +1 -1
- package/dist/development/src/model/mailing/type.js +45 -3
- package/dist/development/src/model/mailing/type.js.map +1 -1
- package/dist/development/src/model/queries/apiKey/ApiKeyListQuery.cjs +32 -0
- package/dist/development/src/model/queries/apiKey/ApiKeyListQuery.cjs.map +1 -0
- package/dist/development/src/model/queries/apiKey/ApiKeyListQuery.js +32 -0
- package/dist/development/src/model/queries/apiKey/ApiKeyListQuery.js.map +1 -0
- package/dist/development/src/model/queries/apiKey/ApiKeyQuery.cjs +1 -1
- package/dist/development/src/model/queries/apiKey/ApiKeyQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/apiKey/ApiKeyQuery.js +1 -1
- package/dist/development/src/model/queries/apiKey/ApiKeyQuery.js.map +1 -1
- package/dist/development/src/model/queries/apiKey/ApiKeySessionsQuery.cjs +21 -0
- package/dist/development/src/model/queries/apiKey/ApiKeySessionsQuery.cjs.map +1 -0
- package/dist/development/src/model/queries/apiKey/ApiKeySessionsQuery.js +21 -0
- package/dist/development/src/model/queries/apiKey/ApiKeySessionsQuery.js.map +1 -0
- package/dist/development/src/model/queries/authLog/AuthLogQuery.cjs +51 -0
- package/dist/development/src/model/queries/authLog/AuthLogQuery.cjs.map +1 -0
- package/dist/development/src/model/queries/authLog/AuthLogQuery.js +51 -0
- package/dist/development/src/model/queries/authLog/AuthLogQuery.js.map +1 -0
- package/dist/development/src/model/queries/authLog/NextMailAttemptQuery.cjs +45 -0
- package/dist/development/src/model/queries/authLog/NextMailAttemptQuery.cjs.map +1 -0
- package/dist/development/src/model/queries/authLog/NextMailAttemptQuery.js +45 -0
- package/dist/development/src/model/queries/authLog/NextMailAttemptQuery.js.map +1 -0
- package/dist/development/src/model/queries/authPolicy/AuthPoliciesQuery.cjs +19 -0
- package/dist/development/src/model/queries/authPolicy/AuthPoliciesQuery.cjs.map +1 -0
- package/dist/development/src/model/queries/authPolicy/AuthPoliciesQuery.js +19 -0
- package/dist/development/src/model/queries/authPolicy/AuthPoliciesQuery.js.map +1 -0
- package/dist/development/src/model/queries/configuration/ConfigurationQuery.cjs +59 -2
- package/dist/development/src/model/queries/configuration/ConfigurationQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/configuration/ConfigurationQuery.js +59 -2
- package/dist/development/src/model/queries/configuration/ConfigurationQuery.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/IdpSessionByApiKeyQuery.cjs +38 -0
- package/dist/development/src/model/queries/idp/IdpSessionByApiKeyQuery.cjs.map +1 -0
- package/dist/development/src/model/queries/idp/IdpSessionByApiKeyQuery.js +38 -0
- package/dist/development/src/model/queries/idp/IdpSessionByApiKeyQuery.js.map +1 -0
- package/dist/development/src/model/queries/idp/IdpSessionsBySidQuery.cjs +19 -0
- package/dist/development/src/model/queries/idp/IdpSessionsBySidQuery.cjs.map +1 -0
- package/dist/development/src/model/queries/idp/IdpSessionsBySidQuery.js +19 -0
- package/dist/development/src/model/queries/idp/IdpSessionsBySidQuery.js.map +1 -0
- package/dist/development/src/model/queries/idp/IdpSessionsBySubQuery.cjs +18 -0
- package/dist/development/src/model/queries/idp/IdpSessionsBySubQuery.cjs.map +1 -0
- package/dist/development/src/model/queries/idp/IdpSessionsBySubQuery.js +18 -0
- package/dist/development/src/model/queries/idp/IdpSessionsBySubQuery.js.map +1 -0
- package/dist/development/src/model/queries/idp/PersonIdentityProvidersQuery.cjs +18 -0
- package/dist/development/src/model/queries/idp/PersonIdentityProvidersQuery.cjs.map +1 -0
- package/dist/development/src/model/queries/idp/PersonIdentityProvidersQuery.js +18 -0
- package/dist/development/src/model/queries/idp/PersonIdentityProvidersQuery.js.map +1 -0
- package/dist/development/src/model/queries/idp/helpers.cjs +3 -3
- package/dist/development/src/model/queries/idp/helpers.cjs.map +1 -1
- package/dist/development/src/model/queries/idp/helpers.js +3 -3
- 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/AllProjectRolesByIdentityQuery.cjs +17 -0
- package/dist/development/src/model/queries/membership/AllProjectRolesByIdentityQuery.cjs.map +1 -0
- package/dist/development/src/model/queries/membership/AllProjectRolesByIdentityQuery.js +17 -0
- package/dist/development/src/model/queries/membership/AllProjectRolesByIdentityQuery.js.map +1 -0
- package/dist/development/src/model/queries/membership/ProjectMembersQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/membership/ProjectMembersQuery.js.map +1 -1
- package/dist/development/src/model/queries/membership/ProjectMembershipByIdentityQuery.cjs.map +1 -1
- 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/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 +9 -1
- package/dist/development/src/model/queries/person/PersonQueryBuilderFactory.cjs.map +1 -1
- package/dist/development/src/model/queries/person/PersonQueryBuilderFactory.js +9 -1
- package/dist/development/src/model/queries/person/PersonQueryBuilderFactory.js.map +1 -1
- package/dist/development/src/model/queries/person/PersonsQuery.cjs +28 -0
- package/dist/development/src/model/queries/person/PersonsQuery.cjs.map +1 -0
- package/dist/development/src/model/queries/person/PersonsQuery.js +28 -0
- package/dist/development/src/model/queries/person/PersonsQuery.js.map +1 -0
- package/dist/development/src/model/queries/personToken/PersonTokenQuery.cjs +12 -3
- package/dist/development/src/model/queries/personToken/PersonTokenQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/personToken/PersonTokenQuery.js +12 -3
- 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/ProjectSecretKeysQuery.cjs +14 -0
- package/dist/development/src/model/queries/project/ProjectSecretKeysQuery.cjs.map +1 -0
- package/dist/development/src/model/queries/project/ProjectSecretKeysQuery.js +14 -0
- package/dist/development/src/model/queries/project/ProjectSecretKeysQuery.js.map +1 -0
- package/dist/development/src/model/queries/project/ProjectSecretsQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/project/ProjectSecretsQuery.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/queries/rateLimit/RateLimitCountQuery.cjs +17 -0
- package/dist/development/src/model/queries/rateLimit/RateLimitCountQuery.cjs.map +1 -0
- package/dist/development/src/model/queries/rateLimit/RateLimitCountQuery.js +17 -0
- package/dist/development/src/model/queries/rateLimit/RateLimitCountQuery.js.map +1 -0
- package/dist/development/src/model/service/AuthLogService.cjs +31 -1
- package/dist/development/src/model/service/AuthLogService.cjs.map +1 -1
- package/dist/development/src/model/service/AuthLogService.js +31 -1
- package/dist/development/src/model/service/AuthLogService.js.map +1 -1
- package/dist/development/src/model/service/AuthPolicyManager.cjs +95 -0
- package/dist/development/src/model/service/AuthPolicyManager.cjs.map +1 -0
- package/dist/development/src/model/service/AuthPolicyManager.js +95 -0
- package/dist/development/src/model/service/AuthPolicyManager.js.map +1 -0
- package/dist/development/src/model/service/AuthPolicyResolver.cjs +83 -0
- package/dist/development/src/model/service/AuthPolicyResolver.cjs.map +1 -0
- package/dist/development/src/model/service/AuthPolicyResolver.js +83 -0
- package/dist/development/src/model/service/AuthPolicyResolver.js.map +1 -0
- package/dist/development/src/model/service/BackupCodeManager.cjs +80 -0
- package/dist/development/src/model/service/BackupCodeManager.cjs.map +1 -0
- package/dist/development/src/model/service/BackupCodeManager.js +80 -0
- package/dist/development/src/model/service/BackupCodeManager.js.map +1 -0
- package/dist/development/src/model/service/ConfigurationManager.cjs.map +1 -1
- package/dist/development/src/model/service/ConfigurationManager.js.map +1 -1
- package/dist/development/src/model/service/EmailChangeManager.cjs +135 -0
- package/dist/development/src/model/service/EmailChangeManager.cjs.map +1 -0
- package/dist/development/src/model/service/EmailChangeManager.js +135 -0
- package/dist/development/src/model/service/EmailChangeManager.js.map +1 -0
- package/dist/development/src/model/service/EmailOtpManager.cjs +90 -0
- package/dist/development/src/model/service/EmailOtpManager.cjs.map +1 -0
- package/dist/development/src/model/service/EmailOtpManager.js +90 -0
- package/dist/development/src/model/service/EmailOtpManager.js.map +1 -0
- package/dist/development/src/model/service/EmailValidator.cjs +4 -4
- package/dist/development/src/model/service/EmailValidator.cjs.map +1 -1
- package/dist/development/src/model/service/EmailValidator.js +4 -4
- package/dist/development/src/model/service/EmailValidator.js.map +1 -1
- package/dist/development/src/model/service/EmailVerificationManager.cjs +94 -0
- package/dist/development/src/model/service/EmailVerificationManager.cjs.map +1 -0
- package/dist/development/src/model/service/EmailVerificationManager.js +94 -0
- package/dist/development/src/model/service/EmailVerificationManager.js.map +1 -0
- package/dist/development/src/model/service/HibpChecker.cjs +46 -0
- package/dist/development/src/model/service/HibpChecker.cjs.map +1 -0
- package/dist/development/src/model/service/HibpChecker.js +46 -0
- package/dist/development/src/model/service/HibpChecker.js.map +1 -0
- package/dist/development/src/model/service/IDPSignInManager.cjs +51 -15
- package/dist/development/src/model/service/IDPSignInManager.cjs.map +1 -1
- package/dist/development/src/model/service/IDPSignInManager.js +51 -15
- package/dist/development/src/model/service/IDPSignInManager.js.map +1 -1
- package/dist/development/src/model/service/InviteManager.cjs.map +1 -1
- package/dist/development/src/model/service/InviteManager.js.map +1 -1
- package/dist/development/src/model/service/LoginRiskAnalyzer.cjs +160 -0
- package/dist/development/src/model/service/LoginRiskAnalyzer.cjs.map +1 -0
- package/dist/development/src/model/service/LoginRiskAnalyzer.js +160 -0
- package/dist/development/src/model/service/LoginRiskAnalyzer.js.map +1 -0
- 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.map +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 +56 -6
- package/dist/development/src/model/service/OtpManager.cjs.map +1 -1
- package/dist/development/src/model/service/OtpManager.js +56 -6
- package/dist/development/src/model/service/OtpManager.js.map +1 -1
- package/dist/development/src/model/service/PasswordChangeManager.cjs +2 -2
- package/dist/development/src/model/service/PasswordChangeManager.cjs.map +1 -1
- package/dist/development/src/model/service/PasswordChangeManager.js +2 -2
- package/dist/development/src/model/service/PasswordChangeManager.js.map +1 -1
- package/dist/development/src/model/service/PasswordResetManager.cjs +14 -5
- package/dist/development/src/model/service/PasswordResetManager.cjs.map +1 -1
- package/dist/development/src/model/service/PasswordResetManager.js +14 -5
- package/dist/development/src/model/service/PasswordResetManager.js.map +1 -1
- package/dist/development/src/model/service/PasswordStrengthValidator.cjs +8 -0
- package/dist/development/src/model/service/PasswordStrengthValidator.cjs.map +1 -1
- package/dist/development/src/model/service/PasswordStrengthValidator.js +8 -0
- package/dist/development/src/model/service/PasswordStrengthValidator.js.map +1 -1
- package/dist/development/src/model/service/PasswordlessSignInManager.cjs +59 -31
- package/dist/development/src/model/service/PasswordlessSignInManager.cjs.map +1 -1
- package/dist/development/src/model/service/PasswordlessSignInManager.js +59 -31
- package/dist/development/src/model/service/PasswordlessSignInManager.js.map +1 -1
- package/dist/development/src/model/service/PersonAccessManager.cjs.map +1 -1
- package/dist/development/src/model/service/PersonAccessManager.js.map +1 -1
- package/dist/development/src/model/service/PersonManager.cjs +9 -3
- package/dist/development/src/model/service/PersonManager.cjs.map +1 -1
- package/dist/development/src/model/service/PersonManager.js +9 -3
- 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/RateLimiter.cjs +69 -0
- package/dist/development/src/model/service/RateLimiter.cjs.map +1 -0
- package/dist/development/src/model/service/RateLimiter.js +69 -0
- package/dist/development/src/model/service/RateLimiter.js.map +1 -0
- 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 +5 -0
- package/dist/development/src/model/service/SecretsManager.cjs.map +1 -1
- package/dist/development/src/model/service/SecretsManager.js +5 -0
- package/dist/development/src/model/service/SecretsManager.js.map +1 -1
- package/dist/development/src/model/service/SignInManager.cjs +223 -10
- package/dist/development/src/model/service/SignInManager.cjs.map +1 -1
- package/dist/development/src/model/service/SignInManager.js +223 -10
- package/dist/development/src/model/service/SignInManager.js.map +1 -1
- package/dist/development/src/model/service/SignOutManager.cjs +70 -0
- package/dist/development/src/model/service/SignOutManager.cjs.map +1 -0
- package/dist/development/src/model/service/SignOutManager.js +70 -0
- package/dist/development/src/model/service/SignOutManager.js.map +1 -0
- package/dist/development/src/model/service/SignUpManager.cjs +20 -10
- package/dist/development/src/model/service/SignUpManager.cjs.map +1 -1
- package/dist/development/src/model/service/SignUpManager.js +21 -11
- package/dist/development/src/model/service/SignUpManager.js.map +1 -1
- package/dist/development/src/model/service/apiKey/ApiKeyManager.cjs +130 -17
- package/dist/development/src/model/service/apiKey/ApiKeyManager.cjs.map +1 -1
- package/dist/development/src/model/service/apiKey/ApiKeyManager.js +133 -20
- package/dist/development/src/model/service/apiKey/ApiKeyManager.js.map +1 -1
- package/dist/development/src/model/service/apiKey/ApiKeyService.cjs +14 -6
- package/dist/development/src/model/service/apiKey/ApiKeyService.cjs.map +1 -1
- package/dist/development/src/model/service/apiKey/ApiKeyService.js +14 -6
- package/dist/development/src/model/service/apiKey/ApiKeyService.js.map +1 -1
- package/dist/development/src/model/service/apiKey/UnpersistedApiKeyManager.cjs +82 -0
- package/dist/development/src/model/service/apiKey/UnpersistedApiKeyManager.cjs.map +1 -0
- package/dist/development/src/model/service/apiKey/UnpersistedApiKeyManager.js +82 -0
- package/dist/development/src/model/service/apiKey/UnpersistedApiKeyManager.js.map +1 -0
- package/dist/development/src/model/service/captcha/CaptchaValidator.cjs +56 -0
- package/dist/development/src/model/service/captcha/CaptchaValidator.cjs.map +1 -0
- package/dist/development/src/model/service/captcha/CaptchaValidator.js +56 -0
- package/dist/development/src/model/service/captcha/CaptchaValidator.js.map +1 -0
- package/dist/development/src/model/service/captcha/HCaptchaProvider.cjs +31 -0
- package/dist/development/src/model/service/captcha/HCaptchaProvider.cjs.map +1 -0
- package/dist/development/src/model/service/captcha/HCaptchaProvider.js +31 -0
- package/dist/development/src/model/service/captcha/HCaptchaProvider.js.map +1 -0
- package/dist/development/src/model/service/captcha/RecaptchaV3Provider.cjs +37 -0
- package/dist/development/src/model/service/captcha/RecaptchaV3Provider.cjs.map +1 -0
- package/dist/development/src/model/service/captcha/RecaptchaV3Provider.js +37 -0
- package/dist/development/src/model/service/captcha/RecaptchaV3Provider.js.map +1 -0
- package/dist/development/src/model/service/captcha/TurnstileProvider.cjs +35 -0
- package/dist/development/src/model/service/captcha/TurnstileProvider.cjs.map +1 -0
- package/dist/development/src/model/service/captcha/TurnstileProvider.js +35 -0
- package/dist/development/src/model/service/captcha/TurnstileProvider.js.map +1 -0
- 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/helpers/isPasswordlessEnabled.cjs +16 -0
- package/dist/development/src/model/service/helpers/isPasswordlessEnabled.cjs.map +1 -0
- package/dist/development/src/model/service/helpers/isPasswordlessEnabled.js +16 -0
- package/dist/development/src/model/service/helpers/isPasswordlessEnabled.js.map +1 -0
- package/dist/development/src/model/service/idp/BackchannelLogoutManager.cjs +84 -0
- package/dist/development/src/model/service/idp/BackchannelLogoutManager.cjs.map +1 -0
- package/dist/development/src/model/service/idp/BackchannelLogoutManager.js +84 -0
- package/dist/development/src/model/service/idp/BackchannelLogoutManager.js.map +1 -0
- 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 +1 -0
- package/dist/development/src/model/service/idp/IDPManager.cjs.map +1 -1
- package/dist/development/src/model/service/idp/IDPManager.js +1 -0
- package/dist/development/src/model/service/idp/IDPManager.js.map +1 -1
- package/dist/development/src/model/service/idp/IDPRevalidation.cjs +54 -0
- package/dist/development/src/model/service/idp/IDPRevalidation.cjs.map +1 -0
- package/dist/development/src/model/service/idp/IDPRevalidation.js +37 -0
- package/dist/development/src/model/service/idp/IDPRevalidation.js.map +1 -0
- package/dist/development/src/model/service/idp/IdpSessionRevalidator.cjs +176 -0
- package/dist/development/src/model/service/idp/IdpSessionRevalidator.cjs.map +1 -0
- package/dist/development/src/model/service/idp/IdpSessionRevalidator.js +176 -0
- package/dist/development/src/model/service/idp/IdpSessionRevalidator.js.map +1 -0
- package/dist/development/src/model/service/idp/PersonIdentityProviderManager.cjs +44 -0
- package/dist/development/src/model/service/idp/PersonIdentityProviderManager.cjs.map +1 -0
- package/dist/development/src/model/service/idp/PersonIdentityProviderManager.js +44 -0
- package/dist/development/src/model/service/idp/PersonIdentityProviderManager.js.map +1 -0
- 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 +171 -4
- package/dist/development/src/model/service/idp/providers/OIDCHelpers.cjs.map +1 -1
- package/dist/development/src/model/service/idp/providers/OIDCHelpers.js +172 -5
- package/dist/development/src/model/service/idp/providers/OIDCHelpers.js.map +1 -1
- package/dist/development/src/model/service/idp/providers/OIDCProvider.cjs +34 -4
- package/dist/development/src/model/service/idp/providers/OIDCProvider.cjs.map +1 -1
- package/dist/development/src/model/service/idp/providers/OIDCProvider.js +35 -5
- package/dist/development/src/model/service/idp/providers/OIDCProvider.js.map +1 -1
- package/dist/development/src/model/service/idp/providers/OIDCTypes.cjs +51 -1
- package/dist/development/src/model/service/idp/providers/OIDCTypes.cjs.map +1 -1
- package/dist/development/src/model/service/idp/providers/OIDCTypes.js +52 -2
- package/dist/development/src/model/service/idp/providers/OIDCTypes.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/RateLimit.cjs +7 -0
- package/dist/development/src/model/type/RateLimit.cjs.map +1 -0
- package/dist/development/src/model/type/RateLimit.js +7 -0
- package/dist/development/src/model/type/RateLimit.js.map +1 -0
- 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/interval.cjs +7 -0
- package/dist/development/src/model/utils/interval.cjs.map +1 -1
- package/dist/development/src/model/utils/interval.js +7 -0
- package/dist/development/src/model/utils/interval.js.map +1 -1
- package/dist/development/src/model/utils/token.cjs +10 -0
- package/dist/development/src/model/utils/token.cjs.map +1 -1
- package/dist/development/src/model/utils/token.js +10 -0
- package/dist/development/src/model/utils/token.js.map +1 -1
- package/dist/development/src/resolvers/ResolverFactory.cjs +33 -3
- package/dist/development/src/resolvers/ResolverFactory.cjs.map +1 -1
- package/dist/development/src/resolvers/ResolverFactory.js +33 -3
- package/dist/development/src/resolvers/ResolverFactory.js.map +1 -1
- package/dist/development/src/resolvers/TenantResolverContextFactory.cjs +18 -5
- package/dist/development/src/resolvers/TenantResolverContextFactory.cjs.map +1 -1
- package/dist/development/src/resolvers/TenantResolverContextFactory.js +18 -5
- package/dist/development/src/resolvers/TenantResolverContextFactory.js.map +1 -1
- package/dist/development/src/resolvers/errorUtils.cjs.map +1 -1
- 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 +47 -4
- package/dist/development/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.js +47 -4
- package/dist/development/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.cjs +8 -0
- package/dist/development/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.js +8 -0
- package/dist/development/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/configuration/AuthPolicyMutationResolver.cjs +112 -0
- package/dist/development/src/resolvers/mutation/configuration/AuthPolicyMutationResolver.cjs.map +1 -0
- package/dist/development/src/resolvers/mutation/configuration/AuthPolicyMutationResolver.js +112 -0
- package/dist/development/src/resolvers/mutation/configuration/AuthPolicyMutationResolver.js.map +1 -0
- package/dist/development/src/resolvers/mutation/configuration/ConfigurationMutationResolver.cjs +20 -0
- package/dist/development/src/resolvers/mutation/configuration/ConfigurationMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/configuration/ConfigurationMutationResolver.js +20 -0
- package/dist/development/src/resolvers/mutation/configuration/ConfigurationMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/identity/GlobalRolesMutationResolver.cjs +24 -2
- package/dist/development/src/resolvers/mutation/identity/GlobalRolesMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/identity/GlobalRolesMutationResolver.js +24 -2
- package/dist/development/src/resolvers/mutation/identity/GlobalRolesMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/idp/AddIDPMutationResolver.cjs +18 -1
- package/dist/development/src/resolvers/mutation/idp/AddIDPMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/idp/AddIDPMutationResolver.js +18 -1
- package/dist/development/src/resolvers/mutation/idp/AddIDPMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/idp/DisableIDPMutationResolver.cjs +8 -0
- package/dist/development/src/resolvers/mutation/idp/DisableIDPMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/idp/DisableIDPMutationResolver.js +8 -0
- package/dist/development/src/resolvers/mutation/idp/DisableIDPMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/idp/DisconnectMyIdentityProviderMutationResolver.cjs +53 -0
- package/dist/development/src/resolvers/mutation/idp/DisconnectMyIdentityProviderMutationResolver.cjs.map +1 -0
- package/dist/development/src/resolvers/mutation/idp/DisconnectMyIdentityProviderMutationResolver.js +53 -0
- package/dist/development/src/resolvers/mutation/idp/DisconnectMyIdentityProviderMutationResolver.js.map +1 -0
- package/dist/development/src/resolvers/mutation/idp/EnableIDPMutationResolver.cjs +8 -0
- package/dist/development/src/resolvers/mutation/idp/EnableIDPMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/idp/EnableIDPMutationResolver.js +8 -0
- package/dist/development/src/resolvers/mutation/idp/EnableIDPMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/idp/UpdateIDPMutationResolver.cjs +19 -1
- package/dist/development/src/resolvers/mutation/idp/UpdateIDPMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/idp/UpdateIDPMutationResolver.js +19 -1
- package/dist/development/src/resolvers/mutation/idp/UpdateIDPMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/idp/audit.cjs +20 -0
- package/dist/development/src/resolvers/mutation/idp/audit.cjs.map +1 -0
- package/dist/development/src/resolvers/mutation/idp/audit.js +20 -0
- package/dist/development/src/resolvers/mutation/idp/audit.js.map +1 -0
- package/dist/development/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.cjs +23 -0
- package/dist/development/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.js +23 -0
- package/dist/development/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/person/ChangePasswordMutationResolver.cjs +2 -0
- package/dist/development/src/resolvers/mutation/person/ChangePasswordMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/person/ChangePasswordMutationResolver.js +2 -0
- package/dist/development/src/resolvers/mutation/person/ChangePasswordMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/person/ChangeProfileMutationResolver.cjs +54 -1
- package/dist/development/src/resolvers/mutation/person/ChangeProfileMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/person/ChangeProfileMutationResolver.js +54 -1
- package/dist/development/src/resolvers/mutation/person/ChangeProfileMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/person/DisablePersonMutationResolver.cjs +2 -0
- package/dist/development/src/resolvers/mutation/person/DisablePersonMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/person/DisablePersonMutationResolver.js +2 -0
- package/dist/development/src/resolvers/mutation/person/DisablePersonMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/person/EmailOtpMutationResolver.cjs +111 -0
- package/dist/development/src/resolvers/mutation/person/EmailOtpMutationResolver.cjs.map +1 -0
- package/dist/development/src/resolvers/mutation/person/EmailOtpMutationResolver.js +111 -0
- package/dist/development/src/resolvers/mutation/person/EmailOtpMutationResolver.js.map +1 -0
- package/dist/development/src/resolvers/mutation/person/EmailVerificationMutationResolver.cjs +93 -0
- package/dist/development/src/resolvers/mutation/person/EmailVerificationMutationResolver.cjs.map +1 -0
- package/dist/development/src/resolvers/mutation/person/EmailVerificationMutationResolver.js +93 -0
- package/dist/development/src/resolvers/mutation/person/EmailVerificationMutationResolver.js.map +1 -0
- package/dist/development/src/resolvers/mutation/person/ForceSignOutMutationResolver.cjs +69 -0
- package/dist/development/src/resolvers/mutation/person/ForceSignOutMutationResolver.cjs.map +1 -0
- package/dist/development/src/resolvers/mutation/person/ForceSignOutMutationResolver.js +69 -0
- package/dist/development/src/resolvers/mutation/person/ForceSignOutMutationResolver.js.map +1 -0
- package/dist/development/src/resolvers/mutation/person/IDPMutationResolver.cjs +5 -1
- package/dist/development/src/resolvers/mutation/person/IDPMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/person/IDPMutationResolver.js +5 -1
- package/dist/development/src/resolvers/mutation/person/IDPMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/person/InviteMutationResolver.cjs +25 -6
- package/dist/development/src/resolvers/mutation/person/InviteMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/person/InviteMutationResolver.js +25 -6
- package/dist/development/src/resolvers/mutation/person/InviteMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/person/OtpMutationResolver.cjs +26 -12
- package/dist/development/src/resolvers/mutation/person/OtpMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/person/OtpMutationResolver.js +27 -13
- package/dist/development/src/resolvers/mutation/person/OtpMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/person/PasswordlessMutationResolver.cjs +34 -7
- package/dist/development/src/resolvers/mutation/person/PasswordlessMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/person/PasswordlessMutationResolver.js +34 -7
- package/dist/development/src/resolvers/mutation/person/PasswordlessMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/person/RegenerateBackupCodesMutationResolver.cjs +62 -0
- package/dist/development/src/resolvers/mutation/person/RegenerateBackupCodesMutationResolver.cjs.map +1 -0
- package/dist/development/src/resolvers/mutation/person/RegenerateBackupCodesMutationResolver.js +62 -0
- package/dist/development/src/resolvers/mutation/person/RegenerateBackupCodesMutationResolver.js.map +1 -0
- package/dist/development/src/resolvers/mutation/person/ResetPasswordMutationResolver.cjs +21 -2
- package/dist/development/src/resolvers/mutation/person/ResetPasswordMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/person/ResetPasswordMutationResolver.js +21 -2
- package/dist/development/src/resolvers/mutation/person/ResetPasswordMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/person/ResetPersonMfaMutationResolver.cjs +57 -0
- package/dist/development/src/resolvers/mutation/person/ResetPersonMfaMutationResolver.cjs.map +1 -0
- package/dist/development/src/resolvers/mutation/person/ResetPersonMfaMutationResolver.js +57 -0
- package/dist/development/src/resolvers/mutation/person/ResetPersonMfaMutationResolver.js.map +1 -0
- package/dist/development/src/resolvers/mutation/person/RevokeSessionMutationResolver.cjs +64 -0
- package/dist/development/src/resolvers/mutation/person/RevokeSessionMutationResolver.cjs.map +1 -0
- package/dist/development/src/resolvers/mutation/person/RevokeSessionMutationResolver.js +64 -0
- package/dist/development/src/resolvers/mutation/person/RevokeSessionMutationResolver.js.map +1 -0
- package/dist/development/src/resolvers/mutation/person/SignInMutationResolver.cjs +73 -5
- package/dist/development/src/resolvers/mutation/person/SignInMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/person/SignInMutationResolver.js +73 -5
- package/dist/development/src/resolvers/mutation/person/SignInMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/person/SignOutMutationResolver.cjs +23 -20
- package/dist/development/src/resolvers/mutation/person/SignOutMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/person/SignOutMutationResolver.js +23 -20
- package/dist/development/src/resolvers/mutation/person/SignOutMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/person/SignUpMutationResolver.cjs +48 -2
- package/dist/development/src/resolvers/mutation/person/SignUpMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/person/SignUpMutationResolver.js +48 -2
- 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 +12 -0
- package/dist/development/src/resolvers/mutation/project/CreateProjectMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/project/CreateProjectMutationResolver.js +12 -0
- package/dist/development/src/resolvers/mutation/project/CreateProjectMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/project/SetProjectSecretMutationResolver.cjs +11 -0
- package/dist/development/src/resolvers/mutation/project/SetProjectSecretMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/project/SetProjectSecretMutationResolver.js +11 -0
- package/dist/development/src/resolvers/mutation/project/SetProjectSecretMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/project/UpdateProjectMutationResolver.cjs +14 -0
- package/dist/development/src/resolvers/mutation/project/UpdateProjectMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/project/UpdateProjectMutationResolver.js +14 -0
- package/dist/development/src/resolvers/mutation/project/UpdateProjectMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.cjs +4 -0
- package/dist/development/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.js +4 -0
- package/dist/development/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.cjs +6 -0
- package/dist/development/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.js +6 -0
- package/dist/development/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.cjs +6 -0
- package/dist/development/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.js +6 -0
- package/dist/development/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/projectMember/audit.cjs +34 -0
- package/dist/development/src/resolvers/mutation/projectMember/audit.cjs.map +1 -0
- package/dist/development/src/resolvers/mutation/projectMember/audit.js +34 -0
- package/dist/development/src/resolvers/mutation/projectMember/audit.js.map +1 -0
- package/dist/development/src/resolvers/query/ApiKeyQueryResolver.cjs +35 -0
- package/dist/development/src/resolvers/query/ApiKeyQueryResolver.cjs.map +1 -0
- package/dist/development/src/resolvers/query/ApiKeyQueryResolver.js +35 -0
- package/dist/development/src/resolvers/query/ApiKeyQueryResolver.js.map +1 -0
- package/dist/development/src/resolvers/query/AuthLogQueryResolver.cjs +74 -0
- package/dist/development/src/resolvers/query/AuthLogQueryResolver.cjs.map +1 -0
- package/dist/development/src/resolvers/query/AuthLogQueryResolver.js +74 -0
- package/dist/development/src/resolvers/query/AuthLogQueryResolver.js.map +1 -0
- package/dist/development/src/resolvers/query/AuthPolicyQueryResolver.cjs +53 -0
- package/dist/development/src/resolvers/query/AuthPolicyQueryResolver.cjs.map +1 -0
- package/dist/development/src/resolvers/query/AuthPolicyQueryResolver.js +53 -0
- package/dist/development/src/resolvers/query/AuthPolicyQueryResolver.js.map +1 -0
- 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 +2 -0
- package/dist/development/src/resolvers/query/IDPQueryResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/query/IDPQueryResolver.js +2 -0
- package/dist/development/src/resolvers/query/IDPQueryResolver.js.map +1 -1
- package/dist/development/src/resolvers/query/MailTemplateQueryResolver.cjs +2 -0
- package/dist/development/src/resolvers/query/MailTemplateQueryResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/query/MailTemplateQueryResolver.js +2 -0
- package/dist/development/src/resolvers/query/MailTemplateQueryResolver.js.map +1 -1
- package/dist/development/src/resolvers/query/MeQueryResolver.cjs +1 -0
- package/dist/development/src/resolvers/query/MeQueryResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/query/MeQueryResolver.js +1 -0
- package/dist/development/src/resolvers/query/MeQueryResolver.js.map +1 -1
- package/dist/development/src/resolvers/query/PersonQueryResolver.cjs +39 -1
- package/dist/development/src/resolvers/query/PersonQueryResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/query/PersonQueryResolver.js +39 -1
- package/dist/development/src/resolvers/query/PersonQueryResolver.js.map +1 -1
- package/dist/development/src/resolvers/query/ProjectMembersQueryResolver.cjs +2 -0
- package/dist/development/src/resolvers/query/ProjectMembersQueryResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/query/ProjectMembersQueryResolver.js +2 -0
- package/dist/development/src/resolvers/query/ProjectMembersQueryResolver.js.map +1 -1
- package/dist/development/src/resolvers/query/ProjectQueryResolver.cjs +4 -2
- package/dist/development/src/resolvers/query/ProjectQueryResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/query/ProjectQueryResolver.js +4 -2
- package/dist/development/src/resolvers/query/ProjectQueryResolver.js.map +1 -1
- package/dist/development/src/resolvers/responseHelpers/ApiKeyResponseFactory.cjs +55 -0
- package/dist/development/src/resolvers/responseHelpers/ApiKeyResponseFactory.cjs.map +1 -0
- package/dist/development/src/resolvers/responseHelpers/ApiKeyResponseFactory.js +55 -0
- package/dist/development/src/resolvers/responseHelpers/ApiKeyResponseFactory.js.map +1 -0
- package/dist/development/src/resolvers/responseHelpers/PersonResponseFactory.cjs +10 -2
- package/dist/development/src/resolvers/responseHelpers/PersonResponseFactory.cjs.map +1 -1
- package/dist/development/src/resolvers/responseHelpers/PersonResponseFactory.js +10 -2
- package/dist/development/src/resolvers/responseHelpers/PersonResponseFactory.js.map +1 -1
- package/dist/development/src/resolvers/responseHelpers/SignInResponseFactory.cjs +5 -1
- package/dist/development/src/resolvers/responseHelpers/SignInResponseFactory.cjs.map +1 -1
- package/dist/development/src/resolvers/responseHelpers/SignInResponseFactory.js +5 -1
- package/dist/development/src/resolvers/responseHelpers/SignInResponseFactory.js.map +1 -1
- package/dist/development/src/resolvers/types/IdentityTypeResolver.cjs +33 -1
- package/dist/development/src/resolvers/types/IdentityTypeResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/types/IdentityTypeResolver.js +33 -1
- package/dist/development/src/resolvers/types/IdentityTypeResolver.js.map +1 -1
- package/dist/development/src/resolvers/types/PersonTypeResolver.cjs +52 -0
- package/dist/development/src/resolvers/types/PersonTypeResolver.cjs.map +1 -0
- package/dist/development/src/resolvers/types/PersonTypeResolver.js +52 -0
- package/dist/development/src/resolvers/types/PersonTypeResolver.js.map +1 -0
- package/dist/development/src/resolvers/types/ProjectTypeResolver.cjs +23 -2
- package/dist/development/src/resolvers/types/ProjectTypeResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/types/ProjectTypeResolver.js +23 -2
- package/dist/development/src/resolvers/types/ProjectTypeResolver.js.map +1 -1
- package/dist/development/src/schema/tenant.graphql.cjs +826 -20
- package/dist/development/src/schema/tenant.graphql.cjs.map +1 -1
- package/dist/development/src/schema/tenant.graphql.js +826 -20
- 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/batchQuery.cjs.map +1 -1
- package/dist/development/src/utils/batchQuery.js.map +1 -1
- package/dist/production/index.cjs +118 -0
- package/dist/production/index.cjs.map +1 -1
- package/dist/production/index.js +117 -2
- package/dist/production/index.js.map +1 -1
- package/dist/production/src/TenantContainer.cjs +119 -23
- package/dist/production/src/TenantContainer.cjs.map +1 -1
- package/dist/production/src/TenantContainer.js +119 -23
- package/dist/production/src/TenantContainer.js.map +1 -1
- package/dist/production/src/bridges/system/IdentityFetcher.cjs +2 -0
- package/dist/production/src/bridges/system/IdentityFetcher.cjs.map +1 -1
- package/dist/production/src/bridges/system/IdentityFetcher.js +2 -0
- package/dist/production/src/bridges/system/IdentityFetcher.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/2026-05-12-120000-api-key-session-tracking.cjs +23 -0
- package/dist/production/src/migrations/2026-05-12-120000-api-key-session-tracking.cjs.map +1 -0
- package/dist/production/src/migrations/2026-05-12-120000-api-key-session-tracking.js +24 -0
- package/dist/production/src/migrations/2026-05-12-120000-api-key-session-tracking.js.map +1 -0
- package/dist/production/src/migrations/2026-05-12-130000-api-key-trust-forwarded-info.cjs +10 -0
- package/dist/production/src/migrations/2026-05-12-130000-api-key-trust-forwarded-info.cjs.map +1 -0
- package/dist/production/src/migrations/2026-05-12-130000-api-key-trust-forwarded-info.js +11 -0
- package/dist/production/src/migrations/2026-05-12-130000-api-key-trust-forwarded-info.js.map +1 -0
- package/dist/production/src/migrations/2026-05-13-120000-auth-log-event-data.cjs +16 -0
- package/dist/production/src/migrations/2026-05-13-120000-auth-log-event-data.cjs.map +1 -0
- package/dist/production/src/migrations/2026-05-13-120000-auth-log-event-data.js +17 -0
- package/dist/production/src/migrations/2026-05-13-120000-auth-log-event-data.js.map +1 -0
- package/dist/production/src/migrations/2026-05-13-130000-anti-abuse.cjs +44 -0
- package/dist/production/src/migrations/2026-05-13-130000-anti-abuse.cjs.map +1 -0
- package/dist/production/src/migrations/2026-05-13-130000-anti-abuse.js +45 -0
- package/dist/production/src/migrations/2026-05-13-130000-anti-abuse.js.map +1 -0
- package/dist/production/src/migrations/2026-05-14-100000-auth-log-admin-actions.cjs +20 -0
- package/dist/production/src/migrations/2026-05-14-100000-auth-log-admin-actions.cjs.map +1 -0
- package/dist/production/src/migrations/2026-05-14-100000-auth-log-admin-actions.js +21 -0
- package/dist/production/src/migrations/2026-05-14-100000-auth-log-admin-actions.js.map +1 -0
- package/dist/production/src/migrations/2026-05-15-120000-config-reveal-login-method.cjs +10 -0
- package/dist/production/src/migrations/2026-05-15-120000-config-reveal-login-method.cjs.map +1 -0
- package/dist/production/src/migrations/2026-05-15-120000-config-reveal-login-method.js +11 -0
- package/dist/production/src/migrations/2026-05-15-120000-config-reveal-login-method.js.map +1 -0
- package/dist/production/src/migrations/2026-05-21-100000-person-mfa.cjs +26 -0
- package/dist/production/src/migrations/2026-05-21-100000-person-mfa.cjs.map +1 -0
- package/dist/production/src/migrations/2026-05-21-100000-person-mfa.js +27 -0
- package/dist/production/src/migrations/2026-05-21-100000-person-mfa.js.map +1 -0
- package/dist/production/src/migrations/2026-05-21-110000-mfa-foundation.cjs +43 -0
- package/dist/production/src/migrations/2026-05-21-110000-mfa-foundation.cjs.map +1 -0
- package/dist/production/src/migrations/2026-05-21-110000-mfa-foundation.js +44 -0
- package/dist/production/src/migrations/2026-05-21-110000-mfa-foundation.js.map +1 -0
- package/dist/production/src/migrations/2026-05-21-120000-email-otp.cjs +9 -0
- package/dist/production/src/migrations/2026-05-21-120000-email-otp.cjs.map +1 -0
- package/dist/production/src/migrations/2026-05-21-120000-email-otp.js +10 -0
- package/dist/production/src/migrations/2026-05-21-120000-email-otp.js.map +1 -0
- package/dist/production/src/migrations/2026-05-21-130000-api-key-session-policy.cjs +11 -0
- package/dist/production/src/migrations/2026-05-21-130000-api-key-session-policy.cjs.map +1 -0
- package/dist/production/src/migrations/2026-05-21-130000-api-key-session-policy.js +12 -0
- package/dist/production/src/migrations/2026-05-21-130000-api-key-session-policy.js.map +1 -0
- package/dist/production/src/migrations/2026-05-21-140000-mfa-grace-duration.cjs +10 -0
- package/dist/production/src/migrations/2026-05-21-140000-mfa-grace-duration.cjs.map +1 -0
- package/dist/production/src/migrations/2026-05-21-140000-mfa-grace-duration.js +11 -0
- package/dist/production/src/migrations/2026-05-21-140000-mfa-grace-duration.js.map +1 -0
- package/dist/production/src/migrations/2026-05-21-150000-email-otp-rate-limit.cjs +18 -0
- package/dist/production/src/migrations/2026-05-21-150000-email-otp-rate-limit.cjs.map +1 -0
- package/dist/production/src/migrations/2026-05-21-150000-email-otp-rate-limit.js +19 -0
- package/dist/production/src/migrations/2026-05-21-150000-email-otp-rate-limit.js.map +1 -0
- package/dist/production/src/migrations/2026-05-26-120000-email-verification-types.cjs +15 -0
- package/dist/production/src/migrations/2026-05-26-120000-email-verification-types.cjs.map +1 -0
- package/dist/production/src/migrations/2026-05-26-120000-email-verification-types.js +16 -0
- package/dist/production/src/migrations/2026-05-26-120000-email-verification-types.js.map +1 -0
- package/dist/production/src/migrations/2026-05-26-120010-email-verification.cjs +28 -0
- package/dist/production/src/migrations/2026-05-26-120010-email-verification.cjs.map +1 -0
- package/dist/production/src/migrations/2026-05-26-120010-email-verification.js +29 -0
- package/dist/production/src/migrations/2026-05-26-120010-email-verification.js.map +1 -0
- package/dist/production/src/migrations/2026-05-26-130000-email-change-verification-config.cjs +19 -0
- package/dist/production/src/migrations/2026-05-26-130000-email-change-verification-config.cjs.map +1 -0
- package/dist/production/src/migrations/2026-05-26-130000-email-change-verification-config.js +20 -0
- package/dist/production/src/migrations/2026-05-26-130000-email-change-verification-config.js.map +1 -0
- package/dist/production/src/migrations/2026-05-26-130010-idp-require-verified-email.cjs +15 -0
- package/dist/production/src/migrations/2026-05-26-130010-idp-require-verified-email.cjs.map +1 -0
- package/dist/production/src/migrations/2026-05-26-130010-idp-require-verified-email.js +16 -0
- package/dist/production/src/migrations/2026-05-26-130010-idp-require-verified-email.js.map +1 -0
- package/dist/production/src/migrations/2026-05-26-130020-email-verification-rate-limit.cjs +17 -0
- package/dist/production/src/migrations/2026-05-26-130020-email-verification-rate-limit.cjs.map +1 -0
- package/dist/production/src/migrations/2026-05-26-130020-email-verification-rate-limit.js +18 -0
- package/dist/production/src/migrations/2026-05-26-130020-email-verification-rate-limit.js.map +1 -0
- package/dist/production/src/migrations/2026-05-26-130030-captcha-protect-flows.cjs +22 -0
- package/dist/production/src/migrations/2026-05-26-130030-captcha-protect-flows.cjs.map +1 -0
- package/dist/production/src/migrations/2026-05-26-130030-captcha-protect-flows.js +23 -0
- package/dist/production/src/migrations/2026-05-26-130030-captcha-protect-flows.js.map +1 -0
- package/dist/production/src/migrations/2026-05-26-140000-idp-session.cjs +31 -0
- package/dist/production/src/migrations/2026-05-26-140000-idp-session.cjs.map +1 -0
- package/dist/production/src/migrations/2026-05-26-140000-idp-session.js +32 -0
- package/dist/production/src/migrations/2026-05-26-140000-idp-session.js.map +1 -0
- package/dist/production/src/migrations/2026-06-08-100000-idp-assume-email-verified.cjs +15 -0
- package/dist/production/src/migrations/2026-06-08-100000-idp-assume-email-verified.cjs.map +1 -0
- package/dist/production/src/migrations/2026-06-08-100000-idp-assume-email-verified.js +16 -0
- package/dist/production/src/migrations/2026-06-08-100000-idp-assume-email-verified.js.map +1 -0
- package/dist/production/src/migrations/2026-06-16-120000-login-anomaly-detection.cjs +30 -0
- package/dist/production/src/migrations/2026-06-16-120000-login-anomaly-detection.cjs.map +1 -0
- package/dist/production/src/migrations/2026-06-16-120000-login-anomaly-detection.js +31 -0
- package/dist/production/src/migrations/2026-06-16-120000-login-anomaly-detection.js.map +1 -0
- package/dist/production/src/migrations/2026-06-16-130000-idp-logout.cjs +10 -0
- package/dist/production/src/migrations/2026-06-16-130000-idp-logout.cjs.map +1 -0
- package/dist/production/src/migrations/2026-06-16-130000-idp-logout.js +11 -0
- package/dist/production/src/migrations/2026-06-16-130000-idp-logout.js.map +1 -0
- package/dist/production/src/migrations/runner.cjs +47 -1
- package/dist/production/src/migrations/runner.cjs.map +1 -1
- package/dist/production/src/migrations/runner.js +47 -1
- package/dist/production/src/migrations/runner.js.map +1 -1
- package/dist/production/src/migrations/snapshot.cjs +178 -10
- package/dist/production/src/migrations/snapshot.cjs.map +1 -1
- package/dist/production/src/migrations/snapshot.js +178 -10
- 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/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/PermissionActions.cjs +10 -0
- package/dist/production/src/model/authorization/PermissionActions.cjs.map +1 -1
- package/dist/production/src/model/authorization/PermissionActions.js +10 -0
- 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 +7 -0
- package/dist/production/src/model/authorization/PermissionsFactory.cjs.map +1 -1
- package/dist/production/src/model/authorization/PermissionsFactory.js +7 -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/commands/CommandBus.cjs.map +1 -1
- 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 +14 -2
- package/dist/production/src/model/commands/apiKey/CreateApiKeyCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/apiKey/CreateApiKeyCommand.js +14 -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 +41 -9
- package/dist/production/src/model/commands/apiKey/ProlongApiKeyCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/apiKey/ProlongApiKeyCommand.js +41 -9
- package/dist/production/src/model/commands/apiKey/ProlongApiKeyCommand.js.map +1 -1
- package/dist/production/src/model/commands/authLog/CreateAuthLogEntryCommand.cjs +5 -1
- package/dist/production/src/model/commands/authLog/CreateAuthLogEntryCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/authLog/CreateAuthLogEntryCommand.js +5 -1
- package/dist/production/src/model/commands/authLog/CreateAuthLogEntryCommand.js.map +1 -1
- package/dist/production/src/model/commands/authPolicy/CreateAuthPolicyCommand.cjs +28 -0
- package/dist/production/src/model/commands/authPolicy/CreateAuthPolicyCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/authPolicy/CreateAuthPolicyCommand.js +28 -0
- package/dist/production/src/model/commands/authPolicy/CreateAuthPolicyCommand.js.map +1 -0
- package/dist/production/src/model/commands/authPolicy/DeleteAuthPolicyCommand.cjs +14 -0
- package/dist/production/src/model/commands/authPolicy/DeleteAuthPolicyCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/authPolicy/DeleteAuthPolicyCommand.js +14 -0
- package/dist/production/src/model/commands/authPolicy/DeleteAuthPolicyCommand.js.map +1 -0
- package/dist/production/src/model/commands/authPolicy/UpdateAuthPolicyCommand.cjs +25 -0
- package/dist/production/src/model/commands/authPolicy/UpdateAuthPolicyCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/authPolicy/UpdateAuthPolicyCommand.js +25 -0
- package/dist/production/src/model/commands/authPolicy/UpdateAuthPolicyCommand.js.map +1 -0
- package/dist/production/src/model/commands/backupCode/ConsumeBackupCodeCommand.cjs +20 -0
- package/dist/production/src/model/commands/backupCode/ConsumeBackupCodeCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/backupCode/ConsumeBackupCodeCommand.js +20 -0
- package/dist/production/src/model/commands/backupCode/ConsumeBackupCodeCommand.js.map +1 -0
- package/dist/production/src/model/commands/backupCode/CreateBackupCodeCommand.cjs +19 -0
- package/dist/production/src/model/commands/backupCode/CreateBackupCodeCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/backupCode/CreateBackupCodeCommand.js +19 -0
- package/dist/production/src/model/commands/backupCode/CreateBackupCodeCommand.js.map +1 -0
- package/dist/production/src/model/commands/backupCode/DeleteBackupCodesCommand.cjs +13 -0
- package/dist/production/src/model/commands/backupCode/DeleteBackupCodesCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/backupCode/DeleteBackupCodesCommand.js +13 -0
- package/dist/production/src/model/commands/backupCode/DeleteBackupCodesCommand.js.map +1 -0
- package/dist/production/src/model/commands/configuration/UpdateConfigurationCommand.cjs +45 -2
- package/dist/production/src/model/commands/configuration/UpdateConfigurationCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/configuration/UpdateConfigurationCommand.js +45 -2
- 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.map +1 -1
- package/dist/production/src/model/commands/identity/PatchIdentityGlobalRoles.js.map +1 -1
- package/dist/production/src/model/commands/idp/ClaimIdpRevalidationCommand.cjs +19 -0
- package/dist/production/src/model/commands/idp/ClaimIdpRevalidationCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/idp/ClaimIdpRevalidationCommand.js +19 -0
- package/dist/production/src/model/commands/idp/ClaimIdpRevalidationCommand.js.map +1 -0
- package/dist/production/src/model/commands/idp/CreateIdpCommand.cjs +4 -2
- package/dist/production/src/model/commands/idp/CreateIdpCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/idp/CreateIdpCommand.js +4 -2
- package/dist/production/src/model/commands/idp/CreateIdpCommand.js.map +1 -1
- package/dist/production/src/model/commands/idp/CreateIdpSessionCommand.cjs +27 -0
- package/dist/production/src/model/commands/idp/CreateIdpSessionCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/idp/CreateIdpSessionCommand.js +27 -0
- package/dist/production/src/model/commands/idp/CreateIdpSessionCommand.js.map +1 -0
- 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/DisconnectPersonIdentityProviderCommand.cjs +17 -0
- package/dist/production/src/model/commands/idp/DisconnectPersonIdentityProviderCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/idp/DisconnectPersonIdentityProviderCommand.js +17 -0
- package/dist/production/src/model/commands/idp/DisconnectPersonIdentityProviderCommand.js.map +1 -0
- 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 +4 -2
- package/dist/production/src/model/commands/idp/UpdateIdpCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/idp/UpdateIdpCommand.js +4 -2
- package/dist/production/src/model/commands/idp/UpdateIdpCommand.js.map +1 -1
- package/dist/production/src/model/commands/idp/UpdateIdpSessionCommand.cjs +31 -0
- package/dist/production/src/model/commands/idp/UpdateIdpSessionCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/idp/UpdateIdpSessionCommand.js +31 -0
- package/dist/production/src/model/commands/idp/UpdateIdpSessionCommand.js.map +1 -0
- package/dist/production/src/model/commands/mailTemplate/AddMailTemplateCommand.cjs.map +1 -1
- 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.map +1 -1
- 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 +10 -4
- package/dist/production/src/model/commands/otp/ConfirmOtpCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/otp/ConfirmOtpCommand.js +11 -5
- package/dist/production/src/model/commands/otp/ConfirmOtpCommand.js.map +1 -1
- package/dist/production/src/model/commands/otp/DisableOtpCommand.cjs +9 -5
- package/dist/production/src/model/commands/otp/DisableOtpCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/otp/DisableOtpCommand.js +9 -5
- package/dist/production/src/model/commands/otp/DisableOtpCommand.js.map +1 -1
- package/dist/production/src/model/commands/otp/PrepareOtpCommand.cjs +14 -8
- package/dist/production/src/model/commands/otp/PrepareOtpCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/otp/PrepareOtpCommand.js +15 -9
- package/dist/production/src/model/commands/otp/PrepareOtpCommand.js.map +1 -1
- package/dist/production/src/model/commands/otp/ReEncryptOtpSecretCommand.cjs +22 -0
- package/dist/production/src/model/commands/otp/ReEncryptOtpSecretCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/otp/ReEncryptOtpSecretCommand.js +22 -0
- package/dist/production/src/model/commands/otp/ReEncryptOtpSecretCommand.js.map +1 -0
- package/dist/production/src/model/commands/otp/SetEmailOtpEnabledCommand.cjs +19 -0
- package/dist/production/src/model/commands/otp/SetEmailOtpEnabledCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/otp/SetEmailOtpEnabledCommand.js +19 -0
- package/dist/production/src/model/commands/otp/SetEmailOtpEnabledCommand.js.map +1 -0
- 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 +8 -2
- package/dist/production/src/model/commands/person/ChangeProfileCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/person/ChangeProfileCommand.js +8 -2
- package/dist/production/src/model/commands/person/ChangeProfileCommand.js.map +1 -1
- package/dist/production/src/model/commands/person/CreatePersonCommand.cjs +13 -3
- package/dist/production/src/model/commands/person/CreatePersonCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/person/CreatePersonCommand.js +13 -3
- 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/MarkEmailVerifiedCommand.cjs +21 -0
- package/dist/production/src/model/commands/person/MarkEmailVerifiedCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/person/MarkEmailVerifiedCommand.js +21 -0
- package/dist/production/src/model/commands/person/MarkEmailVerifiedCommand.js.map +1 -0
- package/dist/production/src/model/commands/person/ResetPersonMfaCommand.cjs +24 -0
- package/dist/production/src/model/commands/person/ResetPersonMfaCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/person/ResetPersonMfaCommand.js +24 -0
- package/dist/production/src/model/commands/person/ResetPersonMfaCommand.js.map +1 -0
- package/dist/production/src/model/commands/person/SetMfaGraceUntilCommand.cjs +16 -0
- package/dist/production/src/model/commands/person/SetMfaGraceUntilCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/person/SetMfaGraceUntilCommand.js +16 -0
- package/dist/production/src/model/commands/person/SetMfaGraceUntilCommand.js.map +1 -0
- 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/ClaimOtpAttemptCommand.cjs +17 -0
- package/dist/production/src/model/commands/personToken/ClaimOtpAttemptCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/personToken/ClaimOtpAttemptCommand.js +17 -0
- package/dist/production/src/model/commands/personToken/ClaimOtpAttemptCommand.js.map +1 -0
- package/dist/production/src/model/commands/personToken/CreatePersonTokenCommand.cjs +10 -2
- package/dist/production/src/model/commands/personToken/CreatePersonTokenCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/personToken/CreatePersonTokenCommand.js +11 -3
- 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/InvalidateEmailOtpTokensCommand.cjs +15 -0
- package/dist/production/src/model/commands/personToken/InvalidateEmailOtpTokensCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/personToken/InvalidateEmailOtpTokensCommand.js +15 -0
- package/dist/production/src/model/commands/personToken/InvalidateEmailOtpTokensCommand.js.map +1 -0
- 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.map +1 -1
- package/dist/production/src/model/commands/personToken/ResetPasswordCommand.js.map +1 -1
- package/dist/production/src/model/commands/personToken/SaveEmailOtpTokenCommand.cjs +32 -0
- package/dist/production/src/model/commands/personToken/SaveEmailOtpTokenCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/personToken/SaveEmailOtpTokenCommand.js +32 -0
- package/dist/production/src/model/commands/personToken/SaveEmailOtpTokenCommand.js.map +1 -0
- package/dist/production/src/model/commands/personToken/SavePersonTokenCommand.cjs +4 -2
- package/dist/production/src/model/commands/personToken/SavePersonTokenCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/personToken/SavePersonTokenCommand.js +4 -2
- 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/commands/rateLimit/RecordRateLimitEventCommand.cjs +19 -0
- package/dist/production/src/model/commands/rateLimit/RecordRateLimitEventCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/rateLimit/RecordRateLimitEventCommand.js +19 -0
- package/dist/production/src/model/commands/rateLimit/RecordRateLimitEventCommand.js.map +1 -0
- package/dist/production/src/model/consts/expirations.cjs +4 -0
- package/dist/production/src/model/consts/expirations.cjs.map +1 -1
- package/dist/production/src/model/consts/expirations.js +4 -0
- package/dist/production/src/model/consts/expirations.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 +71 -0
- package/dist/production/src/model/mailing/UserMailer.cjs.map +1 -1
- package/dist/production/src/model/mailing/UserMailer.js +71 -0
- package/dist/production/src/model/mailing/UserMailer.js.map +1 -1
- package/dist/production/src/model/mailing/templates/BackupCodesExhausted.mustache.cjs +15 -0
- package/dist/production/src/model/mailing/templates/BackupCodesExhausted.mustache.cjs.map +1 -0
- package/dist/production/src/model/mailing/templates/BackupCodesExhausted.mustache.js +16 -0
- package/dist/production/src/model/mailing/templates/BackupCodesExhausted.mustache.js.map +1 -0
- package/dist/production/src/model/mailing/templates/EmailChangeNotify.mustache.cjs +12 -0
- package/dist/production/src/model/mailing/templates/EmailChangeNotify.mustache.cjs.map +1 -0
- package/dist/production/src/model/mailing/templates/EmailChangeNotify.mustache.js +13 -0
- package/dist/production/src/model/mailing/templates/EmailChangeNotify.mustache.js.map +1 -0
- package/dist/production/src/model/mailing/templates/EmailChangeVerify.mustache.cjs +14 -0
- package/dist/production/src/model/mailing/templates/EmailChangeVerify.mustache.cjs.map +1 -0
- package/dist/production/src/model/mailing/templates/EmailChangeVerify.mustache.js +15 -0
- package/dist/production/src/model/mailing/templates/EmailChangeVerify.mustache.js.map +1 -0
- package/dist/production/src/model/mailing/templates/EmailOtp.mustache.cjs +15 -0
- package/dist/production/src/model/mailing/templates/EmailOtp.mustache.cjs.map +1 -0
- package/dist/production/src/model/mailing/templates/EmailOtp.mustache.js +16 -0
- package/dist/production/src/model/mailing/templates/EmailOtp.mustache.js.map +1 -0
- package/dist/production/src/model/mailing/templates/EmailVerification.mustache.cjs +12 -0
- package/dist/production/src/model/mailing/templates/EmailVerification.mustache.cjs.map +1 -0
- package/dist/production/src/model/mailing/templates/EmailVerification.mustache.js +13 -0
- package/dist/production/src/model/mailing/templates/EmailVerification.mustache.js.map +1 -0
- package/dist/production/src/model/mailing/templates/ExistingUserInvited.mustache.cjs.map +1 -1
- package/dist/production/src/model/mailing/templates/ExistingUserInvited.mustache.js.map +1 -1
- package/dist/production/src/model/mailing/templates/ForcedSignOut.mustache.cjs +12 -0
- package/dist/production/src/model/mailing/templates/ForcedSignOut.mustache.cjs.map +1 -0
- package/dist/production/src/model/mailing/templates/ForcedSignOut.mustache.js +13 -0
- package/dist/production/src/model/mailing/templates/ForcedSignOut.mustache.js.map +1 -0
- package/dist/production/src/model/mailing/templates/NewUserInvited.mustache.cjs.map +1 -1
- package/dist/production/src/model/mailing/templates/NewUserInvited.mustache.js.map +1 -1
- package/dist/production/src/model/mailing/templates/PasswordReset.mustache.cjs.map +1 -1
- package/dist/production/src/model/mailing/templates/PasswordReset.mustache.js.map +1 -1
- package/dist/production/src/model/mailing/templates/PasswordlessSignIn.mustache.cjs.map +1 -1
- package/dist/production/src/model/mailing/templates/PasswordlessSignIn.mustache.js.map +1 -1
- package/dist/production/src/model/mailing/templates/UnusualLogin.mustache.cjs +19 -0
- package/dist/production/src/model/mailing/templates/UnusualLogin.mustache.cjs.map +1 -0
- package/dist/production/src/model/mailing/templates/UnusualLogin.mustache.js +20 -0
- package/dist/production/src/model/mailing/templates/UnusualLogin.mustache.js.map +1 -0
- package/dist/production/src/model/mailing/type.cjs +45 -3
- package/dist/production/src/model/mailing/type.cjs.map +1 -1
- package/dist/production/src/model/mailing/type.js +45 -3
- package/dist/production/src/model/mailing/type.js.map +1 -1
- package/dist/production/src/model/queries/apiKey/ApiKeyListQuery.cjs +32 -0
- package/dist/production/src/model/queries/apiKey/ApiKeyListQuery.cjs.map +1 -0
- package/dist/production/src/model/queries/apiKey/ApiKeyListQuery.js +32 -0
- package/dist/production/src/model/queries/apiKey/ApiKeyListQuery.js.map +1 -0
- package/dist/production/src/model/queries/apiKey/ApiKeyQuery.cjs +1 -1
- package/dist/production/src/model/queries/apiKey/ApiKeyQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/apiKey/ApiKeyQuery.js +1 -1
- package/dist/production/src/model/queries/apiKey/ApiKeyQuery.js.map +1 -1
- package/dist/production/src/model/queries/apiKey/ApiKeySessionsQuery.cjs +21 -0
- package/dist/production/src/model/queries/apiKey/ApiKeySessionsQuery.cjs.map +1 -0
- package/dist/production/src/model/queries/apiKey/ApiKeySessionsQuery.js +21 -0
- package/dist/production/src/model/queries/apiKey/ApiKeySessionsQuery.js.map +1 -0
- package/dist/production/src/model/queries/authLog/AuthLogQuery.cjs +51 -0
- package/dist/production/src/model/queries/authLog/AuthLogQuery.cjs.map +1 -0
- package/dist/production/src/model/queries/authLog/AuthLogQuery.js +51 -0
- package/dist/production/src/model/queries/authLog/AuthLogQuery.js.map +1 -0
- package/dist/production/src/model/queries/authLog/NextMailAttemptQuery.cjs +45 -0
- package/dist/production/src/model/queries/authLog/NextMailAttemptQuery.cjs.map +1 -0
- package/dist/production/src/model/queries/authLog/NextMailAttemptQuery.js +45 -0
- package/dist/production/src/model/queries/authLog/NextMailAttemptQuery.js.map +1 -0
- package/dist/production/src/model/queries/authPolicy/AuthPoliciesQuery.cjs +19 -0
- package/dist/production/src/model/queries/authPolicy/AuthPoliciesQuery.cjs.map +1 -0
- package/dist/production/src/model/queries/authPolicy/AuthPoliciesQuery.js +19 -0
- package/dist/production/src/model/queries/authPolicy/AuthPoliciesQuery.js.map +1 -0
- package/dist/production/src/model/queries/configuration/ConfigurationQuery.cjs +59 -2
- package/dist/production/src/model/queries/configuration/ConfigurationQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/configuration/ConfigurationQuery.js +59 -2
- package/dist/production/src/model/queries/configuration/ConfigurationQuery.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/IdpSessionByApiKeyQuery.cjs +38 -0
- package/dist/production/src/model/queries/idp/IdpSessionByApiKeyQuery.cjs.map +1 -0
- package/dist/production/src/model/queries/idp/IdpSessionByApiKeyQuery.js +38 -0
- package/dist/production/src/model/queries/idp/IdpSessionByApiKeyQuery.js.map +1 -0
- package/dist/production/src/model/queries/idp/IdpSessionsBySidQuery.cjs +19 -0
- package/dist/production/src/model/queries/idp/IdpSessionsBySidQuery.cjs.map +1 -0
- package/dist/production/src/model/queries/idp/IdpSessionsBySidQuery.js +19 -0
- package/dist/production/src/model/queries/idp/IdpSessionsBySidQuery.js.map +1 -0
- package/dist/production/src/model/queries/idp/IdpSessionsBySubQuery.cjs +18 -0
- package/dist/production/src/model/queries/idp/IdpSessionsBySubQuery.cjs.map +1 -0
- package/dist/production/src/model/queries/idp/IdpSessionsBySubQuery.js +18 -0
- package/dist/production/src/model/queries/idp/IdpSessionsBySubQuery.js.map +1 -0
- package/dist/production/src/model/queries/idp/PersonIdentityProvidersQuery.cjs +18 -0
- package/dist/production/src/model/queries/idp/PersonIdentityProvidersQuery.cjs.map +1 -0
- package/dist/production/src/model/queries/idp/PersonIdentityProvidersQuery.js +18 -0
- package/dist/production/src/model/queries/idp/PersonIdentityProvidersQuery.js.map +1 -0
- package/dist/production/src/model/queries/idp/helpers.cjs +3 -3
- package/dist/production/src/model/queries/idp/helpers.cjs.map +1 -1
- package/dist/production/src/model/queries/idp/helpers.js +3 -3
- 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/AllProjectRolesByIdentityQuery.cjs +17 -0
- package/dist/production/src/model/queries/membership/AllProjectRolesByIdentityQuery.cjs.map +1 -0
- package/dist/production/src/model/queries/membership/AllProjectRolesByIdentityQuery.js +17 -0
- package/dist/production/src/model/queries/membership/AllProjectRolesByIdentityQuery.js.map +1 -0
- package/dist/production/src/model/queries/membership/ProjectMembersQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/membership/ProjectMembersQuery.js.map +1 -1
- package/dist/production/src/model/queries/membership/ProjectMembershipByIdentityQuery.cjs.map +1 -1
- 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/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 +9 -1
- package/dist/production/src/model/queries/person/PersonQueryBuilderFactory.cjs.map +1 -1
- package/dist/production/src/model/queries/person/PersonQueryBuilderFactory.js +9 -1
- package/dist/production/src/model/queries/person/PersonQueryBuilderFactory.js.map +1 -1
- package/dist/production/src/model/queries/person/PersonsQuery.cjs +28 -0
- package/dist/production/src/model/queries/person/PersonsQuery.cjs.map +1 -0
- package/dist/production/src/model/queries/person/PersonsQuery.js +28 -0
- package/dist/production/src/model/queries/person/PersonsQuery.js.map +1 -0
- package/dist/production/src/model/queries/personToken/PersonTokenQuery.cjs +12 -3
- package/dist/production/src/model/queries/personToken/PersonTokenQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/personToken/PersonTokenQuery.js +12 -3
- 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/ProjectSecretKeysQuery.cjs +14 -0
- package/dist/production/src/model/queries/project/ProjectSecretKeysQuery.cjs.map +1 -0
- package/dist/production/src/model/queries/project/ProjectSecretKeysQuery.js +14 -0
- package/dist/production/src/model/queries/project/ProjectSecretKeysQuery.js.map +1 -0
- package/dist/production/src/model/queries/project/ProjectSecretsQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/project/ProjectSecretsQuery.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/queries/rateLimit/RateLimitCountQuery.cjs +17 -0
- package/dist/production/src/model/queries/rateLimit/RateLimitCountQuery.cjs.map +1 -0
- package/dist/production/src/model/queries/rateLimit/RateLimitCountQuery.js +17 -0
- package/dist/production/src/model/queries/rateLimit/RateLimitCountQuery.js.map +1 -0
- package/dist/production/src/model/service/AuthLogService.cjs +31 -1
- package/dist/production/src/model/service/AuthLogService.cjs.map +1 -1
- package/dist/production/src/model/service/AuthLogService.js +31 -1
- package/dist/production/src/model/service/AuthLogService.js.map +1 -1
- package/dist/production/src/model/service/AuthPolicyManager.cjs +95 -0
- package/dist/production/src/model/service/AuthPolicyManager.cjs.map +1 -0
- package/dist/production/src/model/service/AuthPolicyManager.js +95 -0
- package/dist/production/src/model/service/AuthPolicyManager.js.map +1 -0
- package/dist/production/src/model/service/AuthPolicyResolver.cjs +83 -0
- package/dist/production/src/model/service/AuthPolicyResolver.cjs.map +1 -0
- package/dist/production/src/model/service/AuthPolicyResolver.js +83 -0
- package/dist/production/src/model/service/AuthPolicyResolver.js.map +1 -0
- package/dist/production/src/model/service/BackupCodeManager.cjs +80 -0
- package/dist/production/src/model/service/BackupCodeManager.cjs.map +1 -0
- package/dist/production/src/model/service/BackupCodeManager.js +80 -0
- package/dist/production/src/model/service/BackupCodeManager.js.map +1 -0
- package/dist/production/src/model/service/ConfigurationManager.cjs.map +1 -1
- package/dist/production/src/model/service/ConfigurationManager.js.map +1 -1
- package/dist/production/src/model/service/EmailChangeManager.cjs +135 -0
- package/dist/production/src/model/service/EmailChangeManager.cjs.map +1 -0
- package/dist/production/src/model/service/EmailChangeManager.js +135 -0
- package/dist/production/src/model/service/EmailChangeManager.js.map +1 -0
- package/dist/production/src/model/service/EmailOtpManager.cjs +90 -0
- package/dist/production/src/model/service/EmailOtpManager.cjs.map +1 -0
- package/dist/production/src/model/service/EmailOtpManager.js +90 -0
- package/dist/production/src/model/service/EmailOtpManager.js.map +1 -0
- package/dist/production/src/model/service/EmailValidator.cjs +4 -4
- package/dist/production/src/model/service/EmailValidator.cjs.map +1 -1
- package/dist/production/src/model/service/EmailValidator.js +4 -4
- package/dist/production/src/model/service/EmailValidator.js.map +1 -1
- package/dist/production/src/model/service/EmailVerificationManager.cjs +94 -0
- package/dist/production/src/model/service/EmailVerificationManager.cjs.map +1 -0
- package/dist/production/src/model/service/EmailVerificationManager.js +94 -0
- package/dist/production/src/model/service/EmailVerificationManager.js.map +1 -0
- package/dist/production/src/model/service/HibpChecker.cjs +46 -0
- package/dist/production/src/model/service/HibpChecker.cjs.map +1 -0
- package/dist/production/src/model/service/HibpChecker.js +46 -0
- package/dist/production/src/model/service/HibpChecker.js.map +1 -0
- package/dist/production/src/model/service/IDPSignInManager.cjs +51 -15
- package/dist/production/src/model/service/IDPSignInManager.cjs.map +1 -1
- package/dist/production/src/model/service/IDPSignInManager.js +51 -15
- package/dist/production/src/model/service/IDPSignInManager.js.map +1 -1
- package/dist/production/src/model/service/InviteManager.cjs.map +1 -1
- package/dist/production/src/model/service/InviteManager.js.map +1 -1
- package/dist/production/src/model/service/LoginRiskAnalyzer.cjs +160 -0
- package/dist/production/src/model/service/LoginRiskAnalyzer.cjs.map +1 -0
- package/dist/production/src/model/service/LoginRiskAnalyzer.js +160 -0
- package/dist/production/src/model/service/LoginRiskAnalyzer.js.map +1 -0
- 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.map +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 +56 -6
- package/dist/production/src/model/service/OtpManager.cjs.map +1 -1
- package/dist/production/src/model/service/OtpManager.js +56 -6
- package/dist/production/src/model/service/OtpManager.js.map +1 -1
- package/dist/production/src/model/service/PasswordChangeManager.cjs +2 -2
- package/dist/production/src/model/service/PasswordChangeManager.cjs.map +1 -1
- package/dist/production/src/model/service/PasswordChangeManager.js +2 -2
- package/dist/production/src/model/service/PasswordChangeManager.js.map +1 -1
- package/dist/production/src/model/service/PasswordResetManager.cjs +14 -5
- package/dist/production/src/model/service/PasswordResetManager.cjs.map +1 -1
- package/dist/production/src/model/service/PasswordResetManager.js +14 -5
- package/dist/production/src/model/service/PasswordResetManager.js.map +1 -1
- package/dist/production/src/model/service/PasswordStrengthValidator.cjs +8 -0
- package/dist/production/src/model/service/PasswordStrengthValidator.cjs.map +1 -1
- package/dist/production/src/model/service/PasswordStrengthValidator.js +8 -0
- package/dist/production/src/model/service/PasswordStrengthValidator.js.map +1 -1
- package/dist/production/src/model/service/PasswordlessSignInManager.cjs +59 -31
- package/dist/production/src/model/service/PasswordlessSignInManager.cjs.map +1 -1
- package/dist/production/src/model/service/PasswordlessSignInManager.js +59 -31
- package/dist/production/src/model/service/PasswordlessSignInManager.js.map +1 -1
- package/dist/production/src/model/service/PersonAccessManager.cjs.map +1 -1
- package/dist/production/src/model/service/PersonAccessManager.js.map +1 -1
- package/dist/production/src/model/service/PersonManager.cjs +9 -3
- package/dist/production/src/model/service/PersonManager.cjs.map +1 -1
- package/dist/production/src/model/service/PersonManager.js +9 -3
- 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/RateLimiter.cjs +69 -0
- package/dist/production/src/model/service/RateLimiter.cjs.map +1 -0
- package/dist/production/src/model/service/RateLimiter.js +69 -0
- package/dist/production/src/model/service/RateLimiter.js.map +1 -0
- 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 +5 -0
- package/dist/production/src/model/service/SecretsManager.cjs.map +1 -1
- package/dist/production/src/model/service/SecretsManager.js +5 -0
- package/dist/production/src/model/service/SecretsManager.js.map +1 -1
- package/dist/production/src/model/service/SignInManager.cjs +223 -10
- package/dist/production/src/model/service/SignInManager.cjs.map +1 -1
- package/dist/production/src/model/service/SignInManager.js +223 -10
- package/dist/production/src/model/service/SignInManager.js.map +1 -1
- package/dist/production/src/model/service/SignOutManager.cjs +70 -0
- package/dist/production/src/model/service/SignOutManager.cjs.map +1 -0
- package/dist/production/src/model/service/SignOutManager.js +70 -0
- package/dist/production/src/model/service/SignOutManager.js.map +1 -0
- package/dist/production/src/model/service/SignUpManager.cjs +20 -10
- package/dist/production/src/model/service/SignUpManager.cjs.map +1 -1
- package/dist/production/src/model/service/SignUpManager.js +21 -11
- package/dist/production/src/model/service/SignUpManager.js.map +1 -1
- package/dist/production/src/model/service/apiKey/ApiKeyManager.cjs +130 -17
- package/dist/production/src/model/service/apiKey/ApiKeyManager.cjs.map +1 -1
- package/dist/production/src/model/service/apiKey/ApiKeyManager.js +133 -20
- package/dist/production/src/model/service/apiKey/ApiKeyManager.js.map +1 -1
- package/dist/production/src/model/service/apiKey/ApiKeyService.cjs +14 -6
- package/dist/production/src/model/service/apiKey/ApiKeyService.cjs.map +1 -1
- package/dist/production/src/model/service/apiKey/ApiKeyService.js +14 -6
- package/dist/production/src/model/service/apiKey/ApiKeyService.js.map +1 -1
- package/dist/production/src/model/service/apiKey/UnpersistedApiKeyManager.cjs +82 -0
- package/dist/production/src/model/service/apiKey/UnpersistedApiKeyManager.cjs.map +1 -0
- package/dist/production/src/model/service/apiKey/UnpersistedApiKeyManager.js +82 -0
- package/dist/production/src/model/service/apiKey/UnpersistedApiKeyManager.js.map +1 -0
- package/dist/production/src/model/service/captcha/CaptchaValidator.cjs +56 -0
- package/dist/production/src/model/service/captcha/CaptchaValidator.cjs.map +1 -0
- package/dist/production/src/model/service/captcha/CaptchaValidator.js +56 -0
- package/dist/production/src/model/service/captcha/CaptchaValidator.js.map +1 -0
- package/dist/production/src/model/service/captcha/HCaptchaProvider.cjs +31 -0
- package/dist/production/src/model/service/captcha/HCaptchaProvider.cjs.map +1 -0
- package/dist/production/src/model/service/captcha/HCaptchaProvider.js +31 -0
- package/dist/production/src/model/service/captcha/HCaptchaProvider.js.map +1 -0
- package/dist/production/src/model/service/captcha/RecaptchaV3Provider.cjs +37 -0
- package/dist/production/src/model/service/captcha/RecaptchaV3Provider.cjs.map +1 -0
- package/dist/production/src/model/service/captcha/RecaptchaV3Provider.js +37 -0
- package/dist/production/src/model/service/captcha/RecaptchaV3Provider.js.map +1 -0
- package/dist/production/src/model/service/captcha/TurnstileProvider.cjs +35 -0
- package/dist/production/src/model/service/captcha/TurnstileProvider.cjs.map +1 -0
- package/dist/production/src/model/service/captcha/TurnstileProvider.js +35 -0
- package/dist/production/src/model/service/captcha/TurnstileProvider.js.map +1 -0
- 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/helpers/isPasswordlessEnabled.cjs +16 -0
- package/dist/production/src/model/service/helpers/isPasswordlessEnabled.cjs.map +1 -0
- package/dist/production/src/model/service/helpers/isPasswordlessEnabled.js +16 -0
- package/dist/production/src/model/service/helpers/isPasswordlessEnabled.js.map +1 -0
- package/dist/production/src/model/service/idp/BackchannelLogoutManager.cjs +84 -0
- package/dist/production/src/model/service/idp/BackchannelLogoutManager.cjs.map +1 -0
- package/dist/production/src/model/service/idp/BackchannelLogoutManager.js +84 -0
- package/dist/production/src/model/service/idp/BackchannelLogoutManager.js.map +1 -0
- 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 +1 -0
- package/dist/production/src/model/service/idp/IDPManager.cjs.map +1 -1
- package/dist/production/src/model/service/idp/IDPManager.js +1 -0
- package/dist/production/src/model/service/idp/IDPManager.js.map +1 -1
- package/dist/production/src/model/service/idp/IDPRevalidation.cjs +54 -0
- package/dist/production/src/model/service/idp/IDPRevalidation.cjs.map +1 -0
- package/dist/production/src/model/service/idp/IDPRevalidation.js +37 -0
- package/dist/production/src/model/service/idp/IDPRevalidation.js.map +1 -0
- package/dist/production/src/model/service/idp/IdpSessionRevalidator.cjs +176 -0
- package/dist/production/src/model/service/idp/IdpSessionRevalidator.cjs.map +1 -0
- package/dist/production/src/model/service/idp/IdpSessionRevalidator.js +176 -0
- package/dist/production/src/model/service/idp/IdpSessionRevalidator.js.map +1 -0
- package/dist/production/src/model/service/idp/PersonIdentityProviderManager.cjs +44 -0
- package/dist/production/src/model/service/idp/PersonIdentityProviderManager.cjs.map +1 -0
- package/dist/production/src/model/service/idp/PersonIdentityProviderManager.js +44 -0
- package/dist/production/src/model/service/idp/PersonIdentityProviderManager.js.map +1 -0
- 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 +171 -4
- package/dist/production/src/model/service/idp/providers/OIDCHelpers.cjs.map +1 -1
- package/dist/production/src/model/service/idp/providers/OIDCHelpers.js +172 -5
- package/dist/production/src/model/service/idp/providers/OIDCHelpers.js.map +1 -1
- package/dist/production/src/model/service/idp/providers/OIDCProvider.cjs +34 -4
- package/dist/production/src/model/service/idp/providers/OIDCProvider.cjs.map +1 -1
- package/dist/production/src/model/service/idp/providers/OIDCProvider.js +35 -5
- package/dist/production/src/model/service/idp/providers/OIDCProvider.js.map +1 -1
- package/dist/production/src/model/service/idp/providers/OIDCTypes.cjs +51 -1
- package/dist/production/src/model/service/idp/providers/OIDCTypes.cjs.map +1 -1
- package/dist/production/src/model/service/idp/providers/OIDCTypes.js +52 -2
- package/dist/production/src/model/service/idp/providers/OIDCTypes.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/RateLimit.cjs +7 -0
- package/dist/production/src/model/type/RateLimit.cjs.map +1 -0
- package/dist/production/src/model/type/RateLimit.js +7 -0
- package/dist/production/src/model/type/RateLimit.js.map +1 -0
- 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/interval.cjs +7 -0
- package/dist/production/src/model/utils/interval.cjs.map +1 -1
- package/dist/production/src/model/utils/interval.js +7 -0
- package/dist/production/src/model/utils/interval.js.map +1 -1
- package/dist/production/src/model/utils/token.cjs +10 -0
- package/dist/production/src/model/utils/token.cjs.map +1 -1
- package/dist/production/src/model/utils/token.js +10 -0
- package/dist/production/src/model/utils/token.js.map +1 -1
- package/dist/production/src/resolvers/ResolverFactory.cjs +33 -3
- package/dist/production/src/resolvers/ResolverFactory.cjs.map +1 -1
- package/dist/production/src/resolvers/ResolverFactory.js +33 -3
- package/dist/production/src/resolvers/ResolverFactory.js.map +1 -1
- package/dist/production/src/resolvers/TenantResolverContextFactory.cjs +18 -5
- package/dist/production/src/resolvers/TenantResolverContextFactory.cjs.map +1 -1
- package/dist/production/src/resolvers/TenantResolverContextFactory.js +18 -5
- package/dist/production/src/resolvers/TenantResolverContextFactory.js.map +1 -1
- package/dist/production/src/resolvers/errorUtils.cjs.map +1 -1
- 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 +47 -4
- package/dist/production/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.js +47 -4
- package/dist/production/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.cjs +8 -0
- package/dist/production/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.js +8 -0
- package/dist/production/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/configuration/AuthPolicyMutationResolver.cjs +112 -0
- package/dist/production/src/resolvers/mutation/configuration/AuthPolicyMutationResolver.cjs.map +1 -0
- package/dist/production/src/resolvers/mutation/configuration/AuthPolicyMutationResolver.js +112 -0
- package/dist/production/src/resolvers/mutation/configuration/AuthPolicyMutationResolver.js.map +1 -0
- package/dist/production/src/resolvers/mutation/configuration/ConfigurationMutationResolver.cjs +20 -0
- package/dist/production/src/resolvers/mutation/configuration/ConfigurationMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/configuration/ConfigurationMutationResolver.js +20 -0
- package/dist/production/src/resolvers/mutation/configuration/ConfigurationMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/identity/GlobalRolesMutationResolver.cjs +24 -2
- package/dist/production/src/resolvers/mutation/identity/GlobalRolesMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/identity/GlobalRolesMutationResolver.js +24 -2
- package/dist/production/src/resolvers/mutation/identity/GlobalRolesMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/idp/AddIDPMutationResolver.cjs +18 -1
- package/dist/production/src/resolvers/mutation/idp/AddIDPMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/idp/AddIDPMutationResolver.js +18 -1
- package/dist/production/src/resolvers/mutation/idp/AddIDPMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/idp/DisableIDPMutationResolver.cjs +8 -0
- package/dist/production/src/resolvers/mutation/idp/DisableIDPMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/idp/DisableIDPMutationResolver.js +8 -0
- package/dist/production/src/resolvers/mutation/idp/DisableIDPMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/idp/DisconnectMyIdentityProviderMutationResolver.cjs +53 -0
- package/dist/production/src/resolvers/mutation/idp/DisconnectMyIdentityProviderMutationResolver.cjs.map +1 -0
- package/dist/production/src/resolvers/mutation/idp/DisconnectMyIdentityProviderMutationResolver.js +53 -0
- package/dist/production/src/resolvers/mutation/idp/DisconnectMyIdentityProviderMutationResolver.js.map +1 -0
- package/dist/production/src/resolvers/mutation/idp/EnableIDPMutationResolver.cjs +8 -0
- package/dist/production/src/resolvers/mutation/idp/EnableIDPMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/idp/EnableIDPMutationResolver.js +8 -0
- package/dist/production/src/resolvers/mutation/idp/EnableIDPMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/idp/UpdateIDPMutationResolver.cjs +19 -1
- package/dist/production/src/resolvers/mutation/idp/UpdateIDPMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/idp/UpdateIDPMutationResolver.js +19 -1
- package/dist/production/src/resolvers/mutation/idp/UpdateIDPMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/idp/audit.cjs +20 -0
- package/dist/production/src/resolvers/mutation/idp/audit.cjs.map +1 -0
- package/dist/production/src/resolvers/mutation/idp/audit.js +20 -0
- package/dist/production/src/resolvers/mutation/idp/audit.js.map +1 -0
- package/dist/production/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.cjs +23 -0
- package/dist/production/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.js +23 -0
- package/dist/production/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/person/ChangePasswordMutationResolver.cjs +2 -0
- package/dist/production/src/resolvers/mutation/person/ChangePasswordMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/person/ChangePasswordMutationResolver.js +2 -0
- package/dist/production/src/resolvers/mutation/person/ChangePasswordMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/person/ChangeProfileMutationResolver.cjs +54 -1
- package/dist/production/src/resolvers/mutation/person/ChangeProfileMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/person/ChangeProfileMutationResolver.js +54 -1
- package/dist/production/src/resolvers/mutation/person/ChangeProfileMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/person/DisablePersonMutationResolver.cjs +2 -0
- package/dist/production/src/resolvers/mutation/person/DisablePersonMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/person/DisablePersonMutationResolver.js +2 -0
- package/dist/production/src/resolvers/mutation/person/DisablePersonMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/person/EmailOtpMutationResolver.cjs +111 -0
- package/dist/production/src/resolvers/mutation/person/EmailOtpMutationResolver.cjs.map +1 -0
- package/dist/production/src/resolvers/mutation/person/EmailOtpMutationResolver.js +111 -0
- package/dist/production/src/resolvers/mutation/person/EmailOtpMutationResolver.js.map +1 -0
- package/dist/production/src/resolvers/mutation/person/EmailVerificationMutationResolver.cjs +93 -0
- package/dist/production/src/resolvers/mutation/person/EmailVerificationMutationResolver.cjs.map +1 -0
- package/dist/production/src/resolvers/mutation/person/EmailVerificationMutationResolver.js +93 -0
- package/dist/production/src/resolvers/mutation/person/EmailVerificationMutationResolver.js.map +1 -0
- package/dist/production/src/resolvers/mutation/person/ForceSignOutMutationResolver.cjs +69 -0
- package/dist/production/src/resolvers/mutation/person/ForceSignOutMutationResolver.cjs.map +1 -0
- package/dist/production/src/resolvers/mutation/person/ForceSignOutMutationResolver.js +69 -0
- package/dist/production/src/resolvers/mutation/person/ForceSignOutMutationResolver.js.map +1 -0
- package/dist/production/src/resolvers/mutation/person/IDPMutationResolver.cjs +5 -1
- package/dist/production/src/resolvers/mutation/person/IDPMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/person/IDPMutationResolver.js +5 -1
- package/dist/production/src/resolvers/mutation/person/IDPMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/person/InviteMutationResolver.cjs +25 -6
- package/dist/production/src/resolvers/mutation/person/InviteMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/person/InviteMutationResolver.js +25 -6
- package/dist/production/src/resolvers/mutation/person/InviteMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/person/OtpMutationResolver.cjs +26 -12
- package/dist/production/src/resolvers/mutation/person/OtpMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/person/OtpMutationResolver.js +27 -13
- package/dist/production/src/resolvers/mutation/person/OtpMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/person/PasswordlessMutationResolver.cjs +34 -7
- package/dist/production/src/resolvers/mutation/person/PasswordlessMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/person/PasswordlessMutationResolver.js +34 -7
- package/dist/production/src/resolvers/mutation/person/PasswordlessMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/person/RegenerateBackupCodesMutationResolver.cjs +62 -0
- package/dist/production/src/resolvers/mutation/person/RegenerateBackupCodesMutationResolver.cjs.map +1 -0
- package/dist/production/src/resolvers/mutation/person/RegenerateBackupCodesMutationResolver.js +62 -0
- package/dist/production/src/resolvers/mutation/person/RegenerateBackupCodesMutationResolver.js.map +1 -0
- package/dist/production/src/resolvers/mutation/person/ResetPasswordMutationResolver.cjs +21 -2
- package/dist/production/src/resolvers/mutation/person/ResetPasswordMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/person/ResetPasswordMutationResolver.js +21 -2
- package/dist/production/src/resolvers/mutation/person/ResetPasswordMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/person/ResetPersonMfaMutationResolver.cjs +57 -0
- package/dist/production/src/resolvers/mutation/person/ResetPersonMfaMutationResolver.cjs.map +1 -0
- package/dist/production/src/resolvers/mutation/person/ResetPersonMfaMutationResolver.js +57 -0
- package/dist/production/src/resolvers/mutation/person/ResetPersonMfaMutationResolver.js.map +1 -0
- package/dist/production/src/resolvers/mutation/person/RevokeSessionMutationResolver.cjs +64 -0
- package/dist/production/src/resolvers/mutation/person/RevokeSessionMutationResolver.cjs.map +1 -0
- package/dist/production/src/resolvers/mutation/person/RevokeSessionMutationResolver.js +64 -0
- package/dist/production/src/resolvers/mutation/person/RevokeSessionMutationResolver.js.map +1 -0
- package/dist/production/src/resolvers/mutation/person/SignInMutationResolver.cjs +73 -5
- package/dist/production/src/resolvers/mutation/person/SignInMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/person/SignInMutationResolver.js +73 -5
- package/dist/production/src/resolvers/mutation/person/SignInMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/person/SignOutMutationResolver.cjs +23 -20
- package/dist/production/src/resolvers/mutation/person/SignOutMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/person/SignOutMutationResolver.js +23 -20
- package/dist/production/src/resolvers/mutation/person/SignOutMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/person/SignUpMutationResolver.cjs +48 -2
- package/dist/production/src/resolvers/mutation/person/SignUpMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/person/SignUpMutationResolver.js +48 -2
- 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 +12 -0
- package/dist/production/src/resolvers/mutation/project/CreateProjectMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/project/CreateProjectMutationResolver.js +12 -0
- package/dist/production/src/resolvers/mutation/project/CreateProjectMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/project/SetProjectSecretMutationResolver.cjs +11 -0
- package/dist/production/src/resolvers/mutation/project/SetProjectSecretMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/project/SetProjectSecretMutationResolver.js +11 -0
- package/dist/production/src/resolvers/mutation/project/SetProjectSecretMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/project/UpdateProjectMutationResolver.cjs +14 -0
- package/dist/production/src/resolvers/mutation/project/UpdateProjectMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/project/UpdateProjectMutationResolver.js +14 -0
- package/dist/production/src/resolvers/mutation/project/UpdateProjectMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.cjs +4 -0
- package/dist/production/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.js +4 -0
- package/dist/production/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.cjs +6 -0
- package/dist/production/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.js +6 -0
- package/dist/production/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.cjs +6 -0
- package/dist/production/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.js +6 -0
- package/dist/production/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/projectMember/audit.cjs +34 -0
- package/dist/production/src/resolvers/mutation/projectMember/audit.cjs.map +1 -0
- package/dist/production/src/resolvers/mutation/projectMember/audit.js +34 -0
- package/dist/production/src/resolvers/mutation/projectMember/audit.js.map +1 -0
- package/dist/production/src/resolvers/query/ApiKeyQueryResolver.cjs +35 -0
- package/dist/production/src/resolvers/query/ApiKeyQueryResolver.cjs.map +1 -0
- package/dist/production/src/resolvers/query/ApiKeyQueryResolver.js +35 -0
- package/dist/production/src/resolvers/query/ApiKeyQueryResolver.js.map +1 -0
- package/dist/production/src/resolvers/query/AuthLogQueryResolver.cjs +74 -0
- package/dist/production/src/resolvers/query/AuthLogQueryResolver.cjs.map +1 -0
- package/dist/production/src/resolvers/query/AuthLogQueryResolver.js +74 -0
- package/dist/production/src/resolvers/query/AuthLogQueryResolver.js.map +1 -0
- package/dist/production/src/resolvers/query/AuthPolicyQueryResolver.cjs +53 -0
- package/dist/production/src/resolvers/query/AuthPolicyQueryResolver.cjs.map +1 -0
- package/dist/production/src/resolvers/query/AuthPolicyQueryResolver.js +53 -0
- package/dist/production/src/resolvers/query/AuthPolicyQueryResolver.js.map +1 -0
- 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 +2 -0
- package/dist/production/src/resolvers/query/IDPQueryResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/query/IDPQueryResolver.js +2 -0
- package/dist/production/src/resolvers/query/IDPQueryResolver.js.map +1 -1
- package/dist/production/src/resolvers/query/MailTemplateQueryResolver.cjs +2 -0
- package/dist/production/src/resolvers/query/MailTemplateQueryResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/query/MailTemplateQueryResolver.js +2 -0
- package/dist/production/src/resolvers/query/MailTemplateQueryResolver.js.map +1 -1
- package/dist/production/src/resolvers/query/MeQueryResolver.cjs +1 -0
- package/dist/production/src/resolvers/query/MeQueryResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/query/MeQueryResolver.js +1 -0
- package/dist/production/src/resolvers/query/MeQueryResolver.js.map +1 -1
- package/dist/production/src/resolvers/query/PersonQueryResolver.cjs +39 -1
- package/dist/production/src/resolvers/query/PersonQueryResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/query/PersonQueryResolver.js +39 -1
- package/dist/production/src/resolvers/query/PersonQueryResolver.js.map +1 -1
- package/dist/production/src/resolvers/query/ProjectMembersQueryResolver.cjs +2 -0
- package/dist/production/src/resolvers/query/ProjectMembersQueryResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/query/ProjectMembersQueryResolver.js +2 -0
- package/dist/production/src/resolvers/query/ProjectMembersQueryResolver.js.map +1 -1
- package/dist/production/src/resolvers/query/ProjectQueryResolver.cjs +4 -2
- package/dist/production/src/resolvers/query/ProjectQueryResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/query/ProjectQueryResolver.js +4 -2
- package/dist/production/src/resolvers/query/ProjectQueryResolver.js.map +1 -1
- package/dist/production/src/resolvers/responseHelpers/ApiKeyResponseFactory.cjs +55 -0
- package/dist/production/src/resolvers/responseHelpers/ApiKeyResponseFactory.cjs.map +1 -0
- package/dist/production/src/resolvers/responseHelpers/ApiKeyResponseFactory.js +55 -0
- package/dist/production/src/resolvers/responseHelpers/ApiKeyResponseFactory.js.map +1 -0
- package/dist/production/src/resolvers/responseHelpers/PersonResponseFactory.cjs +10 -2
- package/dist/production/src/resolvers/responseHelpers/PersonResponseFactory.cjs.map +1 -1
- package/dist/production/src/resolvers/responseHelpers/PersonResponseFactory.js +10 -2
- package/dist/production/src/resolvers/responseHelpers/PersonResponseFactory.js.map +1 -1
- package/dist/production/src/resolvers/responseHelpers/SignInResponseFactory.cjs +5 -1
- package/dist/production/src/resolvers/responseHelpers/SignInResponseFactory.cjs.map +1 -1
- package/dist/production/src/resolvers/responseHelpers/SignInResponseFactory.js +5 -1
- package/dist/production/src/resolvers/responseHelpers/SignInResponseFactory.js.map +1 -1
- package/dist/production/src/resolvers/types/IdentityTypeResolver.cjs +33 -1
- package/dist/production/src/resolvers/types/IdentityTypeResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/types/IdentityTypeResolver.js +33 -1
- package/dist/production/src/resolvers/types/IdentityTypeResolver.js.map +1 -1
- package/dist/production/src/resolvers/types/PersonTypeResolver.cjs +52 -0
- package/dist/production/src/resolvers/types/PersonTypeResolver.cjs.map +1 -0
- package/dist/production/src/resolvers/types/PersonTypeResolver.js +52 -0
- package/dist/production/src/resolvers/types/PersonTypeResolver.js.map +1 -0
- package/dist/production/src/resolvers/types/ProjectTypeResolver.cjs +23 -2
- package/dist/production/src/resolvers/types/ProjectTypeResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/types/ProjectTypeResolver.js +23 -2
- package/dist/production/src/resolvers/types/ProjectTypeResolver.js.map +1 -1
- package/dist/production/src/schema/tenant.graphql.cjs +826 -20
- package/dist/production/src/schema/tenant.graphql.cjs.map +1 -1
- package/dist/production/src/schema/tenant.graphql.js +826 -20
- 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/batchQuery.cjs.map +1 -1
- package/dist/production/src/utils/batchQuery.js.map +1 -1
- package/dist/tests/cases/integration/mocked/antiAbuseSignUp.test.d.ts +2 -0
- package/dist/tests/cases/integration/mocked/antiAbuseSignUp.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/authLogQuery.test.d.ts +2 -0
- package/dist/tests/cases/integration/mocked/authLogQuery.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/authPolicyCrud.test.d.ts +2 -0
- package/dist/tests/cases/integration/mocked/authPolicyCrud.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/changeMyProfileEmailVerificationMutation.test.d.ts +2 -0
- package/dist/tests/cases/integration/mocked/changeMyProfileEmailVerificationMutation.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/confirmEmailChangeMutation.test.d.ts +2 -0
- package/dist/tests/cases/integration/mocked/confirmEmailChangeMutation.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/disableOtpMfaRequired.test.d.ts +2 -0
- package/dist/tests/cases/integration/mocked/disableOtpMfaRequired.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/emailOtpMutation.test.d.ts +2 -0
- package/dist/tests/cases/integration/mocked/emailOtpMutation.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/forceSignOutPersonMutation.test.d.ts +2 -0
- package/dist/tests/cases/integration/mocked/forceSignOutPersonMutation.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/globalApiKeysQuery.test.d.ts +2 -0
- package/dist/tests/cases/integration/mocked/globalApiKeysQuery.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/globalIdentityRolesMutation.test.d.ts +2 -0
- package/dist/tests/cases/integration/mocked/globalIdentityRolesMutation.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/gql/addProjectMember.d.ts +2 -2
- package/dist/tests/cases/integration/mocked/gql/addProjectMember.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/gql/changeMyPassword.d.ts +1 -1
- package/dist/tests/cases/integration/mocked/gql/changeMyPassword.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/gql/changeMyProfile.d.ts +1 -1
- package/dist/tests/cases/integration/mocked/gql/changeMyProfile.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/gql/changePassword.d.ts +1 -1
- package/dist/tests/cases/integration/mocked/gql/changePassword.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/gql/changeProfile.d.ts +1 -1
- package/dist/tests/cases/integration/mocked/gql/changeProfile.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/gql/confirmOtp.d.ts +1 -1
- package/dist/tests/cases/integration/mocked/gql/confirmOtp.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/gql/createApiKey.d.ts +2 -2
- package/dist/tests/cases/integration/mocked/gql/createApiKey.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/gql/createResetPasswordRequest.d.ts +1 -1
- package/dist/tests/cases/integration/mocked/gql/createResetPasswordRequest.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/gql/createSessionToken.d.ts +1 -1
- package/dist/tests/cases/integration/mocked/gql/createSessionToken.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/gql/emailOtp.d.ts +6 -0
- package/dist/tests/cases/integration/mocked/gql/emailOtp.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/gql/emailVerification.d.ts +12 -0
- package/dist/tests/cases/integration/mocked/gql/emailVerification.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/gql/invite.d.ts +2 -2
- package/dist/tests/cases/integration/mocked/gql/invite.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/gql/myIdentityProviders.d.ts +6 -0
- package/dist/tests/cases/integration/mocked/gql/myIdentityProviders.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/gql/passwordless.d.ts +9 -0
- package/dist/tests/cases/integration/mocked/gql/passwordless.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/gql/prepareOtp.d.ts +1 -1
- package/dist/tests/cases/integration/mocked/gql/prepareOtp.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/gql/resetPassword.d.ts +1 -1
- package/dist/tests/cases/integration/mocked/gql/resetPassword.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/gql/signIn.d.ts +5 -1
- package/dist/tests/cases/integration/mocked/gql/signIn.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/gql/signInIdp.d.ts +1 -1
- package/dist/tests/cases/integration/mocked/gql/signInIdp.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/gql/signUp.d.ts +1 -1
- package/dist/tests/cases/integration/mocked/gql/signUp.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/gql/unmanagedInvite.d.ts +2 -2
- package/dist/tests/cases/integration/mocked/gql/unmanagedInvite.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/gql/updateProjectMember.d.ts +2 -2
- package/dist/tests/cases/integration/mocked/gql/updateProjectMember.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/mySessionsQuery.test.d.ts +2 -0
- package/dist/tests/cases/integration/mocked/mySessionsQuery.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/personIdentityProviders.test.d.ts +2 -0
- package/dist/tests/cases/integration/mocked/personIdentityProviders.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/personsQuery.test.d.ts +2 -0
- package/dist/tests/cases/integration/mocked/personsQuery.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/projectApiKeysQuery.test.d.ts +2 -0
- package/dist/tests/cases/integration/mocked/projectApiKeysQuery.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/projectSecretsQuery.test.d.ts +2 -0
- package/dist/tests/cases/integration/mocked/projectSecretsQuery.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/requestEmailVerificationMutation.test.d.ts +2 -0
- package/dist/tests/cases/integration/mocked/requestEmailVerificationMutation.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/resetPersonMfaMutation.test.d.ts +2 -0
- package/dist/tests/cases/integration/mocked/resetPersonMfaMutation.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/revokeSessionMutation.test.d.ts +2 -0
- package/dist/tests/cases/integration/mocked/revokeSessionMutation.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/signInAnomalyDetection.test.d.ts +2 -0
- package/dist/tests/cases/integration/mocked/signInAnomalyDetection.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/signInMfaEnforcement.test.d.ts +2 -0
- package/dist/tests/cases/integration/mocked/signInMfaEnforcement.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/signInPasswordlessMutation.test.d.ts +2 -0
- package/dist/tests/cases/integration/mocked/signInPasswordlessMutation.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/sql/authLogSql.d.ts +32 -0
- package/dist/tests/cases/integration/mocked/sql/authLogSql.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/sql/authPolicySql.d.ts +23 -0
- package/dist/tests/cases/integration/mocked/sql/authPolicySql.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/sql/consumeBackupCodeSql.d.ts +20 -0
- package/dist/tests/cases/integration/mocked/sql/consumeBackupCodeSql.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/sql/createApiKeySql.d.ts +1 -0
- package/dist/tests/cases/integration/mocked/sql/createApiKeySql.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/sql/createPersonSql.d.ts +1 -0
- package/dist/tests/cases/integration/mocked/sql/createPersonSql.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/sql/createPersonTokenSql.d.ts +1 -0
- package/dist/tests/cases/integration/mocked/sql/createPersonTokenSql.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/sql/createSessionKeySql.d.ts +5 -2
- package/dist/tests/cases/integration/mocked/sql/createSessionKeySql.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/sql/emailOtpSql.d.ts +32 -0
- package/dist/tests/cases/integration/mocked/sql/emailOtpSql.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/sql/generateBackupCodesSql.d.ts +7 -0
- package/dist/tests/cases/integration/mocked/sql/generateBackupCodesSql.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/sql/getApiKeySql.d.ts +2 -1
- package/dist/tests/cases/integration/mocked/sql/getApiKeySql.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/sql/getConfigSql.d.ts +1 -1
- package/dist/tests/cases/integration/mocked/sql/getConfigSql.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/sql/getIdentityByIdSql.d.ts +10 -0
- package/dist/tests/cases/integration/mocked/sql/getIdentityByIdSql.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/sql/getIdpBySlugSql.d.ts +1 -1
- package/dist/tests/cases/integration/mocked/sql/getIdpBySlugSql.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/sql/getIdpSessionByApiKeySql.d.ts +20 -0
- package/dist/tests/cases/integration/mocked/sql/getIdpSessionByApiKeySql.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/sql/getNextMailAttemptSql.d.ts +8 -0
- package/dist/tests/cases/integration/mocked/sql/getNextMailAttemptSql.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/sql/getPersonByEmailSql.d.ts +5 -0
- package/dist/tests/cases/integration/mocked/sql/getPersonByEmailSql.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/sql/getPersonByIdSql.d.ts +6 -0
- package/dist/tests/cases/integration/mocked/sql/getPersonByIdSql.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/sql/getPersonByIdentity.d.ts +4 -0
- 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/cases/integration/mocked/sql/getPersonsByIdentitySql.d.ts +12 -0
- package/dist/tests/cases/integration/mocked/sql/getPersonsByIdentitySql.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/sql/getProjectBySlugSql.d.ts +1 -1
- package/dist/tests/cases/integration/mocked/sql/getProjectBySlugSql.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/sql/listApiKeysSql.d.ts +18 -0
- package/dist/tests/cases/integration/mocked/sql/listApiKeysSql.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/sql/listPersonsSql.d.ts +19 -0
- package/dist/tests/cases/integration/mocked/sql/listPersonsSql.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/sql/listProjectSecretsSql.d.ts +11 -0
- package/dist/tests/cases/integration/mocked/sql/listProjectSecretsSql.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/sql/listSessionsSql.d.ts +18 -0
- package/dist/tests/cases/integration/mocked/sql/listSessionsSql.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/sql/loginHistorySql.d.ts +17 -0
- package/dist/tests/cases/integration/mocked/sql/loginHistorySql.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/sql/personIdentityProvidersSql.d.ts +31 -0
- package/dist/tests/cases/integration/mocked/sql/personIdentityProvidersSql.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/sql/setEmailOtpEnabledSql.d.ts +7 -0
- package/dist/tests/cases/integration/mocked/sql/setEmailOtpEnabledSql.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/sql/updatePesonNameSql.d.ts.map +1 -1
- package/dist/tests/cases/integration/mocked/trustForwardedClientInfo.test.d.ts +2 -0
- package/dist/tests/cases/integration/mocked/trustForwardedClientInfo.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/mocked/verifyEmailMutation.test.d.ts +2 -0
- package/dist/tests/cases/integration/mocked/verifyEmailMutation.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/apiKey/createSessionApiKeyPolicy.test.d.ts +2 -0
- package/dist/tests/cases/unit/apiKey/createSessionApiKeyPolicy.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/apiKey/prolongApiKeyCommand.test.d.ts +2 -0
- package/dist/tests/cases/unit/apiKey/prolongApiKeyCommand.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/apiKey/unpersistedApiKeyManager.test.d.ts +2 -0
- package/dist/tests/cases/unit/apiKey/unpersistedApiKeyManager.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/apiKey/verifyAndProlongIdle.test.d.ts +2 -0
- package/dist/tests/cases/unit/apiKey/verifyAndProlongIdle.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/authLogBaselineWrite.test.d.ts +2 -0
- package/dist/tests/cases/unit/authLogBaselineWrite.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/authPolicyResolver.test.d.ts +2 -0
- package/dist/tests/cases/unit/authPolicyResolver.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/backupCodeManager.test.d.ts +2 -0
- package/dist/tests/cases/unit/backupCodeManager.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/captchaProviders.test.d.ts +2 -0
- package/dist/tests/cases/unit/captchaProviders.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/captchaValidator.test.d.ts +2 -0
- package/dist/tests/cases/unit/captchaValidator.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/emailOtpManager.test.d.ts +2 -0
- package/dist/tests/cases/unit/emailOtpManager.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/hibpChecker.test.d.ts +2 -0
- package/dist/tests/cases/unit/hibpChecker.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/idp/backchannelLogoutManager.test.d.ts +2 -0
- package/dist/tests/cases/unit/idp/backchannelLogoutManager.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/idp/idpSessionRevalidator.test.d.ts +2 -0
- package/dist/tests/cases/unit/idp/idpSessionRevalidator.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/idp/oidcLogout.test.d.ts +2 -0
- package/dist/tests/cases/unit/idp/oidcLogout.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/idp/oidcProvider.test.d.ts +2 -0
- package/dist/tests/cases/unit/idp/oidcProvider.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/idp/oidcResponse.test.d.ts +2 -0
- package/dist/tests/cases/unit/idp/oidcResponse.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/idp/oidcRevalidate.test.d.ts +2 -0
- package/dist/tests/cases/unit/idp/oidcRevalidate.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/loginRiskAnalyzer.test.d.ts +2 -0
- package/dist/tests/cases/unit/loginRiskAnalyzer.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/otpManager.test.d.ts +2 -0
- package/dist/tests/cases/unit/otpManager.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/passwordStrengthValidator.test.d.ts +2 -0
- package/dist/tests/cases/unit/passwordStrengthValidator.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/rateLimiter.test.d.ts +2 -0
- package/dist/tests/cases/unit/rateLimiter.test.d.ts.map +1 -0
- package/dist/tests/src/IdPMock.d.ts +11 -1
- package/dist/tests/src/IdPMock.d.ts.map +1 -1
- package/dist/tests/src/mailer.d.ts +1 -1
- package/dist/tests/src/mailer.d.ts.map +1 -1
- package/dist/tests/src/testTenant.d.ts +22 -4
- package/dist/tests/src/testTenant.d.ts.map +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/dist/types/TenantContainer.d.ts +94 -28
- package/dist/types/TenantContainer.d.ts.map +1 -1
- package/dist/types/index.d.ts +6 -6
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/migrations/2020-06-08-134000-tenant-credentials.d.ts +1 -1
- package/dist/types/migrations/2020-06-08-134000-tenant-credentials.d.ts.map +1 -1
- package/dist/types/migrations/2026-05-12-120000-api-key-session-tracking.d.ts +3 -0
- package/dist/types/migrations/2026-05-12-120000-api-key-session-tracking.d.ts.map +1 -0
- package/dist/types/migrations/2026-05-12-130000-api-key-trust-forwarded-info.d.ts +3 -0
- package/dist/types/migrations/2026-05-12-130000-api-key-trust-forwarded-info.d.ts.map +1 -0
- package/dist/types/migrations/2026-05-13-120000-auth-log-event-data.d.ts +3 -0
- package/dist/types/migrations/2026-05-13-120000-auth-log-event-data.d.ts.map +1 -0
- package/dist/types/migrations/2026-05-13-130000-anti-abuse.d.ts +3 -0
- package/dist/types/migrations/2026-05-13-130000-anti-abuse.d.ts.map +1 -0
- package/dist/types/migrations/2026-05-14-100000-auth-log-admin-actions.d.ts +3 -0
- package/dist/types/migrations/2026-05-14-100000-auth-log-admin-actions.d.ts.map +1 -0
- package/dist/types/migrations/2026-05-15-120000-config-reveal-login-method.d.ts +3 -0
- package/dist/types/migrations/2026-05-15-120000-config-reveal-login-method.d.ts.map +1 -0
- package/dist/types/migrations/2026-05-21-100000-person-mfa.d.ts +3 -0
- package/dist/types/migrations/2026-05-21-100000-person-mfa.d.ts.map +1 -0
- package/dist/types/migrations/2026-05-21-110000-mfa-foundation.d.ts +3 -0
- package/dist/types/migrations/2026-05-21-110000-mfa-foundation.d.ts.map +1 -0
- package/dist/types/migrations/2026-05-21-120000-email-otp.d.ts +3 -0
- package/dist/types/migrations/2026-05-21-120000-email-otp.d.ts.map +1 -0
- package/dist/types/migrations/2026-05-21-130000-api-key-session-policy.d.ts +3 -0
- package/dist/types/migrations/2026-05-21-130000-api-key-session-policy.d.ts.map +1 -0
- package/dist/types/migrations/2026-05-21-140000-mfa-grace-duration.d.ts +3 -0
- package/dist/types/migrations/2026-05-21-140000-mfa-grace-duration.d.ts.map +1 -0
- package/dist/types/migrations/2026-05-21-150000-email-otp-rate-limit.d.ts +3 -0
- package/dist/types/migrations/2026-05-21-150000-email-otp-rate-limit.d.ts.map +1 -0
- package/dist/types/migrations/2026-05-26-120000-email-verification-types.d.ts +3 -0
- package/dist/types/migrations/2026-05-26-120000-email-verification-types.d.ts.map +1 -0
- package/dist/types/migrations/2026-05-26-120010-email-verification.d.ts +3 -0
- package/dist/types/migrations/2026-05-26-120010-email-verification.d.ts.map +1 -0
- package/dist/types/migrations/2026-05-26-130000-email-change-verification-config.d.ts +3 -0
- package/dist/types/migrations/2026-05-26-130000-email-change-verification-config.d.ts.map +1 -0
- package/dist/types/migrations/2026-05-26-130010-idp-require-verified-email.d.ts +3 -0
- package/dist/types/migrations/2026-05-26-130010-idp-require-verified-email.d.ts.map +1 -0
- package/dist/types/migrations/2026-05-26-130020-email-verification-rate-limit.d.ts +3 -0
- package/dist/types/migrations/2026-05-26-130020-email-verification-rate-limit.d.ts.map +1 -0
- package/dist/types/migrations/2026-05-26-130030-captcha-protect-flows.d.ts +3 -0
- package/dist/types/migrations/2026-05-26-130030-captcha-protect-flows.d.ts.map +1 -0
- package/dist/types/migrations/2026-05-26-140000-idp-session.d.ts +3 -0
- package/dist/types/migrations/2026-05-26-140000-idp-session.d.ts.map +1 -0
- package/dist/types/migrations/2026-06-08-100000-idp-assume-email-verified.d.ts +3 -0
- package/dist/types/migrations/2026-06-08-100000-idp-assume-email-verified.d.ts.map +1 -0
- package/dist/types/migrations/2026-06-16-120000-login-anomaly-detection.d.ts +3 -0
- package/dist/types/migrations/2026-06-16-120000-login-anomaly-detection.d.ts.map +1 -0
- package/dist/types/migrations/2026-06-16-130000-idp-logout.d.ts +3 -0
- package/dist/types/migrations/2026-06-16-130000-idp-logout.d.ts.map +1 -0
- package/dist/types/migrations/index.d.ts +2 -2
- package/dist/types/migrations/index.d.ts.map +1 -1
- package/dist/types/migrations/runner.d.ts +12 -1
- package/dist/types/migrations/runner.d.ts.map +1 -1
- package/dist/types/migrations/snapshot-factory.d.ts +1 -1
- package/dist/types/migrations/snapshot-factory.d.ts.map +1 -1
- package/dist/types/migrations/snapshot.d.ts +1 -1
- package/dist/types/migrations/snapshot.d.ts.map +1 -1
- package/dist/types/migrations/tenantCredentials.d.ts +1 -1
- package/dist/types/migrations/tenantCredentials.d.ts.map +1 -1
- package/dist/types/migrations/types.d.ts +1 -1
- package/dist/types/migrations/types.d.ts.map +1 -1
- package/dist/types/model/authorization/Identity.d.ts +2 -2
- package/dist/types/model/authorization/Identity.d.ts.map +1 -1
- package/dist/types/model/authorization/IdentityFactory.d.ts +3 -3
- package/dist/types/model/authorization/IdentityFactory.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/PermissionActions.d.ts +58 -0
- package/dist/types/model/authorization/PermissionActions.d.ts.map +1 -1
- package/dist/types/model/authorization/PermissionContext.d.ts +3 -3
- package/dist/types/model/authorization/PermissionContext.d.ts.map +1 -1
- package/dist/types/model/authorization/PermissionContextFactory.d.ts +5 -5
- package/dist/types/model/authorization/PermissionContextFactory.d.ts.map +1 -1
- package/dist/types/model/authorization/PermissionsFactory.d.ts.map +1 -1
- package/dist/types/model/authorization/ProjectScope.d.ts +3 -3
- package/dist/types/model/authorization/ProjectScope.d.ts.map +1 -1
- package/dist/types/model/authorization/ProjectScopeFactory.d.ts +3 -3
- package/dist/types/model/authorization/ProjectScopeFactory.d.ts.map +1 -1
- package/dist/types/model/authorization/index.d.ts +12 -12
- package/dist/types/model/authorization/index.d.ts.map +1 -1
- package/dist/types/model/commands/Command.d.ts +2 -2
- package/dist/types/model/commands/Command.d.ts.map +1 -1
- package/dist/types/model/commands/CommandBus.d.ts +2 -2
- package/dist/types/model/commands/CommandBus.d.ts.map +1 -1
- package/dist/types/model/commands/apiKey/ApiKeyHelper.d.ts +2 -2
- package/dist/types/model/commands/apiKey/ApiKeyHelper.d.ts.map +1 -1
- package/dist/types/model/commands/apiKey/CreateApiKeyCommand.d.ts +15 -3
- package/dist/types/model/commands/apiKey/CreateApiKeyCommand.d.ts.map +1 -1
- package/dist/types/model/commands/apiKey/DisableApiKeyCommand.d.ts +1 -1
- package/dist/types/model/commands/apiKey/DisableApiKeyCommand.d.ts.map +1 -1
- package/dist/types/model/commands/apiKey/DisableIdentityApiKeysCommand.d.ts +1 -1
- package/dist/types/model/commands/apiKey/DisableIdentityApiKeysCommand.d.ts.map +1 -1
- package/dist/types/model/commands/apiKey/DisableOneOffApiKeyCommand.d.ts +1 -1
- package/dist/types/model/commands/apiKey/DisableOneOffApiKeyCommand.d.ts.map +1 -1
- package/dist/types/model/commands/apiKey/ProlongApiKeyCommand.d.ts +22 -3
- package/dist/types/model/commands/apiKey/ProlongApiKeyCommand.d.ts.map +1 -1
- package/dist/types/model/commands/apiKey/index.d.ts +5 -5
- package/dist/types/model/commands/apiKey/index.d.ts.map +1 -1
- package/dist/types/model/commands/authLog/CreateAuthLogEntryCommand.d.ts +10 -3
- package/dist/types/model/commands/authLog/CreateAuthLogEntryCommand.d.ts.map +1 -1
- package/dist/types/model/commands/authPolicy/CreateAuthPolicyCommand.d.ts +19 -0
- package/dist/types/model/commands/authPolicy/CreateAuthPolicyCommand.d.ts.map +1 -0
- package/dist/types/model/commands/authPolicy/DeleteAuthPolicyCommand.d.ts +8 -0
- package/dist/types/model/commands/authPolicy/DeleteAuthPolicyCommand.d.ts.map +1 -0
- package/dist/types/model/commands/authPolicy/UpdateAuthPolicyCommand.d.ts +23 -0
- package/dist/types/model/commands/authPolicy/UpdateAuthPolicyCommand.d.ts.map +1 -0
- package/dist/types/model/commands/authPolicy/index.d.ts +4 -0
- package/dist/types/model/commands/authPolicy/index.d.ts.map +1 -0
- package/dist/types/model/commands/backupCode/ConsumeBackupCodeCommand.d.ts +15 -0
- package/dist/types/model/commands/backupCode/ConsumeBackupCodeCommand.d.ts.map +1 -0
- package/dist/types/model/commands/backupCode/CreateBackupCodeCommand.d.ts +11 -0
- package/dist/types/model/commands/backupCode/CreateBackupCodeCommand.d.ts.map +1 -0
- package/dist/types/model/commands/backupCode/DeleteBackupCodesCommand.d.ts +10 -0
- package/dist/types/model/commands/backupCode/DeleteBackupCodesCommand.d.ts.map +1 -0
- package/dist/types/model/commands/backupCode/index.d.ts +4 -0
- package/dist/types/model/commands/backupCode/index.d.ts.map +1 -0
- package/dist/types/model/commands/configuration/UpdateConfigurationCommand.d.ts +3 -3
- package/dist/types/model/commands/configuration/UpdateConfigurationCommand.d.ts.map +1 -1
- package/dist/types/model/commands/configuration/index.d.ts +1 -1
- package/dist/types/model/commands/configuration/index.d.ts.map +1 -1
- package/dist/types/model/commands/identity/CreateIdentityCommand.d.ts +1 -1
- package/dist/types/model/commands/identity/CreateIdentityCommand.d.ts.map +1 -1
- package/dist/types/model/commands/identity/PatchIdentityGlobalRoles.d.ts +1 -1
- package/dist/types/model/commands/identity/PatchIdentityGlobalRoles.d.ts.map +1 -1
- package/dist/types/model/commands/identity/index.d.ts +2 -2
- package/dist/types/model/commands/identity/index.d.ts.map +1 -1
- package/dist/types/model/commands/idp/ClaimIdpRevalidationCommand.d.ts +17 -0
- package/dist/types/model/commands/idp/ClaimIdpRevalidationCommand.d.ts.map +1 -0
- package/dist/types/model/commands/idp/CreateIdpCommand.d.ts +2 -2
- package/dist/types/model/commands/idp/CreateIdpCommand.d.ts.map +1 -1
- package/dist/types/model/commands/idp/CreateIdpSessionCommand.d.ts +15 -0
- package/dist/types/model/commands/idp/CreateIdpSessionCommand.d.ts.map +1 -0
- package/dist/types/model/commands/idp/DisableIdpCommand.d.ts +1 -1
- package/dist/types/model/commands/idp/DisableIdpCommand.d.ts.map +1 -1
- package/dist/types/model/commands/idp/DisconnectPersonIdentityProviderCommand.d.ts +13 -0
- package/dist/types/model/commands/idp/DisconnectPersonIdentityProviderCommand.d.ts.map +1 -0
- package/dist/types/model/commands/idp/EnableIdpCommand.d.ts +1 -1
- package/dist/types/model/commands/idp/EnableIdpCommand.d.ts.map +1 -1
- package/dist/types/model/commands/idp/UpdateIdpCommand.d.ts +2 -2
- package/dist/types/model/commands/idp/UpdateIdpCommand.d.ts.map +1 -1
- package/dist/types/model/commands/idp/UpdateIdpSessionCommand.d.ts +14 -0
- package/dist/types/model/commands/idp/UpdateIdpSessionCommand.d.ts.map +1 -0
- package/dist/types/model/commands/index.d.ts +14 -11
- package/dist/types/model/commands/index.d.ts.map +1 -1
- package/dist/types/model/commands/mailTemplate/AddMailTemplateCommand.d.ts +2 -2
- package/dist/types/model/commands/mailTemplate/AddMailTemplateCommand.d.ts.map +1 -1
- package/dist/types/model/commands/mailTemplate/RemoveMailTemplateCommand.d.ts +2 -2
- package/dist/types/model/commands/mailTemplate/RemoveMailTemplateCommand.d.ts.map +1 -1
- package/dist/types/model/commands/mailTemplate/index.d.ts +2 -2
- package/dist/types/model/commands/mailTemplate/index.d.ts.map +1 -1
- package/dist/types/model/commands/membership/AddProjectMemberCommand.d.ts +3 -3
- package/dist/types/model/commands/membership/AddProjectMemberCommand.d.ts.map +1 -1
- package/dist/types/model/commands/membership/CreateOrUpdateProjectMembershipCommand.d.ts +2 -2
- package/dist/types/model/commands/membership/CreateOrUpdateProjectMembershipCommand.d.ts.map +1 -1
- package/dist/types/model/commands/membership/RemoveProjectMemberCommand.d.ts +3 -3
- package/dist/types/model/commands/membership/RemoveProjectMemberCommand.d.ts.map +1 -1
- package/dist/types/model/commands/membership/RemoveProjectMembershipsCommand.d.ts +1 -1
- package/dist/types/model/commands/membership/RemoveProjectMembershipsCommand.d.ts.map +1 -1
- package/dist/types/model/commands/membership/UpdateProjectMemberCommand.d.ts +4 -4
- package/dist/types/model/commands/membership/UpdateProjectMemberCommand.d.ts.map +1 -1
- package/dist/types/model/commands/membership/index.d.ts +6 -6
- package/dist/types/model/commands/membership/index.d.ts.map +1 -1
- package/dist/types/model/commands/membership/variables/PatchProjectMembershipVariableValuesCommand.d.ts +1 -1
- package/dist/types/model/commands/membership/variables/PatchProjectMembershipVariableValuesCommand.d.ts.map +1 -1
- package/dist/types/model/commands/membership/variables/PatchProjectMembershipVariablesCommand.d.ts +2 -2
- package/dist/types/model/commands/membership/variables/PatchProjectMembershipVariablesCommand.d.ts.map +1 -1
- package/dist/types/model/commands/membership/variables/SetProjectMembershipVariableValuesCommand.d.ts +1 -1
- package/dist/types/model/commands/membership/variables/SetProjectMembershipVariableValuesCommand.d.ts.map +1 -1
- package/dist/types/model/commands/membership/variables/index.d.ts +1 -1
- package/dist/types/model/commands/membership/variables/index.d.ts.map +1 -1
- package/dist/types/model/commands/otp/ConfirmOtpCommand.d.ts +12 -3
- package/dist/types/model/commands/otp/ConfirmOtpCommand.d.ts.map +1 -1
- package/dist/types/model/commands/otp/DisableOtpCommand.d.ts +6 -2
- package/dist/types/model/commands/otp/DisableOtpCommand.d.ts.map +1 -1
- package/dist/types/model/commands/otp/PrepareOtpCommand.d.ts +12 -4
- package/dist/types/model/commands/otp/PrepareOtpCommand.d.ts.map +1 -1
- package/dist/types/model/commands/otp/ReEncryptOtpSecretCommand.d.ts +18 -0
- package/dist/types/model/commands/otp/ReEncryptOtpSecretCommand.d.ts.map +1 -0
- package/dist/types/model/commands/otp/SetEmailOtpEnabledCommand.d.ts +12 -0
- package/dist/types/model/commands/otp/SetEmailOtpEnabledCommand.d.ts.map +1 -0
- package/dist/types/model/commands/otp/index.d.ts +5 -3
- package/dist/types/model/commands/otp/index.d.ts.map +1 -1
- package/dist/types/model/commands/person/ChangePasswordCommand.d.ts +1 -1
- package/dist/types/model/commands/person/ChangePasswordCommand.d.ts.map +1 -1
- package/dist/types/model/commands/person/ChangeProfileCommand.d.ts +3 -2
- package/dist/types/model/commands/person/ChangeProfileCommand.d.ts.map +1 -1
- package/dist/types/model/commands/person/CreatePersonCommand.d.ts +4 -3
- package/dist/types/model/commands/person/CreatePersonCommand.d.ts.map +1 -1
- package/dist/types/model/commands/person/CreatePersonIdentityProviderIdentifierCommand.d.ts +1 -1
- package/dist/types/model/commands/person/CreatePersonIdentityProviderIdentifierCommand.d.ts.map +1 -1
- package/dist/types/model/commands/person/DisablePersonCommand.d.ts +1 -1
- package/dist/types/model/commands/person/DisablePersonCommand.d.ts.map +1 -1
- package/dist/types/model/commands/person/MarkEmailVerifiedCommand.d.ts +13 -0
- package/dist/types/model/commands/person/MarkEmailVerifiedCommand.d.ts.map +1 -0
- package/dist/types/model/commands/person/ResetPersonMfaCommand.d.ts +13 -0
- package/dist/types/model/commands/person/ResetPersonMfaCommand.d.ts.map +1 -0
- package/dist/types/model/commands/person/SetMfaGraceUntilCommand.d.ts +9 -0
- package/dist/types/model/commands/person/SetMfaGraceUntilCommand.d.ts.map +1 -0
- package/dist/types/model/commands/person/TogglePersonPasswordlessCommand.d.ts +1 -1
- package/dist/types/model/commands/person/TogglePersonPasswordlessCommand.d.ts.map +1 -1
- package/dist/types/model/commands/person/index.d.ts +7 -4
- package/dist/types/model/commands/person/index.d.ts.map +1 -1
- package/dist/types/model/commands/personToken/ActivateOtpCommand.d.ts +1 -1
- package/dist/types/model/commands/personToken/ActivateOtpCommand.d.ts.map +1 -1
- package/dist/types/model/commands/personToken/ClaimOtpAttemptCommand.d.ts +18 -0
- package/dist/types/model/commands/personToken/ClaimOtpAttemptCommand.d.ts.map +1 -0
- package/dist/types/model/commands/personToken/CreatePersonTokenCommand.d.ts +4 -1
- package/dist/types/model/commands/personToken/CreatePersonTokenCommand.d.ts.map +1 -1
- package/dist/types/model/commands/personToken/IncreaseOtpAttemptCommand.d.ts +1 -1
- package/dist/types/model/commands/personToken/IncreaseOtpAttemptCommand.d.ts.map +1 -1
- package/dist/types/model/commands/personToken/InvalidateEmailOtpTokensCommand.d.ts +11 -0
- package/dist/types/model/commands/personToken/InvalidateEmailOtpTokensCommand.d.ts.map +1 -0
- package/dist/types/model/commands/personToken/InvalidateTokenCommand.d.ts +1 -1
- package/dist/types/model/commands/personToken/InvalidateTokenCommand.d.ts.map +1 -1
- package/dist/types/model/commands/personToken/ResetPasswordCommand.d.ts +3 -3
- package/dist/types/model/commands/personToken/ResetPasswordCommand.d.ts.map +1 -1
- package/dist/types/model/commands/personToken/SaveEmailOtpTokenCommand.d.ts +24 -0
- package/dist/types/model/commands/personToken/SaveEmailOtpTokenCommand.d.ts.map +1 -0
- package/dist/types/model/commands/personToken/SavePersonTokenCommand.d.ts +6 -4
- package/dist/types/model/commands/personToken/SavePersonTokenCommand.d.ts.map +1 -1
- package/dist/types/model/commands/personToken/index.d.ts +9 -6
- package/dist/types/model/commands/personToken/index.d.ts.map +1 -1
- package/dist/types/model/commands/project/CreateProjectCommand.d.ts +2 -2
- package/dist/types/model/commands/project/CreateProjectCommand.d.ts.map +1 -1
- package/dist/types/model/commands/project/SetProjectSecretCommand.d.ts +1 -1
- package/dist/types/model/commands/project/SetProjectSecretCommand.d.ts.map +1 -1
- package/dist/types/model/commands/project/UpdateProjectCommand.d.ts +2 -2
- package/dist/types/model/commands/project/UpdateProjectCommand.d.ts.map +1 -1
- package/dist/types/model/commands/project/index.d.ts +3 -3
- package/dist/types/model/commands/project/index.d.ts.map +1 -1
- package/dist/types/model/commands/rateLimit/RecordRateLimitEventCommand.d.ts +9 -0
- package/dist/types/model/commands/rateLimit/RecordRateLimitEventCommand.d.ts.map +1 -0
- package/dist/types/model/commands/rateLimit/index.d.ts +2 -0
- package/dist/types/model/commands/rateLimit/index.d.ts.map +1 -0
- package/dist/types/model/consts/expirations.d.ts +2 -0
- package/dist/types/model/consts/expirations.d.ts.map +1 -1
- package/dist/types/model/dtos/Password.d.ts +1 -1
- package/dist/types/model/dtos/Password.d.ts.map +1 -1
- package/dist/types/model/dtos/index.d.ts +1 -1
- package/dist/types/model/dtos/index.d.ts.map +1 -1
- package/dist/types/model/index.d.ts +9 -9
- package/dist/types/model/index.d.ts.map +1 -1
- package/dist/types/model/mailing/UserMailer.d.ts +59 -2
- package/dist/types/model/mailing/UserMailer.d.ts.map +1 -1
- package/dist/types/model/mailing/index.d.ts +2 -2
- package/dist/types/model/mailing/index.d.ts.map +1 -1
- package/dist/types/model/mailing/templates/BackupCodesExhausted.mustache.d.ts +3 -0
- package/dist/types/model/mailing/templates/BackupCodesExhausted.mustache.d.ts.map +1 -0
- package/dist/types/model/mailing/templates/EmailChangeNotify.mustache.d.ts +3 -0
- package/dist/types/model/mailing/templates/EmailChangeNotify.mustache.d.ts.map +1 -0
- package/dist/types/model/mailing/templates/EmailChangeVerify.mustache.d.ts +3 -0
- package/dist/types/model/mailing/templates/EmailChangeVerify.mustache.d.ts.map +1 -0
- package/dist/types/model/mailing/templates/EmailOtp.mustache.d.ts +3 -0
- package/dist/types/model/mailing/templates/EmailOtp.mustache.d.ts.map +1 -0
- package/dist/types/model/mailing/templates/EmailVerification.mustache.d.ts +3 -0
- package/dist/types/model/mailing/templates/EmailVerification.mustache.d.ts.map +1 -0
- package/dist/types/model/mailing/templates/ForcedSignOut.mustache.d.ts +3 -0
- package/dist/types/model/mailing/templates/ForcedSignOut.mustache.d.ts.map +1 -0
- package/dist/types/model/mailing/templates/UnusualLogin.mustache.d.ts +3 -0
- package/dist/types/model/mailing/templates/UnusualLogin.mustache.d.ts.map +1 -0
- package/dist/types/model/mailing/type.d.ts +9 -2
- package/dist/types/model/mailing/type.d.ts.map +1 -1
- package/dist/types/model/providers.d.ts +8 -0
- package/dist/types/model/providers.d.ts.map +1 -1
- package/dist/types/model/queries/apiKey/ApiKeyListQuery.d.ts +23 -0
- package/dist/types/model/queries/apiKey/ApiKeyListQuery.d.ts.map +1 -0
- package/dist/types/model/queries/apiKey/ApiKeyQuery.d.ts +9 -1
- package/dist/types/model/queries/apiKey/ApiKeyQuery.d.ts.map +1 -1
- package/dist/types/model/queries/apiKey/ApiKeySessionsQuery.d.ts +21 -0
- package/dist/types/model/queries/apiKey/ApiKeySessionsQuery.d.ts.map +1 -0
- package/dist/types/model/queries/apiKey/index.d.ts +3 -1
- package/dist/types/model/queries/apiKey/index.d.ts.map +1 -1
- package/dist/types/model/queries/authLog/AuthLogQuery.d.ts +48 -0
- package/dist/types/model/queries/authLog/AuthLogQuery.d.ts.map +1 -0
- package/dist/types/model/queries/authLog/NextMailAttemptQuery.d.ts +21 -0
- package/dist/types/model/queries/authLog/NextMailAttemptQuery.d.ts.map +1 -0
- package/dist/types/model/queries/authPolicy/AuthPoliciesQuery.d.ts +15 -0
- package/dist/types/model/queries/authPolicy/AuthPoliciesQuery.d.ts.map +1 -0
- package/dist/types/model/queries/authPolicy/index.d.ts +2 -0
- package/dist/types/model/queries/authPolicy/index.d.ts.map +1 -0
- package/dist/types/model/queries/configuration/ConfigurationQuery.d.ts +4 -1
- package/dist/types/model/queries/configuration/ConfigurationQuery.d.ts.map +1 -1
- package/dist/types/model/queries/configuration/index.d.ts +1 -1
- package/dist/types/model/queries/configuration/index.d.ts.map +1 -1
- package/dist/types/model/queries/identity/index.d.ts +1 -1
- package/dist/types/model/queries/identity/index.d.ts.map +1 -1
- package/dist/types/model/queries/idp/IdentityProviderBySlugQuery.d.ts +1 -1
- package/dist/types/model/queries/idp/IdentityProviderBySlugQuery.d.ts.map +1 -1
- package/dist/types/model/queries/idp/IdentityProvidersQuery.d.ts +1 -1
- package/dist/types/model/queries/idp/IdentityProvidersQuery.d.ts.map +1 -1
- package/dist/types/model/queries/idp/IdpSessionByApiKeyQuery.d.ts +28 -0
- package/dist/types/model/queries/idp/IdpSessionByApiKeyQuery.d.ts.map +1 -0
- package/dist/types/model/queries/idp/IdpSessionsBySidQuery.d.ts +18 -0
- package/dist/types/model/queries/idp/IdpSessionsBySidQuery.d.ts.map +1 -0
- package/dist/types/model/queries/idp/IdpSessionsBySubQuery.d.ts +24 -0
- package/dist/types/model/queries/idp/IdpSessionsBySubQuery.d.ts.map +1 -0
- package/dist/types/model/queries/idp/PersonIdentityProvidersQuery.d.ts +20 -0
- package/dist/types/model/queries/idp/PersonIdentityProvidersQuery.d.ts.map +1 -0
- package/dist/types/model/queries/idp/helpers.d.ts +2 -2
- package/dist/types/model/queries/idp/helpers.d.ts.map +1 -1
- package/dist/types/model/queries/idp/index.d.ts +6 -2
- package/dist/types/model/queries/idp/index.d.ts.map +1 -1
- package/dist/types/model/queries/idp/types.d.ts +3 -1
- package/dist/types/model/queries/idp/types.d.ts.map +1 -1
- package/dist/types/model/queries/index.d.ts +10 -8
- package/dist/types/model/queries/index.d.ts.map +1 -1
- package/dist/types/model/queries/mailTemplate/MailTemplateListQuery.d.ts +1 -1
- package/dist/types/model/queries/mailTemplate/MailTemplateListQuery.d.ts.map +1 -1
- package/dist/types/model/queries/mailTemplate/MailTemplateQuery.d.ts +2 -2
- package/dist/types/model/queries/mailTemplate/MailTemplateQuery.d.ts.map +1 -1
- package/dist/types/model/queries/mailTemplate/helpers.d.ts +1 -1
- package/dist/types/model/queries/mailTemplate/helpers.d.ts.map +1 -1
- package/dist/types/model/queries/mailTemplate/index.d.ts +2 -2
- package/dist/types/model/queries/mailTemplate/index.d.ts.map +1 -1
- package/dist/types/model/queries/membership/AllProjectRolesByIdentityQuery.d.ts +24 -0
- package/dist/types/model/queries/membership/AllProjectRolesByIdentityQuery.d.ts.map +1 -0
- package/dist/types/model/queries/membership/ProjectMembersQuery.d.ts +1 -1
- package/dist/types/model/queries/membership/ProjectMembersQuery.d.ts.map +1 -1
- package/dist/types/model/queries/membership/index.d.ts +4 -3
- package/dist/types/model/queries/membership/index.d.ts.map +1 -1
- package/dist/types/model/queries/person/PersonByIdPQuery.d.ts +1 -1
- package/dist/types/model/queries/person/PersonByIdPQuery.d.ts.map +1 -1
- package/dist/types/model/queries/person/PersonByIdentityBatchQuery.d.ts +1 -1
- package/dist/types/model/queries/person/PersonByIdentityBatchQuery.d.ts.map +1 -1
- package/dist/types/model/queries/person/PersonQuery.d.ts +1 -1
- package/dist/types/model/queries/person/PersonQuery.d.ts.map +1 -1
- package/dist/types/model/queries/person/PersonQueryBuilderFactory.d.ts +7 -1
- package/dist/types/model/queries/person/PersonQueryBuilderFactory.d.ts.map +1 -1
- package/dist/types/model/queries/person/PersonsQuery.d.ts +25 -0
- package/dist/types/model/queries/person/PersonsQuery.d.ts.map +1 -0
- package/dist/types/model/queries/person/index.d.ts +5 -4
- package/dist/types/model/queries/person/index.d.ts.map +1 -1
- package/dist/types/model/queries/person/types.d.ts +25 -1
- package/dist/types/model/queries/person/types.d.ts.map +1 -1
- package/dist/types/model/queries/personToken/PersonTokenQuery.d.ts +4 -1
- package/dist/types/model/queries/personToken/PersonTokenQuery.d.ts.map +1 -1
- package/dist/types/model/queries/project/ProjectBySlugQuery.d.ts +1 -1
- package/dist/types/model/queries/project/ProjectBySlugQuery.d.ts.map +1 -1
- package/dist/types/model/queries/project/ProjectSecretKeysQuery.d.ts +17 -0
- package/dist/types/model/queries/project/ProjectSecretKeysQuery.d.ts.map +1 -0
- package/dist/types/model/queries/project/ProjectSecretsQuery.d.ts +1 -1
- package/dist/types/model/queries/project/ProjectSecretsQuery.d.ts.map +1 -1
- package/dist/types/model/queries/project/ProjectsByIdentityQuery.d.ts +2 -2
- package/dist/types/model/queries/project/ProjectsByIdentityQuery.d.ts.map +1 -1
- package/dist/types/model/queries/project/ProjectsQuery.d.ts +1 -1
- package/dist/types/model/queries/project/ProjectsQuery.d.ts.map +1 -1
- package/dist/types/model/queries/project/index.d.ts +6 -5
- package/dist/types/model/queries/project/index.d.ts.map +1 -1
- package/dist/types/model/queries/rateLimit/RateLimitCountQuery.d.ts +10 -0
- package/dist/types/model/queries/rateLimit/RateLimitCountQuery.d.ts.map +1 -0
- package/dist/types/model/queries/rateLimit/index.d.ts +2 -0
- package/dist/types/model/queries/rateLimit/index.d.ts.map +1 -0
- package/dist/types/model/service/AuthLogService.d.ts +27 -3
- package/dist/types/model/service/AuthLogService.d.ts.map +1 -1
- package/dist/types/model/service/AuthPolicyManager.d.ts +37 -0
- package/dist/types/model/service/AuthPolicyManager.d.ts.map +1 -0
- package/dist/types/model/service/AuthPolicyResolver.d.ts +25 -0
- package/dist/types/model/service/AuthPolicyResolver.d.ts.map +1 -0
- package/dist/types/model/service/BackupCodeManager.d.ts +36 -0
- package/dist/types/model/service/BackupCodeManager.d.ts.map +1 -0
- package/dist/types/model/service/ConfigurationManager.d.ts +3 -3
- package/dist/types/model/service/ConfigurationManager.d.ts.map +1 -1
- package/dist/types/model/service/EmailChangeManager.d.ts +41 -0
- package/dist/types/model/service/EmailChangeManager.d.ts.map +1 -0
- package/dist/types/model/service/EmailOtpManager.d.ts +45 -0
- package/dist/types/model/service/EmailOtpManager.d.ts.map +1 -0
- package/dist/types/model/service/EmailValidator.d.ts +4 -3
- package/dist/types/model/service/EmailValidator.d.ts.map +1 -1
- package/dist/types/model/service/EmailVerificationManager.d.ts +33 -0
- package/dist/types/model/service/EmailVerificationManager.d.ts.map +1 -0
- package/dist/types/model/service/HibpChecker.d.ts +25 -0
- package/dist/types/model/service/HibpChecker.d.ts.map +1 -0
- package/dist/types/model/service/IDPSignInManager.d.ts +14 -8
- package/dist/types/model/service/IDPSignInManager.d.ts.map +1 -1
- package/dist/types/model/service/InviteManager.d.ts +7 -7
- package/dist/types/model/service/InviteManager.d.ts.map +1 -1
- package/dist/types/model/service/LoginRiskAnalyzer.d.ts +97 -0
- package/dist/types/model/service/LoginRiskAnalyzer.d.ts.map +1 -0
- package/dist/types/model/service/MailTemplateManager.d.ts +2 -2
- package/dist/types/model/service/MailTemplateManager.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/OtpAuthenticator.d.ts +1 -1
- package/dist/types/model/service/OtpAuthenticator.d.ts.map +1 -1
- package/dist/types/model/service/OtpManager.d.ts +21 -6
- package/dist/types/model/service/OtpManager.d.ts.map +1 -1
- package/dist/types/model/service/PasswordChangeManager.d.ts +6 -6
- package/dist/types/model/service/PasswordChangeManager.d.ts.map +1 -1
- package/dist/types/model/service/PasswordResetManager.d.ts +9 -9
- package/dist/types/model/service/PasswordResetManager.d.ts.map +1 -1
- package/dist/types/model/service/PasswordStrengthValidator.d.ts +6 -3
- package/dist/types/model/service/PasswordStrengthValidator.d.ts.map +1 -1
- package/dist/types/model/service/PasswordlessSignInManager.d.ts +22 -15
- package/dist/types/model/service/PasswordlessSignInManager.d.ts.map +1 -1
- package/dist/types/model/service/PersonAccessManager.d.ts +5 -5
- package/dist/types/model/service/PersonAccessManager.d.ts.map +1 -1
- package/dist/types/model/service/PersonManager.d.ts +6 -5
- package/dist/types/model/service/PersonManager.d.ts.map +1 -1
- package/dist/types/model/service/ProjectManager.d.ts +7 -7
- package/dist/types/model/service/ProjectManager.d.ts.map +1 -1
- package/dist/types/model/service/ProjectMemberManager.d.ts +5 -5
- package/dist/types/model/service/ProjectMemberManager.d.ts.map +1 -1
- package/dist/types/model/service/RateLimiter.d.ts +46 -0
- package/dist/types/model/service/RateLimiter.d.ts.map +1 -0
- package/dist/types/model/service/RolesManager.d.ts +2 -2
- package/dist/types/model/service/RolesManager.d.ts.map +1 -1
- package/dist/types/model/service/SecretsManager.d.ts +5 -2
- package/dist/types/model/service/SecretsManager.d.ts.map +1 -1
- package/dist/types/model/service/SignInManager.d.ts +72 -11
- package/dist/types/model/service/SignInManager.d.ts.map +1 -1
- package/dist/types/model/service/SignOutManager.d.ts +31 -0
- package/dist/types/model/service/SignOutManager.d.ts.map +1 -0
- package/dist/types/model/service/SignUpManager.d.ts +13 -9
- package/dist/types/model/service/SignUpManager.d.ts.map +1 -1
- package/dist/types/model/service/apiKey/ApiKeyManager.d.ts +29 -10
- package/dist/types/model/service/apiKey/ApiKeyManager.d.ts.map +1 -1
- package/dist/types/model/service/apiKey/ApiKeyService.d.ts +5 -5
- package/dist/types/model/service/apiKey/ApiKeyService.d.ts.map +1 -1
- package/dist/types/model/service/apiKey/UnpersistedApiKeyManager.d.ts +38 -0
- package/dist/types/model/service/apiKey/UnpersistedApiKeyManager.d.ts.map +1 -0
- package/dist/types/model/service/apiKey/index.d.ts +3 -2
- package/dist/types/model/service/apiKey/index.d.ts.map +1 -1
- package/dist/types/model/service/captcha/CaptchaProvider.d.ts +24 -0
- package/dist/types/model/service/captcha/CaptchaProvider.d.ts.map +1 -0
- package/dist/types/model/service/captcha/CaptchaValidator.d.ts +37 -0
- package/dist/types/model/service/captcha/CaptchaValidator.d.ts.map +1 -0
- package/dist/types/model/service/captcha/HCaptchaProvider.d.ts +9 -0
- package/dist/types/model/service/captcha/HCaptchaProvider.d.ts.map +1 -0
- package/dist/types/model/service/captcha/RecaptchaV3Provider.d.ts +12 -0
- package/dist/types/model/service/captcha/RecaptchaV3Provider.d.ts.map +1 -0
- package/dist/types/model/service/captcha/TurnstileProvider.d.ts +12 -0
- package/dist/types/model/service/captcha/TurnstileProvider.d.ts.map +1 -0
- package/dist/types/model/service/captcha/index.d.ts +6 -0
- package/dist/types/model/service/captcha/index.d.ts.map +1 -0
- package/dist/types/model/service/helpers/getPreferredProject.d.ts +1 -1
- package/dist/types/model/service/helpers/getPreferredProject.d.ts.map +1 -1
- package/dist/types/model/service/helpers/isPasswordlessEnabled.d.ts +10 -0
- package/dist/types/model/service/helpers/isPasswordlessEnabled.d.ts.map +1 -0
- package/dist/types/model/service/idp/BackchannelLogoutManager.d.ts +34 -0
- package/dist/types/model/service/idp/BackchannelLogoutManager.d.ts.map +1 -0
- package/dist/types/model/service/idp/IDPHandlerRegistry.d.ts +1 -1
- package/dist/types/model/service/idp/IDPHandlerRegistry.d.ts.map +1 -1
- package/dist/types/model/service/idp/IDPManager.d.ts +7 -7
- package/dist/types/model/service/idp/IDPManager.d.ts.map +1 -1
- package/dist/types/model/service/idp/IDPRevalidation.d.ts +54 -0
- package/dist/types/model/service/idp/IDPRevalidation.d.ts.map +1 -0
- package/dist/types/model/service/idp/IdentityProviderHandler.d.ts +66 -0
- package/dist/types/model/service/idp/IdentityProviderHandler.d.ts.map +1 -1
- package/dist/types/model/service/idp/IdpSessionRevalidator.d.ts +41 -0
- package/dist/types/model/service/idp/IdpSessionRevalidator.d.ts.map +1 -0
- package/dist/types/model/service/idp/PersonIdentityProviderManager.d.ts +24 -0
- package/dist/types/model/service/idp/PersonIdentityProviderManager.d.ts.map +1 -0
- package/dist/types/model/service/idp/index.d.ts +14 -10
- package/dist/types/model/service/idp/index.d.ts.map +1 -1
- package/dist/types/model/service/idp/providers/AppleProvider.d.ts +37 -1
- package/dist/types/model/service/idp/providers/AppleProvider.d.ts.map +1 -1
- package/dist/types/model/service/idp/providers/FacebookProvider.d.ts +37 -1
- package/dist/types/model/service/idp/providers/FacebookProvider.d.ts.map +1 -1
- package/dist/types/model/service/idp/providers/OIDCHelpers.d.ts +48 -4
- package/dist/types/model/service/idp/providers/OIDCHelpers.d.ts.map +1 -1
- package/dist/types/model/service/idp/providers/OIDCProvider.d.ts +28 -2
- package/dist/types/model/service/idp/providers/OIDCProvider.d.ts.map +1 -1
- package/dist/types/model/service/idp/providers/OIDCTypes.d.ts +147 -0
- package/dist/types/model/service/idp/providers/OIDCTypes.d.ts.map +1 -1
- package/dist/types/model/service/index.d.ts +30 -19
- package/dist/types/model/service/index.d.ts.map +1 -1
- package/dist/types/model/service/membershipUtils.d.ts +1 -1
- package/dist/types/model/service/membershipUtils.d.ts.map +1 -1
- package/dist/types/model/type/AuthLog.d.ts +1 -1
- package/dist/types/model/type/AuthLog.d.ts.map +1 -1
- package/dist/types/model/type/AuthPolicy.d.ts +30 -0
- package/dist/types/model/type/AuthPolicy.d.ts.map +1 -0
- package/dist/types/model/type/Config.d.ts +39 -4
- package/dist/types/model/type/Config.d.ts.map +1 -1
- package/dist/types/model/type/IdentityProvider.d.ts +2 -0
- package/dist/types/model/type/IdentityProvider.d.ts.map +1 -1
- package/dist/types/model/type/PersonToken.d.ts +10 -1
- package/dist/types/model/type/PersonToken.d.ts.map +1 -1
- package/dist/types/model/type/RateLimit.d.ts +10 -0
- package/dist/types/model/type/RateLimit.d.ts.map +1 -0
- package/dist/types/model/type/index.d.ts +7 -5
- package/dist/types/model/type/index.d.ts.map +1 -1
- package/dist/types/model/utils/DatabaseContext.d.ts +3 -3
- package/dist/types/model/utils/DatabaseContext.d.ts.map +1 -1
- package/dist/types/model/utils/index.d.ts +2 -2
- package/dist/types/model/utils/index.d.ts.map +1 -1
- package/dist/types/model/utils/interval.d.ts +6 -0
- package/dist/types/model/utils/interval.d.ts.map +1 -1
- package/dist/types/model/utils/token.d.ts +10 -3
- package/dist/types/model/utils/token.d.ts.map +1 -1
- package/dist/types/resolvers/Resolver.d.ts +1 -1
- package/dist/types/resolvers/Resolver.d.ts.map +1 -1
- package/dist/types/resolvers/ResolverFactory.d.ts +31 -12
- package/dist/types/resolvers/ResolverFactory.d.ts.map +1 -1
- package/dist/types/resolvers/TenantResolverContext.d.ts +10 -2
- package/dist/types/resolvers/TenantResolverContext.d.ts.map +1 -1
- package/dist/types/resolvers/TenantResolverContextFactory.d.ts +17 -8
- package/dist/types/resolvers/TenantResolverContextFactory.d.ts.map +1 -1
- package/dist/types/resolvers/errorUtils.d.ts +1 -1
- package/dist/types/resolvers/errorUtils.d.ts.map +1 -1
- package/dist/types/resolvers/index.d.ts +6 -6
- package/dist/types/resolvers/index.d.ts.map +1 -1
- package/dist/types/resolvers/membershipUtils.d.ts +2 -2
- package/dist/types/resolvers/membershipUtils.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.d.ts +5 -5
- package/dist/types/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.d.ts +3 -3
- package/dist/types/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/apiKey/index.d.ts +2 -2
- package/dist/types/resolvers/mutation/apiKey/index.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/configuration/AuthPolicyMutationResolver.d.ts +17 -0
- package/dist/types/resolvers/mutation/configuration/AuthPolicyMutationResolver.d.ts.map +1 -0
- package/dist/types/resolvers/mutation/configuration/ConfigurationMutationResolver.d.ts +3 -3
- package/dist/types/resolvers/mutation/configuration/ConfigurationMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/identity/GlobalRolesMutationResolver.d.ts +4 -3
- package/dist/types/resolvers/mutation/identity/GlobalRolesMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/identity/index.d.ts +1 -1
- package/dist/types/resolvers/mutation/identity/index.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/idp/AddIDPMutationResolver.d.ts +3 -3
- package/dist/types/resolvers/mutation/idp/AddIDPMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/idp/DisableIDPMutationResolver.d.ts +3 -3
- package/dist/types/resolvers/mutation/idp/DisableIDPMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/idp/DisconnectMyIdentityProviderMutationResolver.d.ts +9 -0
- package/dist/types/resolvers/mutation/idp/DisconnectMyIdentityProviderMutationResolver.d.ts.map +1 -0
- package/dist/types/resolvers/mutation/idp/EnableIDPMutationResolver.d.ts +3 -3
- package/dist/types/resolvers/mutation/idp/EnableIDPMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/idp/UpdateIDPMutationResolver.d.ts +3 -3
- package/dist/types/resolvers/mutation/idp/UpdateIDPMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/idp/audit.d.ts +4 -0
- package/dist/types/resolvers/mutation/idp/audit.d.ts.map +1 -0
- package/dist/types/resolvers/mutation/idp/index.d.ts +4 -3
- package/dist/types/resolvers/mutation/idp/index.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/index.d.ts +7 -7
- package/dist/types/resolvers/mutation/index.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.d.ts +3 -3
- package/dist/types/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/mailTemplates/index.d.ts +1 -1
- package/dist/types/resolvers/mutation/mailTemplates/index.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/ChangePasswordMutationResolver.d.ts +3 -3
- package/dist/types/resolvers/mutation/person/ChangePasswordMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/ChangeProfileMutationResolver.d.ts +8 -5
- package/dist/types/resolvers/mutation/person/ChangeProfileMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/DisablePersonMutationResolver.d.ts +4 -4
- package/dist/types/resolvers/mutation/person/DisablePersonMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/EmailOtpMutationResolver.d.ts +14 -0
- package/dist/types/resolvers/mutation/person/EmailOtpMutationResolver.d.ts.map +1 -0
- package/dist/types/resolvers/mutation/person/EmailVerificationMutationResolver.d.ts +14 -0
- package/dist/types/resolvers/mutation/person/EmailVerificationMutationResolver.d.ts.map +1 -0
- package/dist/types/resolvers/mutation/person/ForceSignOutMutationResolver.d.ts +13 -0
- package/dist/types/resolvers/mutation/person/ForceSignOutMutationResolver.d.ts.map +1 -0
- package/dist/types/resolvers/mutation/person/IDPMutationResolver.d.ts +4 -4
- package/dist/types/resolvers/mutation/person/IDPMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/InviteMutationResolver.d.ts +3 -3
- package/dist/types/resolvers/mutation/person/InviteMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/OtpMutationResolver.d.ts +6 -4
- package/dist/types/resolvers/mutation/person/OtpMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/PasswordlessMutationResolver.d.ts +8 -5
- package/dist/types/resolvers/mutation/person/PasswordlessMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/RegenerateBackupCodesMutationResolver.d.ts +10 -0
- package/dist/types/resolvers/mutation/person/RegenerateBackupCodesMutationResolver.d.ts.map +1 -0
- package/dist/types/resolvers/mutation/person/ResetPasswordMutationResolver.d.ts +6 -4
- package/dist/types/resolvers/mutation/person/ResetPasswordMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/ResetPersonMfaMutationResolver.d.ts +18 -0
- package/dist/types/resolvers/mutation/person/ResetPersonMfaMutationResolver.d.ts.map +1 -0
- package/dist/types/resolvers/mutation/person/RevokeSessionMutationResolver.d.ts +9 -0
- package/dist/types/resolvers/mutation/person/RevokeSessionMutationResolver.d.ts.map +1 -0
- package/dist/types/resolvers/mutation/person/SignInMutationResolver.d.ts +6 -5
- package/dist/types/resolvers/mutation/person/SignInMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/SignOutMutationResolver.d.ts +5 -5
- package/dist/types/resolvers/mutation/person/SignOutMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/SignUpMutationResolver.d.ts +8 -4
- package/dist/types/resolvers/mutation/person/SignUpMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/TogglePasswordlessMutationResolver.d.ts +4 -4
- package/dist/types/resolvers/mutation/person/TogglePasswordlessMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/person/index.d.ts +12 -9
- package/dist/types/resolvers/mutation/person/index.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/project/CreateProjectMutationResolver.d.ts +3 -3
- package/dist/types/resolvers/mutation/project/CreateProjectMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/project/SetProjectSecretMutationResolver.d.ts +3 -3
- package/dist/types/resolvers/mutation/project/SetProjectSecretMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/project/UpdateProjectMutationResolver.d.ts +3 -3
- package/dist/types/resolvers/mutation/project/UpdateProjectMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/project/index.d.ts +3 -3
- package/dist/types/resolvers/mutation/project/index.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.d.ts +3 -3
- package/dist/types/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.d.ts +3 -3
- package/dist/types/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.d.ts +3 -3
- package/dist/types/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/projectMember/audit.d.ts +5 -0
- package/dist/types/resolvers/mutation/projectMember/audit.d.ts.map +1 -0
- package/dist/types/resolvers/mutation/projectMember/index.d.ts +3 -3
- package/dist/types/resolvers/mutation/projectMember/index.d.ts.map +1 -1
- package/dist/types/resolvers/query/ApiKeyQueryResolver.d.ts +6 -0
- package/dist/types/resolvers/query/ApiKeyQueryResolver.d.ts.map +1 -0
- package/dist/types/resolvers/query/AuthLogQueryResolver.d.ts +6 -0
- package/dist/types/resolvers/query/AuthLogQueryResolver.d.ts.map +1 -0
- package/dist/types/resolvers/query/AuthPolicyQueryResolver.d.ts +14 -0
- package/dist/types/resolvers/query/AuthPolicyQueryResolver.d.ts.map +1 -0
- package/dist/types/resolvers/query/ConfigurationQueryResolver.d.ts +3 -3
- package/dist/types/resolvers/query/ConfigurationQueryResolver.d.ts.map +1 -1
- package/dist/types/resolvers/query/IDPQueryResolver.d.ts +3 -3
- package/dist/types/resolvers/query/IDPQueryResolver.d.ts.map +1 -1
- package/dist/types/resolvers/query/MailTemplateQueryResolver.d.ts +2 -2
- package/dist/types/resolvers/query/MailTemplateQueryResolver.d.ts.map +1 -1
- package/dist/types/resolvers/query/MeQueryResolver.d.ts +2 -2
- package/dist/types/resolvers/query/MeQueryResolver.d.ts.map +1 -1
- package/dist/types/resolvers/query/PersonQueryResolver.d.ts +7 -4
- package/dist/types/resolvers/query/PersonQueryResolver.d.ts.map +1 -1
- package/dist/types/resolvers/query/ProjectMembersQueryResolver.d.ts +3 -3
- package/dist/types/resolvers/query/ProjectMembersQueryResolver.d.ts.map +1 -1
- package/dist/types/resolvers/query/ProjectQueryResolver.d.ts +3 -3
- package/dist/types/resolvers/query/ProjectQueryResolver.d.ts.map +1 -1
- package/dist/types/resolvers/query/index.d.ts +6 -4
- package/dist/types/resolvers/query/index.d.ts.map +1 -1
- package/dist/types/resolvers/responseHelpers/ApiKeyResponseFactory.d.ts +6 -0
- package/dist/types/resolvers/responseHelpers/ApiKeyResponseFactory.d.ts.map +1 -0
- package/dist/types/resolvers/responseHelpers/PersonResponseFactory.d.ts +3 -3
- package/dist/types/resolvers/responseHelpers/PersonResponseFactory.d.ts.map +1 -1
- package/dist/types/resolvers/responseHelpers/SignInResponseFactory.d.ts +6 -4
- package/dist/types/resolvers/responseHelpers/SignInResponseFactory.d.ts.map +1 -1
- package/dist/types/resolvers/types/IdentityTypeResolver.d.ts +7 -3
- package/dist/types/resolvers/types/IdentityTypeResolver.d.ts.map +1 -1
- package/dist/types/resolvers/types/PersonTypeResolver.d.ts +9 -0
- package/dist/types/resolvers/types/PersonTypeResolver.d.ts.map +1 -0
- package/dist/types/resolvers/types/ProjectTypeResolver.d.ts +7 -4
- package/dist/types/resolvers/types/ProjectTypeResolver.d.ts.map +1 -1
- package/dist/types/resolvers/types/index.d.ts +3 -2
- package/dist/types/resolvers/types/index.d.ts.map +1 -1
- package/dist/types/schema/index.d.ts +1215 -148
- package/dist/types/schema/index.d.ts.map +1 -1
- package/dist/types/schema/tenant.graphql.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/types/utils/Mailer.d.ts +1 -1
- package/dist/types/utils/Mailer.d.ts.map +1 -1
- package/dist/types/utils/batchQuery.d.ts +1 -1
- package/dist/types/utils/batchQuery.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts +2 -2
- package/dist/types/utils/index.d.ts.map +1 -1
- package/package.json +12 -12
- package/src/TenantContainer.ts +183 -46
- package/src/bin/runMigrations.ts +1 -1
- package/src/bridges/system/IdentityFetcher.ts +1 -1
- package/src/index.ts +7 -6
- package/src/migrations/2020-06-08-134000-tenant-credentials.ts +2 -2
- package/src/migrations/2026-05-12-120000-api-key-session-tracking.ts +23 -0
- package/src/migrations/2026-05-12-130000-api-key-trust-forwarded-info.ts +10 -0
- package/src/migrations/2026-05-13-120000-auth-log-event-data.ts +16 -0
- package/src/migrations/2026-05-13-130000-anti-abuse.ts +44 -0
- package/src/migrations/2026-05-14-100000-auth-log-admin-actions.ts +20 -0
- package/src/migrations/2026-05-15-120000-config-reveal-login-method.ts +10 -0
- package/src/migrations/2026-05-21-100000-person-mfa.ts +26 -0
- package/src/migrations/2026-05-21-110000-mfa-foundation.ts +43 -0
- package/src/migrations/2026-05-21-120000-email-otp.ts +9 -0
- package/src/migrations/2026-05-21-130000-api-key-session-policy.ts +11 -0
- package/src/migrations/2026-05-21-140000-mfa-grace-duration.ts +10 -0
- package/src/migrations/2026-05-21-150000-email-otp-rate-limit.ts +18 -0
- package/src/migrations/2026-05-26-120000-email-verification-types.ts +18 -0
- package/src/migrations/2026-05-26-120010-email-verification.ts +28 -0
- package/src/migrations/2026-05-26-130000-email-change-verification-config.ts +19 -0
- package/src/migrations/2026-05-26-130010-idp-require-verified-email.ts +15 -0
- package/src/migrations/2026-05-26-130020-email-verification-rate-limit.ts +17 -0
- package/src/migrations/2026-05-26-130030-captcha-protect-flows.ts +22 -0
- package/src/migrations/2026-05-26-140000-idp-session.ts +31 -0
- package/src/migrations/2026-06-08-100000-idp-assume-email-verified.ts +15 -0
- package/src/migrations/2026-06-16-120000-login-anomaly-detection.ts +34 -0
- package/src/migrations/2026-06-16-130000-idp-logout.ts +10 -0
- package/src/migrations/index.ts +2 -2
- package/src/migrations/runner.ts +97 -42
- package/src/migrations/snapshot-factory.ts +2 -2
- package/src/migrations/snapshot-template-start.txt +2 -2
- package/src/migrations/snapshot.ts +180 -12
- package/src/migrations/tenantCredentials.ts +1 -1
- package/src/migrations/types.ts +1 -1
- package/src/model/authorization/AclSchemaAccessNodeFactory.ts +3 -3
- package/src/model/authorization/Identity.ts +2 -2
- package/src/model/authorization/IdentityFactory.ts +3 -3
- package/src/model/authorization/IdentityScope.ts +2 -2
- package/src/model/authorization/PermissionActions.ts +10 -0
- package/src/model/authorization/PermissionContext.ts +3 -3
- package/src/model/authorization/PermissionContextFactory.ts +5 -5
- package/src/model/authorization/PermissionsFactory.ts +9 -2
- package/src/model/authorization/ProjectScope.ts +4 -4
- package/src/model/authorization/ProjectScopeFactory.ts +4 -4
- package/src/model/authorization/index.ts +12 -12
- package/src/model/commands/Command.ts +2 -2
- package/src/model/commands/CommandBus.ts +2 -2
- package/src/model/commands/apiKey/ApiKeyHelper.ts +3 -3
- package/src/model/commands/apiKey/CreateApiKeyCommand.ts +32 -4
- package/src/model/commands/apiKey/DisableApiKeyCommand.ts +1 -1
- package/src/model/commands/apiKey/DisableIdentityApiKeysCommand.ts +1 -1
- package/src/model/commands/apiKey/DisableOneOffApiKeyCommand.ts +2 -2
- package/src/model/commands/apiKey/ProlongApiKeyCommand.ts +66 -13
- package/src/model/commands/apiKey/index.ts +5 -5
- package/src/model/commands/authLog/CreateAuthLogEntryCommand.ts +14 -3
- package/src/model/commands/authPolicy/CreateAuthPolicyCommand.ts +41 -0
- package/src/model/commands/authPolicy/DeleteAuthPolicyCommand.ts +15 -0
- package/src/model/commands/authPolicy/UpdateAuthPolicyCommand.ts +43 -0
- package/src/model/commands/authPolicy/index.ts +3 -0
- package/src/model/commands/backupCode/ConsumeBackupCodeCommand.ts +32 -0
- package/src/model/commands/backupCode/CreateBackupCodeCommand.ts +24 -0
- package/src/model/commands/backupCode/DeleteBackupCodesCommand.ts +16 -0
- package/src/model/commands/backupCode/index.ts +3 -0
- package/src/model/commands/configuration/UpdateConfigurationCommand.ts +51 -4
- package/src/model/commands/configuration/index.ts +1 -1
- package/src/model/commands/identity/CreateIdentityCommand.ts +1 -1
- package/src/model/commands/identity/PatchIdentityGlobalRoles.ts +1 -1
- package/src/model/commands/identity/index.ts +2 -2
- package/src/model/commands/idp/ClaimIdpRevalidationCommand.ts +28 -0
- package/src/model/commands/idp/CreateIdpCommand.ts +5 -3
- package/src/model/commands/idp/CreateIdpSessionCommand.ts +39 -0
- package/src/model/commands/idp/DisableIdpCommand.ts +1 -1
- package/src/model/commands/idp/DisconnectPersonIdentityProviderCommand.ts +25 -0
- package/src/model/commands/idp/EnableIdpCommand.ts +1 -1
- package/src/model/commands/idp/UpdateIdpCommand.ts +5 -3
- package/src/model/commands/idp/UpdateIdpSessionCommand.ts +44 -0
- package/src/model/commands/index.ts +14 -11
- package/src/model/commands/mailTemplate/AddMailTemplateCommand.ts +2 -2
- package/src/model/commands/mailTemplate/RemoveMailTemplateCommand.ts +2 -2
- package/src/model/commands/mailTemplate/index.ts +2 -2
- package/src/model/commands/membership/AddProjectMemberCommand.ts +4 -4
- package/src/model/commands/membership/CreateOrUpdateProjectMembershipCommand.ts +4 -4
- package/src/model/commands/membership/RemoveProjectMemberCommand.ts +3 -3
- package/src/model/commands/membership/RemoveProjectMembershipsCommand.ts +1 -1
- package/src/model/commands/membership/UpdateProjectMemberCommand.ts +6 -6
- package/src/model/commands/membership/index.ts +6 -6
- package/src/model/commands/membership/variables/PatchProjectMembershipVariableValuesCommand.ts +1 -1
- package/src/model/commands/membership/variables/PatchProjectMembershipVariablesCommand.ts +4 -4
- package/src/model/commands/membership/variables/SetProjectMembershipVariableValuesCommand.ts +1 -1
- package/src/model/commands/membership/variables/index.ts +1 -1
- package/src/model/commands/otp/ConfirmOtpCommand.ts +25 -8
- package/src/model/commands/otp/DisableOtpCommand.ts +14 -6
- package/src/model/commands/otp/PrepareOtpCommand.ts +26 -10
- package/src/model/commands/otp/ReEncryptOtpSecretCommand.ts +33 -0
- package/src/model/commands/otp/SetEmailOtpEnabledCommand.ts +23 -0
- package/src/model/commands/otp/index.ts +5 -3
- package/src/model/commands/person/ChangePasswordCommand.ts +1 -1
- package/src/model/commands/person/ChangeProfileCommand.ts +19 -3
- package/src/model/commands/person/CreatePersonCommand.ts +16 -5
- package/src/model/commands/person/CreatePersonIdentityProviderIdentifierCommand.ts +1 -1
- package/src/model/commands/person/DisablePersonCommand.ts +1 -1
- package/src/model/commands/person/MarkEmailVerifiedCommand.ts +30 -0
- package/src/model/commands/person/ResetPersonMfaCommand.ts +36 -0
- package/src/model/commands/person/SetMfaGraceUntilCommand.ts +17 -0
- package/src/model/commands/person/TogglePersonPasswordlessCommand.ts +1 -1
- package/src/model/commands/person/index.ts +7 -4
- package/src/model/commands/personToken/ActivateOtpCommand.ts +2 -2
- package/src/model/commands/personToken/ClaimOtpAttemptCommand.ts +33 -0
- package/src/model/commands/personToken/CreatePersonTokenCommand.ts +31 -5
- package/src/model/commands/personToken/IncreaseOtpAttemptCommand.ts +2 -2
- package/src/model/commands/personToken/InvalidateEmailOtpTokensCommand.ts +21 -0
- package/src/model/commands/personToken/InvalidateTokenCommand.ts +2 -2
- package/src/model/commands/personToken/ResetPasswordCommand.ts +7 -7
- package/src/model/commands/personToken/SaveEmailOtpTokenCommand.ts +49 -0
- package/src/model/commands/personToken/SavePersonTokenCommand.ts +7 -4
- package/src/model/commands/personToken/index.ts +9 -6
- package/src/model/commands/project/CreateProjectCommand.ts +2 -2
- package/src/model/commands/project/SetProjectSecretCommand.ts +1 -1
- package/src/model/commands/project/UpdateProjectCommand.ts +2 -2
- package/src/model/commands/project/index.ts +3 -3
- package/src/model/commands/rateLimit/RecordRateLimitEventCommand.ts +22 -0
- package/src/model/commands/rateLimit/index.ts +1 -0
- package/src/model/consts/expirations.ts +2 -0
- package/src/model/dtos/Password.ts +1 -1
- package/src/model/dtos/index.ts +1 -1
- package/src/model/index.ts +9 -9
- package/src/model/mailing/UserMailer.ts +114 -9
- package/src/model/mailing/index.ts +2 -2
- package/src/model/mailing/templates/BackupCodesExhausted.mustache.ts +13 -0
- package/src/model/mailing/templates/EmailChangeNotify.mustache.ts +10 -0
- package/src/model/mailing/templates/EmailChangeVerify.mustache.ts +12 -0
- package/src/model/mailing/templates/EmailOtp.mustache.ts +13 -0
- package/src/model/mailing/templates/EmailVerification.mustache.ts +10 -0
- package/src/model/mailing/templates/ExistingUserInvited.mustache.ts +1 -1
- package/src/model/mailing/templates/ForcedSignOut.mustache.ts +10 -0
- package/src/model/mailing/templates/NewUserInvited.mustache.ts +1 -1
- package/src/model/mailing/templates/PasswordReset.mustache.ts +1 -1
- package/src/model/mailing/templates/PasswordlessSignIn.mustache.ts +1 -1
- package/src/model/mailing/templates/UnusualLogin.mustache.ts +17 -0
- package/src/model/mailing/type.ts +22 -1
- package/src/model/providers.ts +8 -0
- package/src/model/queries/apiKey/ApiKeyListQuery.ts +67 -0
- package/src/model/queries/apiKey/ApiKeyQuery.ts +17 -2
- package/src/model/queries/apiKey/ApiKeySessionsQuery.ts +50 -0
- package/src/model/queries/apiKey/index.ts +3 -1
- package/src/model/queries/authLog/AuthLogQuery.ts +112 -0
- package/src/model/queries/authLog/NextMailAttemptQuery.ts +80 -0
- package/src/model/queries/authPolicy/AuthPoliciesQuery.ts +24 -0
- package/src/model/queries/authPolicy/index.ts +1 -0
- package/src/model/queries/configuration/ConfigurationQuery.ts +62 -1
- package/src/model/queries/configuration/index.ts +1 -1
- package/src/model/queries/identity/index.ts +1 -1
- package/src/model/queries/idp/IdentityProviderBySlugQuery.ts +2 -2
- package/src/model/queries/idp/IdentityProvidersQuery.ts +2 -2
- package/src/model/queries/idp/IdpSessionByApiKeyQuery.ts +92 -0
- package/src/model/queries/idp/IdpSessionsBySidQuery.ts +35 -0
- package/src/model/queries/idp/IdpSessionsBySubQuery.ts +45 -0
- package/src/model/queries/idp/PersonIdentityProvidersQuery.ts +43 -0
- package/src/model/queries/idp/helpers.ts +7 -3
- package/src/model/queries/idp/index.ts +6 -2
- package/src/model/queries/idp/types.ts +3 -1
- package/src/model/queries/index.ts +10 -8
- package/src/model/queries/mailTemplate/MailTemplateListQuery.ts +1 -1
- package/src/model/queries/mailTemplate/MailTemplateQuery.ts +2 -2
- package/src/model/queries/mailTemplate/helpers.ts +1 -1
- package/src/model/queries/mailTemplate/index.ts +2 -2
- package/src/model/queries/membership/AllProjectRolesByIdentityQuery.ts +36 -0
- package/src/model/queries/membership/ProjectMembersQuery.ts +2 -2
- package/src/model/queries/membership/ProjectMembershipByIdentityQuery.ts +1 -1
- package/src/model/queries/membership/ProjectRolesByIdentityQuery.ts +1 -1
- package/src/model/queries/membership/index.ts +4 -3
- package/src/model/queries/person/PersonByIdPQuery.ts +2 -2
- package/src/model/queries/person/PersonByIdentityBatchQuery.ts +2 -2
- package/src/model/queries/person/PersonQuery.ts +3 -3
- package/src/model/queries/person/PersonQueryBuilderFactory.ts +31 -3
- package/src/model/queries/person/PersonsQuery.ts +54 -0
- package/src/model/queries/person/index.ts +5 -4
- package/src/model/queries/person/types.ts +26 -1
- package/src/model/queries/personToken/PersonTokenQuery.ts +17 -5
- package/src/model/queries/project/ProjectBySlugQuery.ts +1 -1
- package/src/model/queries/project/ProjectSecretKeysQuery.ts +29 -0
- package/src/model/queries/project/ProjectSecretsQuery.ts +1 -1
- package/src/model/queries/project/ProjectsByIdentityQuery.ts +3 -3
- package/src/model/queries/project/ProjectsQuery.ts +1 -1
- package/src/model/queries/project/index.ts +6 -5
- package/src/model/queries/rateLimit/RateLimitCountQuery.ts +22 -0
- package/src/model/queries/rateLimit/index.ts +1 -0
- package/src/model/service/AuthLogService.ts +65 -6
- package/src/model/service/AuthPolicyManager.ts +117 -0
- package/src/model/service/AuthPolicyResolver.ts +101 -0
- package/src/model/service/BackupCodeManager.ts +112 -0
- package/src/model/service/ConfigurationManager.ts +4 -4
- package/src/model/service/EmailChangeManager.ts +181 -0
- package/src/model/service/EmailOtpManager.ts +106 -0
- package/src/model/service/EmailValidator.ts +7 -8
- package/src/model/service/EmailVerificationManager.ts +118 -0
- package/src/model/service/HibpChecker.ts +59 -0
- package/src/model/service/IDPSignInManager.ts +86 -20
- package/src/model/service/InviteManager.ts +13 -13
- package/src/model/service/LoginRiskAnalyzer.ts +274 -0
- package/src/model/service/MailTemplateManager.ts +3 -3
- package/src/model/service/MembershipValidator.ts +1 -1
- package/src/model/service/OtpAuthenticator.ts +1 -1
- package/src/model/service/OtpManager.ts +82 -10
- package/src/model/service/PasswordChangeManager.ts +9 -9
- package/src/model/service/PasswordResetManager.ts +29 -17
- package/src/model/service/PasswordStrengthValidator.ts +14 -4
- package/src/model/service/PasswordlessSignInManager.ts +97 -46
- package/src/model/service/PersonAccessManager.ts +6 -6
- package/src/model/service/PersonManager.ts +27 -9
- package/src/model/service/ProjectManager.ts +11 -11
- package/src/model/service/ProjectMemberManager.ts +8 -8
- package/src/model/service/RateLimiter.ts +97 -0
- package/src/model/service/RolesManager.ts +4 -4
- package/src/model/service/SecretsManager.ts +9 -4
- package/src/model/service/SignInManager.ts +380 -17
- package/src/model/service/SignOutManager.ts +110 -0
- package/src/model/service/SignUpManager.ts +44 -17
- package/src/model/service/apiKey/ApiKeyManager.ts +206 -21
- package/src/model/service/apiKey/ApiKeyService.ts +19 -9
- package/src/model/service/apiKey/UnpersistedApiKeyManager.ts +99 -0
- package/src/model/service/apiKey/index.ts +3 -2
- package/src/model/service/captcha/CaptchaProvider.ts +20 -0
- package/src/model/service/captcha/CaptchaValidator.ts +74 -0
- package/src/model/service/captcha/HCaptchaProvider.ts +31 -0
- package/src/model/service/captcha/RecaptchaV3Provider.ts +41 -0
- package/src/model/service/captcha/TurnstileProvider.ts +38 -0
- package/src/model/service/captcha/index.ts +5 -0
- package/src/model/service/helpers/getPreferredProject.ts +1 -1
- package/src/model/service/helpers/isPasswordlessEnabled.ts +21 -0
- package/src/model/service/idp/BackchannelLogoutManager.ts +125 -0
- package/src/model/service/idp/IDPHandlerRegistry.ts +2 -2
- package/src/model/service/idp/IDPManager.ts +13 -13
- package/src/model/service/idp/IDPRevalidation.ts +46 -0
- package/src/model/service/idp/IdentityProviderHandler.ts +75 -0
- package/src/model/service/idp/IdpSessionRevalidator.ts +281 -0
- package/src/model/service/idp/PersonIdentityProviderManager.ts +54 -0
- package/src/model/service/idp/index.ts +14 -10
- package/src/model/service/idp/providers/AppleProvider.ts +6 -6
- package/src/model/service/idp/providers/FacebookProvider.ts +7 -7
- package/src/model/service/idp/providers/OIDCHelpers.ts +293 -10
- package/src/model/service/idp/providers/OIDCProvider.ts +52 -9
- package/src/model/service/idp/providers/OIDCTypes.ts +61 -1
- package/src/model/service/index.ts +30 -19
- package/src/model/service/membershipUtils.ts +1 -1
- package/src/model/type/AuthLog.ts +40 -0
- package/src/model/type/AuthPolicy.ts +32 -0
- package/src/model/type/Config.ts +48 -11
- package/src/model/type/IdentityProvider.ts +2 -0
- package/src/model/type/PersonToken.ts +11 -1
- package/src/model/type/RateLimit.ts +10 -0
- package/src/model/type/index.ts +7 -5
- package/src/model/utils/DatabaseContext.ts +3 -3
- package/src/model/utils/index.ts +2 -2
- package/src/model/utils/interval.ts +12 -0
- package/src/model/utils/token.ts +19 -5
- package/src/resolvers/Resolver.ts +1 -1
- package/src/resolvers/ResolverFactory.ts +75 -12
- package/src/resolvers/TenantResolverContext.ts +11 -2
- package/src/resolvers/TenantResolverContextFactory.ts +22 -7
- package/src/resolvers/errorUtils.ts +1 -1
- package/src/resolvers/index.ts +6 -6
- package/src/resolvers/membershipUtils.ts +2 -2
- package/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.ts +55 -9
- package/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.ts +11 -4
- package/src/resolvers/mutation/apiKey/index.ts +2 -2
- package/src/resolvers/mutation/configuration/AuthPolicyMutationResolver.ts +125 -0
- package/src/resolvers/mutation/configuration/ConfigurationMutationResolver.ts +33 -5
- package/src/resolvers/mutation/identity/GlobalRolesMutationResolver.ts +34 -7
- package/src/resolvers/mutation/identity/index.ts +1 -1
- package/src/resolvers/mutation/idp/AddIDPMutationResolver.ts +21 -5
- package/src/resolvers/mutation/idp/DisableIDPMutationResolver.ts +12 -5
- package/src/resolvers/mutation/idp/DisconnectMyIdentityProviderMutationResolver.ts +42 -0
- package/src/resolvers/mutation/idp/EnableIDPMutationResolver.ts +12 -5
- package/src/resolvers/mutation/idp/UpdateIDPMutationResolver.ts +22 -5
- package/src/resolvers/mutation/idp/audit.ts +19 -0
- package/src/resolvers/mutation/idp/index.ts +4 -3
- package/src/resolvers/mutation/index.ts +7 -7
- package/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.ts +28 -5
- package/src/resolvers/mutation/mailTemplates/index.ts +1 -1
- package/src/resolvers/mutation/person/ChangePasswordMutationResolver.ts +4 -4
- package/src/resolvers/mutation/person/ChangeProfileMutationResolver.ts +92 -5
- package/src/resolvers/mutation/person/DisablePersonMutationResolver.ts +5 -5
- package/src/resolvers/mutation/person/EmailOtpMutationResolver.ts +112 -0
- package/src/resolvers/mutation/person/EmailVerificationMutationResolver.ts +108 -0
- package/src/resolvers/mutation/person/ForceSignOutMutationResolver.ts +62 -0
- package/src/resolvers/mutation/person/IDPMutationResolver.ts +13 -5
- package/src/resolvers/mutation/person/InviteMutationResolver.ts +33 -12
- package/src/resolvers/mutation/person/OtpMutationResolver.ts +34 -17
- package/src/resolvers/mutation/person/PasswordlessMutationResolver.ts +41 -12
- package/src/resolvers/mutation/person/RegenerateBackupCodesMutationResolver.ts +43 -0
- package/src/resolvers/mutation/person/ResetPasswordMutationResolver.ts +35 -6
- package/src/resolvers/mutation/person/ResetPersonMfaMutationResolver.ts +51 -0
- package/src/resolvers/mutation/person/RevokeSessionMutationResolver.ts +46 -0
- package/src/resolvers/mutation/person/SignInMutationResolver.ts +90 -13
- package/src/resolvers/mutation/person/SignOutMutationResolver.ts +28 -25
- package/src/resolvers/mutation/person/SignUpMutationResolver.ts +71 -6
- package/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.ts +6 -6
- package/src/resolvers/mutation/person/index.ts +12 -9
- package/src/resolvers/mutation/project/CreateProjectMutationResolver.ts +16 -4
- package/src/resolvers/mutation/project/SetProjectSecretMutationResolver.ts +15 -4
- package/src/resolvers/mutation/project/UpdateProjectMutationResolver.ts +18 -4
- package/src/resolvers/mutation/project/index.ts +3 -3
- package/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.ts +8 -5
- package/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.ts +14 -4
- package/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.ts +16 -6
- package/src/resolvers/mutation/projectMember/audit.ts +35 -0
- package/src/resolvers/mutation/projectMember/index.ts +3 -3
- package/src/resolvers/query/ApiKeyQueryResolver.ts +15 -0
- package/src/resolvers/query/AuthLogQueryResolver.ts +63 -0
- package/src/resolvers/query/AuthPolicyQueryResolver.ts +41 -0
- package/src/resolvers/query/ConfigurationQueryResolver.ts +5 -5
- package/src/resolvers/query/IDPQueryResolver.ts +4 -4
- package/src/resolvers/query/MailTemplateQueryResolver.ts +3 -3
- package/src/resolvers/query/MeQueryResolver.ts +3 -2
- package/src/resolvers/query/PersonQueryResolver.ts +58 -5
- package/src/resolvers/query/ProjectMembersQueryResolver.ts +3 -3
- package/src/resolvers/query/ProjectQueryResolver.ts +5 -5
- package/src/resolvers/query/index.ts +6 -4
- package/src/resolvers/responseHelpers/ApiKeyResponseFactory.ts +36 -0
- package/src/resolvers/responseHelpers/PersonResponseFactory.ts +11 -3
- package/src/resolvers/responseHelpers/SignInResponseFactory.ts +10 -5
- package/src/resolvers/types/IdentityTypeResolver.ts +47 -7
- package/src/resolvers/types/PersonTypeResolver.ts +38 -0
- package/src/resolvers/types/ProjectTypeResolver.ts +32 -4
- package/src/resolvers/types/index.ts +3 -2
- package/src/schema/index.ts +1608 -135
- package/src/schema/tenant.graphql.ts +826 -20
- package/src/utils/Mailer.ts +1 -1
- package/src/utils/batchQuery.ts +2 -2
- package/src/utils/index.ts +2 -2
- package/tests/cases/integration/mocked/addProjectMemberMutation.test.ts +31 -8
- package/tests/cases/integration/mocked/antiAbuseSignUp.test.ts +67 -0
- package/tests/cases/integration/mocked/authLogQuery.test.ts +167 -0
- package/tests/cases/integration/mocked/authPolicyCrud.test.ts +117 -0
- package/tests/cases/integration/mocked/changeMyPasswordMutation.test.ts +7 -7
- package/tests/cases/integration/mocked/changeMyProfileEmailVerificationMutation.test.ts +250 -0
- package/tests/cases/integration/mocked/changeMyProfileMutation.test.ts +14 -7
- package/tests/cases/integration/mocked/changePasswordMutation.test.ts +6 -6
- package/tests/cases/integration/mocked/changeProfileMutation.test.ts +8 -8
- package/tests/cases/integration/mocked/confirmEmailChangeMutation.test.ts +155 -0
- package/tests/cases/integration/mocked/confirmOtpMutation.test.ts +41 -15
- package/tests/cases/integration/mocked/createApiKeyMutation.test.ts +29 -12
- package/tests/cases/integration/mocked/createSessionKeyMutation.test.ts +13 -9
- package/tests/cases/integration/mocked/disableApiKeyMutation.ts +4 -4
- package/tests/cases/integration/mocked/disableOtpMfaRequired.test.ts +62 -0
- package/tests/cases/integration/mocked/emailOtpMutation.test.ts +112 -0
- package/tests/cases/integration/mocked/forceSignOutPersonMutation.test.ts +92 -0
- package/tests/cases/integration/mocked/globalApiKeysQuery.test.ts +79 -0
- package/tests/cases/integration/mocked/globalIdentityRolesMutation.test.ts +108 -0
- package/tests/cases/integration/mocked/gql/addProjectMember.ts +3 -3
- package/tests/cases/integration/mocked/gql/changeMyPassword.ts +2 -2
- package/tests/cases/integration/mocked/gql/changeMyProfile.ts +2 -2
- package/tests/cases/integration/mocked/gql/changePassword.ts +2 -2
- package/tests/cases/integration/mocked/gql/changeProfile.ts +2 -2
- package/tests/cases/integration/mocked/gql/confirmOtp.ts +6 -3
- package/tests/cases/integration/mocked/gql/createApiKey.ts +3 -3
- package/tests/cases/integration/mocked/gql/createResetPasswordRequest.ts +2 -2
- package/tests/cases/integration/mocked/gql/createSessionToken.ts +2 -2
- package/tests/cases/integration/mocked/gql/emailOtp.ts +23 -0
- package/tests/cases/integration/mocked/gql/emailVerification.ts +32 -0
- package/tests/cases/integration/mocked/gql/invite.ts +3 -3
- package/tests/cases/integration/mocked/gql/myIdentityProviders.ts +34 -0
- package/tests/cases/integration/mocked/gql/passwordless.ts +23 -0
- package/tests/cases/integration/mocked/gql/prepareOtp.ts +3 -3
- package/tests/cases/integration/mocked/gql/resetPassword.ts +2 -2
- package/tests/cases/integration/mocked/gql/signIn.ts +6 -4
- package/tests/cases/integration/mocked/gql/signInIdp.ts +2 -2
- package/tests/cases/integration/mocked/gql/signUp.ts +2 -2
- package/tests/cases/integration/mocked/gql/unmanagedInvite.ts +3 -3
- package/tests/cases/integration/mocked/gql/updateProjectMember.ts +3 -3
- package/tests/cases/integration/mocked/inviteMutations.test.ts +48 -14
- package/tests/cases/integration/mocked/listProjectMembersQuery.test.ts +4 -4
- package/tests/cases/integration/mocked/mySessionsQuery.test.ts +82 -0
- package/tests/cases/integration/mocked/personByIdQuery.test.ts +39 -4
- package/tests/cases/integration/mocked/personIdentityProviders.test.ts +327 -0
- package/tests/cases/integration/mocked/personsQuery.test.ts +200 -0
- package/tests/cases/integration/mocked/prepareOtpMutation.test.ts +109 -6
- package/tests/cases/integration/mocked/projectApiKeysQuery.test.ts +142 -0
- package/tests/cases/integration/mocked/projectSecretsQuery.test.ts +86 -0
- package/tests/cases/integration/mocked/removeProjectMemberMutation.test.ts +31 -7
- package/tests/cases/integration/mocked/requestEmailVerificationMutation.test.ts +182 -0
- package/tests/cases/integration/mocked/resetPersonMfaMutation.test.ts +85 -0
- package/tests/cases/integration/mocked/revokeSessionMutation.test.ts +114 -0
- package/tests/cases/integration/mocked/signInAnomalyDetection.test.ts +475 -0
- package/tests/cases/integration/mocked/signInIdpMutation.test.ts +275 -12
- package/tests/cases/integration/mocked/signInMfaEnforcement.test.ts +323 -0
- package/tests/cases/integration/mocked/signInMutation.test.ts +320 -15
- package/tests/cases/integration/mocked/signInPasswordlessMutation.test.ts +146 -0
- package/tests/cases/integration/mocked/signOutMutation.test.ts +170 -8
- package/tests/cases/integration/mocked/signUpMutation.test.ts +14 -13
- package/tests/cases/integration/mocked/sql/authLogSql.ts +78 -0
- package/tests/cases/integration/mocked/sql/authPolicySql.ts +48 -0
- package/tests/cases/integration/mocked/sql/consumeBackupCodeSql.ts +31 -0
- package/tests/cases/integration/mocked/sql/createApiKeySql.ts +12 -4
- package/tests/cases/integration/mocked/sql/createIdentitySql.ts +2 -2
- package/tests/cases/integration/mocked/sql/createMembershipSql.ts +1 -1
- package/tests/cases/integration/mocked/sql/createMembershipVariableSql.ts +1 -1
- package/tests/cases/integration/mocked/sql/createPersonSql.ts +5 -3
- package/tests/cases/integration/mocked/sql/createPersonTokenSql.ts +5 -3
- package/tests/cases/integration/mocked/sql/createSessionKeySql.ts +18 -4
- package/tests/cases/integration/mocked/sql/disableApiKeySql.ts +1 -1
- package/tests/cases/integration/mocked/sql/disableOneOffKeySql.ts +1 -1
- package/tests/cases/integration/mocked/sql/emailOtpSql.ts +93 -0
- package/tests/cases/integration/mocked/sql/generateBackupCodesSql.ts +35 -0
- package/tests/cases/integration/mocked/sql/getApiKeySql.ts +11 -4
- package/tests/cases/integration/mocked/sql/getConfigSql.ts +38 -1
- package/tests/cases/integration/mocked/sql/getIdentityByIdSql.ts +14 -0
- package/tests/cases/integration/mocked/sql/getIdentityProjectsSql.ts +1 -1
- package/tests/cases/integration/mocked/sql/getIdpBySlugSql.ts +3 -3
- package/tests/cases/integration/mocked/sql/getIdpSessionByApiKeySql.ts +54 -0
- package/tests/cases/integration/mocked/sql/getNextMailAttemptSql.ts +30 -0
- package/tests/cases/integration/mocked/sql/getPersonByEmailSql.ts +26 -4
- package/tests/cases/integration/mocked/sql/getPersonByIdSql.ts +24 -3
- package/tests/cases/integration/mocked/sql/getPersonByIdentity.ts +26 -4
- package/tests/cases/integration/mocked/sql/getPersonByIdpSql.ts +7 -3
- package/tests/cases/integration/mocked/sql/getPersonsByIdentitySql.ts +24 -0
- package/tests/cases/integration/mocked/sql/getProjectBySlugSql.ts +2 -2
- package/tests/cases/integration/mocked/sql/getProjectMembershipSql.ts +2 -2
- package/tests/cases/integration/mocked/sql/listApiKeysSql.ts +45 -0
- package/tests/cases/integration/mocked/sql/listPersonsSql.ts +55 -0
- package/tests/cases/integration/mocked/sql/listProjectSecretsSql.ts +23 -0
- package/tests/cases/integration/mocked/sql/listSessionsSql.ts +38 -0
- package/tests/cases/integration/mocked/sql/loginHistorySql.ts +29 -0
- package/tests/cases/integration/mocked/sql/patchVariablesSql.ts +1 -1
- package/tests/cases/integration/mocked/sql/personIdentityProvidersSql.ts +87 -0
- package/tests/cases/integration/mocked/sql/selectMembershipsSql.ts +1 -1
- package/tests/cases/integration/mocked/sql/setEmailOtpEnabledSql.ts +10 -0
- package/tests/cases/integration/mocked/sql/sqlTransaction.ts +1 -1
- package/tests/cases/integration/mocked/sql/updatePesonNameSql.ts +7 -5
- package/tests/cases/integration/mocked/sql/updatePesonPasswordSql.ts +1 -1
- package/tests/cases/integration/mocked/trustForwardedClientInfo.test.ts +128 -0
- package/tests/cases/integration/mocked/updateProjectMemberMutation.test.ts +36 -9
- package/tests/cases/integration/mocked/verifyEmailMutation.test.ts +227 -0
- package/tests/cases/migrations/2020-06-08-134000-tenant-credentials.test.ts +1 -1
- package/tests/cases/unit/apiKey/createSessionApiKeyPolicy.test.ts +230 -0
- package/tests/cases/unit/apiKey/prolongApiKeyCommand.test.ts +180 -0
- package/tests/cases/unit/apiKey/unpersistedApiKeyManager.test.ts +137 -0
- package/tests/cases/unit/apiKey/verifyAndProlongIdle.test.ts +197 -0
- package/tests/cases/unit/authLogBaselineWrite.test.ts +119 -0
- package/tests/cases/unit/authPolicyResolver.test.ts +162 -0
- package/tests/cases/unit/authorization/membershipAwareAccessNode.test.ts +2 -2
- package/tests/cases/unit/authorization/membershipMatcher.test.ts +2 -2
- package/tests/cases/unit/backupCodeManager.test.ts +224 -0
- package/tests/cases/unit/captchaProviders.test.ts +150 -0
- package/tests/cases/unit/captchaValidator.test.ts +83 -0
- package/tests/cases/unit/emailOtpManager.test.ts +277 -0
- package/tests/cases/unit/hibpChecker.test.ts +41 -0
- package/tests/cases/unit/idp/backchannelLogoutManager.test.ts +144 -0
- package/tests/cases/unit/idp/idpSessionRevalidator.test.ts +387 -0
- package/tests/cases/unit/idp/oidcLogout.test.ts +190 -0
- package/tests/cases/unit/idp/oidcProvider.test.ts +31 -0
- package/tests/cases/unit/idp/oidcResponse.test.ts +144 -0
- package/tests/cases/unit/idp/oidcRevalidate.test.ts +177 -0
- package/tests/cases/unit/loginRiskAnalyzer.test.ts +206 -0
- package/tests/cases/unit/otpManager.test.ts +186 -0
- package/tests/cases/unit/passwordStrengthValidator.test.ts +51 -0
- package/tests/cases/unit/rateLimiter.test.ts +134 -0
- package/tests/src/IdPMock.ts +35 -1
- package/tests/src/mailer.ts +1 -1
- package/tests/src/testTenant.ts +40 -15
- package/vitest.config.ts +0 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoginRiskAnalyzer.cjs","sources":["../../../../../../packages/engine-tenant-api/src/model/service/LoginRiskAnalyzer.ts"],"sourcesContent":["import { BinaryLike } from 'node:crypto'\nimport { DatabaseContext } from '../utils/index.js'\nimport { Operator, SelectBuilder } from '@contember/database'\nimport { Config } from '../type/Config.js'\n\n/**\n * Risk weights per signal (A03 v1). Cumulative: a login from a new country on a\n * new device scores HIGH + MEDIUM. Chosen so that the shipped default thresholds\n * (email >= 1, step-up >= 3) map intuitively to \"any single low signal emails,\n * a high signal steps up\".\n */\nexport const RiskWeight = {\n\t/** New country (from the trusted reverse-proxy geo header). */\n\tnewCountry: 3,\n\t/** New user-agent fingerprint. */\n\tnewDevice: 2,\n\t/** New IP / IP-prefix. */\n\tnewIpPrefix: 1,\n} as const\n\nexport type RiskAction = 'allow' | 'email' | 'stepUp'\n\n/**\n * Auth-log `type` values that represent a successful *interactive* sign-in which\n * issued a session for the person from their own client — i.e. the rows whose\n * geo/device/IP form the baseline for the next sign-in's anomaly check. Password\n * (`login`), federated (`idp_login`), and magic-link (`passwordless_login`) all\n * qualify. Deliberately excluded: `passwordless_login_exchange` (the OTP\n * activation step issues no session) and `create_session_token` (an admin minting\n * a token carries the admin's client info, not the person's).\n */\nexport const BASELINE_SIGN_IN_TYPES = ['login', 'idp_login', 'passwordless_login'] as const\n\nexport interface LoginSignals {\n\t/** Country code from the trusted geo header, or null when unavailable. */\n\treadonly geoCountry: string | null\n\t/** Hash of the client user-agent, or null when no UA was provided. */\n\treadonly deviceFingerprint: string | null\n\t/** Client IP, or null when unavailable. */\n\treadonly ip: string | null\n}\n\nexport interface PriorLogin {\n\treadonly geoCountry: string | null\n\treadonly deviceFingerprint: string | null\n\treadonly ip: string | null\n}\n\nexport interface RiskAssessment {\n\treadonly score: number\n\treadonly action: RiskAction\n\t/** Greppable list of which signals fired, e.g. ['new_country', 'new_device']. */\n\treadonly reasons: readonly string[]\n}\n\n/**\n * A03 — sign-in anomaly detection (v1). Runs after password verification (and any\n * standing MFA), before a session is issued. Pure scoring lives in {@link score};\n * {@link analyze} loads the comparison history and applies the configured policy.\n *\n * v1 scope (locked): no GeoIP DB — country comes from a trusted reverse-proxy\n * header read through the same trust gate as the forwarded IP/UA. No\n * impossible-travel detection. Opt-in, disabled by default.\n */\nexport class LoginRiskAnalyzer {\n\tconstructor(\n\t\tprivate readonly hash: (value: BinaryLike, algo: string) => Buffer,\n\t) {}\n\n\t/**\n\t * Deterministic user-agent fingerprint: a hex sha256 of the raw UA. We never\n\t * store the raw UA in a second column nor any cross-site fingerprint — just a\n\t * stable hash so \"same browser\" comparisons work without retaining the string.\n\t * Returns null for an absent/empty UA.\n\t */\n\tfingerprint(userAgent: string | undefined | null): string | null {\n\t\tif (!userAgent) {\n\t\t\treturn null\n\t\t}\n\t\treturn this.hash(userAgent, 'sha256').toString('hex')\n\t}\n\n\t/**\n\t * Pure scoring. Compares the current sign-in's signals against the set of prior\n\t * successful logins. A signal fires only when (a) the current value is known,\n\t * (b) a baseline for *that* signal exists in history — at least one prior login\n\t * recorded a non-null value for it — and (c) the current value is absent from\n\t * that baseline. With no history at all, or no baseline yet for a given signal\n\t * (e.g. the geo header or device fingerprint only started being collected when\n\t * the feature was enabled, so every prior row is null for it), that signal is\n\t * treated as known. This keeps the documented \"no baseline to deviate from →\n\t * trusted\" rule true per signal, so turning the feature on does not score every\n\t * returning user's first login as anomalous.\n\t */\n\tscore(current: LoginSignals, history: readonly PriorLogin[], config: Config['login']['anomalyDetection']): RiskAssessment {\n\t\tconst reasons: string[] = []\n\t\tlet total = 0\n\n\t\tif (history.length === 0) {\n\t\t\treturn { score: 0, action: 'allow', reasons }\n\t\t}\n\n\t\tif (current.geoCountry !== null) {\n\t\t\tconst baseline = history.filter(h => h.geoCountry !== null)\n\t\t\tif (baseline.length > 0 && !baseline.some(h => h.geoCountry === current.geoCountry)) {\n\t\t\t\ttotal += RiskWeight.newCountry\n\t\t\t\treasons.push('new_country')\n\t\t\t}\n\t\t}\n\n\t\tconst currentFingerprint = current.deviceFingerprint\n\t\tif (currentFingerprint !== null) {\n\t\t\tconst baseline = history.filter(h => h.deviceFingerprint !== null)\n\t\t\tif (baseline.length > 0 && !baseline.some(h => h.deviceFingerprint === currentFingerprint)) {\n\t\t\t\ttotal += RiskWeight.newDevice\n\t\t\t\treasons.push('new_device')\n\t\t\t}\n\t\t}\n\n\t\tconst currentPrefix = ipPrefix(current.ip)\n\t\tif (currentPrefix !== null) {\n\t\t\tconst baselinePrefixes = history.map(h => ipPrefix(h.ip)).filter((p): p is string => p !== null)\n\t\t\tif (baselinePrefixes.length > 0 && !baselinePrefixes.includes(currentPrefix)) {\n\t\t\t\ttotal += RiskWeight.newIpPrefix\n\t\t\t\treasons.push('new_ip_prefix')\n\t\t\t}\n\t\t}\n\n\t\treturn { score: total, action: this.decide(total, config), reasons }\n\t}\n\n\tprivate decide(total: number, config: Config['login']['anomalyDetection']): RiskAction {\n\t\t// step-up wins over email when both thresholds are crossed. A threshold of 0\n\t\t// would always fire, so it is only meaningful when the feature is enabled.\n\t\tif (total >= config.stepUpThreshold) {\n\t\t\treturn 'stepUp'\n\t\t}\n\t\tif (total >= config.emailThreshold) {\n\t\t\treturn 'email'\n\t\t}\n\t\treturn 'allow'\n\t}\n\n\t/**\n\t * Loads the last N successful logins for the person and scores the current\n\t * sign-in against them. Returns `allow` with no DB work when the feature is\n\t * disabled (the default), so an opted-out deployment runs exactly as before.\n\t */\n\tasync analyze(\n\t\tdbContext: DatabaseContext,\n\t\tpersonId: string,\n\t\tcurrent: LoginSignals,\n\t\tconfig: Config['login']['anomalyDetection'],\n\t): Promise<RiskAssessment> {\n\t\tif (!config.enabled) {\n\t\t\treturn { score: 0, action: 'allow', reasons: [] }\n\t\t}\n\n\t\tconst limit = Math.max(1, config.historySize)\n\t\tconst rows = await SelectBuilder.create<{ geo_country: string | null; device_fingerprint: string | null; ip_address: string | null }>()\n\t\t\t.select(['person_auth_log', 'geo_country'])\n\t\t\t.select(['person_auth_log', 'device_fingerprint'])\n\t\t\t.select(['person_auth_log', 'ip_address'])\n\t\t\t.from('person_auth_log')\n\t\t\t.where(it =>\n\t\t\t\tit\n\t\t\t\t\t.compare(['person_auth_log', 'person_id'], Operator.eq, personId)\n\t\t\t\t\t// Baseline = any successful interactive sign-in that issued a session\n\t\t\t\t\t// (password / IdP / passwordless), not just password logins — otherwise\n\t\t\t\t\t// a person who normally signs in via IdP/passwordless has no baseline and\n\t\t\t\t\t// their rare password sign-in is wrongly treated as a trusted first login.\n\t\t\t\t\t.in(['person_auth_log', 'type'], [...BASELINE_SIGN_IN_TYPES])\n\t\t\t\t\t.compare(['person_auth_log', 'success'], Operator.eq, true)\n\t\t\t)\n\t\t\t.orderBy(['person_auth_log', 'created_at'], 'desc')\n\t\t\t.limit(limit)\n\t\t\t.getResult(dbContext.client)\n\n\t\tconst history: PriorLogin[] = rows.map(row => ({\n\t\t\tgeoCountry: row.geo_country,\n\t\t\tdeviceFingerprint: row.device_fingerprint,\n\t\t\tip: row.ip_address,\n\t\t}))\n\n\t\treturn this.score(current, history, config)\n\t}\n}\n\n/**\n * Coarsens an IP to a prefix so a roaming client on the same network is treated\n * as \"known\": /24 for IPv4, /48 for IPv6 (the typical site-allocation boundary).\n * Returns null for an absent or unparseable address. Intentionally string-based\n * to avoid pulling a parser onto the sign-in hot path, but the IPv6 form is fully\n * canonicalized (lower-cased, leading zeros stripped, `::` expanded) so the same\n * /48 written two different ways compares equal against stored values.\n */\nexport const ipPrefix = (ip: string | null): string | null => {\n\tif (!ip) {\n\t\treturn null\n\t}\n\tconst trimmed = ip.trim().toLowerCase()\n\tif (trimmed.length === 0) {\n\t\treturn null\n\t}\n\t// Pure IPv4 (dotted quad, no colon) → /24.\n\tif (!trimmed.includes(':')) {\n\t\tconst octets = trimmed.split('.')\n\t\tif (octets.length === 4) {\n\t\t\treturn `${octets[0]}.${octets[1]}.${octets[2]}.0/24`\n\t\t}\n\t\treturn trimmed\n\t}\n\t// IPv6. expandIpv6 also folds a trailing IPv4 dotted-quad (the ::ffff:a.b.c.d\n\t// form, in any compressed/expanded spelling) into two hextets, so the whole\n\t// address is canonicalized here in one place.\n\tconst hextets = expandIpv6(trimmed)\n\tif (hextets === null) {\n\t\treturn trimmed\n\t}\n\t// IPv4-mapped IPv6 (::ffff:a.b.c.d) carries the real client IPv4 in its low 32\n\t// bits → coarsen THAT to a /24. Guarded on the leading 80 bits being zero AND\n\t// the 6th hextet being ffff, so a *non-mapped* address that merely ends in\n\t// `:ffff:<dotted-quad>` (e.g. 2001:db8::ffff:1.2.3.4, or NAT64 64:ff9b::1.2.3.4)\n\t// stays a normal IPv6 /48 instead of collapsing to a bogus, colliding /24.\n\tif (hextets.slice(0, 5).every(h => parseInt(h, 16) === 0) && parseInt(hextets[5], 16) === 0xffff) {\n\t\tconst hi = parseInt(hextets[6], 16)\n\t\tconst lo = parseInt(hextets[7], 16)\n\t\treturn `${hi >> 8}.${hi & 0xff}.${lo >> 8}.0/24`\n\t}\n\t// Canonical /48 = the first three hextets, each with leading zeros stripped.\n\tconst network = hextets.slice(0, 3).map(h => parseInt(h, 16).toString(16))\n\treturn `${network.join(':')}::/48`\n}\n\n/**\n * Expands an IPv6 address to its 8 hextets (as lower-case hex strings, leading\n * zeros kept — the caller strips them). Handles a single `::` run and a trailing\n * IPv4 dotted-quad in the low 32 bits (`x:x:x:x:x:x:d.d.d.d`, e.g. the\n * `::ffff:a.b.c.d` mapped form), which it folds into two hextets first. Returns\n * null for anything that does not look like a valid IPv6 address so the caller can\n * fall back to a raw compare rather than mint a bogus prefix.\n */\nconst expandIpv6 = (value: string): string[] | null => {\n\t// Fold a trailing IPv4 dotted-quad into two hextets so the rest works purely in\n\t// hex groups (and a non-zero prefix before `:ffff:` is preserved as hextets,\n\t// not mistaken for an IPv4-mapped address).\n\tlet normalized = value\n\tconst dotted = /^(.*:)(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$/.exec(value)\n\tif (dotted) {\n\t\tconst octets = [dotted[2], dotted[3], dotted[4], dotted[5]].map(Number)\n\t\tif (octets.some(o => o > 255)) {\n\t\t\treturn null\n\t\t}\n\t\tconst hi = ((octets[0] << 8) | octets[1]).toString(16)\n\t\tconst lo = ((octets[2] << 8) | octets[3]).toString(16)\n\t\tnormalized = `${dotted[1]}${hi}:${lo}`\n\t}\n\tconst parts = normalized.split('::')\n\tif (parts.length > 2) {\n\t\treturn null\n\t}\n\tconst head = parts[0] === '' ? [] : parts[0].split(':')\n\tconst tail = parts.length === 2 ? (parts[1] === '' ? [] : parts[1].split(':')) : []\n\tconst groups = parts.length === 2\n\t\t? [...head, ...Array(Math.max(0, 8 - head.length - tail.length)).fill('0'), ...tail]\n\t\t: head\n\tif (parts.length === 2 ? groups.length > 8 : groups.length !== 8) {\n\t\treturn null\n\t}\n\tif (groups.some(g => !/^[0-9a-f]{1,4}$/.test(g))) {\n\t\treturn null\n\t}\n\treturn groups\n}\n"],"names":["SelectBuilder","Operator"],"mappings":";;;AAWO,MAAM,aAAa;AAAA;AAAA,EAEzB,YAAY;AAAA;AAAA,EAEZ,WAAW;AAAA;AAAA,EAEX,aAAa;AACd;AAaO,MAAM,yBAAyB,CAAC,SAAS,aAAa,oBAAoB;AAiC1E,MAAM,kBAAkB;AAAA,EAC9B,YACkB,MAChB;AADgB,SAAA,OAAA;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQH,YAAY,WAAqD;AAChE,QAAI,CAAC,WAAW;AACf,aAAO;AAAA,IACR;AACA,WAAO,KAAK,KAAK,WAAW,QAAQ,EAAE,SAAS,KAAK;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,MAAM,SAAuB,SAAgC,QAA6D;AACzH,UAAM,UAAoB,CAAA;AAC1B,QAAI,QAAQ;AAEZ,QAAI,QAAQ,WAAW,GAAG;AACzB,aAAO,EAAE,OAAO,GAAG,QAAQ,SAAS,QAAA;AAAA,IACrC;AAEA,QAAI,QAAQ,eAAe,MAAM;AAChC,YAAM,WAAW,QAAQ,OAAO,CAAA,MAAK,EAAE,eAAe,IAAI;AAC1D,UAAI,SAAS,SAAS,KAAK,CAAC,SAAS,KAAK,CAAA,MAAK,EAAE,eAAe,QAAQ,UAAU,GAAG;AACpF,iBAAS,WAAW;AACpB,gBAAQ,KAAK,aAAa;AAAA,MAC3B;AAAA,IACD;AAEA,UAAM,qBAAqB,QAAQ;AACnC,QAAI,uBAAuB,MAAM;AAChC,YAAM,WAAW,QAAQ,OAAO,CAAA,MAAK,EAAE,sBAAsB,IAAI;AACjE,UAAI,SAAS,SAAS,KAAK,CAAC,SAAS,KAAK,CAAA,MAAK,EAAE,sBAAsB,kBAAkB,GAAG;AAC3F,iBAAS,WAAW;AACpB,gBAAQ,KAAK,YAAY;AAAA,MAC1B;AAAA,IACD;AAEA,UAAM,gBAAgB,SAAS,QAAQ,EAAE;AACzC,QAAI,kBAAkB,MAAM;AAC3B,YAAM,mBAAmB,QAAQ,IAAI,CAAA,MAAK,SAAS,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,MAAmB,MAAM,IAAI;AAC/F,UAAI,iBAAiB,SAAS,KAAK,CAAC,iBAAiB,SAAS,aAAa,GAAG;AAC7E,iBAAS,WAAW;AACpB,gBAAQ,KAAK,eAAe;AAAA,MAC7B;AAAA,IACD;AAEA,WAAO,EAAE,OAAO,OAAO,QAAQ,KAAK,OAAO,OAAO,MAAM,GAAG,QAAA;AAAA,EAC5D;AAAA,EAEQ,OAAO,OAAe,QAAyD;AAGtF,QAAI,SAAS,OAAO,iBAAiB;AACpC,aAAO;AAAA,IACR;AACA,QAAI,SAAS,OAAO,gBAAgB;AACnC,aAAO;AAAA,IACR;AACA,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,QACL,WACA,UACA,SACA,QAC0B;AAC1B,QAAI,CAAC,OAAO,SAAS;AACpB,aAAO,EAAE,OAAO,GAAG,QAAQ,SAAS,SAAS,GAAC;AAAA,IAC/C;AAEA,UAAM,QAAQ,KAAK,IAAI,GAAG,OAAO,WAAW;AAC5C,UAAM,OAAO,MAAMA,SAAAA,cAAc,OAAA,EAC/B,OAAO,CAAC,mBAAmB,aAAa,CAAC,EACzC,OAAO,CAAC,mBAAmB,oBAAoB,CAAC,EAChD,OAAO,CAAC,mBAAmB,YAAY,CAAC,EACxC,KAAK,iBAAiB,EACtB;AAAA,MAAM,CAAA,OACN,GACE,QAAQ,CAAC,mBAAmB,WAAW,GAAGC,kBAAS,IAAI,QAAQ,EAK/D,GAAG,CAAC,mBAAmB,MAAM,GAAG,CAAC,GAAG,sBAAsB,CAAC,EAC3D,QAAQ,CAAC,mBAAmB,SAAS,GAAGA,SAAAA,SAAS,IAAI,IAAI;AAAA,IAAA,EAE3D,QAAQ,CAAC,mBAAmB,YAAY,GAAG,MAAM,EACjD,MAAM,KAAK,EACX,UAAU,UAAU,MAAM;AAE5B,UAAM,UAAwB,KAAK,IAAI,CAAA,SAAQ;AAAA,MAC9C,YAAY,IAAI;AAAA,MAChB,mBAAmB,IAAI;AAAA,MACvB,IAAI,IAAI;AAAA,IAAA,EACP;AAEF,WAAO,KAAK,MAAM,SAAS,SAAS,MAAM;AAAA,EAC3C;AACD;AAUO,MAAM,WAAW,CAAC,OAAqC;AAC7D,MAAI,CAAC,IAAI;AACR,WAAO;AAAA,EACR;AACA,QAAM,UAAU,GAAG,KAAA,EAAO,YAAA;AAC1B,MAAI,QAAQ,WAAW,GAAG;AACzB,WAAO;AAAA,EACR;AAEA,MAAI,CAAC,QAAQ,SAAS,GAAG,GAAG;AAC3B,UAAM,SAAS,QAAQ,MAAM,GAAG;AAChC,QAAI,OAAO,WAAW,GAAG;AACxB,aAAO,GAAG,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;AAAA,IAC9C;AACA,WAAO;AAAA,EACR;AAIA,QAAM,UAAU,WAAW,OAAO;AAClC,MAAI,YAAY,MAAM;AACrB,WAAO;AAAA,EACR;AAMA,MAAI,QAAQ,MAAM,GAAG,CAAC,EAAE,MAAM,OAAK,SAAS,GAAG,EAAE,MAAM,CAAC,KAAK,SAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,OAAQ;AACjG,UAAM,KAAK,SAAS,QAAQ,CAAC,GAAG,EAAE;AAClC,UAAM,KAAK,SAAS,QAAQ,CAAC,GAAG,EAAE;AAClC,WAAO,GAAG,MAAM,CAAC,IAAI,KAAK,GAAI,IAAI,MAAM,CAAC;AAAA,EAC1C;AAEA,QAAM,UAAU,QAAQ,MAAM,GAAG,CAAC,EAAE,IAAI,CAAA,MAAK,SAAS,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC;AACzE,SAAO,GAAG,QAAQ,KAAK,GAAG,CAAC;AAC5B;AAUA,MAAM,aAAa,CAAC,UAAmC;AAItD,MAAI,aAAa;AACjB,QAAM,SAAS,oDAAoD,KAAK,KAAK;AAC7E,MAAI,QAAQ;AACX,UAAM,SAAS,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,IAAI,MAAM;AACtE,QAAI,OAAO,KAAK,CAAA,MAAK,IAAI,GAAG,GAAG;AAC9B,aAAO;AAAA,IACR;AACA,UAAM,MAAO,OAAO,CAAC,KAAK,IAAK,OAAO,CAAC,GAAG,SAAS,EAAE;AACrD,UAAM,MAAO,OAAO,CAAC,KAAK,IAAK,OAAO,CAAC,GAAG,SAAS,EAAE;AACrD,iBAAa,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE;AAAA,EACrC;AACA,QAAM,QAAQ,WAAW,MAAM,IAAI;AACnC,MAAI,MAAM,SAAS,GAAG;AACrB,WAAO;AAAA,EACR;AACA,QAAM,OAAO,MAAM,CAAC,MAAM,KAAK,KAAK,MAAM,CAAC,EAAE,MAAM,GAAG;AACtD,QAAM,OAAO,MAAM,WAAW,IAAK,MAAM,CAAC,MAAM,KAAK,CAAA,IAAK,MAAM,CAAC,EAAE,MAAM,GAAG,IAAK,CAAA;AACjF,QAAM,SAAS,MAAM,WAAW,IAC7B,CAAC,GAAG,MAAM,GAAG,MAAM,KAAK,IAAI,GAAG,IAAI,KAAK,SAAS,KAAK,MAAM,CAAC,EAAE,KAAK,GAAG,GAAG,GAAG,IAAI,IACjF;AACH,MAAI,MAAM,WAAW,IAAI,OAAO,SAAS,IAAI,OAAO,WAAW,GAAG;AACjE,WAAO;AAAA,EACR;AACA,MAAI,OAAO,KAAK,CAAA,MAAK,CAAC,kBAAkB,KAAK,CAAC,CAAC,GAAG;AACjD,WAAO;AAAA,EACR;AACA,SAAO;AACR;;;;;"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { SelectBuilder, Operator } from "@contember/database";
|
|
2
|
+
const RiskWeight = {
|
|
3
|
+
/** New country (from the trusted reverse-proxy geo header). */
|
|
4
|
+
newCountry: 3,
|
|
5
|
+
/** New user-agent fingerprint. */
|
|
6
|
+
newDevice: 2,
|
|
7
|
+
/** New IP / IP-prefix. */
|
|
8
|
+
newIpPrefix: 1
|
|
9
|
+
};
|
|
10
|
+
const BASELINE_SIGN_IN_TYPES = ["login", "idp_login", "passwordless_login"];
|
|
11
|
+
class LoginRiskAnalyzer {
|
|
12
|
+
constructor(hash) {
|
|
13
|
+
this.hash = hash;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Deterministic user-agent fingerprint: a hex sha256 of the raw UA. We never
|
|
17
|
+
* store the raw UA in a second column nor any cross-site fingerprint — just a
|
|
18
|
+
* stable hash so "same browser" comparisons work without retaining the string.
|
|
19
|
+
* Returns null for an absent/empty UA.
|
|
20
|
+
*/
|
|
21
|
+
fingerprint(userAgent) {
|
|
22
|
+
if (!userAgent) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
return this.hash(userAgent, "sha256").toString("hex");
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Pure scoring. Compares the current sign-in's signals against the set of prior
|
|
29
|
+
* successful logins. A signal fires only when (a) the current value is known,
|
|
30
|
+
* (b) a baseline for *that* signal exists in history — at least one prior login
|
|
31
|
+
* recorded a non-null value for it — and (c) the current value is absent from
|
|
32
|
+
* that baseline. With no history at all, or no baseline yet for a given signal
|
|
33
|
+
* (e.g. the geo header or device fingerprint only started being collected when
|
|
34
|
+
* the feature was enabled, so every prior row is null for it), that signal is
|
|
35
|
+
* treated as known. This keeps the documented "no baseline to deviate from →
|
|
36
|
+
* trusted" rule true per signal, so turning the feature on does not score every
|
|
37
|
+
* returning user's first login as anomalous.
|
|
38
|
+
*/
|
|
39
|
+
score(current, history, config) {
|
|
40
|
+
const reasons = [];
|
|
41
|
+
let total = 0;
|
|
42
|
+
if (history.length === 0) {
|
|
43
|
+
return { score: 0, action: "allow", reasons };
|
|
44
|
+
}
|
|
45
|
+
if (current.geoCountry !== null) {
|
|
46
|
+
const baseline = history.filter((h) => h.geoCountry !== null);
|
|
47
|
+
if (baseline.length > 0 && !baseline.some((h) => h.geoCountry === current.geoCountry)) {
|
|
48
|
+
total += RiskWeight.newCountry;
|
|
49
|
+
reasons.push("new_country");
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const currentFingerprint = current.deviceFingerprint;
|
|
53
|
+
if (currentFingerprint !== null) {
|
|
54
|
+
const baseline = history.filter((h) => h.deviceFingerprint !== null);
|
|
55
|
+
if (baseline.length > 0 && !baseline.some((h) => h.deviceFingerprint === currentFingerprint)) {
|
|
56
|
+
total += RiskWeight.newDevice;
|
|
57
|
+
reasons.push("new_device");
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
const currentPrefix = ipPrefix(current.ip);
|
|
61
|
+
if (currentPrefix !== null) {
|
|
62
|
+
const baselinePrefixes = history.map((h) => ipPrefix(h.ip)).filter((p) => p !== null);
|
|
63
|
+
if (baselinePrefixes.length > 0 && !baselinePrefixes.includes(currentPrefix)) {
|
|
64
|
+
total += RiskWeight.newIpPrefix;
|
|
65
|
+
reasons.push("new_ip_prefix");
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return { score: total, action: this.decide(total, config), reasons };
|
|
69
|
+
}
|
|
70
|
+
decide(total, config) {
|
|
71
|
+
if (total >= config.stepUpThreshold) {
|
|
72
|
+
return "stepUp";
|
|
73
|
+
}
|
|
74
|
+
if (total >= config.emailThreshold) {
|
|
75
|
+
return "email";
|
|
76
|
+
}
|
|
77
|
+
return "allow";
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Loads the last N successful logins for the person and scores the current
|
|
81
|
+
* sign-in against them. Returns `allow` with no DB work when the feature is
|
|
82
|
+
* disabled (the default), so an opted-out deployment runs exactly as before.
|
|
83
|
+
*/
|
|
84
|
+
async analyze(dbContext, personId, current, config) {
|
|
85
|
+
if (!config.enabled) {
|
|
86
|
+
return { score: 0, action: "allow", reasons: [] };
|
|
87
|
+
}
|
|
88
|
+
const limit = Math.max(1, config.historySize);
|
|
89
|
+
const rows = await SelectBuilder.create().select(["person_auth_log", "geo_country"]).select(["person_auth_log", "device_fingerprint"]).select(["person_auth_log", "ip_address"]).from("person_auth_log").where(
|
|
90
|
+
(it) => it.compare(["person_auth_log", "person_id"], Operator.eq, personId).in(["person_auth_log", "type"], [...BASELINE_SIGN_IN_TYPES]).compare(["person_auth_log", "success"], Operator.eq, true)
|
|
91
|
+
).orderBy(["person_auth_log", "created_at"], "desc").limit(limit).getResult(dbContext.client);
|
|
92
|
+
const history = rows.map((row) => ({
|
|
93
|
+
geoCountry: row.geo_country,
|
|
94
|
+
deviceFingerprint: row.device_fingerprint,
|
|
95
|
+
ip: row.ip_address
|
|
96
|
+
}));
|
|
97
|
+
return this.score(current, history, config);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
const ipPrefix = (ip) => {
|
|
101
|
+
if (!ip) {
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
const trimmed = ip.trim().toLowerCase();
|
|
105
|
+
if (trimmed.length === 0) {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
if (!trimmed.includes(":")) {
|
|
109
|
+
const octets = trimmed.split(".");
|
|
110
|
+
if (octets.length === 4) {
|
|
111
|
+
return `${octets[0]}.${octets[1]}.${octets[2]}.0/24`;
|
|
112
|
+
}
|
|
113
|
+
return trimmed;
|
|
114
|
+
}
|
|
115
|
+
const hextets = expandIpv6(trimmed);
|
|
116
|
+
if (hextets === null) {
|
|
117
|
+
return trimmed;
|
|
118
|
+
}
|
|
119
|
+
if (hextets.slice(0, 5).every((h) => parseInt(h, 16) === 0) && parseInt(hextets[5], 16) === 65535) {
|
|
120
|
+
const hi = parseInt(hextets[6], 16);
|
|
121
|
+
const lo = parseInt(hextets[7], 16);
|
|
122
|
+
return `${hi >> 8}.${hi & 255}.${lo >> 8}.0/24`;
|
|
123
|
+
}
|
|
124
|
+
const network = hextets.slice(0, 3).map((h) => parseInt(h, 16).toString(16));
|
|
125
|
+
return `${network.join(":")}::/48`;
|
|
126
|
+
};
|
|
127
|
+
const expandIpv6 = (value) => {
|
|
128
|
+
let normalized = value;
|
|
129
|
+
const dotted = /^(.*:)(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.exec(value);
|
|
130
|
+
if (dotted) {
|
|
131
|
+
const octets = [dotted[2], dotted[3], dotted[4], dotted[5]].map(Number);
|
|
132
|
+
if (octets.some((o) => o > 255)) {
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
const hi = (octets[0] << 8 | octets[1]).toString(16);
|
|
136
|
+
const lo = (octets[2] << 8 | octets[3]).toString(16);
|
|
137
|
+
normalized = `${dotted[1]}${hi}:${lo}`;
|
|
138
|
+
}
|
|
139
|
+
const parts = normalized.split("::");
|
|
140
|
+
if (parts.length > 2) {
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
const head = parts[0] === "" ? [] : parts[0].split(":");
|
|
144
|
+
const tail = parts.length === 2 ? parts[1] === "" ? [] : parts[1].split(":") : [];
|
|
145
|
+
const groups = parts.length === 2 ? [...head, ...Array(Math.max(0, 8 - head.length - tail.length)).fill("0"), ...tail] : head;
|
|
146
|
+
if (parts.length === 2 ? groups.length > 8 : groups.length !== 8) {
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
if (groups.some((g) => !/^[0-9a-f]{1,4}$/.test(g))) {
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
return groups;
|
|
153
|
+
};
|
|
154
|
+
export {
|
|
155
|
+
BASELINE_SIGN_IN_TYPES,
|
|
156
|
+
LoginRiskAnalyzer,
|
|
157
|
+
RiskWeight,
|
|
158
|
+
ipPrefix
|
|
159
|
+
};
|
|
160
|
+
//# sourceMappingURL=LoginRiskAnalyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoginRiskAnalyzer.js","sources":["../../../../../../packages/engine-tenant-api/src/model/service/LoginRiskAnalyzer.ts"],"sourcesContent":["import { BinaryLike } from 'node:crypto'\nimport { DatabaseContext } from '../utils/index.js'\nimport { Operator, SelectBuilder } from '@contember/database'\nimport { Config } from '../type/Config.js'\n\n/**\n * Risk weights per signal (A03 v1). Cumulative: a login from a new country on a\n * new device scores HIGH + MEDIUM. Chosen so that the shipped default thresholds\n * (email >= 1, step-up >= 3) map intuitively to \"any single low signal emails,\n * a high signal steps up\".\n */\nexport const RiskWeight = {\n\t/** New country (from the trusted reverse-proxy geo header). */\n\tnewCountry: 3,\n\t/** New user-agent fingerprint. */\n\tnewDevice: 2,\n\t/** New IP / IP-prefix. */\n\tnewIpPrefix: 1,\n} as const\n\nexport type RiskAction = 'allow' | 'email' | 'stepUp'\n\n/**\n * Auth-log `type` values that represent a successful *interactive* sign-in which\n * issued a session for the person from their own client — i.e. the rows whose\n * geo/device/IP form the baseline for the next sign-in's anomaly check. Password\n * (`login`), federated (`idp_login`), and magic-link (`passwordless_login`) all\n * qualify. Deliberately excluded: `passwordless_login_exchange` (the OTP\n * activation step issues no session) and `create_session_token` (an admin minting\n * a token carries the admin's client info, not the person's).\n */\nexport const BASELINE_SIGN_IN_TYPES = ['login', 'idp_login', 'passwordless_login'] as const\n\nexport interface LoginSignals {\n\t/** Country code from the trusted geo header, or null when unavailable. */\n\treadonly geoCountry: string | null\n\t/** Hash of the client user-agent, or null when no UA was provided. */\n\treadonly deviceFingerprint: string | null\n\t/** Client IP, or null when unavailable. */\n\treadonly ip: string | null\n}\n\nexport interface PriorLogin {\n\treadonly geoCountry: string | null\n\treadonly deviceFingerprint: string | null\n\treadonly ip: string | null\n}\n\nexport interface RiskAssessment {\n\treadonly score: number\n\treadonly action: RiskAction\n\t/** Greppable list of which signals fired, e.g. ['new_country', 'new_device']. */\n\treadonly reasons: readonly string[]\n}\n\n/**\n * A03 — sign-in anomaly detection (v1). Runs after password verification (and any\n * standing MFA), before a session is issued. Pure scoring lives in {@link score};\n * {@link analyze} loads the comparison history and applies the configured policy.\n *\n * v1 scope (locked): no GeoIP DB — country comes from a trusted reverse-proxy\n * header read through the same trust gate as the forwarded IP/UA. No\n * impossible-travel detection. Opt-in, disabled by default.\n */\nexport class LoginRiskAnalyzer {\n\tconstructor(\n\t\tprivate readonly hash: (value: BinaryLike, algo: string) => Buffer,\n\t) {}\n\n\t/**\n\t * Deterministic user-agent fingerprint: a hex sha256 of the raw UA. We never\n\t * store the raw UA in a second column nor any cross-site fingerprint — just a\n\t * stable hash so \"same browser\" comparisons work without retaining the string.\n\t * Returns null for an absent/empty UA.\n\t */\n\tfingerprint(userAgent: string | undefined | null): string | null {\n\t\tif (!userAgent) {\n\t\t\treturn null\n\t\t}\n\t\treturn this.hash(userAgent, 'sha256').toString('hex')\n\t}\n\n\t/**\n\t * Pure scoring. Compares the current sign-in's signals against the set of prior\n\t * successful logins. A signal fires only when (a) the current value is known,\n\t * (b) a baseline for *that* signal exists in history — at least one prior login\n\t * recorded a non-null value for it — and (c) the current value is absent from\n\t * that baseline. With no history at all, or no baseline yet for a given signal\n\t * (e.g. the geo header or device fingerprint only started being collected when\n\t * the feature was enabled, so every prior row is null for it), that signal is\n\t * treated as known. This keeps the documented \"no baseline to deviate from →\n\t * trusted\" rule true per signal, so turning the feature on does not score every\n\t * returning user's first login as anomalous.\n\t */\n\tscore(current: LoginSignals, history: readonly PriorLogin[], config: Config['login']['anomalyDetection']): RiskAssessment {\n\t\tconst reasons: string[] = []\n\t\tlet total = 0\n\n\t\tif (history.length === 0) {\n\t\t\treturn { score: 0, action: 'allow', reasons }\n\t\t}\n\n\t\tif (current.geoCountry !== null) {\n\t\t\tconst baseline = history.filter(h => h.geoCountry !== null)\n\t\t\tif (baseline.length > 0 && !baseline.some(h => h.geoCountry === current.geoCountry)) {\n\t\t\t\ttotal += RiskWeight.newCountry\n\t\t\t\treasons.push('new_country')\n\t\t\t}\n\t\t}\n\n\t\tconst currentFingerprint = current.deviceFingerprint\n\t\tif (currentFingerprint !== null) {\n\t\t\tconst baseline = history.filter(h => h.deviceFingerprint !== null)\n\t\t\tif (baseline.length > 0 && !baseline.some(h => h.deviceFingerprint === currentFingerprint)) {\n\t\t\t\ttotal += RiskWeight.newDevice\n\t\t\t\treasons.push('new_device')\n\t\t\t}\n\t\t}\n\n\t\tconst currentPrefix = ipPrefix(current.ip)\n\t\tif (currentPrefix !== null) {\n\t\t\tconst baselinePrefixes = history.map(h => ipPrefix(h.ip)).filter((p): p is string => p !== null)\n\t\t\tif (baselinePrefixes.length > 0 && !baselinePrefixes.includes(currentPrefix)) {\n\t\t\t\ttotal += RiskWeight.newIpPrefix\n\t\t\t\treasons.push('new_ip_prefix')\n\t\t\t}\n\t\t}\n\n\t\treturn { score: total, action: this.decide(total, config), reasons }\n\t}\n\n\tprivate decide(total: number, config: Config['login']['anomalyDetection']): RiskAction {\n\t\t// step-up wins over email when both thresholds are crossed. A threshold of 0\n\t\t// would always fire, so it is only meaningful when the feature is enabled.\n\t\tif (total >= config.stepUpThreshold) {\n\t\t\treturn 'stepUp'\n\t\t}\n\t\tif (total >= config.emailThreshold) {\n\t\t\treturn 'email'\n\t\t}\n\t\treturn 'allow'\n\t}\n\n\t/**\n\t * Loads the last N successful logins for the person and scores the current\n\t * sign-in against them. Returns `allow` with no DB work when the feature is\n\t * disabled (the default), so an opted-out deployment runs exactly as before.\n\t */\n\tasync analyze(\n\t\tdbContext: DatabaseContext,\n\t\tpersonId: string,\n\t\tcurrent: LoginSignals,\n\t\tconfig: Config['login']['anomalyDetection'],\n\t): Promise<RiskAssessment> {\n\t\tif (!config.enabled) {\n\t\t\treturn { score: 0, action: 'allow', reasons: [] }\n\t\t}\n\n\t\tconst limit = Math.max(1, config.historySize)\n\t\tconst rows = await SelectBuilder.create<{ geo_country: string | null; device_fingerprint: string | null; ip_address: string | null }>()\n\t\t\t.select(['person_auth_log', 'geo_country'])\n\t\t\t.select(['person_auth_log', 'device_fingerprint'])\n\t\t\t.select(['person_auth_log', 'ip_address'])\n\t\t\t.from('person_auth_log')\n\t\t\t.where(it =>\n\t\t\t\tit\n\t\t\t\t\t.compare(['person_auth_log', 'person_id'], Operator.eq, personId)\n\t\t\t\t\t// Baseline = any successful interactive sign-in that issued a session\n\t\t\t\t\t// (password / IdP / passwordless), not just password logins — otherwise\n\t\t\t\t\t// a person who normally signs in via IdP/passwordless has no baseline and\n\t\t\t\t\t// their rare password sign-in is wrongly treated as a trusted first login.\n\t\t\t\t\t.in(['person_auth_log', 'type'], [...BASELINE_SIGN_IN_TYPES])\n\t\t\t\t\t.compare(['person_auth_log', 'success'], Operator.eq, true)\n\t\t\t)\n\t\t\t.orderBy(['person_auth_log', 'created_at'], 'desc')\n\t\t\t.limit(limit)\n\t\t\t.getResult(dbContext.client)\n\n\t\tconst history: PriorLogin[] = rows.map(row => ({\n\t\t\tgeoCountry: row.geo_country,\n\t\t\tdeviceFingerprint: row.device_fingerprint,\n\t\t\tip: row.ip_address,\n\t\t}))\n\n\t\treturn this.score(current, history, config)\n\t}\n}\n\n/**\n * Coarsens an IP to a prefix so a roaming client on the same network is treated\n * as \"known\": /24 for IPv4, /48 for IPv6 (the typical site-allocation boundary).\n * Returns null for an absent or unparseable address. Intentionally string-based\n * to avoid pulling a parser onto the sign-in hot path, but the IPv6 form is fully\n * canonicalized (lower-cased, leading zeros stripped, `::` expanded) so the same\n * /48 written two different ways compares equal against stored values.\n */\nexport const ipPrefix = (ip: string | null): string | null => {\n\tif (!ip) {\n\t\treturn null\n\t}\n\tconst trimmed = ip.trim().toLowerCase()\n\tif (trimmed.length === 0) {\n\t\treturn null\n\t}\n\t// Pure IPv4 (dotted quad, no colon) → /24.\n\tif (!trimmed.includes(':')) {\n\t\tconst octets = trimmed.split('.')\n\t\tif (octets.length === 4) {\n\t\t\treturn `${octets[0]}.${octets[1]}.${octets[2]}.0/24`\n\t\t}\n\t\treturn trimmed\n\t}\n\t// IPv6. expandIpv6 also folds a trailing IPv4 dotted-quad (the ::ffff:a.b.c.d\n\t// form, in any compressed/expanded spelling) into two hextets, so the whole\n\t// address is canonicalized here in one place.\n\tconst hextets = expandIpv6(trimmed)\n\tif (hextets === null) {\n\t\treturn trimmed\n\t}\n\t// IPv4-mapped IPv6 (::ffff:a.b.c.d) carries the real client IPv4 in its low 32\n\t// bits → coarsen THAT to a /24. Guarded on the leading 80 bits being zero AND\n\t// the 6th hextet being ffff, so a *non-mapped* address that merely ends in\n\t// `:ffff:<dotted-quad>` (e.g. 2001:db8::ffff:1.2.3.4, or NAT64 64:ff9b::1.2.3.4)\n\t// stays a normal IPv6 /48 instead of collapsing to a bogus, colliding /24.\n\tif (hextets.slice(0, 5).every(h => parseInt(h, 16) === 0) && parseInt(hextets[5], 16) === 0xffff) {\n\t\tconst hi = parseInt(hextets[6], 16)\n\t\tconst lo = parseInt(hextets[7], 16)\n\t\treturn `${hi >> 8}.${hi & 0xff}.${lo >> 8}.0/24`\n\t}\n\t// Canonical /48 = the first three hextets, each with leading zeros stripped.\n\tconst network = hextets.slice(0, 3).map(h => parseInt(h, 16).toString(16))\n\treturn `${network.join(':')}::/48`\n}\n\n/**\n * Expands an IPv6 address to its 8 hextets (as lower-case hex strings, leading\n * zeros kept — the caller strips them). Handles a single `::` run and a trailing\n * IPv4 dotted-quad in the low 32 bits (`x:x:x:x:x:x:d.d.d.d`, e.g. the\n * `::ffff:a.b.c.d` mapped form), which it folds into two hextets first. Returns\n * null for anything that does not look like a valid IPv6 address so the caller can\n * fall back to a raw compare rather than mint a bogus prefix.\n */\nconst expandIpv6 = (value: string): string[] | null => {\n\t// Fold a trailing IPv4 dotted-quad into two hextets so the rest works purely in\n\t// hex groups (and a non-zero prefix before `:ffff:` is preserved as hextets,\n\t// not mistaken for an IPv4-mapped address).\n\tlet normalized = value\n\tconst dotted = /^(.*:)(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$/.exec(value)\n\tif (dotted) {\n\t\tconst octets = [dotted[2], dotted[3], dotted[4], dotted[5]].map(Number)\n\t\tif (octets.some(o => o > 255)) {\n\t\t\treturn null\n\t\t}\n\t\tconst hi = ((octets[0] << 8) | octets[1]).toString(16)\n\t\tconst lo = ((octets[2] << 8) | octets[3]).toString(16)\n\t\tnormalized = `${dotted[1]}${hi}:${lo}`\n\t}\n\tconst parts = normalized.split('::')\n\tif (parts.length > 2) {\n\t\treturn null\n\t}\n\tconst head = parts[0] === '' ? [] : parts[0].split(':')\n\tconst tail = parts.length === 2 ? (parts[1] === '' ? [] : parts[1].split(':')) : []\n\tconst groups = parts.length === 2\n\t\t? [...head, ...Array(Math.max(0, 8 - head.length - tail.length)).fill('0'), ...tail]\n\t\t: head\n\tif (parts.length === 2 ? groups.length > 8 : groups.length !== 8) {\n\t\treturn null\n\t}\n\tif (groups.some(g => !/^[0-9a-f]{1,4}$/.test(g))) {\n\t\treturn null\n\t}\n\treturn groups\n}\n"],"names":[],"mappings":";AAWO,MAAM,aAAa;AAAA;AAAA,EAEzB,YAAY;AAAA;AAAA,EAEZ,WAAW;AAAA;AAAA,EAEX,aAAa;AACd;AAaO,MAAM,yBAAyB,CAAC,SAAS,aAAa,oBAAoB;AAiC1E,MAAM,kBAAkB;AAAA,EAC9B,YACkB,MAChB;AADgB,SAAA,OAAA;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQH,YAAY,WAAqD;AAChE,QAAI,CAAC,WAAW;AACf,aAAO;AAAA,IACR;AACA,WAAO,KAAK,KAAK,WAAW,QAAQ,EAAE,SAAS,KAAK;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,MAAM,SAAuB,SAAgC,QAA6D;AACzH,UAAM,UAAoB,CAAA;AAC1B,QAAI,QAAQ;AAEZ,QAAI,QAAQ,WAAW,GAAG;AACzB,aAAO,EAAE,OAAO,GAAG,QAAQ,SAAS,QAAA;AAAA,IACrC;AAEA,QAAI,QAAQ,eAAe,MAAM;AAChC,YAAM,WAAW,QAAQ,OAAO,CAAA,MAAK,EAAE,eAAe,IAAI;AAC1D,UAAI,SAAS,SAAS,KAAK,CAAC,SAAS,KAAK,CAAA,MAAK,EAAE,eAAe,QAAQ,UAAU,GAAG;AACpF,iBAAS,WAAW;AACpB,gBAAQ,KAAK,aAAa;AAAA,MAC3B;AAAA,IACD;AAEA,UAAM,qBAAqB,QAAQ;AACnC,QAAI,uBAAuB,MAAM;AAChC,YAAM,WAAW,QAAQ,OAAO,CAAA,MAAK,EAAE,sBAAsB,IAAI;AACjE,UAAI,SAAS,SAAS,KAAK,CAAC,SAAS,KAAK,CAAA,MAAK,EAAE,sBAAsB,kBAAkB,GAAG;AAC3F,iBAAS,WAAW;AACpB,gBAAQ,KAAK,YAAY;AAAA,MAC1B;AAAA,IACD;AAEA,UAAM,gBAAgB,SAAS,QAAQ,EAAE;AACzC,QAAI,kBAAkB,MAAM;AAC3B,YAAM,mBAAmB,QAAQ,IAAI,CAAA,MAAK,SAAS,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,MAAmB,MAAM,IAAI;AAC/F,UAAI,iBAAiB,SAAS,KAAK,CAAC,iBAAiB,SAAS,aAAa,GAAG;AAC7E,iBAAS,WAAW;AACpB,gBAAQ,KAAK,eAAe;AAAA,MAC7B;AAAA,IACD;AAEA,WAAO,EAAE,OAAO,OAAO,QAAQ,KAAK,OAAO,OAAO,MAAM,GAAG,QAAA;AAAA,EAC5D;AAAA,EAEQ,OAAO,OAAe,QAAyD;AAGtF,QAAI,SAAS,OAAO,iBAAiB;AACpC,aAAO;AAAA,IACR;AACA,QAAI,SAAS,OAAO,gBAAgB;AACnC,aAAO;AAAA,IACR;AACA,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,QACL,WACA,UACA,SACA,QAC0B;AAC1B,QAAI,CAAC,OAAO,SAAS;AACpB,aAAO,EAAE,OAAO,GAAG,QAAQ,SAAS,SAAS,GAAC;AAAA,IAC/C;AAEA,UAAM,QAAQ,KAAK,IAAI,GAAG,OAAO,WAAW;AAC5C,UAAM,OAAO,MAAM,cAAc,OAAA,EAC/B,OAAO,CAAC,mBAAmB,aAAa,CAAC,EACzC,OAAO,CAAC,mBAAmB,oBAAoB,CAAC,EAChD,OAAO,CAAC,mBAAmB,YAAY,CAAC,EACxC,KAAK,iBAAiB,EACtB;AAAA,MAAM,CAAA,OACN,GACE,QAAQ,CAAC,mBAAmB,WAAW,GAAG,SAAS,IAAI,QAAQ,EAK/D,GAAG,CAAC,mBAAmB,MAAM,GAAG,CAAC,GAAG,sBAAsB,CAAC,EAC3D,QAAQ,CAAC,mBAAmB,SAAS,GAAG,SAAS,IAAI,IAAI;AAAA,IAAA,EAE3D,QAAQ,CAAC,mBAAmB,YAAY,GAAG,MAAM,EACjD,MAAM,KAAK,EACX,UAAU,UAAU,MAAM;AAE5B,UAAM,UAAwB,KAAK,IAAI,CAAA,SAAQ;AAAA,MAC9C,YAAY,IAAI;AAAA,MAChB,mBAAmB,IAAI;AAAA,MACvB,IAAI,IAAI;AAAA,IAAA,EACP;AAEF,WAAO,KAAK,MAAM,SAAS,SAAS,MAAM;AAAA,EAC3C;AACD;AAUO,MAAM,WAAW,CAAC,OAAqC;AAC7D,MAAI,CAAC,IAAI;AACR,WAAO;AAAA,EACR;AACA,QAAM,UAAU,GAAG,KAAA,EAAO,YAAA;AAC1B,MAAI,QAAQ,WAAW,GAAG;AACzB,WAAO;AAAA,EACR;AAEA,MAAI,CAAC,QAAQ,SAAS,GAAG,GAAG;AAC3B,UAAM,SAAS,QAAQ,MAAM,GAAG;AAChC,QAAI,OAAO,WAAW,GAAG;AACxB,aAAO,GAAG,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;AAAA,IAC9C;AACA,WAAO;AAAA,EACR;AAIA,QAAM,UAAU,WAAW,OAAO;AAClC,MAAI,YAAY,MAAM;AACrB,WAAO;AAAA,EACR;AAMA,MAAI,QAAQ,MAAM,GAAG,CAAC,EAAE,MAAM,OAAK,SAAS,GAAG,EAAE,MAAM,CAAC,KAAK,SAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,OAAQ;AACjG,UAAM,KAAK,SAAS,QAAQ,CAAC,GAAG,EAAE;AAClC,UAAM,KAAK,SAAS,QAAQ,CAAC,GAAG,EAAE;AAClC,WAAO,GAAG,MAAM,CAAC,IAAI,KAAK,GAAI,IAAI,MAAM,CAAC;AAAA,EAC1C;AAEA,QAAM,UAAU,QAAQ,MAAM,GAAG,CAAC,EAAE,IAAI,CAAA,MAAK,SAAS,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC;AACzE,SAAO,GAAG,QAAQ,KAAK,GAAG,CAAC;AAC5B;AAUA,MAAM,aAAa,CAAC,UAAmC;AAItD,MAAI,aAAa;AACjB,QAAM,SAAS,oDAAoD,KAAK,KAAK;AAC7E,MAAI,QAAQ;AACX,UAAM,SAAS,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,IAAI,MAAM;AACtE,QAAI,OAAO,KAAK,CAAA,MAAK,IAAI,GAAG,GAAG;AAC9B,aAAO;AAAA,IACR;AACA,UAAM,MAAO,OAAO,CAAC,KAAK,IAAK,OAAO,CAAC,GAAG,SAAS,EAAE;AACrD,UAAM,MAAO,OAAO,CAAC,KAAK,IAAK,OAAO,CAAC,GAAG,SAAS,EAAE;AACrD,iBAAa,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE;AAAA,EACrC;AACA,QAAM,QAAQ,WAAW,MAAM,IAAI;AACnC,MAAI,MAAM,SAAS,GAAG;AACrB,WAAO;AAAA,EACR;AACA,QAAM,OAAO,MAAM,CAAC,MAAM,KAAK,KAAK,MAAM,CAAC,EAAE,MAAM,GAAG;AACtD,QAAM,OAAO,MAAM,WAAW,IAAK,MAAM,CAAC,MAAM,KAAK,CAAA,IAAK,MAAM,CAAC,EAAE,MAAM,GAAG,IAAK,CAAA;AACjF,QAAM,SAAS,MAAM,WAAW,IAC7B,CAAC,GAAG,MAAM,GAAG,MAAM,KAAK,IAAI,GAAG,IAAI,KAAK,SAAS,KAAK,MAAM,CAAC,EAAE,KAAK,GAAG,GAAG,GAAG,IAAI,IACjF;AACH,MAAI,MAAM,WAAW,IAAI,OAAO,SAAS,IAAI,OAAO,WAAW,GAAG;AACjE,WAAO;AAAA,EACR;AACA,MAAI,OAAO,KAAK,CAAA,MAAK,CAAC,kBAAkB,KAAK,CAAC,CAAC,GAAG;AACjD,WAAO;AAAA,EACR;AACA,SAAO;AACR;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MailTemplateManager.cjs","sources":["../../../../../../packages/engine-tenant-api/src/model/service/MailTemplateManager.ts"],"sourcesContent":["import { AddMailTemplateCommand, RemoveMailTemplateCommand } from '../commands'\nimport { MailTemplate, MailTemplateIdentifier } from '../mailing'\nimport { DatabaseContext } from '../utils'\n\nexport class MailTemplateManager {\n\tpublic async addMailTemplate(dbContext: DatabaseContext, mailTemplate: MailTemplate): Promise<void> {\n\t\tawait dbContext.commandBus.execute(new AddMailTemplateCommand(mailTemplate))\n\t}\n\n\tpublic async removeMailTemplate(dbContext: DatabaseContext, mailTemplateId: MailTemplateIdentifier): Promise<boolean> {\n\t\treturn await dbContext.commandBus.execute(new RemoveMailTemplateCommand(mailTemplateId))\n\t}\n}\n"],"names":["AddMailTemplateCommand","RemoveMailTemplateCommand"],"mappings":";;;;;;;AAIO,MAAM,oBAAoB;AAAA,EAChC,MAAa,gBAAgB,WAA4B,cAA2C;AACnG,UAAM,UAAU,WAAW,QAAQ,IAAIA,uBAAAA,uBAAuB,YAAY,CAAC;AAAA,EAC5E;AAAA,EAEA,MAAa,mBAAmB,WAA4B,gBAA0D;AACrH,WAAO,MAAM,UAAU,WAAW,QAAQ,IAAIC,0BAAAA,0BAA0B,cAAc,CAAC;AAAA,EACxF;AACD;;"}
|
|
1
|
+
{"version":3,"file":"MailTemplateManager.cjs","sources":["../../../../../../packages/engine-tenant-api/src/model/service/MailTemplateManager.ts"],"sourcesContent":["import { AddMailTemplateCommand, RemoveMailTemplateCommand } from '../commands/index.js'\nimport { MailTemplate, MailTemplateIdentifier } from '../mailing/index.js'\nimport { DatabaseContext } from '../utils/index.js'\n\nexport class MailTemplateManager {\n\tpublic async addMailTemplate(dbContext: DatabaseContext, mailTemplate: MailTemplate): Promise<void> {\n\t\tawait dbContext.commandBus.execute(new AddMailTemplateCommand(mailTemplate))\n\t}\n\n\tpublic async removeMailTemplate(dbContext: DatabaseContext, mailTemplateId: MailTemplateIdentifier): Promise<boolean> {\n\t\treturn await dbContext.commandBus.execute(new RemoveMailTemplateCommand(mailTemplateId))\n\t}\n}\n"],"names":["AddMailTemplateCommand","RemoveMailTemplateCommand"],"mappings":";;;;;;;AAIO,MAAM,oBAAoB;AAAA,EAChC,MAAa,gBAAgB,WAA4B,cAA2C;AACnG,UAAM,UAAU,WAAW,QAAQ,IAAIA,uBAAAA,uBAAuB,YAAY,CAAC;AAAA,EAC5E;AAAA,EAEA,MAAa,mBAAmB,WAA4B,gBAA0D;AACrH,WAAO,MAAM,UAAU,WAAW,QAAQ,IAAIC,0BAAAA,0BAA0B,cAAc,CAAC;AAAA,EACxF;AACD;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MailTemplateManager.js","sources":["../../../../../../packages/engine-tenant-api/src/model/service/MailTemplateManager.ts"],"sourcesContent":["import { AddMailTemplateCommand, RemoveMailTemplateCommand } from '../commands'\nimport { MailTemplate, MailTemplateIdentifier } from '../mailing'\nimport { DatabaseContext } from '../utils'\n\nexport class MailTemplateManager {\n\tpublic async addMailTemplate(dbContext: DatabaseContext, mailTemplate: MailTemplate): Promise<void> {\n\t\tawait dbContext.commandBus.execute(new AddMailTemplateCommand(mailTemplate))\n\t}\n\n\tpublic async removeMailTemplate(dbContext: DatabaseContext, mailTemplateId: MailTemplateIdentifier): Promise<boolean> {\n\t\treturn await dbContext.commandBus.execute(new RemoveMailTemplateCommand(mailTemplateId))\n\t}\n}\n"],"names":[],"mappings":";;;;;AAIO,MAAM,oBAAoB;AAAA,EAChC,MAAa,gBAAgB,WAA4B,cAA2C;AACnG,UAAM,UAAU,WAAW,QAAQ,IAAI,uBAAuB,YAAY,CAAC;AAAA,EAC5E;AAAA,EAEA,MAAa,mBAAmB,WAA4B,gBAA0D;AACrH,WAAO,MAAM,UAAU,WAAW,QAAQ,IAAI,0BAA0B,cAAc,CAAC;AAAA,EACxF;AACD;"}
|
|
1
|
+
{"version":3,"file":"MailTemplateManager.js","sources":["../../../../../../packages/engine-tenant-api/src/model/service/MailTemplateManager.ts"],"sourcesContent":["import { AddMailTemplateCommand, RemoveMailTemplateCommand } from '../commands/index.js'\nimport { MailTemplate, MailTemplateIdentifier } from '../mailing/index.js'\nimport { DatabaseContext } from '../utils/index.js'\n\nexport class MailTemplateManager {\n\tpublic async addMailTemplate(dbContext: DatabaseContext, mailTemplate: MailTemplate): Promise<void> {\n\t\tawait dbContext.commandBus.execute(new AddMailTemplateCommand(mailTemplate))\n\t}\n\n\tpublic async removeMailTemplate(dbContext: DatabaseContext, mailTemplateId: MailTemplateIdentifier): Promise<boolean> {\n\t\treturn await dbContext.commandBus.execute(new RemoveMailTemplateCommand(mailTemplateId))\n\t}\n}\n"],"names":[],"mappings":";;;;;AAIO,MAAM,oBAAoB;AAAA,EAChC,MAAa,gBAAgB,WAA4B,cAA2C;AACnG,UAAM,UAAU,WAAW,QAAQ,IAAI,uBAAuB,YAAY,CAAC;AAAA,EAC5E;AAAA,EAEA,MAAa,mBAAmB,WAA4B,gBAA0D;AACrH,WAAO,MAAM,UAAU,WAAW,QAAQ,IAAI,0BAA0B,cAAc,CAAC;AAAA,EACxF;AACD;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MembershipValidator.cjs","sources":["../../../../../../packages/engine-tenant-api/src/model/service/MembershipValidator.ts"],"sourcesContent":["import { ProjectSchemaResolver } from '../type'\nimport { MembershipResolver, MembershipValidationError, MembershipValidationErrorType } from '@contember/schema-utils'\nimport { Acl } from '@contember/schema'\n\nexport class MembershipValidator {\n\tconstructor(\n\t\tprivate readonly schemaResolver: ProjectSchemaResolver,\n\t\tprivate readonly resolver: MembershipResolver = new MembershipResolver(),\n\t) {}\n\n\tasync validate(project: string, memberships: readonly Acl.Membership[]): Promise<MembershipValidationError[]> {\n\t\tconst schema = await this.schemaResolver.getSchema(project)\n\t\tif (!schema) {\n\t\t\tthrow new Error()\n\t\t}\n\t\treturn this.resolver.resolve(schema.acl, memberships, MembershipResolver.UnknownIdentity, false).errors\n\t}\n}\n\nexport { MembershipValidationError, MembershipValidationErrorType }\n"],"names":["MembershipResolver"],"mappings":";;;AAIO,MAAM,oBAAoB;AAAA,EAChC,YACkB,gBACA,WAA+B,IAAIA,YAAAA,sBACnD;AAFgB,SAAA,iBAAA;AACA,SAAA,WAAA;AAAA,EACf;AAAA,EAEH,MAAM,SAAS,SAAiB,aAA8E;AAC7G,UAAM,SAAS,MAAM,KAAK,eAAe,UAAU,OAAO;AAC1D,QAAI,CAAC,QAAQ;AACZ,YAAM,IAAI,MAAA;AAAA,IACX;AACA,WAAO,KAAK,SAAS,QAAQ,OAAO,KAAK,aAAaA,+BAAmB,iBAAiB,KAAK,EAAE;AAAA,EAClG;AACD;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"MembershipValidator.cjs","sources":["../../../../../../packages/engine-tenant-api/src/model/service/MembershipValidator.ts"],"sourcesContent":["import { ProjectSchemaResolver } from '../type/index.js'\nimport { MembershipResolver, MembershipValidationError, MembershipValidationErrorType } from '@contember/schema-utils'\nimport { Acl } from '@contember/schema'\n\nexport class MembershipValidator {\n\tconstructor(\n\t\tprivate readonly schemaResolver: ProjectSchemaResolver,\n\t\tprivate readonly resolver: MembershipResolver = new MembershipResolver(),\n\t) {}\n\n\tasync validate(project: string, memberships: readonly Acl.Membership[]): Promise<MembershipValidationError[]> {\n\t\tconst schema = await this.schemaResolver.getSchema(project)\n\t\tif (!schema) {\n\t\t\tthrow new Error()\n\t\t}\n\t\treturn this.resolver.resolve(schema.acl, memberships, MembershipResolver.UnknownIdentity, false).errors\n\t}\n}\n\nexport { MembershipValidationError, MembershipValidationErrorType }\n"],"names":["MembershipResolver"],"mappings":";;;AAIO,MAAM,oBAAoB;AAAA,EAChC,YACkB,gBACA,WAA+B,IAAIA,YAAAA,sBACnD;AAFgB,SAAA,iBAAA;AACA,SAAA,WAAA;AAAA,EACf;AAAA,EAEH,MAAM,SAAS,SAAiB,aAA8E;AAC7G,UAAM,SAAS,MAAM,KAAK,eAAe,UAAU,OAAO;AAC1D,QAAI,CAAC,QAAQ;AACZ,YAAM,IAAI,MAAA;AAAA,IACX;AACA,WAAO,KAAK,SAAS,QAAQ,OAAO,KAAK,aAAaA,+BAAmB,iBAAiB,KAAK,EAAE;AAAA,EAClG;AACD;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MembershipValidator.js","sources":["../../../../../../packages/engine-tenant-api/src/model/service/MembershipValidator.ts"],"sourcesContent":["import { ProjectSchemaResolver } from '../type'\nimport { MembershipResolver, MembershipValidationError, MembershipValidationErrorType } from '@contember/schema-utils'\nimport { Acl } from '@contember/schema'\n\nexport class MembershipValidator {\n\tconstructor(\n\t\tprivate readonly schemaResolver: ProjectSchemaResolver,\n\t\tprivate readonly resolver: MembershipResolver = new MembershipResolver(),\n\t) {}\n\n\tasync validate(project: string, memberships: readonly Acl.Membership[]): Promise<MembershipValidationError[]> {\n\t\tconst schema = await this.schemaResolver.getSchema(project)\n\t\tif (!schema) {\n\t\t\tthrow new Error()\n\t\t}\n\t\treturn this.resolver.resolve(schema.acl, memberships, MembershipResolver.UnknownIdentity, false).errors\n\t}\n}\n\nexport { MembershipValidationError, MembershipValidationErrorType }\n"],"names":[],"mappings":";;AAIO,MAAM,oBAAoB;AAAA,EAChC,YACkB,gBACA,WAA+B,IAAI,sBACnD;AAFgB,SAAA,iBAAA;AACA,SAAA,WAAA;AAAA,EACf;AAAA,EAEH,MAAM,SAAS,SAAiB,aAA8E;AAC7G,UAAM,SAAS,MAAM,KAAK,eAAe,UAAU,OAAO;AAC1D,QAAI,CAAC,QAAQ;AACZ,YAAM,IAAI,MAAA;AAAA,IACX;AACA,WAAO,KAAK,SAAS,QAAQ,OAAO,KAAK,aAAa,mBAAmB,iBAAiB,KAAK,EAAE;AAAA,EAClG;AACD;"}
|
|
1
|
+
{"version":3,"file":"MembershipValidator.js","sources":["../../../../../../packages/engine-tenant-api/src/model/service/MembershipValidator.ts"],"sourcesContent":["import { ProjectSchemaResolver } from '../type/index.js'\nimport { MembershipResolver, MembershipValidationError, MembershipValidationErrorType } from '@contember/schema-utils'\nimport { Acl } from '@contember/schema'\n\nexport class MembershipValidator {\n\tconstructor(\n\t\tprivate readonly schemaResolver: ProjectSchemaResolver,\n\t\tprivate readonly resolver: MembershipResolver = new MembershipResolver(),\n\t) {}\n\n\tasync validate(project: string, memberships: readonly Acl.Membership[]): Promise<MembershipValidationError[]> {\n\t\tconst schema = await this.schemaResolver.getSchema(project)\n\t\tif (!schema) {\n\t\t\tthrow new Error()\n\t\t}\n\t\treturn this.resolver.resolve(schema.acl, memberships, MembershipResolver.UnknownIdentity, false).errors\n\t}\n}\n\nexport { MembershipValidationError, MembershipValidationErrorType }\n"],"names":[],"mappings":";;AAIO,MAAM,oBAAoB;AAAA,EAChC,YACkB,gBACA,WAA+B,IAAI,sBACnD;AAFgB,SAAA,iBAAA;AACA,SAAA,WAAA;AAAA,EACf;AAAA,EAEH,MAAM,SAAS,SAAiB,aAA8E;AAC7G,UAAM,SAAS,MAAM,KAAK,eAAe,UAAU,OAAO;AAC1D,QAAI,CAAC,QAAQ;AACZ,YAAM,IAAI,MAAA;AAAA,IACX;AACA,WAAO,KAAK,SAAS,QAAQ,OAAO,KAAK,aAAa,mBAAmB,iBAAiB,KAAK,EAAE;AAAA,EAClG;AACD;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OtpAuthenticator.cjs","sources":["../../../../../../packages/engine-tenant-api/src/model/service/OtpAuthenticator.ts"],"sourcesContent":["import { Providers } from '../providers'\nimport { Secret, TOTP, URI } from 'otpauth'\n\nexport interface OtpData {\n\tsecret: string\n\turi: string\n}\n\nconst digits = 6\n\nexport class OtpAuthenticator {\n\tconstructor(\n\t\tprivate readonly providers: Pick<Providers, 'now' | 'randomBytes'>,\n\t) {\n\t}\n\n\tpublic validate(secret: SecretLike, token: string): boolean {\n\t\tconst result = TOTP.validate({\n\t\t\ttoken,\n\t\t\tdigits,\n\t\t\tsecret: getSecret(secret),\n\t\t\ttimestamp: this.providers.now().getTime(),\n\t\t})\n\t\treturn result !== null\n\t}\n\n\tpublic generate(secret: SecretLike): string {\n\t\treturn TOTP.generate({\n\t\t\tsecret: getSecret(secret),\n\t\t\tdigits,\n\t\t\ttimestamp: this.providers.now().getTime(),\n\t\t})\n\t}\n\n\tpublic async create(user: string, label: string): Promise<OtpData> {\n\t\tconst secret = new Secret({ buffer: (await this.providers.randomBytes(20)) as any })\n\t\tconst totp = new TOTP({\n\t\t\tlabel: user,\n\t\t\tissuer: label,\n\t\t\tsecret,\n\t\t})\n\t\treturn {\n\t\t\tsecret: secret.base32,\n\t\t\turi: totp.toString(),\n\t\t}\n\t}\n}\n\ntype SecretLike = { uri: string } | { secret: string }\nconst getSecret = function(otp: SecretLike): Secret {\n\treturn 'uri' in otp ? (URI.parse(otp.uri).secret) : Secret.fromBase32(otp.secret)\n}\n"],"names":["TOTP","Secret","URI"],"mappings":";;;AAQA,MAAM,SAAS;AAER,MAAM,iBAAiB;AAAA,EAC7B,YACkB,WAChB;AADgB,SAAA,YAAA;AAAA,EAElB;AAAA,EAEO,SAAS,QAAoB,OAAwB;AAC3D,UAAM,SAASA,QAAAA,KAAK,SAAS;AAAA,MAC5B;AAAA,MACA;AAAA,MACA,QAAQ,UAAU,MAAM;AAAA,MACxB,WAAW,KAAK,UAAU,IAAA,EAAM,QAAA;AAAA,IAAQ,CACxC;AACD,WAAO,WAAW;AAAA,EACnB;AAAA,EAEO,SAAS,QAA4B;AAC3C,WAAOA,QAAAA,KAAK,SAAS;AAAA,MACpB,QAAQ,UAAU,MAAM;AAAA,MACxB;AAAA,MACA,WAAW,KAAK,UAAU,IAAA,EAAM,QAAA;AAAA,IAAQ,CACxC;AAAA,EACF;AAAA,EAEA,MAAa,OAAO,MAAc,OAAiC;AAClE,UAAM,SAAS,IAAIC,QAAAA,OAAO,EAAE,QAAS,MAAM,KAAK,UAAU,YAAY,EAAE,GAAW;AACnF,UAAM,OAAO,IAAID,aAAK;AAAA,MACrB,OAAO;AAAA,MACP,QAAQ;AAAA,MACR;AAAA,IAAA,CACA;AACD,WAAO;AAAA,MACN,QAAQ,OAAO;AAAA,MACf,KAAK,KAAK,SAAA;AAAA,IAAS;AAAA,EAErB;AACD;AAGA,MAAM,YAAY,SAAS,KAAyB;AACnD,SAAO,SAAS,MAAOE,QAAAA,IAAI,MAAM,IAAI,GAAG,EAAE,SAAUD,QAAAA,OAAO,WAAW,IAAI,MAAM;AACjF;;"}
|
|
1
|
+
{"version":3,"file":"OtpAuthenticator.cjs","sources":["../../../../../../packages/engine-tenant-api/src/model/service/OtpAuthenticator.ts"],"sourcesContent":["import { Providers } from '../providers.js'\nimport { Secret, TOTP, URI } from 'otpauth'\n\nexport interface OtpData {\n\tsecret: string\n\turi: string\n}\n\nconst digits = 6\n\nexport class OtpAuthenticator {\n\tconstructor(\n\t\tprivate readonly providers: Pick<Providers, 'now' | 'randomBytes'>,\n\t) {\n\t}\n\n\tpublic validate(secret: SecretLike, token: string): boolean {\n\t\tconst result = TOTP.validate({\n\t\t\ttoken,\n\t\t\tdigits,\n\t\t\tsecret: getSecret(secret),\n\t\t\ttimestamp: this.providers.now().getTime(),\n\t\t})\n\t\treturn result !== null\n\t}\n\n\tpublic generate(secret: SecretLike): string {\n\t\treturn TOTP.generate({\n\t\t\tsecret: getSecret(secret),\n\t\t\tdigits,\n\t\t\ttimestamp: this.providers.now().getTime(),\n\t\t})\n\t}\n\n\tpublic async create(user: string, label: string): Promise<OtpData> {\n\t\tconst secret = new Secret({ buffer: (await this.providers.randomBytes(20)) as any })\n\t\tconst totp = new TOTP({\n\t\t\tlabel: user,\n\t\t\tissuer: label,\n\t\t\tsecret,\n\t\t})\n\t\treturn {\n\t\t\tsecret: secret.base32,\n\t\t\turi: totp.toString(),\n\t\t}\n\t}\n}\n\ntype SecretLike = { uri: string } | { secret: string }\nconst getSecret = function(otp: SecretLike): Secret {\n\treturn 'uri' in otp ? (URI.parse(otp.uri).secret) : Secret.fromBase32(otp.secret)\n}\n"],"names":["TOTP","Secret","URI"],"mappings":";;;AAQA,MAAM,SAAS;AAER,MAAM,iBAAiB;AAAA,EAC7B,YACkB,WAChB;AADgB,SAAA,YAAA;AAAA,EAElB;AAAA,EAEO,SAAS,QAAoB,OAAwB;AAC3D,UAAM,SAASA,QAAAA,KAAK,SAAS;AAAA,MAC5B;AAAA,MACA;AAAA,MACA,QAAQ,UAAU,MAAM;AAAA,MACxB,WAAW,KAAK,UAAU,IAAA,EAAM,QAAA;AAAA,IAAQ,CACxC;AACD,WAAO,WAAW;AAAA,EACnB;AAAA,EAEO,SAAS,QAA4B;AAC3C,WAAOA,QAAAA,KAAK,SAAS;AAAA,MACpB,QAAQ,UAAU,MAAM;AAAA,MACxB;AAAA,MACA,WAAW,KAAK,UAAU,IAAA,EAAM,QAAA;AAAA,IAAQ,CACxC;AAAA,EACF;AAAA,EAEA,MAAa,OAAO,MAAc,OAAiC;AAClE,UAAM,SAAS,IAAIC,QAAAA,OAAO,EAAE,QAAS,MAAM,KAAK,UAAU,YAAY,EAAE,GAAW;AACnF,UAAM,OAAO,IAAID,aAAK;AAAA,MACrB,OAAO;AAAA,MACP,QAAQ;AAAA,MACR;AAAA,IAAA,CACA;AACD,WAAO;AAAA,MACN,QAAQ,OAAO;AAAA,MACf,KAAK,KAAK,SAAA;AAAA,IAAS;AAAA,EAErB;AACD;AAGA,MAAM,YAAY,SAAS,KAAyB;AACnD,SAAO,SAAS,MAAOE,QAAAA,IAAI,MAAM,IAAI,GAAG,EAAE,SAAUD,QAAAA,OAAO,WAAW,IAAI,MAAM;AACjF;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OtpAuthenticator.js","sources":["../../../../../../packages/engine-tenant-api/src/model/service/OtpAuthenticator.ts"],"sourcesContent":["import { Providers } from '../providers'\nimport { Secret, TOTP, URI } from 'otpauth'\n\nexport interface OtpData {\n\tsecret: string\n\turi: string\n}\n\nconst digits = 6\n\nexport class OtpAuthenticator {\n\tconstructor(\n\t\tprivate readonly providers: Pick<Providers, 'now' | 'randomBytes'>,\n\t) {\n\t}\n\n\tpublic validate(secret: SecretLike, token: string): boolean {\n\t\tconst result = TOTP.validate({\n\t\t\ttoken,\n\t\t\tdigits,\n\t\t\tsecret: getSecret(secret),\n\t\t\ttimestamp: this.providers.now().getTime(),\n\t\t})\n\t\treturn result !== null\n\t}\n\n\tpublic generate(secret: SecretLike): string {\n\t\treturn TOTP.generate({\n\t\t\tsecret: getSecret(secret),\n\t\t\tdigits,\n\t\t\ttimestamp: this.providers.now().getTime(),\n\t\t})\n\t}\n\n\tpublic async create(user: string, label: string): Promise<OtpData> {\n\t\tconst secret = new Secret({ buffer: (await this.providers.randomBytes(20)) as any })\n\t\tconst totp = new TOTP({\n\t\t\tlabel: user,\n\t\t\tissuer: label,\n\t\t\tsecret,\n\t\t})\n\t\treturn {\n\t\t\tsecret: secret.base32,\n\t\t\turi: totp.toString(),\n\t\t}\n\t}\n}\n\ntype SecretLike = { uri: string } | { secret: string }\nconst getSecret = function(otp: SecretLike): Secret {\n\treturn 'uri' in otp ? (URI.parse(otp.uri).secret) : Secret.fromBase32(otp.secret)\n}\n"],"names":[],"mappings":";AAQA,MAAM,SAAS;AAER,MAAM,iBAAiB;AAAA,EAC7B,YACkB,WAChB;AADgB,SAAA,YAAA;AAAA,EAElB;AAAA,EAEO,SAAS,QAAoB,OAAwB;AAC3D,UAAM,SAAS,KAAK,SAAS;AAAA,MAC5B;AAAA,MACA;AAAA,MACA,QAAQ,UAAU,MAAM;AAAA,MACxB,WAAW,KAAK,UAAU,IAAA,EAAM,QAAA;AAAA,IAAQ,CACxC;AACD,WAAO,WAAW;AAAA,EACnB;AAAA,EAEO,SAAS,QAA4B;AAC3C,WAAO,KAAK,SAAS;AAAA,MACpB,QAAQ,UAAU,MAAM;AAAA,MACxB;AAAA,MACA,WAAW,KAAK,UAAU,IAAA,EAAM,QAAA;AAAA,IAAQ,CACxC;AAAA,EACF;AAAA,EAEA,MAAa,OAAO,MAAc,OAAiC;AAClE,UAAM,SAAS,IAAI,OAAO,EAAE,QAAS,MAAM,KAAK,UAAU,YAAY,EAAE,GAAW;AACnF,UAAM,OAAO,IAAI,KAAK;AAAA,MACrB,OAAO;AAAA,MACP,QAAQ;AAAA,MACR;AAAA,IAAA,CACA;AACD,WAAO;AAAA,MACN,QAAQ,OAAO;AAAA,MACf,KAAK,KAAK,SAAA;AAAA,IAAS;AAAA,EAErB;AACD;AAGA,MAAM,YAAY,SAAS,KAAyB;AACnD,SAAO,SAAS,MAAO,IAAI,MAAM,IAAI,GAAG,EAAE,SAAU,OAAO,WAAW,IAAI,MAAM;AACjF;"}
|
|
1
|
+
{"version":3,"file":"OtpAuthenticator.js","sources":["../../../../../../packages/engine-tenant-api/src/model/service/OtpAuthenticator.ts"],"sourcesContent":["import { Providers } from '../providers.js'\nimport { Secret, TOTP, URI } from 'otpauth'\n\nexport interface OtpData {\n\tsecret: string\n\turi: string\n}\n\nconst digits = 6\n\nexport class OtpAuthenticator {\n\tconstructor(\n\t\tprivate readonly providers: Pick<Providers, 'now' | 'randomBytes'>,\n\t) {\n\t}\n\n\tpublic validate(secret: SecretLike, token: string): boolean {\n\t\tconst result = TOTP.validate({\n\t\t\ttoken,\n\t\t\tdigits,\n\t\t\tsecret: getSecret(secret),\n\t\t\ttimestamp: this.providers.now().getTime(),\n\t\t})\n\t\treturn result !== null\n\t}\n\n\tpublic generate(secret: SecretLike): string {\n\t\treturn TOTP.generate({\n\t\t\tsecret: getSecret(secret),\n\t\t\tdigits,\n\t\t\ttimestamp: this.providers.now().getTime(),\n\t\t})\n\t}\n\n\tpublic async create(user: string, label: string): Promise<OtpData> {\n\t\tconst secret = new Secret({ buffer: (await this.providers.randomBytes(20)) as any })\n\t\tconst totp = new TOTP({\n\t\t\tlabel: user,\n\t\t\tissuer: label,\n\t\t\tsecret,\n\t\t})\n\t\treturn {\n\t\t\tsecret: secret.base32,\n\t\t\turi: totp.toString(),\n\t\t}\n\t}\n}\n\ntype SecretLike = { uri: string } | { secret: string }\nconst getSecret = function(otp: SecretLike): Secret {\n\treturn 'uri' in otp ? (URI.parse(otp.uri).secret) : Secret.fromBase32(otp.secret)\n}\n"],"names":[],"mappings":";AAQA,MAAM,SAAS;AAER,MAAM,iBAAiB;AAAA,EAC7B,YACkB,WAChB;AADgB,SAAA,YAAA;AAAA,EAElB;AAAA,EAEO,SAAS,QAAoB,OAAwB;AAC3D,UAAM,SAAS,KAAK,SAAS;AAAA,MAC5B;AAAA,MACA;AAAA,MACA,QAAQ,UAAU,MAAM;AAAA,MACxB,WAAW,KAAK,UAAU,IAAA,EAAM,QAAA;AAAA,IAAQ,CACxC;AACD,WAAO,WAAW;AAAA,EACnB;AAAA,EAEO,SAAS,QAA4B;AAC3C,WAAO,KAAK,SAAS;AAAA,MACpB,QAAQ,UAAU,MAAM;AAAA,MACxB;AAAA,MACA,WAAW,KAAK,UAAU,IAAA,EAAM,QAAA;AAAA,IAAQ,CACxC;AAAA,EACF;AAAA,EAEA,MAAa,OAAO,MAAc,OAAiC;AAClE,UAAM,SAAS,IAAI,OAAO,EAAE,QAAS,MAAM,KAAK,UAAU,YAAY,EAAE,GAAW;AACnF,UAAM,OAAO,IAAI,KAAK;AAAA,MACrB,OAAO;AAAA,MACP,QAAQ;AAAA,MACR;AAAA,IAAA,CACA;AACD,WAAO;AAAA,MACN,QAAQ,OAAO;AAAA,MACf,KAAK,KAAK,SAAA;AAAA,IAAS;AAAA,EAErB;AACD;AAGA,MAAM,YAAY,SAAS,KAAyB;AACnD,SAAO,SAAS,MAAO,IAAI,MAAM,IAAI,GAAG,EAAE,SAAU,OAAO,WAAW,IAAI,MAAM;AACjF;"}
|
|
@@ -6,26 +6,76 @@ require("node:crypto");
|
|
|
6
6
|
const ConfirmOtpCommand = require("../commands/otp/ConfirmOtpCommand.cjs");
|
|
7
7
|
const DisableOtpCommand = require("../commands/otp/DisableOtpCommand.cjs");
|
|
8
8
|
const PrepareOtpCommand = require("../commands/otp/PrepareOtpCommand.cjs");
|
|
9
|
+
const ReEncryptOtpSecretCommand = require("../commands/otp/ReEncryptOtpSecretCommand.cjs");
|
|
10
|
+
const otpauth = require("otpauth");
|
|
9
11
|
class OtpManager {
|
|
10
|
-
constructor(otpAuthenticator) {
|
|
12
|
+
constructor(otpAuthenticator, providers) {
|
|
11
13
|
this.otpAuthenticator = otpAuthenticator;
|
|
14
|
+
this.providers = providers;
|
|
12
15
|
}
|
|
13
16
|
async prepareOtp(dbContext, person, label) {
|
|
14
17
|
const otp = await this.otpAuthenticator.create(person.email ?? person.name ?? "unnamed", label);
|
|
15
|
-
|
|
18
|
+
if (this.providers.encryptionEnabled) {
|
|
19
|
+
const encrypted = await this.providers.encrypt(Buffer.from(otp.secret, "utf8"));
|
|
20
|
+
await dbContext.commandBus.execute(new PrepareOtpCommand.PrepareOtpCommand(person.id, encrypted.value, encrypted.version));
|
|
21
|
+
} else {
|
|
22
|
+
await dbContext.commandBus.execute(new PrepareOtpCommand.PrepareOtpCommand(person.id, Buffer.from(otp.uri, "utf8"), 0));
|
|
23
|
+
}
|
|
16
24
|
return otp;
|
|
17
25
|
}
|
|
26
|
+
/** Promotes the pending TOTP secret to active. Returns false if there was no pending secret to promote (e.g. a lost concurrent confirm). */
|
|
18
27
|
async confirmOtp(dbContext, person) {
|
|
19
|
-
await dbContext.commandBus.execute(new ConfirmOtpCommand.ConfirmOtpCommand(person.id));
|
|
28
|
+
return await dbContext.commandBus.execute(new ConfirmOtpCommand.ConfirmOtpCommand(person.id));
|
|
20
29
|
}
|
|
21
30
|
async disableOtp(dbContext, person) {
|
|
22
31
|
await dbContext.commandBus.execute(new DisableOtpCommand.DisableOtpCommand(person.id));
|
|
23
32
|
}
|
|
24
|
-
|
|
25
|
-
|
|
33
|
+
/** Verifies a token against the person's *active* TOTP secret. */
|
|
34
|
+
async verifyOtp(dbContext, person, token) {
|
|
35
|
+
const resolved = await this.resolveSecret(person.otp_secret, person.otp_secret_version);
|
|
36
|
+
const valid = this.otpAuthenticator.validate(resolved.secretLike, token);
|
|
37
|
+
if (valid && resolved.reEncrypt) {
|
|
38
|
+
try {
|
|
39
|
+
const { oldVersion, base32 } = resolved.reEncrypt;
|
|
40
|
+
const encrypted = await this.providers.encrypt(Buffer.from(base32, "utf8"));
|
|
41
|
+
await dbContext.commandBus.execute(
|
|
42
|
+
new ReEncryptOtpSecretCommand.ReEncryptOtpSecretCommand(person.id, encrypted.value, encrypted.version, oldVersion)
|
|
43
|
+
);
|
|
44
|
+
} catch {
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return valid;
|
|
48
|
+
}
|
|
49
|
+
/** Verifies a token against the person's *pending* TOTP secret (used during enrollment). */
|
|
50
|
+
async verifyPendingOtp(person, token) {
|
|
51
|
+
const resolved = await this.resolveSecret(person.otp_pending_secret, person.otp_pending_version);
|
|
52
|
+
return this.otpAuthenticator.validate(resolved.secretLike, token);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Resolves the stored secret bytes into something the authenticator understands.
|
|
56
|
+
* Version 0 = legacy plaintext otpauth URI. Version >= 1 = encrypted base32 secret.
|
|
57
|
+
*
|
|
58
|
+
* Also surfaces whether the active secret warrants opportunistic re-encryption:
|
|
59
|
+
* version-0 (legacy plaintext) always does; version>=1 does when the encryption
|
|
60
|
+
* layer signals the key has rotated (`needsReEncrypt`).
|
|
61
|
+
*/
|
|
62
|
+
async resolveSecret(secret, version) {
|
|
63
|
+
if (!secret || version === null) {
|
|
26
64
|
throw new OtpError("not configured");
|
|
27
65
|
}
|
|
28
|
-
|
|
66
|
+
if (version === 0) {
|
|
67
|
+
const uri = secret.toString("utf8");
|
|
68
|
+
return {
|
|
69
|
+
secretLike: { uri },
|
|
70
|
+
reEncrypt: { oldVersion: 0, base32: otpauth.URI.parse(uri).secret.base32 }
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
const decrypted = await this.providers.decrypt(secret, version);
|
|
74
|
+
const base32 = decrypted.value.toString("utf8");
|
|
75
|
+
return {
|
|
76
|
+
secretLike: { secret: base32 },
|
|
77
|
+
...decrypted.needsReEncrypt ? { reEncrypt: { oldVersion: version, base32 } } : {}
|
|
78
|
+
};
|
|
29
79
|
}
|
|
30
80
|
}
|
|
31
81
|
class OtpError extends Error {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OtpManager.cjs","sources":["../../../../../../packages/engine-tenant-api/src/model/service/OtpManager.ts"],"sourcesContent":["import { PersonRow } from '../queries'\nimport { ConfirmOtpCommand, DisableOtpCommand, PrepareOtpCommand } from '../commands'\nimport { DatabaseContext } from '../utils'\nimport { OtpAuthenticator, OtpData } from './OtpAuthenticator'\n\nexport class OtpManager {\n\tconstructor(\n\t\tprivate readonly otpAuthenticator: OtpAuthenticator,\n\t) {}\n\n\tasync prepareOtp(dbContext: DatabaseContext, person: PersonRow, label: string): Promise<OtpData> {\n\t\tconst otp = await this.otpAuthenticator.create(person.email ?? person.name ?? 'unnamed', label)\n\t\tawait dbContext.commandBus.execute(new PrepareOtpCommand(person.id, otp.uri))\n\t\treturn otp\n\t}\n\n\tasync confirmOtp(dbContext: DatabaseContext, person: PersonRow): Promise<
|
|
1
|
+
{"version":3,"file":"OtpManager.cjs","sources":["../../../../../../packages/engine-tenant-api/src/model/service/OtpManager.ts"],"sourcesContent":["import { PersonRow } from '../queries/index.js'\nimport { ConfirmOtpCommand, DisableOtpCommand, PrepareOtpCommand, ReEncryptOtpSecretCommand } from '../commands/index.js'\nimport { DatabaseContext } from '../utils/index.js'\nimport { OtpAuthenticator, OtpData } from './OtpAuthenticator.js'\nimport { Providers } from '../providers.js'\nimport { URI } from 'otpauth'\n\ntype SecretLike = { uri: string } | { secret: string }\n\n/**\n * Result of resolving a stored secret: the material the authenticator can\n * validate against, plus (optionally) the base32 secret and the version it was\n * stored under, so a successful verify can opportunistically re-encrypt it.\n */\ntype ResolvedSecret = {\n\tsecretLike: SecretLike\n\t/** Set when the active secret should be re-encrypted after a successful verify. */\n\treEncrypt?: { oldVersion: number; base32: string }\n}\n\nexport class OtpManager {\n\tconstructor(\n\t\tprivate readonly otpAuthenticator: OtpAuthenticator,\n\t\tprivate readonly providers: Pick<Providers, 'decrypt' | 'encrypt' | 'encryptionEnabled'>,\n\t) {}\n\n\tasync prepareOtp(dbContext: DatabaseContext, person: PersonRow, label: string): Promise<OtpData> {\n\t\tconst otp = await this.otpAuthenticator.create(person.email ?? person.name ?? 'unnamed', label)\n\t\tif (this.providers.encryptionEnabled) {\n\t\t\t// A key is configured: store the base32 secret encrypted (version >= 1).\n\t\t\tconst encrypted = await this.providers.encrypt(Buffer.from(otp.secret, 'utf8'))\n\t\t\tawait dbContext.commandBus.execute(new PrepareOtpCommand(person.id, encrypted.value, encrypted.version))\n\t\t} else {\n\t\t\t// No key: store the plaintext otpauth URI as version 0, exactly like legacy\n\t\t\t// (pre-encryption) secrets. Opportunistic re-encryption upgrades it once a key\n\t\t\t// becomes available.\n\t\t\tawait dbContext.commandBus.execute(new PrepareOtpCommand(person.id, Buffer.from(otp.uri, 'utf8'), 0))\n\t\t}\n\t\treturn otp\n\t}\n\n\t/** Promotes the pending TOTP secret to active. Returns false if there was no pending secret to promote (e.g. a lost concurrent confirm). */\n\tasync confirmOtp(dbContext: DatabaseContext, person: PersonRow): Promise<boolean> {\n\t\treturn await dbContext.commandBus.execute(new ConfirmOtpCommand(person.id))\n\t}\n\n\tasync disableOtp(dbContext: DatabaseContext, person: PersonRow): Promise<void> {\n\t\tawait dbContext.commandBus.execute(new DisableOtpCommand(person.id))\n\t}\n\n\t/** Verifies a token against the person's *active* TOTP secret. */\n\tasync verifyOtp(dbContext: DatabaseContext, person: PersonRow, token: string): Promise<boolean> {\n\t\tconst resolved = await this.resolveSecret(person.otp_secret, person.otp_secret_version)\n\t\tconst valid = this.otpAuthenticator.validate(resolved.secretLike, token)\n\t\tif (valid && resolved.reEncrypt) {\n\t\t\t// Best-effort: re-encryption must never affect the verify result and any\n\t\t\t// failure (encrypt or update) is swallowed so the user still signs in.\n\t\t\ttry {\n\t\t\t\tconst { oldVersion, base32 } = resolved.reEncrypt\n\t\t\t\tconst encrypted = await this.providers.encrypt(Buffer.from(base32, 'utf8'))\n\t\t\t\tawait dbContext.commandBus.execute(\n\t\t\t\t\tnew ReEncryptOtpSecretCommand(person.id, encrypted.value, encrypted.version, oldVersion),\n\t\t\t\t)\n\t\t\t} catch {\n\t\t\t\t// ignore — re-encryption is opportunistic\n\t\t\t}\n\t\t}\n\t\treturn valid\n\t}\n\n\t/** Verifies a token against the person's *pending* TOTP secret (used during enrollment). */\n\tasync verifyPendingOtp(person: PersonRow, token: string): Promise<boolean> {\n\t\tconst resolved = await this.resolveSecret(person.otp_pending_secret, person.otp_pending_version)\n\t\treturn this.otpAuthenticator.validate(resolved.secretLike, token)\n\t}\n\n\t/**\n\t * Resolves the stored secret bytes into something the authenticator understands.\n\t * Version 0 = legacy plaintext otpauth URI. Version >= 1 = encrypted base32 secret.\n\t *\n\t * Also surfaces whether the active secret warrants opportunistic re-encryption:\n\t * version-0 (legacy plaintext) always does; version>=1 does when the encryption\n\t * layer signals the key has rotated (`needsReEncrypt`).\n\t */\n\tprivate async resolveSecret(secret: Buffer | null, version: number | null): Promise<ResolvedSecret> {\n\t\tif (!secret || version === null) {\n\t\t\tthrow new OtpError('not configured')\n\t\t}\n\t\tif (version === 0) {\n\t\t\tconst uri = secret.toString('utf8')\n\t\t\treturn {\n\t\t\t\tsecretLike: { uri },\n\t\t\t\treEncrypt: { oldVersion: 0, base32: URI.parse(uri).secret.base32 },\n\t\t\t}\n\t\t}\n\t\tconst decrypted = await this.providers.decrypt(secret, version)\n\t\tconst base32 = decrypted.value.toString('utf8')\n\t\treturn {\n\t\t\tsecretLike: { secret: base32 },\n\t\t\t...(decrypted.needsReEncrypt ? { reEncrypt: { oldVersion: version, base32 } } : {}),\n\t\t}\n\t}\n}\n\nexport class OtpError extends Error {\n}\n"],"names":["PrepareOtpCommand","ConfirmOtpCommand","DisableOtpCommand","ReEncryptOtpSecretCommand","URI"],"mappings":";;;;;;;;;;AAoBO,MAAM,WAAW;AAAA,EACvB,YACkB,kBACA,WAChB;AAFgB,SAAA,mBAAA;AACA,SAAA,YAAA;AAAA,EACf;AAAA,EAEH,MAAM,WAAW,WAA4B,QAAmB,OAAiC;AAChG,UAAM,MAAM,MAAM,KAAK,iBAAiB,OAAO,OAAO,SAAS,OAAO,QAAQ,WAAW,KAAK;AAC9F,QAAI,KAAK,UAAU,mBAAmB;AAErC,YAAM,YAAY,MAAM,KAAK,UAAU,QAAQ,OAAO,KAAK,IAAI,QAAQ,MAAM,CAAC;AAC9E,YAAM,UAAU,WAAW,QAAQ,IAAIA,kBAAAA,kBAAkB,OAAO,IAAI,UAAU,OAAO,UAAU,OAAO,CAAC;AAAA,IACxG,OAAO;AAIN,YAAM,UAAU,WAAW,QAAQ,IAAIA,kBAAAA,kBAAkB,OAAO,IAAI,OAAO,KAAK,IAAI,KAAK,MAAM,GAAG,CAAC,CAAC;AAAA,IACrG;AACA,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,MAAM,WAAW,WAA4B,QAAqC;AACjF,WAAO,MAAM,UAAU,WAAW,QAAQ,IAAIC,oCAAkB,OAAO,EAAE,CAAC;AAAA,EAC3E;AAAA,EAEA,MAAM,WAAW,WAA4B,QAAkC;AAC9E,UAAM,UAAU,WAAW,QAAQ,IAAIC,kBAAAA,kBAAkB,OAAO,EAAE,CAAC;AAAA,EACpE;AAAA;AAAA,EAGA,MAAM,UAAU,WAA4B,QAAmB,OAAiC;AAC/F,UAAM,WAAW,MAAM,KAAK,cAAc,OAAO,YAAY,OAAO,kBAAkB;AACtF,UAAM,QAAQ,KAAK,iBAAiB,SAAS,SAAS,YAAY,KAAK;AACvE,QAAI,SAAS,SAAS,WAAW;AAGhC,UAAI;AACH,cAAM,EAAE,YAAY,OAAA,IAAW,SAAS;AACxC,cAAM,YAAY,MAAM,KAAK,UAAU,QAAQ,OAAO,KAAK,QAAQ,MAAM,CAAC;AAC1E,cAAM,UAAU,WAAW;AAAA,UAC1B,IAAIC,0BAAAA,0BAA0B,OAAO,IAAI,UAAU,OAAO,UAAU,SAAS,UAAU;AAAA,QAAA;AAAA,MAEzF,QAAQ;AAAA,MAER;AAAA,IACD;AACA,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,MAAM,iBAAiB,QAAmB,OAAiC;AAC1E,UAAM,WAAW,MAAM,KAAK,cAAc,OAAO,oBAAoB,OAAO,mBAAmB;AAC/F,WAAO,KAAK,iBAAiB,SAAS,SAAS,YAAY,KAAK;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAc,cAAc,QAAuB,SAAiD;AACnG,QAAI,CAAC,UAAU,YAAY,MAAM;AAChC,YAAM,IAAI,SAAS,gBAAgB;AAAA,IACpC;AACA,QAAI,YAAY,GAAG;AAClB,YAAM,MAAM,OAAO,SAAS,MAAM;AAClC,aAAO;AAAA,QACN,YAAY,EAAE,IAAA;AAAA,QACd,WAAW,EAAE,YAAY,GAAG,QAAQC,QAAAA,IAAI,MAAM,GAAG,EAAE,OAAO,OAAA;AAAA,MAAO;AAAA,IAEnE;AACA,UAAM,YAAY,MAAM,KAAK,UAAU,QAAQ,QAAQ,OAAO;AAC9D,UAAM,SAAS,UAAU,MAAM,SAAS,MAAM;AAC9C,WAAO;AAAA,MACN,YAAY,EAAE,QAAQ,OAAA;AAAA,MACtB,GAAI,UAAU,iBAAiB,EAAE,WAAW,EAAE,YAAY,SAAS,OAAA,MAAa,CAAA;AAAA,IAAC;AAAA,EAEnF;AACD;AAEO,MAAM,iBAAiB,MAAM;AACpC;;;"}
|
|
@@ -4,26 +4,76 @@ import "node:crypto";
|
|
|
4
4
|
import { ConfirmOtpCommand } from "../commands/otp/ConfirmOtpCommand.js";
|
|
5
5
|
import { DisableOtpCommand } from "../commands/otp/DisableOtpCommand.js";
|
|
6
6
|
import { PrepareOtpCommand } from "../commands/otp/PrepareOtpCommand.js";
|
|
7
|
+
import { ReEncryptOtpSecretCommand } from "../commands/otp/ReEncryptOtpSecretCommand.js";
|
|
8
|
+
import { URI } from "otpauth";
|
|
7
9
|
class OtpManager {
|
|
8
|
-
constructor(otpAuthenticator) {
|
|
10
|
+
constructor(otpAuthenticator, providers) {
|
|
9
11
|
this.otpAuthenticator = otpAuthenticator;
|
|
12
|
+
this.providers = providers;
|
|
10
13
|
}
|
|
11
14
|
async prepareOtp(dbContext, person, label) {
|
|
12
15
|
const otp = await this.otpAuthenticator.create(person.email ?? person.name ?? "unnamed", label);
|
|
13
|
-
|
|
16
|
+
if (this.providers.encryptionEnabled) {
|
|
17
|
+
const encrypted = await this.providers.encrypt(Buffer.from(otp.secret, "utf8"));
|
|
18
|
+
await dbContext.commandBus.execute(new PrepareOtpCommand(person.id, encrypted.value, encrypted.version));
|
|
19
|
+
} else {
|
|
20
|
+
await dbContext.commandBus.execute(new PrepareOtpCommand(person.id, Buffer.from(otp.uri, "utf8"), 0));
|
|
21
|
+
}
|
|
14
22
|
return otp;
|
|
15
23
|
}
|
|
24
|
+
/** Promotes the pending TOTP secret to active. Returns false if there was no pending secret to promote (e.g. a lost concurrent confirm). */
|
|
16
25
|
async confirmOtp(dbContext, person) {
|
|
17
|
-
await dbContext.commandBus.execute(new ConfirmOtpCommand(person.id));
|
|
26
|
+
return await dbContext.commandBus.execute(new ConfirmOtpCommand(person.id));
|
|
18
27
|
}
|
|
19
28
|
async disableOtp(dbContext, person) {
|
|
20
29
|
await dbContext.commandBus.execute(new DisableOtpCommand(person.id));
|
|
21
30
|
}
|
|
22
|
-
|
|
23
|
-
|
|
31
|
+
/** Verifies a token against the person's *active* TOTP secret. */
|
|
32
|
+
async verifyOtp(dbContext, person, token) {
|
|
33
|
+
const resolved = await this.resolveSecret(person.otp_secret, person.otp_secret_version);
|
|
34
|
+
const valid = this.otpAuthenticator.validate(resolved.secretLike, token);
|
|
35
|
+
if (valid && resolved.reEncrypt) {
|
|
36
|
+
try {
|
|
37
|
+
const { oldVersion, base32 } = resolved.reEncrypt;
|
|
38
|
+
const encrypted = await this.providers.encrypt(Buffer.from(base32, "utf8"));
|
|
39
|
+
await dbContext.commandBus.execute(
|
|
40
|
+
new ReEncryptOtpSecretCommand(person.id, encrypted.value, encrypted.version, oldVersion)
|
|
41
|
+
);
|
|
42
|
+
} catch {
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return valid;
|
|
46
|
+
}
|
|
47
|
+
/** Verifies a token against the person's *pending* TOTP secret (used during enrollment). */
|
|
48
|
+
async verifyPendingOtp(person, token) {
|
|
49
|
+
const resolved = await this.resolveSecret(person.otp_pending_secret, person.otp_pending_version);
|
|
50
|
+
return this.otpAuthenticator.validate(resolved.secretLike, token);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Resolves the stored secret bytes into something the authenticator understands.
|
|
54
|
+
* Version 0 = legacy plaintext otpauth URI. Version >= 1 = encrypted base32 secret.
|
|
55
|
+
*
|
|
56
|
+
* Also surfaces whether the active secret warrants opportunistic re-encryption:
|
|
57
|
+
* version-0 (legacy plaintext) always does; version>=1 does when the encryption
|
|
58
|
+
* layer signals the key has rotated (`needsReEncrypt`).
|
|
59
|
+
*/
|
|
60
|
+
async resolveSecret(secret, version) {
|
|
61
|
+
if (!secret || version === null) {
|
|
24
62
|
throw new OtpError("not configured");
|
|
25
63
|
}
|
|
26
|
-
|
|
64
|
+
if (version === 0) {
|
|
65
|
+
const uri = secret.toString("utf8");
|
|
66
|
+
return {
|
|
67
|
+
secretLike: { uri },
|
|
68
|
+
reEncrypt: { oldVersion: 0, base32: URI.parse(uri).secret.base32 }
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
const decrypted = await this.providers.decrypt(secret, version);
|
|
72
|
+
const base32 = decrypted.value.toString("utf8");
|
|
73
|
+
return {
|
|
74
|
+
secretLike: { secret: base32 },
|
|
75
|
+
...decrypted.needsReEncrypt ? { reEncrypt: { oldVersion: version, base32 } } : {}
|
|
76
|
+
};
|
|
27
77
|
}
|
|
28
78
|
}
|
|
29
79
|
class OtpError extends Error {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OtpManager.js","sources":["../../../../../../packages/engine-tenant-api/src/model/service/OtpManager.ts"],"sourcesContent":["import { PersonRow } from '../queries'\nimport { ConfirmOtpCommand, DisableOtpCommand, PrepareOtpCommand } from '../commands'\nimport { DatabaseContext } from '../utils'\nimport { OtpAuthenticator, OtpData } from './OtpAuthenticator'\n\nexport class OtpManager {\n\tconstructor(\n\t\tprivate readonly otpAuthenticator: OtpAuthenticator,\n\t) {}\n\n\tasync prepareOtp(dbContext: DatabaseContext, person: PersonRow, label: string): Promise<OtpData> {\n\t\tconst otp = await this.otpAuthenticator.create(person.email ?? person.name ?? 'unnamed', label)\n\t\tawait dbContext.commandBus.execute(new PrepareOtpCommand(person.id, otp.uri))\n\t\treturn otp\n\t}\n\n\tasync confirmOtp(dbContext: DatabaseContext, person: PersonRow): Promise<
|
|
1
|
+
{"version":3,"file":"OtpManager.js","sources":["../../../../../../packages/engine-tenant-api/src/model/service/OtpManager.ts"],"sourcesContent":["import { PersonRow } from '../queries/index.js'\nimport { ConfirmOtpCommand, DisableOtpCommand, PrepareOtpCommand, ReEncryptOtpSecretCommand } from '../commands/index.js'\nimport { DatabaseContext } from '../utils/index.js'\nimport { OtpAuthenticator, OtpData } from './OtpAuthenticator.js'\nimport { Providers } from '../providers.js'\nimport { URI } from 'otpauth'\n\ntype SecretLike = { uri: string } | { secret: string }\n\n/**\n * Result of resolving a stored secret: the material the authenticator can\n * validate against, plus (optionally) the base32 secret and the version it was\n * stored under, so a successful verify can opportunistically re-encrypt it.\n */\ntype ResolvedSecret = {\n\tsecretLike: SecretLike\n\t/** Set when the active secret should be re-encrypted after a successful verify. */\n\treEncrypt?: { oldVersion: number; base32: string }\n}\n\nexport class OtpManager {\n\tconstructor(\n\t\tprivate readonly otpAuthenticator: OtpAuthenticator,\n\t\tprivate readonly providers: Pick<Providers, 'decrypt' | 'encrypt' | 'encryptionEnabled'>,\n\t) {}\n\n\tasync prepareOtp(dbContext: DatabaseContext, person: PersonRow, label: string): Promise<OtpData> {\n\t\tconst otp = await this.otpAuthenticator.create(person.email ?? person.name ?? 'unnamed', label)\n\t\tif (this.providers.encryptionEnabled) {\n\t\t\t// A key is configured: store the base32 secret encrypted (version >= 1).\n\t\t\tconst encrypted = await this.providers.encrypt(Buffer.from(otp.secret, 'utf8'))\n\t\t\tawait dbContext.commandBus.execute(new PrepareOtpCommand(person.id, encrypted.value, encrypted.version))\n\t\t} else {\n\t\t\t// No key: store the plaintext otpauth URI as version 0, exactly like legacy\n\t\t\t// (pre-encryption) secrets. Opportunistic re-encryption upgrades it once a key\n\t\t\t// becomes available.\n\t\t\tawait dbContext.commandBus.execute(new PrepareOtpCommand(person.id, Buffer.from(otp.uri, 'utf8'), 0))\n\t\t}\n\t\treturn otp\n\t}\n\n\t/** Promotes the pending TOTP secret to active. Returns false if there was no pending secret to promote (e.g. a lost concurrent confirm). */\n\tasync confirmOtp(dbContext: DatabaseContext, person: PersonRow): Promise<boolean> {\n\t\treturn await dbContext.commandBus.execute(new ConfirmOtpCommand(person.id))\n\t}\n\n\tasync disableOtp(dbContext: DatabaseContext, person: PersonRow): Promise<void> {\n\t\tawait dbContext.commandBus.execute(new DisableOtpCommand(person.id))\n\t}\n\n\t/** Verifies a token against the person's *active* TOTP secret. */\n\tasync verifyOtp(dbContext: DatabaseContext, person: PersonRow, token: string): Promise<boolean> {\n\t\tconst resolved = await this.resolveSecret(person.otp_secret, person.otp_secret_version)\n\t\tconst valid = this.otpAuthenticator.validate(resolved.secretLike, token)\n\t\tif (valid && resolved.reEncrypt) {\n\t\t\t// Best-effort: re-encryption must never affect the verify result and any\n\t\t\t// failure (encrypt or update) is swallowed so the user still signs in.\n\t\t\ttry {\n\t\t\t\tconst { oldVersion, base32 } = resolved.reEncrypt\n\t\t\t\tconst encrypted = await this.providers.encrypt(Buffer.from(base32, 'utf8'))\n\t\t\t\tawait dbContext.commandBus.execute(\n\t\t\t\t\tnew ReEncryptOtpSecretCommand(person.id, encrypted.value, encrypted.version, oldVersion),\n\t\t\t\t)\n\t\t\t} catch {\n\t\t\t\t// ignore — re-encryption is opportunistic\n\t\t\t}\n\t\t}\n\t\treturn valid\n\t}\n\n\t/** Verifies a token against the person's *pending* TOTP secret (used during enrollment). */\n\tasync verifyPendingOtp(person: PersonRow, token: string): Promise<boolean> {\n\t\tconst resolved = await this.resolveSecret(person.otp_pending_secret, person.otp_pending_version)\n\t\treturn this.otpAuthenticator.validate(resolved.secretLike, token)\n\t}\n\n\t/**\n\t * Resolves the stored secret bytes into something the authenticator understands.\n\t * Version 0 = legacy plaintext otpauth URI. Version >= 1 = encrypted base32 secret.\n\t *\n\t * Also surfaces whether the active secret warrants opportunistic re-encryption:\n\t * version-0 (legacy plaintext) always does; version>=1 does when the encryption\n\t * layer signals the key has rotated (`needsReEncrypt`).\n\t */\n\tprivate async resolveSecret(secret: Buffer | null, version: number | null): Promise<ResolvedSecret> {\n\t\tif (!secret || version === null) {\n\t\t\tthrow new OtpError('not configured')\n\t\t}\n\t\tif (version === 0) {\n\t\t\tconst uri = secret.toString('utf8')\n\t\t\treturn {\n\t\t\t\tsecretLike: { uri },\n\t\t\t\treEncrypt: { oldVersion: 0, base32: URI.parse(uri).secret.base32 },\n\t\t\t}\n\t\t}\n\t\tconst decrypted = await this.providers.decrypt(secret, version)\n\t\tconst base32 = decrypted.value.toString('utf8')\n\t\treturn {\n\t\t\tsecretLike: { secret: base32 },\n\t\t\t...(decrypted.needsReEncrypt ? { reEncrypt: { oldVersion: version, base32 } } : {}),\n\t\t}\n\t}\n}\n\nexport class OtpError extends Error {\n}\n"],"names":[],"mappings":";;;;;;;;AAoBO,MAAM,WAAW;AAAA,EACvB,YACkB,kBACA,WAChB;AAFgB,SAAA,mBAAA;AACA,SAAA,YAAA;AAAA,EACf;AAAA,EAEH,MAAM,WAAW,WAA4B,QAAmB,OAAiC;AAChG,UAAM,MAAM,MAAM,KAAK,iBAAiB,OAAO,OAAO,SAAS,OAAO,QAAQ,WAAW,KAAK;AAC9F,QAAI,KAAK,UAAU,mBAAmB;AAErC,YAAM,YAAY,MAAM,KAAK,UAAU,QAAQ,OAAO,KAAK,IAAI,QAAQ,MAAM,CAAC;AAC9E,YAAM,UAAU,WAAW,QAAQ,IAAI,kBAAkB,OAAO,IAAI,UAAU,OAAO,UAAU,OAAO,CAAC;AAAA,IACxG,OAAO;AAIN,YAAM,UAAU,WAAW,QAAQ,IAAI,kBAAkB,OAAO,IAAI,OAAO,KAAK,IAAI,KAAK,MAAM,GAAG,CAAC,CAAC;AAAA,IACrG;AACA,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,MAAM,WAAW,WAA4B,QAAqC;AACjF,WAAO,MAAM,UAAU,WAAW,QAAQ,IAAI,kBAAkB,OAAO,EAAE,CAAC;AAAA,EAC3E;AAAA,EAEA,MAAM,WAAW,WAA4B,QAAkC;AAC9E,UAAM,UAAU,WAAW,QAAQ,IAAI,kBAAkB,OAAO,EAAE,CAAC;AAAA,EACpE;AAAA;AAAA,EAGA,MAAM,UAAU,WAA4B,QAAmB,OAAiC;AAC/F,UAAM,WAAW,MAAM,KAAK,cAAc,OAAO,YAAY,OAAO,kBAAkB;AACtF,UAAM,QAAQ,KAAK,iBAAiB,SAAS,SAAS,YAAY,KAAK;AACvE,QAAI,SAAS,SAAS,WAAW;AAGhC,UAAI;AACH,cAAM,EAAE,YAAY,OAAA,IAAW,SAAS;AACxC,cAAM,YAAY,MAAM,KAAK,UAAU,QAAQ,OAAO,KAAK,QAAQ,MAAM,CAAC;AAC1E,cAAM,UAAU,WAAW;AAAA,UAC1B,IAAI,0BAA0B,OAAO,IAAI,UAAU,OAAO,UAAU,SAAS,UAAU;AAAA,QAAA;AAAA,MAEzF,QAAQ;AAAA,MAER;AAAA,IACD;AACA,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,MAAM,iBAAiB,QAAmB,OAAiC;AAC1E,UAAM,WAAW,MAAM,KAAK,cAAc,OAAO,oBAAoB,OAAO,mBAAmB;AAC/F,WAAO,KAAK,iBAAiB,SAAS,SAAS,YAAY,KAAK;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAc,cAAc,QAAuB,SAAiD;AACnG,QAAI,CAAC,UAAU,YAAY,MAAM;AAChC,YAAM,IAAI,SAAS,gBAAgB;AAAA,IACpC;AACA,QAAI,YAAY,GAAG;AAClB,YAAM,MAAM,OAAO,SAAS,MAAM;AAClC,aAAO;AAAA,QACN,YAAY,EAAE,IAAA;AAAA,QACd,WAAW,EAAE,YAAY,GAAG,QAAQ,IAAI,MAAM,GAAG,EAAE,OAAO,OAAA;AAAA,MAAO;AAAA,IAEnE;AACA,UAAM,YAAY,MAAM,KAAK,UAAU,QAAQ,QAAQ,OAAO;AAC9D,UAAM,SAAS,UAAU,MAAM,SAAS,MAAM;AAC9C,WAAO;AAAA,MACN,YAAY,EAAE,QAAQ,OAAA;AAAA,MACtB,GAAI,UAAU,iBAAiB,EAAE,WAAW,EAAE,YAAY,SAAS,OAAA,MAAa,CAAA;AAAA,IAAC;AAAA,EAEnF;AACD;AAEO,MAAM,iBAAiB,MAAM;AACpC;"}
|
|
@@ -18,7 +18,7 @@ class PasswordChangeManager {
|
|
|
18
18
|
this.passwordStrengthVerifier = passwordStrengthVerifier;
|
|
19
19
|
}
|
|
20
20
|
async changePassword(dbContext, person, password) {
|
|
21
|
-
const config = await dbContext.queryHandler.fetch(new ConfigurationQuery.ConfigurationQuery());
|
|
21
|
+
const config = await dbContext.queryHandler.fetch(new ConfigurationQuery.ConfigurationQuery(dbContext.providers));
|
|
22
22
|
const passwordVerifyResult = await this.passwordStrengthVerifier.verify(password, config.password, "TOO_WEAK");
|
|
23
23
|
if (!passwordVerifyResult.ok) {
|
|
24
24
|
return passwordVerifyResult;
|
|
@@ -27,7 +27,7 @@ class PasswordChangeManager {
|
|
|
27
27
|
return new Response.ResponseOk(null);
|
|
28
28
|
}
|
|
29
29
|
async changeMyPassword(dbContext, person, currentPassword, password) {
|
|
30
|
-
const config = await dbContext.queryHandler.fetch(new ConfigurationQuery.ConfigurationQuery());
|
|
30
|
+
const config = await dbContext.queryHandler.fetch(new ConfigurationQuery.ConfigurationQuery(dbContext.providers));
|
|
31
31
|
const passwordVerifyResult = await this.passwordStrengthVerifier.verify(password, config.password, "TOO_WEAK");
|
|
32
32
|
if (!passwordVerifyResult.ok) {
|
|
33
33
|
return passwordVerifyResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PasswordChangeManager.cjs","sources":["../../../../../../packages/engine-tenant-api/src/model/service/PasswordChangeManager.ts"],"sourcesContent":["import { ChangeMyPasswordErrorCode, ChangePasswordErrorCode, WeakPasswordReason } from '../../schema'\nimport { ChangePasswordCommand } from '../commands'\nimport { Response, ResponseError, ResponseOk } from '../utils/Response'\nimport { ConfigurationQuery, PersonRow } from '../queries'\nimport { Providers } from '../providers'\nimport { DatabaseContext } from '../utils'\nimport { PasswordStrengthValidator } from './PasswordStrengthValidator'\n\nclass PasswordChangeManager {\n\tconstructor(\n\t\tprivate readonly providers: Providers,\n\t\tprivate readonly passwordStrengthVerifier: PasswordStrengthValidator,\n\t) {}\n\n\tasync changePassword(\n\t\tdbContext: DatabaseContext,\n\t\tperson: PersonRow,\n\t\tpassword: string,\n\t): Promise<PasswordChangeManager.PasswordChangeResponse<ChangePasswordErrorCode>> {\n\t\tconst config = await dbContext.queryHandler.fetch(new ConfigurationQuery())\n\t\tconst passwordVerifyResult = await this.passwordStrengthVerifier.verify(password, config.password, 'TOO_WEAK')\n\t\tif (!passwordVerifyResult.ok) {\n\t\t\treturn passwordVerifyResult\n\t\t}\n\t\tawait dbContext.commandBus.execute(new ChangePasswordCommand(person.id, password))\n\t\treturn new ResponseOk(null)\n\t}\n\n\tasync changeMyPassword(\n\t\tdbContext: DatabaseContext,\n\t\tperson: PersonRow,\n\t\tcurrentPassword: string,\n\t\tpassword: string,\n\t): Promise<PasswordChangeManager.PasswordChangeResponse<ChangeMyPasswordErrorCode>> {\n\t\tconst config = await dbContext.queryHandler.fetch(new ConfigurationQuery())\n\t\tconst passwordVerifyResult = await this.passwordStrengthVerifier.verify(password, config.password, 'TOO_WEAK')\n\t\tif (!passwordVerifyResult.ok) {\n\t\t\treturn passwordVerifyResult\n\t\t}\n\t\tif (!person.password_hash) {\n\t\t\treturn new ResponseError('NO_PASSWORD_SET', 'No password set')\n\t\t}\n\t\tif (!(await this.providers.bcryptCompare(currentPassword, person.password_hash))) {\n\t\t\treturn new ResponseError('INVALID_PASSWORD', 'Password does not match')\n\t\t}\n\n\t\tawait dbContext.commandBus.execute(new ChangePasswordCommand(person.id, password))\n\t\treturn new ResponseOk(null)\n\t}\n}\n\nnamespace PasswordChangeManager {\n\texport type PasswordChangeResponse<T extends ChangePasswordErrorCode | ChangeMyPasswordErrorCode> = Response<null, T, {\n\t\tweakPasswordReasons?: WeakPasswordReason[]\n\t}>\n}\n\nexport { PasswordChangeManager }\n"],"names":["ConfigurationQuery","ChangePasswordCommand","ResponseOk","ResponseError"],"mappings":";;;;;;;;;;;;;;AAQA,MAAM,sBAAsB;AAAA,EAC3B,YACkB,WACA,0BAChB;AAFgB,SAAA,YAAA;AACA,SAAA,2BAAA;AAAA,EACf;AAAA,EAEH,MAAM,eACL,WACA,QACA,UACiF;AACjF,UAAM,SAAS,MAAM,UAAU,aAAa,MAAM,IAAIA,mBAAAA,
|
|
1
|
+
{"version":3,"file":"PasswordChangeManager.cjs","sources":["../../../../../../packages/engine-tenant-api/src/model/service/PasswordChangeManager.ts"],"sourcesContent":["import { ChangeMyPasswordErrorCode, ChangePasswordErrorCode, WeakPasswordReason } from '../../schema/index.js'\nimport { ChangePasswordCommand } from '../commands/index.js'\nimport { Response, ResponseError, ResponseOk } from '../utils/Response.js'\nimport { ConfigurationQuery, PersonRow } from '../queries/index.js'\nimport { Providers } from '../providers.js'\nimport { DatabaseContext } from '../utils/index.js'\nimport { PasswordStrengthValidator } from './PasswordStrengthValidator.js'\n\nclass PasswordChangeManager {\n\tconstructor(\n\t\tprivate readonly providers: Providers,\n\t\tprivate readonly passwordStrengthVerifier: PasswordStrengthValidator,\n\t) {}\n\n\tasync changePassword(\n\t\tdbContext: DatabaseContext,\n\t\tperson: PersonRow,\n\t\tpassword: string,\n\t): Promise<PasswordChangeManager.PasswordChangeResponse<ChangePasswordErrorCode>> {\n\t\tconst config = await dbContext.queryHandler.fetch(new ConfigurationQuery(dbContext.providers))\n\t\tconst passwordVerifyResult = await this.passwordStrengthVerifier.verify(password, config.password, 'TOO_WEAK')\n\t\tif (!passwordVerifyResult.ok) {\n\t\t\treturn passwordVerifyResult\n\t\t}\n\t\tawait dbContext.commandBus.execute(new ChangePasswordCommand(person.id, password))\n\t\treturn new ResponseOk(null)\n\t}\n\n\tasync changeMyPassword(\n\t\tdbContext: DatabaseContext,\n\t\tperson: PersonRow,\n\t\tcurrentPassword: string,\n\t\tpassword: string,\n\t): Promise<PasswordChangeManager.PasswordChangeResponse<ChangeMyPasswordErrorCode>> {\n\t\tconst config = await dbContext.queryHandler.fetch(new ConfigurationQuery(dbContext.providers))\n\t\tconst passwordVerifyResult = await this.passwordStrengthVerifier.verify(password, config.password, 'TOO_WEAK')\n\t\tif (!passwordVerifyResult.ok) {\n\t\t\treturn passwordVerifyResult\n\t\t}\n\t\tif (!person.password_hash) {\n\t\t\treturn new ResponseError('NO_PASSWORD_SET', 'No password set')\n\t\t}\n\t\tif (!(await this.providers.bcryptCompare(currentPassword, person.password_hash))) {\n\t\t\treturn new ResponseError('INVALID_PASSWORD', 'Password does not match')\n\t\t}\n\n\t\tawait dbContext.commandBus.execute(new ChangePasswordCommand(person.id, password))\n\t\treturn new ResponseOk(null)\n\t}\n}\n\nnamespace PasswordChangeManager {\n\texport type PasswordChangeResponse<T extends ChangePasswordErrorCode | ChangeMyPasswordErrorCode> = Response<null, T, {\n\t\tweakPasswordReasons?: WeakPasswordReason[]\n\t}>\n}\n\nexport { PasswordChangeManager }\n"],"names":["ConfigurationQuery","ChangePasswordCommand","ResponseOk","ResponseError"],"mappings":";;;;;;;;;;;;;;AAQA,MAAM,sBAAsB;AAAA,EAC3B,YACkB,WACA,0BAChB;AAFgB,SAAA,YAAA;AACA,SAAA,2BAAA;AAAA,EACf;AAAA,EAEH,MAAM,eACL,WACA,QACA,UACiF;AACjF,UAAM,SAAS,MAAM,UAAU,aAAa,MAAM,IAAIA,mBAAAA,mBAAmB,UAAU,SAAS,CAAC;AAC7F,UAAM,uBAAuB,MAAM,KAAK,yBAAyB,OAAO,UAAU,OAAO,UAAU,UAAU;AAC7G,QAAI,CAAC,qBAAqB,IAAI;AAC7B,aAAO;AAAA,IACR;AACA,UAAM,UAAU,WAAW,QAAQ,IAAIC,sBAAAA,sBAAsB,OAAO,IAAI,QAAQ,CAAC;AACjF,WAAO,IAAIC,SAAAA,WAAW,IAAI;AAAA,EAC3B;AAAA,EAEA,MAAM,iBACL,WACA,QACA,iBACA,UACmF;AACnF,UAAM,SAAS,MAAM,UAAU,aAAa,MAAM,IAAIF,mBAAAA,mBAAmB,UAAU,SAAS,CAAC;AAC7F,UAAM,uBAAuB,MAAM,KAAK,yBAAyB,OAAO,UAAU,OAAO,UAAU,UAAU;AAC7G,QAAI,CAAC,qBAAqB,IAAI;AAC7B,aAAO;AAAA,IACR;AACA,QAAI,CAAC,OAAO,eAAe;AAC1B,aAAO,IAAIG,SAAAA,cAAc,mBAAmB,iBAAiB;AAAA,IAC9D;AACA,QAAI,CAAE,MAAM,KAAK,UAAU,cAAc,iBAAiB,OAAO,aAAa,GAAI;AACjF,aAAO,IAAIA,SAAAA,cAAc,oBAAoB,yBAAyB;AAAA,IACvE;AAEA,UAAM,UAAU,WAAW,QAAQ,IAAIF,sBAAAA,sBAAsB,OAAO,IAAI,QAAQ,CAAC;AACjF,WAAO,IAAIC,SAAAA,WAAW,IAAI;AAAA,EAC3B;AACD;;"}
|
|
@@ -16,7 +16,7 @@ class PasswordChangeManager {
|
|
|
16
16
|
this.passwordStrengthVerifier = passwordStrengthVerifier;
|
|
17
17
|
}
|
|
18
18
|
async changePassword(dbContext, person, password) {
|
|
19
|
-
const config = await dbContext.queryHandler.fetch(new ConfigurationQuery());
|
|
19
|
+
const config = await dbContext.queryHandler.fetch(new ConfigurationQuery(dbContext.providers));
|
|
20
20
|
const passwordVerifyResult = await this.passwordStrengthVerifier.verify(password, config.password, "TOO_WEAK");
|
|
21
21
|
if (!passwordVerifyResult.ok) {
|
|
22
22
|
return passwordVerifyResult;
|
|
@@ -25,7 +25,7 @@ class PasswordChangeManager {
|
|
|
25
25
|
return new ResponseOk(null);
|
|
26
26
|
}
|
|
27
27
|
async changeMyPassword(dbContext, person, currentPassword, password) {
|
|
28
|
-
const config = await dbContext.queryHandler.fetch(new ConfigurationQuery());
|
|
28
|
+
const config = await dbContext.queryHandler.fetch(new ConfigurationQuery(dbContext.providers));
|
|
29
29
|
const passwordVerifyResult = await this.passwordStrengthVerifier.verify(password, config.password, "TOO_WEAK");
|
|
30
30
|
if (!passwordVerifyResult.ok) {
|
|
31
31
|
return passwordVerifyResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PasswordChangeManager.js","sources":["../../../../../../packages/engine-tenant-api/src/model/service/PasswordChangeManager.ts"],"sourcesContent":["import { ChangeMyPasswordErrorCode, ChangePasswordErrorCode, WeakPasswordReason } from '../../schema'\nimport { ChangePasswordCommand } from '../commands'\nimport { Response, ResponseError, ResponseOk } from '../utils/Response'\nimport { ConfigurationQuery, PersonRow } from '../queries'\nimport { Providers } from '../providers'\nimport { DatabaseContext } from '../utils'\nimport { PasswordStrengthValidator } from './PasswordStrengthValidator'\n\nclass PasswordChangeManager {\n\tconstructor(\n\t\tprivate readonly providers: Providers,\n\t\tprivate readonly passwordStrengthVerifier: PasswordStrengthValidator,\n\t) {}\n\n\tasync changePassword(\n\t\tdbContext: DatabaseContext,\n\t\tperson: PersonRow,\n\t\tpassword: string,\n\t): Promise<PasswordChangeManager.PasswordChangeResponse<ChangePasswordErrorCode>> {\n\t\tconst config = await dbContext.queryHandler.fetch(new ConfigurationQuery())\n\t\tconst passwordVerifyResult = await this.passwordStrengthVerifier.verify(password, config.password, 'TOO_WEAK')\n\t\tif (!passwordVerifyResult.ok) {\n\t\t\treturn passwordVerifyResult\n\t\t}\n\t\tawait dbContext.commandBus.execute(new ChangePasswordCommand(person.id, password))\n\t\treturn new ResponseOk(null)\n\t}\n\n\tasync changeMyPassword(\n\t\tdbContext: DatabaseContext,\n\t\tperson: PersonRow,\n\t\tcurrentPassword: string,\n\t\tpassword: string,\n\t): Promise<PasswordChangeManager.PasswordChangeResponse<ChangeMyPasswordErrorCode>> {\n\t\tconst config = await dbContext.queryHandler.fetch(new ConfigurationQuery())\n\t\tconst passwordVerifyResult = await this.passwordStrengthVerifier.verify(password, config.password, 'TOO_WEAK')\n\t\tif (!passwordVerifyResult.ok) {\n\t\t\treturn passwordVerifyResult\n\t\t}\n\t\tif (!person.password_hash) {\n\t\t\treturn new ResponseError('NO_PASSWORD_SET', 'No password set')\n\t\t}\n\t\tif (!(await this.providers.bcryptCompare(currentPassword, person.password_hash))) {\n\t\t\treturn new ResponseError('INVALID_PASSWORD', 'Password does not match')\n\t\t}\n\n\t\tawait dbContext.commandBus.execute(new ChangePasswordCommand(person.id, password))\n\t\treturn new ResponseOk(null)\n\t}\n}\n\nnamespace PasswordChangeManager {\n\texport type PasswordChangeResponse<T extends ChangePasswordErrorCode | ChangeMyPasswordErrorCode> = Response<null, T, {\n\t\tweakPasswordReasons?: WeakPasswordReason[]\n\t}>\n}\n\nexport { PasswordChangeManager }\n"],"names":[],"mappings":";;;;;;;;;;;;AAQA,MAAM,sBAAsB;AAAA,EAC3B,YACkB,WACA,0BAChB;AAFgB,SAAA,YAAA;AACA,SAAA,2BAAA;AAAA,EACf;AAAA,EAEH,MAAM,eACL,WACA,QACA,UACiF;AACjF,UAAM,SAAS,MAAM,UAAU,aAAa,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"PasswordChangeManager.js","sources":["../../../../../../packages/engine-tenant-api/src/model/service/PasswordChangeManager.ts"],"sourcesContent":["import { ChangeMyPasswordErrorCode, ChangePasswordErrorCode, WeakPasswordReason } from '../../schema/index.js'\nimport { ChangePasswordCommand } from '../commands/index.js'\nimport { Response, ResponseError, ResponseOk } from '../utils/Response.js'\nimport { ConfigurationQuery, PersonRow } from '../queries/index.js'\nimport { Providers } from '../providers.js'\nimport { DatabaseContext } from '../utils/index.js'\nimport { PasswordStrengthValidator } from './PasswordStrengthValidator.js'\n\nclass PasswordChangeManager {\n\tconstructor(\n\t\tprivate readonly providers: Providers,\n\t\tprivate readonly passwordStrengthVerifier: PasswordStrengthValidator,\n\t) {}\n\n\tasync changePassword(\n\t\tdbContext: DatabaseContext,\n\t\tperson: PersonRow,\n\t\tpassword: string,\n\t): Promise<PasswordChangeManager.PasswordChangeResponse<ChangePasswordErrorCode>> {\n\t\tconst config = await dbContext.queryHandler.fetch(new ConfigurationQuery(dbContext.providers))\n\t\tconst passwordVerifyResult = await this.passwordStrengthVerifier.verify(password, config.password, 'TOO_WEAK')\n\t\tif (!passwordVerifyResult.ok) {\n\t\t\treturn passwordVerifyResult\n\t\t}\n\t\tawait dbContext.commandBus.execute(new ChangePasswordCommand(person.id, password))\n\t\treturn new ResponseOk(null)\n\t}\n\n\tasync changeMyPassword(\n\t\tdbContext: DatabaseContext,\n\t\tperson: PersonRow,\n\t\tcurrentPassword: string,\n\t\tpassword: string,\n\t): Promise<PasswordChangeManager.PasswordChangeResponse<ChangeMyPasswordErrorCode>> {\n\t\tconst config = await dbContext.queryHandler.fetch(new ConfigurationQuery(dbContext.providers))\n\t\tconst passwordVerifyResult = await this.passwordStrengthVerifier.verify(password, config.password, 'TOO_WEAK')\n\t\tif (!passwordVerifyResult.ok) {\n\t\t\treturn passwordVerifyResult\n\t\t}\n\t\tif (!person.password_hash) {\n\t\t\treturn new ResponseError('NO_PASSWORD_SET', 'No password set')\n\t\t}\n\t\tif (!(await this.providers.bcryptCompare(currentPassword, person.password_hash))) {\n\t\t\treturn new ResponseError('INVALID_PASSWORD', 'Password does not match')\n\t\t}\n\n\t\tawait dbContext.commandBus.execute(new ChangePasswordCommand(person.id, password))\n\t\treturn new ResponseOk(null)\n\t}\n}\n\nnamespace PasswordChangeManager {\n\texport type PasswordChangeResponse<T extends ChangePasswordErrorCode | ChangeMyPasswordErrorCode> = Response<null, T, {\n\t\tweakPasswordReasons?: WeakPasswordReason[]\n\t}>\n}\n\nexport { PasswordChangeManager }\n"],"names":[],"mappings":";;;;;;;;;;;;AAQA,MAAM,sBAAsB;AAAA,EAC3B,YACkB,WACA,0BAChB;AAFgB,SAAA,YAAA;AACA,SAAA,2BAAA;AAAA,EACf;AAAA,EAEH,MAAM,eACL,WACA,QACA,UACiF;AACjF,UAAM,SAAS,MAAM,UAAU,aAAa,MAAM,IAAI,mBAAmB,UAAU,SAAS,CAAC;AAC7F,UAAM,uBAAuB,MAAM,KAAK,yBAAyB,OAAO,UAAU,OAAO,UAAU,UAAU;AAC7G,QAAI,CAAC,qBAAqB,IAAI;AAC7B,aAAO;AAAA,IACR;AACA,UAAM,UAAU,WAAW,QAAQ,IAAI,sBAAsB,OAAO,IAAI,QAAQ,CAAC;AACjF,WAAO,IAAI,WAAW,IAAI;AAAA,EAC3B;AAAA,EAEA,MAAM,iBACL,WACA,QACA,iBACA,UACmF;AACnF,UAAM,SAAS,MAAM,UAAU,aAAa,MAAM,IAAI,mBAAmB,UAAU,SAAS,CAAC;AAC7F,UAAM,uBAAuB,MAAM,KAAK,yBAAyB,OAAO,UAAU,OAAO,UAAU,UAAU;AAC7G,QAAI,CAAC,qBAAqB,IAAI;AAC7B,aAAO;AAAA,IACR;AACA,QAAI,CAAC,OAAO,eAAe;AAC1B,aAAO,IAAI,cAAc,mBAAmB,iBAAiB;AAAA,IAC9D;AACA,QAAI,CAAE,MAAM,KAAK,UAAU,cAAc,iBAAiB,OAAO,aAAa,GAAI;AACjF,aAAO,IAAI,cAAc,oBAAoB,yBAAyB;AAAA,IACvE;AAEA,UAAM,UAAU,WAAW,QAAQ,IAAI,sBAAsB,OAAO,IAAI,QAAQ,CAAC;AACjF,WAAO,IAAI,WAAW,IAAI;AAAA,EAC3B;AACD;"}
|