@convex-dev/better-auth 0.7.0-alpha.11 → 0.7.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commonjs/client/adapter.d.ts +1 -10
- package/dist/commonjs/client/adapter.d.ts.map +1 -1
- package/dist/commonjs/client/adapter.js +192 -183
- package/dist/commonjs/client/adapter.js.map +1 -1
- package/dist/commonjs/client/index.d.ts +179 -238
- package/dist/commonjs/client/index.d.ts.map +1 -1
- package/dist/commonjs/client/index.js +67 -60
- package/dist/commonjs/client/index.js.map +1 -1
- package/dist/commonjs/component/lib.d.ts +548 -218
- package/dist/commonjs/component/lib.d.ts.map +1 -1
- package/dist/commonjs/component/lib.js +286 -315
- package/dist/commonjs/component/lib.js.map +1 -1
- package/dist/commonjs/component/schema.d.ts +28 -90
- package/dist/commonjs/component/schema.d.ts.map +1 -1
- package/dist/commonjs/component/schema.js +18 -76
- package/dist/commonjs/component/schema.js.map +1 -1
- package/dist/commonjs/component/util.d.ts +86 -148
- package/dist/commonjs/component/util.d.ts.map +1 -1
- package/dist/commonjs/nextjs/index.d.ts.map +1 -1
- package/dist/commonjs/nextjs/index.js +0 -12
- package/dist/commonjs/nextjs/index.js.map +1 -1
- package/dist/commonjs/plugins/convex/index.d.ts +11 -14
- package/dist/commonjs/plugins/convex/index.d.ts.map +1 -1
- package/dist/commonjs/plugins/convex/index.js +4 -10
- package/dist/commonjs/plugins/convex/index.js.map +1 -1
- package/dist/commonjs/plugins/cross-domain/client.d.ts +1 -1
- package/dist/commonjs/plugins/cross-domain/index.d.ts +3 -5
- package/dist/commonjs/plugins/cross-domain/index.d.ts.map +1 -1
- package/dist/commonjs/plugins/cross-domain/index.js +5 -19
- package/dist/commonjs/plugins/cross-domain/index.js.map +1 -1
- package/dist/commonjs/react/client.d.ts +1 -1
- package/dist/commonjs/react/client.d.ts.map +1 -1
- package/dist/commonjs/react/client.js +9 -3
- package/dist/commonjs/react/client.js.map +1 -1
- package/dist/commonjs/react-start/index.d.ts +3 -37
- package/dist/commonjs/react-start/index.d.ts.map +1 -1
- package/dist/commonjs/react-start/index.js +4 -20
- package/dist/commonjs/react-start/index.js.map +1 -1
- package/dist/esm/client/adapter.d.ts +1 -10
- package/dist/esm/client/adapter.d.ts.map +1 -1
- package/dist/esm/client/adapter.js +192 -183
- package/dist/esm/client/adapter.js.map +1 -1
- package/dist/esm/client/index.d.ts +179 -238
- package/dist/esm/client/index.d.ts.map +1 -1
- package/dist/esm/client/index.js +67 -60
- package/dist/esm/client/index.js.map +1 -1
- package/dist/esm/component/lib.d.ts +548 -218
- package/dist/esm/component/lib.d.ts.map +1 -1
- package/dist/esm/component/lib.js +286 -315
- package/dist/esm/component/lib.js.map +1 -1
- package/dist/esm/component/schema.d.ts +28 -90
- package/dist/esm/component/schema.d.ts.map +1 -1
- package/dist/esm/component/schema.js +18 -76
- package/dist/esm/component/schema.js.map +1 -1
- package/dist/esm/component/util.d.ts +86 -148
- package/dist/esm/component/util.d.ts.map +1 -1
- package/dist/esm/nextjs/index.d.ts.map +1 -1
- package/dist/esm/nextjs/index.js +0 -12
- package/dist/esm/nextjs/index.js.map +1 -1
- package/dist/esm/plugins/convex/index.d.ts +11 -14
- package/dist/esm/plugins/convex/index.d.ts.map +1 -1
- package/dist/esm/plugins/convex/index.js +4 -10
- package/dist/esm/plugins/convex/index.js.map +1 -1
- package/dist/esm/plugins/cross-domain/client.d.ts +1 -1
- package/dist/esm/plugins/cross-domain/index.d.ts +3 -5
- package/dist/esm/plugins/cross-domain/index.d.ts.map +1 -1
- package/dist/esm/plugins/cross-domain/index.js +5 -19
- package/dist/esm/plugins/cross-domain/index.js.map +1 -1
- package/dist/esm/react/client.d.ts +1 -1
- package/dist/esm/react/client.d.ts.map +1 -1
- package/dist/esm/react/client.js +9 -3
- package/dist/esm/react/client.js.map +1 -1
- package/dist/esm/react-start/index.d.ts +3 -37
- package/dist/esm/react-start/index.d.ts.map +1 -1
- package/dist/esm/react-start/index.js +4 -20
- package/dist/esm/react-start/index.js.map +1 -1
- package/package.json +5 -20
- package/src/client/adapter.ts +195 -191
- package/src/client/cors.ts +425 -0
- package/src/client/index.ts +80 -61
- package/src/component/_generated/api.d.ts +149 -605
- package/src/component/lib.ts +335 -444
- package/src/component/schema.ts +19 -81
- package/src/nextjs/index.ts +0 -17
- package/src/plugins/convex/index.ts +4 -12
- package/src/plugins/cross-domain/index.ts +5 -19
- package/src/react/client.tsx +11 -5
- package/src/react-start/index.ts +6 -33
- package/dist/commonjs/component/adapterTest.d.ts +0 -19
- package/dist/commonjs/component/adapterTest.d.ts.map +0 -1
- package/dist/commonjs/component/adapterTest.js +0 -82
- package/dist/commonjs/component/adapterTest.js.map +0 -1
- package/dist/commonjs/utils/index.d.ts +0 -2
- package/dist/commonjs/utils/index.d.ts.map +0 -1
- package/dist/commonjs/utils/index.js +0 -8
- package/dist/commonjs/utils/index.js.map +0 -1
- package/dist/esm/component/adapterTest.d.ts +0 -19
- package/dist/esm/component/adapterTest.d.ts.map +0 -1
- package/dist/esm/component/adapterTest.js +0 -82
- package/dist/esm/component/adapterTest.js.map +0 -1
- package/dist/esm/utils/index.d.ts +0 -2
- package/dist/esm/utils/index.d.ts.map +0 -1
- package/dist/esm/utils/index.js +0 -8
- package/dist/esm/utils/index.js.map +0 -1
- package/src/client/adapter.test.ts +0 -144
- package/src/component/adapterTest.ts +0 -141
- package/src/react-start/vite-env.d.ts +0 -2
- /package/src/{utils/index.ts → util.ts} +0 -0
|
@@ -2,34 +2,30 @@ import { httpActionGeneric, internalMutationGeneric, queryGeneric, } from "conve
|
|
|
2
2
|
import { v } from "convex/values";
|
|
3
3
|
import schema from "../component/schema";
|
|
4
4
|
import { convexAdapter } from "./adapter";
|
|
5
|
+
import corsRouter from "./cors";
|
|
6
|
+
import { getByArgsValidator, updateArgsInputValidator } from "../component/lib";
|
|
5
7
|
import { omit } from "convex-helpers";
|
|
6
8
|
import { createCookieGetter } from "better-auth/cookies";
|
|
7
9
|
import { fetchQuery } from "convex/nextjs";
|
|
8
10
|
import { JWT_COOKIE_NAME } from "../plugins/convex";
|
|
9
|
-
import { requireEnv } from "../
|
|
10
|
-
import { partial } from "convex-helpers/validators";
|
|
11
|
-
import { adapterArgsValidator, adapterWhereValidator } from "../component/lib";
|
|
12
|
-
import { corsRouter } from "convex-helpers/server/cors";
|
|
11
|
+
import { requireEnv } from "../util";
|
|
13
12
|
export { convexAdapter };
|
|
14
13
|
const createUserFields = omit(schema.tables.user.validator.fields, ["userId"]);
|
|
15
14
|
const createUserValidator = v.object(createUserFields);
|
|
16
15
|
const createUserArgsValidator = v.object({
|
|
17
16
|
input: v.object({
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
...createUserFields,
|
|
18
|
+
table: v.literal("user"),
|
|
20
19
|
}),
|
|
21
20
|
});
|
|
22
21
|
const updateUserArgsValidator = v.object({
|
|
23
|
-
input:
|
|
24
|
-
model: v.literal("user"),
|
|
25
|
-
where: v.optional(v.array(adapterWhereValidator)),
|
|
26
|
-
update: v.object(partial(createUserFields)),
|
|
27
|
-
}),
|
|
22
|
+
input: updateArgsInputValidator("user"),
|
|
28
23
|
});
|
|
24
|
+
const deleteUserArgsValidator = v.object(getByArgsValidator);
|
|
29
25
|
const createSessionArgsValidator = v.object({
|
|
30
26
|
input: v.object({
|
|
31
|
-
|
|
32
|
-
|
|
27
|
+
table: v.literal("session"),
|
|
28
|
+
...schema.tables.session.validator.fields,
|
|
33
29
|
}),
|
|
34
30
|
});
|
|
35
31
|
export class BetterAuth {
|
|
@@ -69,14 +65,10 @@ export class BetterAuth {
|
|
|
69
65
|
if (!identity) {
|
|
70
66
|
return null;
|
|
71
67
|
}
|
|
72
|
-
const doc = await ctx.runQuery(this.component.lib.
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
field: "userId",
|
|
77
|
-
value: identity.subject,
|
|
78
|
-
},
|
|
79
|
-
],
|
|
68
|
+
const doc = await ctx.runQuery(this.component.lib.getBy, {
|
|
69
|
+
table: "user",
|
|
70
|
+
field: "userId",
|
|
71
|
+
value: identity.subject,
|
|
80
72
|
});
|
|
81
73
|
if (!doc) {
|
|
82
74
|
return null;
|
|
@@ -106,35 +98,32 @@ export class BetterAuth {
|
|
|
106
98
|
createUser: internalMutationGeneric({
|
|
107
99
|
args: createUserArgsValidator,
|
|
108
100
|
handler: async (ctx, args) => {
|
|
109
|
-
const userId = await opts.onCreateUser(ctx, args.input
|
|
101
|
+
const userId = await opts.onCreateUser(ctx, args.input);
|
|
102
|
+
const input = { ...args.input, table: "user", userId };
|
|
110
103
|
return ctx.runMutation(this.component.lib.create, {
|
|
111
|
-
input
|
|
112
|
-
...args.input,
|
|
113
|
-
data: { ...args.input.data, userId },
|
|
114
|
-
},
|
|
104
|
+
input,
|
|
115
105
|
});
|
|
116
106
|
},
|
|
117
107
|
}),
|
|
118
108
|
deleteUser: internalMutationGeneric({
|
|
119
|
-
args:
|
|
109
|
+
args: deleteUserArgsValidator,
|
|
120
110
|
handler: async (ctx, args) => {
|
|
121
|
-
const doc = await ctx.runMutation(this.component.lib.
|
|
122
|
-
if (
|
|
111
|
+
const doc = await ctx.runMutation(this.component.lib.deleteBy, args);
|
|
112
|
+
if (opts.onDeleteUser) {
|
|
123
113
|
await opts.onDeleteUser(ctx, doc.userId);
|
|
124
114
|
}
|
|
125
|
-
return doc;
|
|
126
115
|
},
|
|
127
116
|
}),
|
|
128
117
|
updateUser: internalMutationGeneric({
|
|
129
118
|
args: updateUserArgsValidator,
|
|
130
119
|
handler: async (ctx, args) => {
|
|
131
|
-
const updatedUser = await ctx.runMutation(this.component.lib.
|
|
120
|
+
const updatedUser = await ctx.runMutation(this.component.lib.update, args);
|
|
132
121
|
// Type narrowing
|
|
133
122
|
if (!("emailVerified" in updatedUser)) {
|
|
134
123
|
throw new Error("invalid user");
|
|
135
124
|
}
|
|
136
125
|
if (opts.onUpdateUser) {
|
|
137
|
-
await opts.onUpdateUser(ctx, omit(updatedUser, ["
|
|
126
|
+
await opts.onUpdateUser(ctx, omit(updatedUser, ["id"]));
|
|
138
127
|
}
|
|
139
128
|
return updatedUser;
|
|
140
129
|
},
|
|
@@ -142,9 +131,11 @@ export class BetterAuth {
|
|
|
142
131
|
createSession: internalMutationGeneric({
|
|
143
132
|
args: createSessionArgsValidator,
|
|
144
133
|
handler: async (ctx, args) => {
|
|
145
|
-
const session = await ctx.runMutation(this.component.lib.create,
|
|
146
|
-
|
|
147
|
-
|
|
134
|
+
const session = await ctx.runMutation(this.component.lib.create, args);
|
|
135
|
+
// Type narrowing
|
|
136
|
+
if (!("ipAddress" in session)) {
|
|
137
|
+
throw new Error("invalid session");
|
|
138
|
+
}
|
|
148
139
|
await opts.onCreateSession?.(ctx, session);
|
|
149
140
|
return session;
|
|
150
141
|
},
|
|
@@ -156,7 +147,6 @@ export class BetterAuth {
|
|
|
156
147
|
const path = betterAuthOptions.basePath ?? "/api/auth";
|
|
157
148
|
const authRequestHandler = httpActionGeneric(async (ctx, request) => {
|
|
158
149
|
if (this.config.verbose) {
|
|
159
|
-
console.log("options.baseURL", betterAuthOptions.baseURL);
|
|
160
150
|
console.log("request headers", request.headers);
|
|
161
151
|
}
|
|
162
152
|
const auth = createAuth(ctx);
|
|
@@ -166,19 +156,15 @@ export class BetterAuth {
|
|
|
166
156
|
}
|
|
167
157
|
return response;
|
|
168
158
|
});
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
return Response.redirect(url);
|
|
179
|
-
}),
|
|
180
|
-
});
|
|
181
|
-
}
|
|
159
|
+
// Redirect root well-known to api well-known
|
|
160
|
+
http.route({
|
|
161
|
+
path: "/.well-known/openid-configuration",
|
|
162
|
+
method: "GET",
|
|
163
|
+
handler: httpActionGeneric(async () => {
|
|
164
|
+
const url = `${requireEnv("CONVEX_SITE_URL")}/api/auth/convex/.well-known/openid-configuration`;
|
|
165
|
+
return Response.redirect(url);
|
|
166
|
+
}),
|
|
167
|
+
});
|
|
182
168
|
if (!opts.cors) {
|
|
183
169
|
http.route({
|
|
184
170
|
pathPrefix: `${path}/`,
|
|
@@ -192,18 +178,39 @@ export class BetterAuth {
|
|
|
192
178
|
});
|
|
193
179
|
return;
|
|
194
180
|
}
|
|
181
|
+
const trustedOrigins = [
|
|
182
|
+
...(Array.isArray(betterAuthOptions.trustedOrigins)
|
|
183
|
+
? betterAuthOptions.trustedOrigins
|
|
184
|
+
: [betterAuthOptions.trustedOrigins]),
|
|
185
|
+
betterAuthOptions.baseURL,
|
|
186
|
+
];
|
|
187
|
+
// The crossDomain plugin adds siteUrl to trustedOrigins
|
|
188
|
+
const trustedOriginsFromPlugins = betterAuthOptions.plugins?.reduce((acc, plugin) => {
|
|
189
|
+
if (plugin.options?.trustedOrigins) {
|
|
190
|
+
acc.push(...plugin.options.trustedOrigins);
|
|
191
|
+
}
|
|
192
|
+
return acc;
|
|
193
|
+
}, []) ?? [];
|
|
194
|
+
// Reuse trustedOrigins as default for allowedOrigins
|
|
195
|
+
const allowedOrigins = async (request) => {
|
|
196
|
+
return (await Promise.all([...trustedOrigins, ...trustedOriginsFromPlugins].map(async (origin) => {
|
|
197
|
+
if (!origin) {
|
|
198
|
+
return [];
|
|
199
|
+
}
|
|
200
|
+
if (typeof origin === "function") {
|
|
201
|
+
return origin(request);
|
|
202
|
+
}
|
|
203
|
+
return [origin];
|
|
204
|
+
})))
|
|
205
|
+
.flat()
|
|
206
|
+
.map((origin) =>
|
|
207
|
+
// Strip trailing wildcards, unsupported for allowedOrigins
|
|
208
|
+
origin.endsWith("*") && origin.length > 1
|
|
209
|
+
? origin.slice(0, -1)
|
|
210
|
+
: origin);
|
|
211
|
+
};
|
|
195
212
|
const cors = corsRouter(http, {
|
|
196
|
-
allowedOrigins
|
|
197
|
-
const trustedOriginsOption = (await createAuth({}).$context).options.trustedOrigins ?? [];
|
|
198
|
-
const trustedOrigins = Array.isArray(trustedOriginsOption)
|
|
199
|
-
? trustedOriginsOption
|
|
200
|
-
: await trustedOriginsOption(request);
|
|
201
|
-
return trustedOrigins.map((origin) =>
|
|
202
|
-
// Strip trailing wildcards, unsupported for allowedOrigins
|
|
203
|
-
origin.endsWith("*") && origin.length > 1
|
|
204
|
-
? origin.slice(0, -1)
|
|
205
|
-
: origin);
|
|
206
|
-
},
|
|
213
|
+
allowedOrigins,
|
|
207
214
|
allowCredentials: true,
|
|
208
215
|
allowedHeaders: ["Content-Type", "Better-Auth-Cookie"],
|
|
209
216
|
exposedHeaders: ["Set-Better-Auth-Cookie"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,iBAAiB,EACjB,uBAAuB,EACvB,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAyB,CAAC,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"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"}
|