@convex-dev/better-auth 0.8.0-alpha.8 → 0.8.0

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 (291) hide show
  1. package/dist/commonjs/auth.d.ts +4 -0
  2. package/dist/commonjs/auth.d.ts.map +1 -0
  3. package/dist/commonjs/auth.js +44 -0
  4. package/dist/commonjs/auth.js.map +1 -0
  5. package/dist/commonjs/client/adapter.d.ts +8 -10
  6. package/dist/commonjs/client/adapter.d.ts.map +1 -1
  7. package/dist/commonjs/client/adapter.js +48 -32
  8. package/dist/commonjs/client/adapter.js.map +1 -1
  9. package/dist/commonjs/client/adapterUtils.d.ts +66 -0
  10. package/dist/commonjs/client/adapterUtils.d.ts.map +1 -0
  11. package/dist/commonjs/client/adapterUtils.js +429 -0
  12. package/dist/commonjs/client/adapterUtils.js.map +1 -0
  13. package/dist/commonjs/client/createSchema.d.ts +24 -0
  14. package/dist/commonjs/client/createSchema.d.ts.map +1 -0
  15. package/dist/commonjs/client/createSchema.js +101 -0
  16. package/dist/commonjs/client/createSchema.js.map +1 -0
  17. package/dist/commonjs/client/index.d.ts +449 -599
  18. package/dist/commonjs/client/index.d.ts.map +1 -1
  19. package/dist/commonjs/client/index.js +339 -212
  20. package/dist/commonjs/client/index.js.map +1 -1
  21. package/dist/commonjs/component/adapter.d.ts +128 -0
  22. package/dist/commonjs/component/adapter.d.ts.map +1 -0
  23. package/dist/commonjs/component/adapter.js +5 -0
  24. package/dist/commonjs/component/adapter.js.map +1 -0
  25. package/dist/commonjs/component/adapterTest.d.ts +3 -5
  26. package/dist/commonjs/component/adapterTest.d.ts.map +1 -1
  27. package/dist/commonjs/component/adapterTest.js +3 -17
  28. package/dist/commonjs/component/adapterTest.js.map +1 -1
  29. package/dist/commonjs/component/lib.d.ts +4 -2
  30. package/dist/commonjs/component/lib.d.ts.map +1 -1
  31. package/dist/commonjs/component/schema.d.ts +464 -175
  32. package/dist/commonjs/component/schema.d.ts.map +1 -1
  33. package/dist/commonjs/component/schema.js +74 -158
  34. package/dist/commonjs/component/schema.js.map +1 -1
  35. package/dist/commonjs/component/util.d.ts +31 -11
  36. package/dist/commonjs/component/util.d.ts.map +1 -1
  37. package/dist/commonjs/nextjs/index.d.ts +1 -2
  38. package/dist/commonjs/nextjs/index.d.ts.map +1 -1
  39. package/dist/commonjs/nextjs/index.js +3 -2
  40. package/dist/commonjs/nextjs/index.js.map +1 -1
  41. package/dist/commonjs/plugins/convex/client.d.ts +2 -5
  42. package/dist/commonjs/plugins/convex/client.d.ts.map +1 -1
  43. package/dist/commonjs/plugins/convex/client.js.map +1 -1
  44. package/dist/commonjs/plugins/convex/index.d.ts +13 -144
  45. package/dist/commonjs/plugins/convex/index.d.ts.map +1 -1
  46. package/dist/commonjs/plugins/convex/index.js +11 -125
  47. package/dist/commonjs/plugins/convex/index.js.map +1 -1
  48. package/dist/commonjs/plugins/cross-domain/index.js +2 -2
  49. package/dist/commonjs/plugins/cross-domain/index.js.map +1 -1
  50. package/dist/commonjs/react-start/index.d.ts +17 -36
  51. package/dist/commonjs/react-start/index.d.ts.map +1 -1
  52. package/dist/commonjs/react-start/index.js +43 -31
  53. package/dist/commonjs/react-start/index.js.map +1 -1
  54. package/dist/commonjs/src/auth.d.ts +3085 -0
  55. package/dist/commonjs/src/auth.d.ts.map +1 -0
  56. package/dist/commonjs/src/auth.js +72 -0
  57. package/dist/commonjs/src/auth.js.map +1 -0
  58. package/dist/commonjs/src/client/adapter.d.ts +18 -0
  59. package/dist/commonjs/src/client/adapter.d.ts.map +1 -0
  60. package/dist/commonjs/src/client/adapter.js +211 -0
  61. package/dist/commonjs/src/client/adapter.js.map +1 -0
  62. package/dist/commonjs/src/client/createSchema.d.ts +25 -0
  63. package/dist/commonjs/src/client/createSchema.d.ts.map +1 -0
  64. package/dist/commonjs/src/client/createSchema.js +103 -0
  65. package/dist/commonjs/src/client/createSchema.js.map +1 -0
  66. package/dist/commonjs/src/client/index.d.ts +3310 -0
  67. package/dist/commonjs/src/client/index.d.ts.map +1 -0
  68. package/dist/commonjs/src/client/index.js +377 -0
  69. package/dist/commonjs/src/client/index.js.map +1 -0
  70. package/dist/commonjs/src/client/plugins/index.d.ts +3 -0
  71. package/dist/commonjs/src/client/plugins/index.d.ts.map +1 -0
  72. package/dist/commonjs/src/client/plugins/index.js +3 -0
  73. package/dist/commonjs/src/client/plugins/index.js.map +1 -0
  74. package/dist/commonjs/src/component/_generated/api.d.ts +12 -0
  75. package/dist/commonjs/src/component/_generated/api.d.ts.map +1 -0
  76. package/dist/commonjs/src/component/_generated/api.js +22 -0
  77. package/dist/commonjs/src/component/_generated/api.js.map +1 -0
  78. package/dist/commonjs/src/component/_generated/server.d.ts +64 -0
  79. package/dist/commonjs/src/component/_generated/server.d.ts.map +1 -0
  80. package/dist/commonjs/src/component/_generated/server.js +74 -0
  81. package/dist/commonjs/src/component/_generated/server.js.map +1 -0
  82. package/dist/commonjs/src/component/adapter.d.ts +355 -0
  83. package/dist/commonjs/src/component/adapter.d.ts.map +1 -0
  84. package/dist/commonjs/src/component/adapter.js +573 -0
  85. package/dist/commonjs/src/component/adapter.js.map +1 -0
  86. package/dist/commonjs/src/component/adapterTest.d.ts +18 -0
  87. package/dist/commonjs/src/component/adapterTest.d.ts.map +1 -0
  88. package/dist/commonjs/src/component/adapterTest.js +75 -0
  89. package/dist/commonjs/src/component/adapterTest.js.map +1 -0
  90. package/dist/commonjs/src/component/convex.config.d.ts +3 -0
  91. package/dist/commonjs/src/component/convex.config.d.ts.map +1 -0
  92. package/dist/commonjs/src/component/convex.config.js +4 -0
  93. package/dist/commonjs/src/component/convex.config.js.map +1 -0
  94. package/dist/commonjs/src/component/schema.d.ts +562 -0
  95. package/dist/commonjs/src/component/schema.d.ts.map +1 -0
  96. package/dist/commonjs/src/component/schema.js +217 -0
  97. package/dist/commonjs/src/component/schema.js.map +1 -0
  98. package/dist/commonjs/src/nextjs/index.d.ts +10 -0
  99. package/dist/commonjs/src/nextjs/index.d.ts.map +1 -0
  100. package/dist/commonjs/src/nextjs/index.js +43 -0
  101. package/dist/commonjs/src/nextjs/index.js.map +1 -0
  102. package/dist/commonjs/src/plugins/convex/client.d.ts +9 -0
  103. package/dist/commonjs/src/plugins/convex/client.d.ts.map +1 -0
  104. package/dist/commonjs/src/plugins/convex/client.js +7 -0
  105. package/dist/commonjs/src/plugins/convex/client.js.map +1 -0
  106. package/dist/commonjs/src/plugins/convex/index.d.ts +415 -0
  107. package/dist/commonjs/src/plugins/convex/index.d.ts.map +1 -0
  108. package/dist/commonjs/src/plugins/convex/index.js +354 -0
  109. package/dist/commonjs/src/plugins/convex/index.js.map +1 -0
  110. package/dist/commonjs/src/plugins/cross-domain/client.d.ts +132 -0
  111. package/dist/commonjs/src/plugins/cross-domain/client.d.ts.map +1 -0
  112. package/dist/commonjs/src/plugins/cross-domain/client.js +176 -0
  113. package/dist/commonjs/src/plugins/cross-domain/client.js.map +1 -0
  114. package/dist/commonjs/src/plugins/cross-domain/index.d.ts +83 -0
  115. package/dist/commonjs/src/plugins/cross-domain/index.d.ts.map +1 -0
  116. package/dist/commonjs/src/plugins/cross-domain/index.js +153 -0
  117. package/dist/commonjs/src/plugins/cross-domain/index.js.map +1 -0
  118. package/dist/commonjs/src/plugins/index.d.ts +3 -0
  119. package/dist/commonjs/src/plugins/index.d.ts.map +1 -0
  120. package/dist/commonjs/src/plugins/index.js +3 -0
  121. package/dist/commonjs/src/plugins/index.js.map +1 -0
  122. package/dist/commonjs/src/react/client.d.ts +31 -0
  123. package/dist/commonjs/src/react/client.d.ts.map +1 -0
  124. package/dist/commonjs/src/react/client.js +96 -0
  125. package/dist/commonjs/src/react/client.js.map +1 -0
  126. package/dist/commonjs/src/react/index.d.ts +9 -0
  127. package/dist/commonjs/src/react/index.d.ts.map +1 -0
  128. package/dist/commonjs/src/react/index.js +15 -0
  129. package/dist/commonjs/src/react/index.js.map +1 -0
  130. package/dist/commonjs/src/react-start/index.d.ts +45 -0
  131. package/dist/commonjs/src/react-start/index.d.ts.map +1 -0
  132. package/dist/commonjs/src/react-start/index.js +60 -0
  133. package/dist/commonjs/src/react-start/index.js.map +1 -0
  134. package/dist/commonjs/src/utils/index.d.ts +9 -0
  135. package/dist/commonjs/src/utils/index.d.ts.map +1 -0
  136. package/dist/commonjs/src/utils/index.js +35 -0
  137. package/dist/commonjs/src/utils/index.js.map +1 -0
  138. package/dist/esm/auth.d.ts +4 -0
  139. package/dist/esm/auth.d.ts.map +1 -0
  140. package/dist/esm/auth.js +44 -0
  141. package/dist/esm/auth.js.map +1 -0
  142. package/dist/esm/client/adapter.d.ts +8 -10
  143. package/dist/esm/client/adapter.d.ts.map +1 -1
  144. package/dist/esm/client/adapter.js +48 -32
  145. package/dist/esm/client/adapter.js.map +1 -1
  146. package/dist/esm/client/adapterUtils.d.ts +66 -0
  147. package/dist/esm/client/adapterUtils.d.ts.map +1 -0
  148. package/dist/esm/client/adapterUtils.js +429 -0
  149. package/dist/esm/client/adapterUtils.js.map +1 -0
  150. package/dist/esm/client/createSchema.d.ts +24 -0
  151. package/dist/esm/client/createSchema.d.ts.map +1 -0
  152. package/dist/esm/client/createSchema.js +101 -0
  153. package/dist/esm/client/createSchema.js.map +1 -0
  154. package/dist/esm/client/index.d.ts +449 -599
  155. package/dist/esm/client/index.d.ts.map +1 -1
  156. package/dist/esm/client/index.js +339 -212
  157. package/dist/esm/client/index.js.map +1 -1
  158. package/dist/esm/component/adapter.d.ts +128 -0
  159. package/dist/esm/component/adapter.d.ts.map +1 -0
  160. package/dist/esm/component/adapter.js +5 -0
  161. package/dist/esm/component/adapter.js.map +1 -0
  162. package/dist/esm/component/adapterTest.d.ts +3 -5
  163. package/dist/esm/component/adapterTest.d.ts.map +1 -1
  164. package/dist/esm/component/adapterTest.js +3 -17
  165. package/dist/esm/component/adapterTest.js.map +1 -1
  166. package/dist/esm/component/lib.d.ts +4 -2
  167. package/dist/esm/component/lib.d.ts.map +1 -1
  168. package/dist/esm/component/schema.d.ts +464 -175
  169. package/dist/esm/component/schema.d.ts.map +1 -1
  170. package/dist/esm/component/schema.js +74 -158
  171. package/dist/esm/component/schema.js.map +1 -1
  172. package/dist/esm/component/util.d.ts +31 -11
  173. package/dist/esm/component/util.d.ts.map +1 -1
  174. package/dist/esm/nextjs/index.d.ts +1 -2
  175. package/dist/esm/nextjs/index.d.ts.map +1 -1
  176. package/dist/esm/nextjs/index.js +3 -2
  177. package/dist/esm/nextjs/index.js.map +1 -1
  178. package/dist/esm/plugins/convex/client.d.ts +2 -5
  179. package/dist/esm/plugins/convex/client.d.ts.map +1 -1
  180. package/dist/esm/plugins/convex/client.js.map +1 -1
  181. package/dist/esm/plugins/convex/index.d.ts +13 -144
  182. package/dist/esm/plugins/convex/index.d.ts.map +1 -1
  183. package/dist/esm/plugins/convex/index.js +11 -125
  184. package/dist/esm/plugins/convex/index.js.map +1 -1
  185. package/dist/esm/plugins/cross-domain/index.js +2 -2
  186. package/dist/esm/plugins/cross-domain/index.js.map +1 -1
  187. package/dist/esm/react-start/index.d.ts +17 -36
  188. package/dist/esm/react-start/index.d.ts.map +1 -1
  189. package/dist/esm/react-start/index.js +43 -31
  190. package/dist/esm/react-start/index.js.map +1 -1
  191. package/dist/esm/src/auth.d.ts +3085 -0
  192. package/dist/esm/src/auth.d.ts.map +1 -0
  193. package/dist/esm/src/auth.js +72 -0
  194. package/dist/esm/src/auth.js.map +1 -0
  195. package/dist/esm/src/client/adapter.d.ts +18 -0
  196. package/dist/esm/src/client/adapter.d.ts.map +1 -0
  197. package/dist/esm/src/client/adapter.js +211 -0
  198. package/dist/esm/src/client/adapter.js.map +1 -0
  199. package/dist/esm/src/client/createSchema.d.ts +25 -0
  200. package/dist/esm/src/client/createSchema.d.ts.map +1 -0
  201. package/dist/esm/src/client/createSchema.js +103 -0
  202. package/dist/esm/src/client/createSchema.js.map +1 -0
  203. package/dist/esm/src/client/index.d.ts +3310 -0
  204. package/dist/esm/src/client/index.d.ts.map +1 -0
  205. package/dist/esm/src/client/index.js +377 -0
  206. package/dist/esm/src/client/index.js.map +1 -0
  207. package/dist/esm/src/client/plugins/index.d.ts +3 -0
  208. package/dist/esm/src/client/plugins/index.d.ts.map +1 -0
  209. package/dist/esm/src/client/plugins/index.js +3 -0
  210. package/dist/esm/src/client/plugins/index.js.map +1 -0
  211. package/dist/esm/src/component/_generated/api.d.ts +12 -0
  212. package/dist/esm/src/component/_generated/api.d.ts.map +1 -0
  213. package/dist/esm/src/component/_generated/api.js +22 -0
  214. package/dist/esm/src/component/_generated/api.js.map +1 -0
  215. package/dist/esm/src/component/_generated/server.d.ts +64 -0
  216. package/dist/esm/src/component/_generated/server.d.ts.map +1 -0
  217. package/dist/esm/src/component/_generated/server.js +74 -0
  218. package/dist/esm/src/component/_generated/server.js.map +1 -0
  219. package/dist/esm/src/component/adapter.d.ts +355 -0
  220. package/dist/esm/src/component/adapter.d.ts.map +1 -0
  221. package/dist/esm/src/component/adapter.js +573 -0
  222. package/dist/esm/src/component/adapter.js.map +1 -0
  223. package/dist/esm/src/component/adapterTest.d.ts +18 -0
  224. package/dist/esm/src/component/adapterTest.d.ts.map +1 -0
  225. package/dist/esm/src/component/adapterTest.js +75 -0
  226. package/dist/esm/src/component/adapterTest.js.map +1 -0
  227. package/dist/esm/src/component/convex.config.d.ts +3 -0
  228. package/dist/esm/src/component/convex.config.d.ts.map +1 -0
  229. package/dist/esm/src/component/convex.config.js +4 -0
  230. package/dist/esm/src/component/convex.config.js.map +1 -0
  231. package/dist/esm/src/component/schema.d.ts +562 -0
  232. package/dist/esm/src/component/schema.d.ts.map +1 -0
  233. package/dist/esm/src/component/schema.js +217 -0
  234. package/dist/esm/src/component/schema.js.map +1 -0
  235. package/dist/esm/src/nextjs/index.d.ts +10 -0
  236. package/dist/esm/src/nextjs/index.d.ts.map +1 -0
  237. package/dist/esm/src/nextjs/index.js +43 -0
  238. package/dist/esm/src/nextjs/index.js.map +1 -0
  239. package/dist/esm/src/plugins/convex/client.d.ts +9 -0
  240. package/dist/esm/src/plugins/convex/client.d.ts.map +1 -0
  241. package/dist/esm/src/plugins/convex/client.js +7 -0
  242. package/dist/esm/src/plugins/convex/client.js.map +1 -0
  243. package/dist/esm/src/plugins/convex/index.d.ts +415 -0
  244. package/dist/esm/src/plugins/convex/index.d.ts.map +1 -0
  245. package/dist/esm/src/plugins/convex/index.js +354 -0
  246. package/dist/esm/src/plugins/convex/index.js.map +1 -0
  247. package/dist/esm/src/plugins/cross-domain/client.d.ts +132 -0
  248. package/dist/esm/src/plugins/cross-domain/client.d.ts.map +1 -0
  249. package/dist/esm/src/plugins/cross-domain/client.js +176 -0
  250. package/dist/esm/src/plugins/cross-domain/client.js.map +1 -0
  251. package/dist/esm/src/plugins/cross-domain/index.d.ts +83 -0
  252. package/dist/esm/src/plugins/cross-domain/index.d.ts.map +1 -0
  253. package/dist/esm/src/plugins/cross-domain/index.js +153 -0
  254. package/dist/esm/src/plugins/cross-domain/index.js.map +1 -0
  255. package/dist/esm/src/plugins/index.d.ts +3 -0
  256. package/dist/esm/src/plugins/index.d.ts.map +1 -0
  257. package/dist/esm/src/plugins/index.js +3 -0
  258. package/dist/esm/src/plugins/index.js.map +1 -0
  259. package/dist/esm/src/react/client.d.ts +31 -0
  260. package/dist/esm/src/react/client.d.ts.map +1 -0
  261. package/dist/esm/src/react/client.js +96 -0
  262. package/dist/esm/src/react/client.js.map +1 -0
  263. package/dist/esm/src/react/index.d.ts +9 -0
  264. package/dist/esm/src/react/index.d.ts.map +1 -0
  265. package/dist/esm/src/react/index.js +15 -0
  266. package/dist/esm/src/react/index.js.map +1 -0
  267. package/dist/esm/src/react-start/index.d.ts +45 -0
  268. package/dist/esm/src/react-start/index.d.ts.map +1 -0
  269. package/dist/esm/src/react-start/index.js +60 -0
  270. package/dist/esm/src/react-start/index.js.map +1 -0
  271. package/dist/esm/src/utils/index.d.ts +9 -0
  272. package/dist/esm/src/utils/index.d.ts.map +1 -0
  273. package/dist/esm/src/utils/index.js +35 -0
  274. package/dist/esm/src/utils/index.js.map +1 -0
  275. package/package.json +30 -7
  276. package/src/auth.ts +57 -0
  277. package/src/client/adapter.test.ts +15 -0
  278. package/src/client/adapter.ts +83 -58
  279. package/src/{component/lib.ts → client/adapterUtils.ts} +106 -256
  280. package/src/client/createSchema.ts +149 -0
  281. package/src/client/index.ts +561 -317
  282. package/src/component/_generated/api.d.ts +1744 -787
  283. package/src/component/adapter.ts +13 -0
  284. package/src/component/adapterTest.ts +8 -34
  285. package/src/component/schema.ts +81 -172
  286. package/src/nextjs/index.ts +5 -5
  287. package/src/plugins/convex/client.ts +2 -3
  288. package/src/plugins/convex/index.ts +16 -147
  289. package/src/plugins/cross-domain/index.ts +2 -2
  290. package/src/react-start/index.ts +76 -44
  291. package/src/component/util.ts +0 -4
@@ -0,0 +1,573 @@
1
+ import { mutation, query } from "./_generated/server";
2
+ import { asyncMap } from "convex-helpers";
3
+ import { v } from "convex/values";
4
+ import schema, { specialFields } from "./schema";
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../src/component/adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { GenericCtx } from "./_generated/server";
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
@@ -0,0 +1 @@
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"}