@convex-dev/better-auth 0.10.10 → 0.10.12
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/client/adapter-utils.d.ts.map +1 -1
- package/dist/client/adapter-utils.js +1 -1
- package/dist/client/adapter-utils.js.map +1 -1
- package/dist/client/adapter.js +1 -1
- package/dist/client/adapter.js.map +1 -1
- package/dist/client/create-api.d.ts +2 -2
- package/dist/component/adapter.d.ts +2 -2
- package/dist/component/adapterTest.js +4 -2
- package/dist/component/adapterTest.js.map +1 -1
- package/dist/nextjs/index.d.ts.map +1 -1
- package/dist/nextjs/index.js +4 -1
- package/dist/nextjs/index.js.map +1 -1
- package/dist/plugins/convex/index.d.ts.map +1 -1
- package/dist/plugins/convex/index.js +29 -12
- package/dist/plugins/convex/index.js.map +1 -1
- package/dist/plugins/cross-domain/client.d.ts +1 -1
- package/dist/plugins/cross-domain/client.d.ts.map +1 -1
- package/dist/plugins/cross-domain/client.js +33 -5
- package/dist/plugins/cross-domain/client.js.map +1 -1
- package/dist/plugins/cross-domain/index.d.ts.map +1 -1
- package/dist/plugins/cross-domain/index.js +11 -6
- package/dist/plugins/cross-domain/index.js.map +1 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +24 -12
- package/dist/react/index.js.map +1 -1
- package/dist/react-start/index.d.ts.map +1 -1
- package/dist/react-start/index.js +4 -1
- package/dist/react-start/index.js.map +1 -1
- package/package.json +8 -8
- package/src/client/adapter-utils.ts +3 -2
- package/src/client/adapter.ts +1 -1
- package/src/component/adapterTest.ts +4 -2
- package/src/nextjs/index.ts +4 -1
- package/src/plugins/convex/index.ts +31 -14
- package/src/plugins/cross-domain/client.test.ts +315 -0
- package/src/plugins/cross-domain/client.ts +35 -7
- package/src/plugins/cross-domain/index.ts +16 -7
- package/src/react/index.tsx +28 -15
- package/src/react-start/index.ts +4 -1
|
@@ -5,11 +5,13 @@ import { z } from "zod";
|
|
|
5
5
|
export const crossDomain = ({ siteUrl }) => {
|
|
6
6
|
const oneTimeToken = oneTimeTokenPlugin();
|
|
7
7
|
const rewriteCallbackURL = (callbackURL) => {
|
|
8
|
-
if (
|
|
8
|
+
if (!callbackURL) {
|
|
9
9
|
return callbackURL;
|
|
10
10
|
}
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
if (!callbackURL.startsWith("/")) {
|
|
12
|
+
return callbackURL;
|
|
13
|
+
}
|
|
14
|
+
return new URL(callbackURL, siteUrl).toString();
|
|
13
15
|
};
|
|
14
16
|
const isExpoNative = (ctx) => {
|
|
15
17
|
return ctx.headers?.has("expo-origin");
|
|
@@ -43,8 +45,9 @@ export const crossDomain = ({ siteUrl }) => {
|
|
|
43
45
|
before: [
|
|
44
46
|
{
|
|
45
47
|
matcher(ctx) {
|
|
46
|
-
return (Boolean(ctx.request?.headers.
|
|
47
|
-
ctx.headers?.
|
|
48
|
+
return (Boolean(ctx.request?.headers.has("better-auth-cookie") ||
|
|
49
|
+
ctx.headers?.has("better-auth-cookie")) &&
|
|
50
|
+
!isExpoNative(ctx));
|
|
48
51
|
},
|
|
49
52
|
handler: createAuthMiddleware(async (ctx) => {
|
|
50
53
|
const existingHeaders = (ctx.request?.headers ||
|
|
@@ -108,7 +111,9 @@ export const crossDomain = ({ siteUrl }) => {
|
|
|
108
111
|
after: [
|
|
109
112
|
{
|
|
110
113
|
matcher(ctx) {
|
|
111
|
-
return
|
|
114
|
+
return (Boolean(ctx.request?.headers.has("better-auth-cookie") ||
|
|
115
|
+
ctx.headers?.has("better-auth-cookie")) &&
|
|
116
|
+
!isExpoNative(ctx));
|
|
112
117
|
},
|
|
113
118
|
handler: createAuthMiddleware(async (ctx) => {
|
|
114
119
|
const setCookie = ctx.context.responseHeaders?.get("set-cookie");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/cross-domain/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,IAAI,kBAAkB,GACnC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,OAAO,EAAuB,EAAE,EAAE;IAC9D,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;IAE1C,MAAM,kBAAkB,GAAG,CAAC,WAAoB,EAAE,EAAE;QAClD,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/cross-domain/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAOvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AACpD,KAAK,sBAAsB,GAAG,CAC1B,iBAAiB,GACjB,YAAY,GACZ,sBAAsB,CACzB,EAAE,CAAC;AACJ,KAAK,yBAAyB,GAAG,CAAC,YAAY,GAAG,sBAAsB,CAAC,EAAE,CAAC;AAC3E,KAAK,qBAAqB,CACxB,OAAO,SAAS,sBAAsB,GAAG,yBAAyB,IAChE,UAAU,CACZ,OAAO,gBAAgB,CACrB,sBAAsB,GAAG;IACvB,OAAO,EAAE,OAAO,CAAC;CAClB,CACF,CACF,CAAC;AACF,MAAM,MAAM,UAAU,GAClB,qBAAqB,CAAC,sBAAsB,CAAC,GAC7C,qBAAqB,CAAC,yBAAyB,CAAC,CAAC;AAIrD,KAAK,kBAAkB,GAAG;IACxB,OAAO,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC5C,SAAS,IAAI,IAAI,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,QAAQ,EACR,MAAM,EACN,UAAU,EACV,YAAY,GACb,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAOvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AACpD,KAAK,sBAAsB,GAAG,CAC1B,iBAAiB,GACjB,YAAY,GACZ,sBAAsB,CACzB,EAAE,CAAC;AACJ,KAAK,yBAAyB,GAAG,CAAC,YAAY,GAAG,sBAAsB,CAAC,EAAE,CAAC;AAC3E,KAAK,qBAAqB,CACxB,OAAO,SAAS,sBAAsB,GAAG,yBAAyB,IAChE,UAAU,CACZ,OAAO,gBAAgB,CACrB,sBAAsB,GAAG;IACvB,OAAO,EAAE,OAAO,CAAC;CAClB,CACF,CACF,CAAC;AACF,MAAM,MAAM,UAAU,GAClB,qBAAqB,CAAC,sBAAsB,CAAC,GAC7C,qBAAqB,CAAC,yBAAyB,CAAC,CAAC;AAIrD,KAAK,kBAAkB,GAAG;IACxB,OAAO,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC5C,SAAS,IAAI,IAAI,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,QAAQ,EACR,MAAM,EACN,UAAU,EACV,YAAY,GACb,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,2CAqCA;AAuHD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,YAAY,GAAI,iFAwB1B,iBAAiB,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IACvC,aAAa,EAAE,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACjE,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CAC1C,CAAC,4CA4BD,CAAC"}
|
package/dist/react/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Component, useCallback, useEffect, useMemo, useState } from "react";
|
|
2
|
+
import { Component, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
3
3
|
import { Authenticated, ConvexProviderWithAuth, useConvexAuth, useQuery, } from "convex/react";
|
|
4
4
|
/**
|
|
5
5
|
* A wrapper React component which provides a {@link react.ConvexReactClient}
|
|
@@ -11,11 +11,15 @@ export function ConvexBetterAuthProvider({ children, client, authClient, initial
|
|
|
11
11
|
const useBetterAuth = useUseAuthFromBetterAuth(authClient, initialToken);
|
|
12
12
|
useEffect(() => {
|
|
13
13
|
(async () => {
|
|
14
|
-
|
|
14
|
+
if (typeof window === "undefined" || !window.location?.href) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const url = new URL(window.location.href);
|
|
15
18
|
const token = url.searchParams.get("ott");
|
|
16
19
|
if (token) {
|
|
17
20
|
const authClientWithCrossDomain = authClient;
|
|
18
21
|
url.searchParams.delete("ott");
|
|
22
|
+
window.history.replaceState({}, "", url);
|
|
19
23
|
const result = await authClientWithCrossDomain.crossDomain.oneTimeToken.verify({
|
|
20
24
|
token,
|
|
21
25
|
});
|
|
@@ -30,7 +34,6 @@ export function ConvexBetterAuthProvider({ children, client, authClient, initial
|
|
|
30
34
|
});
|
|
31
35
|
authClientWithCrossDomain.updateSession();
|
|
32
36
|
}
|
|
33
|
-
window.history.replaceState({}, "", url);
|
|
34
37
|
}
|
|
35
38
|
})();
|
|
36
39
|
}, [authClient]);
|
|
@@ -38,7 +41,8 @@ export function ConvexBetterAuthProvider({ children, client, authClient, initial
|
|
|
38
41
|
}
|
|
39
42
|
let initialTokenUsed = false;
|
|
40
43
|
function useUseAuthFromBetterAuth(authClient, initialToken) {
|
|
41
|
-
const [cachedToken, setCachedToken] = useState(initialTokenUsed ? (initialToken ?? null)
|
|
44
|
+
const [cachedToken, setCachedToken] = useState(initialTokenUsed ? null : (initialToken ?? null));
|
|
45
|
+
const pendingTokenRef = useRef(null);
|
|
42
46
|
useEffect(() => {
|
|
43
47
|
if (!initialTokenUsed) {
|
|
44
48
|
initialTokenUsed = true;
|
|
@@ -56,28 +60,36 @@ function useUseAuthFromBetterAuth(authClient, initialToken) {
|
|
|
56
60
|
if (cachedToken && !forceRefreshToken) {
|
|
57
61
|
return cachedToken;
|
|
58
62
|
}
|
|
59
|
-
|
|
60
|
-
|
|
63
|
+
if (!forceRefreshToken && pendingTokenRef.current) {
|
|
64
|
+
return pendingTokenRef.current;
|
|
65
|
+
}
|
|
66
|
+
pendingTokenRef.current = authClient.convex
|
|
67
|
+
.token({ fetchOptions: { throw: false } })
|
|
68
|
+
.then(({ data }) => {
|
|
61
69
|
const token = data?.token || null;
|
|
62
70
|
setCachedToken(token);
|
|
63
71
|
return token;
|
|
64
|
-
}
|
|
65
|
-
|
|
72
|
+
})
|
|
73
|
+
.catch(() => {
|
|
66
74
|
setCachedToken(null);
|
|
67
75
|
return null;
|
|
68
|
-
}
|
|
76
|
+
})
|
|
77
|
+
.finally(() => {
|
|
78
|
+
pendingTokenRef.current = null;
|
|
79
|
+
});
|
|
80
|
+
return pendingTokenRef.current;
|
|
69
81
|
},
|
|
70
82
|
// Build a new fetchAccessToken to trigger setAuth() whenever the
|
|
71
83
|
// session changes.
|
|
72
84
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
73
85
|
[sessionId]);
|
|
74
86
|
return useMemo(() => ({
|
|
75
|
-
isLoading: isSessionPending,
|
|
76
|
-
isAuthenticated: session !== null,
|
|
87
|
+
isLoading: isSessionPending && !cachedToken,
|
|
88
|
+
isAuthenticated: Boolean(session?.session) || cachedToken !== null,
|
|
77
89
|
fetchAccessToken,
|
|
78
90
|
}),
|
|
79
91
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
80
|
-
[isSessionPending, sessionId, fetchAccessToken]);
|
|
92
|
+
[isSessionPending, sessionId, fetchAccessToken, cachedToken]);
|
|
81
93
|
}, [authClient]);
|
|
82
94
|
}
|
|
83
95
|
class ErrorBoundary extends Component {
|
package/dist/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react-start/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAqEzD,eAAO,MAAM,0BAA0B,GACrC,MAAM,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,GAAG;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react-start/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAqEzD,eAAO,MAAM,0BAA0B,GACrC,MAAM,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,GAAG;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;;uBA2CoB,OAAO;qBACH,KAAK,SAAS,iBAAiB,CAAC,OAAO,CAAC,SACtD,KAAK,WACH,gBAAgB,CAAC,KAAK,CAAC,KAC/B,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;wBAMX,QAAQ,SAAS,iBAAiB,CAAC,UAAU,CAAC,YAC5D,QAAQ,WACT,gBAAgB,CAAC,QAAQ,CAAC,KAClC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;sBAMhB,MAAM,SAAS,iBAAiB,CAAC,QAAQ,CAAC,UACxD,MAAM,WACL,gBAAgB,CAAC,MAAM,CAAC,KAChC,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;CAOzC,CAAC"}
|
|
@@ -52,7 +52,10 @@ export const convexBetterAuthReactStart = (opts) => {
|
|
|
52
52
|
const cachedGetToken = cache(async (opts) => {
|
|
53
53
|
const { getRequestHeaders } = await import("@tanstack/react-start/server");
|
|
54
54
|
const headers = getRequestHeaders();
|
|
55
|
-
|
|
55
|
+
const mutableHeaders = new Headers(headers);
|
|
56
|
+
mutableHeaders.delete("content-length");
|
|
57
|
+
mutableHeaders.delete("transfer-encoding");
|
|
58
|
+
return getToken(siteUrl, mutableHeaders, opts);
|
|
56
59
|
});
|
|
57
60
|
const callWithToken = async (fn) => {
|
|
58
61
|
const token = (await cachedGetToken(opts)) ?? {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react-start/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,uCAAuC;AACvC,MAAM,KAAK,GACT,KAAK,CAAC,KAAK;IACX,CAAC,CAAC,EAA2B,EAAE,EAAE;QAC/B,OAAO,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AAkBL,SAAS,WAAW,CAAC,OAAsB;IACzC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,iDAAiD;IACjD,MAAM,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAE,EAAE;IACzC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,WAAW,CAAA;;;;KAI1B,CAAC,CAAC;IACL,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,WAAW,CAAA;;yBAEN,GAAG;KACvB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAE,IAA+B,EAAE,EAAE;IACpE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;IAClF,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC;IACtD,OAAO,KAAK,CAAC,OAAO,EAAE;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO;QACP,QAAQ,EAAE,QAAQ;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,qFAAqF;QACrF,MAAM,EAAE,MAAM;KACf,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,IAGC,EACD,EAAE;IACF,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAEvD,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,EAAE,IAAqB,EAAE,EAAE;QAC3D,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react-start/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"bugs": {
|
|
7
7
|
"url": "https://github.com/get-convex/better-auth/issues"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.10.
|
|
9
|
+
"version": "0.10.12",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"keywords": [
|
|
12
12
|
"convex",
|
|
@@ -18,22 +18,22 @@
|
|
|
18
18
|
],
|
|
19
19
|
"type": "module",
|
|
20
20
|
"scripts": {
|
|
21
|
-
"dev": "cd examples/react && npm run dev",
|
|
22
|
-
"clean": "rm -rf dist *.tsbuildinfo",
|
|
21
|
+
"dev": "npm run build && cd examples/react && npm run dev",
|
|
23
22
|
"build": "tsc --project tsconfig.build.json",
|
|
23
|
+
"build:codegen": "cd examples/react && npx convex codegen --component-dir ../../src/component && cd ../.. && npm run build",
|
|
24
|
+
"build:clean": "rm -rf dist *.tsbuildinfo && npm run build:codegen",
|
|
24
25
|
"typecheck": "tsc --noEmit && tsc -p examples/next && tsc -p examples/next/convex && tsc -p examples/react && tsc -p examples/react/convex && tsc -p examples/tanstack && tsc -p examples/tanstack/convex",
|
|
25
26
|
"lint": "eslint .",
|
|
26
27
|
"all": "run-p -r 'dev' 'test:watch'",
|
|
27
28
|
"test": "vitest run --typecheck",
|
|
28
29
|
"test:watch": "vitest --typecheck --clearScreen false",
|
|
29
30
|
"test:debug": "vitest --inspect-brk --no-file-parallelism",
|
|
31
|
+
"test:e2e": "npm run build && cd e2e && npm run test",
|
|
30
32
|
"test:coverage": "vitest run --coverage --coverage.reporter=text",
|
|
31
|
-
"
|
|
32
|
-
"prepublishOnly": "npm
|
|
33
|
-
"preversion": "npm run clean && npm ci && npm run build && run-p test lint typecheck",
|
|
33
|
+
"preversion": "npm ci && npm run build:clean && run-p test lint typecheck",
|
|
34
|
+
"prepublishOnly": "npm whoami || npm login",
|
|
34
35
|
"alpha": "npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags",
|
|
35
36
|
"release": "npm version patch && npm publish && git push --follow-tags",
|
|
36
|
-
"prerelease": "npm run check-npm-auth",
|
|
37
37
|
"version": "vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md"
|
|
38
38
|
},
|
|
39
39
|
"files": [
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
}
|
|
104
104
|
},
|
|
105
105
|
"peerDependencies": {
|
|
106
|
-
"better-auth": "1.4.9",
|
|
106
|
+
"better-auth": ">=1.4.9 <1.5.0",
|
|
107
107
|
"convex": "^1.25.0",
|
|
108
108
|
"react": "^18.3.1 || ^19.0.0",
|
|
109
109
|
"react-dom": "^18.3.1 || ^19.0.0"
|
|
@@ -62,8 +62,9 @@ const isUniqueField = (
|
|
|
62
62
|
model: string,
|
|
63
63
|
field: string
|
|
64
64
|
) => {
|
|
65
|
-
const fields =
|
|
66
|
-
|
|
65
|
+
const fields = Object.values(betterAuthSchema).find(
|
|
66
|
+
(value) => value.modelName === model
|
|
67
|
+
)?.fields;
|
|
67
68
|
if (!fields) {
|
|
68
69
|
return false;
|
|
69
70
|
}
|
package/src/client/adapter.ts
CHANGED
|
@@ -485,19 +485,21 @@ function runCustomAdapterTests({
|
|
|
485
485
|
|
|
486
486
|
test("should be able to compare against a date", async () => {
|
|
487
487
|
const adapter = await getAdapter();
|
|
488
|
+
const now = new Date().toISOString();
|
|
488
489
|
const user = await adapter.create({
|
|
489
490
|
model: "user",
|
|
490
491
|
data: {
|
|
491
492
|
name: "foo",
|
|
492
493
|
email: "foo@bar.com",
|
|
493
|
-
createdAt:
|
|
494
|
+
createdAt: now,
|
|
494
495
|
},
|
|
495
496
|
});
|
|
496
497
|
expect(
|
|
497
498
|
await adapter.findOne({
|
|
498
499
|
model: "user",
|
|
499
|
-
where: [{ field: "createdAt", value:
|
|
500
|
+
where: [{ field: "createdAt", value: now }],
|
|
500
501
|
})
|
|
501
502
|
).toEqual(user);
|
|
503
|
+
expect(user.createdAt).toBeInstanceOf(Date);
|
|
502
504
|
});
|
|
503
505
|
}
|
package/src/nextjs/index.ts
CHANGED
|
@@ -74,7 +74,10 @@ export const convexBetterAuthNextJs = (
|
|
|
74
74
|
const cachedGetToken = cache(
|
|
75
75
|
async ({ forceRefresh }: { forceRefresh?: boolean } = {}) => {
|
|
76
76
|
const headers = await (await import("next/headers.js")).headers();
|
|
77
|
-
|
|
77
|
+
const mutableHeaders = new Headers(headers);
|
|
78
|
+
mutableHeaders.delete("content-length");
|
|
79
|
+
mutableHeaders.delete("transfer-encoding");
|
|
80
|
+
return getToken(siteUrl, mutableHeaders, { ...opts, forceRefresh });
|
|
78
81
|
}
|
|
79
82
|
);
|
|
80
83
|
|
|
@@ -262,13 +262,13 @@ export const convex = (opts: {
|
|
|
262
262
|
hooks: {
|
|
263
263
|
before: [
|
|
264
264
|
...bearer.hooks.before,
|
|
265
|
-
//
|
|
265
|
+
// In query context, no writes can succeed. No-op adapter write
|
|
266
|
+
// methods and session refresh to prevent errors from fire-and-forget
|
|
267
|
+
// side effects in Better Auth plugins (session cleanup, expired
|
|
268
|
+
// api-key deletion, org state correction, etc.).
|
|
266
269
|
{
|
|
267
270
|
matcher: (ctx) => {
|
|
268
|
-
return
|
|
269
|
-
!ctx.context.adapter.options?.isRunMutationCtx &&
|
|
270
|
-
ctx.path === "/get-session"
|
|
271
|
-
);
|
|
271
|
+
return !ctx.context.adapter.options?.isRunMutationCtx;
|
|
272
272
|
},
|
|
273
273
|
handler: createAuthMiddleware(async (ctx) => {
|
|
274
274
|
ctx.query = { ...ctx.query, disableRefresh: true };
|
|
@@ -277,6 +277,23 @@ export const convex = (opts: {
|
|
|
277
277
|
) => {
|
|
278
278
|
//skip
|
|
279
279
|
};
|
|
280
|
+
const knownSafePaths = ["/api-key/list", "/api-key/get"];
|
|
281
|
+
const noopWrite = (method: string) => {
|
|
282
|
+
return async (..._args: any[]) => {
|
|
283
|
+
if (!knownSafePaths.includes(ctx.path)) {
|
|
284
|
+
// eslint-disable-next-line no-console
|
|
285
|
+
console.warn(
|
|
286
|
+
`[convex-better-auth] Write operation "${method}" skipped in query context for ${ctx.path}`
|
|
287
|
+
);
|
|
288
|
+
}
|
|
289
|
+
return 0;
|
|
290
|
+
};
|
|
291
|
+
};
|
|
292
|
+
ctx.context.adapter.create = noopWrite("create") as any;
|
|
293
|
+
ctx.context.adapter.update = noopWrite("update") as any;
|
|
294
|
+
ctx.context.adapter.updateMany = noopWrite("updateMany") as any;
|
|
295
|
+
ctx.context.adapter.delete = noopWrite("delete") as any;
|
|
296
|
+
ctx.context.adapter.deleteMany = noopWrite("deleteMany") as any;
|
|
280
297
|
return { context: ctx };
|
|
281
298
|
}),
|
|
282
299
|
},
|
|
@@ -286,15 +303,15 @@ export const convex = (opts: {
|
|
|
286
303
|
{
|
|
287
304
|
matcher: (ctx) => {
|
|
288
305
|
return Boolean(
|
|
289
|
-
ctx.path
|
|
290
|
-
ctx.path
|
|
291
|
-
ctx.path
|
|
292
|
-
ctx.path
|
|
293
|
-
ctx.path
|
|
294
|
-
ctx.path
|
|
295
|
-
ctx.path
|
|
296
|
-
ctx.path
|
|
297
|
-
(ctx.path
|
|
306
|
+
ctx.path?.startsWith("/sign-in") ||
|
|
307
|
+
ctx.path?.startsWith("/sign-up") ||
|
|
308
|
+
ctx.path?.startsWith("/callback") ||
|
|
309
|
+
ctx.path?.startsWith("/oauth2/callback") ||
|
|
310
|
+
ctx.path?.startsWith("/magic-link/verify") ||
|
|
311
|
+
ctx.path?.startsWith("/email-otp/verify-email") ||
|
|
312
|
+
ctx.path?.startsWith("/phone-number/verify") ||
|
|
313
|
+
ctx.path?.startsWith("/siwe/verify") ||
|
|
314
|
+
(ctx.path?.startsWith("/get-session") && ctx.context.session)
|
|
298
315
|
);
|
|
299
316
|
},
|
|
300
317
|
handler: createAuthMiddleware(async (ctx) => {
|