@robelest/convex-auth 0.0.4-preview.2 → 0.0.4-preview.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -26
- package/dist/authorization/index.d.ts +63 -0
- package/dist/authorization/index.d.ts.map +1 -0
- package/dist/authorization/index.js +63 -0
- package/dist/authorization/index.js.map +1 -0
- package/dist/bin.js +6185 -0
- package/dist/client/core/types.d.ts +20 -0
- package/dist/client/core/types.d.ts.map +1 -0
- package/dist/client/index.d.ts +2 -299
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +407 -534
- package/dist/client/index.js.map +1 -1
- package/dist/component/_generated/api.d.ts +42 -0
- package/dist/component/_generated/api.d.ts.map +1 -1
- package/dist/component/_generated/api.js.map +1 -1
- package/dist/component/_generated/component.d.ts +2546 -90
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/client/core/types.d.ts +2 -0
- package/dist/component/client/index.d.ts +2 -0
- package/dist/component/convex.config.d.ts +2 -2
- package/dist/component/functions.d.ts +11 -9
- package/dist/component/functions.d.ts.map +1 -1
- package/dist/component/functions.js.map +1 -1
- package/dist/component/index.d.ts +7 -11
- package/dist/component/index.js +2 -3
- package/dist/component/model.d.ts +153 -0
- package/dist/component/model.d.ts.map +1 -0
- package/dist/component/model.js +349 -0
- package/dist/component/model.js.map +1 -0
- package/dist/component/providers/anonymous.d.ts +54 -0
- package/dist/component/providers/anonymous.d.ts.map +1 -0
- package/dist/component/providers/credentials.d.ts +5 -5
- package/dist/component/providers/credentials.d.ts.map +1 -1
- package/dist/component/providers/device.d.ts +67 -0
- package/dist/component/providers/device.d.ts.map +1 -0
- package/dist/component/providers/email.d.ts +62 -0
- package/dist/component/providers/email.d.ts.map +1 -0
- package/dist/component/providers/oauth.d.ts.map +1 -1
- package/dist/component/providers/oauth.js.map +1 -1
- package/dist/component/providers/passkey.d.ts +57 -0
- package/dist/component/providers/passkey.d.ts.map +1 -0
- package/dist/component/providers/password.d.ts +88 -0
- package/dist/component/providers/password.d.ts.map +1 -0
- package/dist/component/providers/phone.d.ts +48 -0
- package/dist/component/providers/phone.d.ts.map +1 -0
- package/dist/component/providers/sso.d.ts +50 -0
- package/dist/component/providers/sso.d.ts.map +1 -0
- package/dist/component/providers/totp.d.ts +45 -0
- package/dist/component/providers/totp.d.ts.map +1 -0
- package/dist/component/public/enterprise/audit.d.ts +73 -0
- package/dist/component/public/enterprise/audit.d.ts.map +1 -0
- package/dist/component/public/enterprise/audit.js +108 -0
- package/dist/component/public/enterprise/audit.js.map +1 -0
- package/dist/component/public/enterprise/core.d.ts +176 -0
- package/dist/component/public/enterprise/core.d.ts.map +1 -0
- package/dist/component/public/enterprise/core.js +292 -0
- package/dist/component/public/enterprise/core.js.map +1 -0
- package/dist/component/public/enterprise/domains.d.ts +174 -0
- package/dist/component/public/enterprise/domains.d.ts.map +1 -0
- package/dist/component/public/enterprise/domains.js +271 -0
- package/dist/component/public/enterprise/domains.js.map +1 -0
- package/dist/component/public/enterprise/scim.d.ts +245 -0
- package/dist/component/public/enterprise/scim.d.ts.map +1 -0
- package/dist/component/public/enterprise/scim.js +344 -0
- package/dist/component/public/enterprise/scim.js.map +1 -0
- package/dist/component/public/enterprise/secrets.d.ts +78 -0
- package/dist/component/public/enterprise/secrets.d.ts.map +1 -0
- package/dist/component/public/enterprise/secrets.js +118 -0
- package/dist/component/public/enterprise/secrets.js.map +1 -0
- package/dist/component/public/enterprise/webhooks.d.ts +211 -0
- package/dist/component/public/enterprise/webhooks.d.ts.map +1 -0
- package/dist/component/public/enterprise/webhooks.js +300 -0
- package/dist/component/public/enterprise/webhooks.js.map +1 -0
- package/dist/component/public/factors/devices.d.ts +157 -0
- package/dist/component/public/factors/devices.d.ts.map +1 -0
- package/dist/component/public/factors/devices.js +216 -0
- package/dist/component/public/factors/devices.js.map +1 -0
- package/dist/component/public/factors/passkeys.d.ts +175 -0
- package/dist/component/public/factors/passkeys.d.ts.map +1 -0
- package/dist/component/public/factors/passkeys.js +238 -0
- package/dist/component/public/factors/passkeys.js.map +1 -0
- package/dist/component/public/factors/totp.d.ts +189 -0
- package/dist/component/public/factors/totp.d.ts.map +1 -0
- package/dist/component/public/factors/totp.js +254 -0
- package/dist/component/public/factors/totp.js.map +1 -0
- package/dist/component/public/groups/core.d.ts +137 -0
- package/dist/component/public/groups/core.d.ts.map +1 -0
- package/dist/component/public/groups/core.js +321 -0
- package/dist/component/public/groups/core.js.map +1 -0
- package/dist/component/public/groups/invites.d.ts +217 -0
- package/dist/component/public/groups/invites.d.ts.map +1 -0
- package/dist/component/public/groups/invites.js +457 -0
- package/dist/component/public/groups/invites.js.map +1 -0
- package/dist/component/public/groups/members.d.ts +204 -0
- package/dist/component/public/groups/members.d.ts.map +1 -0
- package/dist/component/public/groups/members.js +355 -0
- package/dist/component/public/groups/members.js.map +1 -0
- package/dist/component/public/identity/accounts.d.ts +147 -0
- package/dist/component/public/identity/accounts.d.ts.map +1 -0
- package/dist/component/public/identity/accounts.js +200 -0
- package/dist/component/public/identity/accounts.js.map +1 -0
- package/dist/component/public/identity/codes.d.ts +104 -0
- package/dist/component/public/identity/codes.d.ts.map +1 -0
- package/dist/component/public/identity/codes.js +140 -0
- package/dist/component/public/identity/codes.js.map +1 -0
- package/dist/component/public/identity/sessions.d.ts +128 -0
- package/dist/component/public/identity/sessions.d.ts.map +1 -0
- package/dist/component/public/identity/sessions.js +192 -0
- package/dist/component/public/identity/sessions.js.map +1 -0
- package/dist/component/public/identity/tokens.d.ts +169 -0
- package/dist/component/public/identity/tokens.d.ts.map +1 -0
- package/dist/component/public/identity/tokens.js +227 -0
- package/dist/component/public/identity/tokens.js.map +1 -0
- package/dist/component/public/identity/users.d.ts +212 -0
- package/dist/component/public/identity/users.d.ts.map +1 -0
- package/dist/component/public/identity/users.js +311 -0
- package/dist/component/public/identity/users.js.map +1 -0
- package/dist/component/public/identity/verifiers.d.ts +116 -0
- package/dist/component/public/identity/verifiers.d.ts.map +1 -0
- package/dist/component/public/identity/verifiers.js +154 -0
- package/dist/component/public/identity/verifiers.js.map +1 -0
- package/dist/component/public/security/keys.d.ts +209 -0
- package/dist/component/public/security/keys.d.ts.map +1 -0
- package/dist/component/public/security/keys.js +319 -0
- package/dist/component/public/security/keys.js.map +1 -0
- package/dist/component/public/security/limits.d.ts +114 -0
- package/dist/component/public/security/limits.d.ts.map +1 -0
- package/dist/component/public/security/limits.js +169 -0
- package/dist/component/public/security/limits.js.map +1 -0
- package/dist/component/public.d.ts +24 -271
- package/dist/component/public.d.ts.map +1 -1
- package/dist/component/public.js +21 -1229
- package/dist/component/schema.d.ts +473 -110
- package/dist/component/schema.js +162 -73
- package/dist/component/schema.js.map +1 -1
- package/dist/component/server/auth.d.ts +318 -373
- package/dist/component/server/auth.d.ts.map +1 -1
- package/dist/component/server/auth.js +204 -123
- package/dist/component/server/auth.js.map +1 -1
- package/dist/component/server/authError.js +34 -0
- package/dist/component/server/authError.js.map +1 -0
- package/dist/component/server/{providers.js → config.js} +43 -12
- package/dist/component/server/config.js.map +1 -0
- package/dist/component/server/cookies.js +3 -0
- package/dist/component/server/cookies.js.map +1 -1
- package/dist/component/server/core.js +713 -0
- package/dist/component/server/core.js.map +1 -0
- package/dist/component/server/crypto.js +38 -0
- package/dist/component/server/crypto.js.map +1 -0
- package/dist/component/server/{implementation/db.js → db.js} +2 -1
- package/dist/component/server/db.js.map +1 -0
- package/dist/component/server/device.js +109 -0
- package/dist/component/server/device.js.map +1 -0
- package/dist/component/server/enterprise/config.js +46 -0
- package/dist/component/server/enterprise/config.js.map +1 -0
- package/dist/component/server/enterprise/domain.js +885 -0
- package/dist/component/server/enterprise/domain.js.map +1 -0
- package/dist/component/server/enterprise/http.js +766 -0
- package/dist/component/server/enterprise/http.js.map +1 -0
- package/dist/component/server/enterprise/oidc.js +248 -0
- package/dist/component/server/enterprise/oidc.js.map +1 -0
- package/dist/component/server/enterprise/policy.js +85 -0
- package/dist/component/server/enterprise/policy.js.map +1 -0
- package/dist/component/server/enterprise/saml.js +338 -0
- package/dist/component/server/enterprise/saml.js.map +1 -0
- package/dist/component/server/enterprise/scim.js +97 -0
- package/dist/component/server/enterprise/scim.js.map +1 -0
- package/dist/component/server/enterprise/shared.js +51 -0
- package/dist/component/server/enterprise/shared.js.map +1 -0
- package/dist/component/server/errors.d.ts +1 -0
- package/dist/component/server/errors.js +24 -16
- package/dist/component/server/errors.js.map +1 -1
- package/dist/component/server/http.js +288 -0
- package/dist/component/server/http.js.map +1 -0
- package/dist/component/server/identity.js +13 -0
- package/dist/component/server/identity.js.map +1 -0
- package/dist/{server/implementation → component/server}/keys.js +9 -31
- package/dist/component/server/keys.js.map +1 -0
- package/dist/component/server/limits.js +61 -0
- package/dist/component/server/limits.js.map +1 -0
- package/dist/component/server/mutations/account.js +44 -0
- package/dist/component/server/mutations/account.js.map +1 -0
- package/dist/component/server/{implementation/mutations → mutations}/code.js +7 -4
- package/dist/component/server/mutations/code.js.map +1 -0
- package/dist/component/server/mutations/invalidate.js +32 -0
- package/dist/component/server/mutations/invalidate.js.map +1 -0
- package/dist/component/server/mutations/oauth.js +110 -0
- package/dist/component/server/mutations/oauth.js.map +1 -0
- package/dist/component/server/mutations/refresh.js +119 -0
- package/dist/component/server/mutations/refresh.js.map +1 -0
- package/dist/component/server/mutations/register.js +83 -0
- package/dist/component/server/mutations/register.js.map +1 -0
- package/dist/component/server/mutations/retrieve.js +65 -0
- package/dist/component/server/mutations/retrieve.js.map +1 -0
- package/dist/component/server/mutations/signature.js +32 -0
- package/dist/component/server/mutations/signature.js.map +1 -0
- package/dist/component/server/{implementation/mutations → mutations}/signin.js +2 -2
- package/dist/component/server/mutations/signin.js.map +1 -0
- package/dist/component/server/mutations/signout.js +27 -0
- package/dist/component/server/mutations/signout.js.map +1 -0
- package/dist/component/server/mutations/store/refs.js +15 -0
- package/dist/component/server/mutations/store/refs.js.map +1 -0
- package/dist/component/server/mutations/store.js +85 -0
- package/dist/component/server/mutations/store.js.map +1 -0
- package/dist/component/server/mutations/verifier.js +18 -0
- package/dist/component/server/mutations/verifier.js.map +1 -0
- package/dist/component/server/mutations/verify.js +98 -0
- package/dist/component/server/mutations/verify.js.map +1 -0
- package/dist/component/server/oauth.js +106 -60
- package/dist/component/server/oauth.js.map +1 -1
- package/dist/component/server/passkey.js +328 -0
- package/dist/component/server/passkey.js.map +1 -0
- package/dist/{server/implementation → component/server}/redirects.js +13 -11
- package/dist/component/server/redirects.js.map +1 -0
- package/dist/component/server/refresh.js +96 -0
- package/dist/component/server/refresh.js.map +1 -0
- package/dist/component/server/runtime.d.ts +136 -0
- package/dist/component/server/runtime.d.ts.map +1 -0
- package/dist/component/server/runtime.js +413 -0
- package/dist/component/server/runtime.js.map +1 -0
- package/dist/{server/implementation → component/server}/sessions.js +14 -8
- package/dist/component/server/sessions.js.map +1 -0
- package/dist/component/server/signin.js +201 -0
- package/dist/component/server/signin.js.map +1 -0
- package/dist/component/server/tokens.js +17 -0
- package/dist/component/server/tokens.js.map +1 -0
- package/dist/component/server/totp.js +148 -0
- package/dist/component/server/totp.js.map +1 -0
- package/dist/component/server/types.d.ts +387 -298
- package/dist/component/server/types.d.ts.map +1 -1
- package/dist/component/server/{implementation/types.js → types.js} +1 -1
- package/dist/component/server/types.js.map +1 -0
- package/dist/component/server/{implementation/users.js → users.js} +54 -35
- package/dist/component/server/users.js.map +1 -0
- package/dist/component/server/utils.js +110 -4
- package/dist/component/server/utils.js.map +1 -1
- package/dist/core/types.d.ts +369 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/factors/device.js +105 -0
- package/dist/factors/device.js.map +1 -0
- package/dist/factors/passkey.js +181 -0
- package/dist/factors/passkey.js.map +1 -0
- package/dist/factors/totp.js +122 -0
- package/dist/factors/totp.js.map +1 -0
- package/dist/providers/anonymous.d.ts +3 -9
- package/dist/providers/anonymous.d.ts.map +1 -1
- package/dist/providers/anonymous.js +1 -18
- package/dist/providers/anonymous.js.map +1 -1
- package/dist/providers/credentials.d.ts +8 -10
- package/dist/providers/credentials.d.ts.map +1 -1
- package/dist/providers/credentials.js +3 -5
- package/dist/providers/credentials.js.map +1 -1
- package/dist/providers/device.d.ts +18 -10
- package/dist/providers/device.d.ts.map +1 -1
- package/dist/providers/device.js +4 -8
- package/dist/providers/device.js.map +1 -1
- package/dist/providers/email.d.ts +50 -23
- package/dist/providers/email.d.ts.map +1 -1
- package/dist/providers/email.js +58 -34
- package/dist/providers/email.js.map +1 -1
- package/dist/providers/index.d.ts +7 -3
- package/dist/providers/index.js +4 -1
- package/dist/providers/oauth.d.ts.map +1 -1
- package/dist/providers/oauth.js.map +1 -1
- package/dist/providers/passkey.d.ts +12 -9
- package/dist/providers/passkey.d.ts.map +1 -1
- package/dist/providers/passkey.js +1 -7
- package/dist/providers/passkey.js.map +1 -1
- package/dist/providers/password.d.ts +6 -12
- package/dist/providers/password.d.ts.map +1 -1
- package/dist/providers/password.js +189 -89
- package/dist/providers/password.js.map +1 -1
- package/dist/providers/phone.d.ts +40 -11
- package/dist/providers/phone.d.ts.map +1 -1
- package/dist/providers/phone.js +52 -21
- package/dist/providers/phone.js.map +1 -1
- package/dist/providers/sso.d.ts +50 -0
- package/dist/providers/sso.d.ts.map +1 -0
- package/dist/providers/sso.js +34 -0
- package/dist/providers/sso.js.map +1 -0
- package/dist/providers/totp.d.ts +12 -9
- package/dist/providers/totp.d.ts.map +1 -1
- package/dist/providers/totp.js +1 -7
- package/dist/providers/totp.js.map +1 -1
- package/dist/runtime/browser.js +68 -0
- package/dist/runtime/browser.js.map +1 -0
- package/dist/runtime/invite.js +51 -0
- package/dist/runtime/invite.js.map +1 -0
- package/dist/runtime/proxy.js +70 -0
- package/dist/runtime/proxy.js.map +1 -0
- package/dist/runtime/storage.js +37 -0
- package/dist/runtime/storage.js.map +1 -0
- package/dist/server/auth.d.ts +335 -370
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +204 -123
- package/dist/server/auth.js.map +1 -1
- package/dist/server/authError.d.ts +46 -0
- package/dist/server/authError.d.ts.map +1 -0
- package/dist/server/authError.js +34 -0
- package/dist/server/authError.js.map +1 -0
- package/dist/server/config.d.ts +1 -0
- package/dist/server/{providers.js → config.js} +43 -12
- package/dist/server/config.js.map +1 -0
- package/dist/server/cookies.d.ts +1 -38
- package/dist/server/cookies.js +3 -0
- package/dist/server/cookies.js.map +1 -1
- package/dist/server/core.d.ts +1436 -0
- package/dist/server/core.d.ts.map +1 -0
- package/dist/server/core.js +713 -0
- package/dist/server/core.js.map +1 -0
- package/dist/server/crypto.d.ts +8 -0
- package/dist/server/crypto.d.ts.map +1 -0
- package/dist/server/crypto.js +38 -0
- package/dist/server/crypto.js.map +1 -0
- package/dist/server/db.d.ts +1 -0
- package/dist/server/{implementation/db.js → db.js} +2 -1
- package/dist/server/db.js.map +1 -0
- package/dist/server/device.d.ts +1 -0
- package/dist/server/device.js +109 -0
- package/dist/server/device.js.map +1 -0
- package/dist/server/enterprise/config.d.ts +1 -0
- package/dist/server/enterprise/config.js +46 -0
- package/dist/server/enterprise/config.js.map +1 -0
- package/dist/server/enterprise/domain.d.ts +409 -0
- package/dist/server/enterprise/domain.d.ts.map +1 -0
- package/dist/server/enterprise/domain.js +885 -0
- package/dist/server/enterprise/domain.js.map +1 -0
- package/dist/server/enterprise/http.d.ts +26 -0
- package/dist/server/enterprise/http.d.ts.map +1 -0
- package/dist/server/enterprise/http.js +766 -0
- package/dist/server/enterprise/http.js.map +1 -0
- package/dist/server/enterprise/oidc.d.ts +1 -0
- package/dist/server/enterprise/oidc.js +248 -0
- package/dist/server/enterprise/oidc.js.map +1 -0
- package/dist/server/enterprise/policy.d.ts +1 -0
- package/dist/server/enterprise/policy.js +85 -0
- package/dist/server/enterprise/policy.js.map +1 -0
- package/dist/server/enterprise/saml.d.ts +1 -0
- package/dist/server/enterprise/saml.js +338 -0
- package/dist/server/enterprise/saml.js.map +1 -0
- package/dist/server/enterprise/scim.d.ts +1 -0
- package/dist/server/enterprise/scim.js +97 -0
- package/dist/server/enterprise/scim.js.map +1 -0
- package/dist/server/enterprise/shared.d.ts +5 -0
- package/dist/server/enterprise/shared.d.ts.map +1 -0
- package/dist/server/enterprise/shared.js +51 -0
- package/dist/server/enterprise/shared.js.map +1 -0
- package/dist/server/enterprise/validators.d.ts +1 -0
- package/dist/server/enterprise/validators.js +60 -0
- package/dist/server/enterprise/validators.js.map +1 -0
- package/dist/server/errors.d.ts +33 -1
- package/dist/server/errors.d.ts.map +1 -1
- package/dist/server/errors.js +44 -1
- package/dist/server/errors.js.map +1 -1
- package/dist/server/http.d.ts +59 -0
- package/dist/server/http.d.ts.map +1 -0
- package/dist/server/http.js +288 -0
- package/dist/server/http.js.map +1 -0
- package/dist/server/identity.d.ts +1 -0
- package/dist/server/identity.js +13 -0
- package/dist/server/identity.js.map +1 -0
- package/dist/server/index.d.ts +4 -182
- package/dist/server/index.js +4 -376
- package/dist/server/keys.d.ts +1 -0
- package/dist/{component/server/implementation → server}/keys.js +9 -31
- package/dist/server/keys.js.map +1 -0
- package/dist/server/limits.d.ts +1 -0
- package/dist/server/limits.js +61 -0
- package/dist/server/limits.js.map +1 -0
- package/dist/server/mounts.d.ts +647 -0
- package/dist/server/mounts.d.ts.map +1 -0
- package/dist/server/mounts.js +643 -0
- package/dist/server/mounts.js.map +1 -0
- package/dist/server/mutations/account.d.ts +30 -0
- package/dist/server/mutations/account.d.ts.map +1 -0
- package/dist/server/mutations/account.js +44 -0
- package/dist/server/mutations/account.js.map +1 -0
- package/dist/server/mutations/code.d.ts +30 -0
- package/dist/server/mutations/code.d.ts.map +1 -0
- package/dist/server/{implementation/mutations → mutations}/code.js +7 -4
- package/dist/server/mutations/code.js.map +1 -0
- package/dist/server/mutations/index.d.ts +14 -0
- package/dist/server/mutations/index.js +15 -0
- package/dist/server/mutations/invalidate.d.ts +20 -0
- package/dist/server/mutations/invalidate.d.ts.map +1 -0
- package/dist/server/mutations/invalidate.js +32 -0
- package/dist/server/mutations/invalidate.js.map +1 -0
- package/dist/server/mutations/oauth.d.ts +28 -0
- package/dist/server/mutations/oauth.d.ts.map +1 -0
- package/dist/server/mutations/oauth.js +110 -0
- package/dist/server/mutations/oauth.js.map +1 -0
- package/dist/server/mutations/refresh.d.ts +21 -0
- package/dist/server/mutations/refresh.d.ts.map +1 -0
- package/dist/server/mutations/refresh.js +119 -0
- package/dist/server/mutations/refresh.js.map +1 -0
- package/dist/server/mutations/register.d.ts +38 -0
- package/dist/server/mutations/register.d.ts.map +1 -0
- package/dist/server/mutations/register.js +83 -0
- package/dist/server/mutations/register.js.map +1 -0
- package/dist/server/mutations/retrieve.d.ts +33 -0
- package/dist/server/mutations/retrieve.d.ts.map +1 -0
- package/dist/server/mutations/retrieve.js +65 -0
- package/dist/server/mutations/retrieve.js.map +1 -0
- package/dist/server/mutations/signature.d.ts +22 -0
- package/dist/server/mutations/signature.d.ts.map +1 -0
- package/dist/server/mutations/signature.js +32 -0
- package/dist/server/mutations/signature.js.map +1 -0
- package/dist/server/mutations/signin.d.ts +22 -0
- package/dist/server/mutations/signin.d.ts.map +1 -0
- package/dist/server/{implementation/mutations → mutations}/signin.js +2 -2
- package/dist/server/mutations/signin.js.map +1 -0
- package/dist/server/mutations/signout.d.ts +16 -0
- package/dist/server/mutations/signout.d.ts.map +1 -0
- package/dist/server/mutations/signout.js +27 -0
- package/dist/server/mutations/signout.js.map +1 -0
- package/dist/server/mutations/store/refs.d.ts +12 -0
- package/dist/server/mutations/store/refs.d.ts.map +1 -0
- package/dist/server/mutations/store/refs.js +15 -0
- package/dist/server/mutations/store/refs.js.map +1 -0
- package/dist/server/mutations/store.d.ts +306 -0
- package/dist/server/mutations/store.d.ts.map +1 -0
- package/dist/server/mutations/store.js +85 -0
- package/dist/server/mutations/store.js.map +1 -0
- package/dist/server/mutations/verifier.d.ts +13 -0
- package/dist/server/mutations/verifier.d.ts.map +1 -0
- package/dist/server/mutations/verifier.js +18 -0
- package/dist/server/mutations/verifier.js.map +1 -0
- package/dist/server/mutations/verify.d.ts +26 -0
- package/dist/server/mutations/verify.d.ts.map +1 -0
- package/dist/server/mutations/verify.js +98 -0
- package/dist/server/mutations/verify.js.map +1 -0
- package/dist/server/oauth.d.ts +1 -48
- package/dist/server/oauth.js +107 -64
- package/dist/server/oauth.js.map +1 -1
- package/dist/server/passkey.d.ts +27 -0
- package/dist/server/passkey.d.ts.map +1 -0
- package/dist/server/passkey.js +328 -0
- package/dist/server/passkey.js.map +1 -0
- package/dist/server/redirects.d.ts +1 -0
- package/dist/{component/server/implementation → server}/redirects.js +13 -11
- package/dist/server/redirects.js.map +1 -0
- package/dist/server/refresh.d.ts +1 -0
- package/dist/server/refresh.js +96 -0
- package/dist/server/refresh.js.map +1 -0
- package/dist/server/runtime.d.ts +136 -0
- package/dist/server/runtime.d.ts.map +1 -0
- package/dist/server/runtime.js +413 -0
- package/dist/server/runtime.js.map +1 -0
- package/dist/server/sessions.d.ts +1 -0
- package/dist/{component/server/implementation → server}/sessions.js +14 -8
- package/dist/server/sessions.js.map +1 -0
- package/dist/server/signin.d.ts +1 -0
- package/dist/server/signin.js +201 -0
- package/dist/server/signin.js.map +1 -0
- package/dist/server/ssr.d.ts +226 -0
- package/dist/server/ssr.d.ts.map +1 -0
- package/dist/server/ssr.js +786 -0
- package/dist/server/ssr.js.map +1 -0
- package/dist/server/templates.d.ts +1 -21
- package/dist/server/templates.js +2 -1
- package/dist/server/templates.js.map +1 -1
- package/dist/server/tokens.d.ts +1 -0
- package/dist/server/tokens.js +17 -0
- package/dist/server/tokens.js.map +1 -0
- package/dist/server/totp.d.ts +1 -0
- package/dist/server/totp.js +148 -0
- package/dist/server/totp.js.map +1 -0
- package/dist/server/types.d.ts +498 -306
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/types.js +108 -1
- package/dist/server/types.js.map +1 -0
- package/dist/server/users.d.ts +1 -0
- package/dist/server/{implementation/users.js → users.js} +54 -35
- package/dist/server/users.js.map +1 -0
- package/dist/server/utils.d.ts +1 -6
- package/dist/server/utils.js +110 -4
- package/dist/server/utils.js.map +1 -1
- package/package.json +49 -46
- package/src/authorization/index.ts +83 -0
- package/src/cli/bin.ts +5 -0
- package/src/cli/command.ts +6 -5
- package/src/cli/index.ts +456 -248
- package/src/cli/keys.ts +3 -0
- package/src/client/core/types.ts +437 -0
- package/src/client/factors/device.ts +160 -0
- package/src/client/factors/passkey.ts +282 -0
- package/src/client/factors/totp.ts +150 -0
- package/src/client/index.ts +745 -989
- package/src/client/runtime/browser.ts +112 -0
- package/src/client/runtime/invite.ts +65 -0
- package/src/client/runtime/proxy.ts +111 -0
- package/src/client/runtime/storage.ts +79 -0
- package/src/component/_generated/api.ts +42 -0
- package/src/component/_generated/component.ts +3123 -102
- package/src/component/functions.ts +38 -22
- package/src/component/index.ts +10 -20
- package/src/component/model.ts +449 -0
- package/src/component/public/enterprise/audit.ts +120 -0
- package/src/component/public/enterprise/core.ts +354 -0
- package/src/component/public/enterprise/domains.ts +323 -0
- package/src/component/public/enterprise/scim.ts +396 -0
- package/src/component/public/enterprise/secrets.ts +132 -0
- package/src/component/public/enterprise/webhooks.ts +306 -0
- package/src/component/public/factors/devices.ts +223 -0
- package/src/component/public/factors/passkeys.ts +242 -0
- package/src/component/public/factors/totp.ts +258 -0
- package/src/component/public/groups/core.ts +481 -0
- package/src/component/public/groups/invites.ts +602 -0
- package/src/component/public/groups/members.ts +409 -0
- package/src/component/public/identity/accounts.ts +206 -0
- package/src/component/public/identity/codes.ts +148 -0
- package/src/component/public/identity/sessions.ts +209 -0
- package/src/component/public/identity/tokens.ts +250 -0
- package/src/component/public/identity/users.ts +354 -0
- package/src/component/public/identity/verifiers.ts +157 -0
- package/src/component/public/security/keys.ts +365 -0
- package/src/component/public/security/limits.ts +173 -0
- package/src/component/public.ts +26 -1766
- package/src/component/schema.ts +273 -100
- package/src/providers/anonymous.ts +10 -20
- package/src/providers/credentials.ts +14 -22
- package/src/providers/device.ts +3 -14
- package/src/providers/email.ts +83 -47
- package/src/providers/index.ts +7 -0
- package/src/providers/oauth.ts +5 -3
- package/src/providers/passkey.ts +0 -13
- package/src/providers/password.ts +307 -130
- package/src/providers/phone.ts +81 -37
- package/src/providers/sso.ts +54 -0
- package/src/providers/totp.ts +0 -13
- package/src/samlify.d.ts +53 -0
- package/src/server/auth.ts +701 -247
- package/src/server/authError.ts +44 -0
- package/src/server/{providers.ts → config.ts} +84 -15
- package/src/server/cookies.ts +8 -1
- package/src/server/core.ts +2095 -0
- package/src/server/crypto.ts +88 -0
- package/src/server/{implementation/db.ts → db.ts} +90 -15
- package/src/server/device.ts +221 -0
- package/src/server/enterprise/config.ts +51 -0
- package/src/server/enterprise/domain.ts +1751 -0
- package/src/server/enterprise/http.ts +1324 -0
- package/src/server/enterprise/oidc.ts +500 -0
- package/src/server/enterprise/policy.ts +128 -0
- package/src/server/enterprise/saml.ts +578 -0
- package/src/server/enterprise/scim.ts +135 -0
- package/src/server/enterprise/shared.ts +134 -0
- package/src/server/enterprise/validators.ts +93 -0
- package/src/server/errors.ts +130 -119
- package/src/server/http.ts +531 -0
- package/src/server/identity.ts +18 -0
- package/src/server/index.ts +32 -650
- package/src/server/{implementation/keys.ts → keys.ts} +16 -44
- package/src/server/limits.ts +134 -0
- package/src/server/mounts.ts +948 -0
- package/src/server/mutations/account.ts +76 -0
- package/src/server/{implementation/mutations → mutations}/code.ts +22 -11
- package/src/server/mutations/index.ts +13 -0
- package/src/server/mutations/invalidate.ts +50 -0
- package/src/server/mutations/oauth.ts +237 -0
- package/src/server/mutations/refresh.ts +298 -0
- package/src/server/mutations/register.ts +200 -0
- package/src/server/mutations/retrieve.ts +109 -0
- package/src/server/mutations/signature.ts +50 -0
- package/src/server/{implementation/mutations → mutations}/signin.ts +9 -7
- package/src/server/mutations/signout.ts +43 -0
- package/src/server/mutations/store/refs.ts +10 -0
- package/src/server/mutations/store.ts +138 -0
- package/src/server/mutations/verifier.ts +34 -0
- package/src/server/mutations/verify.ts +202 -0
- package/src/server/oauth.ts +243 -131
- package/src/server/passkey.ts +784 -0
- package/src/server/{implementation/redirects.ts → redirects.ts} +21 -16
- package/src/server/refresh.ts +222 -0
- package/src/server/runtime.ts +880 -0
- package/src/server/{implementation/sessions.ts → sessions.ts} +33 -25
- package/src/server/signin.ts +438 -0
- package/src/server/ssr.ts +1764 -0
- package/src/server/templates.ts +8 -3
- package/src/server/{implementation/tokens.ts → tokens.ts} +11 -5
- package/src/server/totp.ts +349 -0
- package/src/server/types.ts +972 -207
- package/src/server/{implementation/users.ts → users.ts} +129 -75
- package/src/server/utils.ts +192 -5
- package/src/test.ts +28 -4
- package/dist/bin.cjs +0 -27757
- package/dist/component/providers/email.js +0 -47
- package/dist/component/providers/email.js.map +0 -1
- package/dist/component/public.js.map +0 -1
- package/dist/component/server/implementation/db.js.map +0 -1
- package/dist/component/server/implementation/device.js +0 -135
- package/dist/component/server/implementation/device.js.map +0 -1
- package/dist/component/server/implementation/index.d.ts +0 -870
- package/dist/component/server/implementation/index.d.ts.map +0 -1
- package/dist/component/server/implementation/index.js +0 -610
- package/dist/component/server/implementation/index.js.map +0 -1
- package/dist/component/server/implementation/keys.js.map +0 -1
- package/dist/component/server/implementation/mutations/account.js +0 -39
- package/dist/component/server/implementation/mutations/account.js.map +0 -1
- package/dist/component/server/implementation/mutations/code.js.map +0 -1
- package/dist/component/server/implementation/mutations/index.js +0 -70
- package/dist/component/server/implementation/mutations/index.js.map +0 -1
- package/dist/component/server/implementation/mutations/invalidate.js +0 -29
- package/dist/component/server/implementation/mutations/invalidate.js.map +0 -1
- package/dist/component/server/implementation/mutations/oauth.js +0 -51
- package/dist/component/server/implementation/mutations/oauth.js.map +0 -1
- package/dist/component/server/implementation/mutations/refresh.js +0 -85
- package/dist/component/server/implementation/mutations/refresh.js.map +0 -1
- package/dist/component/server/implementation/mutations/register.js +0 -65
- package/dist/component/server/implementation/mutations/register.js.map +0 -1
- package/dist/component/server/implementation/mutations/retrieve.js +0 -50
- package/dist/component/server/implementation/mutations/retrieve.js.map +0 -1
- package/dist/component/server/implementation/mutations/signature.js +0 -27
- package/dist/component/server/implementation/mutations/signature.js.map +0 -1
- package/dist/component/server/implementation/mutations/signin.js.map +0 -1
- package/dist/component/server/implementation/mutations/signout.js +0 -27
- package/dist/component/server/implementation/mutations/signout.js.map +0 -1
- package/dist/component/server/implementation/mutations/store.js +0 -12
- package/dist/component/server/implementation/mutations/store.js.map +0 -1
- package/dist/component/server/implementation/mutations/verifier.js +0 -16
- package/dist/component/server/implementation/mutations/verifier.js.map +0 -1
- package/dist/component/server/implementation/mutations/verify.js +0 -105
- package/dist/component/server/implementation/mutations/verify.js.map +0 -1
- package/dist/component/server/implementation/passkey.js +0 -307
- package/dist/component/server/implementation/passkey.js.map +0 -1
- package/dist/component/server/implementation/provider.js +0 -19
- package/dist/component/server/implementation/provider.js.map +0 -1
- package/dist/component/server/implementation/ratelimit.js +0 -48
- package/dist/component/server/implementation/ratelimit.js.map +0 -1
- package/dist/component/server/implementation/redirects.js.map +0 -1
- package/dist/component/server/implementation/refresh.js +0 -109
- package/dist/component/server/implementation/refresh.js.map +0 -1
- package/dist/component/server/implementation/sessions.js.map +0 -1
- package/dist/component/server/implementation/signin.js +0 -148
- package/dist/component/server/implementation/signin.js.map +0 -1
- package/dist/component/server/implementation/tokens.js +0 -15
- package/dist/component/server/implementation/tokens.js.map +0 -1
- package/dist/component/server/implementation/totp.js +0 -142
- package/dist/component/server/implementation/totp.js.map +0 -1
- package/dist/component/server/implementation/types.d.ts +0 -42
- package/dist/component/server/implementation/types.d.ts.map +0 -1
- package/dist/component/server/implementation/types.js.map +0 -1
- package/dist/component/server/implementation/users.js.map +0 -1
- package/dist/component/server/implementation/utils.js +0 -56
- package/dist/component/server/implementation/utils.js.map +0 -1
- package/dist/component/server/providers.js.map +0 -1
- package/dist/component/server/templates.js +0 -84
- package/dist/component/server/templates.js.map +0 -1
- package/dist/server/cookies.d.ts.map +0 -1
- package/dist/server/implementation/db.d.ts +0 -86
- package/dist/server/implementation/db.d.ts.map +0 -1
- package/dist/server/implementation/db.js.map +0 -1
- package/dist/server/implementation/device.d.ts +0 -30
- package/dist/server/implementation/device.d.ts.map +0 -1
- package/dist/server/implementation/device.js +0 -135
- package/dist/server/implementation/device.js.map +0 -1
- package/dist/server/implementation/index.d.ts +0 -870
- package/dist/server/implementation/index.d.ts.map +0 -1
- package/dist/server/implementation/index.js +0 -610
- package/dist/server/implementation/index.js.map +0 -1
- package/dist/server/implementation/keys.d.ts +0 -66
- package/dist/server/implementation/keys.d.ts.map +0 -1
- package/dist/server/implementation/keys.js.map +0 -1
- package/dist/server/implementation/mutations/account.d.ts +0 -27
- package/dist/server/implementation/mutations/account.d.ts.map +0 -1
- package/dist/server/implementation/mutations/account.js +0 -39
- package/dist/server/implementation/mutations/account.js.map +0 -1
- package/dist/server/implementation/mutations/code.d.ts +0 -29
- package/dist/server/implementation/mutations/code.d.ts.map +0 -1
- package/dist/server/implementation/mutations/code.js.map +0 -1
- package/dist/server/implementation/mutations/index.d.ts +0 -310
- package/dist/server/implementation/mutations/index.d.ts.map +0 -1
- package/dist/server/implementation/mutations/index.js +0 -70
- package/dist/server/implementation/mutations/index.js.map +0 -1
- package/dist/server/implementation/mutations/invalidate.d.ts +0 -18
- package/dist/server/implementation/mutations/invalidate.d.ts.map +0 -1
- package/dist/server/implementation/mutations/invalidate.js +0 -29
- package/dist/server/implementation/mutations/invalidate.js.map +0 -1
- package/dist/server/implementation/mutations/oauth.d.ts +0 -23
- package/dist/server/implementation/mutations/oauth.d.ts.map +0 -1
- package/dist/server/implementation/mutations/oauth.js +0 -51
- package/dist/server/implementation/mutations/oauth.js.map +0 -1
- package/dist/server/implementation/mutations/refresh.d.ts +0 -20
- package/dist/server/implementation/mutations/refresh.d.ts.map +0 -1
- package/dist/server/implementation/mutations/refresh.js +0 -85
- package/dist/server/implementation/mutations/refresh.js.map +0 -1
- package/dist/server/implementation/mutations/register.d.ts +0 -37
- package/dist/server/implementation/mutations/register.d.ts.map +0 -1
- package/dist/server/implementation/mutations/register.js +0 -65
- package/dist/server/implementation/mutations/register.js.map +0 -1
- package/dist/server/implementation/mutations/retrieve.d.ts +0 -31
- package/dist/server/implementation/mutations/retrieve.d.ts.map +0 -1
- package/dist/server/implementation/mutations/retrieve.js +0 -50
- package/dist/server/implementation/mutations/retrieve.js.map +0 -1
- package/dist/server/implementation/mutations/signature.d.ts +0 -19
- package/dist/server/implementation/mutations/signature.d.ts.map +0 -1
- package/dist/server/implementation/mutations/signature.js +0 -27
- package/dist/server/implementation/mutations/signature.js.map +0 -1
- package/dist/server/implementation/mutations/signin.d.ts +0 -21
- package/dist/server/implementation/mutations/signin.d.ts.map +0 -1
- package/dist/server/implementation/mutations/signin.js.map +0 -1
- package/dist/server/implementation/mutations/signout.d.ts +0 -14
- package/dist/server/implementation/mutations/signout.d.ts.map +0 -1
- package/dist/server/implementation/mutations/signout.js +0 -27
- package/dist/server/implementation/mutations/signout.js.map +0 -1
- package/dist/server/implementation/mutations/store.d.ts +0 -11
- package/dist/server/implementation/mutations/store.d.ts.map +0 -1
- package/dist/server/implementation/mutations/store.js +0 -12
- package/dist/server/implementation/mutations/store.js.map +0 -1
- package/dist/server/implementation/mutations/verifier.d.ts +0 -11
- package/dist/server/implementation/mutations/verifier.d.ts.map +0 -1
- package/dist/server/implementation/mutations/verifier.js +0 -16
- package/dist/server/implementation/mutations/verifier.js.map +0 -1
- package/dist/server/implementation/mutations/verify.d.ts +0 -25
- package/dist/server/implementation/mutations/verify.d.ts.map +0 -1
- package/dist/server/implementation/mutations/verify.js +0 -105
- package/dist/server/implementation/mutations/verify.js.map +0 -1
- package/dist/server/implementation/passkey.d.ts +0 -24
- package/dist/server/implementation/passkey.d.ts.map +0 -1
- package/dist/server/implementation/passkey.js +0 -307
- package/dist/server/implementation/passkey.js.map +0 -1
- package/dist/server/implementation/provider.d.ts +0 -10
- package/dist/server/implementation/provider.d.ts.map +0 -1
- package/dist/server/implementation/provider.js +0 -19
- package/dist/server/implementation/provider.js.map +0 -1
- package/dist/server/implementation/ratelimit.d.ts +0 -10
- package/dist/server/implementation/ratelimit.d.ts.map +0 -1
- package/dist/server/implementation/ratelimit.js +0 -48
- package/dist/server/implementation/ratelimit.js.map +0 -1
- package/dist/server/implementation/redirects.d.ts +0 -10
- package/dist/server/implementation/redirects.d.ts.map +0 -1
- package/dist/server/implementation/redirects.js.map +0 -1
- package/dist/server/implementation/refresh.d.ts +0 -37
- package/dist/server/implementation/refresh.d.ts.map +0 -1
- package/dist/server/implementation/refresh.js +0 -109
- package/dist/server/implementation/refresh.js.map +0 -1
- package/dist/server/implementation/sessions.d.ts +0 -29
- package/dist/server/implementation/sessions.d.ts.map +0 -1
- package/dist/server/implementation/sessions.js.map +0 -1
- package/dist/server/implementation/signin.d.ts +0 -55
- package/dist/server/implementation/signin.d.ts.map +0 -1
- package/dist/server/implementation/signin.js +0 -148
- package/dist/server/implementation/signin.js.map +0 -1
- package/dist/server/implementation/tokens.d.ts +0 -11
- package/dist/server/implementation/tokens.d.ts.map +0 -1
- package/dist/server/implementation/tokens.js +0 -15
- package/dist/server/implementation/tokens.js.map +0 -1
- package/dist/server/implementation/totp.d.ts +0 -31
- package/dist/server/implementation/totp.d.ts.map +0 -1
- package/dist/server/implementation/totp.js +0 -142
- package/dist/server/implementation/totp.js.map +0 -1
- package/dist/server/implementation/types.d.ts +0 -189
- package/dist/server/implementation/types.d.ts.map +0 -1
- package/dist/server/implementation/types.js +0 -97
- package/dist/server/implementation/types.js.map +0 -1
- package/dist/server/implementation/users.d.ts +0 -30
- package/dist/server/implementation/users.d.ts.map +0 -1
- package/dist/server/implementation/users.js.map +0 -1
- package/dist/server/implementation/utils.d.ts +0 -19
- package/dist/server/implementation/utils.d.ts.map +0 -1
- package/dist/server/implementation/utils.js +0 -56
- package/dist/server/implementation/utils.js.map +0 -1
- package/dist/server/index.d.ts.map +0 -1
- package/dist/server/index.js.map +0 -1
- package/dist/server/oauth.d.ts.map +0 -1
- package/dist/server/providers.d.ts +0 -72
- package/dist/server/providers.d.ts.map +0 -1
- package/dist/server/providers.js.map +0 -1
- package/dist/server/templates.d.ts.map +0 -1
- package/dist/server/utils.d.ts.map +0 -1
- package/dist/server/version.d.ts +0 -5
- package/dist/server/version.d.ts.map +0 -1
- package/dist/server/version.js +0 -6
- package/dist/server/version.js.map +0 -1
- package/src/cli/utils.ts +0 -248
- package/src/server/implementation/device.ts +0 -307
- package/src/server/implementation/index.ts +0 -1583
- package/src/server/implementation/mutations/account.ts +0 -50
- package/src/server/implementation/mutations/index.ts +0 -157
- package/src/server/implementation/mutations/invalidate.ts +0 -42
- package/src/server/implementation/mutations/oauth.ts +0 -73
- package/src/server/implementation/mutations/refresh.ts +0 -175
- package/src/server/implementation/mutations/register.ts +0 -100
- package/src/server/implementation/mutations/retrieve.ts +0 -79
- package/src/server/implementation/mutations/signature.ts +0 -39
- package/src/server/implementation/mutations/signout.ts +0 -35
- package/src/server/implementation/mutations/store.ts +0 -7
- package/src/server/implementation/mutations/verifier.ts +0 -24
- package/src/server/implementation/mutations/verify.ts +0 -194
- package/src/server/implementation/passkey.ts +0 -620
- package/src/server/implementation/provider.ts +0 -36
- package/src/server/implementation/ratelimit.ts +0 -79
- package/src/server/implementation/refresh.ts +0 -172
- package/src/server/implementation/signin.ts +0 -296
- package/src/server/implementation/totp.ts +0 -342
- package/src/server/implementation/types.ts +0 -444
- package/src/server/implementation/utils.ts +0 -91
- package/src/server/version.ts +0 -2
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/** @internal */
|
|
2
|
+
export type ParsedSamlMetadata = {
|
|
3
|
+
issuer: string;
|
|
4
|
+
sso: {
|
|
5
|
+
redirect?: string;
|
|
6
|
+
post?: string;
|
|
7
|
+
};
|
|
8
|
+
slo: {
|
|
9
|
+
redirect?: string;
|
|
10
|
+
post?: string;
|
|
11
|
+
};
|
|
12
|
+
signingCert: string | string[] | null;
|
|
13
|
+
encryptionCert: string | string[] | null;
|
|
14
|
+
nameIdFormats: string[];
|
|
15
|
+
wantsSignedAuthnRequests: boolean;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/** @internal */
|
|
19
|
+
export type EnterpriseSamlSource = { kind: "enterprise"; id: string };
|
|
20
|
+
|
|
21
|
+
/** @internal */
|
|
22
|
+
export type EnterpriseSamlRelayState = {
|
|
23
|
+
source: EnterpriseSamlSource;
|
|
24
|
+
signature: string;
|
|
25
|
+
requestId: string;
|
|
26
|
+
state: string;
|
|
27
|
+
redirectTo?: string;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
/** @internal */
|
|
31
|
+
export type EnterpriseSamlUrls = {
|
|
32
|
+
metadataUrl: string;
|
|
33
|
+
acsUrl: string;
|
|
34
|
+
sloUrl?: string;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/** @internal */
|
|
38
|
+
export type EnterpriseSamlLoadedSource = {
|
|
39
|
+
source: EnterpriseSamlSource;
|
|
40
|
+
config: unknown;
|
|
41
|
+
status?: string;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
/** @internal */
|
|
45
|
+
export type EnterpriseSamlHttpRequest = {
|
|
46
|
+
url: URL;
|
|
47
|
+
body: Record<string, string>;
|
|
48
|
+
query: Record<string, string>;
|
|
49
|
+
binding: "redirect" | "post";
|
|
50
|
+
relayState?: string;
|
|
51
|
+
hasSamlRequest: boolean;
|
|
52
|
+
hasSamlResponse: boolean;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
/** @internal */
|
|
56
|
+
export type ScimListRequest = {
|
|
57
|
+
startIndex: number;
|
|
58
|
+
count: number;
|
|
59
|
+
filter?: { attribute: string; value: string };
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
/** @internal */
|
|
63
|
+
export const SCIM_USER_SCHEMA_ID = "urn:ietf:params:scim:schemas:core:2.0:User";
|
|
64
|
+
/** @internal */
|
|
65
|
+
export const SCIM_GROUP_SCHEMA_ID =
|
|
66
|
+
"urn:ietf:params:scim:schemas:core:2.0:Group";
|
|
67
|
+
|
|
68
|
+
/** @internal */
|
|
69
|
+
export const ENTERPRISE_OIDC_PROVIDER_PREFIX = "enterprise:oidc:";
|
|
70
|
+
/** @internal */
|
|
71
|
+
export const ENTERPRISE_SAML_PROVIDER_PREFIX = "enterprise:saml:";
|
|
72
|
+
|
|
73
|
+
/** @internal */
|
|
74
|
+
export function normalizeDomain(domain: string): string {
|
|
75
|
+
return domain.trim().toLowerCase().replace(/^@+/, "");
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/** @internal */
|
|
79
|
+
export function enterpriseOidcProviderId(enterpriseId: string): string {
|
|
80
|
+
return `${ENTERPRISE_OIDC_PROVIDER_PREFIX}${enterpriseId}`;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/** @internal */
|
|
84
|
+
export function enterpriseSamlProviderId(enterpriseId: string): string {
|
|
85
|
+
return `${ENTERPRISE_SAML_PROVIDER_PREFIX}${enterpriseId}`;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/** @internal */
|
|
89
|
+
export function getEnterpriseSamlUrls(opts: {
|
|
90
|
+
rootUrl: string;
|
|
91
|
+
source: EnterpriseSamlSource;
|
|
92
|
+
}): EnterpriseSamlUrls {
|
|
93
|
+
const root = opts.rootUrl.replace(/\/$/, "");
|
|
94
|
+
const metadataBase = `${root}/api/auth/sso/${opts.source.id}/saml/metadata`;
|
|
95
|
+
const acsBase = `${root}/api/auth/sso/${opts.source.id}/saml/acs`;
|
|
96
|
+
const sloBase = `${root}/api/auth/sso/${opts.source.id}/saml/slo`;
|
|
97
|
+
return {
|
|
98
|
+
metadataUrl: metadataBase,
|
|
99
|
+
acsUrl: acsBase,
|
|
100
|
+
sloUrl: sloBase,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/** @internal */
|
|
105
|
+
export function getEnterpriseOidcUrls(opts: {
|
|
106
|
+
rootUrl: string;
|
|
107
|
+
enterpriseId: string;
|
|
108
|
+
}) {
|
|
109
|
+
const root = opts.rootUrl.replace(/\/$/, "");
|
|
110
|
+
return {
|
|
111
|
+
signInUrl: `${root}/api/auth/sso/${opts.enterpriseId}/oidc/signin`,
|
|
112
|
+
callbackUrl: `${root}/api/auth/sso/${opts.enterpriseId}/oidc/callback`,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/** @internal */
|
|
117
|
+
export function isEnterpriseSamlSourceActive(
|
|
118
|
+
source: EnterpriseSamlLoadedSource,
|
|
119
|
+
) {
|
|
120
|
+
return source.status === "active";
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/** @internal */
|
|
124
|
+
export function isEnterpriseProviderId(providerId: string): boolean {
|
|
125
|
+
return (
|
|
126
|
+
providerId.startsWith(ENTERPRISE_OIDC_PROVIDER_PREFIX) ||
|
|
127
|
+
providerId.startsWith(ENTERPRISE_SAML_PROVIDER_PREFIX)
|
|
128
|
+
);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export const asRecord = (value: unknown) =>
|
|
132
|
+
typeof value === "object" && value !== null
|
|
133
|
+
? (value as Record<string, any>)
|
|
134
|
+
: null;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { v } from "convex/values";
|
|
2
|
+
|
|
3
|
+
/** @internal Shared validator for mounted enterprise connection status fields. */
|
|
4
|
+
export const enterpriseStatusValidator = v.union(
|
|
5
|
+
v.literal("draft"),
|
|
6
|
+
v.literal("active"),
|
|
7
|
+
v.literal("disabled"),
|
|
8
|
+
);
|
|
9
|
+
|
|
10
|
+
/** @internal Structured validator for mounted enterprise policy patch payloads. */
|
|
11
|
+
export const enterprisePolicyPatchValidator = v.object({
|
|
12
|
+
identity: v.optional(
|
|
13
|
+
v.object({
|
|
14
|
+
accountLinking: v.optional(
|
|
15
|
+
v.object({
|
|
16
|
+
oidc: v.optional(
|
|
17
|
+
v.union(v.literal("verifiedEmail"), v.literal("none")),
|
|
18
|
+
),
|
|
19
|
+
saml: v.optional(
|
|
20
|
+
v.union(v.literal("verifiedEmail"), v.literal("none")),
|
|
21
|
+
),
|
|
22
|
+
}),
|
|
23
|
+
),
|
|
24
|
+
}),
|
|
25
|
+
),
|
|
26
|
+
provisioning: v.optional(
|
|
27
|
+
v.object({
|
|
28
|
+
scimReuse: v.optional(
|
|
29
|
+
v.object({
|
|
30
|
+
user: v.optional(v.union(v.literal("externalId"), v.literal("none"))),
|
|
31
|
+
}),
|
|
32
|
+
),
|
|
33
|
+
jit: v.optional(
|
|
34
|
+
v.object({
|
|
35
|
+
mode: v.optional(
|
|
36
|
+
v.union(
|
|
37
|
+
v.literal("off"),
|
|
38
|
+
v.literal("createUser"),
|
|
39
|
+
v.literal("createUserAndMembership"),
|
|
40
|
+
),
|
|
41
|
+
),
|
|
42
|
+
defaultRoleIds: v.optional(v.array(v.string())),
|
|
43
|
+
}),
|
|
44
|
+
),
|
|
45
|
+
deprovision: v.optional(
|
|
46
|
+
v.object({
|
|
47
|
+
mode: v.optional(v.union(v.literal("soft"), v.literal("hard"))),
|
|
48
|
+
}),
|
|
49
|
+
),
|
|
50
|
+
}),
|
|
51
|
+
),
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
/** @internal Filter validator for mounted enterprise connection list queries. */
|
|
55
|
+
export const enterpriseConnectionWhereValidator = v.object({
|
|
56
|
+
groupId: v.optional(v.string()),
|
|
57
|
+
slug: v.optional(v.string()),
|
|
58
|
+
status: v.optional(enterpriseStatusValidator),
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
/** @internal Domain replacement input validator for mounted enterprise APIs. */
|
|
62
|
+
export const enterpriseDomainInputValidator = v.object({
|
|
63
|
+
domain: v.string(),
|
|
64
|
+
isPrimary: v.optional(v.boolean()),
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
/** @internal Input validator for enterprise domain verification actions. */
|
|
68
|
+
export const enterpriseDomainVerificationInputValidator = v.object({
|
|
69
|
+
enterpriseId: v.string(),
|
|
70
|
+
domain: v.string(),
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
/** @internal SAML attribute mapping validator for mounted SSO admin APIs. */
|
|
74
|
+
export const enterpriseSamlAttributeMappingValidator = v.object({
|
|
75
|
+
subject: v.optional(v.string()),
|
|
76
|
+
email: v.optional(v.string()),
|
|
77
|
+
name: v.optional(v.string()),
|
|
78
|
+
firstName: v.optional(v.string()),
|
|
79
|
+
lastName: v.optional(v.string()),
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
/** @internal SAML service-provider override validator for mounted admin APIs. */
|
|
83
|
+
export const enterpriseSamlSpValidator = v.object({
|
|
84
|
+
entityId: v.optional(v.string()),
|
|
85
|
+
acsUrl: v.optional(v.string()),
|
|
86
|
+
sloUrl: v.optional(v.string()),
|
|
87
|
+
signingCert: v.optional(v.union(v.string(), v.array(v.string()))),
|
|
88
|
+
encryptCert: v.optional(v.union(v.string(), v.array(v.string()))),
|
|
89
|
+
privateKey: v.optional(v.string()),
|
|
90
|
+
privateKeyPass: v.optional(v.string()),
|
|
91
|
+
encPrivateKey: v.optional(v.string()),
|
|
92
|
+
encPrivateKeyPass: v.optional(v.string()),
|
|
93
|
+
});
|
package/src/server/errors.ts
CHANGED
|
@@ -5,6 +5,13 @@
|
|
|
5
5
|
* `{ code, message }` payload so clients can distinguish error types
|
|
6
6
|
* and display user-friendly messages.
|
|
7
7
|
*
|
|
8
|
+
* **Consumer API:** Use {@link throwAuthError} to throw structured errors
|
|
9
|
+
* from your own Convex functions (e.g. custom authorization checks).
|
|
10
|
+
*
|
|
11
|
+
* **Internal pattern:** The library itself uses `new AuthError(code)` with
|
|
12
|
+
* the `@robelest/fx` effect system (`Fx.fail(new AuthError(code))`).
|
|
13
|
+
* You do not need to use `AuthError` directly — it is an implementation detail.
|
|
14
|
+
*
|
|
8
15
|
* @module
|
|
9
16
|
*/
|
|
10
17
|
|
|
@@ -28,164 +35,132 @@ import { ConvexError } from "convex/values";
|
|
|
28
35
|
*/
|
|
29
36
|
export const AUTH_ERRORS = {
|
|
30
37
|
// ---- Configuration ----
|
|
31
|
-
PROVIDER_NOT_CONFIGURED:
|
|
32
|
-
"This sign-in method is not available.",
|
|
38
|
+
PROVIDER_NOT_CONFIGURED: "This sign-in method is not available.",
|
|
33
39
|
EMAIL_CONFIG_REQUIRED:
|
|
34
|
-
"Email transport is not configured. Configure email in
|
|
35
|
-
MISSING_ENV_VAR:
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"Action context is required for this operation.",
|
|
40
|
+
"Email transport is not configured. Configure email in createAuth(...).",
|
|
41
|
+
MISSING_ENV_VAR: "A required server environment variable is missing.",
|
|
42
|
+
MISSING_ACTION_CONTEXT: "Action context is required for this operation.",
|
|
43
|
+
INVALID_PARAMETERS: "The provided parameters are invalid.",
|
|
39
44
|
|
|
40
45
|
// ---- Authentication ----
|
|
41
|
-
NOT_SIGNED_IN:
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
NOT_SIGNED_IN: "You must be signed in to perform this action.",
|
|
47
|
+
INVALID_VERIFICATION_CODE: "Invalid or expired verification code.",
|
|
48
|
+
INVALID_REFRESH_TOKEN: "Your session has expired. Please sign in again.",
|
|
49
|
+
AUTH_HANDSHAKE_TIMEOUT:
|
|
50
|
+
"Sign-in succeeded but authentication confirmation timed out.",
|
|
51
|
+
AUTH_HANDSHAKE_REJECTED:
|
|
52
|
+
"Authentication was rejected while confirming the session.",
|
|
47
53
|
SIGN_IN_MISSING_PARAMS:
|
|
48
54
|
"Cannot sign in: missing provider, code, or refresh token.",
|
|
49
|
-
UNSUPPORTED_PROVIDER_TYPE:
|
|
50
|
-
|
|
51
|
-
INVALID_REDIRECT:
|
|
52
|
-
"Invalid redirect URL.",
|
|
55
|
+
UNSUPPORTED_PROVIDER_TYPE: "This provider type is not supported.",
|
|
56
|
+
INVALID_REDIRECT: "Invalid redirect URL.",
|
|
53
57
|
|
|
54
58
|
// ---- Email / Phone ----
|
|
55
|
-
EMAIL_SEND_FAILED:
|
|
56
|
-
"Failed to send verification email. Please try again.",
|
|
59
|
+
EMAIL_SEND_FAILED: "Failed to send verification email. Please try again.",
|
|
57
60
|
|
|
58
61
|
// ---- API Keys ----
|
|
59
|
-
INVALID_API_KEY:
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
API_KEY_RATE_LIMITED:
|
|
66
|
-
"API key rate limit exceeded. Please try again later.",
|
|
67
|
-
API_KEY_INVALID_SCOPE:
|
|
68
|
-
"Invalid scope requested for API key.",
|
|
62
|
+
INVALID_API_KEY: "Invalid API key.",
|
|
63
|
+
API_KEY_REVOKED: "This API key has been revoked.",
|
|
64
|
+
API_KEY_EXPIRED: "This API key has expired.",
|
|
65
|
+
API_KEY_RATE_LIMITED: "API key rate limit exceeded. Please try again later.",
|
|
66
|
+
API_KEY_INVALID_SCOPE: "Invalid scope requested for API key.",
|
|
67
|
+
KEY_NOT_FOUND: "API key not found.",
|
|
69
68
|
|
|
70
69
|
// ---- HTTP Bearer Auth ----
|
|
71
|
-
MISSING_BEARER_TOKEN:
|
|
72
|
-
|
|
73
|
-
SCOPE_CHECK_FAILED:
|
|
74
|
-
"This API key does not have the required permissions.",
|
|
70
|
+
MISSING_BEARER_TOKEN: "Missing or malformed Authorization: Bearer header.",
|
|
71
|
+
SCOPE_CHECK_FAILED: "This API key does not have the required permissions.",
|
|
75
72
|
|
|
76
73
|
// ---- OAuth ----
|
|
77
|
-
OAUTH_MISSING_PROVIDER:
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
OAUTH_INVALID_STATE:
|
|
82
|
-
"Invalid OAuth state. Please try signing in again.",
|
|
83
|
-
OAUTH_PROVIDER_ERROR:
|
|
84
|
-
"The sign-in provider returned an error.",
|
|
74
|
+
OAUTH_MISSING_PROVIDER: "Missing OAuth provider ID.",
|
|
75
|
+
OAUTH_MISSING_VERIFIER: "Missing sign-in verifier.",
|
|
76
|
+
OAUTH_INVALID_STATE: "Invalid OAuth state. Please try signing in again.",
|
|
77
|
+
OAUTH_PROVIDER_ERROR: "The sign-in provider returned an error.",
|
|
85
78
|
OAUTH_MISSING_ID_TOKEN:
|
|
86
79
|
"ID token claims are missing from the provider response.",
|
|
87
|
-
OAUTH_INVALID_PROFILE:
|
|
88
|
-
"The sign-in provider returned an invalid profile.",
|
|
80
|
+
OAUTH_INVALID_PROFILE: "The sign-in provider returned an invalid profile.",
|
|
89
81
|
OAUTH_UNSUPPORTED_AUTH_METHOD:
|
|
90
82
|
"Unsupported OAuth client authentication method.",
|
|
91
|
-
OAUTH_NO_USERINFO:
|
|
92
|
-
"No userinfo endpoint configured for this provider.",
|
|
83
|
+
OAUTH_NO_USERINFO: "No userinfo endpoint configured for this provider.",
|
|
93
84
|
|
|
94
85
|
// ---- Credentials ----
|
|
95
|
-
ACCOUNT_ALREADY_EXISTS:
|
|
96
|
-
|
|
97
|
-
ACCOUNT_NOT_FOUND:
|
|
98
|
-
"Account not found.",
|
|
86
|
+
ACCOUNT_ALREADY_EXISTS: "An account with these credentials already exists.",
|
|
87
|
+
ACCOUNT_NOT_FOUND: "Account not found.",
|
|
99
88
|
INVALID_CREDENTIALS_PROVIDER:
|
|
100
89
|
"This provider does not support credential operations.",
|
|
101
90
|
MISSING_CRYPTO_FUNCTION:
|
|
102
91
|
"This provider is missing a required cryptographic function.",
|
|
103
|
-
USER_UPDATE_FAILED:
|
|
104
|
-
"Could not update the user record.",
|
|
92
|
+
USER_UPDATE_FAILED: "Could not update the user record.",
|
|
105
93
|
|
|
106
94
|
// ---- Verifier ----
|
|
107
|
-
INVALID_VERIFIER:
|
|
108
|
-
"Invalid or expired verifier.",
|
|
95
|
+
INVALID_VERIFIER: "Invalid or expired verifier.",
|
|
109
96
|
|
|
110
97
|
// ---- Passkey ----
|
|
111
98
|
PASSKEY_MISSING_CONFIG:
|
|
112
99
|
"Passkey provider requires SITE_URL or explicit rpId configuration.",
|
|
113
|
-
PASSKEY_AUTH_REQUIRED:
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
PASSKEY_USER_PRESENCE:
|
|
126
|
-
"User presence flag not set.",
|
|
127
|
-
PASSKEY_USER_VERIFICATION:
|
|
128
|
-
"User verification required but not performed.",
|
|
129
|
-
PASSKEY_NO_CREDENTIAL:
|
|
130
|
-
"No credential in attestation.",
|
|
131
|
-
PASSKEY_UNSUPPORTED_ALGORITHM:
|
|
132
|
-
"Unsupported passkey algorithm.",
|
|
133
|
-
PASSKEY_INVALID_SIGNATURE:
|
|
134
|
-
"Invalid passkey signature.",
|
|
135
|
-
PASSKEY_UNKNOWN_CREDENTIAL:
|
|
136
|
-
"Unknown passkey credential.",
|
|
100
|
+
PASSKEY_AUTH_REQUIRED: "Sign in first, then add a passkey to your account.",
|
|
101
|
+
PASSKEY_MISSING_VERIFIER: "Missing verifier for passkey operation.",
|
|
102
|
+
PASSKEY_INVALID_CLIENT_DATA: "Invalid passkey client data.",
|
|
103
|
+
PASSKEY_INVALID_ORIGIN: "Passkey origin does not match the expected value.",
|
|
104
|
+
PASSKEY_INVALID_CHALLENGE: "Invalid or expired passkey challenge.",
|
|
105
|
+
PASSKEY_RP_MISMATCH: "Relying party ID mismatch.",
|
|
106
|
+
PASSKEY_USER_PRESENCE: "User presence flag not set.",
|
|
107
|
+
PASSKEY_USER_VERIFICATION: "User verification required but not performed.",
|
|
108
|
+
PASSKEY_NO_CREDENTIAL: "No credential in attestation.",
|
|
109
|
+
PASSKEY_UNSUPPORTED_ALGORITHM: "Unsupported passkey algorithm.",
|
|
110
|
+
PASSKEY_INVALID_SIGNATURE: "Invalid passkey signature.",
|
|
111
|
+
PASSKEY_UNKNOWN_CREDENTIAL: "Unknown passkey credential.",
|
|
137
112
|
PASSKEY_COUNTER_ERROR:
|
|
138
113
|
"Authenticator counter did not increase — possible credential cloning detected.",
|
|
139
|
-
PASSKEY_MISSING_FLOW:
|
|
140
|
-
|
|
141
|
-
PASSKEY_UNKNOWN_FLOW:
|
|
142
|
-
"Unknown passkey flow.",
|
|
114
|
+
PASSKEY_MISSING_FLOW: "Missing passkey flow parameter.",
|
|
115
|
+
PASSKEY_UNKNOWN_FLOW: "Unknown passkey flow.",
|
|
143
116
|
|
|
144
117
|
// ---- TOTP ----
|
|
145
|
-
TOTP_AUTH_REQUIRED:
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
"TOTP enrollment is already verified.",
|
|
157
|
-
TOTP_INVALID_CODE:
|
|
158
|
-
"Invalid TOTP code.",
|
|
159
|
-
TOTP_INVALID_VERIFIER:
|
|
160
|
-
"Invalid or expired TOTP verifier.",
|
|
161
|
-
TOTP_NO_ENROLLMENT:
|
|
162
|
-
"No verified TOTP enrollment found.",
|
|
163
|
-
TOTP_MISSING_FLOW:
|
|
164
|
-
"Missing TOTP flow parameter.",
|
|
165
|
-
TOTP_UNKNOWN_FLOW:
|
|
166
|
-
"Unknown TOTP flow.",
|
|
118
|
+
TOTP_AUTH_REQUIRED: "Sign in first, then set up two-factor authentication.",
|
|
119
|
+
TOTP_MISSING_VERIFIER: "Missing verifier for TOTP operation.",
|
|
120
|
+
TOTP_MISSING_CODE: "Missing TOTP code.",
|
|
121
|
+
TOTP_MISSING_ID: "Missing TOTP enrollment ID.",
|
|
122
|
+
TOTP_NOT_FOUND: "TOTP enrollment not found.",
|
|
123
|
+
TOTP_ALREADY_VERIFIED: "TOTP enrollment is already verified.",
|
|
124
|
+
TOTP_INVALID_CODE: "Invalid TOTP code.",
|
|
125
|
+
TOTP_INVALID_VERIFIER: "Invalid or expired TOTP verifier.",
|
|
126
|
+
TOTP_NO_ENROLLMENT: "No verified TOTP enrollment found.",
|
|
127
|
+
TOTP_MISSING_FLOW: "Missing TOTP flow parameter.",
|
|
128
|
+
TOTP_UNKNOWN_FLOW: "Unknown TOTP flow.",
|
|
167
129
|
|
|
168
130
|
// ---- Device Authorization (RFC 8628) ----
|
|
169
131
|
DEVICE_CODE_EXPIRED:
|
|
170
132
|
"The device code has expired. Please start a new authorization request.",
|
|
171
|
-
DEVICE_CODE_DENIED:
|
|
172
|
-
|
|
173
|
-
DEVICE_AUTHORIZATION_PENDING:
|
|
174
|
-
"The user has not yet authorized this device.",
|
|
133
|
+
DEVICE_CODE_DENIED: "The authorization request was denied.",
|
|
134
|
+
DEVICE_AUTHORIZATION_PENDING: "The user has not yet authorized this device.",
|
|
175
135
|
DEVICE_SLOW_DOWN:
|
|
176
136
|
"Polling too frequently. Increase the interval between requests.",
|
|
177
|
-
DEVICE_INVALID_USER_CODE:
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
137
|
+
DEVICE_INVALID_USER_CODE: "Invalid or expired user code.",
|
|
138
|
+
DEVICE_ALREADY_AUTHORIZED: "This device code has already been authorized.",
|
|
139
|
+
DEVICE_MISSING_FLOW: "Missing device flow parameter.",
|
|
140
|
+
DEVICE_UNKNOWN_FLOW: "Unknown device flow.",
|
|
141
|
+
|
|
142
|
+
// ---- Invites ----
|
|
143
|
+
INVITE_EXPIRED: "This invitation has expired.",
|
|
144
|
+
INVITE_EMAIL_MISMATCH: "This invitation is for a different email.",
|
|
145
|
+
INVITE_ALREADY_ACCEPTED: "This invitation has already been accepted.",
|
|
146
|
+
DUPLICATE_INVITE:
|
|
147
|
+
"A pending invite already exists for this email in this group.",
|
|
148
|
+
INVITE_NOT_FOUND: "Invite not found.",
|
|
149
|
+
INVITE_NOT_PENDING: "Cannot accept or revoke invite that is not pending.",
|
|
150
|
+
|
|
151
|
+
// ---- Groups / Members ----
|
|
152
|
+
FORBIDDEN: "Access denied.",
|
|
153
|
+
NO_ACTIVE_GROUP: "User has no active group set.",
|
|
154
|
+
DUPLICATE_MEMBERSHIP: "User is already a member of this group.",
|
|
155
|
+
|
|
156
|
+
// ---- Enterprise ----
|
|
157
|
+
ENTERPRISE_ALREADY_EXISTS:
|
|
158
|
+
"An enterprise record already exists for this group.",
|
|
159
|
+
ENTERPRISE_DOMAIN_TAKEN:
|
|
160
|
+
"That domain is already attached to another enterprise.",
|
|
185
161
|
|
|
186
162
|
// ---- Internal (should never reach user) ----
|
|
187
|
-
INTERNAL_ERROR:
|
|
188
|
-
"An unexpected error occurred.",
|
|
163
|
+
INTERNAL_ERROR: "An unexpected error occurred.",
|
|
189
164
|
} as const satisfies Record<string, string>;
|
|
190
165
|
|
|
191
166
|
/** Union of all recognized auth error code strings (keys of {@link AUTH_ERRORS}). */
|
|
@@ -198,9 +173,26 @@ export type AuthErrorCode = keyof typeof AUTH_ERRORS;
|
|
|
198
173
|
/**
|
|
199
174
|
* Throw a structured `ConvexError` with `{ code, message }`.
|
|
200
175
|
*
|
|
176
|
+
* Use this in your own Convex functions (queries, mutations, actions)
|
|
177
|
+
* to throw auth-domain errors that clients can match on by `code`.
|
|
178
|
+
* The library itself uses `AuthError` internally, but consumers
|
|
179
|
+
* should prefer this helper for simplicity.
|
|
180
|
+
*
|
|
201
181
|
* @param code Machine-readable error code from `AUTH_ERRORS`.
|
|
202
182
|
* @param message Optional override for the default human-readable message.
|
|
203
183
|
* @param context Optional extra fields merged into the error payload.
|
|
184
|
+
*
|
|
185
|
+
* @example
|
|
186
|
+
* ```ts
|
|
187
|
+
* import { throwAuthError } from "@robelest/convex-auth/server";
|
|
188
|
+
*
|
|
189
|
+
* // In a custom mutation:
|
|
190
|
+
* if (!isAdmin) {
|
|
191
|
+
* throwAuthError("FORBIDDEN");
|
|
192
|
+
* }
|
|
193
|
+
* ```
|
|
194
|
+
*
|
|
195
|
+
* @throws {ConvexError} Always — throws a `ConvexError` with `{ code, message }` payload.
|
|
204
196
|
*/
|
|
205
197
|
export function throwAuthError(
|
|
206
198
|
code: AuthErrorCode,
|
|
@@ -264,11 +256,30 @@ export function isAuthError(
|
|
|
264
256
|
*/
|
|
265
257
|
export function parseAuthError(
|
|
266
258
|
error: unknown,
|
|
267
|
-
):
|
|
259
|
+
):
|
|
260
|
+
| { code: AuthErrorCode; message: string }
|
|
261
|
+
| { code: null; message: string }
|
|
262
|
+
| null {
|
|
268
263
|
if (isAuthError(error)) {
|
|
269
|
-
const { code, message } = error.data as {
|
|
264
|
+
const { code, message } = error.data as {
|
|
265
|
+
code: AuthErrorCode;
|
|
266
|
+
message: string;
|
|
267
|
+
};
|
|
270
268
|
return { code, message };
|
|
271
269
|
}
|
|
270
|
+
// Recognize the Fx-native AuthError class (has _tag + code)
|
|
271
|
+
if (
|
|
272
|
+
error instanceof Error &&
|
|
273
|
+
"_tag" in error &&
|
|
274
|
+
(error as any)._tag === "AuthError" &&
|
|
275
|
+
"code" in error &&
|
|
276
|
+
typeof (error as any).code === "string"
|
|
277
|
+
) {
|
|
278
|
+
return {
|
|
279
|
+
code: (error as any).code as AuthErrorCode,
|
|
280
|
+
message: error.message,
|
|
281
|
+
};
|
|
282
|
+
}
|
|
272
283
|
if (error instanceof ConvexError && typeof error.data === "string") {
|
|
273
284
|
return { code: null, message: error.data };
|
|
274
285
|
}
|