@convex-dev/better-auth 0.7.11 → 0.7.13

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.
Files changed (51) hide show
  1. package/README.md +4 -3
  2. package/dist/commonjs/client/index.d.ts +313 -280
  3. package/dist/commonjs/client/index.d.ts.map +1 -1
  4. package/dist/commonjs/client/index.js +4 -5
  5. package/dist/commonjs/client/index.js.map +1 -1
  6. package/dist/commonjs/component/lib.d.ts +113 -97
  7. package/dist/commonjs/component/lib.d.ts.map +1 -1
  8. package/dist/commonjs/component/lib.js +31 -18
  9. package/dist/commonjs/component/lib.js.map +1 -1
  10. package/dist/commonjs/component/schema.d.ts +235 -199
  11. package/dist/commonjs/component/schema.d.ts.map +1 -1
  12. package/dist/commonjs/component/schema.js +125 -102
  13. package/dist/commonjs/component/schema.js.map +1 -1
  14. package/dist/commonjs/component/util.d.ts +491 -404
  15. package/dist/commonjs/component/util.d.ts.map +1 -1
  16. package/dist/commonjs/nextjs/index.d.ts.map +1 -1
  17. package/dist/commonjs/nextjs/index.js +18 -2
  18. package/dist/commonjs/nextjs/index.js.map +1 -1
  19. package/dist/commonjs/plugins/convex/index.d.ts +19 -11
  20. package/dist/commonjs/plugins/convex/index.d.ts.map +1 -1
  21. package/dist/commonjs/plugins/convex/index.js +27 -1
  22. package/dist/commonjs/plugins/convex/index.js.map +1 -1
  23. package/dist/commonjs/react-start/index.d.ts +6 -6
  24. package/dist/esm/client/index.d.ts +313 -280
  25. package/dist/esm/client/index.d.ts.map +1 -1
  26. package/dist/esm/client/index.js +4 -5
  27. package/dist/esm/client/index.js.map +1 -1
  28. package/dist/esm/component/lib.d.ts +113 -97
  29. package/dist/esm/component/lib.d.ts.map +1 -1
  30. package/dist/esm/component/lib.js +31 -18
  31. package/dist/esm/component/lib.js.map +1 -1
  32. package/dist/esm/component/schema.d.ts +235 -199
  33. package/dist/esm/component/schema.d.ts.map +1 -1
  34. package/dist/esm/component/schema.js +125 -102
  35. package/dist/esm/component/schema.js.map +1 -1
  36. package/dist/esm/component/util.d.ts +491 -404
  37. package/dist/esm/component/util.d.ts.map +1 -1
  38. package/dist/esm/nextjs/index.d.ts.map +1 -1
  39. package/dist/esm/nextjs/index.js +18 -2
  40. package/dist/esm/nextjs/index.js.map +1 -1
  41. package/dist/esm/plugins/convex/index.d.ts +19 -11
  42. package/dist/esm/plugins/convex/index.d.ts.map +1 -1
  43. package/dist/esm/plugins/convex/index.js +27 -1
  44. package/dist/esm/plugins/convex/index.js.map +1 -1
  45. package/dist/esm/react-start/index.d.ts +6 -6
  46. package/package.json +5 -5
  47. package/src/client/index.ts +4 -5
  48. package/src/component/lib.ts +42 -27
  49. package/src/component/schema.ts +127 -102
  50. package/src/nextjs/index.ts +23 -2
  51. package/src/plugins/convex/index.ts +28 -1
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/component/util.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gMACigX,eAAgB,qEAAqE,CAAC,mJAA0H,aAAc,+MAAuL,eAAe;;mFAAkV,GAAG,gDAAwB,WAAW,2BAA0B,WAAY;;;CADlzY,CAAC"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/component/util.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gMAC2tY,eAAgB,qEAAqE,CAAC,mJAA0H,aAAc,+MAAuL,eAAe;;mFAAkV,GAAG,gDAAwB,WAAW,2BAA0B,WAAY;;;CAD5ga,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/nextjs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,eAAO,MAAM,QAAQ,GACnB,YAAY,CAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,OAAO,UAAU,CAAC,gCAS1E,CAAC;AAeF,eAAO,MAAM,aAAa,GAAI,OAAO;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE;mBAC9C,OAAO;oBACN,OAAO;CACvB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/nextjs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,eAAO,MAAM,QAAQ,GACnB,YAAY,CAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,OAAO,UAAU,CAAC,gCA8B1E,CAAC;AAeF,eAAO,MAAM,aAAa,GAAI,OAAO;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE;mBAC9C,OAAO;oBACN,OAAO;CACvB,CAAC"}
@@ -6,8 +6,24 @@ export const getToken = async (createAuth) => {
6
6
  const auth = createAuth({});
7
7
  const createCookie = createCookieGetter(auth.options);
8
8
  const cookie = createCookie(JWT_COOKIE_NAME);
9
- const token = cookieStore.get(cookie.name);
10
- return token?.value;
9
+ const tokenCookie = cookieStore.get(cookie.name);
10
+ // Warn if there's a secure cookie mismatch between Convex and Next.js
11
+ if (!tokenCookie?.value) {
12
+ const isSecure = cookie.name.startsWith("__Secure-");
13
+ const insecureCookieName = cookie.name.replace("__Secure-", "");
14
+ const insecureCookie = cookieStore.get(insecureCookieName);
15
+ const secureCookieName = isSecure
16
+ ? cookie.name
17
+ : `__Secure-${insecureCookieName}`;
18
+ const secureCookie = cookieStore.get(secureCookieName);
19
+ if (isSecure && insecureCookie) {
20
+ console.warn(`Looking for secure cookie ${cookie.name} but found insecure cookie ${insecureCookie.name}`);
21
+ }
22
+ if (!isSecure && secureCookie) {
23
+ console.warn(`Looking for insecure cookie ${cookie.name} but found secure cookie ${secureCookie.name}`);
24
+ }
25
+ }
26
+ return tokenCookie?.value;
11
27
  };
