@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,13 @@
1
+ import { createApi } from "../client";
2
+ import { auth } from "../auth";
3
+ import schema from "./schema";
4
+
5
+ export const {
6
+ create,
7
+ findOne,
8
+ findMany,
9
+ updateOne,
10
+ updateMany,
11
+ deleteOne,
12
+ deleteMany,
13
+ } = createApi(schema, () => auth);
@@ -1,49 +1,23 @@
1
+ import { convexAdapter, GenericCtx } from "../client";
2
+ import { api } from "./_generated/api";
3
+ import { mutation, query } from "./_generated/server";
1
4
  import {
2
- convexAdapter,
3
- AuthFunctions,
4
- BetterAuth,
5
- PublicAuthFunctions,
6
- } from "../client";
7
- import { api, internal } from "./_generated/api";
8
- import { GenericCtx, mutation, query } from "./_generated/server";
9
- import {
5
+ GenericDataModel,
10
6
  GenericMutationCtx,
11
7
  GenericQueryCtx,
12
8
  RegisteredMutation,
13
9
  RegisteredQuery,
14
10
  } from "convex/server";
15
11
 
16
- // @ts-expect-error - this is a test
17
- const authFunctions: AuthFunctions = internal.adapterTest as any;
18
-
19
- const publicAuthFunctions: PublicAuthFunctions = api.adapterTest as any;
20
-
21
- export const betterAuthComponent = new BetterAuth(api as any, {
22
- authFunctions,
23
- publicAuthFunctions,
24
- verbose: false,
25
- }) as any;
26
-
27
- export const createAdapter = (ctx: GenericCtx) =>
28
- convexAdapter(ctx, betterAuthComponent, {
12
+ export const createAdapter = <DataModel extends GenericDataModel>(
13
+ ctx: GenericCtx<DataModel>
14
+ ) =>
15
+ convexAdapter(ctx as any, api as any, {
29
16
  debugLogs: {
30
17
  isRunningAdapterTests: true,
31
18
  },
32
19
  });
33
20
 
34
- export const {
35
- createUser,
36
- deleteUser,
37
- updateUser,
38
- createSession,
39
- isAuthenticated,
40
- } = betterAuthComponent.createAuthFunctions({
41
- onCreateUser: async () => {
42
- // return a random string as a userId
43
- return Math.random().toString(36).substring(2, 15);
44
- },
45
- });
46
-
47
21
  export const deserialize = (data: any) => {
48
22
  const dateStringRegex =
49
23
  /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/;
@@ -1,11 +1,11 @@
1
- // This file is auto-generated from auth.ts by generate-schema.ts. Do not edit this file manually.
1
+ // This file is auto-generated. Do not edit this file manually.
2
2
  // To regenerate the schema, run:
3
- // npx tsx generate-schema.ts
3
+ // `npx @better-auth/cli generate --output src/component/schema.ts -y`
4
4
 
5
5
  import { defineSchema, defineTable } from "convex/server";
6
6
  import { v } from "convex/values";
7
7
 
8
- const schema = defineSchema({
8
+ export const tables = {
9
9
  user: defineTable({
10
10
  name: v.string(),
11
11
  email: v.string(),
@@ -19,20 +19,13 @@ const schema = defineSchema({
19
19
  displayUsername: v.optional(v.union(v.null(), v.string())),
20
20
  phoneNumber: v.optional(v.union(v.null(), v.string())),
21
21
  phoneNumberVerified: v.optional(v.union(v.null(), v.boolean())),
22
- role: v.optional(v.union(v.null(), v.string())),
23
- banned: v.optional(v.union(v.null(), v.boolean())),
24
- banReason: v.optional(v.union(v.null(), v.string())),
25
- banExpires: v.optional(v.union(v.null(), v.number())),
26
- stripeCustomerId: v.optional(v.union(v.null(), v.string())),
27
22
  userId: v.optional(v.union(v.null(), v.string())),
28
- teamId: v.optional(v.union(v.null(), v.string())),
29
23
  })
30
- .index("email_name", ["email","name"])
24
+ .index("email_name", ["email", "name"])
31
25
  .index("name", ["name"])
32
26
  .index("userId", ["userId"])
33
27
  .index("username", ["username"])
34
28
  .index("phoneNumber", ["phoneNumber"]),
35
-
36
29
  session: defineTable({
37
30
  expiresAt: v.number(),
38
31
  token: v.string(),
@@ -41,15 +34,11 @@ const schema = defineSchema({
41
34
  ipAddress: v.optional(v.union(v.null(), v.string())),
42
35
  userAgent: v.optional(v.union(v.null(), v.string())),
43
36
  userId: v.string(),
44
- impersonatedBy: v.optional(v.union(v.null(), v.string())),
45
- activeOrganizationId: v.optional(v.union(v.null(), v.string())),
46
- activeTeamId: v.optional(v.union(v.null(), v.string())),
47
37
  })
48
38
  .index("expiresAt", ["expiresAt"])
49
- .index("expiresAt_userId", ["expiresAt","userId"])
39
+ .index("expiresAt_userId", ["expiresAt", "userId"])
50
40
  .index("token", ["token"])
51
41
  .index("userId", ["userId"]),
52
-
53
42
  account: defineTable({
54
43
  accountId: v.string(),
55
44
  providerId: v.string(),
@@ -65,27 +54,23 @@ const schema = defineSchema({
65
54
  updatedAt: v.number(),
66
55
  })
67
56
  .index("accountId", ["accountId"])
68
- .index("accountId_providerId", ["accountId","providerId"])
69
- .index("providerId_userId", ["providerId","userId"])
57
+ .index("accountId_providerId", ["accountId", "providerId"])
58
+ .index("providerId_userId", ["providerId", "userId"])
70
59
  .index("userId", ["userId"]),
71
-
72
60
  verification: defineTable({
73
61
  identifier: v.string(),
74
62
  value: v.string(),
75
63
  expiresAt: v.number(),
76
- createdAt: v.optional(v.union(v.null(), v.number())),
77
- updatedAt: v.optional(v.union(v.null(), v.number())),
64
+ createdAt: v.number(),
65
+ updatedAt: v.number(),
78
66
  })
79
67
  .index("expiresAt", ["expiresAt"])
80
68
  .index("identifier", ["identifier"]),
81
-
82
69
  twoFactor: defineTable({
83
70
  secret: v.string(),
84
71
  backupCodes: v.string(),
85
72
  userId: v.string(),
86
- })
87
- .index("userId", ["userId"]),
88
-
73
+ }).index("userId", ["userId"]),
89
74
  passkey: defineTable({
90
75
  name: v.optional(v.union(v.null(), v.string())),
91
76
  publicKey: v.string(),
@@ -100,32 +85,6 @@ const schema = defineSchema({
100
85
  })
101
86
  .index("credentialID", ["credentialID"])
102
87
  .index("userId", ["userId"]),
103
-
104
- apikey: defineTable({
105
- name: v.optional(v.union(v.null(), v.string())),
106
- start: v.optional(v.union(v.null(), v.string())),
107
- prefix: v.optional(v.union(v.null(), v.string())),
108
- key: v.string(),
109
- userId: v.string(),
110
- refillInterval: v.optional(v.union(v.null(), v.number())),
111
- refillAmount: v.optional(v.union(v.null(), v.number())),
112
- lastRefillAt: v.optional(v.union(v.null(), v.number())),
113
- enabled: v.optional(v.union(v.null(), v.boolean())),
114
- rateLimitEnabled: v.optional(v.union(v.null(), v.boolean())),
115
- rateLimitTimeWindow: v.optional(v.union(v.null(), v.number())),
116
- rateLimitMax: v.optional(v.union(v.null(), v.number())),
117
- requestCount: v.optional(v.union(v.null(), v.number())),
118
- remaining: v.optional(v.union(v.null(), v.number())),
119
- lastRequest: v.optional(v.union(v.null(), v.number())),
120
- expiresAt: v.optional(v.union(v.null(), v.number())),
121
- createdAt: v.number(),
122
- updatedAt: v.number(),
123
- permissions: v.optional(v.union(v.null(), v.string())),
124
- metadata: v.optional(v.union(v.null(), v.string())),
125
- })
126
- .index("key", ["key"])
127
- .index("userId", ["userId"]),
128
-
129
88
  oauthApplication: defineTable({
130
89
  name: v.optional(v.union(v.null(), v.string())),
131
90
  icon: v.optional(v.union(v.null(), v.string())),
@@ -139,7 +98,8 @@ const schema = defineSchema({
139
98
  createdAt: v.optional(v.union(v.null(), v.number())),
140
99
  updatedAt: v.optional(v.union(v.null(), v.number())),
141
100
  })
142
- .index("clientId", ["clientId"]),
101
+ .index("clientId", ["clientId"])
102
+ .index("userId", ["userId"]),
143
103
 
144
104
  oauthAccessToken: defineTable({
145
105
  accessToken: v.optional(v.union(v.null(), v.string())),
@@ -153,7 +113,9 @@ const schema = defineSchema({
153
113
  updatedAt: v.optional(v.union(v.null(), v.number())),
154
114
  })
155
115
  .index("accessToken", ["accessToken"])
156
- .index("refreshToken", ["refreshToken"]),
116
+ .index("refreshToken", ["refreshToken"])
117
+ .index("clientId", ["clientId"])
118
+ .index("userId", ["userId"]),
157
119
 
158
120
  oauthConsent: defineTable({
159
121
  clientId: v.optional(v.union(v.null(), v.string())),
@@ -163,15 +125,15 @@ const schema = defineSchema({
163
125
  updatedAt: v.optional(v.union(v.null(), v.number())),
164
126
  consentGiven: v.optional(v.union(v.null(), v.boolean())),
165
127
  })
166
- .index("clientId_userId", ["clientId","userId"]),
128
+ .index("clientId_userId", ["clientId", "userId"])
129
+ .index("userId", ["userId"]),
167
130
 
168
131
  team: defineTable({
169
132
  name: v.string(),
170
133
  organizationId: v.string(),
171
134
  createdAt: v.number(),
172
135
  updatedAt: v.optional(v.union(v.null(), v.number())),
173
- })
174
- .index("organizationId", ["organizationId"]),
136
+ }).index("organizationId", ["organizationId"]),
175
137
 
176
138
  teamMember: defineTable({
177
139
  teamId: v.string(),
@@ -197,7 +159,7 @@ const schema = defineSchema({
197
159
  role: v.string(),
198
160
  createdAt: v.number(),
199
161
  })
200
- .index("organizationId_userId", ["organizationId","userId"])
162
+ .index("organizationId_userId", ["organizationId", "userId"])
201
163
  .index("userId", ["userId"])
202
164
  .index("role", ["role"]),
203
165
 
@@ -210,8 +172,8 @@ const schema = defineSchema({
210
172
  expiresAt: v.number(),
211
173
  inviterId: v.string(),
212
174
  })
213
- .index("email_organizationId_status", ["email","organizationId","status"])
214
- .index("organizationId_status", ["organizationId","status"])
175
+ .index("email_organizationId_status", ["email", "organizationId", "status"])
176
+ .index("organizationId_status", ["organizationId", "status"])
215
177
  .index("role", ["role"])
216
178
  .index("teamId", ["teamId"])
217
179
  .index("status", ["status"])
@@ -245,6 +207,8 @@ const schema = defineSchema({
245
207
  status: v.optional(v.union(v.null(), v.string())),
246
208
  periodStart: v.optional(v.union(v.null(), v.number())),
247
209
  periodEnd: v.optional(v.union(v.null(), v.number())),
210
+ trialStart: v.optional(v.union(v.null(), v.number())),
211
+ trialEnd: v.optional(v.union(v.null(), v.number())),
248
212
  cancelAtPeriodEnd: v.optional(v.union(v.null(), v.boolean())),
249
213
  seats: v.optional(v.union(v.null(), v.number())),
250
214
  })
@@ -258,187 +222,132 @@ const schema = defineSchema({
258
222
  chainId: v.number(),
259
223
  isPrimary: v.optional(v.union(v.null(), v.boolean())),
260
224
  createdAt: v.number(),
261
- })
262
- .index("userId", ["userId"]),
225
+ }).index("userId", ["userId"]),
263
226
 
264
227
  rateLimit: defineTable({
265
228
  key: v.optional(v.union(v.null(), v.string())),
266
229
  count: v.optional(v.union(v.null(), v.number())),
267
230
  lastRequest: v.optional(v.union(v.null(), v.number())),
268
- })
269
- .index("key", ["key"]),
231
+ }).index("key", ["key"]),
232
+ ratelimit: defineTable({
233
+ key: v.string(),
234
+ count: v.number(),
235
+ lastRequest: v.number(),
236
+ }).index("key", ["key"]),
237
+ };
270
238
 
271
- });
239
+ const schema = defineSchema(tables);
272
240
 
273
241
  export default schema;
274
242
 
275
243
  export const specialFields = {
276
244
  user: {
277
245
  name: {
278
- sortable: true
246
+ sortable: true,
279
247
  },
280
248
  email: {
281
249
  sortable: true,
282
- unique: true
250
+ unique: true,
283
251
  },
284
252
  username: {
285
253
  sortable: true,
286
- unique: true
254
+ unique: true,
287
255
  },
288
256
  phoneNumber: {
289
257
  sortable: true,
290
- unique: true
291
- }
258
+ unique: true,
259
+ },
292
260
  },
293
261
  session: {
294
262
  token: {
295
- unique: true
263
+ unique: true,
296
264
  },
297
265
  userId: {
298
266
  references: {
299
267
  model: "user",
300
268
  field: "id",
301
- onDelete: "cascade"
302
- }
303
- }
269
+ onDelete: "cascade",
270
+ },
271
+ },
304
272
  },
305
273
  account: {
306
274
  userId: {
307
275
  references: {
308
276
  model: "user",
309
277
  field: "id",
310
- onDelete: "cascade"
311
- }
312
- }
278
+ onDelete: "cascade",
279
+ },
280
+ },
313
281
  },
314
282
  twoFactor: {
315
283
  userId: {
316
284
  references: {
317
285
  model: "user",
318
- field: "id"
319
- }
320
- }
286
+ field: "id",
287
+ },
288
+ },
321
289
  },
322
290
  passkey: {
323
291
  userId: {
324
292
  references: {
325
293
  model: "user",
326
- field: "id"
327
- }
328
- }
294
+ field: "id",
295
+ },
296
+ },
329
297
  },
330
- apikey: {
298
+ oauthApplication: {
299
+ clientId: {
300
+ unique: true,
301
+ },
331
302
  userId: {
332
303
  references: {
333
304
  model: "user",
334
- field: "id"
335
- }
336
- }
337
- },
338
- oauthApplication: {
339
- clientId: {
340
- unique: true
341
- }
305
+ field: "id",
306
+ onDelete: "cascade",
307
+ },
308
+ },
342
309
  },
343
310
  oauthAccessToken: {
344
311
  accessToken: {
345
- unique: true
312
+ unique: true,
346
313
  },
347
314
  refreshToken: {
348
- unique: true
349
- }
350
- },
351
- team: {
352
- organizationId: {
353
- references: {
354
- model: "organization",
355
- field: "id"
356
- }
357
- }
358
- },
359
- teamMember: {
360
- teamId: {
315
+ unique: true,
316
+ },
317
+ clientId: {
361
318
  references: {
362
- model: "team",
363
- field: "id"
364
- }
319
+ model: "oauthApplication",
320
+ field: "clientId",
321
+ onDelete: "cascade",
322
+ },
365
323
  },
366
324
  userId: {
367
325
  references: {
368
326
  model: "user",
369
- field: "id"
370
- }
371
- }
372
- },
373
- organization: {
374
- name: {
375
- sortable: true
327
+ field: "id",
328
+ onDelete: "cascade",
329
+ },
376
330
  },
377
- slug: {
378
- sortable: true,
379
- unique: true
380
- }
381
331
  },
