@convex-dev/better-auth 0.7.10 → 0.7.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.
Files changed (83) hide show
  1. package/README.md +10 -9
  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 +9 -9
  20. package/dist/commonjs/plugins/convex/index.d.ts.map +1 -1
  21. package/dist/commonjs/react-start/index.d.ts +6 -6
  22. package/dist/commonjs/react-start/index.d.ts.map +1 -1
  23. package/dist/commonjs/react-start/index.js +11 -0
  24. package/dist/commonjs/react-start/index.js.map +1 -1
  25. package/dist/esm/client/adapter.d.ts +1 -1
  26. package/dist/esm/client/index.d.ts +317 -284
  27. package/dist/esm/client/index.d.ts.map +1 -1
  28. package/dist/esm/client/index.js +9 -10
  29. package/dist/esm/client/index.js.map +1 -1
  30. package/dist/esm/client/plugins/index.d.ts +2 -2
  31. package/dist/esm/client/plugins/index.js +2 -2
  32. package/dist/esm/component/adapterTest.d.ts +1 -1
  33. package/dist/esm/component/adapterTest.js +3 -3
  34. package/dist/esm/component/lib.d.ts +113 -97
  35. package/dist/esm/component/lib.d.ts.map +1 -1
  36. package/dist/esm/component/lib.js +33 -20
  37. package/dist/esm/component/lib.js.map +1 -1
  38. package/dist/esm/component/schema.d.ts +235 -199
  39. package/dist/esm/component/schema.d.ts.map +1 -1
  40. package/dist/esm/component/schema.js +125 -102
  41. package/dist/esm/component/schema.js.map +1 -1
  42. package/dist/esm/component/util.d.ts +491 -404
  43. package/dist/esm/component/util.d.ts.map +1 -1
  44. package/dist/esm/component/util.js +1 -1
  45. package/dist/esm/nextjs/index.d.ts.map +1 -1
  46. package/dist/esm/nextjs/index.js +19 -3
  47. package/dist/esm/nextjs/index.js.map +1 -1
  48. package/dist/esm/plugins/convex/client.d.ts +1 -1
  49. package/dist/esm/plugins/convex/index.d.ts +9 -9
  50. package/dist/esm/plugins/convex/index.d.ts.map +1 -1
  51. package/dist/esm/plugins/cross-domain/client.d.ts +1 -1
  52. package/dist/esm/plugins/index.d.ts +2 -2
  53. package/dist/esm/plugins/index.js +2 -2
  54. package/dist/esm/react/client.d.ts +1 -1
  55. package/dist/esm/react/index.d.ts +1 -1
  56. package/dist/esm/react/index.js +1 -1
  57. package/dist/esm/react-start/index.d.ts +6 -6
  58. package/dist/esm/react-start/index.d.ts.map +1 -1
  59. package/dist/esm/react-start/index.js +12 -1
  60. package/dist/esm/react-start/index.js.map +1 -1
  61. package/dist/esm/utils/index.d.ts +1 -1
  62. package/package.json +8 -8
  63. package/src/client/index.ts +4 -5
  64. package/src/component/lib.ts +42 -27
  65. package/src/component/schema.ts +127 -102
  66. package/src/nextjs/index.ts +23 -2
  67. package/src/react-start/index.ts +13 -0
  68. package/dist/commonjs/client/cors.d.ts +0 -77
  69. package/dist/commonjs/client/cors.d.ts.map +0 -1
  70. package/dist/commonjs/client/cors.js +0 -297
  71. package/dist/commonjs/client/cors.js.map +0 -1
  72. package/dist/commonjs/util.d.ts +0 -2
  73. package/dist/commonjs/util.d.ts.map +0 -1
  74. package/dist/commonjs/util.js +0 -8
  75. package/dist/commonjs/util.js.map +0 -1
  76. package/dist/esm/client/cors.d.ts +0 -77
  77. package/dist/esm/client/cors.d.ts.map +0 -1
  78. package/dist/esm/client/cors.js +0 -297
  79. package/dist/esm/client/cors.js.map +0 -1
  80. package/dist/esm/util.d.ts +0 -2
  81. package/dist/esm/util.d.ts.map +0 -1
  82. package/dist/esm/util.js +0 -8
  83. package/dist/esm/util.js.map +0 -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,4 +1,4 @@
1
1
  import { typedV } from "convex-helpers/validators";
2
- import schema from "./schema";
2
+ import schema from "./schema.js";
3
3
  export const vv = typedV(schema);
