@convex-dev/better-auth 0.6.2 → 0.7.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -2
- package/dist/commonjs/client/adapter.d.ts.map +1 -1
- package/dist/commonjs/client/adapter.js +27 -9
- package/dist/commonjs/client/adapter.js.map +1 -1
- package/dist/commonjs/client/cors.d.ts +9 -4
- package/dist/commonjs/client/cors.d.ts.map +1 -1
- package/dist/commonjs/client/cors.js +44 -28
- package/dist/commonjs/client/cors.js.map +1 -1
- package/dist/commonjs/client/index.d.ts +1 -2
- package/dist/commonjs/client/index.d.ts.map +1 -1
- package/dist/commonjs/client/index.js +58 -61
- package/dist/commonjs/client/index.js.map +1 -1
- package/dist/commonjs/component/lib.d.ts +58 -0
- package/dist/commonjs/component/lib.d.ts.map +1 -1
- package/dist/commonjs/component/lib.js +28 -0
- package/dist/commonjs/component/lib.js.map +1 -1
- package/dist/commonjs/component/schema.d.ts +2 -0
- package/dist/commonjs/component/schema.d.ts.map +1 -1
- package/dist/commonjs/component/schema.js +3 -1
- package/dist/commonjs/component/schema.js.map +1 -1
- package/dist/commonjs/component/util.d.ts +6 -0
- 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 +3 -2
- package/dist/commonjs/nextjs/index.js.map +1 -1
- package/dist/commonjs/plugins/convex/index.d.ts +111 -2
- package/dist/commonjs/plugins/convex/index.d.ts.map +1 -1
- package/dist/commonjs/plugins/convex/index.js +66 -5
- package/dist/commonjs/plugins/convex/index.js.map +1 -1
- package/dist/commonjs/plugins/cross-domain/index.d.ts.map +1 -1
- package/dist/commonjs/plugins/cross-domain/index.js +2 -12
- package/dist/commonjs/plugins/cross-domain/index.js.map +1 -1
- package/dist/commonjs/react-start/index.d.ts.map +1 -1
- package/dist/commonjs/react-start/index.js +2 -2
- package/dist/commonjs/react-start/index.js.map +1 -1
- package/dist/esm/client/adapter.d.ts.map +1 -1
- package/dist/esm/client/adapter.js +27 -9
- package/dist/esm/client/adapter.js.map +1 -1
- package/dist/esm/client/cors.d.ts +9 -4
- package/dist/esm/client/cors.d.ts.map +1 -1
- package/dist/esm/client/cors.js +44 -28
- package/dist/esm/client/cors.js.map +1 -1
- package/dist/esm/client/index.d.ts +1 -2
- package/dist/esm/client/index.d.ts.map +1 -1
- package/dist/esm/client/index.js +58 -61
- package/dist/esm/client/index.js.map +1 -1
- package/dist/esm/component/lib.d.ts +58 -0
- package/dist/esm/component/lib.d.ts.map +1 -1
- package/dist/esm/component/lib.js +28 -0
- package/dist/esm/component/lib.js.map +1 -1
- package/dist/esm/component/schema.d.ts +2 -0
- package/dist/esm/component/schema.d.ts.map +1 -1
- package/dist/esm/component/schema.js +3 -1
- package/dist/esm/component/schema.js.map +1 -1
- package/dist/esm/component/util.d.ts +6 -0
- 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 +3 -2
- package/dist/esm/nextjs/index.js.map +1 -1
- package/dist/esm/plugins/convex/index.d.ts +111 -2
- package/dist/esm/plugins/convex/index.d.ts.map +1 -1
- package/dist/esm/plugins/convex/index.js +66 -5
- package/dist/esm/plugins/convex/index.js.map +1 -1
- package/dist/esm/plugins/cross-domain/index.d.ts.map +1 -1
- package/dist/esm/plugins/cross-domain/index.js +2 -12
- package/dist/esm/plugins/cross-domain/index.js.map +1 -1
- package/dist/esm/react-start/index.d.ts.map +1 -1
- package/dist/esm/react-start/index.js +2 -2
- package/dist/esm/react-start/index.js.map +1 -1
- package/package.json +1 -1
- package/src/client/adapter.ts +36 -11
- package/src/client/cors.ts +60 -38
- package/src/client/index.ts +66 -72
- package/src/component/_generated/api.d.ts +12 -0
- package/src/component/lib.ts +32 -0
- package/src/component/schema.ts +3 -1
- package/src/nextjs/index.ts +3 -2
- package/src/plugins/convex/index.ts +79 -11
- package/src/plugins/cross-domain/index.ts +2 -12
- package/src/react-start/index.ts +2 -2
- package/src/util.ts +7 -0
- package/dist/commonjs/component/adapterTest.d.ts +0 -15
- package/dist/commonjs/component/adapterTest.d.ts.map +0 -1
- package/dist/commonjs/component/adapterTest.js +0 -63
- 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 -21
- package/dist/esm/component/adapterTest.d.ts.map +0 -1
- package/dist/esm/component/adapterTest.js +0 -73
- 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
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { createCookieGetter } from "better-auth/cookies";
|
|
2
2
|
import { betterFetch } from "@better-fetch/fetch";
|
|
3
|
+
import { JWT_COOKIE_NAME } from "../plugins/convex";
|
|
3
4
|
export const getCookieName = async (createAuth) => {
|
|
4
5
|
const auth = createAuth({});
|
|
5
6
|
const createCookie = createCookieGetter(auth.options);
|
|
6
|
-
const cookie = createCookie(
|
|
7
|
+
const cookie = createCookie(JWT_COOKIE_NAME);
|
|
7
8
|
return cookie.name;
|
|
8
9
|
};
|
|
9
10
|
export const fetchSession = async (createAuth, request) => {
|
|
@@ -15,7 +16,6 @@ export const fetchSession = async (createAuth, request) => {
|
|
|
15
16
|
baseURL,
|
|
16
17
|
headers: {
|
|
17
18
|
cookie: request.headers.get("cookie") ?? "",
|
|
18
|
-
origin: baseURL,
|
|
19
19
|
},
|
|
20
20
|
});
|
|
21
21
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react-start/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react-start/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,UAAyE,EACzE,EAAE;IACF,MAAM,IAAI,GAAG,UAAU,CAAC,EAAS,CAAC,CAAC;IACnC,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAG/B,UAAa,EACb,OAAiB,EACjB,EAAE;IAGF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,WAAW,CACzC,uBAAuB,EACvB;QACE,OAAO;QACP,OAAO,EAAE;YACP,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;SAC5C;KACF,CACF,CAAC;IACF,OAAO;QACL,OAAO;KACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAAgB,EAChB,IAAiC,EACjC,EAAE;IACF,MAAM,aAAa,GAAG,IAAI,EAAE,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAC9E,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,GAAG,aAAa,GAAG,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;IAC7E,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AACtE,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/client/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EAChB,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,aAAa,GACxB,GAAG,SACC,eAAe,CAAC,GAAG,CAAC,GACpB,kBAAkB,CAAC,GAAG,CAAC,GACvB,gBAAgB,CAAC,GAAG,CAAC,EAEzB,KAAK,GAAG,EACR,WAAW,UAAU,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/client/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EAChB,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,aAAa,GACxB,GAAG,SACC,eAAe,CAAC,GAAG,CAAC,GACpB,kBAAkB,CAAC,GAAG,CAAC,GACvB,gBAAgB,CAAC,GAAG,CAAC,EAEzB,KAAK,GAAG,EACR,WAAW,UAAU,wFAoPnB,CAAC"}
|
|
@@ -51,7 +51,7 @@ export const convexAdapter = (ctx, component) => createAdapter({
|
|
|
51
51
|
},
|
|
52
52
|
findMany: async ({ model, where, sortBy, offset, limit, }) => {
|
|
53
53
|
if (offset) {
|
|
54
|
-
throw new Error("
|
|
54
|
+
throw new Error("offset not supported");
|
|
55
55
|
}
|
|
56
56
|
if (model === "jwks" &&
|
|
57
57
|
!where &&
|
|
@@ -59,22 +59,26 @@ export const convexAdapter = (ctx, component) => createAdapter({
|
|
|
59
59
|
(sortBy?.field === "createdAt" && sortBy?.direction === "desc"))) {
|
|
60
60
|
return ctx.runQuery(component.component.lib.getJwks, { limit });
|
|
61
61
|
}
|
|
62
|
-
if (where?.length !== 1 ||
|
|
62
|
+
if (where?.length !== 1 ||
|
|
63
|
+
(where[0].operator && where[0].operator !== "eq")) {
|
|
63
64
|
throw new Error("where clause not supported");
|
|
64
65
|
}
|
|
65
|
-
if (
|
|
66
|
-
|
|
66
|
+
if (model === "verification" && where[0].field === "identifier") {
|
|
67
|
+
return ctx.runQuery(component.component.lib.listVerificationsByIdentifier, {
|
|
68
|
+
identifier: where[0].value,
|
|
69
|
+
sortBy,
|
|
70
|
+
limit,
|
|
71
|
+
});
|
|
67
72
|
}
|
|
68
|
-
if (model === "account" && where[0].field === "userId") {
|
|
73
|
+
if (model === "account" && where[0].field === "userId" && !sortBy) {
|
|
69
74
|
return ctx.runQuery(component.component.lib.getAccountsByUserId, {
|
|
70
75
|
userId: where[0].value,
|
|
71
76
|
limit,
|
|
72
77
|
});
|
|
73
78
|
}
|
|
74
|
-
if (model === "
|
|
75
|
-
return ctx.runQuery(component.component.lib.
|
|
76
|
-
|
|
77
|
-
sortBy,
|
|
79
|
+
if (model === "session" && where[0].field === "userId" && !sortBy) {
|
|
80
|
+
return ctx.runQuery(component.component.lib.getSessionsByUserId, {
|
|
81
|
+
userId: where[0].value,
|
|
78
82
|
limit,
|
|
79
83
|
});
|
|
80
84
|
}
|
|
@@ -143,6 +147,19 @@ export const convexAdapter = (ctx, component) => createAdapter({
|
|
|
143
147
|
userId: where[0].value,
|
|
144
148
|
});
|
|
145
149
|
}
|
|
150
|
+
if (model === "session" &&
|
|
151
|
+
where?.length === 2 &&
|
|
152
|
+
where[0].operator === "eq" &&
|
|
153
|
+
where[0].connector === "AND" &&
|
|
154
|
+
where[0].field === "userId" &&
|
|
155
|
+
where[1].operator === "lte" &&
|
|
156
|
+
where[1].field === "expiresAt" &&
|
|
157
|
+
typeof where[1].value === "number") {
|
|
158
|
+
return ctx.runMutation(component.component.lib.deleteExpiredSessions, {
|
|
159
|
+
userId: where[0].value,
|
|
160
|
+
expiresAt: where[1].value,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
146
163
|
throw new Error("where clause not supported");
|
|
147
164
|
// return count;
|
|
148
165
|
},
|
|
@@ -164,6 +181,7 @@ export const convexAdapter = (ctx, component) => createAdapter({
|
|
|
164
181
|
where[0].operator === "eq" &&
|
|
165
182
|
where[0].connector === "AND" &&
|
|
166
183
|
where[0].field === "userId" &&
|
|
184
|
+
where[1].operator === "eq" &&
|
|
167
185
|
where[1].field === "providerId") {
|
|
168
186
|
return ctx.runMutation(component.component.lib.updateUserProviderAccounts, {
|
|
169
187
|
userId: where[0].value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/client/adapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAOrD,MAAM,CAAC,MAAM,aAAa,GAAG,CAM3B,GAAQ,EACR,SAAqB,EACrB,EAAE,CACF,aAAa,CAAC;IACZ,MAAM,EAAE;QACN,SAAS,EAAE,QAAQ;QACnB,WAAW,EAAE,gBAAgB;QAC7B,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO,IAAI,KAAK;QAC5C,mBAAmB,EAAE,IAAI;KAC1B;IACD,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QACtB,OAAO;YACL,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAgB,EAAE;gBACtD,IAAI,CAAC,CAAC,aAAa,IAAI,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBAC9C,CAAC;gBACD,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBAC7C,CAAC;gBACD,MAAM,QAAQ,GACZ,KAAK,KAAK,MAAM;oBACd,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU;oBAC3C,CAAC,CAAC,KAAK,KAAK,SAAS;wBACnB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa;wBAC9C,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;gBACvC,OAAO,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE;oBAC/B,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;iBACxD,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAgB,EAAE;gBAChD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACrD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBAClC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE;wBAC/D,KAAK,EAAE,KAAK;wBACZ,KAAK;wBACL,MAAM,EACJ,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM;wBAC5D,KAAK,EAAE,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK;qBACvD,CAAC,CAAC;oBACH,OAAO,MAAM,CAAC;gBAChB,CAAC;gBACD,IACE,KAAK,KAAK,SAAS;oBACnB,KAAK,CAAC,MAAM,KAAK,CAAC;oBAClB,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,WAAW;oBAC9B,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,YAAY;oBAC/B,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,EAC5B,CAAC;oBACD,OAAO,GAAG,CAAC,QAAQ,CACjB,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,kCAAkC,EAC1D;wBACE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAe;wBACnC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAe;qBACrC,CACF,CAAC;gBACJ,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YACD,QAAQ,EAAE,KAAK,EAAE,EACf,KAAK,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,GACN,EAAkB,EAAE;gBACnB,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/client/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* accessible to web applications hosted on different domains while
|
|
13
13
|
* maintaining proper CORS configuration.
|
|
14
14
|
*/
|
|
15
|
-
import { HttpRouter, RouteSpec } from "convex/server";
|
|
15
|
+
import { HttpRouter, type RouteSpec } from "convex/server";
|
|
16
16
|
export declare const DEFAULT_EXPOSED_HEADERS: string[];
|
|
17
17
|
export type CorsConfig = {
|
|
18
18
|
/**
|
|
@@ -31,7 +31,7 @@ export type CorsConfig = {
|
|
|
31
31
|
* - https://example.com
|
|
32
32
|
* @default ["*"]
|
|
33
33
|
*/
|
|
34
|
-
allowedOrigins?: string[];
|
|
34
|
+
allowedOrigins?: string[] | ((req: Request) => Promise<string[]>);
|
|
35
35
|
/**
|
|
36
36
|
* An array of allowed headers: what headers are allowed to be sent in
|
|
37
37
|
* the request.
|
|
@@ -53,10 +53,15 @@ export type CorsConfig = {
|
|
|
53
53
|
*/
|
|
54
54
|
browserCacheMaxAge?: number;
|
|
55
55
|
/**
|
|
56
|
-
* Whether to
|
|
56
|
+
* Whether to block requests from origins that are not in the allowedOrigins list.
|
|
57
|
+
* @default true
|
|
58
|
+
*/
|
|
59
|
+
enforceAllowOrigins?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Whether to log debugging information about CORS requests.
|
|
57
62
|
* @default false
|
|
58
63
|
*/
|
|
59
|
-
|
|
64
|
+
debug?: boolean;
|
|
60
65
|
};
|
|
61
66
|
type RouteSpecWithCors = RouteSpec & CorsConfig;
|
|
62
67
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../../src/client/cors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAIL,UAAU,
|
|
1
|
+
{"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../../src/client/cors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAIL,UAAU,EAIV,KAAK,SAAS,EAGf,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,uBAAuB,UAInC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAClE;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,KAAK,iBAAiB,GAAG,SAAS,GAAG,UAAU,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,UAAU,EAAE,aAAa,UAAU;;uBAK7C,iBAAiB,KAAG,IAAI;CAsD9C,CAAC;AA+DF,eAAe,UAAU,CAAC"}
|
package/dist/esm/client/cors.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* accessible to web applications hosted on different domains while
|
|
13
13
|
* maintaining proper CORS configuration.
|
|
14
14
|
*/
|
|
15
|
-
import { httpActionGeneric, httpRouter, } from "convex/server";
|
|
15
|
+
import { httpActionGeneric, httpRouter, ROUTABLE_HTTP_METHODS, } from "convex/server";
|
|
16
16
|
export const DEFAULT_EXPOSED_HEADERS = [
|
|
17
17
|
// For Range requests
|
|
18
18
|
"Content-Range",
|
|
@@ -137,7 +137,6 @@ export default corsRouter;
|
|
|
137
137
|
* This helper simplifies the process of making Convex HTTP actions accessible
|
|
138
138
|
* to web applications hosted on different domains.
|
|
139
139
|
*/
|
|
140
|
-
import { ROUTABLE_HTTP_METHODS } from "convex/server";
|
|
141
140
|
const SECONDS_IN_A_DAY = 60 * 60 * 24;
|
|
142
141
|
/**
|
|
143
142
|
* Example CORS origins:
|
|
@@ -147,7 +146,7 @@ const SECONDS_IN_A_DAY = 60 * 60 * 24;
|
|
|
147
146
|
* - "https://example1.com, https://example2.com" (allow multiple specific domains)
|
|
148
147
|
* - "null" (allow requests from data URLs or local files)
|
|
149
148
|
*/
|
|
150
|
-
const handleCors = ({ originalHandler, allowedMethods = ["OPTIONS"], allowedOrigins = ["*"], allowedHeaders = ["Content-Type"], exposedHeaders = DEFAULT_EXPOSED_HEADERS, allowCredentials = false, browserCacheMaxAge = SECONDS_IN_A_DAY,
|
|
149
|
+
const handleCors = ({ originalHandler, allowedMethods = ["OPTIONS"], allowedOrigins = ["*"], allowedHeaders = ["Content-Type"], exposedHeaders = DEFAULT_EXPOSED_HEADERS, allowCredentials = false, browserCacheMaxAge = SECONDS_IN_A_DAY, enforceAllowOrigins = true, debug = false, }) => {
|
|
151
150
|
const uniqueMethods = Array.from(new Set(allowedMethods.map((method) => method.toUpperCase())));
|
|
152
151
|
const filteredMethods = uniqueMethods.filter((method) => ROUTABLE_HTTP_METHODS.includes(method));
|
|
153
152
|
if (filteredMethods.length === 0) {
|
|
@@ -172,9 +171,17 @@ const handleCors = ({ originalHandler, allowedMethods = ["OPTIONS"], allowedOrig
|
|
|
172
171
|
if (exposedHeaders.length > 0) {
|
|
173
172
|
commonHeaders["Access-Control-Expose-Headers"] = exposedHeaders.join(", ");
|
|
174
173
|
}
|
|
174
|
+
async function parseAllowedOrigins(request) {
|
|
175
|
+
return Array.isArray(allowedOrigins)
|
|
176
|
+
? allowedOrigins
|
|
177
|
+
: await allowedOrigins(request);
|
|
178
|
+
}
|
|
175
179
|
// Helper function to check if origin is allowed (including wildcard subdomain matching)
|
|
176
|
-
function isAllowedOrigin(
|
|
177
|
-
|
|
180
|
+
async function isAllowedOrigin(request) {
|
|
181
|
+
const requestOrigin = request.headers.get("origin");
|
|
182
|
+
if (!requestOrigin)
|
|
183
|
+
return false;
|
|
184
|
+
return (await parseAllowedOrigins(request)).some((allowed) => {
|
|
178
185
|
if (allowed === "*")
|
|
179
186
|
return true;
|
|
180
187
|
if (allowed === requestOrigin)
|
|
@@ -199,48 +206,54 @@ const handleCors = ({ originalHandler, allowedMethods = ["OPTIONS"], allowedOrig
|
|
|
199
206
|
* Return our modified HTTP action
|
|
200
207
|
*/
|
|
201
208
|
return httpActionGeneric(async (ctx, request) => {
|
|
202
|
-
if (
|
|
203
|
-
console.log("
|
|
204
|
-
|
|
205
|
-
|
|
209
|
+
if (debug) {
|
|
210
|
+
console.log("CORS request", {
|
|
211
|
+
path: request.url,
|
|
212
|
+
origin: request.headers.get("origin"),
|
|
213
|
+
headers: request.headers,
|
|
214
|
+
method: request.method,
|
|
215
|
+
body: request.body,
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
const requestOrigin = request.headers.get("origin");
|
|
219
|
+
const parsedAllowedOrigins = await parseAllowedOrigins(request);
|
|
220
|
+
if (debug) {
|
|
221
|
+
console.log("allowed origins", parsedAllowedOrigins);
|
|
206
222
|
}
|
|
207
|
-
const requestOriginRaw = request.headers.get("Origin") ??
|
|
208
|
-
request.headers.get("Referer") ??
|
|
209
|
-
request.headers.get("Expo-Origin");
|
|
210
|
-
const requestOrigin = typeof requestOriginRaw === "string" &&
|
|
211
|
-
requestOriginRaw.startsWith("http")
|
|
212
|
-
? new URL(requestOriginRaw).origin
|
|
213
|
-
: requestOriginRaw;
|
|
214
223
|
// Handle origin matching
|
|
215
224
|
let allowOrigins = null;
|
|
216
|
-
if (
|
|
225
|
+
if (parsedAllowedOrigins.includes("*") && !allowCredentials) {
|
|
217
226
|
allowOrigins = "*";
|
|
218
227
|
}
|
|
219
228
|
else if (requestOrigin) {
|
|
220
229
|
// Check if the request origin matches any of the allowed origins
|
|
221
230
|
// (including wildcard subdomain matching if configured)
|
|
222
|
-
if (isAllowedOrigin(
|
|
231
|
+
if (await isAllowedOrigin(request)) {
|
|
223
232
|
allowOrigins = requestOrigin;
|
|
224
233
|
}
|
|
225
234
|
}
|
|
226
|
-
if (!allowOrigins) {
|
|
235
|
+
if (enforceAllowOrigins && !allowOrigins) {
|
|
227
236
|
// Origin not allowed
|
|
228
|
-
console.error(`Request from origin ${requestOrigin} blocked, missing from allowed origins
|
|
237
|
+
console.error(`Request from origin ${requestOrigin} blocked, missing from allowed origins: ${parsedAllowedOrigins.join()}`);
|
|
229
238
|
return new Response(null, { status: 403 });
|
|
230
239
|
}
|
|
231
240
|
/**
|
|
232
241
|
* OPTIONS has no handler and just returns headers
|
|
233
242
|
*/
|
|
234
243
|
if (request.method === "OPTIONS") {
|
|
244
|
+
const responseHeaders = new Headers({
|
|
245
|
+
...commonHeaders,
|
|
246
|
+
"Access-Control-Allow-Origin": allowOrigins ?? "",
|
|
247
|
+
"Access-Control-Allow-Methods": allowMethods,
|
|
248
|
+
"Access-Control-Allow-Headers": allowedHeaders.join(", "),
|
|
249
|
+
"Access-Control-Max-Age": browserCacheMaxAge.toString(),
|
|
250
|
+
});
|
|
251
|
+
if (debug) {
|
|
252
|
+
console.log("CORS OPTIONS response headers", responseHeaders);
|
|
253
|
+
}
|
|
235
254
|
return new Response(null, {
|
|
236
255
|
status: 204,
|
|
237
|
-
headers:
|
|
238
|
-
...commonHeaders,
|
|
239
|
-
"Access-Control-Allow-Origin": allowOrigins,
|
|
240
|
-
"Access-Control-Allow-Methods": allowMethods,
|
|
241
|
-
"Access-Control-Allow-Headers": allowedHeaders.join(", "),
|
|
242
|
-
"Access-Control-Max-Age": browserCacheMaxAge.toString(),
|
|
243
|
-
}),
|
|
256
|
+
headers: responseHeaders,
|
|
244
257
|
});
|
|
245
258
|
}
|
|
246
259
|
/**
|
|
@@ -260,13 +273,16 @@ const handleCors = ({ originalHandler, allowedMethods = ["OPTIONS"], allowedOrig
|
|
|
260
273
|
* Second, get a copy of the original response's headers
|
|
261
274
|
*/
|
|
262
275
|
const newHeaders = new Headers(originalResponse.headers);
|
|
263
|
-
newHeaders.set("Access-Control-Allow-Origin", allowOrigins);
|
|
276
|
+
newHeaders.set("Access-Control-Allow-Origin", allowOrigins ?? "");
|
|
264
277
|
/**
|
|
265
278
|
* Third, add or update our CORS headers
|
|
266
279
|
*/
|
|
267
280
|
Object.entries(commonHeaders).forEach(([key, value]) => {
|
|
268
281
|
newHeaders.set(key, value);
|
|
269
282
|
});
|
|
283
|
+
if (debug) {
|
|
284
|
+
console.log("CORS response headers", newHeaders);
|
|
285
|
+
}
|
|
270
286
|
/**
|
|
271
287
|
* Fourth, return the modified Response.
|
|
272
288
|
* A Response object is immutable, so we create a new one to return here.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cors.js","sourceRoot":"","sources":["../../../src/client/cors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAEL,iBAAiB,EACjB,UAAU,
|
|
1
|
+
{"version":3,"file":"cors.js","sourceRoot":"","sources":["../../../src/client/cors.ts"],"names":[],"mappings":"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"}
|
|
@@ -286,8 +286,7 @@ export declare class BetterAuth<UserId extends string = string> {
|
|
|
286
286
|
}>>;
|
|
287
287
|
};
|
|
288
288
|
registerRoutes(http: HttpRouter, createAuth: (ctx: GenericActionCtx<any>) => ReturnType<typeof betterAuth>, opts?: {
|
|
289
|
-
|
|
290
|
-
allowedOrigins?: string[];
|
|
289
|
+
cors: boolean;
|
|
291
290
|
}): void;
|
|
292
291
|
}
|
|
293
292
|
type RunQueryCtx = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,IAAI,UAAU,EACvB,KAAK,mBAAmB,EACxB,KAAK,MAAM,EACX,KAAK,iBAAiB,EACtB,gBAAgB,EAChB,KAAK,gBAAgB,EACrB,kBAAkB,EAClB,KAAK,eAAe,EACpB,KAAK,UAAU,EAIhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,EAAK,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/client/index.js
CHANGED
|
@@ -7,6 +7,8 @@ import { getByArgsValidator, updateArgsInputValidator } from "../component/lib.j
|
|
|
7
7
|
import { omit } from "convex-helpers";
|
|
8
8
|
import { createCookieGetter } from "better-auth/cookies";
|
|
9
9
|
import { fetchQuery } from "convex/nextjs";
|
|
10
|
+
import { JWT_COOKIE_NAME } from "../plugins/convex/index.js";
|
|
11
|
+
import { requireEnv } from "../util.js";
|
|
10
12
|
export { convexAdapter };
|
|
11
13
|
const createUserFields = omit(schema.tables.user.validator.fields, ["userId"]);
|
|
12
14
|
const createUserValidator = v.object(createUserFields);
|
|
@@ -81,7 +83,7 @@ export class BetterAuth {
|
|
|
81
83
|
async getIdTokenCookieName(createAuth) {
|
|
82
84
|
const auth = createAuth({});
|
|
83
85
|
const createCookie = createCookieGetter(auth.options);
|
|
84
|
-
const cookie = createCookie(
|
|
86
|
+
const cookie = createCookie(JWT_COOKIE_NAME);
|
|
85
87
|
return cookie.name;
|
|
86
88
|
}
|
|
87
89
|
createAuthFunctions(opts) {
|
|
@@ -140,30 +142,9 @@ export class BetterAuth {
|
|
|
140
142
|
}),
|
|
141
143
|
};
|
|
142
144
|
}
|
|
143
|
-
registerRoutes(http, createAuth, opts) {
|
|
144
|
-
const
|
|
145
|
-
const
|
|
146
|
-
const trustedOriginsOption = Array.isArray(options.trustedOrigins)
|
|
147
|
-
? options.trustedOrigins
|
|
148
|
-
: [];
|
|
149
|
-
const trustedOrigins = createAuth({}).options.plugins?.reduce((acc, plugin) => {
|
|
150
|
-
if (plugin.options?.trustedOrigins) {
|
|
151
|
-
acc.push(...plugin.options.trustedOrigins);
|
|
152
|
-
}
|
|
153
|
-
return acc;
|
|
154
|
-
}, [...trustedOriginsOption, options.baseURL].filter(Boolean));
|
|
155
|
-
// Reuse trustedOrigins as default for allowedOrigins
|
|
156
|
-
const allowedOrigins = opts?.allowedOrigins ??
|
|
157
|
-
trustedOrigins?.map((origin) =>
|
|
158
|
-
// Strip trailing wildcards, unsupported for allowedOrigins
|
|
159
|
-
origin.endsWith("*") && origin.length > 1 ? origin.slice(0, -1) : origin);
|
|
160
|
-
const requireEnv = (name) => {
|
|
161
|
-
const value = process.env[name];
|
|
162
|
-
if (value === undefined) {
|
|
163
|
-
throw new Error(`Missing environment variable \`${name}\``);
|
|
164
|
-
}
|
|
165
|
-
return value;
|
|
166
|
-
};
|
|
145
|
+
registerRoutes(http, createAuth, opts = { cors: false }) {
|
|
146
|
+
const betterAuthOptions = createAuth({}).options;
|
|
147
|
+
const path = betterAuthOptions.basePath ?? "/api/auth";
|
|
167
148
|
const authRequestHandler = httpActionGeneric(async (ctx, request) => {
|
|
168
149
|
const auth = createAuth(ctx);
|
|
169
150
|
const response = await auth.handler(request);
|
|
@@ -172,13 +153,7 @@ export class BetterAuth {
|
|
|
172
153
|
}
|
|
173
154
|
return response;
|
|
174
155
|
});
|
|
175
|
-
|
|
176
|
-
allowedOrigins,
|
|
177
|
-
allowCredentials: true,
|
|
178
|
-
allowedHeaders: ["Authorization", "Content-Type", "Better-Auth-Cookie"],
|
|
179
|
-
verbose: this.config?.verbose,
|
|
180
|
-
exposedHeaders: ["Set-Better-Auth-Cookie"],
|
|
181
|
-
});
|
|
156
|
+
// Redirect root well-known to api well-known
|
|
182
157
|
http.route({
|
|
183
158
|
path: "/.well-known/openid-configuration",
|
|
184
159
|
method: "GET",
|
|
@@ -187,35 +162,57 @@ export class BetterAuth {
|
|
|
187
162
|
return Response.redirect(url);
|
|
188
163
|
}),
|
|
189
164
|
});
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
165
|
+
if (!opts.cors) {
|
|
166
|
+
http.route({
|
|
167
|
+
pathPrefix: `${path}/`,
|
|
168
|
+
method: "GET",
|
|
169
|
+
handler: authRequestHandler,
|
|
170
|
+
});
|
|
171
|
+
http.route({
|
|
172
|
+
pathPrefix: `${path}/`,
|
|
173
|
+
method: "POST",
|
|
174
|
+
handler: authRequestHandler,
|
|
175
|
+
});
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
const trustedOrigins = [
|
|
179
|
+
...(Array.isArray(betterAuthOptions.trustedOrigins)
|
|
180
|
+
? betterAuthOptions.trustedOrigins
|
|
181
|
+
: [betterAuthOptions.trustedOrigins]),
|
|
182
|
+
betterAuthOptions.baseURL,
|
|
183
|
+
];
|
|
184
|
+
// The crossDomain plugin adds siteUrl to trustedOrigins
|
|
185
|
+
const trustedOriginsFromPlugins = betterAuthOptions.plugins?.reduce((acc, plugin) => {
|
|
186
|
+
if (plugin.options?.trustedOrigins) {
|
|
187
|
+
acc.push(...plugin.options.trustedOrigins);
|
|
188
|
+
}
|
|
189
|
+
return acc;
|
|
190
|
+
}, []) ?? [];
|
|
191
|
+
// Reuse trustedOrigins as default for allowedOrigins
|
|
192
|
+
const allowedOrigins = async (request) => {
|
|
193
|
+
return (await Promise.all([...trustedOrigins, ...trustedOriginsFromPlugins].map(async (origin) => {
|
|
194
|
+
if (!origin) {
|
|
195
|
+
return [];
|
|
196
|
+
}
|
|
197
|
+
if (typeof origin === "function") {
|
|
198
|
+
return origin(request);
|
|
199
|
+
}
|
|
200
|
+
return [origin];
|
|
201
|
+
})))
|
|
202
|
+
.flat()
|
|
203
|
+
.map((origin) =>
|
|
204
|
+
// Strip trailing wildcards, unsupported for allowedOrigins
|
|
205
|
+
origin.endsWith("*") && origin.length > 1
|
|
206
|
+
? origin.slice(0, -1)
|
|
207
|
+
: origin);
|
|
208
|
+
};
|
|
209
|
+
const cors = corsRouter(http, {
|
|
210
|
+
allowedOrigins,
|
|
211
|
+
allowCredentials: true,
|
|
212
|
+
allowedHeaders: ["Content-Type", "Better-Auth-Cookie"],
|
|
213
|
+
exposedHeaders: ["Set-Better-Auth-Cookie"],
|
|
214
|
+
debug: this.config?.verbose,
|
|
215
|
+
enforceAllowOrigins: false,
|
|
219
216
|
});
|
|
220
217
|
cors.route({
|
|
221
218
|
pathPrefix: `${path}/`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"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"}
|