@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
|
@@ -1,870 +0,0 @@
|
|
|
1
|
-
import { AuthProviderConfig, ConvexAuthConfig, CorsConfig, FunctionReferenceFromExport, HttpKeyContext, KeyScope, ScopeChecker, UserOrderBy, UserWhere } from "../types.js";
|
|
2
|
-
import { Doc, KeyDoc, Tokens } from "./types.js";
|
|
3
|
-
import * as convex_server16 from "convex/server";
|
|
4
|
-
import { GenericActionCtx, GenericDataModel, HttpRouter } from "convex/server";
|
|
5
|
-
import { GenericId } from "convex/values";
|
|
6
|
-
|
|
7
|
-
//#region src/server/implementation/index.d.ts
|
|
8
|
-
/**
|
|
9
|
-
* The type of the signIn Convex Action returned from the auth() helper.
|
|
10
|
-
*
|
|
11
|
-
* This type is exported for implementors of other client integrations.
|
|
12
|
-
* However it is not stable, and may change until this library reaches 1.0.
|
|
13
|
-
*/
|
|
14
|
-
type SignInAction = FunctionReferenceFromExport<ReturnType<typeof Auth>["signIn"]>;
|
|
15
|
-
/**
|
|
16
|
-
* The type of the signOut Convex Action returned from the auth() helper.
|
|
17
|
-
*
|
|
18
|
-
* This type is exported for implementors of other client integrations.
|
|
19
|
-
* However it is not stable, and may change until this library reaches 1.0.
|
|
20
|
-
*/
|
|
21
|
-
type SignOutAction = FunctionReferenceFromExport<ReturnType<typeof Auth>["signOut"]>;
|
|
22
|
-
/**
|
|
23
|
-
* Configure the Convex Auth library. Returns an object with
|
|
24
|
-
* functions and `auth` helper. You must export the functions
|
|
25
|
-
* from `convex/auth.ts` to make them callable:
|
|
26
|
-
*
|
|
27
|
-
* ```ts filename="convex/auth.ts"
|
|
28
|
-
* import { Auth } from "@robelest/convex-auth/component";
|
|
29
|
-
* import { components } from "./_generated/api";
|
|
30
|
-
*
|
|
31
|
-
* export const { auth, signIn, signOut, store } = Auth({
|
|
32
|
-
* component: components.auth,
|
|
33
|
-
* providers: [],
|
|
34
|
-
* });
|
|
35
|
-
* ```
|
|
36
|
-
*
|
|
37
|
-
* @returns An object with fields you should reexport from your
|
|
38
|
-
* `convex/auth.ts` file.
|
|
39
|
-
*/
|
|
40
|
-
declare function Auth(config_: ConvexAuthConfig): {
|
|
41
|
-
/**
|
|
42
|
-
* Helper for configuring HTTP actions.
|
|
43
|
-
*/
|
|
44
|
-
auth: {
|
|
45
|
-
user: {
|
|
46
|
-
/**
|
|
47
|
-
* Get the current user's ID from the auth context, or `null` if
|
|
48
|
-
* not signed in.
|
|
49
|
-
*
|
|
50
|
-
* @param ctx - Any Convex context with an `auth` field (query, mutation, or action).
|
|
51
|
-
* @returns The user's `Id<"user">`, or `null` when unauthenticated.
|
|
52
|
-
*/
|
|
53
|
-
current: (ctx: {
|
|
54
|
-
auth: Auth;
|
|
55
|
-
}) => Promise<GenericId<"user"> | null>;
|
|
56
|
-
/**
|
|
57
|
-
* Get the current user's ID, or throw if not signed in.
|
|
58
|
-
* Use this when authentication is required.
|
|
59
|
-
*
|
|
60
|
-
* @param ctx - Any Convex context with an `auth` field.
|
|
61
|
-
* @returns The user's `Id<"user">`.
|
|
62
|
-
* @throws `ConvexError` with code `NOT_SIGNED_IN` when unauthenticated.
|
|
63
|
-
*/
|
|
64
|
-
require: (ctx: {
|
|
65
|
-
auth: Auth;
|
|
66
|
-
}) => Promise<GenericId<"user">>;
|
|
67
|
-
/**
|
|
68
|
-
* Retrieve a user document by their ID.
|
|
69
|
-
*
|
|
70
|
-
* @param ctx - Convex context with `runQuery`.
|
|
71
|
-
* @param userId - The user document ID.
|
|
72
|
-
* @returns The user document, or `null` if not found.
|
|
73
|
-
*/
|
|
74
|
-
get: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, userId: string) => Promise<any>;
|
|
75
|
-
/**
|
|
76
|
-
* List users with optional filters, sorting, and pagination.
|
|
77
|
-
*
|
|
78
|
-
* @param opts.where - Optional filters (email, phone, name, anonymous).
|
|
79
|
-
* @param opts.limit - Max users to return (default 50).
|
|
80
|
-
* @param opts.cursor - Pagination cursor from a previous page.
|
|
81
|
-
* @param opts.orderBy - Sort field.
|
|
82
|
-
* @param opts.order - Sort direction.
|
|
83
|
-
* @returns `{ items, nextCursor }`.
|
|
84
|
-
*/
|
|
85
|
-
list: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, opts?: {
|
|
86
|
-
where?: UserWhere;
|
|
87
|
-
limit?: number;
|
|
88
|
-
cursor?: string | null;
|
|
89
|
-
orderBy?: UserOrderBy;
|
|
90
|
-
order?: "asc" | "desc";
|
|
91
|
-
}) => Promise<any>;
|
|
92
|
-
/**
|
|
93
|
-
* Get the currently signed-in user's document, or `null` if not
|
|
94
|
-
* signed in. Convenience combining `current()` + `get()`.
|
|
95
|
-
*
|
|
96
|
-
* @param ctx - Convex context with `auth` and `runQuery`.
|
|
97
|
-
* @returns The user document, or `null` when unauthenticated.
|
|
98
|
-
*/
|
|
99
|
-
viewer: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery"> & {
|
|
100
|
-
auth: Auth;
|
|
101
|
-
}) => Promise<any>;
|
|
102
|
-
/**
|
|
103
|
-
* Update a user document with partial data.
|
|
104
|
-
*
|
|
105
|
-
* @param ctx - Convex context with `runMutation`.
|
|
106
|
-
* @param userId - The user document ID.
|
|
107
|
-
* @param data - Partial data to merge into the user document.
|
|
108
|
-
*/
|
|
109
|
-
patch: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, userId: string, data: Record<string, unknown>) => Promise<void>;
|
|
110
|
-
/**
|
|
111
|
-
* Query a user's group memberships.
|
|
112
|
-
*/
|
|
113
|
-
group: {
|
|
114
|
-
/**
|
|
115
|
-
* List all groups a user belongs to. Returns member records which
|
|
116
|
-
* include the `groupId`, `role`, `status`, and `extend` for each.
|
|
117
|
-
*
|
|
118
|
-
* This is a convenience wrapper around `auth.group.member.list`
|
|
119
|
-
* with `where: { userId }`.
|
|
120
|
-
*/
|
|
121
|
-
list: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, opts: {
|
|
122
|
-
userId: string;
|
|
123
|
-
limit?: number;
|
|
124
|
-
cursor?: string | null;
|
|
125
|
-
order?: "asc" | "desc";
|
|
126
|
-
}) => Promise<any>;
|
|
127
|
-
/**
|
|
128
|
-
* Look up a user's membership in a specific group. Returns the member
|
|
129
|
-
* record (with role, status, extend) or `null` if the user is not
|
|
130
|
-
* a member.
|
|
131
|
-
*/
|
|
132
|
-
get: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, opts: {
|
|
133
|
-
userId: string;
|
|
134
|
-
groupId: string;
|
|
135
|
-
}) => Promise<any>;
|
|
136
|
-
};
|
|
137
|
-
};
|
|
138
|
-
session: {
|
|
139
|
-
/**
|
|
140
|
-
* Get the current session ID from the auth context, or `null` if
|
|
141
|
-
* not signed in.
|
|
142
|
-
*
|
|
143
|
-
* @param ctx - Any Convex context with an `auth` field.
|
|
144
|
-
* @returns The session's `Id<"session">`, or `null` when unauthenticated.
|
|
145
|
-
*/
|
|
146
|
-
current: (ctx: {
|
|
147
|
-
auth: Auth;
|
|
148
|
-
}) => Promise<GenericId<"session"> | null>;
|
|
149
|
-
/**
|
|
150
|
-
* Invalidate sessions for a user, optionally preserving specific sessions.
|
|
151
|
-
*
|
|
152
|
-
* @param ctx - Convex action context.
|
|
153
|
-
* @param args.userId - The user whose sessions to invalidate.
|
|
154
|
-
* @param args.except - Session IDs to preserve (e.g. the current session).
|
|
155
|
-
*/
|
|
156
|
-
invalidate: <DataModel extends GenericDataModel>(ctx: GenericActionCtx<DataModel>, args: {
|
|
157
|
-
userId: GenericId<"user">;
|
|
158
|
-
except?: GenericId<"session">[];
|
|
159
|
-
}) => Promise<void>;
|
|
160
|
-
};
|
|
161
|
-
account: {
|
|
162
|
-
/**
|
|
163
|
-
* Create an account and user for a credentials provider.
|
|
164
|
-
*
|
|
165
|
-
* @param ctx - Convex action context.
|
|
166
|
-
* @param args - Provider ID, account credentials, profile data, and link flags.
|
|
167
|
-
* @returns `{ account, user }` — the created account and user documents.
|
|
168
|
-
*/
|
|
169
|
-
create: <DataModel extends GenericDataModel>(ctx: GenericActionCtx<DataModel>, args: {
|
|
170
|
-
provider: string;
|
|
171
|
-
account: {
|
|
172
|
-
id: string;
|
|
173
|
-
secret?: string;
|
|
174
|
-
};
|
|
175
|
-
profile: Record<string, unknown>;
|
|
176
|
-
shouldLinkViaEmail?: boolean;
|
|
177
|
-
shouldLinkViaPhone?: boolean;
|
|
178
|
-
}) => Promise<{
|
|
179
|
-
account: Doc<"account">;
|
|
180
|
-
user: Doc<"user">;
|
|
181
|
-
}>;
|
|
182
|
-
/**
|
|
183
|
-
* Retrieve an account and user for a credentials provider.
|
|
184
|
-
*
|
|
185
|
-
* @param ctx - Convex action context.
|
|
186
|
-
* @param args - Provider ID and account credentials (id, optional secret).
|
|
187
|
-
* @returns `{ account, user }` — the matched account and user documents.
|
|
188
|
-
* @throws `ConvexError` with code `ACCOUNT_NOT_FOUND` when no match exists.
|
|
189
|
-
*/
|
|
190
|
-
get: <DataModel extends GenericDataModel>(ctx: GenericActionCtx<DataModel>, args: {
|
|
191
|
-
provider: string;
|
|
192
|
-
account: {
|
|
193
|
-
id: string;
|
|
194
|
-
secret?: string;
|
|
195
|
-
};
|
|
196
|
-
}) => Promise<{
|
|
197
|
-
account: Doc<"account">;
|
|
198
|
-
user: Doc<"user">;
|
|
199
|
-
}>;
|
|
200
|
-
/**
|
|
201
|
-
* Update account credentials (secret) for an existing account.
|
|
202
|
-
*
|
|
203
|
-
* @param ctx - Convex action context.
|
|
204
|
-
* @param args - Provider ID and new account credentials (id + secret).
|
|
205
|
-
*/
|
|
206
|
-
update: <DataModel extends GenericDataModel>(ctx: GenericActionCtx<DataModel>, args: {
|
|
207
|
-
provider: string;
|
|
208
|
-
account: {
|
|
209
|
-
id: string;
|
|
210
|
-
secret: string;
|
|
211
|
-
};
|
|
212
|
-
}) => Promise<void>;
|
|
213
|
-
};
|
|
214
|
-
provider: {
|
|
215
|
-
/**
|
|
216
|
-
* Sign in via another provider, typically from a credentials flow.
|
|
217
|
-
*
|
|
218
|
-
* @param ctx - Convex action context.
|
|
219
|
-
* @param provider - The provider config to sign in with.
|
|
220
|
-
* @param args - Optional account ID and params.
|
|
221
|
-
* @returns `{ userId, sessionId }` on success, or `null`.
|
|
222
|
-
*/
|
|
223
|
-
signIn: <DataModel extends GenericDataModel>(ctx: GenericActionCtx<DataModel>, provider: AuthProviderConfig, args: {
|
|
224
|
-
accountId?: GenericId<"account">;
|
|
225
|
-
params?: Record<string, unknown>;
|
|
226
|
-
}) => Promise<{
|
|
227
|
-
userId: GenericId<"user">;
|
|
228
|
-
sessionId: GenericId<"session">;
|
|
229
|
-
} | null>;
|
|
230
|
-
};
|
|
231
|
-
/**
|
|
232
|
-
* Hierarchical group management. Groups can nest arbitrarily deep
|
|
233
|
-
* via `parentGroupId`. A root group has no parent.
|
|
234
|
-
*
|
|
235
|
-
* ```ts
|
|
236
|
-
* const groupId = await auth.group.create(ctx, { name: "Acme Corp" });
|
|
237
|
-
* const subGroupId = await auth.group.create(ctx, {
|
|
238
|
-
* name: "Engineering",
|
|
239
|
-
* parentGroupId: groupId,
|
|
240
|
-
* });
|
|
241
|
-
* ```
|
|
242
|
-
*/
|
|
243
|
-
group: {
|
|
244
|
-
/**
|
|
245
|
-
* Create a new group. Omit `parentGroupId` for a root-level group,
|
|
246
|
-
* or provide it to create a nested group.
|
|
247
|
-
*
|
|
248
|
-
* @returns The ID of the newly created group.
|
|
249
|
-
*/
|
|
250
|
-
create: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, data: {
|
|
251
|
-
name: string;
|
|
252
|
-
slug?: string;
|
|
253
|
-
type?: string;
|
|
254
|
-
parentGroupId?: string;
|
|
255
|
-
tags?: Array<{
|
|
256
|
-
key: string;
|
|
257
|
-
value: string;
|
|
258
|
-
}>;
|
|
259
|
-
extend?: Record<string, unknown>;
|
|
260
|
-
}) => Promise<string>;
|
|
261
|
-
/**
|
|
262
|
-
* Retrieve a group by its ID. Returns `null` if not found.
|
|
263
|
-
*/
|
|
264
|
-
get: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, groupId: string) => Promise<any>;
|
|
265
|
-
/**
|
|
266
|
-
* List groups with optional filtering, sorting, and pagination.
|
|
267
|
-
*
|
|
268
|
-
* Empty `where` returns **all** groups.
|
|
269
|
-
*
|
|
270
|
-
* ```ts
|
|
271
|
-
* // All groups of type "team"
|
|
272
|
-
* await auth.group.list(ctx, { where: { type: "team" } });
|
|
273
|
-
*
|
|
274
|
-
* // Paginated
|
|
275
|
-
* const page1 = await auth.group.list(ctx, { limit: 10 });
|
|
276
|
-
* const page2 = await auth.group.list(ctx, { limit: 10, cursor: page1.nextCursor });
|
|
277
|
-
* ```
|
|
278
|
-
*/
|
|
279
|
-
list: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, opts?: {
|
|
280
|
-
where?: {
|
|
281
|
-
slug?: string;
|
|
282
|
-
type?: string;
|
|
283
|
-
parentGroupId?: string;
|
|
284
|
-
name?: string;
|
|
285
|
-
isRoot?: boolean;
|
|
286
|
-
tagsAll?: Array<{
|
|
287
|
-
key: string;
|
|
288
|
-
value: string;
|
|
289
|
-
}>;
|
|
290
|
-
tagsAny?: Array<{
|
|
291
|
-
key: string;
|
|
292
|
-
value: string;
|
|
293
|
-
}>;
|
|
294
|
-
};
|
|
295
|
-
limit?: number;
|
|
296
|
-
cursor?: string | null;
|
|
297
|
-
orderBy?: "_creationTime" | "name" | "slug" | "type";
|
|
298
|
-
order?: "asc" | "desc";
|
|
299
|
-
}) => Promise<any>;
|
|
300
|
-
/**
|
|
301
|
-
* Update a group's fields (name, slug, tags, extend, parentGroupId).
|
|
302
|
-
*/
|
|
303
|
-
update: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, groupId: string, data: Record<string, unknown>) => Promise<void>;
|
|
304
|
-
/**
|
|
305
|
-
* Delete a group and cascade to all descendants. Deletes child groups
|
|
306
|
-
* (recursively), all members, and all invites for this group and its
|
|
307
|
-
* descendants.
|
|
308
|
-
*/
|
|
309
|
-
delete: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, groupId: string) => Promise<void>;
|
|
310
|
-
/**
|
|
311
|
-
* Manage group membership. A member links a user to a group with an
|
|
312
|
-
* application-defined role string (e.g. "owner", "admin", "member").
|
|
313
|
-
*
|
|
314
|
-
* The auth component stores roles but does not enforce access control.
|
|
315
|
-
* Your application defines what each role means.
|
|
316
|
-
*/
|
|
317
|
-
member: {
|
|
318
|
-
/**
|
|
319
|
-
* Add a user as a member of a group.
|
|
320
|
-
*
|
|
321
|
-
* @param data.groupId - The group to add the member to.
|
|
322
|
-
* @param data.userId - The user to add.
|
|
323
|
-
* @param data.role - Application-defined role (e.g. "owner", "admin", "member").
|
|
324
|
-
* @param data.status - Optional membership status (e.g. "active", "suspended").
|
|
325
|
-
* @param data.extend - Optional arbitrary JSON extension data.
|
|
326
|
-
* @throws ConvexError with code `DUPLICATE_MEMBERSHIP` if the user is
|
|
327
|
-
* already a member of the target group.
|
|
328
|
-
* @returns The ID of the new member record.
|
|
329
|
-
*/
|
|
330
|
-
add: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, data: {
|
|
331
|
-
groupId: string;
|
|
332
|
-
userId: string;
|
|
333
|
-
role?: string;
|
|
334
|
-
status?: string;
|
|
335
|
-
extend?: Record<string, unknown>;
|
|
336
|
-
}) => Promise<string>;
|
|
337
|
-
/**
|
|
338
|
-
* Retrieve a member record by its ID. Returns `null` if not found.
|
|
339
|
-
*/
|
|
340
|
-
get: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, memberId: string) => Promise<any>;
|
|
341
|
-
/**
|
|
342
|
-
* List members with optional filtering, sorting, and pagination.
|
|
343
|
-
*
|
|
344
|
-
* ```ts
|
|
345
|
-
* // All members of a group
|
|
346
|
-
* await auth.group.member.list(ctx, { where: { groupId } });
|
|
347
|
-
*
|
|
348
|
-
* // Admins only
|
|
349
|
-
* await auth.group.member.list(ctx, { where: { groupId, role: "admin" } });
|
|
350
|
-
* ```
|
|
351
|
-
*/
|
|
352
|
-
list: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, opts?: {
|
|
353
|
-
where?: {
|
|
354
|
-
groupId?: string;
|
|
355
|
-
userId?: string;
|
|
356
|
-
role?: string;
|
|
357
|
-
status?: string;
|
|
358
|
-
};
|
|
359
|
-
limit?: number;
|
|
360
|
-
cursor?: string | null;
|
|
361
|
-
orderBy?: "_creationTime" | "role" | "status";
|
|
362
|
-
order?: "asc" | "desc";
|
|
363
|
-
}) => Promise<any>;
|
|
364
|
-
/**
|
|
365
|
-
* Remove a member from a group by deleting the member record.
|
|
366
|
-
*/
|
|
367
|
-
remove: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, memberId: string) => Promise<void>;
|
|
368
|
-
/**
|
|
369
|
-
* Update a member's fields (role, status, extend).
|
|
370
|
-
*
|
|
371
|
-
* ```ts
|
|
372
|
-
* await auth.group.member.update(ctx, memberId, { role: "admin" });
|
|
373
|
-
* ```
|
|
374
|
-
*/
|
|
375
|
-
update: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, memberId: string, data: Record<string, unknown>) => Promise<void>;
|
|
376
|
-
};
|
|
377
|
-
};
|
|
378
|
-
/**
|
|
379
|
-
* Manage platform-level invitations.
|
|
380
|
-
*
|
|
381
|
-
* Invites can optionally target a group by setting `groupId`, but they do
|
|
382
|
-
* not require groups and can be used in apps with user-only collaboration.
|
|
383
|
-
*/
|
|
384
|
-
invite: {
|
|
385
|
-
/**
|
|
386
|
-
* Create a new invitation.
|
|
387
|
-
*
|
|
388
|
-
* @param data.groupId - Optional group to invite the user into.
|
|
389
|
-
* @param data.invitedByUserId - Optional user sending the invitation
|
|
390
|
-
* (omit for CLI-generated invites).
|
|
391
|
-
* @param data.email - Optional email of the invitee (omit for
|
|
392
|
-
* CLI-generated invite links where the email is unknown upfront).
|
|
393
|
-
* @param data.tokenHash - Hashed token for secure acceptance.
|
|
394
|
-
* @param data.role - Optional role to assign on acceptance.
|
|
395
|
-
* @param data.status - Initial status (typically "pending").
|
|
396
|
-
* @param data.expiresTime - Optional expiration timestamp (omit for
|
|
397
|
-
* single-use, non-expiring invites).
|
|
398
|
-
* @param data.extend - Optional arbitrary JSON extension data.
|
|
399
|
-
* @throws ConvexError with code `DUPLICATE_INVITE` if a pending invite
|
|
400
|
-
* already exists for this email and scope.
|
|
401
|
-
* @returns The ID of the new invite record.
|
|
402
|
-
*/
|
|
403
|
-
create: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, data: {
|
|
404
|
-
groupId?: string;
|
|
405
|
-
invitedByUserId?: string;
|
|
406
|
-
email?: string;
|
|
407
|
-
tokenHash: string;
|
|
408
|
-
role?: string;
|
|
409
|
-
status: "pending" | "accepted" | "revoked" | "expired";
|
|
410
|
-
expiresTime?: number;
|
|
411
|
-
extend?: Record<string, unknown>;
|
|
412
|
-
}) => Promise<string>;
|
|
413
|
-
/**
|
|
414
|
-
* Retrieve an invite by its ID. Returns `null` if not found.
|
|
415
|
-
*/
|
|
416
|
-
get: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, inviteId: string) => Promise<any>;
|
|
417
|
-
/**
|
|
418
|
-
* List invites with optional filtering, sorting, and pagination.
|
|
419
|
-
*
|
|
420
|
-
* ```ts
|
|
421
|
-
* // Pending invites for a group
|
|
422
|
-
* await auth.invite.list(ctx, { where: { groupId, status: "pending" } });
|
|
423
|
-
* ```
|
|
424
|
-
*/
|
|
425
|
-
list: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, opts?: {
|
|
426
|
-
where?: {
|
|
427
|
-
tokenHash?: string;
|
|
428
|
-
groupId?: string;
|
|
429
|
-
status?: "pending" | "accepted" | "revoked" | "expired";
|
|
430
|
-
email?: string;
|
|
431
|
-
invitedByUserId?: string;
|
|
432
|
-
role?: string;
|
|
433
|
-
acceptedByUserId?: string;
|
|
434
|
-
};
|
|
435
|
-
limit?: number;
|
|
436
|
-
cursor?: string | null;
|
|
437
|
-
orderBy?: "_creationTime" | "status" | "email" | "expiresTime" | "acceptedTime";
|
|
438
|
-
order?: "asc" | "desc";
|
|
439
|
-
}) => Promise<any>;
|
|
440
|
-
/**
|
|
441
|
-
* Accept an invitation. Marks the invite as "accepted" and records
|
|
442
|
-
* the timestamp. If the invite has a group, the caller is responsible
|
|
443
|
-
* for creating the member record via `auth.group.member.add` in the
|
|
444
|
-
* same Convex mutation for transactional safety.
|
|
445
|
-
*
|
|
446
|
-
* @param ctx - Convex context with `runMutation`.
|
|
447
|
-
* @param inviteId - The invite document ID.
|
|
448
|
-
* @param acceptedByUserId - User accepting the invite (recorded for audit).
|
|
449
|
-
* @throws `ConvexError` with code `INVITE_NOT_FOUND` when the invite does not exist.
|
|
450
|
-
* @throws `ConvexError` with code `INVITE_NOT_PENDING` when the invite is not in `pending` status.
|
|
451
|
-
*
|
|
452
|
-
* @example
|
|
453
|
-
* ```ts
|
|
454
|
-
* export const acceptInvite = mutation({
|
|
455
|
-
* args: { inviteId: v.string() },
|
|
456
|
-
* handler: async (ctx, { inviteId }) => {
|
|
457
|
-
* const userId = await auth.user.require(ctx);
|
|
458
|
-
* const invite = await auth.invite.get(ctx, inviteId);
|
|
459
|
-
* if (!invite) throw new Error("Invite not found");
|
|
460
|
-
*
|
|
461
|
-
* await auth.invite.accept(ctx, inviteId);
|
|
462
|
-
* if (invite.groupId) {
|
|
463
|
-
* await auth.group.member.add(ctx, {
|
|
464
|
-
* groupId: invite.groupId,
|
|
465
|
-
* userId,
|
|
466
|
-
* role: invite.role,
|
|
467
|
-
* });
|
|
468
|
-
* }
|
|
469
|
-
* },
|
|
470
|
-
* });
|
|
471
|
-
* ```
|
|
472
|
-
*/
|
|
473
|
-
accept: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, inviteId: string, acceptedByUserId?: string) => Promise<void>;
|
|
474
|
-
/**
|
|
475
|
-
* Revoke a pending invitation.
|
|
476
|
-
*
|
|
477
|
-
* @param ctx - Convex context with `runMutation`.
|
|
478
|
-
* @param inviteId - The invite document ID.
|
|
479
|
-
* @throws `ConvexError` with code `INVITE_NOT_FOUND` when the invite does not exist.
|
|
480
|
-
* @throws `ConvexError` with code `INVITE_NOT_PENDING` when the invite is not in `pending` status.
|
|
481
|
-
*/
|
|
482
|
-
revoke: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, inviteId: string) => Promise<void>;
|
|
483
|
-
};
|
|
484
|
-
/**
|
|
485
|
-
* Manage passkey credentials for users.
|
|
486
|
-
*
|
|
487
|
-
* ```ts
|
|
488
|
-
* const passkeys = await auth.passkey.list(ctx, { userId });
|
|
489
|
-
* await auth.passkey.rename(ctx, passkeyId, "MacBook Touch ID");
|
|
490
|
-
* await auth.passkey.remove(ctx, passkeyId);
|
|
491
|
-
* ```
|
|
492
|
-
*/
|
|
493
|
-
passkey: {
|
|
494
|
-
/**
|
|
495
|
-
* List all passkeys for a user.
|
|
496
|
-
*
|
|
497
|
-
* @param opts.userId - The user whose passkeys to list.
|
|
498
|
-
* @returns Array of passkey records with credentialId, name, deviceType,
|
|
499
|
-
* backedUp, createdAt, and lastUsedAt.
|
|
500
|
-
*/
|
|
501
|
-
list: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, opts: {
|
|
502
|
-
userId: string;
|
|
503
|
-
}) => Promise<any>;
|
|
504
|
-
/**
|
|
505
|
-
* Rename a passkey (set a user-friendly display name).
|
|
506
|
-
*
|
|
507
|
-
* @param passkeyId - The passkey document ID.
|
|
508
|
-
* @param name - New display name (e.g. "MacBook Touch ID").
|
|
509
|
-
*/
|
|
510
|
-
rename: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, passkeyId: string, name: string) => Promise<void>;
|
|
511
|
-
/**
|
|
512
|
-
* Delete a passkey credential.
|
|
513
|
-
*
|
|
514
|
-
* @param passkeyId - The passkey document ID to remove.
|
|
515
|
-
*/
|
|
516
|
-
remove: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, passkeyId: string) => Promise<void>;
|
|
517
|
-
};
|
|
518
|
-
/**
|
|
519
|
-
* Manage TOTP two-factor authentication enrollments for users.
|
|
520
|
-
*
|
|
521
|
-
* ```ts
|
|
522
|
-
* const enrollments = await auth.totp.list(ctx, { userId });
|
|
523
|
-
* await auth.totp.remove(ctx, totpId);
|
|
524
|
-
* ```
|
|
525
|
-
*/
|
|
526
|
-
totp: {
|
|
527
|
-
/**
|
|
528
|
-
* List all TOTP enrollments for a user.
|
|
529
|
-
*
|
|
530
|
-
* @param opts.userId - The user whose enrollments to list.
|
|
531
|
-
* @returns Array of TOTP enrollment records.
|
|
532
|
-
*/
|
|
533
|
-
list: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, opts: {
|
|
534
|
-
userId: string;
|
|
535
|
-
}) => Promise<any>;
|
|
536
|
-
/**
|
|
537
|
-
* Delete a TOTP enrollment.
|
|
538
|
-
*
|
|
539
|
-
* @param totpId - The TOTP document ID to remove.
|
|
540
|
-
*/
|
|
541
|
-
remove: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, totpId: string) => Promise<void>;
|
|
542
|
-
};
|
|
543
|
-
/**
|
|
544
|
-
* Manage API keys for programmatic access.
|
|
545
|
-
*
|
|
546
|
-
* Keys use SHA-256 hashing (via `@oslojs/crypto`) and support
|
|
547
|
-
* scoped resource:action permissions with optional per-key rate limiting.
|
|
548
|
-
*
|
|
549
|
-
* ```ts
|
|
550
|
-
* const { keyId, raw } = await auth.key.create(ctx, {
|
|
551
|
-
* userId,
|
|
552
|
-
* name: "CI Pipeline",
|
|
553
|
-
* scopes: [{ resource: "users", actions: ["read", "list"] }],
|
|
554
|
-
* });
|
|
555
|
-
* // raw = "sk_live_abc123..." — show once, never stored
|
|
556
|
-
*
|
|
557
|
-
* const result = await auth.key.verify(ctx, rawKey);
|
|
558
|
-
* result.scopes.can("users", "read"); // true
|
|
559
|
-
* ```
|
|
560
|
-
*/
|
|
561
|
-
key: {
|
|
562
|
-
/**
|
|
563
|
-
* Create a new API key. Returns the raw key **once** — it cannot
|
|
564
|
-
* be retrieved again after creation.
|
|
565
|
-
*
|
|
566
|
-
* @param opts.userId - The user this key belongs to.
|
|
567
|
-
* @param opts.name - Human-readable name (e.g. "CI Pipeline").
|
|
568
|
-
* @param opts.scopes - Resource:action permissions for this key.
|
|
569
|
-
* @param opts.rateLimit - Optional per-key rate limit override.
|
|
570
|
-
* @param opts.expiresAt - Optional expiration timestamp.
|
|
571
|
-
* @returns `{ keyId, raw }` where `raw` is the full key string.
|
|
572
|
-
*/
|
|
573
|
-
create: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, opts: {
|
|
574
|
-
userId: string;
|
|
575
|
-
name: string;
|
|
576
|
-
scopes: KeyScope[];
|
|
577
|
-
rateLimit?: {
|
|
578
|
-
maxRequests: number;
|
|
579
|
-
windowMs: number;
|
|
580
|
-
};
|
|
581
|
-
expiresAt?: number;
|
|
582
|
-
}) => Promise<{
|
|
583
|
-
keyId: string;
|
|
584
|
-
raw: string;
|
|
585
|
-
}>;
|
|
586
|
-
/**
|
|
587
|
-
* Verify a raw API key string. Returns the userId and a scope checker
|
|
588
|
-
* if the key is valid, not revoked, not expired, and not rate-limited.
|
|
589
|
-
*
|
|
590
|
-
* Also updates `lastUsedAt` and rate limit state as a side effect.
|
|
591
|
-
*
|
|
592
|
-
* @throws Error if the key is invalid, revoked, expired, or rate-limited.
|
|
593
|
-
*/
|
|
594
|
-
verify: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, rawKey: string) => Promise<{
|
|
595
|
-
userId: string;
|
|
596
|
-
keyId: string;
|
|
597
|
-
scopes: ScopeChecker;
|
|
598
|
-
}>;
|
|
599
|
-
/**
|
|
600
|
-
* List API keys with optional filtering, sorting, and pagination.
|
|
601
|
-
* Never includes the raw key — only the display prefix.
|
|
602
|
-
*
|
|
603
|
-
* ```ts
|
|
604
|
-
* // All keys for a user
|
|
605
|
-
* await auth.key.list(ctx, { where: { userId } });
|
|
606
|
-
*
|
|
607
|
-
* // Only active (non-revoked)
|
|
608
|
-
* await auth.key.list(ctx, { where: { userId, revoked: false } });
|
|
609
|
-
* ```
|
|
610
|
-
*/
|
|
611
|
-
list: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, opts?: {
|
|
612
|
-
where?: {
|
|
613
|
-
userId?: string;
|
|
614
|
-
revoked?: boolean;
|
|
615
|
-
name?: string;
|
|
616
|
-
prefix?: string;
|
|
617
|
-
};
|
|
618
|
-
limit?: number;
|
|
619
|
-
cursor?: string | null;
|
|
620
|
-
orderBy?: "_creationTime" | "name" | "lastUsedAt" | "expiresAt" | "revoked";
|
|
621
|
-
order?: "asc" | "desc";
|
|
622
|
-
}) => Promise<any>;
|
|
623
|
-
/**
|
|
624
|
-
* Get a single API key by its document ID.
|
|
625
|
-
* Returns `null` if not found.
|
|
626
|
-
*/
|
|
627
|
-
get: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, keyId: string) => Promise<KeyDoc | null>;
|
|
628
|
-
/**
|
|
629
|
-
* Update an API key's metadata (name, scopes, rate limit).
|
|
630
|
-
*/
|
|
631
|
-
update: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, keyId: string, data: {
|
|
632
|
-
name?: string;
|
|
633
|
-
scopes?: KeyScope[];
|
|
634
|
-
rateLimit?: {
|
|
635
|
-
maxRequests: number;
|
|
636
|
-
windowMs: number;
|
|
637
|
-
};
|
|
638
|
-
}) => Promise<void>;
|
|
639
|
-
/**
|
|
640
|
-
* Revoke an API key (soft delete). The key record is preserved
|
|
641
|
-
* for audit purposes but can no longer be used for authentication.
|
|
642
|
-
*/
|
|
643
|
-
revoke: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, keyId: string) => Promise<void>;
|
|
644
|
-
/**
|
|
645
|
-
* Hard delete an API key record.
|
|
646
|
-
*/
|
|
647
|
-
remove: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, keyId: string) => Promise<void>;
|
|
648
|
-
};
|
|
649
|
-
/**
|
|
650
|
-
* HTTP namespace — route registration and Bearer-authenticated endpoints.
|
|
651
|
-
*/
|
|
652
|
-
http: {
|
|
653
|
-
/**
|
|
654
|
-
* Register core HTTP routes for JWT verification and OAuth sign-in.
|
|
655
|
-
*
|
|
656
|
-
* ```ts
|
|
657
|
-
* import { httpRouter } from "convex/server";
|
|
658
|
-
* import { auth } from "./auth";
|
|
659
|
-
*
|
|
660
|
-
* const http = httpRouter();
|
|
661
|
-
*
|
|
662
|
-
* auth.http.add(http);
|
|
663
|
-
*
|
|
664
|
-
* export default http;
|
|
665
|
-
* ```
|
|
666
|
-
*
|
|
667
|
-
* The following routes are handled always:
|
|
668
|
-
*
|
|
669
|
-
* - `/.well-known/openid-configuration`
|
|
670
|
-
* - `/.well-known/jwks.json`
|
|
671
|
-
*
|
|
672
|
-
* The following routes are handled if OAuth is configured:
|
|
673
|
-
*
|
|
674
|
-
* - `/api/auth/signin/*`
|
|
675
|
-
* - `/api/auth/callback/*`
|
|
676
|
-
*
|
|
677
|
-
* @param http your HTTP router
|
|
678
|
-
*/
|
|
679
|
-
add: (http: HttpRouter) => void;
|
|
680
|
-
/**
|
|
681
|
-
* Wrap an HTTP action handler with Bearer token authentication.
|
|
682
|
-
*
|
|
683
|
-
* Extracts the `Authorization: Bearer <key>` header, verifies the
|
|
684
|
-
* API key via `auth.key.verify()`, and injects `ctx.key` with the
|
|
685
|
-
* verified key info. Returns structured JSON error responses for
|
|
686
|
-
* missing/invalid/revoked/expired/rate-limited keys.
|
|
687
|
-
*
|
|
688
|
-
* If the handler returns a plain object, it is auto-wrapped in a
|
|
689
|
-
* `200 JSON` response. If it returns a `Response`, CORS headers
|
|
690
|
-
* are merged and the response is passed through.
|
|
691
|
-
*
|
|
692
|
-
* ```ts
|
|
693
|
-
* const handler = auth.http.action(async (ctx, request) => {
|
|
694
|
-
* const data = await ctx.runQuery(api.data.get, { userId: ctx.key.userId });
|
|
695
|
-
* return { data };
|
|
696
|
-
* });
|
|
697
|
-
* http.route({ path: "/api/data", method: "GET", handler });
|
|
698
|
-
* ```
|
|
699
|
-
*
|
|
700
|
-
* @param handler - Receives enriched `ctx` (with `ctx.key`) and the raw `Request`.
|
|
701
|
-
* @param options.scope - Optional scope check; returns 403 if the key lacks permission.
|
|
702
|
-
* @param options.cors - CORS config; defaults to permissive (`*`).
|
|
703
|
-
*/
|
|
704
|
-
action: (handler: (ctx: GenericActionCtx<GenericDataModel> & HttpKeyContext, request: Request) => Promise<Response | Record<string, unknown>>, options?: {
|
|
705
|
-
scope?: {
|
|
706
|
-
resource: string;
|
|
707
|
-
action: string;
|
|
708
|
-
};
|
|
709
|
-
cors?: CorsConfig;
|
|
710
|
-
}) => convex_server16.PublicHttpAction;
|
|
711
|
-
/**
|
|
712
|
-
* Register a Bearer-authenticated route **and** its OPTIONS preflight
|
|
713
|
-
* in a single call.
|
|
714
|
-
*
|
|
715
|
-
* ```ts
|
|
716
|
-
* auth.http.route(http, {
|
|
717
|
-
* path: "/api/messages",
|
|
718
|
-
* method: "POST",
|
|
719
|
-
* handler: async (ctx, request) => {
|
|
720
|
-
* const { body } = await request.json();
|
|
721
|
-
* await ctx.runMutation(internal.messages.sendAsUser, {
|
|
722
|
-
* userId: ctx.key.userId,
|
|
723
|
-
* body,
|
|
724
|
-
* });
|
|
725
|
-
* return { success: true };
|
|
726
|
-
* },
|
|
727
|
-
* });
|
|
728
|
-
* ```
|
|
729
|
-
*
|
|
730
|
-
* @param http - The Convex HTTP router.
|
|
731
|
-
* @param routeConfig.path - The URL path to match.
|
|
732
|
-
* @param routeConfig.method - HTTP method (GET, POST, PUT, PATCH, DELETE).
|
|
733
|
-
* @param routeConfig.handler - Receives enriched `ctx` (with `ctx.key`) and the raw `Request`.
|
|
734
|
-
* @param routeConfig.scope - Optional scope check; returns 403 if the key lacks permission.
|
|
735
|
-
* @param routeConfig.cors - CORS config; defaults to permissive (`*`).
|
|
736
|
-
*/
|
|
737
|
-
route: (http: HttpRouter, routeConfig: {
|
|
738
|
-
path: string;
|
|
739
|
-
method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
|
|
740
|
-
handler: (ctx: GenericActionCtx<GenericDataModel> & HttpKeyContext, request: Request) => Promise<Response | Record<string, unknown>>;
|
|
741
|
-
scope?: {
|
|
742
|
-
resource: string;
|
|
743
|
-
action: string;
|
|
744
|
-
};
|
|
745
|
-
cors?: CorsConfig;
|
|
746
|
-
}) => void;
|
|
747
|
-
};
|
|
748
|
-
};
|
|
749
|
-
/**
|
|
750
|
-
* Action called by the client to sign the user in.
|
|
751
|
-
*
|
|
752
|
-
* Also used for refreshing the session.
|
|
753
|
-
*/
|
|
754
|
-
signIn: convex_server16.RegisteredAction<"public", {
|
|
755
|
-
provider?: string | undefined;
|
|
756
|
-
verifier?: string | undefined;
|
|
757
|
-
params?: any;
|
|
758
|
-
refreshToken?: string | undefined;
|
|
759
|
-
calledBy?: string | undefined;
|
|
760
|
-
}, Promise<{
|
|
761
|
-
redirect?: string;
|
|
762
|
-
verifier?: string;
|
|
763
|
-
tokens?: Tokens | null;
|
|
764
|
-
started?: boolean;
|
|
765
|
-
options?: Record<string, any>;
|
|
766
|
-
totpRequired?: boolean;
|
|
767
|
-
totpSetup?: {
|
|
768
|
-
uri: string;
|
|
769
|
-
secret: string;
|
|
770
|
-
totpId: string;
|
|
771
|
-
};
|
|
772
|
-
deviceCode?: {
|
|
773
|
-
deviceCode: string;
|
|
774
|
-
userCode: string;
|
|
775
|
-
verificationUri: string;
|
|
776
|
-
verificationUriComplete: string;
|
|
777
|
-
expiresIn: number;
|
|
778
|
-
interval: number;
|
|
779
|
-
};
|
|
780
|
-
}>>;
|
|
781
|
-
/**
|
|
782
|
-
* Action called by the client to invalidate the current session.
|
|
783
|
-
*/
|
|
784
|
-
signOut: convex_server16.RegisteredAction<"public", {}, Promise<void>>;
|
|
785
|
-
/**
|
|
786
|
-
* Internal mutation used by the library to read and write
|
|
787
|
-
* to the database during signin and signout.
|
|
788
|
-
*/
|
|
789
|
-
store: convex_server16.RegisteredMutation<"internal", {
|
|
790
|
-
args: {
|
|
791
|
-
sessionId?: string | undefined;
|
|
792
|
-
type: "signIn";
|
|
793
|
-
userId: string;
|
|
794
|
-
generateTokens: boolean;
|
|
795
|
-
} | {
|
|
796
|
-
type: "signOut";
|
|
797
|
-
} | {
|
|
798
|
-
type: "refreshSession";
|
|
799
|
-
refreshToken: string;
|
|
800
|
-
} | {
|
|
801
|
-
provider?: string | undefined;
|
|
802
|
-
verifier?: string | undefined;
|
|
803
|
-
type: "verifyCodeAndSignIn";
|
|
804
|
-
params: any;
|
|
805
|
-
generateTokens: boolean;
|
|
806
|
-
allowExtraProviders: boolean;
|
|
807
|
-
} | {
|
|
808
|
-
type: "verifier";
|
|
809
|
-
} | {
|
|
810
|
-
type: "verifierSignature";
|
|
811
|
-
verifier: string;
|
|
812
|
-
signature: string;
|
|
813
|
-
} | {
|
|
814
|
-
type: "userOAuth";
|
|
815
|
-
provider: string;
|
|
816
|
-
providerAccountId: string;
|
|
817
|
-
signature: string;
|
|
818
|
-
profile: any;
|
|
819
|
-
} | {
|
|
820
|
-
email?: string | undefined;
|
|
821
|
-
phone?: string | undefined;
|
|
822
|
-
accountId?: string | undefined;
|
|
823
|
-
type: "createVerificationCode";
|
|
824
|
-
expirationTime: number;
|
|
825
|
-
provider: string;
|
|
826
|
-
code: string;
|
|
827
|
-
allowExtraProviders: boolean;
|
|
828
|
-
} | {
|
|
829
|
-
shouldLinkViaEmail?: boolean | undefined;
|
|
830
|
-
shouldLinkViaPhone?: boolean | undefined;
|
|
831
|
-
type: "createAccountFromCredentials";
|
|
832
|
-
provider: string;
|
|
833
|
-
account: {
|
|
834
|
-
secret?: string | undefined;
|
|
835
|
-
id: string;
|
|
836
|
-
};
|
|
837
|
-
profile: any;
|
|
838
|
-
} | {
|
|
839
|
-
type: "retrieveAccountWithCredentials";
|
|
840
|
-
provider: string;
|
|
841
|
-
account: {
|
|
842
|
-
secret?: string | undefined;
|
|
843
|
-
id: string;
|
|
844
|
-
};
|
|
845
|
-
} | {
|
|
846
|
-
type: "modifyAccount";
|
|
847
|
-
provider: string;
|
|
848
|
-
account: {
|
|
849
|
-
id: string;
|
|
850
|
-
secret: string;
|
|
851
|
-
};
|
|
852
|
-
} | {
|
|
853
|
-
except?: string[] | undefined;
|
|
854
|
-
type: "invalidateSessions";
|
|
855
|
-
userId: string;
|
|
856
|
-
};
|
|
857
|
-
}, Promise<string | void | {
|
|
858
|
-
userId: GenericId<"user">;
|
|
859
|
-
sessionId: GenericId<"session">;
|
|
860
|
-
} | {
|
|
861
|
-
token: string;
|
|
862
|
-
refreshToken: string;
|
|
863
|
-
} | {
|
|
864
|
-
account: Doc<"account">;
|
|
865
|
-
user: Doc<"user">;
|
|
866
|
-
} | null>>;
|
|
867
|
-
};
|
|
868
|
-
//#endregion
|
|
869
|
-
export { Auth, SignInAction, SignOutAction };
|
|
870
|
-
//# sourceMappingURL=index.d.ts.map
|