4
4
  //# sourceMappingURL=util.js.map
@@ -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"}
@@ -1,13 +1,29 @@
1
1
  import { createCookieGetter } from "better-auth/cookies";
2
- import { JWT_COOKIE_NAME } from "../plugins/convex";
2
+ import { JWT_COOKIE_NAME } from "../plugins/convex/index.js";
3
3
  export const getToken = async (createAuth) => {
4
4
  const { cookies } = await import("next/headers");
5
5
  const cookieStore = await cookies();
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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"}
@@ -1,4 +1,4 @@
1
- import { convex } from ".";
1
+ import { convex } from "./index.js";
2
2
  export declare const convexClient: () => {
3
3
  id: "convex";
4
4
  $InferServerPlugin: ReturnType<typeof convex>;
@@ -57,9 +57,9 @@ export declare const convex: <O extends BetterAuthOptions>(opts?: {
57
57
  response: {
58
58
  user: Omit<import("better-auth").UnionToIntersection<import("better-auth").StripEmptyObjects<{
59
59
  id: string;
60
- name: string;
61
- emailVerified: boolean;
62
60
  email: string;
61
+ emailVerified: boolean;
62
+ name: string;
63
63
  createdAt: Date;
64
64
  updatedAt: Date;
65
65
  image?: string | null | undefined;
@@ -70,11 +70,11 @@ export declare const convex: <O extends BetterAuthOptions>(opts?: {
70
70
  };
71
71
  session: import("better-auth").UnionToIntersection<import("better-auth").StripEmptyObjects<{
72
72
  id: string;
73
- token: string;
74
73
  userId: string;
75
74
  expiresAt: Date;
76
75
  createdAt: Date;
77
76
  updatedAt: Date;
77
+ token: string;
78
78
  ipAddress?: string | null | undefined;
79
79
  userAgent?: string | null | undefined;
80
80
  } & (O extends BetterAuthOptions ? import("better-auth").AdditionalSessionFieldsOutput<O> : O extends import("better-auth").Auth ? import("better-auth").AdditionalSessionFieldsOutput<O["options"]> : {})>> & {
@@ -84,9 +84,9 @@ export declare const convex: <O extends BetterAuthOptions>(opts?: {
84
84
  } : {
85
85
  user: Omit<import("better-auth").UnionToIntersection<import("better-auth").StripEmptyObjects<{
86
86
  id: string;
87
- name: string;
88
- emailVerified: boolean;
89
87
  email: string;
88
+ emailVerified: boolean;
89
+ name: string;
90
90
  createdAt: Date;
91
91
  updatedAt: Date;
92
92
  image?: string | null | undefined;
@@ -97,11 +97,11 @@ export declare const convex: <O extends BetterAuthOptions>(opts?: {
97
97
  };
98
98
  session: import("better-auth").UnionToIntersection<import("better-auth").StripEmptyObjects<{
99
99
  id: string;
100
- token: string;
101
100
  userId: string;
102
101
  expiresAt: Date;
103
102
  createdAt: Date;
104
103
  updatedAt: Date;
104
+ token: string;
105
105
  ipAddress?: string | null | undefined;
106
106
  userAgent?: string | null | undefined;
107
107
  } & (O extends BetterAuthOptions ? import("better-auth").AdditionalSessionFieldsOutput<O> : O extends import("better-auth").Auth ? import("better-auth").AdditionalSessionFieldsOutput<O["options"]> : {})>> & {
@@ -328,19 +328,19 @@ export declare const convex: <O extends BetterAuthOptions>(opts?: {
328
328
  session: {
329
329
  session: Record<string, any> & {
330
330
  id: string;
331
- token: string;
332
331
  userId: string;
333
332
  expiresAt: Date;
334
333
  createdAt: Date;
335
334
  updatedAt: Date;
335
+ token: string;
336
336
  ipAddress?: string | null | undefined;
337
337
  userAgent?: string | null | undefined;
338
338
  };
339
339
  user: Record<string, any> & {
340
340
  id: string;
341
- name: string;
342
- emailVerified: boolean;
343
341
  email: string;
342
+ emailVerified: boolean;
343
+ name: string;
344
344
  createdAt: Date;
345
345
  updatedAt: Date;
346
346
  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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCA0V8jtF,CAAC;qCAAkD,CAAC;;;;;;;;;iCAA0Q,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CADh5tF,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { Store } from "better-auth";
2
2
  import { BetterFetchOption } from "@better-fetch/fetch";
3
- import { crossDomain } from ".";
3
+ import { crossDomain } from "./index.js";
4
4
  interface CookieAttributes {
5
5
  value: string;
6
6
  expires?: Date;
@@ -1,3 +1,3 @@
1
- export * from "./convex";
2
- export * from "./cross-domain";
1
+ export * from "./convex/index.js";
2
+ export * from "./cross-domain/index.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1,3 +1,3 @@
1
- export * from "./convex";
2
- export * from "./cross-domain";
1
+ export * from "./convex/index.js";
2
+ export * from "./cross-domain/index.js";
3
3
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  import { ConvexReactClient } from "convex/react";
2
2
  import { ReactNode } from "react";
3
3
  import { createAuthClient } from "better-auth/react";
4
- import { convexClient, crossDomainClient } from "../client/plugins";
4
+ import { convexClient, crossDomainClient } from "../client/plugins/index.js";
5
5
  import { BetterAuthClientPlugin, ClientOptions } from "better-auth";
6
6
  export declare function useAuth(): {
7
7
  isLoading: boolean;
@@ -1,6 +1,6 @@
1
1
  import { ConvexReactClient } from "convex/react";
2
2
  import { PropsWithChildren } from "react";
3
- import { AuthClient } from "./client";
3
+ import { AuthClient } from "./client.js";
4
4
  export declare function ConvexBetterAuthProvider({ client, authClient, children, }: PropsWithChildren<{
5
5
  client: ConvexReactClient;
6
6
  authClient: AuthClient;
@@ -2,7 +2,7 @@
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { ConvexProviderWithAuth } from "convex/react";
4
4
  import { useMemo } from "react";
5
- import { AuthProvider, useAuth, } from "./client";
5
+ import { AuthProvider, useAuth, } from "./client.js";
6
6
  export function ConvexBetterAuthProvider({ client, authClient, children, }) {
7
7
  const convexAuthClient = useMemo(() => ({
8
8
  verbose: client.options?.verbose,
@@ -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
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react-start/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,eAAO,MAAM,aAAa,GACxB,YAAY,CAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,OAAO,UAAU,CAAC,oBAM1E,CAAC;AAeF,eAAO,MAAM,YAAY,GACvB,CAAC,SAAS,CAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,OAAO,UAAU,CAAC,EAEvE,SAAS,OAAO,EAChB,MAAM;IACJ,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;;EAoBF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,SAAS,OAAO,EAChB,MAAM;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,sBAOnD,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,YAAY,CAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,OAAO,UAAU,CAAC,EACzE,MAAM;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE;4BAGxB,OAAO;;;;;;;;;;;;;;;;;;;;;;;iCACF,OAAO;;CAGvC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react-start/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIjD,eAAO,MAAM,aAAa,GACxB,YAAY,CAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,OAAO,UAAU,CAAC,oBAM1E,CAAC;AAeF,eAAO,MAAM,YAAY,GACvB,CAAC,SAAS,CAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,OAAO,UAAU,CAAC,EAEvE,SAAS,OAAO,EAChB,MAAM;IACJ,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;;EAoBF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,SAAS,OAAO,EAChB,MAAM;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,sBAOnD,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,YAAY,CAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,OAAO,UAAU,CAAC,EACzE,MAAM;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE;4BAexB,OAAO;;;;;;;;;;;;;;;;;;;;;;;iCACF,OAAO;;CAGvC,CAAC"}
@@ -1,6 +1,7 @@
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
+ import { JWT_COOKIE_NAME } from "../plugins/convex/index.js";
4
+ import { oneLine } from "common-tags";
4
5
  export const getCookieName = async (createAuth) => {
5
6
  const auth = createAuth({});
6
7
  const createCookie = createCookieGetter(auth.options);
@@ -39,6 +40,16 @@ export const reactStartHandler = (request, opts) => {
39
40
  return fetch(nextUrl, new Request(request, { redirect: "manual" }));
40
41
  };
41
42
  export const reactStartHelpers = (createAuth, opts) => {
43
+ if (!opts.convexSiteUrl) {
44
+ throw new Error("opts.convexSiteUrl is required");
45
+ }
46
+ if (opts.convexSiteUrl.endsWith(".convex.cloud")) {
47
+ throw new Error(oneLine(`
48
+ opts.convexSiteUrl ends with .convex.cloud, which is your cloud URL.
49
+ Use your Convex site URL instead.
50
+ https://docs.convex.dev/production/environment-variables#system-environment-variables
51
+ `));
52
+ }
42
53
  return {
43
54
  fetchSession: (request) => fetchSession(request, opts),
44
55
  reactStartHandler: (request) => reactStartHandler(request, opts),
@@ -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;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,oBAAoB,GAAG,CAC3B,IAAkD,EAClD,UAAkB,EAClB,EAAE;IACF,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,kCAAkC,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,yBAAyB,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,IAAI,CAAC,aAAa,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAG/B,OAAgB,EAChB,IAGC,EACD,EAAE;IAGF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACjE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,WAAW,CACzC,uBAAuB,EACvB;QACE,OAAO,EAAE,aAAa;QACtB,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,IAAkD,EAClD,EAAE;IACF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACtE,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;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,UAAyE,EACzE,IAAkD,EAClD,EAAE;IACF,OAAO;QACL,YAAY,EAAE,CAAC,OAAgB,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC;QAC/D,iBAAiB,EAAE,CAAC,OAAgB,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC;QACzE,aAAa,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC;KAC/C,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react-start/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { RunActionCtx, RunCtx, RunMutationCtx, RunQueryCtx } from "../client";
1
+ import { RunActionCtx, RunCtx, RunMutationCtx, RunQueryCtx } from "../client/index.js";
2
2
  export declare const requireEnv: (name: string) => string;
3
3
  export declare const isQueryCtx: (ctx: RunCtx) => ctx is RunQueryCtx;
4
4
  export declare const isMutationCtx: (ctx: RunCtx) => ctx is RunMutationCtx;
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.10",
9
+ "version": "0.7.12",
10
10
  "license": "Apache-2.0",
11
11
  "keywords": [
12
12
  "convex",
@@ -19,16 +19,15 @@
19
19
  "type": "module",
20
20
  "scripts": {
21
21
  "build": "npm run build:esm && npm run build:cjs",
22
- "build:esm": "tsc --project ./esm.json && npm run build:esm:generatePackageJson",
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",
25
25
  "build:cjs:generatePackageJson": "echo '{\\n \"type\": \"commonjs\"\\n}' > dist/commonjs/package.json",
26
- "watch": "concurrently \"npm run watch:esm\" \"npm run watch:cjs\"",
27
- "watch:esm": "tsc --watch --project ./esm.json && npm run build:esm:generatePackageJson",
28
- "watch:cjs": "tsc --watch --project ./commonjs.json && npm run build:cjs:generatePackageJson",
26
+ "build:watch": "chokidar 'tsconfig*.json' 'src/**/*.ts' -c 'npm run build' --initial",
29
27
  "typecheck": "tsc --noEmit",
30
28
  "prepare": "npm run build",
31
29
  "prepack": "node node10stubs.mjs",
30
+ "prepublishOnly": "npm run generate && npm run build",
32
31
  "postpack": "node node10stubs.mjs --cleanup",
33
32
  "generate": "concurrently \"cd examples/next && npm run generate\" \"cd examples/react && npm run generate\" \"cd examples/tanstack && npm run generate\"",
34
33
  "test": "vitest run",
@@ -128,13 +127,13 @@
128
127
  }
129
128
  },
130
129
  "peerDependencies": {
131
- "better-auth": "~1.2.12",
130
+ "better-auth": "1.3.4",
132
131
  "convex": ">=1.25.0 <1.35.0",
133
132
  "react": "^18.3.1 || ^19.0.0",
134
133
  "react-dom": "^18.3.1 || ^19.0.0"
135
134
  },
136
135
  "devDependencies": {
137
- "@better-auth/stripe": "1.2.12",
136
+ "@better-auth/stripe": "1.3.4",
138
137
  "@edge-runtime/vm": "^5.0.0",
139
138
  "@eslint/js": "^9.9.1",
140
139
  "@polar-sh/better-auth": "^1.0.4",
@@ -145,6 +144,7 @@
145
144
  "@types/react": "19.1.6",
146
145
  "@types/react-dom": "19.1.6",
147
146
  "@types/semver": "^7.7.0",
147
+ "chokidar-cli": "^3.0.0",
148
148
  "concurrently": "^9.2.0",
149
149
  "convex-test": "^0.0.33",
150
150
  "eslint": "^9.9.1",
@@ -152,6 +152,7 @@
152
152
  "next": "^15.1.8",
153
153
  "prettier": "3.2.5",
154
154
  "semver": "^7.7.2",
155
+ "tsc-alias": "^1.8.16",
155
156
  "typescript": "^5.8.2",
156
157
  "typescript-eslint": "^8.4.0",
157
158
  "vitest": "^3.2.2"
@@ -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