@convex-dev/better-auth 0.8.5 → 0.8.7

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 (235) hide show
  1. package/dist/commonjs/client/adapterUtils.js +1 -1
  2. package/dist/commonjs/client/adapterUtils.js.map +1 -1
  3. package/dist/commonjs/client/index.d.ts.map +1 -1
  4. package/dist/commonjs/client/index.js +2 -2
  5. package/dist/commonjs/client/index.js.map +1 -1
  6. package/dist/commonjs/plugins/cross-domain/index.d.ts +4 -3
  7. package/dist/commonjs/plugins/cross-domain/index.d.ts.map +1 -1
  8. package/dist/commonjs/plugins/cross-domain/index.js +20 -13
  9. package/dist/commonjs/plugins/cross-domain/index.js.map +1 -1
  10. package/dist/commonjs/react/index.d.ts +28 -7
  11. package/dist/commonjs/react/index.d.ts.map +1 -1
  12. package/dist/commonjs/react/index.js +59 -11
  13. package/dist/commonjs/react/index.js.map +1 -1
  14. package/dist/commonjs/{src/react/index.d.ts → react/old-index.d.ts} +1 -1
  15. package/dist/commonjs/react/old-index.d.ts.map +1 -0
  16. package/dist/commonjs/{src/react/index.js → react/old-index.js} +1 -1
  17. package/dist/commonjs/react/old-index.js.map +1 -0
  18. package/dist/commonjs/react-start/index.d.ts +3 -3
  19. package/dist/commonjs/react-start/index.d.ts.map +1 -1
  20. package/dist/commonjs/react-start/index.js.map +1 -1
  21. package/dist/esm/client/adapterUtils.js +1 -1
  22. package/dist/esm/client/adapterUtils.js.map +1 -1
  23. package/dist/esm/client/index.d.ts.map +1 -1
  24. package/dist/esm/client/index.js +2 -2
  25. package/dist/esm/client/index.js.map +1 -1
  26. package/dist/esm/plugins/cross-domain/index.d.ts +4 -3
  27. package/dist/esm/plugins/cross-domain/index.d.ts.map +1 -1
  28. package/dist/esm/plugins/cross-domain/index.js +20 -13
  29. package/dist/esm/plugins/cross-domain/index.js.map +1 -1
  30. package/dist/esm/react/index.d.ts +28 -7
  31. package/dist/esm/react/index.d.ts.map +1 -1
  32. package/dist/esm/react/index.js +59 -11
  33. package/dist/esm/react/index.js.map +1 -1
  34. package/dist/esm/{src/react/index.d.ts → react/old-index.d.ts} +1 -1
  35. package/dist/esm/react/old-index.d.ts.map +1 -0
  36. package/dist/esm/{src/react/index.js → react/old-index.js} +1 -1
  37. package/dist/esm/react/old-index.js.map +1 -0
  38. package/dist/esm/react-start/index.d.ts +3 -3
  39. package/dist/esm/react-start/index.d.ts.map +1 -1
  40. package/dist/esm/react-start/index.js.map +1 -1
  41. package/package.json +1 -1
  42. package/src/client/adapterUtils.ts +1 -1
  43. package/src/client/index.ts +2 -2
  44. package/src/plugins/cross-domain/index.ts +33 -20
  45. package/src/react/index.tsx +110 -28
  46. package/src/react-start/index.ts +2 -2
  47. package/dist/commonjs/client/createSchemaInternal.d.ts +0 -24
  48. package/dist/commonjs/client/createSchemaInternal.d.ts.map +0 -1
  49. package/dist/commonjs/client/createSchemaInternal.js +0 -105
  50. package/dist/commonjs/client/createSchemaInternal.js.map +0 -1
  51. package/dist/commonjs/component/lib.d.ts +0 -432
  52. package/dist/commonjs/component/lib.d.ts.map +0 -1
  53. package/dist/commonjs/component/lib.js +0 -570
  54. package/dist/commonjs/component/lib.js.map +0 -1
  55. package/dist/commonjs/component/util.d.ts +0 -1406
  56. package/dist/commonjs/component/util.d.ts.map +0 -1
  57. package/dist/commonjs/component/util.js +0 -4
  58. package/dist/commonjs/component/util.js.map +0 -1
  59. package/dist/commonjs/src/auth.d.ts +0 -3085
  60. package/dist/commonjs/src/auth.d.ts.map +0 -1
  61. package/dist/commonjs/src/auth.js +0 -72
  62. package/dist/commonjs/src/auth.js.map +0 -1
  63. package/dist/commonjs/src/client/adapter.d.ts +0 -18
  64. package/dist/commonjs/src/client/adapter.d.ts.map +0 -1
  65. package/dist/commonjs/src/client/adapter.js +0 -211
  66. package/dist/commonjs/src/client/adapter.js.map +0 -1
  67. package/dist/commonjs/src/client/createSchema.d.ts +0 -25
  68. package/dist/commonjs/src/client/createSchema.d.ts.map +0 -1
  69. package/dist/commonjs/src/client/createSchema.js +0 -103
  70. package/dist/commonjs/src/client/createSchema.js.map +0 -1
  71. package/dist/commonjs/src/client/index.d.ts +0 -3310
  72. package/dist/commonjs/src/client/index.d.ts.map +0 -1
  73. package/dist/commonjs/src/client/index.js +0 -377
  74. package/dist/commonjs/src/client/index.js.map +0 -1
  75. package/dist/commonjs/src/client/plugins/index.d.ts +0 -3
  76. package/dist/commonjs/src/client/plugins/index.d.ts.map +0 -1
  77. package/dist/commonjs/src/client/plugins/index.js +0 -3
  78. package/dist/commonjs/src/client/plugins/index.js.map +0 -1
  79. package/dist/commonjs/src/component/_generated/api.d.ts +0 -12
  80. package/dist/commonjs/src/component/_generated/api.d.ts.map +0 -1
  81. package/dist/commonjs/src/component/_generated/api.js +0 -22
  82. package/dist/commonjs/src/component/_generated/api.js.map +0 -1
  83. package/dist/commonjs/src/component/_generated/server.d.ts +0 -64
  84. package/dist/commonjs/src/component/_generated/server.d.ts.map +0 -1
  85. package/dist/commonjs/src/component/_generated/server.js +0 -74
  86. package/dist/commonjs/src/component/_generated/server.js.map +0 -1
  87. package/dist/commonjs/src/component/adapter.d.ts +0 -355
  88. package/dist/commonjs/src/component/adapter.d.ts.map +0 -1
  89. package/dist/commonjs/src/component/adapter.js +0 -573
  90. package/dist/commonjs/src/component/adapter.js.map +0 -1
  91. package/dist/commonjs/src/component/adapterTest.d.ts +0 -18
  92. package/dist/commonjs/src/component/adapterTest.d.ts.map +0 -1
  93. package/dist/commonjs/src/component/adapterTest.js +0 -75
  94. package/dist/commonjs/src/component/adapterTest.js.map +0 -1
  95. package/dist/commonjs/src/component/convex.config.d.ts +0 -3
  96. package/dist/commonjs/src/component/convex.config.d.ts.map +0 -1
  97. package/dist/commonjs/src/component/convex.config.js +0 -4
  98. package/dist/commonjs/src/component/convex.config.js.map +0 -1
  99. package/dist/commonjs/src/component/schema.d.ts +0 -562
  100. package/dist/commonjs/src/component/schema.d.ts.map +0 -1
  101. package/dist/commonjs/src/component/schema.js +0 -217
  102. package/dist/commonjs/src/component/schema.js.map +0 -1
  103. package/dist/commonjs/src/nextjs/index.d.ts +0 -10
  104. package/dist/commonjs/src/nextjs/index.d.ts.map +0 -1
  105. package/dist/commonjs/src/nextjs/index.js +0 -43
  106. package/dist/commonjs/src/nextjs/index.js.map +0 -1
  107. package/dist/commonjs/src/plugins/convex/client.d.ts +0 -9
  108. package/dist/commonjs/src/plugins/convex/client.d.ts.map +0 -1
  109. package/dist/commonjs/src/plugins/convex/client.js +0 -7
  110. package/dist/commonjs/src/plugins/convex/client.js.map +0 -1
  111. package/dist/commonjs/src/plugins/convex/index.d.ts +0 -415
  112. package/dist/commonjs/src/plugins/convex/index.d.ts.map +0 -1
  113. package/dist/commonjs/src/plugins/convex/index.js +0 -354
  114. package/dist/commonjs/src/plugins/convex/index.js.map +0 -1
  115. package/dist/commonjs/src/plugins/cross-domain/client.d.ts +0 -132
  116. package/dist/commonjs/src/plugins/cross-domain/client.d.ts.map +0 -1
  117. package/dist/commonjs/src/plugins/cross-domain/client.js +0 -176
  118. package/dist/commonjs/src/plugins/cross-domain/client.js.map +0 -1
  119. package/dist/commonjs/src/plugins/cross-domain/index.d.ts +0 -83
  120. package/dist/commonjs/src/plugins/cross-domain/index.d.ts.map +0 -1
  121. package/dist/commonjs/src/plugins/cross-domain/index.js +0 -153
  122. package/dist/commonjs/src/plugins/cross-domain/index.js.map +0 -1
  123. package/dist/commonjs/src/plugins/index.d.ts +0 -3
  124. package/dist/commonjs/src/plugins/index.d.ts.map +0 -1
  125. package/dist/commonjs/src/plugins/index.js +0 -3
  126. package/dist/commonjs/src/plugins/index.js.map +0 -1
  127. package/dist/commonjs/src/react/client.d.ts +0 -31
  128. package/dist/commonjs/src/react/client.d.ts.map +0 -1
  129. package/dist/commonjs/src/react/client.js +0 -96
  130. package/dist/commonjs/src/react/client.js.map +0 -1
  131. package/dist/commonjs/src/react/index.d.ts.map +0 -1
  132. package/dist/commonjs/src/react/index.js.map +0 -1
  133. package/dist/commonjs/src/react-start/index.d.ts +0 -45
  134. package/dist/commonjs/src/react-start/index.d.ts.map +0 -1
  135. package/dist/commonjs/src/react-start/index.js +0 -60
  136. package/dist/commonjs/src/react-start/index.js.map +0 -1
  137. package/dist/commonjs/src/utils/index.d.ts +0 -9
  138. package/dist/commonjs/src/utils/index.d.ts.map +0 -1
  139. package/dist/commonjs/src/utils/index.js +0 -35
  140. package/dist/commonjs/src/utils/index.js.map +0 -1
  141. package/dist/esm/client/createSchemaInternal.d.ts +0 -24
  142. package/dist/esm/client/createSchemaInternal.d.ts.map +0 -1
  143. package/dist/esm/client/createSchemaInternal.js +0 -105
  144. package/dist/esm/client/createSchemaInternal.js.map +0 -1
  145. package/dist/esm/component/lib.d.ts +0 -432
  146. package/dist/esm/component/lib.d.ts.map +0 -1
  147. package/dist/esm/component/lib.js +0 -570
  148. package/dist/esm/component/lib.js.map +0 -1
  149. package/dist/esm/component/util.d.ts +0 -1406
  150. package/dist/esm/component/util.d.ts.map +0 -1
  151. package/dist/esm/component/util.js +0 -4
  152. package/dist/esm/component/util.js.map +0 -1
  153. package/dist/esm/src/auth.d.ts +0 -3085
  154. package/dist/esm/src/auth.d.ts.map +0 -1
  155. package/dist/esm/src/auth.js +0 -72
  156. package/dist/esm/src/auth.js.map +0 -1
  157. package/dist/esm/src/client/adapter.d.ts +0 -18
  158. package/dist/esm/src/client/adapter.d.ts.map +0 -1
  159. package/dist/esm/src/client/adapter.js +0 -211
  160. package/dist/esm/src/client/adapter.js.map +0 -1
  161. package/dist/esm/src/client/createSchema.d.ts +0 -25
  162. package/dist/esm/src/client/createSchema.d.ts.map +0 -1
  163. package/dist/esm/src/client/createSchema.js +0 -103
  164. package/dist/esm/src/client/createSchema.js.map +0 -1
  165. package/dist/esm/src/client/index.d.ts +0 -3310
  166. package/dist/esm/src/client/index.d.ts.map +0 -1
  167. package/dist/esm/src/client/index.js +0 -377
  168. package/dist/esm/src/client/index.js.map +0 -1
  169. package/dist/esm/src/client/plugins/index.d.ts +0 -3
  170. package/dist/esm/src/client/plugins/index.d.ts.map +0 -1
  171. package/dist/esm/src/client/plugins/index.js +0 -3
  172. package/dist/esm/src/client/plugins/index.js.map +0 -1
  173. package/dist/esm/src/component/_generated/api.d.ts +0 -12
  174. package/dist/esm/src/component/_generated/api.d.ts.map +0 -1
  175. package/dist/esm/src/component/_generated/api.js +0 -22
  176. package/dist/esm/src/component/_generated/api.js.map +0 -1
  177. package/dist/esm/src/component/_generated/server.d.ts +0 -64
  178. package/dist/esm/src/component/_generated/server.d.ts.map +0 -1
  179. package/dist/esm/src/component/_generated/server.js +0 -74
  180. package/dist/esm/src/component/_generated/server.js.map +0 -1
  181. package/dist/esm/src/component/adapter.d.ts +0 -355
  182. package/dist/esm/src/component/adapter.d.ts.map +0 -1
  183. package/dist/esm/src/component/adapter.js +0 -573
  184. package/dist/esm/src/component/adapter.js.map +0 -1
  185. package/dist/esm/src/component/adapterTest.d.ts +0 -18
  186. package/dist/esm/src/component/adapterTest.d.ts.map +0 -1
  187. package/dist/esm/src/component/adapterTest.js +0 -75
  188. package/dist/esm/src/component/adapterTest.js.map +0 -1
  189. package/dist/esm/src/component/convex.config.d.ts +0 -3
  190. package/dist/esm/src/component/convex.config.d.ts.map +0 -1
  191. package/dist/esm/src/component/convex.config.js +0 -4
  192. package/dist/esm/src/component/convex.config.js.map +0 -1
  193. package/dist/esm/src/component/schema.d.ts +0 -562
  194. package/dist/esm/src/component/schema.d.ts.map +0 -1
  195. package/dist/esm/src/component/schema.js +0 -217
  196. package/dist/esm/src/component/schema.js.map +0 -1
  197. package/dist/esm/src/nextjs/index.d.ts +0 -10
  198. package/dist/esm/src/nextjs/index.d.ts.map +0 -1
  199. package/dist/esm/src/nextjs/index.js +0 -43
  200. package/dist/esm/src/nextjs/index.js.map +0 -1
  201. package/dist/esm/src/plugins/convex/client.d.ts +0 -9
  202. package/dist/esm/src/plugins/convex/client.d.ts.map +0 -1
  203. package/dist/esm/src/plugins/convex/client.js +0 -7
  204. package/dist/esm/src/plugins/convex/client.js.map +0 -1
  205. package/dist/esm/src/plugins/convex/index.d.ts +0 -415
  206. package/dist/esm/src/plugins/convex/index.d.ts.map +0 -1
  207. package/dist/esm/src/plugins/convex/index.js +0 -354
  208. package/dist/esm/src/plugins/convex/index.js.map +0 -1
  209. package/dist/esm/src/plugins/cross-domain/client.d.ts +0 -132
  210. package/dist/esm/src/plugins/cross-domain/client.d.ts.map +0 -1
  211. package/dist/esm/src/plugins/cross-domain/client.js +0 -176
  212. package/dist/esm/src/plugins/cross-domain/client.js.map +0 -1
  213. package/dist/esm/src/plugins/cross-domain/index.d.ts +0 -83
  214. package/dist/esm/src/plugins/cross-domain/index.d.ts.map +0 -1
  215. package/dist/esm/src/plugins/cross-domain/index.js +0 -153
  216. package/dist/esm/src/plugins/cross-domain/index.js.map +0 -1
  217. package/dist/esm/src/plugins/index.d.ts +0 -3
  218. package/dist/esm/src/plugins/index.d.ts.map +0 -1
  219. package/dist/esm/src/plugins/index.js +0 -3
  220. package/dist/esm/src/plugins/index.js.map +0 -1
  221. package/dist/esm/src/react/client.d.ts +0 -31
  222. package/dist/esm/src/react/client.d.ts.map +0 -1
  223. package/dist/esm/src/react/client.js +0 -96
  224. package/dist/esm/src/react/client.js.map +0 -1
  225. package/dist/esm/src/react/index.d.ts.map +0 -1
  226. package/dist/esm/src/react/index.js.map +0 -1
  227. package/dist/esm/src/react-start/index.d.ts +0 -45
  228. package/dist/esm/src/react-start/index.d.ts.map +0 -1
  229. package/dist/esm/src/react-start/index.js +0 -60
  230. package/dist/esm/src/react-start/index.js.map +0 -1
  231. package/dist/esm/src/utils/index.d.ts +0 -9
  232. package/dist/esm/src/utils/index.d.ts.map +0 -1
  233. package/dist/esm/src/utils/index.js +0 -35
  234. package/dist/esm/src/utils/index.js.map +0 -1
  235. package/src/react/client.tsx +0 -178
