@robelest/convex-auth 0.0.3-preview → 0.0.3-preview.3
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/dist/bin.cjs +15 -15
- package/dist/client/index.d.ts +40 -12
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +73 -12
- package/dist/client/index.js.map +1 -1
- package/dist/component/_generated/api.d.ts +2 -2
- package/dist/component/_generated/api.d.ts.map +1 -1
- package/dist/component/_generated/component.d.ts +1 -1
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/{portalBridge.d.ts → bridge.d.ts} +2 -2
- package/dist/component/bridge.d.ts.map +1 -0
- package/dist/component/{portalBridge.js → bridge.js} +2 -2
- package/dist/component/bridge.js.map +1 -0
- package/dist/component/index.d.ts +11 -4
- package/dist/component/index.d.ts.map +1 -1
- package/dist/component/index.js +8 -2
- package/dist/component/index.js.map +1 -1
- package/dist/component/public.d.ts +24 -17
- package/dist/component/public.d.ts.map +1 -1
- package/dist/component/public.js +23 -4
- package/dist/component/public.js.map +1 -1
- package/dist/component/schema.d.ts +11 -7
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/schema.js +4 -1
- package/dist/component/schema.js.map +1 -1
- package/dist/providers/anonymous.d.ts +3 -0
- package/dist/providers/anonymous.d.ts.map +1 -1
- package/dist/providers/anonymous.js +3 -0
- package/dist/providers/anonymous.js.map +1 -1
- package/dist/providers/credentials.d.ts +3 -0
- package/dist/providers/credentials.d.ts.map +1 -1
- package/dist/providers/credentials.js +3 -0
- package/dist/providers/credentials.js.map +1 -1
- package/dist/providers/email.d.ts +3 -0
- package/dist/providers/email.d.ts.map +1 -1
- package/dist/providers/email.js +3 -0
- package/dist/providers/email.js.map +1 -1
- package/dist/providers/passkey.d.ts +7 -1
- package/dist/providers/passkey.d.ts.map +1 -1
- package/dist/providers/passkey.js +7 -1
- package/dist/providers/passkey.js.map +1 -1
- package/dist/providers/password.d.ts +3 -0
- package/dist/providers/password.d.ts.map +1 -1
- package/dist/providers/password.js +3 -0
- package/dist/providers/password.js.map +1 -1
- package/dist/providers/phone.d.ts +3 -0
- package/dist/providers/phone.d.ts.map +1 -1
- package/dist/providers/phone.js +3 -0
- package/dist/providers/phone.js.map +1 -1
- package/dist/providers/totp.d.ts +8 -0
- package/dist/providers/totp.d.ts.map +1 -1
- package/dist/providers/totp.js +8 -0
- package/dist/providers/totp.js.map +1 -1
- package/dist/server/{convex-auth.d.ts → auth.d.ts} +226 -36
- package/dist/server/auth.d.ts.map +1 -0
- package/dist/server/{convex-auth.js → auth.js} +287 -111
- package/dist/server/auth.js.map +1 -0
- package/dist/server/errors.d.ts +148 -0
- package/dist/server/errors.d.ts.map +1 -0
- package/dist/server/errors.js +179 -0
- package/dist/server/errors.js.map +1 -0
- package/dist/server/implementation/index.d.ts +170 -48
- package/dist/server/implementation/index.d.ts.map +1 -1
- package/dist/server/implementation/index.js +383 -167
- package/dist/server/implementation/index.js.map +1 -1
- package/dist/server/implementation/{apiKey.d.ts → keys.d.ts} +1 -1
- package/dist/server/implementation/keys.d.ts.map +1 -0
- package/dist/server/implementation/{apiKey.js → keys.js} +4 -5
- package/dist/server/implementation/keys.js.map +1 -0
- package/dist/server/implementation/mutations/{modifyAccount.d.ts → account.d.ts} +3 -3
- package/dist/server/implementation/mutations/account.d.ts.map +1 -0
- package/dist/server/implementation/mutations/{modifyAccount.js → account.js} +4 -3
- package/dist/server/implementation/mutations/account.js.map +1 -0
- package/dist/server/implementation/mutations/{createVerificationCode.d.ts → code.d.ts} +1 -1
- package/dist/server/implementation/mutations/code.d.ts.map +1 -0
- package/dist/server/implementation/mutations/{createVerificationCode.js → code.js} +2 -2
- package/dist/server/implementation/mutations/code.js.map +1 -0
- package/dist/server/implementation/mutations/index.d.ts +33 -33
- package/dist/server/implementation/mutations/index.d.ts.map +1 -1
- package/dist/server/implementation/mutations/index.js +22 -22
- package/dist/server/implementation/mutations/index.js.map +1 -1
- package/dist/server/implementation/mutations/{invalidateSessions.d.ts → invalidate.d.ts} +1 -1
- package/dist/server/implementation/mutations/invalidate.d.ts.map +1 -0
- package/dist/server/implementation/mutations/{invalidateSessions.js → invalidate.js} +2 -2
- package/dist/server/implementation/mutations/invalidate.js.map +1 -0
- package/dist/server/implementation/mutations/{userOAuth.d.ts → oauth.d.ts} +3 -3
- package/dist/server/implementation/mutations/oauth.d.ts.map +1 -0
- package/dist/server/implementation/mutations/{userOAuth.js → oauth.js} +4 -3
- package/dist/server/implementation/mutations/oauth.js.map +1 -0
- package/dist/server/implementation/mutations/{refreshSession.d.ts → refresh.d.ts} +1 -1
- package/dist/server/implementation/mutations/refresh.d.ts.map +1 -0
- package/dist/server/implementation/mutations/{refreshSession.js → refresh.js} +3 -3
- package/dist/server/implementation/mutations/refresh.js.map +1 -0
- package/dist/server/implementation/mutations/{createAccountFromCredentials.d.ts → register.d.ts} +4 -4
- package/dist/server/implementation/mutations/register.d.ts.map +1 -0
- package/dist/server/implementation/mutations/{createAccountFromCredentials.js → register.js} +4 -3
- package/dist/server/implementation/mutations/register.js.map +1 -0
- package/dist/server/implementation/mutations/{retrieveAccountWithCredentials.d.ts → retrieve.d.ts} +3 -3
- package/dist/server/implementation/mutations/retrieve.d.ts.map +1 -0
- package/dist/server/implementation/mutations/{retrieveAccountWithCredentials.js → retrieve.js} +3 -3
- package/dist/server/implementation/mutations/retrieve.js.map +1 -0
- package/dist/server/implementation/mutations/{verifierSignature.d.ts → signature.d.ts} +1 -1
- package/dist/server/implementation/mutations/signature.d.ts.map +1 -0
- package/dist/server/implementation/mutations/{verifierSignature.js → signature.js} +4 -3
- package/dist/server/implementation/mutations/signature.js.map +1 -0
- package/dist/server/implementation/mutations/{signIn.d.ts → signin.d.ts} +1 -1
- package/dist/server/implementation/mutations/{signIn.d.ts.map → signin.d.ts.map} +1 -1
- package/dist/server/implementation/mutations/{signIn.js → signin.js} +2 -2
- package/dist/server/implementation/mutations/{signIn.js.map → signin.js.map} +1 -1
- package/dist/server/implementation/mutations/{signOut.d.ts → signout.d.ts} +1 -1
- package/dist/server/implementation/mutations/{signOut.d.ts.map → signout.d.ts.map} +1 -1
- package/dist/server/implementation/mutations/{signOut.js → signout.js} +2 -2
- package/dist/server/implementation/mutations/{signOut.js.map → signout.js.map} +1 -1
- package/dist/server/implementation/mutations/{storeRef.d.ts → store.d.ts} +1 -1
- package/dist/server/implementation/mutations/store.d.ts.map +1 -0
- package/dist/server/implementation/mutations/{storeRef.js → store.js} +1 -1
- package/dist/server/implementation/mutations/store.js.map +1 -0
- package/dist/server/implementation/mutations/verifier.js +1 -1
- package/dist/server/implementation/mutations/verifier.js.map +1 -1
- package/dist/server/implementation/mutations/{verifyCodeAndSignIn.d.ts → verify.d.ts} +1 -1
- package/dist/server/implementation/mutations/verify.d.ts.map +1 -0
- package/dist/server/implementation/mutations/{verifyCodeAndSignIn.js → verify.js} +3 -3
- package/dist/server/implementation/mutations/verify.js.map +1 -0
- package/dist/server/implementation/passkey.d.ts.map +1 -1
- package/dist/server/implementation/passkey.js +47 -55
- package/dist/server/implementation/passkey.js.map +1 -1
- package/dist/server/implementation/provider.d.ts.map +1 -1
- package/dist/server/implementation/provider.js +5 -4
- package/dist/server/implementation/provider.js.map +1 -1
- package/dist/server/implementation/{rateLimit.d.ts → ratelimit.d.ts} +1 -1
- package/dist/server/implementation/{rateLimit.d.ts.map → ratelimit.d.ts.map} +1 -1
- package/dist/server/implementation/{rateLimit.js → ratelimit.js} +1 -1
- package/dist/server/implementation/{rateLimit.js.map → ratelimit.js.map} +1 -1
- package/dist/server/implementation/redirects.d.ts.map +1 -1
- package/dist/server/implementation/redirects.js +2 -1
- package/dist/server/implementation/redirects.js.map +1 -1
- package/dist/server/implementation/{refreshTokens.d.ts → refresh.d.ts} +1 -1
- package/dist/server/implementation/refresh.d.ts.map +1 -0
- package/dist/server/implementation/{refreshTokens.js → refresh.js} +3 -2
- package/dist/server/implementation/refresh.js.map +1 -0
- package/dist/server/implementation/sessions.js +1 -1
- package/dist/server/implementation/sessions.js.map +1 -1
- package/dist/server/implementation/{signIn.d.ts → signin.d.ts} +1 -1
- package/dist/server/implementation/{signIn.d.ts.map → signin.d.ts.map} +1 -1
- package/dist/server/implementation/{signIn.js → signin.js} +12 -8
- package/dist/server/implementation/signin.js.map +1 -0
- package/dist/server/implementation/totp.d.ts.map +1 -1
- package/dist/server/implementation/totp.js +29 -29
- package/dist/server/implementation/totp.js.map +1 -1
- package/dist/server/implementation/types.d.ts +131 -1
- package/dist/server/implementation/types.d.ts.map +1 -1
- package/dist/server/implementation/types.js +65 -1
- package/dist/server/implementation/types.js.map +1 -1
- package/dist/server/implementation/users.d.ts.map +1 -1
- package/dist/server/implementation/users.js +3 -2
- package/dist/server/implementation/users.js.map +1 -1
- package/dist/server/index.d.ts +131 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +117 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/oauth/{authorizationUrl.d.ts → authorization.d.ts} +1 -1
- package/dist/server/oauth/authorization.d.ts.map +1 -0
- package/dist/server/oauth/{authorizationUrl.js → authorization.js} +4 -3
- package/dist/server/oauth/authorization.js.map +1 -0
- package/dist/server/oauth/callback.d.ts.map +1 -1
- package/dist/server/oauth/callback.js +7 -6
- package/dist/server/oauth/callback.js.map +1 -1
- package/dist/server/oauth/checks.d.ts.map +1 -1
- package/dist/server/oauth/checks.js +2 -1
- package/dist/server/oauth/checks.js.map +1 -1
- package/dist/server/oauth/{convexAuth.d.ts → helpers.d.ts} +1 -1
- package/dist/server/oauth/helpers.d.ts.map +1 -0
- package/dist/server/oauth/{convexAuth.js → helpers.js} +6 -5
- package/dist/server/oauth/helpers.js.map +1 -0
- package/dist/server/oauth/lib/utils/{customFetch.d.ts → fetch.d.ts} +1 -1
- package/dist/server/oauth/lib/utils/fetch.d.ts.map +1 -0
- package/dist/server/oauth/lib/utils/{customFetch.js → fetch.js} +1 -1
- package/dist/server/oauth/lib/utils/fetch.js.map +1 -0
- package/dist/server/{provider_utils.d.ts → providers.d.ts} +1 -1
- package/dist/server/providers.d.ts.map +1 -0
- package/dist/server/{provider_utils.js → providers.js} +1 -1
- package/dist/server/providers.js.map +1 -0
- package/dist/server/{email-templates.d.ts → templates.d.ts} +8 -1
- package/dist/server/templates.d.ts.map +1 -0
- package/dist/server/{portal-email.js → templates.js} +74 -3
- package/dist/server/templates.js.map +1 -0
- package/dist/server/types.d.ts +88 -5
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/utils.d.ts.map +1 -1
- package/dist/server/utils.js +2 -1
- package/dist/server/utils.js.map +1 -1
- package/dist/server/version.d.ts +1 -1
- package/dist/server/version.d.ts.map +1 -1
- package/dist/server/version.js +1 -1
- package/dist/server/version.js.map +1 -1
- package/package.json +5 -1
- package/src/cli/index.ts +5 -5
- package/src/cli/{portal-link.ts → link.ts} +1 -1
- package/src/cli/utils.ts +1 -1
- package/src/client/index.ts +102 -17
- package/src/component/_generated/api.ts +2 -2
- package/src/component/_generated/component.ts +1 -1
- package/src/component/{portalBridge.ts → bridge.ts} +2 -2
- package/src/component/index.ts +10 -2
- package/src/component/public.ts +25 -4
- package/src/component/schema.ts +4 -1
- package/src/providers/anonymous.ts +3 -0
- package/src/providers/credentials.ts +3 -0
- package/src/providers/email.ts +3 -0
- package/src/providers/passkey.ts +8 -1
- package/src/providers/password.ts +3 -0
- package/src/providers/phone.ts +3 -0
- package/src/providers/totp.ts +9 -0
- package/src/server/auth.ts +969 -0
- package/src/server/errors.ts +275 -0
- package/src/server/implementation/index.ts +370 -88
- package/src/server/implementation/{apiKey.ts → keys.ts} +7 -6
- package/src/server/implementation/mutations/{modifyAccount.ts → account.ts} +3 -4
- package/src/server/implementation/mutations/{createVerificationCode.ts → code.ts} +1 -1
- package/src/server/implementation/mutations/index.ts +22 -22
- package/src/server/implementation/mutations/{invalidateSessions.ts → invalidate.ts} +1 -1
- package/src/server/implementation/mutations/{userOAuth.ts → oauth.ts} +3 -2
- package/src/server/implementation/mutations/{refreshSession.ts → refresh.ts} +2 -2
- package/src/server/implementation/mutations/{createAccountFromCredentials.ts → register.ts} +3 -2
- package/src/server/implementation/mutations/{retrieveAccountWithCredentials.ts → retrieve.ts} +2 -2
- package/src/server/implementation/mutations/{verifierSignature.ts → signature.ts} +3 -2
- package/src/server/implementation/mutations/{signIn.ts → signin.ts} +1 -1
- package/src/server/implementation/mutations/{signOut.ts → signout.ts} +1 -1
- package/src/server/implementation/mutations/verifier.ts +1 -1
- package/src/server/implementation/mutations/{verifyCodeAndSignIn.ts → verify.ts} +2 -2
- package/src/server/implementation/passkey.ts +86 -116
- package/src/server/implementation/provider.ts +5 -8
- package/src/server/implementation/redirects.ts +2 -3
- package/src/server/implementation/{refreshTokens.ts → refresh.ts} +2 -1
- package/src/server/implementation/sessions.ts +1 -1
- package/src/server/implementation/{signIn.ts → signin.ts} +13 -11
- package/src/server/implementation/totp.ts +60 -84
- package/src/server/implementation/types.ts +316 -1
- package/src/server/implementation/users.ts +4 -7
- package/src/server/index.ts +142 -3
- package/src/server/oauth/{authorizationUrl.ts → authorization.ts} +3 -2
- package/src/server/oauth/callback.ts +7 -6
- package/src/server/oauth/checks.ts +3 -1
- package/src/server/oauth/{convexAuth.ts → helpers.ts} +8 -5
- package/src/server/{portal-email.ts → templates.ts} +78 -2
- package/src/server/types.ts +133 -4
- package/src/server/utils.ts +3 -1
- package/src/server/version.ts +1 -1
- package/dist/component/portalBridge.d.ts.map +0 -1
- package/dist/component/portalBridge.js.map +0 -1
- package/dist/server/convex-auth.d.ts.map +0 -1
- package/dist/server/convex-auth.js.map +0 -1
- package/dist/server/convex_types.d.ts +0 -17
- package/dist/server/convex_types.d.ts.map +0 -1
- package/dist/server/convex_types.js +0 -2
- package/dist/server/convex_types.js.map +0 -1
- package/dist/server/email-templates.d.ts.map +0 -1
- package/dist/server/email-templates.js +0 -74
- package/dist/server/email-templates.js.map +0 -1
- package/dist/server/implementation/apiKey.d.ts.map +0 -1
- package/dist/server/implementation/apiKey.js.map +0 -1
- package/dist/server/implementation/mutations/createAccountFromCredentials.d.ts.map +0 -1
- package/dist/server/implementation/mutations/createAccountFromCredentials.js.map +0 -1
- package/dist/server/implementation/mutations/createVerificationCode.d.ts.map +0 -1
- package/dist/server/implementation/mutations/createVerificationCode.js.map +0 -1
- package/dist/server/implementation/mutations/invalidateSessions.d.ts.map +0 -1
- package/dist/server/implementation/mutations/invalidateSessions.js.map +0 -1
- package/dist/server/implementation/mutations/modifyAccount.d.ts.map +0 -1
- package/dist/server/implementation/mutations/modifyAccount.js.map +0 -1
- package/dist/server/implementation/mutations/refreshSession.d.ts.map +0 -1
- package/dist/server/implementation/mutations/refreshSession.js.map +0 -1
- package/dist/server/implementation/mutations/retrieveAccountWithCredentials.d.ts.map +0 -1
- package/dist/server/implementation/mutations/retrieveAccountWithCredentials.js.map +0 -1
- package/dist/server/implementation/mutations/storeRef.d.ts.map +0 -1
- package/dist/server/implementation/mutations/storeRef.js.map +0 -1
- package/dist/server/implementation/mutations/userOAuth.d.ts.map +0 -1
- package/dist/server/implementation/mutations/userOAuth.js.map +0 -1
- package/dist/server/implementation/mutations/verifierSignature.d.ts.map +0 -1
- package/dist/server/implementation/mutations/verifierSignature.js.map +0 -1
- package/dist/server/implementation/mutations/verifyCodeAndSignIn.d.ts.map +0 -1
- package/dist/server/implementation/mutations/verifyCodeAndSignIn.js.map +0 -1
- package/dist/server/implementation/refreshTokens.d.ts.map +0 -1
- package/dist/server/implementation/refreshTokens.js.map +0 -1
- package/dist/server/implementation/signIn.js.map +0 -1
- package/dist/server/oauth/authorizationUrl.d.ts.map +0 -1
- package/dist/server/oauth/authorizationUrl.js.map +0 -1
- package/dist/server/oauth/convexAuth.d.ts.map +0 -1
- package/dist/server/oauth/convexAuth.js.map +0 -1
- package/dist/server/oauth/lib/utils/customFetch.d.ts.map +0 -1
- package/dist/server/oauth/lib/utils/customFetch.js.map +0 -1
- package/dist/server/portal-email.d.ts +0 -19
- package/dist/server/portal-email.d.ts.map +0 -1
- package/dist/server/portal-email.js.map +0 -1
- package/dist/server/provider_utils.d.ts.map +0 -1
- package/dist/server/provider_utils.js.map +0 -1
- package/src/server/convex-auth.ts +0 -602
- package/src/server/convex_types.ts +0 -55
- package/src/server/email-templates.ts +0 -77
- /package/src/cli/{generateKeys.ts → keys.ts} +0 -0
- /package/src/cli/{portal-upload.ts → upload.ts} +0 -0
- /package/src/server/implementation/mutations/{storeRef.ts → store.ts} +0 -0
- /package/src/server/implementation/{rateLimit.ts → ratelimit.ts} +0 -0
- /package/src/server/oauth/lib/utils/{customFetch.ts → fetch.ts} +0 -0
- /package/src/server/{provider_utils.ts → providers.ts} +0 -0
|
@@ -31,7 +31,9 @@
|
|
|
31
31
|
*
|
|
32
32
|
* @module
|
|
33
33
|
*/
|
|
34
|
-
import type { HttpRouter } from "convex/server";
|
|
34
|
+
import type { HttpRouter, UserIdentity } from "convex/server";
|
|
35
|
+
import type { GenericId } from "convex/values";
|
|
36
|
+
import type { Doc } from "./implementation/types.js";
|
|
35
37
|
import type { ComponentApi as AuthComponentApi } from "../component/_generated/component.js";
|
|
36
38
|
import { Auth as AuthFactory } from "./implementation/index.js";
|
|
37
39
|
import type { ConvexAuthConfig } from "./types.js";
|
|
@@ -78,18 +80,19 @@ export declare class Auth {
|
|
|
78
80
|
readonly component: AuthComponentApi;
|
|
79
81
|
/** @internal */
|
|
80
82
|
readonly portalUrl: string;
|
|
81
|
-
/** User helpers: `.current(ctx)`, `.require(ctx)`, `.get(ctx, userId)`, `.viewer(ctx)` */
|
|
83
|
+
/** User helpers: `.current(ctx)`, `.require(ctx)`, `.get(ctx, userId)`, `.patch(ctx, userId, data)`, `.viewer(ctx)`, `.group.list(ctx, ...)`, `.group.get(ctx, ...)` */
|
|
82
84
|
get user(): {
|
|
83
85
|
current: (ctx: {
|
|
84
86
|
auth: import("convex/server").Auth;
|
|
85
|
-
}) => Promise<
|
|
87
|
+
}) => Promise<GenericId<"user"> | null>;
|
|
86
88
|
require: (ctx: {
|
|
87
89
|
auth: import("convex/server").Auth;
|
|
88
|
-
}) => Promise<
|
|
90
|
+
}) => Promise<GenericId<"user">>;
|
|
89
91
|
get: (ctx: Pick<import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel>, "runQuery">, userId: string) => Promise<any>;
|
|
90
92
|
viewer: (ctx: Pick<import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel>, "runQuery"> & {
|
|
91
93
|
auth: import("convex/server").Auth;
|
|
92
94
|
}) => Promise<any>;
|
|
95
|
+
patch: (ctx: Pick<import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel>, "runQuery" | "runMutation">, userId: string, data: Record<string, unknown>) => Promise<void>;
|
|
93
96
|
group: {
|
|
94
97
|
list: (ctx: Pick<import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel>, "runQuery">, opts: {
|
|
95
98
|
userId: string;
|
|
@@ -100,27 +103,27 @@ export declare class Auth {
|
|
|
100
103
|
}) => Promise<any>;
|
|
101
104
|
};
|
|
102
105
|
};
|
|
103
|
-
/** Session helpers */
|
|
106
|
+
/** Session helpers: `.current(ctx)`, `.invalidate(ctx, { userId, except? })` */
|
|
104
107
|
get session(): {
|
|
105
108
|
current: (ctx: {
|
|
106
109
|
auth: import("convex/server").Auth;
|
|
107
|
-
}) => Promise<
|
|
110
|
+
}) => Promise<GenericId<"session"> | null>;
|
|
108
111
|
invalidate: <DataModel extends import("convex/server").GenericDataModel>(ctx: import("convex/server").GenericActionCtx<DataModel>, args: {
|
|
109
|
-
userId:
|
|
110
|
-
except?:
|
|
112
|
+
userId: GenericId<"user">;
|
|
113
|
+
except?: GenericId<"session">[];
|
|
111
114
|
}) => Promise<void>;
|
|
112
115
|
};
|
|
113
|
-
/** Provider helpers */
|
|
116
|
+
/** Provider helpers: `.signIn(ctx, provider, args)` */
|
|
114
117
|
get provider(): {
|
|
115
118
|
signIn: <DataModel extends import("convex/server").GenericDataModel>(ctx: import("convex/server").GenericActionCtx<DataModel>, provider: import("./types.js").AuthProviderConfig, args: {
|
|
116
|
-
accountId?:
|
|
119
|
+
accountId?: GenericId<"account">;
|
|
117
120
|
params?: Record<string, unknown>;
|
|
118
121
|
}) => Promise<{
|
|
119
|
-
userId:
|
|
120
|
-
sessionId:
|
|
122
|
+
userId: GenericId<"user">;
|
|
123
|
+
sessionId: GenericId<"session">;
|
|
121
124
|
} | null>;
|
|
122
125
|
};
|
|
123
|
-
/** Account helpers */
|
|
126
|
+
/** Account helpers: `.create(ctx, args)`, `.get(ctx, args)`, `.updateCredentials(ctx, args)` */
|
|
124
127
|
get account(): {
|
|
125
128
|
create: <DataModel extends import("convex/server").GenericDataModel>(ctx: import("convex/server").GenericActionCtx<DataModel>, args: {
|
|
126
129
|
provider: string;
|
|
@@ -132,8 +135,8 @@ export declare class Auth {
|
|
|
132
135
|
shouldLinkViaEmail?: boolean;
|
|
133
136
|
shouldLinkViaPhone?: boolean;
|
|
134
137
|
}) => Promise<{
|
|
135
|
-
account:
|
|
136
|
-
user:
|
|
138
|
+
account: Doc<"account">;
|
|
139
|
+
user: Doc<"user">;
|
|
137
140
|
}>;
|
|
138
141
|
get: <DataModel extends import("convex/server").GenericDataModel>(ctx: import("convex/server").GenericActionCtx<DataModel>, args: {
|
|
139
142
|
provider: string;
|
|
@@ -142,8 +145,8 @@ export declare class Auth {
|
|
|
142
145
|
secret?: string;
|
|
143
146
|
};
|
|
144
147
|
}) => Promise<{
|
|
145
|
-
account:
|
|
146
|
-
user:
|
|
148
|
+
account: Doc<"account">;
|
|
149
|
+
user: Doc<"user">;
|
|
147
150
|
}>;
|
|
148
151
|
updateCredentials: <DataModel extends import("convex/server").GenericDataModel>(ctx: import("convex/server").GenericActionCtx<DataModel>, args: {
|
|
149
152
|
provider: string;
|
|
@@ -153,16 +156,18 @@ export declare class Auth {
|
|
|
153
156
|
};
|
|
154
157
|
}) => Promise<void>;
|
|
155
158
|
};
|
|
156
|
-
/** Group helpers */
|
|
159
|
+
/** Group helpers: `.create(ctx, ...)`, `.get(ctx, id)`, `.list(ctx, ...)`, `.update(ctx, ...)`, `.delete(ctx, id)`, `.member.*` */
|
|
157
160
|
get group(): {
|
|
158
161
|
create: (ctx: Pick<import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel>, "runQuery" | "runMutation">, data: {
|
|
159
162
|
name: string;
|
|
160
163
|
slug?: string;
|
|
164
|
+
type?: string;
|
|
161
165
|
parentGroupId?: string;
|
|
162
166
|
extend?: Record<string, unknown>;
|
|
163
167
|
}) => Promise<string>;
|
|
164
168
|
get: (ctx: Pick<import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel>, "runQuery">, groupId: string) => Promise<any>;
|
|
165
169
|
list: (ctx: Pick<import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel>, "runQuery">, opts?: {
|
|
170
|
+
type?: string;
|
|
166
171
|
parentGroupId?: string;
|
|
167
172
|
}) => Promise<any>;
|
|
168
173
|
update: (ctx: Pick<import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel>, "runQuery" | "runMutation">, groupId: string, data: Record<string, unknown>) => Promise<void>;
|
|
@@ -183,7 +188,7 @@ export declare class Auth {
|
|
|
183
188
|
update: (ctx: Pick<import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel>, "runQuery" | "runMutation">, memberId: string, data: Record<string, unknown>) => Promise<void>;
|
|
184
189
|
};
|
|
185
190
|
};
|
|
186
|
-
/** Invite helpers */
|
|
191
|
+
/** Invite helpers: `.create(ctx, ...)`, `.get(ctx, id)`, `.getByTokenHash(ctx, hash)`, `.list(ctx, ...)`, `.accept(ctx, ...)`, `.revoke(ctx, id)` */
|
|
187
192
|
get invite(): {
|
|
188
193
|
create: (ctx: Pick<import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel>, "runQuery" | "runMutation">, data: {
|
|
189
194
|
groupId?: string;
|
|
@@ -204,7 +209,7 @@ export declare class Auth {
|
|
|
204
209
|
accept: (ctx: Pick<import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel>, "runQuery" | "runMutation">, inviteId: string, acceptedByUserId?: string) => Promise<void>;
|
|
205
210
|
revoke: (ctx: Pick<import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel>, "runQuery" | "runMutation">, inviteId: string) => Promise<void>;
|
|
206
211
|
};
|
|
207
|
-
/** Passkey helpers */
|
|
212
|
+
/** Passkey helpers: `.list(ctx, { userId })`, `.rename(ctx, id, name)`, `.remove(ctx, id)` */
|
|
208
213
|
get passkey(): {
|
|
209
214
|
list: (ctx: Pick<import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel>, "runQuery">, opts: {
|
|
210
215
|
userId: string;
|
|
@@ -212,14 +217,14 @@ export declare class Auth {
|
|
|
212
217
|
rename: (ctx: Pick<import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel>, "runQuery" | "runMutation">, passkeyId: string, name: string) => Promise<void>;
|
|
213
218
|
remove: (ctx: Pick<import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel>, "runQuery" | "runMutation">, passkeyId: string) => Promise<void>;
|
|
214
219
|
};
|
|
215
|
-
/** TOTP helpers */
|
|
220
|
+
/** TOTP helpers: `.list(ctx, { userId })`, `.remove(ctx, id)` */
|
|
216
221
|
get totp(): {
|
|
217
222
|
list: (ctx: Pick<import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel>, "runQuery">, opts: {
|
|
218
223
|
userId: string;
|
|
219
224
|
}) => Promise<any>;
|
|
220
225
|
remove: (ctx: Pick<import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel>, "runQuery" | "runMutation">, totpId: string) => Promise<void>;
|
|
221
226
|
};
|
|
222
|
-
/** API key helpers: `.create(ctx, ...)`, `.verify(ctx,
|
|
227
|
+
/** API key helpers: `.create(ctx, ...)`, `.verify(ctx, rawKey)`, `.list(ctx, ...)`, `.get(ctx, id)`, `.update(ctx, ...)`, `.revoke(ctx, id)`, `.remove(ctx, id)` */
|
|
223
228
|
get key(): {
|
|
224
229
|
create: (ctx: Pick<import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel>, "runQuery" | "runMutation">, opts: {
|
|
225
230
|
userId: string;
|
|
@@ -241,8 +246,8 @@ export declare class Auth {
|
|
|
241
246
|
}>;
|
|
242
247
|
list: (ctx: Pick<import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel>, "runQuery">, opts: {
|
|
243
248
|
userId: string;
|
|
244
|
-
}) => Promise<
|
|
245
|
-
get: (ctx: Pick<import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel>, "runQuery">, keyId: string) => Promise<
|
|
249
|
+
}) => Promise<import("./implementation/types.js").KeyDoc[]>;
|
|
250
|
+
get: (ctx: Pick<import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel>, "runQuery">, keyId: string) => Promise<import("./implementation/types.js").KeyDoc | null>;
|
|
246
251
|
update: (ctx: Pick<import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel>, "runQuery" | "runMutation">, keyId: string, data: {
|
|
247
252
|
name?: string;
|
|
248
253
|
scopes?: import("./types.js").KeyScope[];
|
|
@@ -254,10 +259,14 @@ export declare class Auth {
|
|
|
254
259
|
revoke: (ctx: Pick<import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel>, "runQuery" | "runMutation">, keyId: string) => Promise<void>;
|
|
255
260
|
remove: (ctx: Pick<import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel>, "runQuery" | "runMutation">, keyId: string) => Promise<void>;
|
|
256
261
|
};
|
|
262
|
+
/**
|
|
263
|
+
* @param component - The auth component reference from `components.auth`.
|
|
264
|
+
* @param config - Auth configuration (providers, email transport, session, JWT, callbacks).
|
|
265
|
+
*/
|
|
257
266
|
constructor(component: AuthComponentApi, config: AuthClassConfig);
|
|
258
267
|
/**
|
|
259
|
-
*
|
|
260
|
-
* static file serving.
|
|
268
|
+
* HTTP namespace — route registration, Bearer-authenticated endpoints,
|
|
269
|
+
* and portal static file serving.
|
|
261
270
|
*
|
|
262
271
|
* ```ts
|
|
263
272
|
* // convex/http.ts
|
|
@@ -265,32 +274,213 @@ export declare class Auth {
|
|
|
265
274
|
* import { auth } from "./auth";
|
|
266
275
|
*
|
|
267
276
|
* const http = httpRouter();
|
|
268
|
-
* auth.
|
|
277
|
+
* auth.http.add(http);
|
|
269
278
|
* export default http;
|
|
270
279
|
* ```
|
|
271
280
|
*/
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
281
|
+
get http(): {
|
|
282
|
+
/**
|
|
283
|
+
* Register core HTTP routes (OAuth, JWKS) **and** portal static file
|
|
284
|
+
* serving in one call.
|
|
285
|
+
*
|
|
286
|
+
* @param http - The Convex HTTP router to register routes on.
|
|
287
|
+
* @param opts.pathPrefix - URL prefix for portal static files. Defaults to `"/auth"`.
|
|
288
|
+
* @param opts.spaFallback - Serve `index.html` for unmatched sub-paths. Defaults to `true`.
|
|
289
|
+
*/
|
|
290
|
+
add(http: HttpRouter, opts?: {
|
|
291
|
+
pathPrefix?: string;
|
|
292
|
+
spaFallback?: boolean;
|
|
293
|
+
}): void;
|
|
294
|
+
action: (handler: (ctx: import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel> & import("./types.js").HttpKeyContext, request: Request) => Promise<Response | Record<string, unknown>>, options?: {
|
|
295
|
+
scope?: {
|
|
296
|
+
resource: string;
|
|
297
|
+
action: string;
|
|
298
|
+
};
|
|
299
|
+
cors?: import("./types.js").CorsConfig;
|
|
300
|
+
}) => import("convex/server").PublicHttpAction;
|
|
301
|
+
route: (http: HttpRouter, routeConfig: {
|
|
302
|
+
path: string;
|
|
303
|
+
method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
|
|
304
|
+
handler: (ctx: import("convex/server").GenericActionCtx<import("convex/server").GenericDataModel> & import("./types.js").HttpKeyContext, request: Request) => Promise<Response | Record<string, unknown>>;
|
|
305
|
+
scope?: {
|
|
306
|
+
resource: string;
|
|
307
|
+
action: string;
|
|
308
|
+
};
|
|
309
|
+
cors?: import("./types.js").CorsConfig;
|
|
310
|
+
}) => void;
|
|
311
|
+
};
|
|
276
312
|
}
|
|
277
313
|
/**
|
|
278
|
-
* Create portal function definitions from
|
|
314
|
+
* Create portal function definitions from an `Auth` instance.
|
|
279
315
|
*
|
|
280
|
-
*
|
|
281
|
-
*
|
|
282
|
-
* cannot trace through `instance.method()`.
|
|
316
|
+
* Standalone function (not a class method) because Convex's bundler
|
|
317
|
+
* can trace `export const { x } = fn(instance)` but not `instance.method()`.
|
|
283
318
|
*
|
|
284
319
|
* ```ts
|
|
285
320
|
* export const { portalQuery, portalMutation, portalInternal } = Portal(auth);
|
|
286
321
|
* ```
|
|
322
|
+
*
|
|
323
|
+
* @param auth - The `Auth` class instance from your `convex/auth.ts`.
|
|
324
|
+
* @returns `{ portalQuery, portalMutation, portalInternal }` — export all three.
|
|
287
325
|
*/
|
|
288
326
|
export declare function Portal(auth: Auth): {
|
|
289
327
|
portalQuery: import("convex/server").RegisteredQuery<"public", {
|
|
290
328
|
action: string;
|
|
291
329
|
userId?: string;
|
|
330
|
+
groupId?: string;
|
|
331
|
+
groupType?: string;
|
|
332
|
+
groupParentId?: string;
|
|
292
333
|
}, Promise<any>>;
|
|
293
334
|
portalMutation: import("convex/server").RegisteredMutation<"public", any, Promise<any>>;
|
|
294
335
|
portalInternal: import("convex/server").RegisteredMutation<"internal", any, Promise<any>>;
|
|
295
336
|
};
|
|
296
|
-
|
|
337
|
+
/**
|
|
338
|
+
* The shape of a user document from the auth component's `user` table.
|
|
339
|
+
*
|
|
340
|
+
* Includes system fields (`_id`, `_creationTime`) plus the schema fields
|
|
341
|
+
* (`name`, `email`, `image`, `extend`, etc.).
|
|
342
|
+
*/
|
|
343
|
+
export type UserDoc = Doc<"user">;
|
|
344
|
+
/**
|
|
345
|
+
* Configuration for auth context enrichment.
|
|
346
|
+
*
|
|
347
|
+
* @typeParam TResolve - The shape returned by the `resolve` callback.
|
|
348
|
+
* Inferred automatically — you usually don't need to supply this manually.
|
|
349
|
+
*/
|
|
350
|
+
export type AuthCtxConfig<TResolve extends Record<string, unknown> = Record<string, never>> = {
|
|
351
|
+
/**
|
|
352
|
+
* When `true`, unauthenticated requests set `ctx.auth.userId` and
|
|
353
|
+
* `ctx.auth.user` to `null` instead of throwing.
|
|
354
|
+
*
|
|
355
|
+
* @default false
|
|
356
|
+
*/
|
|
357
|
+
optional?: boolean;
|
|
358
|
+
/**
|
|
359
|
+
* Resolve additional context after authentication succeeds (e.g.
|
|
360
|
+
* group/role for multi-tenant apps). The returned object is spread
|
|
361
|
+
* into `ctx.auth`.
|
|
362
|
+
*/
|
|
363
|
+
resolve?: (ctx: any, user: UserDoc) => Promise<TResolve> | TResolve;
|
|
364
|
+
};
|
|
365
|
+
/**
|
|
366
|
+
* Create a `convex-helpers`–compatible customization object that
|
|
367
|
+
* enriches `ctx.auth` with the authenticated user's data.
|
|
368
|
+
*
|
|
369
|
+
* Standalone function (not a class method) because Convex's bundler
|
|
370
|
+
* can trace `export const x = fn(instance)` but not `instance.method()`.
|
|
371
|
+
*
|
|
372
|
+
* ### Basic usage (with `convex-helpers`)
|
|
373
|
+
*
|
|
374
|
+
* ```ts
|
|
375
|
+
* // convex/functions.ts
|
|
376
|
+
* import { customQuery, customMutation } from "convex-helpers/server/customFunctions";
|
|
377
|
+
* import { query as rawQuery, mutation as rawMutation } from "./_generated/server";
|
|
378
|
+
* import { AuthCtx } from "\@robelest/convex-auth/component";
|
|
379
|
+
* import { auth } from "./auth";
|
|
380
|
+
*
|
|
381
|
+
* const authCtx = AuthCtx(auth);
|
|
382
|
+
*
|
|
383
|
+
* export const query = customQuery(rawQuery, authCtx);
|
|
384
|
+
* export const mutation = customMutation(rawMutation, authCtx);
|
|
385
|
+
* ```
|
|
386
|
+
*
|
|
387
|
+
* Then in any function file:
|
|
388
|
+
*
|
|
389
|
+
* ```ts
|
|
390
|
+
* // convex/messages.ts
|
|
391
|
+
* import { query, mutation } from "./functions";
|
|
392
|
+
*
|
|
393
|
+
* export const list = query({
|
|
394
|
+
* args: {},
|
|
395
|
+
* handler: async (ctx) => {
|
|
396
|
+
* // ctx.auth.userId and ctx.auth.user are already resolved
|
|
397
|
+
* return ctx.db.query("messages").collect();
|
|
398
|
+
* },
|
|
399
|
+
* });
|
|
400
|
+
* ```
|
|
401
|
+
*
|
|
402
|
+
* ### Optional auth (public routes)
|
|
403
|
+
*
|
|
404
|
+
* ```ts
|
|
405
|
+
* export const publicQuery = customQuery(rawQuery, AuthCtx(auth, { optional: true }));
|
|
406
|
+
* // ctx.auth.userId is null when unauthenticated
|
|
407
|
+
* ```
|
|
408
|
+
*
|
|
409
|
+
* ### Multi-tenant with group resolution
|
|
410
|
+
*
|
|
411
|
+
* ```ts
|
|
412
|
+
* const authCtx = AuthCtx(auth, {
|
|
413
|
+
* resolve: async (ctx, user) => {
|
|
414
|
+
* const groupId = user?.extend?.lastActiveGroup;
|
|
415
|
+
* const membership = await auth.user.group.get(ctx, {
|
|
416
|
+
* userId: user._id,
|
|
417
|
+
* groupId,
|
|
418
|
+
* });
|
|
419
|
+
* return { groupId, role: membership?.role ?? "member" };
|
|
420
|
+
* },
|
|
421
|
+
* });
|
|
422
|
+
* // ctx.auth.groupId and ctx.auth.role available in handlers
|
|
423
|
+
* ```
|
|
424
|
+
*
|
|
425
|
+
* @param auth - The `Auth` class instance from your `convex/auth.ts`.
|
|
426
|
+
* @param config - Optional configuration for optional auth and group resolution.
|
|
427
|
+
* @returns A `{ args, input }` customization object compatible with
|
|
428
|
+
* `customQuery` / `customMutation` from `convex-helpers`.
|
|
429
|
+
*/
|
|
430
|
+
/**
|
|
431
|
+
* Overload: optional auth — `userId` and `user` may be `null`.
|
|
432
|
+
*/
|
|
433
|
+
export declare function AuthCtx<TResolve extends Record<string, unknown> = Record<string, never>>(auth: Auth, config: AuthCtxConfig<TResolve> & {
|
|
434
|
+
optional: true;
|
|
435
|
+
}): {
|
|
436
|
+
args: {};
|
|
437
|
+
input: (ctx: any, _args: any, _extra?: any) => Promise<{
|
|
438
|
+
ctx: {
|
|
439
|
+
auth: {
|
|
440
|
+
getUserIdentity: () => Promise<UserIdentity | null>;
|
|
441
|
+
userId: GenericId<"user"> | null;
|
|
442
|
+
user: UserDoc | null;
|
|
443
|
+
} & TResolve;
|
|
444
|
+
};
|
|
445
|
+
args: {};
|
|
446
|
+
}>;
|
|
447
|
+
};
|
|
448
|
+
/**
|
|
449
|
+
* Overload: required auth (default) — `userId` and `user` are never `null`.
|
|
450
|
+
*/
|
|
451
|
+
export declare function AuthCtx<TResolve extends Record<string, unknown> = Record<string, never>>(auth: Auth, config?: AuthCtxConfig<TResolve>): {
|
|
452
|
+
args: {};
|
|
453
|
+
input: (ctx: any, _args: any, _extra?: any) => Promise<{
|
|
454
|
+
ctx: {
|
|
455
|
+
auth: {
|
|
456
|
+
getUserIdentity: () => Promise<UserIdentity | null>;
|
|
457
|
+
userId: GenericId<"user">;
|
|
458
|
+
user: UserDoc;
|
|
459
|
+
} & TResolve;
|
|
460
|
+
};
|
|
461
|
+
args: {};
|
|
462
|
+
}>;
|
|
463
|
+
};
|
|
464
|
+
/**
|
|
465
|
+
* Extract the `ctx.auth` shape from an {@link AuthCtx} result.
|
|
466
|
+
*
|
|
467
|
+
* Follows the same pattern as `Infer<typeof validator>` in Convex
|
|
468
|
+
* and `z.infer<typeof schema>` in Zod.
|
|
469
|
+
*
|
|
470
|
+
* @example
|
|
471
|
+
* ```ts
|
|
472
|
+
* const authCtx = AuthCtx(auth, {
|
|
473
|
+
* resolve: async (ctx, user) => ({ groupId: "abc", role: "admin" }),
|
|
474
|
+
* });
|
|
475
|
+
* type MyAuth = InferAuth<typeof authCtx>;
|
|
476
|
+
* // { getUserIdentity, userId, user, groupId: string, role: string }
|
|
477
|
+
* ```
|
|
478
|
+
*/
|
|
479
|
+
export type InferAuth<T extends {
|
|
480
|
+
input: (...args: any[]) => Promise<{
|
|
481
|
+
ctx: {
|
|
482
|
+
auth: any;
|
|
483
|
+
};
|
|
484
|
+
}>;
|
|
485
|
+
}> = Awaited<ReturnType<T["input"]>>["ctx"]["auth"];
|
|
486
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/server/auth.ts"],"names":[],"mappings":"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"}
|