382
- member: {
383
- organizationId: {
332
+ oauthConsent: {
333
+ clientId: {
384
334
  references: {
385
- model: "organization",
386
- field: "id"
387
- }
335
+ model: "oauthApplication",
336
+ field: "clientId",
337
+ onDelete: "cascade",
338
+ },
388
339
  },
389
340
  userId: {
390
341
  references: {
391
342
  model: "user",
392
- field: "id"
393
- }
394
- },
395
- role: {
396
- sortable: true
397
- }
398
- },
399
- invitation: {
400
- organizationId: {
401
- references: {
402
- model: "organization",
403
- field: "id"
404
- }
405
- },
406
- email: {
407
- sortable: true
408
- },
409
- role: {
410
- sortable: true
411
- },
412
- teamId: {
413
- sortable: true
414
- },
415
- status: {
416
- sortable: true
343
+ field: "id",
344
+ onDelete: "cascade",
345
+ },
417
346
  },
418
- inviterId: {
419
- references: {
420
- model: "user",
421
- field: "id"
422
- }
423
- }
424
347
  },
425
- ssoProvider: {
426
- userId: {
427
- references: {
428
- model: "user",
429
- field: "id"
430
- }
348
+ ratelimit: {
349
+ key: {
350
+ unique: true,
431
351
  },
432
- providerId: {
433
- unique: true
434
- }
435
352
  },
436
- walletAddress: {
437
- userId: {
438
- references: {
439
- model: "user",
440
- field: "id"
441
- }
442
- }
443
- }
444
353
  };
@@ -1,15 +1,15 @@
1
- import { betterAuth } from "better-auth";
2
1
  import { createCookieGetter } from "better-auth/cookies";
3
- import { GenericActionCtx } from "convex/server";
4
2
  import { JWT_COOKIE_NAME } from "../plugins/convex";
3
+ import { betterAuth } from "better-auth";
5
4
 
6
5
  export const getToken = async (
7
- createAuth: (ctx: GenericActionCtx<any>) => ReturnType<typeof betterAuth>
6
+ createAuth: (ctx: any) => ReturnType<typeof betterAuth>
8
7
  ) => {
8
+ const options = createAuth({} as any).options;
9
9
  const { cookies } = await import("next/headers");
10
10
  const cookieStore = await cookies();
11
- const auth = createAuth({} as any);
12
- const createCookie = createCookieGetter(auth.options);
11
+ console.log("options", options);
12
+ const createCookie = createCookieGetter(options);
13
13
  const cookie = createCookie(JWT_COOKIE_NAME);
14
14
  const tokenCookie = cookieStore.get(cookie.name);
15
15
 
@@ -1,10 +1,9 @@
1
1
  import { BetterAuthClientPlugin } from "better-auth/client";
2
2
  import { convex } from ".";
3
- import { BetterAuthOptions } from "better-auth";
4
3
 
5
- export const convexClient = <O extends { options: BetterAuthOptions }>() => {
4
+ export const convexClient = () => {
6
5
  return {
7
6
  id: "convex",
8
- $InferServerPlugin: {} as ReturnType<typeof convex<O["options"]>>,
7
+ $InferServerPlugin: {} as ReturnType<typeof convex>,
9
8
  } satisfies BetterAuthClientPlugin;
10
9
  };