@@ -1,573 +0,0 @@
1
- import { mutation, query } from "./_generated/server.js";
2
- import { asyncMap } from "convex-helpers";
3
- import { v } from "convex/values";
4
- import schema, { specialFields } from "./schema.js";
5
- import { paginationOptsValidator, } from "convex/server";
6
- import { partial } from "convex-helpers/validators";
7
- import { stream } from "convex-helpers/server/stream";
8
- import { mergedStream } from "convex-helpers/server/stream";
9
- import { stripIndent } from "common-tags";
10
- export const adapterWhereValidator = v.object({
11
- field: v.string(),
12
- operator: v.optional(v.union(v.literal("lt"), v.literal("lte"), v.literal("gt"), v.literal("gte"), v.literal("eq"), v.literal("in"), v.literal("ne"), v.literal("contains"), v.literal("starts_with"), v.literal("ends_with"))),
13
- value: v.union(v.string(), v.number(), v.boolean(), v.array(v.string()), v.array(v.number()), v.null()),
14
- connector: v.optional(v.union(v.literal("AND"), v.literal("OR"))),
15
- });
16
- export const adapterArgsValidator = v.object({
17
- model: v.string(),
18
- where: v.optional(v.array(adapterWhereValidator)),
19
- sortBy: v.optional(v.object({
20
- field: v.string(),
21
- direction: v.union(v.literal("asc"), v.literal("desc")),
22
- })),
23
- select: v.optional(v.array(v.string())),
24
- limit: v.optional(v.number()),
25
- offset: v.optional(v.number()),
26
- unique: v.optional(v.boolean()),
27
- });
28
- const isUniqueField = (model, field) => {
29
- const fields = specialFields[model];
30
- if (!fields) {
31
- return false;
32
- }
33
- return Object.entries(fields)
34
- .filter(([, value]) => value.unique)
35
- .map(([key]) => key)
36
- .includes(field);
37
- };
38
- export const hasUniqueFields = (model, input) => {
39
- for (const field of Object.keys(input)) {
40
- if (isUniqueField(model, field)) {
41
- return true;
42
- }
43
- }
44
- return false;
45
- };
46
- const findIndex = (args) => {
47
- if ((args.where?.length ?? 0) > 1 &&
48
- args.where?.some((w) => w.connector === "OR")) {
49
- throw new Error(`OR connector not supported with multiple where statements in findIndex, split up the where statements before calling findIndex: ${JSON.stringify(args.where)}`);
50
- }
51
- const where = args.where?.filter((w) => {
52
- return ((!w.operator ||
53
- ["lt", "lte", "gt", "gte", "eq", "in"].includes(w.operator)) &&
54
- w.field !== "id");
55
- });
56
- if (!where?.length && !args.sortBy) {
57
- return;
58
- }
59
- const lowerBounds = where?.filter((w) => w.operator === "lt" || w.operator === "lte") ?? [];
60
- if (lowerBounds.length > 1) {
61
- throw new Error(`cannot have more than one lower bound where clause: ${JSON.stringify(where)}`);
62
- }
63
- const upperBounds = where?.filter((w) => w.operator === "gt" || w.operator === "gte") ?? [];
64
- if (upperBounds.length > 1) {
65
- throw new Error(`cannot have more than one upper bound where clause: ${JSON.stringify(where)}`);
66
- }
67
- const lowerBound = lowerBounds[0];
68
- const upperBound = upperBounds[0];
69
- if (lowerBound && upperBound && lowerBound.field !== upperBound.field) {
70
- throw new Error(`lower bound and upper bound must have the same field: ${JSON.stringify(where)}`);
71
- }
72
- const boundField = lowerBound?.field || upperBound?.field;
73
- if (boundField &&
74
- where?.some((w) => w.field === boundField && w !== lowerBound && w !== upperBound)) {
75
- throw new Error(`too many where clauses on the bound field: ${JSON.stringify(where)}`);
76
- }
77
- const indexEqFields = where
78
- ?.filter((w) => !w.operator || w.operator === "eq")
79
- .sort((a, b) => {
80
- return a.field.localeCompare(b.field);
81
- })
82
- .map((w) => [w.field, w.value]) ?? [];
83
- if (!indexEqFields?.length && !boundField && !args.sortBy) {
84
- return;
85
- }
86
- const table = schema.tables[args.model];
87
- if (!table) {
88
- throw new Error(`Table ${args.model} not found`);
89
- }
90
- const indexes = table[" indexes"]();
91
- const sortField = args.sortBy?.field;
92
- // We internally use _creationTime in place of Better Auth's createdAt
93
- const indexFields = indexEqFields
94
- .map(([field]) => field)
95
- .concat(boundField && boundField !== "createdAt"
96
- ? `${indexEqFields.length ? "_" : ""}${boundField}`
97
- : "")
98
- .concat(sortField && sortField !== "createdAt" && boundField !== sortField
99
- ? `${indexEqFields.length || boundField ? "_" : ""}${sortField}`
100
- : "")
101
- .filter(Boolean);
102
- if (!indexFields.length && !boundField && !sortField) {
103
- return;
104
- }
105
- // Use the built in _creationTime index if bounding or sorting by createdAt
106
- // with no other fields
107
- const index = !indexFields.length
108
- ? {
109
- indexDescriptor: "by_creation_time",
110
- fields: [],
111
- }
112
- : indexes.find(({ fields }) => {
113
- const fieldsMatch = indexFields.every((field, idx) => field === fields[idx]);
114
- // If sorting by createdAt, no intermediate fields can be on the index
115
- // as they may override the createdAt sort order.
116
- const boundFieldMatch = boundField === "createdAt" || sortField === "createdAt"
117
- ? indexFields.length === fields.length
118
- : true;
119
- return fieldsMatch && boundFieldMatch;
120
- });
121
- if (!index) {
122
- return { indexFields };
123
- }
124
- return {
125
- index: {
126
- indexDescriptor: index.indexDescriptor,
127
- fields: [...index.fields, "_creationTime"],
128
- },
129
- boundField,
130
- sortField,
131
- values: {
132
- eq: indexEqFields.map(([, value]) => value),
133
- lt: lowerBound?.operator === "lt" ? lowerBound.value : undefined,
134
- lte: lowerBound?.operator === "lte" ? lowerBound.value : undefined,
135
- gt: upperBound?.operator === "gt" ? upperBound.value : undefined,
136
- gte: upperBound?.operator === "gte" ? upperBound.value : undefined,
137
- },
138
- };
139
- };
140
- export const checkUniqueFields = async (ctx, table, input, doc) => {
141
- if (!hasUniqueFields(table, input)) {
142
- return;
143
- }
144
- for (const field of Object.keys(input)) {
145
- if (!isUniqueField(table, field)) {
146
- continue;
147
- }
148
- const { index } = findIndex({
149
- model: table,
150
- where: [
151
- { field, operator: "eq", value: input[field] },
152
- ],
153
- }) || {};
154
- if (!index) {
155
- throw new Error(`No index found for ${table}${field}`);
156
- }
157
- const existingDoc = await ctx.db
158
- .query(table)
159
- .withIndex(index.indexDescriptor, (q) => q.eq(field, input[field]))
160
- .unique();
161
- if (existingDoc && existingDoc._id !== doc?._id) {
162
- throw new Error(`${table} ${field} already exists`);
163
- }
164
- }
165
- };
166
- // This handles basic select (stripping out the other fields if there
167
- // is a select arg), but also swaps in the app userId for any user id
168
- // reference fields.
169
- export const selectFields = async (ctx, doc, select) => {
170
- if (!doc) {
171
- return null;
172
- }
173
- const modelSpecialFields = specialFields[doc._table];
174
- const userIdField = modelSpecialFields
175
- ? Object.entries(modelSpecialFields).find(([_, field]) => field.references?.model === "user")
176
- : undefined;
177
- if (userIdField) {
178
- const userIdFieldName = userIdField[0];
179
- const userId = doc[userIdFieldName];
180
- if (userId) {
181
- const user = await ctx.db.get(userId);
182
- if (user) {
183
- doc[userIdFieldName] = user.userId;
184
- }
185
- }
186
- }
187
- if (!select?.length) {
188
- return doc;
189
- }
190
- return select.reduce((acc, field) => {
191
- acc[field] = doc[field];
192
- return acc;
193
- }, {});
194
- };
195
- // Manually filter an individual document by where clauses. This is used to
196
- // simplify queries that can only return 0 or 1 documents, or "in" clauses that
197
- // query multiple single documents in parallel.
198
- const filterByWhere = (doc, where,
199
- // Optionally filter which where clauses to apply.
200
- filterWhere) => {
201
- if (!doc) {
202
- return false;
203
- }
204
- for (const w of where ?? []) {
205
- if (filterWhere && !filterWhere(w)) {
206
- continue;
207
- }
208
- const value = doc[w.field];
209
- const isLessThan = (val, wVal) => {
210
- if (!wVal) {
211
- return false;
212
- }
213
- if (!val) {
214
- return true;
215
- }
216
- return val < wVal;
217
- };
218
- const isGreaterThan = (val, wVal) => {
219
- if (!val) {
220
- return false;
221
- }
222
- if (!wVal) {
223
- return true;
224
- }
225
- return val > wVal;
226
- };
227
- const filter = (w) => {
228
- switch (w.operator) {
229
- case undefined:
230
- case "eq": {
231
- return value === w.value;
232
- }
233
- case "in": {
234
- return Array.isArray(w.value) && w.value.includes(value);
235
- }
236
- case "lt": {
237
- return isLessThan(value, w.value);
238
- }
239
- case "lte": {
240
- return value === w.value || isLessThan(value, w.value);
241
- }
242
- case "gt": {
243
- return isGreaterThan(value, w.value);
244
- }
245
- case "gte": {
246
- return value === w.value || isGreaterThan(value, w.value);
247
- }
248
- case "ne": {
249
- return value !== w.value;
250
- }
251
- case "contains": {
252
- return typeof value === "string" && value.includes(w.value);
253
- }
254
- case "starts_with": {
255
- return (typeof value === "string" && value.startsWith(w.value));
256
- }
257
- case "ends_with": {
258
- return typeof value === "string" && value.endsWith(w.value);
259
- }
260
- }
261
- };
262
- if (!filter(w)) {
263
- return false;
264
- }
265
- }
266
- return true;
267
- };
268
- const generateQuery = (ctx, args) => {
269
- const { index, values, boundField, indexFields } = findIndex(args) ?? {};
270
- const query = stream(ctx.db, schema).query(args.model);
271
- const hasValues = values?.eq?.length ||
272
- values?.lt ||
273
- values?.lte ||
274
- values?.gt ||
275
- values?.gte;
276
- const indexedQuery = index && index.indexDescriptor !== "by_creation_time"
277
- ? query.withIndex(index.indexDescriptor, hasValues
278
- ? (q) => {
279
- for (const [idx, value] of (values?.eq ?? []).entries()) {
280
- q = q.eq(index.fields[idx], value);
281
- }
282
- if (values?.lt) {
283
- q = q.lt(boundField, values.lt);
284
- }
285
- if (values?.lte) {
286
- q = q.lte(boundField, values.lte);
287
- }
288
- if (values?.gt) {
289
- q = q.gt(boundField, values.gt);
290
- }
291
- if (values?.gte) {
292
- q = q.gte(boundField, values.gte);
293
- }
294
- return q;
295
- }
296
- : undefined)
297
- : query;
298
- const orderedQuery = args.sortBy
299
- ? indexedQuery.order(args.sortBy.direction === "asc" ? "asc" : "desc")
300
- : indexedQuery;
301
- const filteredQuery = orderedQuery.filterWith(async (doc) => {
302
- if (!index && indexFields?.length) {
303
- console.warn(stripIndent `
304
- Querying without an index on table "${args.model}".
305
- This can cause performance issues, and may hit the document read limit.
306
- To fix, add an index that begins with the following fields in order:
307
- [${indexFields.join(", ")}]
308
- `);
309
- // No index, handle all where clauses statically.
310
- return filterByWhere(doc, args.where);
311
- }
312
- return filterByWhere(doc, args.where,
313
- // Index used for all eq and range clauses, apply remaining clauses
314
- // incompatible with Convex statically.
315
- (w) => w.operator &&
316
- ["contains", "starts_with", "ends_with", "ne"].includes(w.operator));
317
- });
318
- return filteredQuery;
319
- };
320
- // This is the core function for reading from the database, it parses and
321
- // validates where conditions, selects indexes, and allows the caller to
322
- // optionally paginate as needed. Every response is a pagination result.
323
- export const paginate = async (ctx, args) => {
324
- if (args.offset) {
325
- throw new Error(`offset not supported: ${JSON.stringify(args.offset)}`);
326
- }
327
- if (args.where?.some((w) => w.connector === "OR") && args.where?.length > 1) {
328
- throw new Error(`OR connector not supported with multiple where statements in paginate, split up the where statements before calling paginate: ${JSON.stringify(args.where)}`);
329
- }
330
- if (args.where?.some((w) => w.field === "id" && w.operator && !["eq", "in"].includes(w.operator))) {
331
- throw new Error(`id can only be used with eq or in operator: ${JSON.stringify(args.where)}`);
332
- }
333
- // If any where clause is "eq" (or missing operator) on a unique field,
334
- // we can only return a single document, so we get it and use any other
335
- // where clauses as static filters.
336
- const uniqueWhere = args.where?.find((w) => (!w.operator || w.operator === "eq") &&
337
- (isUniqueField(args.model, w.field) || w.field === "id"));
338
- if (uniqueWhere) {
339
- const { index } = findIndex({
340
- model: args.model,
341
- where: [uniqueWhere],
342
- }) || {};
343
- const doc = uniqueWhere.field === "id"
344
- ? await ctx.db.get(uniqueWhere.value)
345
- : await ctx.db
346
- .query(args.model)
347
- .withIndex(index?.indexDescriptor, (q) => q.eq(index?.fields[0], uniqueWhere.value))
348
- .unique();
349
- // Apply all other clauses as static filters to our 0 or 1 result.
350
- if (filterByWhere(doc, args.where, (w) => w !== uniqueWhere)) {
351
- return {
352
- page: [await selectFields(ctx, doc, args.select)].filter(Boolean),
353
- isDone: true,
354
- continueCursor: "",
355
- };
356
- }
357
- return {
358
- page: [],
359
- isDone: true,
360
- continueCursor: "",
361
- };
362
- }
363
- const paginationOpts = {
364
- ...args.paginationOpts,
365
- // If maximumRowsRead is not at least 1 higher than numItems, bad cursors
366
- // and incorrect paging will result (at least with convex-test).
367
- maximumRowsRead: Math.max((args.paginationOpts.numItems ?? 0) + 1, 200),
368
- };
369
- // Large queries using "in" clause will crash, but these are only currently
370
- // possible with the organization plugin listing all members with a high
371
- // limit. For cases like this we need to create proper convex queries in
372
- // the component as an alternative to using Better Auth api's.
373
- const inWhere = args.where?.find((w) => w.operator === "in");
374
- if (inWhere) {
375
- if (!Array.isArray(inWhere.value)) {
376
- throw new Error("in clause value must be an array");
377
- }
378
- // For ids, just use asyncMap + .get()
379
- if (inWhere.field === "id") {
380
- const docs = await asyncMap(inWhere.value, async (value) => {
381
- return ctx.db.get(value);
382
- });
383
- const filteredDocs = docs
384
- .flatMap((doc) => doc || [])
385
- .filter((doc) => filterByWhere(doc, args.where, (w) => w !== inWhere));
386
- return {
387
- page: filteredDocs.sort((a, b) => {
388
- if (args.sortBy?.field === "createdAt") {
389
- return args.sortBy.direction === "asc"
390
- ? a._creationTime - b._creationTime
391
- : b._creationTime - a._creationTime;
392
- }
393
- if (args.sortBy) {
394
- const aValue = a[args.sortBy.field];
395
- const bValue = b[args.sortBy.field];
396
- if (aValue === bValue) {
397
- return 0;
398
- }
399
- return args.sortBy.direction === "asc"
400
- ? aValue > bValue
401
- ? 1
402
- : -1
403
- : aValue > bValue
404
- ? -1
405
- : 1;
406
- }
407
- return 0;
408
- }),
409
- isDone: true,
410
- continueCursor: "",
411
- };
412
- }
413
- const streams = inWhere.value.map((value) => {
414
- return generateQuery(ctx, {
415
- ...args,
416
- where: args.where?.map((w) => {
417
- if (w === inWhere) {
418
- return { ...w, operator: "eq", value };
419
- }
420
- return w;
421
- }),
422
- });
423
- });
424
- const result = await mergedStream(streams, [
425
- args.sortBy?.field !== "createdAt" && args.sortBy?.field,
426
- "_creationTime",
427
- ].flatMap((f) => (f ? [f] : []))).paginate(paginationOpts);
428
- return {
429
- ...result,
430
- page: await asyncMap(result.page, (doc) => selectFields(ctx, doc, args.select)),
431
- };
432
- }
433
- const query = generateQuery(ctx, args);
434
- const result = await query.paginate(paginationOpts);
435
- return {
436
- ...result,
437
- page: await asyncMap(result.page, (doc) => selectFields(ctx, doc, args.select)),
438
- };
439
- };
440
- export const listOne = async (ctx, args) => {
441
- return (await paginate(ctx, {
442
- ...args,
443
- paginationOpts: {
444
- numItems: 1,
445
- cursor: null,
446
- },
447
- })).page[0];
448
- };
449
- export const create = mutation({
450
- args: {
451
- input: v.union(...Object.entries(schema.tables).map(([model, table]) => v.object({
452
- model: v.literal(model),
453
- data: v.object(table.validator.fields),
454
- select: v.optional(v.array(v.string())),
455
- }))),
456
- },
457
- handler: async (ctx, args) => {
458
- await checkUniqueFields(ctx, args.input.model, args.input.data);
459
- const id = await ctx.db.insert(args.input.model, args.input.data);
460
- const doc = await ctx.db.get(id);
461
- if (!doc) {
462
- throw new Error(`Failed to create ${args.input.model}`);
463
- }
464
- return selectFields(ctx, doc, args.input.select);
465
- },
466
- });
467
- export const findOne = query({
468
- args: adapterArgsValidator,
469
- handler: async (ctx, args) => {
470
- return listOne(ctx, args);
471
- },
472
- });
473
- export const findMany = query({
474
- args: {
475
- ...adapterArgsValidator.fields,
476
- paginationOpts: paginationOptsValidator,
477
- },
478
- handler: async (ctx, args) => {
479
- return await paginate(ctx, args);
480
- },
481
- });
482
- export const updateOne = mutation({
483
- args: {
484
- input: v.union(...Object.entries(schema.tables).map(([model, table]) => v.object({
485
- model: v.literal(model),
486
- where: v.optional(v.array(adapterWhereValidator)),
487
- update: v.object(partial(table.validator.fields)),
488
- }))),
489
- },
490
- handler: async (ctx, args) => {
491
- const doc = await listOne(ctx, args.input);
492
- if (!doc) {
493
- throw new Error(`Failed to update ${args.input.model}`);
494
- }
495
- await checkUniqueFields(ctx, args.input.model, args.input.update, doc);
496
- await ctx.db.patch(doc._id, args.input.update);
497
- const updatedDoc = await ctx.db.get(doc._id);
498
- if (!updatedDoc) {
499
- throw new Error(`Failed to update ${args.input.model}`);
500
- }
501
- return updatedDoc;
502
- },
503
- });
504
- export const updateMany = mutation({
505
- args: {
506
- input: v.union(...Object.entries(schema.tables).map(([model, table]) => v.object({
507
- ...adapterArgsValidator.fields,
508
- model: v.literal(model),
509
- where: v.optional(v.array(adapterWhereValidator)),
510
- update: v.object(partial(table.validator.fields)),
511
- paginationOpts: paginationOptsValidator,
512
- }))),
513
- },
514
- handler: async (ctx, args) => {
515
- const { page, ...result } = await paginate(ctx, args.input);
516
- if (args.input.update) {
517
- if (hasUniqueFields(args.input.model, args.input.update ?? {}) &&
518
- page.length > 1) {
519
- throw new Error(`Attempted to set unique fields in multiple documents in ${args.input.model} with the same value. Fields: ${Object.keys(args.input.update ?? {}).join(", ")}`);
520
- }
521
- await asyncMap(page, async (doc) => {
522
- await checkUniqueFields(ctx, args.input.model, args.input.update ?? {}, doc);
523
- await ctx.db.patch(doc._id, args.input.update);
524
- });
525
- }
526
- return {
527
- ...result,
528
- count: page.length,
529
- ids: page.map((doc) => doc._id),
530
- };
531
- },
532
- });
533
- export const deleteOne = mutation({
534
- args: adapterArgsValidator,
535
- handler: async (ctx, args) => {
536
- const doc = await listOne(ctx, args);
537
- if (!doc) {
538
- return;
539
- }
540
- await ctx.db.delete(doc._id);
541
- return doc;
542
- },
543
- });
544
- export const deleteMany = mutation({
545
- args: {
546
- ...adapterArgsValidator.fields,
547
- paginationOpts: paginationOptsValidator,
548
- },
549
- handler: async (ctx, args) => {
550
- const { page, ...result } = await paginate(ctx, args);
551
- await asyncMap(page, async (doc) => {
552
- await ctx.db.delete(doc._id);
553
- });
554
- return {
555
- ...result,
556
- count: page.length,
557
- ids: page.map((doc) => doc._id),
558
- };
559
- },
560
- });
561
- // Get the session via sessionId in jwt claims
562
- // TODO: this needs a refresh, subquery only necessary for actions
563
- export const getCurrentSession = query({
564
- args: {},
565
- handler: async (ctx) => {
566
- const identity = await ctx.auth.getUserIdentity();
567
- if (!identity) {
568
- return null;
569
- }
570
- return ctx.db.get(identity.sessionId);
571
- },
572
- });
573
- //# sourceMappingURL=adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../src/component/adapter.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import { GenericCtx } from "./_generated/server.js";
2
- import { RegisteredMutation, RegisteredQuery } from "convex/server";
3
- export declare const betterAuthComponent: any;
4
- export declare const createAdapter: (ctx: GenericCtx) => (options: import("better-auth").BetterAuthOptions) => import("better-auth").Adapter;
5
- export declare const deserialize: (data: any) => {
6
- [k: string]: unknown;
7
- };
8
- export declare const serialize: (data: any) => any;
9
- export declare const create: RegisteredMutation<"public", any, Promise<any>>;
10
- export declare const findOne: RegisteredQuery<"public", any, Promise<any>>;
11
- export declare const findMany: RegisteredQuery<"public", any, Promise<any>>;
12
- export declare const count: RegisteredQuery<"public", any, Promise<any>>;
13
- export declare const update: RegisteredMutation<"public", any, Promise<any>>;
14
- export declare const updateMany: RegisteredMutation<"public", any, Promise<any>>;
15
- declare const deleteMutation: RegisteredMutation<"public", any, Promise<any>>;
16
- export { deleteMutation as delete };
17
- export declare const deleteMany: RegisteredMutation<"public", any, Promise<any>>;
18
- //# sourceMappingURL=adapterTest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapterTest.d.ts","sourceRoot":"","sources":["../../../../src/component/adapterTest.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAmB,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAGL,kBAAkB,EAClB,eAAe,EAChB,MAAM,eAAe,CAAC;AAGvB,eAAO,MAAM,mBAAmB,EAK1B,GAAG,CAAC;AAEV,eAAO,MAAM,aAAa,GAAI,KAAK,UAAU,wFAKzC,CAAC;AAEL,eAAO,MAAM,WAAW,GAAI,MAAM,GAAG;;CASpC,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,MAAM,GAAG,QAUlC,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CASlE,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAMhE,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAMjE,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAK9D,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CASlE,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,kBAAkB,CACzC,QAAQ,EACR,GAAG,EACH,OAAO,CAAC,GAAG,CAAC,CAIZ,CAAC;AAEH,QAAA,MAAM,cAAc,EAAE,kBAAkB,CACtC,QAAQ,EACR,GAAG,EACH,OAAO,CAAC,GAAG,CAAC,CAIZ,CAAC;AACH,OAAO,EAAE,cAAc,IAAI,MAAM,EAAE,CAAC;AAEpC,eAAO,MAAM,UAAU,EAAE,kBAAkB,CACzC,QAAQ,EACR,GAAG,EACH,OAAO,CAAC,GAAG,CAAC,CAIZ,CAAC"}