12
28
  const handler = (request, opts) => {
13
29
  const requestUrl = new URL(request.url);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nextjs/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAC3B,UAAyE,EACzE,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,MAAM,OAAO,EAAE,CAAC;IACpC,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,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3C,OAAO,KAAK,EAAE,KAAK,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAE,IAAiC,EAAE,EAAE;IACtE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,aAAa,GACjB,IAAI,EAAE,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;IACjE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,aAAa,GAAG,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;IAC7E,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACjD,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC3E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAiC,EAAE,EAAE,CAAC,CAAC;IACnE,GAAG,EAAE,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;IACjD,IAAI,EAAE,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;CACnD,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nextjs/index.ts"],"names":[],"mappings":"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"}
@@ -8,14 +8,22 @@ export declare const convex: <O extends BetterAuthOptions>(opts?: {
8
8
  }) => {
9
9
  id: "convex";
10
10
  hooks: {
11
- before: {
11
+ before: ({
12
12
  matcher(context: import("better-auth").HookEndpointContext): boolean;
13
13
  handler: (inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<{
14
14
  context: {
15
15
  headers: Headers;
16
16
  };
17
17
  } | undefined>;
18
- }[];
18
+ } | {
19
+ matcher: (ctx: import("better-auth").HookEndpointContext) => boolean;
20
+ handler: (inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<{
21
+ context: import("better-call").MiddlewareContext<import("better-call").MiddlewareOptions, import("better-auth").AuthContext & {
22
+ returned?: unknown;
23
+ responseHeaders?: Headers;
24
+ }>;
25
+ }>;
26
+ })[];
19
27
  after: ({
20
28
  matcher(): true;
21
29
  handler: (inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<Response | {
@@ -57,9 +65,9 @@ export declare const convex: <O extends BetterAuthOptions>(opts?: {
57
65
  response: {
58
66
  user: Omit<import("better-auth").UnionToIntersection<import("better-auth").StripEmptyObjects<{
59
67
  id: string;
60
- name: string;
61
- emailVerified: boolean;
62
68
  email: string;
69
+ emailVerified: boolean;
70
+ name: string;
63
71
  createdAt: Date;
64
72
  updatedAt: Date;
65
73
  image?: string | null | undefined;
@@ -70,11 +78,11 @@ export declare const convex: <O extends BetterAuthOptions>(opts?: {
70
78
  };
71
79
  session: import("better-auth").UnionToIntersection<import("better-auth").StripEmptyObjects<{
72
80
  id: string;
73
- token: string;
74
81
  userId: string;
75
82
  expiresAt: Date;
76
83
  createdAt: Date;
77
84
  updatedAt: Date;
85
+ token: string;
78
86
  ipAddress?: string | null | undefined;
79
87
  userAgent?: string | null | undefined;
80
88
  } & (O extends BetterAuthOptions ? import("better-auth").AdditionalSessionFieldsOutput<O> : O extends import("better-auth").Auth ? import("better-auth").AdditionalSessionFieldsOutput<O["options"]> : {})>> & {
@@ -84,9 +92,9 @@ export declare const convex: <O extends BetterAuthOptions>(opts?: {
84
92
  } : {
85
93
  user: Omit<import("better-auth").UnionToIntersection<import("better-auth").StripEmptyObjects<{
86
94
  id: string;
87
- name: string;
88
- emailVerified: boolean;
89
95
  email: string;
96
+ emailVerified: boolean;
97
+ name: string;
90
98
  createdAt: Date;
91
99
  updatedAt: Date;
92
100
  image?: string | null | undefined;
@@ -97,11 +105,11 @@ export declare const convex: <O extends BetterAuthOptions>(opts?: {
97
105
  };
98
106
  session: import("better-auth").UnionToIntersection<import("better-auth").StripEmptyObjects<{
99
107
  id: string;
100
- token: string;
101
108
  userId: string;
102
109
  expiresAt: Date;
103
110
  createdAt: Date;
104
111
  updatedAt: Date;
112
+ token: string;
105
113
  ipAddress?: string | null | undefined;
106
114
  userAgent?: string | null | undefined;
107
115
  } & (O extends BetterAuthOptions ? import("better-auth").AdditionalSessionFieldsOutput<O> : O extends import("better-auth").Auth ? import("better-auth").AdditionalSessionFieldsOutput<O["options"]> : {})>> & {
@@ -328,19 +336,19 @@ export declare const convex: <O extends BetterAuthOptions>(opts?: {
328
336
  session: {
329
337
  session: Record<string, any> & {
330
338
  id: string;
331
- token: string;
332
339
  userId: string;
333
340
  expiresAt: Date;
334
341
  createdAt: Date;
335
342
  updatedAt: Date;
343
+ token: string;
336
344
  ipAddress?: string | null | undefined;
337
345
  userAgent?: string | null | undefined;
338
346
  };
339
347
  user: Record<string, any> & {
340
348
  id: string;
341
- name: string;
342
- emailVerified: boolean;
343
349
  email: string;
350
+ emailVerified: boolean;
351
+ name: string;
344
352
  createdAt: Date;
345
353
  updatedAt: Date;
346
354
  image?: string | null | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/convex/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe,eAAe,CAAC;AAE5C,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,iBAAiB,EAChD,OAAM;IACJ,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,OAAO,CAAC,EAAE,CAAC,CAAC;CACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAaM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAAN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCA0V+m4F,CAAC;qCAAkD,CAAC;;;;;;;;;iCAA0Q,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CADj84F,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/convex/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe,eAAe,CAAC;AAE5C,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,iBAAiB,EAChD,OAAM;IACJ,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,OAAO,CAAC,EAAE,CAAC,CAAC;CACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAaM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAAN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAqXk2rF,CAAC;qCAAkD,CAAC;;;;;;;;;iCAA0Q,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CADprsF,CAAC"}
@@ -53,7 +53,33 @@ export const convex = (opts = {}) => {
53
53
  return {
54
54
  id: "convex",
55
55
  hooks: {
56
- before: [...bearer.hooks.before],
56
+ before: [
57
+ {
58
+ matcher: (ctx) => {
59
+ return !!ctx.body?.userId;
60
+ },
61
+ handler: createAuthMiddleware(async (ctx) => {
62
+ const user = await ctx.context.adapter.findOne({
63
+ model: "user",
64
+ where: [
65
+ {
66
+ field: "userId",
67
+ operator: "eq",
68
+ value: ctx.body?.userId,
69
+ },
70
+ ],
71
+ });
72
+ if (!user) {
73
+ throw new Error("User not found");
74
+ }
75
+ ctx.body.userId = user.id;
76
+ return {
77
+ context: ctx,
78
+ };
79
+ }),
80
+ },
81
+ ...bearer.hooks.before,
82
+ ],
57
83
  after: [
58
84
  ...oidcProvider.hooks.after,
59
85
  {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/convex/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/convex/index.ts"],"names":[],"mappings":"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"}
@@ -19,22 +19,22 @@ export declare const reactStartHelpers: (createAuth: (ctx: GenericActionCtx<any>
19
19
  session: {
20
20
  session: {
21
21
  id: string;
22
- token: string;
23
22
  userId: string;
24
23
  expiresAt: Date;
25
24
  createdAt: Date;
26
25
  updatedAt: Date;
27
- ipAddress?: string | null | undefined | undefined;
28
- userAgent?: string | null | undefined | undefined;
26
+ token: string;
27
+ ipAddress?: string | null | undefined;
28
+ userAgent?: string | null | undefined;
29
29
  };
30
30
  user: {
31
31
  id: string;
32
- name: string;
33
- emailVerified: boolean;
34
32
  email: string;
33
+ emailVerified: boolean;
34
+ name: string;
35
35
  createdAt: Date;
36
36
  updatedAt: Date;
37
- image?: string | null | undefined | undefined;
37
+ image?: string | null | undefined;
38
38
  };
39
39
  } | null;
40
40
  }>;
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.7.11",
9
+ "version": "0.7.13",
10
10
  "license": "Apache-2.0",
11
11
  "keywords": [
12
12
  "convex",
@@ -18,7 +18,7 @@
18
18
  ],
19
19
  "type": "module",
20
20
  "scripts": {
21
- "build": "npm run generate && npm run build:esm && npm run build:cjs",
21
+ "build": "npm run build:esm && npm run build:cjs",
22
22
  "build:esm": "tsc --project ./esm.json && tsc-alias -p ./esm.json && npm run build:esm:generatePackageJson",
23
23
  "build:cjs": "tsc --project ./commonjs.json && npm run build:cjs:generatePackageJson",
24
24
  "build:esm:generatePackageJson": "echo '{\\n \"type\": \"module\"\\n}' > dist/esm/package.json",
@@ -27,6 +27,7 @@
27
27
  "typecheck": "tsc --noEmit",
28
28
  "prepare": "npm run build",
29
29
  "prepack": "node node10stubs.mjs",
30
+ "prepublishOnly": "npm run generate && npm run build",
30
31
  "postpack": "node node10stubs.mjs --cleanup",
31
32
  "generate": "concurrently \"cd examples/next && npm run generate\" \"cd examples/react && npm run generate\" \"cd examples/tanstack && npm run generate\"",
32
33
  "test": "vitest run",
@@ -126,13 +127,13 @@
126
127
  }
127
128
  },
128
129
  "peerDependencies": {
129
- "better-auth": "~1.2.12",
130
+ "better-auth": "1.3.4",
130
131
  "convex": ">=1.25.0 <1.35.0",
131
132
  "react": "^18.3.1 || ^19.0.0",
132
133
  "react-dom": "^18.3.1 || ^19.0.0"
133
134
  },
134
135
  "devDependencies": {
135
- "@better-auth/stripe": "1.2.12",
136
+ "@better-auth/stripe": "1.3.4",
136
137
  "@edge-runtime/vm": "^5.0.0",
137
138
  "@eslint/js": "^9.9.1",
138
139
  "@polar-sh/better-auth": "^1.0.4",
@@ -160,7 +161,6 @@
160
161
  "types": "./dist/commonjs/client/index.d.ts",
161
162
  "module": "./dist/esm/client/index.js",
162
163
  "dependencies": {
163
- "@convex-dev/resend": "^0.1.5-alpha.0",
164
164
  "common-tags": "^1.8.2",
165
165
  "convex-helpers": "^0.1.95",
166
166
  "is-network-error": "^1.1.0",
@@ -114,11 +114,10 @@ export class BetterAuth<UserId extends string = string> {
114
114
 
115
115
  async getHeaders(ctx: RunQueryCtx & { auth: ConvexAuth }) {
116
116
  const session = await ctx.runQuery(this.component.lib.getCurrentSession);
117
- return session
118
- ? new Headers({
119
- authorization: `Bearer ${session.token}`,
120
- })
121
- : new Headers();
117
+ return new Headers({
118
+ ...(session?.token ? { authorization: `Bearer ${session.token}` } : {}),
119
+ ...(session?.ipAddress ? { "x-forwarded-for": session.ipAddress } : {}),
120
+ });
122
121
  }
123
122
 
124
123
  // TODO: use the proper id type for auth functions
@@ -74,31 +74,6 @@ const hasUniqueFields = (model: TableNames, input: Record<string, any>) => {
74
74
  return false;
75
75
  };
76
76
 
77
- const checkUniqueFields = async (
78
- ctx: QueryCtx,
79
- table: TableNames,
80
- input: Record<string, any>,
81
- doc?: Doc<any>
82
- ) => {
83
- if (!hasUniqueFields(table, input)) {
84
- return;
85
- }
86
- for (const field of Object.keys(input)) {
87
- if (!isUniqueField(table, field)) {
88
- continue;
89
- }
90
- const existingDoc = await ctx.db
91
- .query(table as any)
92
- .withIndex(field as any, (q) =>
93
- q.eq(field, input[field as keyof typeof input])
94
- )
95
- .unique();
96
- if (existingDoc && existingDoc._id !== doc?._id) {
97
- throw new Error(`${table} ${field} already exists`);
98
- }
99
- }
100
- };
101
-
102
77
  const findIndex = (args: {
103
78
  model: string;
104
79
  where?: {
@@ -242,6 +217,41 @@ const findIndex = (args: {
242
217
  };
243
218
  };
244
219
 
220
+ const checkUniqueFields = async (
221
+ ctx: QueryCtx,
222
+ table: TableNames,
223
+ input: Record<string, any>,
224
+ doc?: Doc<any>
225
+ ) => {
226
+ if (!hasUniqueFields(table, input)) {
227
+ return;
228
+ }
229
+ for (const field of Object.keys(input)) {
230
+ if (!isUniqueField(table, field)) {
231
+ continue;
232
+ }
233
+ const { index } =
234
+ findIndex({
235
+ model: table,
236
+ where: [
237
+ { field, operator: "eq", value: input[field as keyof typeof input] },
238
+ ],
239
+ }) || {};
240
+ if (!index) {
241
+ throw new Error(`No index found for ${table}${field}`);
242
+ }
243
+ const existingDoc = await ctx.db
244
+ .query(table as any)
245
+ .withIndex(index.indexDescriptor, (q) =>
246
+ q.eq(field, input[field as keyof typeof input])
247
+ )
248
+ .unique();
249
+ if (existingDoc && existingDoc._id !== doc?._id) {
250
+ throw new Error(`${table} ${field} already exists`);
251
+ }
252
+ }
253
+ };
254
+
245
255
  const selectFields = <T extends TableNames, D extends Doc<T>>(
246
256
  doc: D | null,
247
257
  select?: string[]
@@ -431,13 +441,18 @@ const paginate = async (
431
441
  (isUniqueField(args.model as TableNames, w.field) || w.field === "id")
432
442
  );
433
443
  if (uniqueWhere) {
444
+ const { index } =
445
+ findIndex({
446
+ model: args.model,
447
+ where: [uniqueWhere],
448
+ }) || {};
434
449
  const doc =
435
450
  uniqueWhere.field === "id"
436
451
  ? await ctx.db.get(uniqueWhere.value as Id<TableNames>)
437
452
  : await ctx.db
438
453
  .query(args.model as any)
439
- .withIndex(uniqueWhere.field as any, (q) =>
440
- q.eq(uniqueWhere.field, uniqueWhere.value)
454
+ .withIndex(index?.indexDescriptor as any, (q) =>
455
+ q.eq(index?.fields[0], uniqueWhere.value)
441
456
  )
442
457
  .unique();
443
458